28 static constexpr int kelvin_vector_size =
32 auto const& solid_phase = media_data.
solid;
49 DisplacementDim)>::identity2;
55 state.
sigma_sw = prev_state->sigma_sw;
57 auto const sigma_sw_dot =
61 variables, variables_prev, x_t.
x, x_t.
t, x_t.
dt)));
64 auto const C_el_inv = C_el_data.
C_el.inverse().eval();
69 Invariants::trace(eps_data.
eps) +
70 identity2.transpose() * C_el_inv * state.
sigma_sw;
72 Invariants::trace(eps_prev_data->eps) +
73 identity2.transpose() * C_el_inv * prev_state->sigma_sw;
75 out.
eps_m.noalias() = C_el_inv * (state.
sigma_sw - prev_state->sigma_sw);
77 using DimMatrix = Eigen::Matrix<double, 3, 3>;
78 auto const dsigma_sw_dS_L =
81 .template dValue<DimMatrix>(variables, variables_prev,
83 x_t.
x, x_t.
t, x_t.
dt));
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