https://gitlab.opengeosys.org/ogs/ogs.git
Raw File
Tip revision: a57c08dd8891d9efae6fbbad9a343f7149da3aa1 authored by Wenqing Wang on 04 June 2021, 13:34:00 UTC
[NumLib] Add a restriction to map the local dNdx to the global
Tip revision: a57c08d
FunctionParameter.cpp
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2021, 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