v0.14.0 |
Implementation of elastic (non-linear) St. Kirchhoff equation. More...
#include <users_modules/basic_finite_elements/src/NonLinearElasticElement.hpp>
Public Member Functions | |
FunctionsToCalculatePiolaKirchhoffI () | |
virtual | ~FunctionsToCalculatePiolaKirchhoffI ()=default |
MoFEMErrorCode | calculateC_CauchyDeformationTensor () |
MoFEMErrorCode | calculateE_GreenStrain () |
MoFEMErrorCode | calculateS_PiolaKirchhoffII () |
virtual MoFEMErrorCode | calculateP_PiolaKirchhoffI (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Function overload to implement user material. More... | |
virtual MoFEMErrorCode | calculateCauchyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Function overload to implement user material. More... | |
virtual MoFEMErrorCode | setUserActiveVariables (int &nb_active_variables) |
add additional active variables More... | |
virtual MoFEMErrorCode | setUserActiveVariables (VectorDouble &activeVariables) |
Add additional independent variables More complex physical models depend on gradient of defamation and some additional variables. For example can depend on temperature. This function adds additional independent variables to the model. More... | |
virtual MoFEMErrorCode | calculateElasticEnergy (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Calculate elastic energy density. More... | |
virtual MoFEMErrorCode | calculatesIGma_EshelbyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Calculate Eshelby stress. More... | |
virtual MoFEMErrorCode | getDataOnPostProcessor (std::map< std::string, std::vector< VectorDouble >> &field_map, std::map< std::string, std::vector< MatrixDouble >> &grad_map) |
Do operations when pre-process. More... | |
Public Attributes | |
FTensor::Index< 'i', 3 > | i |
FTensor::Index< 'j', 3 > | j |
FTensor::Index< 'k', 3 > | k |
double | lambda |
double | mu |
MatrixBoundedArray< TYPE, 9 > | F |
MatrixBoundedArray< TYPE, 9 > | C |
MatrixBoundedArray< TYPE, 9 > | E |
MatrixBoundedArray< TYPE, 9 > | S |
MatrixBoundedArray< TYPE, 9 > | invF |
MatrixBoundedArray< TYPE, 9 > | P |
MatrixBoundedArray< TYPE, 9 > | sIGma |
MatrixBoundedArray< TYPE, 9 > | h |
MatrixBoundedArray< TYPE, 9 > | H |
MatrixBoundedArray< TYPE, 9 > | invH |
MatrixBoundedArray< TYPE, 9 > | sigmaCauchy |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_F |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_C |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_E |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_S |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_invF |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_P |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_sIGma |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_h |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_H |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_invH |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_sigmaCauchy |
TYPE | J |
TYPE | eNergy |
TYPE | detH |
TYPE | detF |
int | gG |
Gauss point number. More... | |
CommonData * | commonDataPtr |
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator * | opPtr |
pointer to finite element tetrahedral operator More... | |
Static Protected Member Functions | |
static auto | resizeAndSet (MatrixBoundedArray< TYPE, 9 > &m) |
Implementation of elastic (non-linear) St. Kirchhoff equation.
Definition at line 79 of file NonLinearElasticElement.hpp.
|
inline |
Definition at line 136 of file NonLinearElasticElement.hpp.
|
virtualdefault |
|
inline |
Definition at line 160 of file NonLinearElasticElement.hpp.
|
inlinevirtual |
Function overload to implement user material.
Calculation of Piola Kirchhoff I is implemented by user. Tangent matrix user implemented physical equation is calculated using automatic differentiation.
\(\mathbf{S} = \lambda\textrm{tr}[\mathbf{E}]\mathbf{I}+2\mu\mathbf{E}\)
Notes:
Number of actual Gauss point is accessed from variable gG.
Access to operator data structures is available by variable opPtr.
Access to common data is by commonDataPtr.
block_data | used to give access to material parameters |
fe_ptr | pointer to element data structures |
For details look to:
NONLINEAR CONTINUUM MECHANICS FOR FINITE ELEMENT ANALYSIS, Javier Bonet, Richard D. Wood
Definition at line 240 of file NonLinearElasticElement.hpp.
|
inline |
Definition at line 166 of file NonLinearElasticElement.hpp.
|
inlinevirtual |
Calculate elastic energy density.
\[\Psi = \frac{1}{2}\lambda(\textrm{tr}[\mathbf{E}])^2+\mu\mathbf{E}:\mathbf{E}\]
Reimplemented in SmallStrainTranverslyIsotropic< TYPE >, SmallStrainTranverslyIsotropic< double >, SmallStrainTranverslyIsotropic< adouble >, NeoHookean< TYPE >, and Hooke< TYPE >.
Definition at line 292 of file NonLinearElasticElement.hpp.
|
inlinevirtual |
Function overload to implement user material.
Calculation of Piola Kirchhoff I is implemented by user. Tangent matrix user implemented physical equation is calculated using automatic differentiation.
\(\mathbf{S} = \lambda\textrm{tr}[\mathbf{E}]\mathbf{I}+2\mu\mathbf{E}\)
Notes:
Number of actual Gauss point is accessed from variable gG.
Access to operator data structures is available by variable opPtr.
Access to common data is by commonDataPtr.
block_data | used to give access to material parameters |
fe_ptr | pointer to element data structures |
For details look to:
NONLINEAR CONTINUUM MECHANICS FOR FINITE ELEMENT ANALYSIS, Javier Bonet, Richard D. Wood
Reimplemented in SmallStrainTranverslyIsotropic< TYPE >, SmallStrainTranverslyIsotropic< double >, SmallStrainTranverslyIsotropic< adouble >, VolumeLengthQuality< TYPE >, VolumeLengthQuality< TYPE >, NeoHookean< TYPE >, and Hooke< TYPE >.
Definition at line 204 of file NonLinearElasticElement.hpp.
|
inline |
Definition at line 174 of file NonLinearElasticElement.hpp.
|
inlinevirtual |
|
inlinevirtual |
Do operations when pre-process.
Definition at line 328 of file NonLinearElasticElement.hpp.
|
inlinestaticprotected |
|
inlinevirtual |
add additional active variables
More complex physical models depend on gradient of defamation and some additional variables. For example can depend on temperature. This function adds additional independent variables to the model.
nb_active_variables | number of active variables |
Reimplemented in SmallStrainTranverslyIsotropicADouble, and MyMat< TYPE >.
Definition at line 264 of file NonLinearElasticElement.hpp.
|
inlinevirtual |
Add additional independent variables More complex physical models depend on gradient of defamation and some additional variables. For example can depend on temperature. This function adds additional independent variables to the model.
/note First 9 elements are reserved for gradient of deformation.
activeVariables | vector of deepened variables, values after index 9 should be add. |
Reimplemented in SmallStrainTranverslyIsotropicADouble, and MyMat< TYPE >.
Definition at line 282 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::C |
Definition at line 147 of file NonLinearElasticElement.hpp.
CommonData* NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::commonDataPtr |
common data shared between entities (f.e. field values at Gauss pts.)
Definition at line 155 of file NonLinearElasticElement.hpp.
TYPE NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::detF |
Definition at line 152 of file NonLinearElasticElement.hpp.
TYPE NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::detH |
Definition at line 152 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::E |
Definition at line 147 of file NonLinearElasticElement.hpp.
TYPE NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::eNergy |
Definition at line 152 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::F |
Definition at line 147 of file NonLinearElasticElement.hpp.
int NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::gG |
Gauss point number.
Definition at line 154 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::h |
Definition at line 147 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::H |
Definition at line 147 of file NonLinearElasticElement.hpp.
FTensor::Index<'i', 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::i |
Definition at line 132 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::invF |
Definition at line 147 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::invH |
Definition at line 147 of file NonLinearElasticElement.hpp.
FTensor::Index<'j', 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::j |
Definition at line 133 of file NonLinearElasticElement.hpp.
TYPE NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::J |
Definition at line 152 of file NonLinearElasticElement.hpp.
FTensor::Index<'k', 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::k |
Definition at line 134 of file NonLinearElasticElement.hpp.
double NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::lambda |
Definition at line 146 of file NonLinearElasticElement.hpp.
double NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::mu |
Definition at line 146 of file NonLinearElasticElement.hpp.
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator* NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::opPtr |
pointer to finite element tetrahedral operator
Definition at line 158 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::P |
Definition at line 147 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::S |
Definition at line 147 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::sIGma |
Definition at line 147 of file NonLinearElasticElement.hpp.
MatrixBoundedArray<TYPE, 9> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::sigmaCauchy |
Definition at line 148 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_C |
Definition at line 149 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_E |
Definition at line 149 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_F |
Definition at line 149 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_h |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_H |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_invF |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_invH |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_P |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_S |
Definition at line 149 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_sIGma |
Definition at line 150 of file NonLinearElasticElement.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >::t_sigmaCauchy |
Definition at line 150 of file NonLinearElasticElement.hpp.