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
20namespace MaterialLib
21{
22namespace PorousMedium
23{
24std::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)