OGS
CreateNodalSourceTerm.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
7#include "BaseLib/Logging.h"
8#include "NodalSourceTerm.h"
10
11namespace ProcessLib
12{
13std::unique_ptr<SourceTerm> createNodalSourceTerm(
14 BaseLib::ConfigTree const& config, MeshLib::Mesh const& st_mesh,
15 std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table,
16 std::size_t const source_term_mesh_id, const int variable_id,
17 const int component_id,
18 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters)
19{
20 DBUG("Constructing NodalSourceTerm from config.");
22 config.checkConfigParameter("type", "Nodal");
23
25 auto const param_name = config.getConfigParameter<std::string>("parameter");
26 DBUG("Using parameter {:s} as nodal source term.", param_name);
27
28 auto& param = ParameterLib::findParameter<double>(param_name, parameters, 1,
29 &st_mesh);
30
31 return std::make_unique<NodalSourceTerm>(std::move(dof_table),
32 source_term_mesh_id, st_mesh,
33 variable_id, component_id, param);
34}
35
36} // namespace ProcessLib
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:22
T getConfigParameter(std::string const &param) const
void checkConfigParameter(std::string const &param, std::string_view const value) const
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const &parameter_name, std::vector< std::unique_ptr< ParameterBase > > const &parameters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)
std::unique_ptr< SourceTerm > createNodalSourceTerm(BaseLib::ConfigTree const &config, MeshLib::Mesh const &st_mesh, std::unique_ptr< NumLib::LocalToGlobalIndexMap > dof_table, std::size_t const source_term_mesh_id, const int variable_id, const int component_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)