MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_ML2MueLuParameterTranslator.hpp
Go to the documentation of this file.
1
// @HEADER
2
//
3
// ***********************************************************************
4
//
5
// MueLu: A package for multigrid based preconditioning
6
// Copyright 2012 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact
39
// Jonathan Hu (jhu@sandia.gov)
40
// Andrey Prokopenko (aprokop@sandia.gov)
41
// Ray Tuminaro (rstumin@sandia.gov)
42
//
43
// ***********************************************************************
44
//
45
// @HEADER
46
47
#ifndef MUELU_ML2MUELUPARAMETERTRANSLATOR_HPP
48
#define MUELU_ML2MUELUPARAMETERTRANSLATOR_HPP
49
50
#include <functional>
51
#include <cctype>
52
53
#include <Teuchos_ParameterList.hpp>
54
#include <Teuchos_XMLParameterListCoreHelpers.hpp>
55
56
#include <
MueLu_Exceptions.hpp
>
57
#include <
MueLu_MasterList.hpp
>
58
#include <
MueLu_ParameterListUtils.hpp
>
59
60
namespace
MueLu
{
61
68
class
ML2MueLuParameterTranslator
{
69
public
:
71
72
74
ML2MueLuParameterTranslator
() { }
75
77
virtual
~ML2MueLuParameterTranslator
() { }
78
80
82
83
88
static
std::string
translate
(Teuchos::ParameterList & paramList,
const
std::string& defaultVals=
""
) {
89
return
SetParameterList
(paramList, defaultVals);
90
}
91
96
static
std::string
translate
(
const
std::string & xmlFileName,
const
std::string& defaultVals=
""
) {
97
Teuchos::RCP<Teuchos::ParameterList> paramList = Teuchos::getParametersFromXmlFile(xmlFileName);
98
return
SetParameterList
(*paramList, defaultVals);
99
}
100
102
103
private
:
104
106
107
112
static
std::string
SetParameterList
(
const
Teuchos::ParameterList & paramList_in,
const
std::string& defaultVals);
113
114
121
static
std::string
GetSmootherFactory
(
const
Teuchos::ParameterList& paramList, Teuchos::ParameterList& adaptingParamList,
const
std::string& pname,
const
std::string& value);
122
124
125
//
126
// helper routines
127
//
128
129
// trim from start
130
static
inline
std::string &
ltrim
(std::string &s) {
131
s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](
int
c){return !std::isspace(c);}));
132
return
s;
133
}
134
135
// trim from end
136
static
inline
std::string &
rtrim
(std::string &s) {
137
s.erase(std::find_if(s.rbegin(), s.rend(), [](
int
c){return !std::isspace(c);}).base(), s.end());
138
return
s;
139
}
140
141
// trim from both ends
142
static
inline
std::string &
trim
(std::string &s) {
143
return
ltrim
(
rtrim
(s));
144
}
145
147
148
//std::string xmlString_; ///! string containing MueLu XML parameters corresponding to ML parameters
150
151
};
// class MLParameterListInterpreter
152
153
154
}
// end namespace MueLu
155
156
#endif
/* MUELU_ML2MUELUPARAMETERTRANSLATOR_HPP */
MueLu_Exceptions.hpp
MueLu_MasterList.hpp
MueLu_ParameterListUtils.hpp
MueLu::ML2MueLuParameterTranslator::ML2MueLuParameterTranslator
ML2MueLuParameterTranslator()
Constructor.
Definition
MueLu_ML2MueLuParameterTranslator.hpp:74
MueLu::ML2MueLuParameterTranslator::trim
static std::string & trim(std::string &s)
Definition
MueLu_ML2MueLuParameterTranslator.hpp:142
MueLu::ML2MueLuParameterTranslator::translate
static std::string translate(const std::string &xmlFileName, const std::string &defaultVals="")
: Translate ML parameters to MueLu parameter XML string
Definition
MueLu_ML2MueLuParameterTranslator.hpp:96
MueLu::ML2MueLuParameterTranslator::ltrim
static std::string & ltrim(std::string &s)
Definition
MueLu_ML2MueLuParameterTranslator.hpp:130
MueLu::ML2MueLuParameterTranslator::SetParameterList
static std::string SetParameterList(const Teuchos::ParameterList ¶mList_in, const std::string &defaultVals)
: Interpret parameter list
Definition
MueLu_ML2MueLuParameterTranslator.cpp:271
MueLu::ML2MueLuParameterTranslator::translate
static std::string translate(Teuchos::ParameterList ¶mList, const std::string &defaultVals="")
: Translate ML parameters to MueLu parameter XML string
Definition
MueLu_ML2MueLuParameterTranslator.hpp:88
MueLu::ML2MueLuParameterTranslator::~ML2MueLuParameterTranslator
virtual ~ML2MueLuParameterTranslator()
Destructor.
Definition
MueLu_ML2MueLuParameterTranslator.hpp:77
MueLu::ML2MueLuParameterTranslator::GetSmootherFactory
static std::string GetSmootherFactory(const Teuchos::ParameterList ¶mList, Teuchos::ParameterList &adaptingParamList, const std::string &pname, const std::string &value)
: Helper function which translates ML smoother/solver paramters to MueLu XML string
Definition
MueLu_ML2MueLuParameterTranslator.cpp:62
MueLu::ML2MueLuParameterTranslator::rtrim
static std::string & rtrim(std::string &s)
Definition
MueLu_ML2MueLuParameterTranslator.hpp:136
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:78
src
Interface
MueLu_ML2MueLuParameterTranslator.hpp
Generated by
1.17.0