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;
127 parameter offset = (*result).second;
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);
141 else if (offset == use_reciprocal) {
142 params.use_reciprocal = int_val;
146 else if (entry.isType<
bool>()) {
147 params.use_reciprocal = entry.getValue(&dummy_bool);
151 params.overlap_mode = entry.getValue(&dummy_mode);
156 if (!entry_used && cerr_warning_if_unused) {
157 cerr <<
"Ifpack set_parameters warning: '"<<name<<
"' not used."<<endl;