MCPcopy Create free account
hub / github.com/NanoComp/meep / main

Function main

tests/array-metadata.cpp:210–323  ·  view source on GitHub ↗

/ / /

Source from the content-addressed store, hash-verified

208/***************************************************************/
209/***************************************************************/
210int main(int argc, char *argv[]) {
211 initialize mpi(argc, argv);
212
213 /*--------------------------------------------------------------*/
214 /*- set default geometric parameters ---------------------------*/
215 /*--------------------------------------------------------------*/
216 // size of computational cell
217 double sx = 10.0;
218 double sy = 5.0;
219 double sz = 0.0;
220
221 // corners of array volume
222 double vxmin = -2.5, vxmax = -2.5;
223 double vymin = -1.0, vymax = +3.0;
224 double vzmin = 0.0, vzmax = 0.0;
225
226 double res = 10.0;
227
228 // double-valued command-line parameters
229 vector<const char *> parm_name;
230 vector<double *> parm_adrs;
231 parm_name.push_back("--sx");
232 parm_adrs.push_back(&sx);
233 parm_name.push_back("--sy");
234 parm_adrs.push_back(&sy);
235 parm_name.push_back("--sz");
236 parm_adrs.push_back(&sz);
237 parm_name.push_back("--vxmin");
238 parm_adrs.push_back(&vxmin);
239 parm_name.push_back("--vymin");
240 parm_adrs.push_back(&vymin);
241 parm_name.push_back("--vzmin");
242 parm_adrs.push_back(&vzmin);
243 parm_name.push_back("--vxmax");
244 parm_adrs.push_back(&vxmax);
245 parm_name.push_back("--vymax");
246 parm_adrs.push_back(&vymax);
247 parm_name.push_back("--vzmax");
248 parm_adrs.push_back(&vzmax);
249 parm_name.push_back("--res");
250 parm_adrs.push_back(&res);
251
252 /*--------------------------------------------------------------*/
253 /*- parse arguments --------------------------------------------*/
254 /*--------------------------------------------------------------*/
255 for (int narg = 1; narg < argc; narg++) {
256 // process double-valued parameters
257 size_t np;
258 for (np = 0; np < parm_name.size(); np++)
259 if (!strcasecmp(argv[narg], parm_name[np])) break;
260 if (np == parm_name.size()) meep::abort("unknown command-line option %s", argv[narg]);
261 if (narg + 1 == argc) meep::abort("no option specified for %s", argv[narg]);
262 if (1 != sscanf(argv[narg + 1], "%le", parm_adrs[np]))
263 meep::abort("invalid value %s specified for %s", argv[narg + 1], argv[narg]);
264 printf("Setting %s=%e.\n", argv[narg], *(parm_adrs[np]));
265 narg++;
266 }
267

Callers

nothing calls this directly

Calls 13

abortFunction · 0.85
vol1dFunction · 0.85
vol2dFunction · 0.85
vol3dFunction · 0.85
make_dielectricFunction · 0.85
zero_vecFunction · 0.85
has_directionFunction · 0.85
test_array_metadataFunction · 0.85
center_originMethod · 0.80
add_point_sourceMethod · 0.80
v3Function · 0.70

Tested by

no test coverage detected