43 #include <Epetra_CombineMode.h> 46 #ifdef HAVE_TEUCHOS_EXTENDED 47 #include <Teuchos_StrUtils.hpp> 53 Teuchos::map<std::string,parameter>&
key_map()
55 static Teuchos::map<std::string,parameter> ifpack_key_map;
56 return( ifpack_key_map );
62 static bool already_initialized =
false;
63 if (already_initialized) {
67 Teuchos::map<std::string,parameter>& ifp_key_map =
key_map();
80 already_initialized =
true;
86 #ifdef HAVE_TEUCHOS_EXTENDED 87 std::string upp = Teuchos::StrUtils::allCaps(s);
90 for(
unsigned i=0; i<upp.length(); ++i) {
91 upp[i] = toupper(upp[i]);
101 bool cerr_warning_if_unused)
108 Teuchos::map<std::string,parameter>& ifp_key_map =
key_map();
110 Teuchos::ParameterList::ConstIterator
111 pl_iter = parameterlist.begin(),
112 pl_end = parameterlist.end();
114 for(; pl_iter != pl_end; ++pl_iter) {
115 std::string name =
upper_case((*pl_iter).first);
117 const Teuchos::ParameterEntry& entry = (*pl_iter).second;
118 bool entry_used =
false;
120 Teuchos::map<std::string,parameter>::iterator result = ifp_key_map.find(name);
121 if (result != ifp_key_map.end()) {
123 double dummy_double = -99.9;
124 bool dummy_bool =
false;
129 if (entry.isType<
double>()) {
131 params.
double_params[offset] = entry.getValue(&dummy_double);
135 else if (entry.isType<
int>()) {
136 int int_val = entry.getValue(&dummy_int);
146 else if (entry.isType<
bool>()) {
156 if (!entry_used && cerr_warning_if_unused) {
157 cerr <<
"Ifpack set_parameters warning: '"<<name<<
"' not used."<<endl;
int int_params[LAST_INT_PARAM-FIRST_INT_PARAM+1]
double double_params[FIRST_INT_PARAM]
Teuchos::map< std::string, parameter > & key_map()
Epetra_CombineMode overlap_mode
void set_parameters(const Teuchos::ParameterList ¶meterlist, param_struct ¶ms, bool cerr_warning_if_unused)
void initialize_string_map()
std::string upper_case(const std::string &s)