OGS
ThermoRichardsMechanics/ConstitutiveCommon/SolidDensity.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#include "SolidDensity.h"
5
7{
8template <int DisplacementDim>
10 SpaceTimeData const& x_t,
11 MediaData const& media_data,
12 PorosityData const& poro_data,
15 DisplacementDim> const& sigma_eff_data,
17 BishopsData const& bishops_data,
18 SolidDensityData& out) const
19{
20 namespace MPL = MaterialPropertyLib;
21 MPL::VariableArray variables;
22 variables.temperature = T_data.T;
23
24 double const p_FR = -bishops_data.chi_S_L * p_cap_data.p_cap;
25
26 auto const& identity2 = MathLib::KelvinVector::Invariants<
28 DisplacementDim)>::identity2;
29 variables.solid_grain_pressure =
30 p_FR -
31 sigma_eff_data.sigma_eff.dot(identity2) / (3 * (1 - poro_data.phi));
32
34 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
36 (1 - poro_data.phi) * out.rho_SR; // TODO only for output
37}
38
39template struct SolidDensityModel<2>;
40template struct SolidDensityModel<3>;
41} // namespace ProcessLib::ThermoRichardsMechanics
Property const & property(PropertyType const &p) const
Definition Phase.cpp:44
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
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