OGS
CreateCreepBGRa.cpp
Go to the documentation of this file.
1 
12 #include "CreateCreepBGRa.h"
13 
14 #include "BaseLib/ConfigTree.h"
16 #include "CreepBGRa.h"
17 #include "MechanicsBase.h"
19 #include "ParameterLib/Parameter.h"
20 #include "ParameterLib/Utils.h"
21 
22 namespace MaterialLib
23 {
24 namespace Solids
25 {
26 namespace Creep
27 {
28 template <int DisplacementDim>
29 std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
31  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
32  BaseLib::ConfigTree const& config)
33 {
35  config.checkConfigParameter("type", "CreepBGRa");
36  DBUG("Create CreepBGRa material");
37 
38  // Read elastic data first.
39  const bool skip_type_checking = true;
40  auto elastic_data =
41  MaterialLib::Solids::createLinearElasticIsotropic<DisplacementDim>(
42  parameters, config, skip_type_checking);
43 
44  auto& A = ParameterLib::findParameter<double>(
46  config, "a", parameters, 1);
47 
48  auto& n = ParameterLib::findParameter<double>(
50  config, "n", parameters, 1);
51 
52  auto& sigma0 = ParameterLib::findParameter<double>(
54  config, "sigma0", parameters, 1);
55 
56  auto& Q = ParameterLib::findParameter<double>(
58  config, "q", parameters, 1);
59 
60  auto const& nonlinear_solver_config =
62  config.getConfigSubtree("nonlinear_solver");
63  auto const nonlinear_solver_parameters =
64  NumLib::createNewtonRaphsonSolverParameters(nonlinear_solver_config);
65 
66  return std::unique_ptr<CreepBGRa<DisplacementDim>>{
68  nonlinear_solver_parameters, A, n,
69  sigma0, Q}};
70 }
71 
72 template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
74  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
75  BaseLib::ConfigTree const& config);
76 
77 template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
79  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
80  BaseLib::ConfigTree const& config);
81 } // namespace Creep
82 } // namespace Solids
83 } // namespace MaterialLib
void DBUG(char const *fmt, Args const &... args)
Definition: Logging.h:27
void checkConfigParameter(std::string const &param, T const &value) const
ConfigTree getConfigSubtree(std::string const &root) const
Definition: ConfigTree.cpp:146
A class for computing the BGRa creep model, which reads.
Definition: CreepBGRa.h:40
template std::unique_ptr< MaterialLib::Solids::MechanicsBase< 2 > > createCreepBGRa< 2 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, BaseLib::ConfigTree const &config)
template std::unique_ptr< MaterialLib::Solids::MechanicsBase< 3 > > createCreepBGRa< 3 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, BaseLib::ConfigTree const &config)
std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > createCreepBGRa(std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, BaseLib::ConfigTree const &config)
NewtonRaphsonSolverParameters createNewtonRaphsonSolverParameters(BaseLib::ConfigTree const &config)