OGS
createPorosityModel.cpp
Go to the documentation of this file.
1 
13 #include "createPorosityModel.h"
14 
15 #include "BaseLib/ConfigTree.h"
16 #include "BaseLib/Error.h"
17 #include "ParameterLib/Utils.h"
18 #include "Porosity.h"
19 
20 namespace MaterialLib
21 {
22 namespace PorousMedium
23 {
24 std::unique_ptr<Porosity> createPorosityModel(
25  BaseLib::ConfigTree const& config,
26  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters)
27 {
29  auto const type = config.getConfigParameter<std::string>("type");
30 
31  if (type == "Constant")
32  {
33  auto const& constant_porosity = ParameterLib::findParameter<double>(
34  config,
36  "porosity_parameter", parameters, 1);
37 
38  return std::make_unique<Porosity>(constant_porosity);
39  }
40 
41  OGS_FATAL("The porosity type {:s} is unavailable.\n",
42  "The available type is Constant.",
43  type.data());
44 }
45 
46 } // namespace PorousMedium
47 } // namespace MaterialLib
#define OGS_FATAL(...)
Definition: Error.h:26
T getConfigParameter(std::string const &param) const
std::unique_ptr< Porosity > createPorosityModel(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters)