OGS
CreateCohesiveZoneModeI.cpp
Go to the documentation of this file.
1 
11 
12 #include "CohesiveZoneModeI.h"
13 #include "ParameterLib/Utils.h"
14 
15 namespace MaterialLib
16 {
17 namespace Fracture
18 {
19 namespace CohesiveZoneModeI
20 {
21 template <int DisplacementDim>
22 std::unique_ptr<FractureModelBase<DisplacementDim>> createCohesiveZoneModeI(
23  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
24  BaseLib::ConfigTree const& config)
25 {
27  config.checkConfigParameter("type", "CohesiveZoneModeI");
28  DBUG("Create CohesiveZoneModeI material");
29 
30  auto const& Kn = ParameterLib::findParameter<double>(
32  config, "normal_stiffness", parameters, 1);
33 
34  auto const& Ks = ParameterLib::findParameter<double>(
36  config, "shear_stiffness", parameters, 1);
37 
38  auto const& Gc = ParameterLib::findParameter<double>(
40  config, "fracture_toughness", parameters, 1);
41 
42  auto const& t_np = ParameterLib::findParameter<double>(
44  config, "peak_normal_traction", parameters, 1);
45 
46  auto const penalty_aperture_cutoff =
48  config.getConfigParameter<double>("penalty_aperture_cutoff");
49 
50  auto const tension_cutoff =
52  config.getConfigParameter<bool>("tension_cutoff");
53 
54  MaterialPropertiesParameters mp{Kn, Ks, Gc, t_np};
55 
56  return std::make_unique<CohesiveZoneModeI<DisplacementDim>>(
57  penalty_aperture_cutoff, tension_cutoff, mp);
58 }
59 
60 template std::unique_ptr<FractureModelBase<2>> createCohesiveZoneModeI(
61  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
62  BaseLib::ConfigTree const& config);
63 
64 template std::unique_ptr<FractureModelBase<3>> createCohesiveZoneModeI(
65  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
66  BaseLib::ConfigTree const& config);
67 
68 } // namespace CohesiveZoneModeI
69 } // namespace Fracture
70 } // namespace MaterialLib
void DBUG(char const *fmt, Args const &... args)
Definition: Logging.h:27
void checkConfigParameter(std::string const &param, T const &value) const
T getConfigParameter(std::string const &param) const
std::unique_ptr< FractureModelBase< DisplacementDim > > createCohesiveZoneModeI(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, BaseLib::ConfigTree const &config)