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

Detailed Description

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

Definition at line 28 of file Gravity.h.

#include <Gravity.h>

Public Member Functions

 GravityModel (Eigen::Vector< double, DisplacementDim > const &specific_body_force)
 
void eval (PorosityData const &poro_data, SolidDensityData const &rho_S_data, LiquidDensityData const &rho_L_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_data, GravityData< DisplacementDim > &out) const
 

Static Public Member Functions

static GravityModel create (SpecificBodyForceData< DisplacementDim > const &specific_body_force_data)
 

Private Attributes

Eigen::Vector< double, DisplacementDim > const specific_body_force_
 

Constructor & Destructor Documentation

◆ GravityModel()

template<int DisplacementDim>
ProcessLib::ThermoRichardsMechanics::GravityModel< DisplacementDim >::GravityModel ( Eigen::Vector< double, DisplacementDim > const & specific_body_force)
inlineexplicit

Definition at line 30 of file Gravity.h.

32 : specific_body_force_(specific_body_force)
33 {
34 }
Eigen::Vector< double, DisplacementDim > const specific_body_force_
Definition Gravity.h:50

Member Function Documentation

◆ create()

template<int DisplacementDim>
static GravityModel ProcessLib::ThermoRichardsMechanics::GravityModel< DisplacementDim >::create ( SpecificBodyForceData< DisplacementDim > const & specific_body_force_data)
inlinestatic

Definition at line 43 of file Gravity.h.

45 {
46 return GravityModel{specific_body_force_data.specific_body_force};
47 }
GravityModel(Eigen::Vector< double, DisplacementDim > const &specific_body_force)
Definition Gravity.h:30

References ProcessLib::ThermoRichardsMechanics::SpecificBodyForceData< DisplacementDim >::specific_body_force.

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::GravityModel< DisplacementDim >::eval ( PorosityData const & poro_data,
SolidDensityData const & rho_S_data,
LiquidDensityData const & rho_L_data,
SaturationData const & S_L_data,
SaturationDataDeriv const & dS_L_data,
GravityData< DisplacementDim > & out ) const

Definition at line 16 of file Gravity.cpp.

21{
22 auto const rho_SR = rho_S_data.rho_SR;
23 auto const phi = poro_data.phi;
24 auto const S_L = S_L_data.S_L;
25 auto const rho_LR = rho_L_data.rho_LR;
26 auto const b = specific_body_force_;
27
28 double const rho = rho_SR * (1 - phi) + S_L * phi * rho_LR;
29 out.volumetric_body_force = rho * b;
30
31 // There is no minus in the Jacobian block, because volumetric_body_force is
32 // subtracted from the residual vector.
33 out.J_up_HT_V_N =
34 poro_data.phi * rho_L_data.rho_LR * dS_L_data.dS_L_dp_cap * b;
35}
@ rho
density. For some models, rho substitutes p

References ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv::dS_L_dp_cap, ProcessLib::ThermoRichardsMechanics::GravityData< DisplacementDim >::J_up_HT_V_N, ProcessLib::ThermoRichardsMechanics::PorosityData::phi, ProcessLib::ThermoRichardsMechanics::LiquidDensityData::rho_LR, ProcessLib::ThermoRichardsMechanics::SolidDensityData::rho_SR, ProcessLib::ThermoRichardsMechanics::SaturationData::S_L, and ProcessLib::ThermoRichardsMechanics::GravityData< DisplacementDim >::volumetric_body_force.

Member Data Documentation

◆ specific_body_force_

template<int DisplacementDim>
Eigen::Vector<double, DisplacementDim> const ProcessLib::ThermoRichardsMechanics::GravityModel< DisplacementDim >::specific_body_force_
private

Definition at line 50 of file Gravity.h.


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