OGS
ThermoRichardsMechanics/ConstitutiveCommon/Gravity.h
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#pragma once
5
6#include "Base.h"
7#include "LiquidDensity.h"
8#include "Saturation.h"
9#include "SolidDensity.h"
10
12{
13template <int DisplacementDim>
19
20template <int DisplacementDim>
22{
24 DisplacementDim> const& specific_body_force)
25 : specific_body_force_(specific_body_force)
26 {
27 }
28
29 void eval(PorosityData const& poro_data,
30 SolidDensityData const& rho_S_data,
31 LiquidDensityData const& rho_L_data,
32 SaturationData const& S_L_data,
33 SaturationDataDeriv const& dS_L_data,
35
38 DisplacementDim> const& specific_body_force)
39 {
40 return GravityModel{specific_body_force};
41 }
42
43private:
46};
47
48extern template struct GravityModel<2>;
49extern template struct GravityModel<3>;
50} // namespace ProcessLib::ThermoRichardsMechanics
Eigen::Vector< double, DisplacementDim > GlobalDimVector
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct SpecificBodyForceTag > SpecificBodyForce
GravityModel(ProcessLib::ConstitutiveRelations::SpecificBodyForce< DisplacementDim > const &specific_body_force)
static GravityModel create(ProcessLib::ConstitutiveRelations::SpecificBodyForce< DisplacementDim > const &specific_body_force)
ProcessLib::ConstitutiveRelations::SpecificBodyForce< 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