Revision 006ecf842e352201cf8c6019f677da97e8ef4575 authored by MostafaMollaali on 18 October 2023, 10:54:19 UTC, committed by MostafaMollaali on 18 October 2023, 10:54:19 UTC
Addressing bar_COHESIVE_linear Issue on MAC See merge request ogs/ogs!4768
ConstantParameter.cpp
/**
* \file
* \copyright
* Copyright (c) 2012-2023, 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 "ConstantParameter.h"
#include "BaseLib/ConfigTree.h"
#include "BaseLib/Error.h"
#include "BaseLib/Logging.h"
namespace ParameterLib
{
std::unique_ptr<ParameterBase> createConstantParameter(
std::string const& name, BaseLib::ConfigTree const& config)
{
//! \ogs_file_param{prj__parameters__parameter__type}
config.checkConfigParameter("type", "Constant");
// Optional case for single-component variables where the value can be used.
// If the 'value' tag is found, use it and return. Otherwise continue with
// then required tag 'values'.
{
auto const value =
//! \ogs_file_param{prj__parameters__parameter__Constant__value}
config.getConfigParameterOptional<std::vector<double>>("value");
if (value)
{
if (value->size() != 1)
{
OGS_FATAL(
"Expected to read exactly one value, but {:d} were given.",
value->size());
}
DBUG("Using value {:g} for constant parameter.", (*value)[0]);
return std::make_unique<ConstantParameter<double>>(name,
(*value)[0]);
}
}
// Value tag not available; continue with required values tag.
std::vector<double> const values =
//! \ogs_file_param{prj__parameters__parameter__Constant__values}
config.getConfigParameter<std::vector<double>>("values");
if (values.empty())
{
OGS_FATAL("No value available for constant parameter.");
}
DBUG("Using following values for the constant parameter:");
for (double const v : values)
{
(void)v; // unused value if building w/o DBUG output.
DBUG("\t{:g}", v);
}
return std::make_unique<ConstantParameter<double>>(name, values);
}
} // namespace ParameterLib
Computing file changes ...