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>(
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);
68 DBUG(
"Use '{:s}' as bulk modulus parameter.", bulk_modulus.name);
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);
98 DBUG(
"Use '{:s}' as alpha.", alpha.name);
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);
158 shear_modulus, bulk_modulus, alpha, beta,
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),