OGS
ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim > Struct Template Referencefinal

Detailed Description

template<typename BMatricesType, typename ShapeMatrixType, int DisplacementDim>
struct ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >

Definition at line 39 of file PhaseFieldFEM.h.

#include <PhaseFieldFEM.h>

Public Member Functions

 IntegrationPointData (MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material)
 
void pushBackState ()
 
template<typename DisplacementVectorType >
void updateConstitutiveRelation (double const t, ParameterLib::SpatialPosition const &x, double const, DisplacementVectorType const &, double const degradation, EnergySplitModel const energy_split_model)
 

Public Attributes

ShapeMatrixType::NodalRowVectorType N
 
ShapeMatrixType::GlobalDimNodalMatrixType dNdx
 
BMatricesType::KelvinVectorType eps
 
BMatricesType::KelvinVectorType eps_prev
 
BMatricesType::KelvinVectorType eps_tensile
 
BMatricesType::KelvinVectorType sigma_tensile
 
BMatricesType::KelvinVectorType sigma_compressive
 
BMatricesType::KelvinVectorType sigma
 
double strain_energy_tensile
 
double elastic_energy
 
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material
 
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables
 
BMatricesType::KelvinMatrixType D
 
BMatricesType::KelvinMatrixType C_tensile
 
BMatricesType::KelvinMatrixType C_compressive
 
double integration_weight
 
double history_variable
 
double history_variable_prev
 

Constructor & Destructor Documentation

◆ IntegrationPointData()

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::IntegrationPointData ( MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material)
inlineexplicit

Definition at line 41 of file PhaseFieldFEM.h.

46 solid_material.createMaterialStateVariables())
47 {
48 }
MaterialLib::Solids::MechanicsBase< DisplacementDim > const & solid_material
std::unique_ptr< typename MaterialLib::Solids::MechanicsBase< DisplacementDim >::MaterialStateVariables > material_state_variables

Member Function Documentation

◆ pushBackState()

◆ updateConstitutiveRelation()

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
template<typename DisplacementVectorType >
void ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::updateConstitutiveRelation ( double const t,
ParameterLib::SpatialPosition const & x,
double const ,
DisplacementVectorType const & ,
double const degradation,
EnergySplitModel const energy_split_model )
inline

Definition at line 78 of file PhaseFieldFEM.h.

84 {
85 auto linear_elastic_mp =
87 DisplacementDim> const&>(solid_material)
88 .getMaterialProperties();
89
90 auto const bulk_modulus = linear_elastic_mp.bulk_modulus(t, x);
91 auto const mu = linear_elastic_mp.mu(t, x);
92
93 switch (energy_split_model)
94 {
96 {
99 MaterialLib::Solids::Phasefield::
100 calculateIsotropicDegradedStress<DisplacementDim>(
101 degradation, bulk_modulus, mu, eps);
102 break;
103 }
105 {
108 MaterialLib::Solids::Phasefield::
109 calculateVolDevDegradedStress<DisplacementDim>(
110 degradation, bulk_modulus, mu, eps);
111 break;
112 }
114 {
117 C_compressive) = MaterialLib::Solids::Phasefield::
118 calculateIsotropicDegradedStressWithRankineEnergy<
119 DisplacementDim>(degradation, bulk_modulus, mu, eps);
120 break;
121 }
123 {
124 double temperature = 0.;
126 C_ortho = static_cast<
128 DisplacementDim> const&>(solid_material)
129 .getElasticTensor(t, x, temperature);
130
133 C_compressive) = MaterialLib::Solids::Phasefield::
134 calculateOrthoVolDevDegradedStress<DisplacementDim>(
135 degradation, eps, C_ortho);
136 break;
137 }
139 {
140 double temperature = 0.;
142 C_ortho = static_cast<
144 DisplacementDim> const&>(solid_material)
145 .getElasticTensor(t, x, temperature);
146
147 std::tie(eps_tensile, sigma, sigma_tensile, D,
149 C_compressive) = MaterialLib::Solids::Phasefield::
150 calculateOrthoMasonryDegradedStress<DisplacementDim>(
151 degradation, eps, C_ortho);
152 break;
153 }
154 }
155
158 }
Eigen::Matrix< double, kelvin_vector_dimensions(DisplacementDim), kelvin_vector_dimensions(DisplacementDim), Eigen::RowMajor > KelvinMatrixType
BMatricesType::KelvinVectorType sigma_tensile
BMatricesType::KelvinMatrixType C_compressive
BMatricesType::KelvinVectorType sigma_compressive
BMatricesType::KelvinVectorType eps_tensile
BMatricesType::KelvinVectorType sigma
BMatricesType::KelvinMatrixType D
BMatricesType::KelvinMatrixType C_tensile

References ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::C_compressive, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::C_tensile, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::D, ProcessLib::PhaseField::EffectiveStress, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::elastic_energy, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps_tensile, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::history_variable, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::history_variable_prev, ProcessLib::PhaseField::Isotropic, ProcessLib::PhaseField::OrthoMasonry, ProcessLib::PhaseField::OrthoVolDev, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma_compressive, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma_tensile, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::solid_material, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::strain_energy_tensile, and ProcessLib::PhaseField::VolDev.

Member Data Documentation

◆ C_compressive

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinMatrixType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::C_compressive

◆ C_tensile

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinMatrixType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::C_tensile

◆ D

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinMatrixType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::D

◆ dNdx

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
ShapeMatrixType::GlobalDimNodalMatrixType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::dNdx

Definition at line 51 of file PhaseFieldFEM.h.

◆ elastic_energy

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
double ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::elastic_energy

◆ eps

◆ eps_prev

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps_prev

◆ eps_tensile

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps_tensile

◆ history_variable

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
double ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::history_variable

◆ history_variable_prev

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
double ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::history_variable_prev

◆ integration_weight

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
double ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::integration_weight

Definition at line 66 of file PhaseFieldFEM.h.

◆ material_state_variables

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
std::unique_ptr<typename MaterialLib::Solids::MechanicsBase< DisplacementDim>::MaterialStateVariables> ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::material_state_variables

◆ N

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
ShapeMatrixType::NodalRowVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::N

Definition at line 50 of file PhaseFieldFEM.h.

◆ sigma

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma

◆ sigma_compressive

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma_compressive

◆ sigma_tensile

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
BMatricesType::KelvinVectorType ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma_tensile

◆ solid_material

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
MaterialLib::Solids::MechanicsBase<DisplacementDim> const& ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::solid_material

◆ strain_energy_tensile

template<typename BMatricesType , typename ShapeMatrixType , int DisplacementDim>
double ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::strain_energy_tensile

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