Loading [MathJax]/extensions/tex2jax.js
OGS
SolidDensity.cpp
Go to the documentation of this file.
1
11#include "SolidDensity.h"
12
14{
15template <int DisplacementDim>
17 SpaceTimeData const& x_t,
18 MediaData const& media_data,
19 PorosityData const& poro_data,
22 DisplacementDim> const& sigma_eff_data,
24 BishopsData const& bishops_data,
25 SolidDensityData& out) const
26{
27 namespace MPL = MaterialPropertyLib;
28 MPL::VariableArray variables;
29 variables.temperature = T_data.T;
30
31 double const p_FR = -bishops_data.chi_S_L * p_cap_data.p_cap;
32
33 auto const& identity2 = MathLib::KelvinVector::Invariants<
35 DisplacementDim)>::identity2;
36 variables.solid_grain_pressure =
37 p_FR -
38 sigma_eff_data.sigma_eff.dot(identity2) / (3 * (1 - poro_data.phi));
39
40 out.rho_SR = media_data.solid.property(MPL::PropertyType::density)
41 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
43 (1 - poro_data.phi) * out.rho_SR; // TODO only for output
44}
45
46template struct SolidDensityModel<2>;
47template struct SolidDensityModel<3>;
48} // namespace ProcessLib::ThermoRichardsMechanics
Property const & property(PropertyType const &p) const
Definition Phase.cpp:53
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
ParameterLib::SpatialPosition x
Definition Base.h:74
MaterialPropertyLib::Phase const & solid
Definition Base.h:63
void eval(SpaceTimeData const &x_t, MediaData const &media_data, PorosityData const &poro_data, TemperatureData< DisplacementDim > const &T_data, ProcessLib::ConstitutiveRelations::EffectiveStressData< DisplacementDim > const &sigma_eff_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, BishopsData const &bishops_data, SolidDensityData &out) const