v0.14.0 |
NeoHookan equation. More...
#include <users_modules/basic_finite_elements/nonlinear_elastic_materials/src/NeoHookean.hpp>
Public Types | |
using | PiolaKirchoffI = NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE > |
Public Member Functions | |
NeoHookean () | |
MoFEMErrorCode | NeoHooke_PiolaKirchhoffII () |
calculate second Piola Kirchhoff More... | |
virtual MoFEMErrorCode | calculateP_PiolaKirchhoffI (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Function overload to implement user material. More... | |
MoFEMErrorCode | NeoHookean_ElasticEnergy () |
calculate elastic energy density More... | |
MoFEMErrorCode | calculateElasticEnergy (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr) |
Calculate elastic energy density. More... | |
Public Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE > | |
FunctionsToCalculatePiolaKirchhoffI () | |
virtual | ~FunctionsToCalculatePiolaKirchhoffI ()=default |
MoFEMErrorCode | calculateC_CauchyDeformationTensor () |
MoFEMErrorCode | calculateE_GreenStrain () |
MoFEMErrorCode | calculateS_PiolaKirchhoffII () |
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 | 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 | |
TYPE | detC |
TYPE | logJ |
MatrixBoundedArray< TYPE, 9 > | invC |
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > | t_invC |
FTensor::Index< 'i', 3 > | i |
FTensor::Index< 'j', 3 > | j |
FTensor::Index< 'k', 3 > | k |
Public Attributes inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE > | |
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... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE > | |
static auto | resizeAndSet (MatrixBoundedArray< TYPE, 9 > &m) |
NeoHookan equation.
Definition at line 16 of file NeoHookean.hpp.
using NeoHookean< TYPE >::PiolaKirchoffI = NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI<TYPE> |
Definition at line 21 of file NeoHookean.hpp.
|
inline |
Definition at line 23 of file NeoHookean.hpp.
|
inlinevirtual |
Calculate elastic energy density.
\[\Psi = \frac{1}{2}\lambda(\textrm{tr}[\mathbf{E}])^2+\mu\mathbf{E}:\mathbf{E}\]
Reimplemented from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >.
Definition at line 94 of file NeoHookean.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 from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >.
Definition at line 62 of file NeoHookean.hpp.
|
inline |
calculate second Piola Kirchhoff
\(\mathbf{S} = \mu(\mathbf{I}-\mathbf{C}^{-1})+\lambda(\ln{J})\mathbf{C}^{-1}\)
For details look to:
NONLINEAR CONTINUUM MECHANICS FOR FINITE ELEMENT ANALYSIS, Javier Bonet, Richard D. Wood
Definition at line 46 of file NeoHookean.hpp.
|
inline |
calculate elastic energy density
For details look to:
NONLINEAR CONTINUUM MECHANICS FOR FINITE ELEMENT ANALYSIS, Javier Bonet, Richard D. Wood
Definition at line 85 of file NeoHookean.hpp.
TYPE NeoHookean< TYPE >::detC |
Definition at line 27 of file NeoHookean.hpp.
FTensor::Index<'i', 3> NeoHookean< TYPE >::i |
Definition at line 32 of file NeoHookean.hpp.
MatrixBoundedArray<TYPE, 9> NeoHookean< TYPE >::invC |
Definition at line 29 of file NeoHookean.hpp.
FTensor::Index<'j', 3> NeoHookean< TYPE >::j |
Definition at line 33 of file NeoHookean.hpp.
FTensor::Index<'k', 3> NeoHookean< TYPE >::k |
Definition at line 34 of file NeoHookean.hpp.
TYPE NeoHookean< TYPE >::logJ |
Definition at line 28 of file NeoHookean.hpp.
FTensor::Tensor2<FTensor::PackPtr<TYPE *, 0>, 3, 3> NeoHookean< TYPE >::t_invC |
Definition at line 30 of file NeoHookean.hpp.