v0.14.0
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.

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.

53  : dAta(data), isDisplacement(is_displacement) {}

◆ ~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  }

◆ 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);
95  noalias(engineringStrainDot) = gradientUDot + trans(gradientUDot);
96  engineringStrainDot *= 0.5;
98  }

◆ 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(
146  auto t_invF = getFTensor2FromArray3by3(invF, FTensor::Number<0>(), 0);
147  if (isDisplacement) {
148  t_F(0, 0) += 1;
149  t_F(1, 1) += 1;
150  t_F(2, 2) += 1;
151  }
152 
153  J = determinantTensor3by3(t_F);
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  }

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:
KelvinVoigtDamper::ConstitutiveEquation::invF
MatrixBoundedArray< TYPE, 9 > invF
Inverse of gradient of deformation.
Definition: KelvinVoigtDamper.hpp:65
KelvinVoigtDamper::BlockMaterialData::gBeta
double gBeta
Sheer modulus spring alpha.
Definition: KelvinVoigtDamper.hpp:32
KelvinVoigtDamper::ConstitutiveEquation::F
MatrixBoundedArray< TYPE, 9 > F
Gradient of deformation.
Definition: KelvinVoigtDamper.hpp:56
KelvinVoigtDamper::ConstitutiveEquation::traceEngineeringStrainDot
TYPE traceEngineeringStrainDot
Definition: KelvinVoigtDamper.hpp:67
MoFEM::invertTensor3by3
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:1588
KelvinVoigtDamper::ConstitutiveEquation::J
TYPE J
Jacobian of gradient of deformation.
Definition: KelvinVoigtDamper.hpp:68
KelvinVoigtDamper::ConstitutiveEquation::isDisplacement
bool isDisplacement
Definition: KelvinVoigtDamper.hpp:50
FTensor::Number< 0 >
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:548
a
constexpr double a
Definition: approx_sphere.cpp:30
KelvinVoigtDamper::ConstitutiveEquation::k
FTensor::Index< 'k', 3 > k
Definition: KelvinVoigtDamper.hpp:47
KelvinVoigtDamper::ConstitutiveEquation::FDot
MatrixBoundedArray< TYPE, 9 > FDot
Rate of gradient of deformation.
Definition: KelvinVoigtDamper.hpp:57
KelvinVoigtDamper::ConstitutiveEquation::dashpotFirstPiolaKirchhoffStress
MatrixBoundedArray< TYPE, 9 > dashpotFirstPiolaKirchhoffStress
Stress generated by spring beta.
Definition: KelvinVoigtDamper.hpp:64
KelvinVoigtDamper::BlockMaterialData::vBeta
double vBeta
Poisson ration spring alpha.
Definition: KelvinVoigtDamper.hpp:31
MoFEM::getFTensor2FromArray3by3
auto getFTensor2FromArray3by3(ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
Definition: Templates.hpp:1342
KelvinVoigtDamper::ConstitutiveEquation::dAta
BlockMaterialData & dAta
Definition: KelvinVoigtDamper.hpp:49
MoFEM::determinantTensor3by3
static auto determinantTensor3by3(T &t)
Calculate the determinant of a 3x3 matrix or a tensor of rank 2.
Definition: Templates.hpp:1540
KelvinVoigtDamper::BlockMaterialData::lInear
bool lInear
Definition: KelvinVoigtDamper.hpp:33
KelvinVoigtDamper::ConstitutiveEquation::dashpotCauchyStress
MatrixBoundedArray< TYPE, 9 > dashpotCauchyStress
Stress generated by spring beta.
Definition: KelvinVoigtDamper.hpp:62
KelvinVoigtDamper::ConstitutiveEquation::gradientUDot
MatrixBoundedArray< TYPE, 9 > gradientUDot
Rate of gradient of displacements.
Definition: KelvinVoigtDamper.hpp:59
KelvinVoigtDamper::ConstitutiveEquation::engineringStrainDot
MatrixBoundedArray< TYPE, 9 > engineringStrainDot
Definition: KelvinVoigtDamper.hpp:60
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359
KelvinVoigtDamper::ConstitutiveEquation::i
FTensor::Index< 'i', 3 > i
Definition: KelvinVoigtDamper.hpp:45
KelvinVoigtDamper::ConstitutiveEquation::j
FTensor::Index< 'j', 3 > j
Definition: KelvinVoigtDamper.hpp:46