OGS
GravityModel.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 "GravityData.h"
8#include "LiquidDensityData.h"
9#include "PorosityData.h"
10#include "SaturationData.h"
11#include "SolidDensityData.h"
12
14{
15template <int DisplacementDim>
17{
19 DisplacementDim> const& specific_body_force)
20 : specific_body_force_(specific_body_force)
21 {
22 }
23
24 void eval(PorosityData const& poro_data,
25 SolidDensityData const& rho_S_data,
26 LiquidDensityData const& rho_L_data,
27 SaturationData const& S_L_data,
28 SaturationDataDeriv const& dS_L_data,
30
33 DisplacementDim> const& specific_body_force)
34 {
35 return GravityModel{specific_body_force};
36 }
37
38private:
41};
42
43extern template struct GravityModel<2>;
44extern template struct GravityModel<3>;
45} // namespace ProcessLib::ThermoRichardsMechanics
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