Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
oomph::ElasticityTensor Class Reference

A base class that represents the fourth-rank elasticity tensor $E_{ijkl}$ defined such that. More...

#include <elasticity_tensor.h>

+ Inheritance diagram for oomph::ElasticityTensor:

Public Member Functions

virtual ~ElasticityTensor ()
 Empty virtual Destructor. More...
 
double operator() (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 Return the appropriate independent component via the index translation scheme (const version). More...
 
virtual void set_value (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l, const double &value)
 Allow the values to be set (virtual function that must be overloaded if values can be set directly. More...
 
virtual ~ElasticityTensor ()
 Empty virtual Destructor. More...
 
double operator() (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 Return the appropriate independent component via the index translation scheme (const version). More...
 

Protected Member Functions

virtual double independent_component (const unsigned &i) const
 Member function that returns the i-th independent component of the elasticity tensor. More...
 
void range_check (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 Helper range checking function (Note that this only captures over-runs in 3D but errors are likely to be caught in evaluation of the stress and strain tensors anyway...) More...
 
 ElasticityTensor ()
 Empty Constructor. More...
 
virtual double independent_component (const unsigned &i) const
 Member function that returns the i-th independent component of the elasticity tensor. More...
 
void range_check (const unsigned &i, const unsigned &j, const unsigned &k, const unsigned &l) const
 Helper range checking function (Note that this only captures over-runs in 3D but errors are likely to be caught in evaluation of the stress and strain tensors anyway...) More...
 
 ElasticityTensor ()
 Empty Constructor. More...
 

Static Protected Attributes

static const unsigned Index [3][3][3][3]
 Translation table from the four indices to the corresponding independent component. More...
 

Detailed Description

A base class that represents the fourth-rank elasticity tensor $E_{ijkl}$ defined such that.

\[\tau_{ij} = E_{ijkl} e_{kl},\]

where $e_{ij}$ is the infinitessimal (Cauchy) strain tensor and $\tau_{ij}$ is the stress tensor. The symmetries of the tensor are such that

\[E_{ijkl} = E_{jikl} = E_{ijlk} = E_{klij}\]

and thus there are relatively few independent components. These symmetries are included in the definition of the object so that non-physical symmetries cannot be accidentally imposed.

Definition at line 54 of file linear_elasticity/elasticity_tensor.h.

Constructor & Destructor Documentation

◆ ElasticityTensor() [1/2]

oomph::ElasticityTensor::ElasticityTensor ( )
inlineprotected

Empty Constructor.

Definition at line 111 of file linear_elasticity/elasticity_tensor.h.

◆ ~ElasticityTensor() [1/2]

virtual oomph::ElasticityTensor::~ElasticityTensor ( )
inlinevirtual

Empty virtual Destructor.

Definition at line 115 of file linear_elasticity/elasticity_tensor.h.

◆ ElasticityTensor() [2/2]

oomph::ElasticityTensor::ElasticityTensor ( )
inlineprotected

Empty Constructor.

Definition at line 113 of file poroelasticity/elasticity_tensor.h.

◆ ~ElasticityTensor() [2/2]

virtual oomph::ElasticityTensor::~ElasticityTensor ( )
inlinevirtual

Empty virtual Destructor.

Definition at line 117 of file poroelasticity/elasticity_tensor.h.

Member Function Documentation

◆ independent_component() [1/2]

virtual double oomph::ElasticityTensor::independent_component ( const unsigned &  i) const
inlineprotectedvirtual

Member function that returns the i-th independent component of the elasticity tensor.

Reimplemented in oomph::IsotropicElasticityTensor, oomph::GeneralElasticityTensor, oomph::IsotropicElasticityTensor, and oomph::DeviatoricIsotropicElasticityTensor.

Definition at line 63 of file linear_elasticity/elasticity_tensor.h.

Referenced by operator()().

◆ independent_component() [2/2]

virtual double oomph::ElasticityTensor::independent_component ( const unsigned &  i) const
inlineprotectedvirtual

Member function that returns the i-th independent component of the elasticity tensor.

Reimplemented in oomph::IsotropicElasticityTensor, oomph::GeneralElasticityTensor, oomph::IsotropicElasticityTensor, and oomph::DeviatoricIsotropicElasticityTensor.

Definition at line 63 of file poroelasticity/elasticity_tensor.h.

◆ operator()() [1/2]

double oomph::ElasticityTensor::operator() ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k,
const unsigned &  l 
) const
inline

Return the appropriate independent component via the index translation scheme (const version).

Definition at line 120 of file linear_elasticity/elasticity_tensor.h.

References i, independent_component(), Index, and range_check().

◆ operator()() [2/2]

double oomph::ElasticityTensor::operator() ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k,
const unsigned &  l 
) const
inline

Return the appropriate independent component via the index translation scheme (const version).

Definition at line 122 of file poroelasticity/elasticity_tensor.h.

References i, independent_component(), Index, and range_check().

◆ range_check() [1/2]

void oomph::ElasticityTensor::range_check ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k,
const unsigned &  l 
) const
inlineprotected

Helper range checking function (Note that this only captures over-runs in 3D but errors are likely to be caught in evaluation of the stress and strain tensors anyway...)

Definition at line 72 of file linear_elasticity/elasticity_tensor.h.

References i.

Referenced by operator()().

◆ range_check() [2/2]

void oomph::ElasticityTensor::range_check ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k,
const unsigned &  l 
) const
inlineprotected

Helper range checking function (Note that this only captures over-runs in 3D but errors are likely to be caught in evaluation of the stress and strain tensors anyway...)

Definition at line 73 of file poroelasticity/elasticity_tensor.h.

References i.

◆ set_value()

virtual void oomph::ElasticityTensor::set_value ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k,
const unsigned &  l,
const double &  value 
)
inlinevirtual

Allow the values to be set (virtual function that must be overloaded if values can be set directly.

Reimplemented in oomph::GeneralElasticityTensor.

Definition at line 134 of file linear_elasticity/elasticity_tensor.h.

Member Data Documentation

◆ Index

static const unsigned oomph::ElasticityTensor::Index
staticprotected
Initial value:
= {
{{{0, 1, 6}, {1, 2, 7}, {6, 7, 8}},
{{1, 3, 9}, {3, 4, 10}, {9, 10, 11}},
{{6, 9, 12}, {9, 13, 14}, {12, 14, 15}}},
{{{1, 3, 9}, {3, 4, 10}, {9, 10, 11}},
{{2, 4, 13}, {4, 5, 16}, {13, 16, 17}},
{{7, 10, 14}, {10, 16, 18}, {14, 18, 19}}},
{{{6, 9, 12}, {9, 13, 14}, {12, 14, 15}},
{{7, 10, 14}, {10, 16, 18}, {14, 18, 19}},
{{8, 11, 15}, {11, 17, 19}, {15, 19, 20}}}}

Translation table from the four indices to the corresponding independent component.

Translation scheme that takes account of the symmetries of the tensor. The independent coefficients are related to the coefficients of the elasticity tensor as follows:

/

\[\begin{array}{cc} 0 & E_{1111} \\ 1 & E_{1112} \\ 2 & E_{1122} \\ 3 & E_{1212} \\ 4 & E_{1222} \\ 5 & E_{2222} \\ 6 & E_{1113} \\ 7 & E_{1123} \\ 8 & E_{1133} \\ 9 & E_{1213} \\ 10 & E_{1223} \\ 11 & E_{1233} \\ 12 & E_{1313} \\ 13 & E_{1322} \\ 14 & E_{1323} \\ 15 & E_{1333} \\ 16 & E_{2223} \\ 17 & E_{2233} \\ 18 & E_{2323} \\ 19 & E_{2333} \\ 20 & E_{3333} \end{array}\]

/

Definition at line 59 of file linear_elasticity/elasticity_tensor.h.

Referenced by operator()(), and oomph::GeneralElasticityTensor::set_value().


The documentation for this class was generated from the following files: