11 SUPPORTED INPUT FILE TYPES:
12 1. Geometric Generator
17 SUPPORTED PROBLEM TYPES:
20 SUPPORTED INPUT DATA TYPES:
22 2. (x,t,e)petra_crs_matrix
23 3. (x,t,e)petra_crs_graph
24 4. (x,t,e)petra_vector
25 5. (x,t,e)petra_multivector
27 SUPPORTED INPUT ADAPTERS:
35 SUPPORTED TIMERS FOR COMPARSISON:
36 1. adapter construction time
37 2. problem construction time
40 ** REFER TO THE README FOR A MORE DETAILED EXPLANATION
46 <!-- ALL DEFINITION BLOCKS MUST BE WRAPPED IN A MAIN BLOCK.
47 THE NAME OF THE MAIN BLOCK IS ARBITRAY. -->
49 <ParameterList name=
"test_driver template">
55 1. INPUT SOURCE BLOCK DEFINITION
60 <!--####################################################
62 * Note only once input source per driver input
63 is allowed, i.e. one data source
for all
64 tests. There are 2
main input block formats,
65 both of which are illustrated below. You may only
66 use one of these blocks per input file!!!!
68 The first is
for a data source to be read
69 from file. The second is
for galeri generate data on
70 a structured grid. Galeri grids can be 1, 2, or 3D.
71 The dimension is infered by which coordinate parameters
72 (x,y,z) are defined, e.g. if only the x parameter is
73 defined then the problem is assumed to be 1D.
75 ** parameters:
distribute input and debug are optional.
76 If not defined they default to true.
77 #####################################################-->
79 <ParameterList name=
"InputParameters">
80 <Parameter name=
"debug" type=
"bool" value=
"true/false"/>
81 <Parameter name=
"distribute input" type=
"bool" value=
"true/false"/>
83 <Parameter name=
"input path" type=
"string" value=
"PATH/TO/INPUT/DIRECTORY"/>
84 <Parameter name=
"input file" type=
"string" value=
"FILE NAME (NO EXTENSION)"/>
85 <Parameter name=
"file type" type=
"string" value=
"INPUT FILE TYPE"/>
88 <!-- GALERI GRIDS MAY BE 1,2, OR 3D.-->
89 <!-- FOR A 1D PROBLEM EXCLUDE x AND y PARAMETERS, ETC.-->
90 <ParameterList name=
"InputParameters">
91 <Parameter name=
"debug" type=
"bool" value=
"true/false"/>
92 <Parameter name=
"distribute input" type=
"bool" value=
"true/false"/>
94 <Parameter name=
"x" type=
"int" value=
"##"/>
95 <Parameter name=
"y" type=
"int" value=
"##"/>
96 <Parameter name=
"z" type=
"int" value=
"##"/>
97 <Parameter name=
"equation type" type=
"string" value=
"GALERI EQUATION"/>
103 2. PROBLEM BLOCK DEFINITION
108 <ParameterList name=
"TEST/PROBLEM TITLE #1">
110 <!--####################################################
111 Specify the problem type
112 #####################################################-->
114 <Parameter name=
"kind" type=
"string" value=
"PROBLEM TYPE"/>
117 <!--####################################################
118 Define block
for the input adapter
119 * must define a data type
120 ** multivector data types require you to
121 define a
'vector_dimension' parameter,
122 which is an
int value corresponding to
123 the multivector dimension
124 * must define an adapter type
125 #####################################################-->
127 <ParameterList name=
"InputAdapterParameters">
128 <Parameter name=
"data type" type=
"string" value=
"INPUT DATA TYPE"/>
129 <Parameter name=
"input adapter" type=
"string" value=
"INPUT ADAPTER TYPE"/>
133 <!--####################################################
134 Define block of Zoltan2 problem parameters
135 * all Zoltan2 parameters are valid
136 * tell Zoltan to compute metrics
if you are
138 by the following metrics block
139 #####################################################-->
141 <ParameterList name=
"Zoltan2Parameters">
142 <Parameter name=
"algorithm" type=
"string" value=
"SPECIFY ALGORITHM" />
143 <Parameter name=
"rectilinear" type=
"bool" value=
"true/false"/>
144 <Parameter name=
"compute_metrics" type=
"bool" value=
"true/false"/>
148 <!--####################################################
149 (OPTIONAL) Define block of metric tolerances
150 * block names must == Zoltan2 metric name
151 *
object count, weight ##, edge ## etc
152 #####################################################-->
154 <ParameterList name=
"Metrics">
155 <ParameterList name=
"METRIC NAME">
156 <Parameter name=
"lower" type=
"double" value=
"##.####"/>
157 <Parameter name=
"upper" type=
"double" value=
"##.####"/>
163 <ParameterList name=
"TEST/PROBLEM TITLE #2">
164 <!-- Define second problem here... -->
167 <ParameterList name=
"TEST/PROBLEM TITLE #3">
168 <!-- Define 3rd problem here, etc... -->
176 3. (OPTIONAL) COMPARISON BLOCK DEFINITION
181 <!--####################################################
182 Define comparison block to compare solutions of
183 problems A and B, or to compare metrics/timers
184 of a problem versus a reference problem
185 * define problems to compare by block name
187 #####################################################-->
189 <ParameterList name=
"Comparison">
190 <Parameter name=
"A" type=
"string" value=
"TEST/PROBLEM TITLE #1"/>
191 <Parameter name=
"B" type=
"string" value=
"TEST/PROBLEM TITLE #2"/>
194 <ParameterList name=
"Comparison">
195 <Parameter name=
"A" type=
"string" value=
"TEST/PROBLEM TITLE #1"/>
196 <Parameter name=
"B" type=
"string" value=
"TEST/PROBLEM TITLE #3"/>
199 <ParameterList name=
"Comparison"> <!-- compare specified metrics of problem to a baseline reference-->
200 <Parameter name=
"Problem" type=
"string" value=
"TEST/PROBLEM TITLE #1"/>
201 <Parameter name=
"Reference" type=
"string" value=
"TEST/PROBLEM TITLE #2"/><!-- compare our test problem against
this one-->
203 <ParameterList name=
"metriccheck1">
204 <Parameter name=
"check" type=
"string" value=
"max edge cuts"/>
205 <Parameter name=
"weight" type=
"int" value=
"0"/>
206 <Parameter name=
"lower" type=
"double" value=
"1.0"/>
207 <Parameter name=
"upper" type=
"double" value=
"999.0"/>
209 <ParameterList name=
"metriccheck2">
210 <Parameter name=
"check" type=
"string" value=
"max edge cuts"/>
211 <Parameter name=
"weight" type=
"int" value=
"1"/>
212 <Parameter name=
"lower" type=
"double" value=
"1.0"/>
213 <Parameter name=
"upper" type=
"double" value=
"999.0"/>
215 <ParameterList name=
"metriccheck3">
216 <Parameter name=
"check" type=
"string" value=
"total edge cuts"/>
217 <Parameter name=
"weight" type=
"int" value=
"0"/>
218 <Parameter name=
"lower" type=
"double" value=
"1.0"/>
219 <Parameter name=
"upper" type=
"double" value=
"999.0"/>
221 <ParameterList name=
"metriccheck4">
222 <Parameter name=
"check" type=
"string" value=
"total edge cuts"/>
223 <Parameter name=
"weight" type=
"int" value=
"1"/>
224 <Parameter name=
"lower" type=
"double" value=
"1.0"/>
225 <Parameter name=
"upper" type=
"double" value=
"999.0"/>
228 <ParameterList name=
"TIMER NAME">
229 <Parameter name=
"lower" type=
"double" value=
"##.####"/>
230 <Parameter name=
"upper" type=
"double" value=
"##.####"/>
void distribute(Teuchos::ArrayRCP< size_t > &myNumEntriesPerRow, Teuchos::ArrayRCP< size_t > &myRowPtr, Teuchos::ArrayRCP< global_ordinal_type > &myColInd, Teuchos::ArrayRCP< scalar_type > &myValues, const Teuchos::RCP< const map_type > &pRowMap, global_ordinal_type *rowPtr, global_ordinal_type *colInd, const bool debug=false)
int main(int narg, char **arg)
static const std::string fail
static const std::string pass
int run(const RCP< const Comm< int > > &comm, int numGlobalParts, int testCnt, std::string *thisTest)