Loading...
Searching...
No Matches
Parameter.hpp
//===========================================================================
//
// File: Parameter.hpp
//
// Created: Tue Jun 2 16:00:21 2009
//
// Author(s): Bård Skaflestad <bard.skaflestad@sintef.no>
// Atgeirr F Rasmussen <atgeirr@sintef.no>
//
// $Date$
//
// $Revision$
//
//===========================================================================
/*
Copyright 2009, 2010 SINTEF ICT, Applied Mathematics.
Copyright 2009, 2010 Statoil ASA.
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef OPM_PARAMETER_HEADER
#define OPM_PARAMETER_HEADER
#include <string>
#include <opm/common/utility/parameters/ParameterMapItem.hpp>
#include <opm/common/utility/parameters/ParameterStrings.hpp>
namespace Opm {
class Parameter : public ParameterMapItem {
public:
~Parameter() override {}
std::string getTag() const override { return ID_xmltag__param; }
Parameter(const std::string& value, const std::string& type)
: value_(value), type_(type) {}
const std::string& getValue() const { return value_; }
const std::string& getType() const { return type_; }
private:
std::string value_;
std::string type_;
};
std::string correct_parameter_tag(const ParameterMapItem& item);
std::string correct_type(const Parameter& parameter,
const std::string& type);
template<>
struct ParameterMapItemTrait<int> {
static int convert(const ParameterMapItem& item,
std::string& conversion_error,
const bool);
static std::string type() {return ID_param_type__int;}
};
template<>
struct ParameterMapItemTrait<double> {
static double convert(const ParameterMapItem& item,
std::string& conversion_error,
const bool);
static std::string type() {return ID_param_type__float;}
};
template<>
struct ParameterMapItemTrait<bool> {
static bool convert(const ParameterMapItem& item,
std::string& conversion_error,
const bool);
static std::string type() {return ID_param_type__bool;}
};
template<>
struct ParameterMapItemTrait<std::string> {
static std::string convert(const ParameterMapItem& item,
std::string& conversion_error,
const bool);
static std::string type() {return ID_param_type__string;}
};
} // namespace Opm
#endif // OPM_PARAMETER_HPP
Opm::Parameter
Definition Parameter.hpp:47
Opm::Parameter::getType
const std::string & getType() const
Definition Parameter.hpp:68
Opm::Parameter::~Parameter
~Parameter() override
Definition Parameter.hpp:51
Opm::Parameter::getTag
std::string getTag() const override
Definition Parameter.hpp:55
Opm::Parameter::Parameter
Parameter(const std::string &value, const std::string &type)
Definition Parameter.hpp:59
Opm::Parameter::getValue
const std::string & getValue() const
Definition Parameter.hpp:64
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Opm::correct_parameter_tag
std::string correct_parameter_tag(const ParameterMapItem &item)
Definition Parameter.cpp:47
Opm::ParameterMapItemTrait
Definition ParameterMapItem.hpp:64
Opm::ParameterMapItem
The parameter handlig system is structured as a tree, where each node inhertis from ParameterMapItem.
Definition ParameterMapItem.hpp:47