Skip to content
Snippets Groups Projects
Commit 52487299 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[PL] Replace STBuilder with createST function.

parent d0004a40
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,8 @@
#include "MeshLib/Mesh.h"
#include "ProcessLib/BoundaryCondition/BoundaryCondition.h"
#include "ProcessLib/BoundaryCondition/CreateBoundaryCondition.h"
#include "ProcessLib/SourceTerms/CreateSourceTerm.h"
#include "ProcessLib/SourceTerms/NodalSourceTerm.h"
#include "ProcessLib/Utils/ProcessUtils.h"
namespace ProcessLib
......@@ -34,8 +36,7 @@ ProcessVariable::ProcessVariable(
_initial_condition(findParameter<double>(
//! \ogs_file_param{prj__process_variables__process_variable__initial_condition}
config.getConfigParameter<std::string>("initial_condition"),
parameters, _n_components)),
_source_term_builder(std::make_unique<SourceTermBuilder>())
parameters, _n_components))
{
DBUG("Constructing process variable %s", _name.c_str());
......@@ -147,8 +148,7 @@ ProcessVariable::ProcessVariable(ProcessVariable&& other)
_shapefunction_order(other._shapefunction_order),
_initial_condition(std::move(other._initial_condition)),
_bc_configs(std::move(other._bc_configs)),
_source_term_configs(std::move(other._source_term_configs)),
_source_term_builder(std::move(other._source_term_builder))
_source_term_configs(std::move(other._source_term_configs))
{
}
......@@ -201,7 +201,7 @@ ProcessVariable::createSourceTerms(
std::vector<std::unique_ptr<NodalSourceTerm>> source_terms;
for (auto& config : _source_term_configs)
source_terms.emplace_back(_source_term_builder->createSourceTerm(
source_terms.emplace_back(createSourceTerm(
config, dof_table, _mesh, variable_id, integration_order,
_shapefunction_order, parameters));
......
......@@ -12,7 +12,6 @@
#include "ProcessLib/BoundaryCondition/BoundaryConditionConfig.h"
#include "ProcessLib/Parameter/Parameter.h"
#include "ProcessLib/SourceTerms/SourceTermConfig.h"
#include "ProcessLib/SourceTerms/SourceTermBuilder.h"
namespace MeshLib
{
......@@ -98,7 +97,6 @@ private:
std::vector<BoundaryConditionConfig> _bc_configs;
std::vector<SourceTermConfig> _source_term_configs;
std::unique_ptr<SourceTermBuilder> _source_term_builder;
};
} // namespace ProcessLib
......@@ -9,8 +9,11 @@
#include "CreateNodalSourceTerm.h"
#include "BaseLib/FileTools.h"
#include <logog/include/logog.hpp>
#include "BaseLib/ConfigTree.h"
#include "ProcessLib/Utils/ProcessUtils.h"
#include "NodalSourceTerm.h"
namespace ProcessLib
......
......@@ -10,7 +10,25 @@
#pragma once
#include <memory>
#include "ProcessLib/Process.h"
#include <vector>
namespace BaseLib
{
class ConfigTree;
}
namespace MeshLib
{
class Mesh;
}
namespace NumLib
{
class LocalToGlobalIndexMap;
}
namespace ProcessLib
{
class NodalSourceTerm;
struct ParameterBase;
} // namespace ProcessLib
namespace ProcessLib
{
......
......@@ -7,18 +7,19 @@
*
*/
#include "SourceTermBuilder.h"
#include "SourceTermConfig.h"
#include "CreateSourceTerm.h"
#include "CreateNodalSourceTerm.h"
#include "NodalSourceTerm.h"
#include "SourceTermConfig.h"
namespace ProcessLib
{
std::unique_ptr<NodalSourceTerm> SourceTermBuilder::createSourceTerm(
std::unique_ptr<NodalSourceTerm> createSourceTerm(
const SourceTermConfig& config,
const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh,
const int variable_id, const unsigned integration_order,
const unsigned shapefunction_order,
const int variable_id, const unsigned /*integration_order*/,
const unsigned /*shapefunction_order*/,
std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters)
{
//! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type}
......@@ -26,24 +27,11 @@ std::unique_ptr<NodalSourceTerm> SourceTermBuilder::createSourceTerm(
if (type == "Nodal")
{
return createNodalSourceTerm(config, dof_table, mesh, variable_id,
integration_order, shapefunction_order,
parameters);
return ProcessLib::createNodalSourceTerm(
config.config, config.mesh, dof_table, mesh.getID(), variable_id,
*config.component_id, parameters);
}
OGS_FATAL("Unknown source term type: `%s'.", type.c_str());
}
std::unique_ptr<NodalSourceTerm> SourceTermBuilder::createNodalSourceTerm(
const SourceTermConfig& config,
const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh,
const int variable_id, const unsigned /*integration_order*/,
const unsigned /*shapefunction_order*/,
std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters)
{
return ProcessLib::createNodalSourceTerm(
config.config, config.mesh, dof_table, mesh.getID(), variable_id,
*config.component_id, parameters);
}
} // ProcessLib
} // namespace ProcessLib
......@@ -9,7 +9,9 @@
#pragma once
#include "NodalSourceTerm.h"
#include <vector>
#include <memory>
#include "ProcessLib/Parameter/Parameter.h"
namespace MeshLib
......@@ -20,35 +22,21 @@ class Mesh;
namespace NumLib
{
class LocalToGlobalIndexMap;
template <typename>
struct IndexValueVector;
}
} // namespace NumLib
namespace ProcessLib
{
class NodalSourceTerm;
struct SourceTermConfig;
} // namespace ProcessLib
class SourceTermBuilder
namespace ProcessLib
{
public:
virtual ~SourceTermBuilder() = default;
virtual std::unique_ptr<NodalSourceTerm> createSourceTerm(
const SourceTermConfig& config,
const NumLib::LocalToGlobalIndexMap& dof_table,
const MeshLib::Mesh& mesh, const int variable_id,
const unsigned integration_order, const unsigned shapefunction_order,
std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const&
parameters);
protected:
virtual std::unique_ptr<NodalSourceTerm> createNodalSourceTerm(
const SourceTermConfig& config,
const NumLib::LocalToGlobalIndexMap& dof_table,
const MeshLib::Mesh& mesh, const int variable_id,
const unsigned integration_order, const unsigned shapefunction_order,
std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const&
parameters);
};
} // ProcessLib
std::unique_ptr<NodalSourceTerm> createSourceTerm(
const SourceTermConfig& config,
const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh,
const int variable_id, const unsigned integration_order,
const unsigned shapefunction_order,
std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters);
} // namespace ProcessLib
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment