v0.14.0
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
KelvinVoigtDamper::ConstitutiveEquation< TYPE > Struct Template Reference

Constitutive model functions. More...

#include <users_modules/basic_finite_elements/src/KelvinVoigtDamper.hpp>

Inheritance diagram for KelvinVoigtDamper::ConstitutiveEquation< TYPE >:
[legend]
Collaboration diagram for KelvinVoigtDamper::ConstitutiveEquation< TYPE >:
[legend]

Public Member Functions

 ConstitutiveEquation (BlockMaterialData &data, bool is_displacement=true)
 
virtual ~ConstitutiveEquation ()=default
 
virtual MoFEMErrorCode calculateEngineeringStrainDot ()
 Calculate strain rate. More...
 
virtual MoFEMErrorCode calculateDashpotCauchyStress ()
 Calculate Cauchy dashpot stress. More...
 
virtual MoFEMErrorCode calculateFirstPiolaKirchhoffStress ()
 Calculate First Piola-Kirchhoff Stress Dashpot stress. More...
 

Public Attributes

FTensor::Index< 'i', 3 > i
 
FTensor::Index< 'j', 3 > j
 
FTensor::Index< 'k', 3 > k
 
BlockMaterialDatadAta
 
bool isDisplacement
 
MatrixBoundedArray< TYPE, 9 > F
 Gradient of deformation. More...
 
MatrixBoundedArray< TYPE, 9 > FDot
 Rate of gradient of deformation. More...
 
MatrixBoundedArray< TYPE, 9 > gradientUDot
 Rate of gradient of displacements. More...
 
MatrixBoundedArray< TYPE, 9 > engineringStrainDot
 
MatrixBoundedArray< TYPE, 9 > dashpotCauchyStress
 Stress generated by spring beta. More...
 
MatrixBoundedArray< TYPE, 9 > dashpotFirstPiolaKirchhoffStress
 Stress generated by spring beta. More...
 
MatrixBoundedArray< TYPE, 9 > invF
 Inverse of gradient of deformation. More...
 
TYPE traceEngineeringStrainDot
 
TYPE J
 Jacobian of gradient of deformation. More...
 

Detailed Description

template<typename TYPE>
struct KelvinVoigtDamper::ConstitutiveEquation< TYPE >

Constitutive model functions.

Examples
nonlinear_dynamics.cpp.

Definition at line 43 of file KelvinVoigtDamper.hpp.

Constructor & Destructor Documentation

◆ ConstitutiveEquation()

template<typename TYPE >
KelvinVoigtDamper::ConstitutiveEquation< TYPE >::ConstitutiveEquation ( BlockMaterialData data,
bool  is_displacement = true 
)
inline

Definition at line 52 of file KelvinVoigtDamper.hpp.

◆ ~ConstitutiveEquation()

template<typename TYPE >
virtual KelvinVoigtDamper::ConstitutiveEquation< TYPE >::~ConstitutiveEquation ( )
virtualdefault

Member Function Documentation

◆ calculateDashpotCauchyStress()

template<typename TYPE >
virtual MoFEMErrorCode KelvinVoigtDamper::ConstitutiveEquation< TYPE >::calculateDashpotCauchyStress ( )
inlinevirtual

Calculate Cauchy dashpot stress.

Calculate dashpot Cauchy stress. It has to be pull back to reference configuration before use in total Lagrangian formulation.

\[ \sigma^\beta_{ij} = 2G^\beta\left[ \dot{\varepsilon}_{ij} + \frac{v^\beta}{1-2v^\beta}\dot{\varepsilon}_{kk}\delta_{ij} \right] \]

Definition at line 113 of file KelvinVoigtDamper.hpp.

113 {
115 dashpotCauchyStress.resize(3, 3, false);
116 double a = 2.0 * dAta.gBeta;
117 double b = a * (dAta.vBeta / (1.0 - 2.0 * dAta.vBeta));
119 for (int ii = 0; ii < 3; ii++) {
121 }
123 }
constexpr double a
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
double vBeta
Poisson ration spring alpha.
double gBeta
Sheer modulus spring alpha.
MatrixBoundedArray< TYPE, 9 > engineringStrainDot
MatrixBoundedArray< TYPE, 9 > dashpotCauchyStress
Stress generated by spring beta.

◆ calculateEngineeringStrainDot()

template<typename TYPE >
virtual MoFEMErrorCode KelvinVoigtDamper::ConstitutiveEquation< TYPE >::calculateEngineeringStrainDot ( )
inlinevirtual

Calculate strain rate.

\[ \dot{\varepsilon}_{ij} = \frac{1}{2} \left( \frac{\partial v_i}{\partial X_j} + \frac{\partial v_j}{\partial X_i} \right) \]

Definition at line 82 of file KelvinVoigtDamper.hpp.

82 {
84 gradientUDot.resize(3, 3, false);
85 noalias(gradientUDot) = FDot;
86
87 // for (int ii = 0; ii < 3; ii++)
88 // gradientUDot(ii, ii) -= 1;
89
91 for (int ii = 0; ii < 3; ii++) {
93 }
94 engineringStrainDot.resize(3, 3, false);
98 }
MatrixBoundedArray< TYPE, 9 > FDot
Rate of gradient of deformation.
MatrixBoundedArray< TYPE, 9 > gradientUDot
Rate of gradient of displacements.

◆ calculateFirstPiolaKirchhoffStress()

template<typename TYPE >
virtual MoFEMErrorCode KelvinVoigtDamper::ConstitutiveEquation< TYPE >::calculateFirstPiolaKirchhoffStress ( )
inlinevirtual

Calculate First Piola-Kirchhoff Stress Dashpot stress.

\[ P^\beta_{ij} = J \sigma^\beta_{ik} F^{-1}_{jk} \]

Definition at line 132 of file KelvinVoigtDamper.hpp.

132 {
134 dashpotFirstPiolaKirchhoffStress.resize(3, 3, false);
135 if (dAta.lInear) {
137 } else {
138
139 invF.resize(3, 3, false);
140
141 auto t_dashpotFirstPiolaKirchhoffStress = getFTensor2FromArray3by3(
143 auto t_dashpotCauchyStress = getFTensor2FromArray3by3(
147 if (isDisplacement) {
148 t_F(0, 0) += 1;
149 t_F(1, 1) += 1;
150 t_F(2, 2) += 1;
151 }
152
154 CHKERR invertTensor3by3(t_F, J, t_invF);
155 t_dashpotFirstPiolaKirchhoffStress(i, j) =
156 J * (t_dashpotCauchyStress(i, k) * t_invF(j, k));
157 }
159 }
#define CHKERR
Inline error check.
Definition: definitions.h:535
MoFEMErrorCode invertTensor3by3(ublas::matrix< T, L, A > &jac_data, ublas::vector< T, A > &det_data, ublas::matrix< T, L, A > &inv_jac_data)
Calculate inverse of tensor rank 2 at integration points.
Definition: Templates.hpp:1559
auto getFTensor2FromArray3by3(ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
Definition: Templates.hpp:1313
MoFEMErrorCode determinantTensor3by3(T1 &t, T2 &det)
Calculate determinant 3 by 3.
Definition: Templates.hpp:1578
MatrixBoundedArray< TYPE, 9 > invF
Inverse of gradient of deformation.
MatrixBoundedArray< TYPE, 9 > F
Gradient of deformation.
MatrixBoundedArray< TYPE, 9 > dashpotFirstPiolaKirchhoffStress
Stress generated by spring beta.
TYPE J
Jacobian of gradient of deformation.

Member Data Documentation

◆ dashpotCauchyStress

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::dashpotCauchyStress

Stress generated by spring beta.

Definition at line 62 of file KelvinVoigtDamper.hpp.

◆ dashpotFirstPiolaKirchhoffStress

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::dashpotFirstPiolaKirchhoffStress

Stress generated by spring beta.

Definition at line 64 of file KelvinVoigtDamper.hpp.

◆ dAta

template<typename TYPE >
BlockMaterialData& KelvinVoigtDamper::ConstitutiveEquation< TYPE >::dAta

Definition at line 49 of file KelvinVoigtDamper.hpp.

◆ engineringStrainDot

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::engineringStrainDot

Definition at line 60 of file KelvinVoigtDamper.hpp.

◆ F

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::F

Gradient of deformation.

Definition at line 56 of file KelvinVoigtDamper.hpp.

◆ FDot

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::FDot

Rate of gradient of deformation.

Definition at line 57 of file KelvinVoigtDamper.hpp.

◆ gradientUDot

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::gradientUDot

Rate of gradient of displacements.

Definition at line 59 of file KelvinVoigtDamper.hpp.

◆ i

template<typename TYPE >
FTensor::Index<'i', 3> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::i

Definition at line 45 of file KelvinVoigtDamper.hpp.

◆ invF

template<typename TYPE >
MatrixBoundedArray<TYPE, 9> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::invF

Inverse of gradient of deformation.

Definition at line 65 of file KelvinVoigtDamper.hpp.

◆ isDisplacement

template<typename TYPE >
bool KelvinVoigtDamper::ConstitutiveEquation< TYPE >::isDisplacement

Definition at line 50 of file KelvinVoigtDamper.hpp.

◆ j

template<typename TYPE >
FTensor::Index<'j', 3> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::j

Definition at line 46 of file KelvinVoigtDamper.hpp.

◆ J

template<typename TYPE >
TYPE KelvinVoigtDamper::ConstitutiveEquation< TYPE >::J

Jacobian of gradient of deformation.

Definition at line 68 of file KelvinVoigtDamper.hpp.

◆ k

template<typename TYPE >
FTensor::Index<'k', 3> KelvinVoigtDamper::ConstitutiveEquation< TYPE >::k

Definition at line 47 of file KelvinVoigtDamper.hpp.

◆ traceEngineeringStrainDot

template<typename TYPE >
TYPE KelvinVoigtDamper::ConstitutiveEquation< TYPE >::traceEngineeringStrainDot

Definition at line 67 of file KelvinVoigtDamper.hpp.


The documentation for this struct was generated from the following file: