OGS
ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingModel< DisplacementDim >

Definition at line 44 of file Swelling.h.

#include <Swelling.h>

Public Member Functions

void eval (SpaceTimeData const &x_t, MediaData const &media_data, ElasticTangentStiffnessData< DisplacementDim > const &C_el_data, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_prev_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_data, PrevState< SaturationData > const &S_L_prev_data, PrevState< SwellingDataStateful< DisplacementDim > > const &prev_state, SwellingDataStateful< DisplacementDim > &state, SwellingDataStateless< DisplacementDim > &out) const

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
MediaData const & media_data,
ElasticTangentStiffnessData< DisplacementDim > const & C_el_data,
StrainData< DisplacementDim > const & eps_data,
PrevState< StrainData< DisplacementDim > > const & eps_prev_data,
SaturationData const & S_L_data,
SaturationDataDeriv const & dS_L_data,
PrevState< SaturationData > const & S_L_prev_data,
PrevState< SwellingDataStateful< DisplacementDim > > const & prev_state,
SwellingDataStateful< DisplacementDim > & state,
SwellingDataStateless< DisplacementDim > & out ) const

Definition at line 22 of file Swelling.cpp.

32{
33 namespace MPL = MaterialPropertyLib;
34
35 static constexpr int kelvin_vector_size =
38
39 auto const& solid_phase = media_data.solid;
40
42 {
43 out.eps_m.setZero();
44 out.J_up_BT_K_N.setZero();
45 return;
46 }
47
49 variables.liquid_saturation = S_L_data.S_L;
50
52 variables_prev.liquid_saturation = S_L_prev_data->S_L;
53
57
58 // Swelling and possibly volumetric strain rate update.
59
60 // If there is swelling, compute it. Update volumetric strain rate,
61 // s.t. it corresponds to the mechanical part only.
62 state.sigma_sw = prev_state->sigma_sw;
63
64 auto const sigma_sw_dot =
68 variables, variables_prev, x_t.x, x_t.t, x_t.dt)));
69 state.sigma_sw += sigma_sw_dot * x_t.dt;
70
71 auto const C_el_inv = C_el_data.C_el.inverse().eval();
72
73 // !!! Misusing volumetric strain for mechanical volumetric
74 // strain just to update the transport porosity !!!
75 variables.volumetric_strain =
77 identity2.transpose() * C_el_inv * state.sigma_sw;
78 variables_prev.volumetric_strain =
80 identity2.transpose() * C_el_inv * prev_state->sigma_sw;
81
82 out.eps_m.noalias() = C_el_inv * (state.sigma_sw - prev_state->sigma_sw);
83
85 auto const dsigma_sw_dS_L =
90 x_t.x, x_t.t, x_t.dt));
91
92 out.J_up_BT_K_N = -dsigma_sw_dS_L * dS_L_data.dS_L_dp_cap;
93}
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
KelvinVectorType< DisplacementDim > tensorToKelvin(Eigen::Matrix< double, 3, 3 > const &m)
void eval(SpaceTimeData const &x_t, MediaData const &media_data, ElasticTangentStiffnessData< DisplacementDim > const &C_el_data, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_prev_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_data, PrevState< SaturationData > const &S_L_prev_data, PrevState< SwellingDataStateful< DisplacementDim > > const &prev_state, SwellingDataStateful< DisplacementDim > &state, SwellingDataStateless< DisplacementDim > &out) const
Definition Swelling.cpp:22

References ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessData< DisplacementDim >::C_el, ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv::dS_L_dp_cap, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::ConstitutiveRelations::StrainData< DisplacementDim >::eps, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingDataStateless< DisplacementDim >::eps_m, MaterialPropertyLib::formEigenTensor(), ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingDataStateless< DisplacementDim >::J_up_BT_K_N, MathLib::KelvinVector::kelvin_vector_dimensions(), MaterialPropertyLib::liquid_saturation, MaterialPropertyLib::VariableArray::liquid_saturation, ProcessLib::ThermoRichardsMechanics::SaturationData::S_L, ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::SwellingDataStateful< DisplacementDim >::sigma_sw, ProcessLib::ThermoRichardsMechanics::MediaData::solid, MaterialPropertyLib::swelling_stress_rate, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, MathLib::KelvinVector::tensorToKelvin(), MaterialPropertyLib::VariableArray::volumetric_strain, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.


The documentation for this struct was generated from the following files:
  • ProcessLib/ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/Swelling.h
  • ProcessLib/ThermoRichardsMechanics/ConstitutiveStress_StrainTemperature/Swelling.cpp