swh:1:snp:f521c49ab17ef7db6ec70b2430e1ed203f50383f
Raw File
Tip revision: ea071a5ce1a5301caef764e6c30f7d4f4740b82b authored by wenqing on 08 February 2022, 14:57:48 UTC
Merge branch 'RM_T_init_total_stress_vapor_diffusion_latent_heat_use_MPL_vapour_stuff' into 'master'
Tip revision: ea071a5
FunctionParameter.cpp
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#include "FunctionParameter.h"

#include "BaseLib/ConfigTree.h"

namespace ParameterLib
{
std::unique_ptr<ParameterBase> createFunctionParameter(
    std::string const& name, BaseLib::ConfigTree const& config,
    std::map<std::string,
             std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const&
        curves)
{
    //! \ogs_file_param{prj__parameters__parameter__type}
    config.checkConfigParameter("type", "Function");

    std::vector<std::string> vec_expressions;

    //! \ogs_file_param{prj__parameters__parameter__Function__expression}
    for (auto const& p : config.getConfigSubtreeList("expression"))
    {
        std::string const expression_str = p.getValue<std::string>();
        vec_expressions.emplace_back(expression_str);
    }

    return std::make_unique<FunctionParameter<double>>(name, vec_expressions,
                                                       curves);
}

}  // namespace ParameterLib
back to top