24 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
29 ParameterLib::findParameter<double>(config,
"alpha_d", parameters, 1);
31 DBUG(
"Use '{:s}' as alpha_d.", alpha_d.name);
35 ParameterLib::findParameter<double>(config,
"beta_d", parameters, 1);
37 DBUG(
"Use '{:s}' as beta_d.", beta_d.name);
41 ParameterLib::findParameter<double>(config,
"h_d", parameters, 1);
43 DBUG(
"Use '{:s}' as h_d.", h_d.name);
45 return std::make_unique<DamagePropertiesParameters>(
49 template <
int DisplacementDim>
51 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
56 DBUG(
"Create Ehlers material");
59 auto& shear_modulus = ParameterLib::findParameter<double>(
60 config,
"shear_modulus", parameters, 1);
62 DBUG(
"Use '{:s}' as shear modulus parameter.", shear_modulus.name);
65 auto&
bulk_modulus = ParameterLib::findParameter<double>(
66 config,
"bulk_modulus", parameters, 1);
72 ParameterLib::findParameter<double>(config,
"kappa", parameters, 1);
74 DBUG(
"Use '{:s}' as kappa.", kappa.name);
78 ParameterLib::findParameter<double>(config,
"beta", parameters, 1);
80 DBUG(
"Use '{:s}' as beta.",
beta.name);
84 ParameterLib::findParameter<double>(config,
"gamma", parameters, 1);
86 DBUG(
"Use '{:s}' as gamma.", gamma.name);
89 auto& hardening_modulus = ParameterLib::findParameter<double>(
90 config,
"hardening_modulus", parameters, 1);
92 DBUG(
"Use '{:s}' as hardening modulus parameter.", hardening_modulus.name);
96 ParameterLib::findParameter<double>(config,
"alpha", parameters, 1);
102 ParameterLib::findParameter<double>(config,
"delta", parameters, 1);
104 DBUG(
"Use '{:s}' as delta.", delta.name);
108 ParameterLib::findParameter<double>(config,
"eps", parameters, 1);
110 DBUG(
"Use '{:s}' as eps.", eps.name);
113 auto& m = ParameterLib::findParameter<double>(config,
"m", parameters, 1);
115 DBUG(
"Use '{:s}' as m.", m.name);
119 ParameterLib::findParameter<double>(config,
"alphap", parameters, 1);
121 DBUG(
"Use '{:s}' as alphap.", alphap.name);
125 ParameterLib::findParameter<double>(config,
"deltap", parameters, 1);
127 DBUG(
"Use '{:s}' as deltap.", deltap.name);
131 ParameterLib::findParameter<double>(config,
"epsp", parameters, 1);
133 DBUG(
"Use '{:s}' as epsp.", epsp.name);
137 ParameterLib::findParameter<double>(config,
"mp", parameters, 1);
139 DBUG(
"Use '{:s}' as mp.", paremeter_mp.name);
143 ParameterLib::findParameter<double>(config,
"betap", parameters, 1);
145 DBUG(
"Use '{:s}' as betap.", betap.name);
149 ParameterLib::findParameter<double>(config,
"gammap", parameters, 1);
151 DBUG(
"Use '{:s}' as gammap.", gammap.name);
159 gamma, delta, eps, m,
160 alphap, betap, gammap, deltap,
161 epsp, paremeter_mp, kappa, hardening_modulus};
164 std::unique_ptr<DamagePropertiesParameters> ehlers_damage_properties;
166 auto const& ehlers_damage_config =
169 if (ehlers_damage_config)
171 ehlers_damage_properties =
175 auto const& nonlinear_solver_config =
178 auto const nonlinear_solver_parameters =
181 return std::make_unique<SolidEhlers<DisplacementDim>>(
182 nonlinear_solver_parameters,
184 std::move(ehlers_damage_properties),
void DBUG(char const *fmt, Args const &... args)
void checkConfigParameter(std::string const ¶m, T const &value) const
std::optional< ConfigTree > getConfigSubtreeOptional(std::string const &root) const
T getConfigParameter(std::string const ¶m) const
ConfigTree getConfigSubtree(std::string const &root) const
std::unique_ptr< DamagePropertiesParameters > createDamageProperties(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const ¶meters, BaseLib::ConfigTree const &config)
std::unique_ptr< SolidEhlers< DisplacementDim > > createEhlers(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const ¶meters, BaseLib::ConfigTree const &config)
TangentType makeTangentType(std::string const &s)
NewtonRaphsonSolverParameters createNewtonRaphsonSolverParameters(BaseLib::ConfigTree const &config)