OGS
CreateLiquidViscosityVogels.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5
9
10namespace MaterialPropertyLib
11{
12std::unique_ptr<Property> createLiquidViscosityVogels(
13 BaseLib::ConfigTree const& config)
14{
16 config.checkConfigParameter("type", "LiquidViscosityVogels");
17 INFO("Using Vogels model, which gives viscosity in SI unit, Pa s");
18
19 // Second access for storage.
21 auto property_name = config.peekConfigParameter<std::string>("name");
22
23 auto const fluid_type =
25 config.peekConfigParameter<std::string>("liquid_type");
26
27 if (fluid_type == "Water")
28 {
30 config.checkConfigParameter("liquid_type", "Water");
31
32 const VogelsViscosityConstantsWater constants;
33 return std::make_unique<
35 std::move(property_name), std::move(constants));
36 }
37 if (fluid_type == "CO2")
38 {
40 config.checkConfigParameter("liquid_type", "CO2");
41 const VogelsViscosityConstantsCO2 constants;
42 return std::make_unique<
44 std::move(property_name), std::move(constants));
45 }
46 if (fluid_type == "CH4")
47 {
49 config.checkConfigParameter("liquid_type", "CH4");
50 const VogelsViscosityConstantsCH4 constants;
51 return std::make_unique<
53 std::move(property_name), std::move(constants));
54 }
56 "The fluid type {:s} for Vogels model is unavailable.\n"
57 "The available fluid types are Water, CO2 and CH4\n",
58 fluid_type.data());
59}
60} // namespace MaterialPropertyLib
#define OGS_FATAL(...)
Definition Error.h:19
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:28
T peekConfigParameter(std::string const &param) const
void checkConfigParameter(std::string const &param, std::string_view const value) const
std::unique_ptr< Property > createLiquidViscosityVogels(BaseLib::ConfigTree const &config)