OGS
ProcessLib::ThermoRichardsMechanics::PermeabilityModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::ThermoRichardsMechanics::PermeabilityModel< DisplacementDim >

Definition at line 22 of file PermeabilityModel.h.

#include <PermeabilityModel.h>

Public Member Functions

void eval (SpaceTimeData const &x_t, MediaData const &media_data, SaturationData const &S_L_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, TemperatureData< DisplacementDim > const &T_data, TransportPorosityData const &transport_poro_data, TotalStressData< DisplacementDim > const &total_stress_data, StrainData< DisplacementDim > const &eps_data, EquivalentPlasticStrainData const &equiv_plast_strain_data, PermeabilityData< DisplacementDim > &out) const
 

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::PermeabilityModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
MediaData const & media_data,
SaturationData const & S_L_data,
CapillaryPressureData< DisplacementDim > const & p_cap_data,
TemperatureData< DisplacementDim > const & T_data,
TransportPorosityData const & transport_poro_data,
TotalStressData< DisplacementDim > const & total_stress_data,
StrainData< DisplacementDim > const & eps_data,
EquivalentPlasticStrainData const & equiv_plast_strain_data,
PermeabilityData< DisplacementDim > & out ) const

Definition at line 18 of file PermeabilityModel.cpp.

28{
29 namespace MPL = MaterialPropertyLib;
30
31 static constexpr int kelvin_vector_size =
34
35 auto const& medium = media_data.medium;
36
37 MPL::VariableArray variables;
38 variables.liquid_saturation = S_L_data.S_L;
39 variables.temperature = T_data.T;
40 variables.capillary_pressure = p_cap_data.p_cap;
41 variables.transport_porosity = transport_poro_data.phi;
42
43 out.k_rel = medium.property(MPL::PropertyType::relative_permeability)
44 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
45 out.dk_rel_dS_L =
46 medium.property(MPL::PropertyType::relative_permeability)
47 .template dValue<double>(variables,
48 MPL::Variable::liquid_saturation,
49 x_t.x,
50 x_t.t,
51 x_t.dt);
52
53 // For stress dependent permeability.
54 using SymmetricTensor =
55 KelvinVector<DisplacementDim>; // same data type, but different
56 // semantics
57 variables.total_stress.emplace<SymmetricTensor>(
59 total_stress_data.sigma_total));
60
62 equiv_plast_strain_data.equivalent_plastic_strain;
63
64 variables.volumetric_strain = Invariants::trace(eps_data.eps);
65
66 auto const K_intrinsic = MPL::formEigenTensor<DisplacementDim>(
67 medium.property(MPL::PropertyType::permeability)
68 .value(variables, x_t.x, x_t.t, x_t.dt));
69
70 out.Ki = K_intrinsic;
71}
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > total_stress
Eigen::Matrix< double, symmetric_tensor_size< GlobalDim >, 1 > SymmetricTensor
Eigen::Matrix< double, 4, 1 > kelvinVectorToSymmetricTensor(Eigen::Matrix< double, 4, 1, Eigen::ColMajor, 4, 1 > const &v)
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.

References MaterialPropertyLib::VariableArray::capillary_pressure, ProcessLib::ThermoRichardsMechanics::PermeabilityData< DisplacementDim >::dk_rel_dS_L, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::ConstitutiveRelations::StrainData< DisplacementDim >::eps, MaterialPropertyLib::VariableArray::equivalent_plastic_strain, ProcessLib::ThermoRichardsMechanics::EquivalentPlasticStrainData::equivalent_plastic_strain, ProcessLib::ThermoRichardsMechanics::PermeabilityData< DisplacementDim >::k_rel, MathLib::KelvinVector::kelvin_vector_dimensions(), MathLib::KelvinVector::kelvinVectorToSymmetricTensor(), ProcessLib::ThermoRichardsMechanics::PermeabilityData< DisplacementDim >::Ki, MaterialPropertyLib::VariableArray::liquid_saturation, ProcessLib::ThermoRichardsMechanics::MediaData::medium, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::p_cap, ProcessLib::ThermoRichardsMechanics::TransportPorosityData::phi, ProcessLib::ThermoRichardsMechanics::SaturationData::S_L, ProcessLib::ThermoRichardsMechanics::TotalStressData< DisplacementDim >::sigma_total, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T, MaterialPropertyLib::VariableArray::temperature, MaterialPropertyLib::VariableArray::total_stress, MaterialPropertyLib::VariableArray::transport_porosity, MaterialPropertyLib::VariableArray::volumetric_strain, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.


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