20 template <
int DisplacementDim>
22 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
27 DBUG(
"Create Coulomb material");
29 auto& Kn = ParameterLib::findParameter<double>(
31 config,
"normal_stiffness", parameters, 1);
33 auto& Ks = ParameterLib::findParameter<double>(
35 config,
"shear_stiffness", parameters, 1);
37 auto& friction_angle = ParameterLib::findParameter<double>(
39 config,
"friction_angle", parameters, 1);
41 auto& dilatancy_angle = ParameterLib::findParameter<double>(
43 config,
"dilatancy_angle", parameters, 1);
45 auto& cohesion = ParameterLib::findParameter<double>(
47 config,
"cohesion", parameters, 1);
49 auto const penalty_aperture_cutoff =
53 auto const tension_cutoff =
58 Kn, Ks, friction_angle, dilatancy_angle, cohesion};
60 auto const& nonlinear_solver_config =
63 auto const nonlinear_solver_parameters =
66 return std::make_unique<Coulomb::Coulomb<DisplacementDim>>(
67 nonlinear_solver_parameters, penalty_aperture_cutoff, tension_cutoff,
72 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
76 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
void DBUG(char const *fmt, Args const &... args)
void checkConfigParameter(std::string const ¶m, T const &value) const
T getConfigParameter(std::string const ¶m) const
ConfigTree getConfigSubtree(std::string const &root) const
std::unique_ptr< FractureModelBase< DisplacementDim > > createCoulomb(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const ¶meters, BaseLib::ConfigTree const &config)
NewtonRaphsonSolverParameters createNewtonRaphsonSolverParameters(BaseLib::ConfigTree const &config)
Variables specific to the material model.