OGS
CreateTESProcess.cpp
Go to the documentation of this file.
1 
11 #include "CreateTESProcess.h"
12 
15 #include "TESProcess.h"
16 
17 namespace ProcessLib
18 {
19 namespace TES
20 {
21 std::unique_ptr<Process> createTESProcess(
22  std::string name,
23  MeshLib::Mesh& mesh,
24  std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
25  std::vector<ProcessVariable> const& variables,
26  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
27  unsigned const integration_order,
28  BaseLib::ConfigTree const& config)
29 {
31  config.checkConfigParameter("type", "TES");
32 
33  DBUG("Create TESProcess.");
34 
36  auto const pv_config = config.getConfigSubtree("process_variables");
37 
38  auto per_process_variables = findProcessVariables(
39  variables, pv_config,
40  {
41  "fluid_pressure",
43  "temperature",
45  "vapour_mass_fraction"});
46  std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>
47  process_variables;
48  process_variables.push_back(std::move(per_process_variables));
49 
50  SecondaryVariableCollection secondary_variables;
51 
52  ProcessLib::createSecondaryVariables(config, secondary_variables);
53 
54  return std::make_unique<TESProcess>(
55  std::move(name), mesh, std::move(jacobian_assembler), parameters,
56  integration_order, std::move(process_variables),
57  std::move(secondary_variables), config);
58 }
59 
60 } // namespace TES
61 } // namespace ProcessLib
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
Handles configuration of several secondary variables from the project file.
std::unique_ptr< Process > createTESProcess(std::string name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, unsigned const integration_order, BaseLib::ConfigTree const &config)
std::vector< std::reference_wrapper< ProcessVariable > > findProcessVariables(std::vector< ProcessVariable > const &variables, BaseLib::ConfigTree const &pv_config, std::initializer_list< std::string > tags)
void createSecondaryVariables(BaseLib::ConfigTree const &config, SecondaryVariableCollection &secondary_variables)