48 #include <Zoltan2_config.h>
51 #include <Teuchos_ParameterList.hpp>
52 #include <Teuchos_DefaultComm.hpp>
53 #include <Teuchos_Array.hpp>
54 #include <Teuchos_ParameterEntryValidator.hpp>
58 int main(
int narg,
char *arg[])
60 Tpetra::ScopeGuard tscope(&narg, &arg);
61 Teuchos::RCP<const Teuchos::Comm<int> > comm = Tpetra::getDefaultComm();
63 int rank = comm->getRank();
70 Teuchos::ParameterList validParameters;
72 Teuchos::ParameterList myParams(
"testParameterList");
74 myParams.set(
"debug_level",
"detailed_status");
75 myParams.set(
"debug_procs",
"all");
76 myParams.set(
"debug_output_stream",
"std::cout");
78 myParams.set(
"timer_output_file",
"appPerformance.txt");
88 myParams.validateParametersAndSetDefaults(validParameters);
90 catch(std::exception &e){
91 std::cerr <<
"Validate parameters generated an error:" << std::endl;
92 std::cerr << e.what() << std::endl;
93 std::cerr <<
"FAIL" << std::endl;
97 validParameters = Teuchos::ParameterList();
99 std::cout << std::endl;
100 std::cout <<
"A few parameters after validation: " << std::endl;
101 std::cout << myParams << std::endl;
104 std::cout <<
"debug_procs translation: ";
106 std::cout << std::endl;
111 Teuchos::ParameterList faultyParams(
"badParameterList");
112 faultyParams.set(
"debug_procs",
"not-even-remotely-an-integer-range");
116 faultyParams.validateParametersAndSetDefaults(validParameters);
118 catch(std::exception &e){
119 std::cout << std::endl;
120 std::cout <<
"Invalid parameter correctly generated an error:" << std::endl;
121 std::cout << e.what() << std::endl;
125 validParameters = Teuchos::ParameterList();
128 std::cerr <<
"Bad parameter was not detected in parameter list." << std::endl;
134 Teuchos::ParameterList all(
"setAllParametersList");
135 all.set(
"debug_level",
"basic_status");
137 all.set(
"debug_procs",
"1,2,5-10,2");
138 all.set(
"memory_procs",
"1,2,3,4,all");
140 all.set(
"debug_output_stream",
"std::cerr");
141 all.set(
"timer_output_stream",
"std::cout");
142 all.set(
"memory_output_stream",
"/dev/null");
145 all.set(
"debug_output_file",
"/home/me/debug.txt");
146 all.set(
"timer_output_file",
"/home/me/performance.txt");
147 all.set(
"memory_output_file",
"/home/me/memoryUsed.txt");
149 all.set(
"error_check_level",
"basic_assertions");
151 all.set(
"partitioning_objective",
"minimize_cut_edge_weight");
153 all.set(
"imbalance_tolerance", 1.2);
155 all.set(
"num_global_parts", 12);
156 all.set(
"num_local_parts", 2);
158 all.set(
"partitioning_approach",
"partition");
160 all.set(
"objects_to_partition",
"graph_vertices");
162 all.set(
"model",
"hypergraph");
164 all.set(
"algorithm",
"phg");
166 all.set(
"symmetrize_input",
"no");
167 all.set(
"subset_graph",
false);
171 all.validateParametersAndSetDefaults(validParameters);
173 catch(std::exception &e){
174 std::cerr <<
"Validate parameters generated an error:" << std::endl;
175 std::cerr << e.what() << std::endl;
176 std::cerr <<
"FAIL" << std::endl;
180 std::cout << std::endl;
181 std::cout <<
"All parameters validated and modified: ";
182 std::cout << all << std::endl;
185 std::cout <<
"debug_procs translation: ";
187 std::cout << std::endl;
190 std::cout <<
"memory_procs translation: ";
192 std::cout << std::endl;
196 std::cout << std::endl;
197 std::cout <<
"Parameter documentation:" << std::endl;
200 std::cout <<
"PASS" << std::endl;
void createValidatorList(const Teuchos::ParameterList &plIn, Teuchos::ParameterList &plOut)
Create a list by adding validators to the users parameter list.
int main(int narg, char **arg)
void printListDocumentation(const Teuchos::ParameterList &pl, std::ostream &os, std::string listNames)
Teuchos::Array< int > rangeList_t
Define IntegerRangeList validator.
Defines the Environment class.
void printIntegralRangeList(std::ostream &os, Teuchos::Array< Integral > &irl)
A helper function that prints the meaning of an encoded integer range list.