Linear transverse isotropic elastic model.
The parameters of the linear transverse isotropic elastic model are
where the subscript i means isotropy, and the subscript a means anisotropy.
With the given parameter, the in-plane shear modulus, G_{ii} is computed as
G_{ii} = \frac{E_{i}}{2(1+\nu_{ii})},
while the in-plane Poisson ratio, \nu_{ai}, which is due to the strain perpendicular to the plane of isotropy, is calculated by the following equation:
\nu_{ai} = \nu_{ia} \frac{E_{a}}{E_{i}}.
For 3D problems, assuming the plane of isotropy to be spanned by the basis vectors \mathbf{e}_1 and \mathbf{e}_2, respectively, and the direction of anisotropy is defined by the basis vector \mathbf{e}_3, the following relations hold:
\begin{eqnarray*} E_{i} &=& E_1 & =& E_2, \\ E_{a} &=& E_3, & &\\ \nu_{ii} &=& \nu_{12} & =& \nu_{21}, \\ \nu_{ia} &=& \nu_{13} & =& \nu_{23}, \\ \nu_{ai} &=& \nu_{31} & =& \nu_{32}, \\ G_{ia} &=& G_{13} & =& G_{23},\\ G_{ai} &=& G_{ia}. & & \end{eqnarray*}
Under such assumption, the matrix form of the elastic tensor for strain and stress in the Kelvin vector in the local system is
\begin{bmatrix} a_{ii} & b_{ii} &b_{ai} & 0 & 0 & 0\\ b_{ii} & a_{ii} &b_{ai} & 0 & 0 & 0\\ b_{ai} & b_{ai} &a_{ai} & 0 & 0 & 0\\ 0 & 0 & 0 & 2 c_{ii} & 0 & 0\\ 0 & 0 & 0 & 0 & 2 c_{ai} & 0\\ 0 & 0 & 0 & 0 & 0 & 2 c_{ai} \end{bmatrix}.
The matrix elements are:
\begin{eqnarray*} a_{ii} &=& \frac{1-\nu_{ia}\nu_{ai}}{E_{i} E_{a} D}, \\ a_{ai} &=& \frac{1-\nu_{ii}^2}{E_{i}^2 D}, \\ b_{ii} &=& \frac{\nu_{ii}+\nu_{ia}\nu_{ai}}{E_{i} E_{a} D}, \\ b_{ai} &=& \frac{\nu_{ia}(1+\nu_{ii})}{E_{i}^2 D}, \\ c_{ii} &=& \frac{E_{i}}{2(1+\nu_{ii})}, \\ c_{ai} &=& G_{ia}, \end{eqnarray*}
with
D = \frac{(1+\nu_{ii})(1-\nu_{ii}-2\nu_{ia}\nu_{ai})}{E_{i}^2E_{a}}.
(also see Chapter 9.1 in [22]).
For plane strain problems, assuming the direction of anisotropy is defined by the basis vector \mathbf{e}_1, the plane of isotropy to be spanned by the basis vector \mathbf{e}_0 and the unit off-plane direction \mathbf{e}_2, the following relations hold:
\begin{eqnarray*} E_{i} &=& E_1 & =& E_3, \\ E_{a} &=& E_2, & &\\ \nu_{ii} &=& \nu_{13} & =& \nu_{31}, \\ \nu_{ia} &=& \nu_{32} & =& \nu_{12}, \\ \nu_{ai} &=& \nu_{23} & =& \nu_{21}, \\ G_{ia} &=& G_{32} & =& G_{12},\\ G_{ai} &=& G_{ia}. & & \end{eqnarray*}
Based on this assumption, the matrix form of the elastic tensor for strain and stress in the Kelvin vector in the local system is
\begin{bmatrix} a_{ii} & b_{ai} &b_{ii} & 0\\ b_{ai} & a_{ai} &b_{ai} & 0\\ b_{ii} & b_{ai} &a_{ii} & 0\\ 0 & 0 & 0 & 2 c_{ai} \end{bmatrix}
for plane strain problems.
Definition at line 124 of file LinearElasticTransverseIsotropic.h.
#include <LinearElasticTransverseIsotropic.h>
Public Types | |
using | KelvinVector |
using | KelvinMatrix |
using | P = ParameterLib::Parameter<double> |
![]() | |
using | KelvinVector |
using | KelvinMatrix |
Public Member Functions | |
LinearElasticTransverseIsotropic (P const &E_i, P const &E_a, P const &nu_ii, P const &nu_ia, P const &G_ia, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system) | |
double | computeFreeEnergyDensity (double const, ParameterLib::SpatialPosition const &, double const, KelvinVector const &eps, KelvinVector const &sigma, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &) const override |
std::optional< std::tuple< typename MechanicsBase< DisplacementDim >::KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, typename MechanicsBase< DisplacementDim >::KelvinMatrix > > | integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override |
KelvinMatrix | getElasticTensor (double const t, ParameterLib::SpatialPosition const &x, double const T) const |
double | getBulkModulus (double const t, ParameterLib::SpatialPosition const &x, KelvinMatrix const *const) const override |
LinearElasticTransverseIsotropic< 2 >::KelvinMatrix | getElasticTensor (double const t, ParameterLib::SpatialPosition const &x, double const) const |
LinearElasticTransverseIsotropic< 3 >::KelvinMatrix | getElasticTensor (double const t, ParameterLib::SpatialPosition const &x, double const) const |
![]() | |
virtual std::unique_ptr< MaterialStateVariables > | createMaterialStateVariables () const |
virtual void | initializeInternalStateVariables (double const, ParameterLib::SpatialPosition const &, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &) const |
virtual std::optional< std::tuple< KelvinVector, std::unique_ptr< MaterialStateVariables >, KelvinMatrix > > | integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, MaterialStateVariables const &material_state_variables) const =0 |
virtual std::vector< InternalVariable > | getInternalVariables () const |
virtual ConstitutiveModel | getConstitutiveModel () const |
Gets the type of constitutive model. | |
virtual double | getTemperatureRelatedCoefficient (double const, double const, ParameterLib::SpatialPosition const &, double const, double const) const |
virtual double | computeFreeEnergyDensity (double const t, ParameterLib::SpatialPosition const &x, double const dt, KelvinVector const &eps, KelvinVector const &sigma, MaterialStateVariables const &material_state_variables) const =0 |
virtual | ~MechanicsBase ()=default |
Static Public Attributes | |
static int const | KelvinVectorSize |
Protected Attributes | |
P const & | E_i_p_ |
It is the in-plane Young’s modulus, E_{i}. | |
P const & | E_a_p_ |
P const & | nu_ii_p_ |
It is the in-plane Poisson’s ratio, \nu_{ii}. | |
P const & | nu_ia_p_ |
P const & | G_ia_p_ |
std::optional< ParameterLib::CoordinateSystem > const & | local_coordinate_system_ |
Private Member Functions | |
KelvinMatrix | getElasticTensorLeftTopCorner (double const t, ParameterLib::SpatialPosition const &x) const |
using MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::KelvinMatrix |
Definition at line 131 of file LinearElasticTransverseIsotropic.h.
using MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::KelvinVector |
Definition at line 129 of file LinearElasticTransverseIsotropic.h.
using MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::P = ParameterLib::Parameter<double> |
Definition at line 134 of file LinearElasticTransverseIsotropic.h.
|
inline |
Definition at line 136 of file LinearElasticTransverseIsotropic.h.
|
inlineoverride |
Definition at line 150 of file LinearElasticTransverseIsotropic.h.
|
inlineoverridevirtual |
Reimplemented from MaterialLib::Solids::MechanicsBase< DisplacementDim >.
Definition at line 179 of file LinearElasticTransverseIsotropic.h.
References MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::E_a_p_, MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::E_i_p_, MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::nu_ia_p_, and MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::nu_ii_p_.
KelvinMatrix MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::getElasticTensor | ( | double const | t, |
ParameterLib::SpatialPosition const & | x, | ||
double const | T ) const |
LinearElasticTransverseIsotropic< 2 >::KelvinMatrix MaterialLib::Solids::LinearElasticTransverseIsotropic< 2 >::getElasticTensor | ( | double const | t, |
ParameterLib::SpatialPosition const & | x, | ||
double const | ) const |
Definition at line 104 of file LinearElasticTransverseIsotropic.cpp.
LinearElasticTransverseIsotropic< 3 >::KelvinMatrix MaterialLib::Solids::LinearElasticTransverseIsotropic< 3 >::getElasticTensor | ( | double const | t, |
ParameterLib::SpatialPosition const & | x, | ||
double const | ) const |
Definition at line 137 of file LinearElasticTransverseIsotropic.cpp.
|
private |
Definition at line 57 of file LinearElasticTransverseIsotropic.cpp.
|
override |
Definition at line 29 of file LinearElasticTransverseIsotropic.cpp.
References MaterialPropertyLib::VariableArray::mechanical_strain, MaterialPropertyLib::VariableArray::stress, and MaterialPropertyLib::VariableArray::temperature.
|
protected |
It is the Young’s modulus w.r.t. the direction of anisotropy, E_{a}.
Definition at line 208 of file LinearElasticTransverseIsotropic.h.
Referenced by MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::getBulkModulus().
|
protected |
It is the in-plane Young’s modulus, E_{i}.
Definition at line 205 of file LinearElasticTransverseIsotropic.h.
Referenced by MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::getBulkModulus().
|
protected |
It is the shear modulus between directions of isotropy and anisotropy, G_{ia}.
Definition at line 216 of file LinearElasticTransverseIsotropic.h.
|
static |
Definition at line 127 of file LinearElasticTransverseIsotropic.h.
|
protected |
Definition at line 218 of file LinearElasticTransverseIsotropic.h.
|
protected |
It is the Poisson ratio perpendicular to the plane of isotropy, due to strain in the plane of isotropy, \nu_{ia}.
Definition at line 213 of file LinearElasticTransverseIsotropic.h.
Referenced by MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::getBulkModulus().
|
protected |
It is the in-plane Poisson’s ratio, \nu_{ii}.
Definition at line 210 of file LinearElasticTransverseIsotropic.h.
Referenced by MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >::getBulkModulus().