diff --git a/ProcessLib/InitialCondition.h b/ProcessLib/InitialCondition.h deleted file mode 100644 index ccdd80833f46eb4e64eae551682bf5cb12945954..0000000000000000000000000000000000000000 --- a/ProcessLib/InitialCondition.h +++ /dev/null @@ -1,35 +0,0 @@ -/** - * \copyright - * Copyright (c) 2012-2016, OpenGeoSys Community (http://www.opengeosys.org) - * Distributed under a Modified BSD License. - * See accompanying file LICENSE.txt or - * http://www.opengeosys.org/project/license - * - */ - -#ifndef PROCESS_LIB_INITIAL_CONDITION_H_ -#define PROCESS_LIB_INITIAL_CONDITION_H_ - -#include "ProcessLib/Parameter/Parameter.h" - -namespace ProcessLib -{ -// TODO document -class InitialCondition -{ -public: - InitialCondition(Parameter<double> const& param) : _param(param) {} - - std::vector<double> const& getTuple( - double const t, SpatialPosition const& pos) const - { - return _param.getTuple(t, pos); - } - -private: - Parameter<double> const& _param; -}; - -} // namespace ProcessLib - -#endif // PROCESS_LIB_INITIAL_CONDITION_H_ diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index c72224d7af14b6d2857f7c13d0265b82fe792fdb..857e24c9689f68ffc691b585f9d3d637a6506224 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -81,9 +81,7 @@ void Process::setInitialConditions(double const t, GlobalVector& x) ++variable_id) { ProcessVariable& pv = _process_variables[variable_id]; - auto const* ic = pv.getInitialCondition(); - if (!ic) - continue; + auto const& ic = pv.getInitialCondition(); auto const num_comp = pv.getNumberOfComponents(); @@ -93,7 +91,7 @@ void Process::setInitialConditions(double const t, GlobalVector& x) MeshLib::MeshItemType::Node, node_id); pos.setNodeID(node_id); - auto const& tup = ic->getTuple(t, pos); + auto const& tup = ic.getTuple(t, pos); for (int comp_id = 0; comp_id < num_comp; ++comp_id) { diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp index 40d2645adcfa827c01deb0cbb02fb6d25efdc402..6043cf3ee133c4460fa14fdf7f13b656d3bbb8f8 100644 --- a/ProcessLib/ProcessVariable.cpp +++ b/ProcessLib/ProcessVariable.cpp @@ -26,23 +26,14 @@ ProcessVariable::ProcessVariable( _name(config.getConfigParameter<std::string>("name")), _mesh(mesh), //! \ogs_file_param{prj__process_variables__process_variable__components} - _n_components(config.getConfigParameter<int>("components")) + _n_components(config.getConfigParameter<int>("components")), + _initial_condition(findParameter<double>( + //! \ogs_file_param{prj__process_variables__process_variable__initial_condition} + config.getConfigParameter<std::string>("initial_condition"), + parameters, _n_components)) { DBUG("Constructing process variable %s", _name.c_str()); - // Initial condition - if (auto ic_name = - //! \ogs_file_param{prj__process_variables__process_variable__initial_condition} - config.getConfigParameterOptional<std::string>("initial_condition")) - { - _initial_condition.reset(new InitialCondition( - findParameter<double>(*ic_name, parameters, _n_components))); - } - else - { - INFO("No initial condition found."); - } - // Boundary conditions //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions} if (auto bcs_config = config.getConfigSubtreeOptional("boundary_conditions")) diff --git a/ProcessLib/ProcessVariable.h b/ProcessLib/ProcessVariable.h index ca2828e2acd4ad08f4f34c2b32b0de984d9b3041..2a29dabc3fb860b7aa825dca4f22eca9d0e1dc8a 100644 --- a/ProcessLib/ProcessVariable.h +++ b/ProcessLib/ProcessVariable.h @@ -10,9 +10,9 @@ #ifndef PROCESS_LIB_PROCESS_VARIABLE_H_ #define PROCESS_LIB_PROCESS_VARIABLE_H_ -#include "InitialCondition.h" #include "ProcessLib/BoundaryCondition/BoundaryCondition.h" #include "ProcessLib/BoundaryCondition/BoundaryConditionConfig.h" +#include "ProcessLib/Parameter/Parameter.h" namespace MeshLib { @@ -47,9 +47,9 @@ public: const int variable_id, unsigned const integration_order); - InitialCondition const* getInitialCondition() const + Parameter<double> const& getInitialCondition() const { - return _initial_condition.get(); + return _initial_condition; } // Get or create a property vector for results. @@ -61,7 +61,7 @@ private: std::string const _name; MeshLib::Mesh& _mesh; const int _n_components; - std::unique_ptr<InitialCondition> _initial_condition; + Parameter<double> const& _initial_condition; std::vector<BoundaryConditionConfig> _bc_configs; };