13 #include <Eigen/Dense>
25 namespace ThermoRichardsFlow
30 std::unique_ptr<SimplifiedElasticityModel> simplified_elasticity =
31 std::make_unique<RigidElasticityModel>();
32 if (
auto const simplified_elasticity_switch =
36 DBUG(
"Using simplified_elasticity for the Richards flow equation");
37 if (*simplified_elasticity_switch ==
"uniaxial")
39 DBUG(
"assuming local uniaxial deformation only.");
40 simplified_elasticity = std::make_unique<UniaxialElasticityModel>();
42 else if (*simplified_elasticity_switch ==
"hydrostatic")
44 DBUG(
"assuming constant hydrostatic stress locally.");
45 simplified_elasticity =
46 std::make_unique<HydrostaticElasticityModel>();
48 else if (*simplified_elasticity_switch ==
"user_defined")
50 DBUG(
"using user defined elasticity model.");
51 simplified_elasticity =
52 std::make_unique<UserDefinedElasticityModel>();
54 else if (*simplified_elasticity_switch ==
"rigid")
56 DBUG(
"using user defined elasticity model.");
57 simplified_elasticity = std::make_unique<RigidElasticityModel>();
60 return simplified_elasticity;
void DBUG(char const *fmt, Args const &... args)
std::optional< T > getConfigParameterOptional(std::string const ¶m) const
std::unique_ptr< SimplifiedElasticityModel > createElasticityModel(BaseLib::ConfigTree const &config)