OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Option.cpp
Go to the documentation of this file.
1//
2// Class Option
3// The OPTION command.
4// The user interface allowing setting of OPAL options.
5// The actual option flags are contained in namespace Options.
6//
7// Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
8// All rights reserved
9//
10// This file is part of OPAL.
11//
12// OPAL is free software: you can redistribute it and/or modify
13// it under the terms of the GNU General Public License as published by
14// the Free Software Foundation, either version 3 of the License, or
15// (at your option) any later version.
16//
17// You should have received a copy of the GNU General Public License
18// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
19//
20#include "BasicActions/Option.h"
21#include "Ippl.h"
22
28#include "Utilities/Options.h"
29
30#include "Utility/Inform.h"
31#include "Utility/IpplInfo.h"
32
33#include "Utilities/BiMap.h"
34
35#include <cstddef>
36#include <ctime>
37#include <iostream>
38#include <limits>
39
40extern Inform* gmsg;
41
42using namespace Options;
43
46 bimap.insert(DumpFrame::GLOBAL, "GLOBAL");
47 bimap.insert(DumpFrame::BUNCH_MEAN, "BUNCH_MEAN");
48 bimap.insert(DumpFrame::REFERENCE, "REFERENCE");
49 return bimap;
50}();
51
52namespace {
53 // The attributes of class Option.
54 enum {
55 ECHO,
56 INFO,
57 TRACE,
58 WARN,
59 SEED,
60 TELL,
61 PSDUMPFREQ,
62 STATDUMPFREQ,
63 STEPINFOFQ,
64 PSDUMPEACHTURN,
65 PSDUMPFRAME,
66 SPTDUMPFREQ,
67 REPARTFREQ,
68 REBINFREQ,
69 SCSOLVEFREQ,
70 MTSSUBSTEPS,
71 REMOTEPARTDEL,
72 RHODUMP,
73 EBDUMP,
74 CSRDUMP,
75 AUTOPHASE,
76 NUMBLOCKS,
77 RECYCLEBLOCKS,
78 NLHS,
79 CZERO,
80 RNGTYPE,
81 ENABLEHDF5,
82 ENABLEVTK,
83 ASCIIDUMP,
84 BOUNDPDESTROY,
85 BEAMHALOBOUNDARY,
86 CLOTUNEONLY,
87 IDEALIZED,
88 LOGBENDTRAJECTORY,
89 VERSION,
90 MEMORYDUMP,
91 HALOSHIFT,
92 DELPARTFREQ,
93 MINBINEMITTED,
94 MINSTEPFORREBIN,
95 COMPUTEPERCENTILES,
96 QM_MODE,
97 AGGRESSIVE_STATE_SYNC,
98 SIZE
99 };
100} // namespace
101
103 : Action(SIZE, "OPTION", "The \"OPTION\" statement defines OPAL execution options.") {
104 itsAttr[ECHO] = Attributes::makeBool("ECHO", "If true, give echo of input", echo);
105
106 itsAttr[INFO] = Attributes::makeBool("INFO", "If true, print information messages", info);
107
109 "TRACE",
110 "If true, print execution trace"
111 "Must be the first option in the inputfile in "
112 "order to render correct results",
113 mtrace);
114
115 itsAttr[WARN] = Attributes::makeBool("WARN", "If true, print warning messages", warn);
116
118 "SEED", "The seed for the random generator, -1 will use time(0) as seed ");
119
121 "TELL",
122 "If true, print the current settings. "
123 "Must be the last option in the inputfile in "
124 "order to render correct results",
125 false);
126
127 itsAttr[PSDUMPFREQ] = Attributes::makeReal(
128 "PSDUMPFREQ",
129 "The frequency to dump the phase space, "
130 "i.e.dump data when step%psDumpFreq==0, its default value is 10.",
131 psDumpFreq);
132
133 itsAttr[STATDUMPFREQ] = Attributes::makeReal(
134 "STATDUMPFREQ",
135 "The frequency to dump statistical data "
136 "(e.g. RMS beam quantities), i.e. dump data when step%statDumpFreq == 0, "
137 "its default value is 10.",
139
140 itsAttr[STEPINFOFQ] = Attributes::makeReal(
141 "STEPINFOFQ",
142 "The frequency to print per-step tracking status lines. "
143 "A value of 0 disables these status lines; its default value is 1.",
145
146 itsAttr[PSDUMPEACHTURN] = Attributes::makeBool(
147 "PSDUMPEACHTURN",
148 "If true, dump phase space after each "
149 "turn ,only aviable for OPAL-cycl, its default value is false",
151
152 itsAttr[SCSOLVEFREQ] = Attributes::makeReal(
153 "SCSOLVEFREQ", "The frequency to solve space charge fields. its default value is 1");
154
155 itsAttr[MTSSUBSTEPS] = Attributes::makeReal(
156 "MTSSUBSTEPS",
157 "How many small timesteps "
158 "are inside the large timestep used in multiple "
159 "time stepping (MTS) integrator");
160
161 itsAttr[REMOTEPARTDEL] = Attributes::makeReal(
162 "REMOTEPARTDEL",
163 "Artifically delete the remote particle "
164 "if its distance to the beam mass is larger than "
165 "REMOTEPARTDEL times of the beam rms size, "
166 "its default values is 0 (no delete) ",
168
170 "PSDUMPFRAME",
171 "Controls the frame of phase space dump in "
172 "stat file and h5 file. If 'GLOBAL' OPAL will dump in the "
173 "lab (global) Cartesian frame; if 'BUNCH_MEAN' OPAL will "
174 "dump in the local Cartesian frame of the beam mean; "
175 "if 'REFERENCE' OPAL will dump in the local Cartesian "
176 "frame of the reference particle 0. Only available for "
177 "OPAL-cycl.",
178 {"BUNCH_MEAN", "REFERENCE", "GLOBAL"}, "GLOBAL");
179
180 itsAttr[SPTDUMPFREQ] = Attributes::makeReal(
181 "SPTDUMPFREQ",
182 "The frequency to dump single "
183 "particle trajectory of particles with ID = 0 & 1, "
184 "its default value is 1.",
186
187 itsAttr[REPARTFREQ] = Attributes::makeReal(
188 "REPARTFREQ",
189 "The frequency to do particles repartition "
190 "for better load balance between nodes, its "
191 "default value is "
192 + std::to_string(repartFreq) + ".",
193 repartFreq);
194
195 itsAttr[MINBINEMITTED] = Attributes::makeReal(
196 "MINBINEMITTED",
197 "The number of bins that have to be emitted before the bins are squashed into "
198 "a single bin; the default value is "
199 + std::to_string(minBinEmitted) + ".",
201
202 itsAttr[MINSTEPFORREBIN] = Attributes::makeReal(
203 "MINSTEPFORREBIN",
204 "The number of steps into the simulation before the bins are squashed into "
205 "a single bin; the default value is "
206 + std::to_string(minStepForRebin) + ".",
208
209 itsAttr[REBINFREQ] = Attributes::makeReal(
210 "REBINFREQ",
211 "The frequency to reset energy bin ID for "
212 "all particles, its default value is 100.",
213 rebinFreq);
214
215 itsAttr[RHODUMP] = Attributes::makeBool(
216 "RHODUMP",
217 "If true, in addition to the phase "
218 "space the scalar rho field is also dumped (H5Block)",
219 rhoDump);
220
222 "EBDUMP",
223 "If true, in addition to the phase space the "
224 "E and B field at each particle is also dumped into the H5 file)",
225 ebDump);
226
227 itsAttr[CSRDUMP] = Attributes::makeBool(
228 "CSRDUMP",
229 "If true, the csr E field, line density "
230 "and the line density derivative is dumped into the "
231 "data directory)",
232 csrDump);
233
234 itsAttr[AUTOPHASE] = Attributes::makeReal(
235 "AUTOPHASE",
236 "If greater than zero OPAL is scanning "
237 "the phases of each rf structure in order to get maximum "
238 "acceleration. Defines the number of refinements of the "
239 "search range",
240 autoPhase);
241
243 "CZERO",
244 "If set to true a symmetric distribution is "
245 "created -> centroid == 0.0",
246 cZero);
247
249 "RNGTYPE",
250 "Type of pseudo- or quasi-random number generator, "
251 "see also Quasi-Random Sequences, GSL reference manual.",
252 {"RANDOM", "HALTON", "SOBOL", "NIEDERREITER"}, rngtype);
253
254 itsAttr[CLOTUNEONLY] = Attributes::makeBool(
255 "CLOTUNEONLY",
256 "If set to true stop after "
257 "CLO and tune calculation ",
259
260 itsAttr[NUMBLOCKS] = Attributes::makeReal(
261 "NUMBLOCKS",
262 "Maximum number of vectors in the Krylov "
263 "space (for RCGSolMgr). Default value is 0 and BlockCGSolMgr will be used.");
264
265 itsAttr[RECYCLEBLOCKS] = Attributes::makeReal(
266 "RECYCLEBLOCKS",
267 "Number of vectors in the recycle "
268 "space (for RCGSolMgr). Default value is 0 and BlockCGSolMgr will be used.");
269
271 "NLHS",
272 "Number of stored old solutions for extrapolating "
273 "the new starting vector. Default value is 1 and just the last solution is used.");
274
275 itsAttr[ENABLEHDF5] =
276 Attributes::makeBool("ENABLEHDF5", "If true, HDF5 actions are enabled", enableHDF5);
277
278 itsAttr[ENABLEVTK] = Attributes::makeBool(
279 "ENABLEVTK", "If true, writing of VTK files are enabled", enableVTK);
280
281 itsAttr[ASCIIDUMP] = Attributes::makeBool(
282 "ASCIIDUMP", "If true, some of the elements dump in ASCII instead of HDF5", asciidump);
283
284 itsAttr[BOUNDPDESTROY] = Attributes::makeReal(
285 "BOUNDPDESTROY",
286 "The number of sigmas away from the mean "
287 "at which particles are deleted. Default 10",
289
290 itsAttr[BEAMHALOBOUNDARY] = Attributes::makeReal(
291 "BEAMHALOBOUNDARY",
292 "Defines in terms of sigma where "
293 "the halo starts. Default 0.0",
295
296 itsAttr[IDEALIZED] = Attributes::makeBool(
297 "IDEALIZED",
298 "Using the hard edge model for the calculation "
299 "of path length. Default: false",
300 idealized);
301
302 itsAttr[LOGBENDTRAJECTORY] = Attributes::makeBool(
303 "LOGBENDTRAJECTORY",
304 "Writing the trajectory of "
305 "every bend to disk. Default: false",
307
308 itsAttr[VERSION] = Attributes::makeReal(
309 "VERSION", "Version of OPAL for which input file was written", version);
310
311 itsAttr[MEMORYDUMP] =
312 Attributes::makeBool("MEMORYDUMP", "If true, write memory to SDDS file", memoryDump);
313
314 itsAttr[HALOSHIFT] = Attributes::makeReal(
315 "HALOSHIFT", "Constant parameter to shift halo value (default: 0.0)", haloShift);
316
317 itsAttr[DELPARTFREQ] = Attributes::makeReal(
318 "DELPARTFREQ",
319 "The frequency to delete particles, "
320 "i.e. delete when step%delPartFreq == 0. Default: 1",
322
323 itsAttr[COMPUTEPERCENTILES] = Attributes::makeBool(
324 "COMPUTEPERCENTILES",
325 "Flag to control whether the 68.27 "
326 "(1 sigma for normal distribution), the 95.45 (2 sigmas), "
327 "the 99.73 (3 sigmas) and the 99.994 (4 sigmas) percentiles "
328 "for the beam size and the normalized emittance should "
329 "be computed. Default: false",
331
333 "QM_MODE",
334 "Storage mode for particle charge/mass. "
335 "SINGLE uses one shared value per container; "
336 "ATTRIBUTES stores per-particle values (accessible via per-particle "
337 "`Q`/`M` views).",
338 useQMAttributes ? std::string("ATTRIBUTES") : std::string("SINGLE"));
339
340 itsAttr[AGGRESSIVE_STATE_SYNC] = Attributes::makeBool(
341 "AGGRESSIVE_STATE_SYNC",
342 "If true, every mutation of the shared BunchStateHandler flags "
343 "(moments-dirty, unitless-positions, emitting-now, first-repartition) "
344 "performs an MPI allreduce so that all ranks converge to the same "
345 "value. Guards against rank-local divergence at the cost of an extra "
346 "collective on every state change. Default: false.",
348
350
352}
353
354Option::Option(const std::string& name, Option* parent) : Action(name, parent) {
379 Attributes::setPredefinedString(itsAttr[RNGTYPE], std::string(rngtype));
387 Attributes::setReal(itsAttr[BEAMHALOBOUNDARY], beamHaloBoundary);
394 Attributes::setBool(itsAttr[COMPUTEPERCENTILES], computePercentiles);
396 itsAttr[QM_MODE], useQMAttributes ? std::string("ATTRIBUTES") : std::string("SINGLE"));
397 Attributes::setBool(itsAttr[AGGRESSIVE_STATE_SYNC], aggressiveStateSync);
398}
399
401
402Option* Option::clone(const std::string& name) { return new Option(name, this); }
403
405 // Store the option flags.
410 psDumpEachTurn = Attributes::getBool(itsAttr[PSDUMPEACHTURN]);
411 remotePartDel = Attributes::getReal(itsAttr[REMOTEPARTDEL]);
422
425 computePercentiles = Attributes::getBool(itsAttr[COMPUTEPERCENTILES]);
426 const std::string qmMode = Attributes::getString(itsAttr[QM_MODE]);
427 if (qmMode == "ATTRIBUTES") {
428 useQMAttributes = true;
429 } else if (qmMode == "SINGLE") {
430 useQMAttributes = false;
431 } else {
432 throw OpalException(
433 "Option::execute",
434 "Unsupported QM_MODE '" + qmMode + "'. Use \"SINGLE\" or \"ATTRIBUTES\".");
435 }
436
437 aggressiveStateSync = Attributes::getBool(itsAttr[AGGRESSIVE_STATE_SYNC]);
438
441
442 if (Options::seed == -1)
443 rangen.init55(time(0));
444 else
446
448 /*
449 IpplInfo::Info->on(info);
450 IpplInfo::Warn->on(warn);
451 */
453
456 if (itsAttr[SEED]) {
457 seed = int(Attributes::getReal(itsAttr[SEED]));
458 if (seed == -1)
459 rangen.init55(time(0));
460 else
462 }
463
464 if (itsAttr[PSDUMPFREQ]) {
465 psDumpFreq = int(Attributes::getReal(itsAttr[PSDUMPFREQ]));
466 if (psDumpFreq == 0) psDumpFreq = std::numeric_limits<int>::max();
467 }
468
469 if (itsAttr[STATDUMPFREQ]) {
470 statDumpFreq = int(Attributes::getReal(itsAttr[STATDUMPFREQ]));
471 if (statDumpFreq == 0) statDumpFreq = std::numeric_limits<int>::max();
472 }
473
474 if (itsAttr[STEPINFOFQ]) {
475 stepInfoFreq = int(Attributes::getReal(itsAttr[STEPINFOFQ]));
476 if (stepInfoFreq < 0) stepInfoFreq = 0;
477 }
478
479 if (itsAttr[SPTDUMPFREQ]) {
480 sptDumpFreq = int(Attributes::getReal(itsAttr[SPTDUMPFREQ]));
481 if (sptDumpFreq == 0) sptDumpFreq = std::numeric_limits<int>::max();
482 }
483
484 if (itsAttr[SCSOLVEFREQ]) {
485 scSolveFreq = int(Attributes::getReal(itsAttr[SCSOLVEFREQ]));
486 scSolveFreq = (scSolveFreq < 1) ? 1 : scSolveFreq;
487 }
488
489 if (itsAttr[MTSSUBSTEPS]) {
490 mtsSubsteps = int(Attributes::getReal(itsAttr[MTSSUBSTEPS]));
491 }
492
493 if (itsAttr[REPARTFREQ]) {
494 repartFreq = int(Attributes::getReal(itsAttr[REPARTFREQ]));
495 }
496
497 if (itsAttr[MINBINEMITTED]) {
498 minBinEmitted = int(Attributes::getReal(itsAttr[MINBINEMITTED]));
499 }
500
501 if (itsAttr[MINSTEPFORREBIN]) {
502 minStepForRebin = int(Attributes::getReal(itsAttr[MINSTEPFORREBIN]));
503 }
504
505 if (itsAttr[REBINFREQ]) {
506 rebinFreq = int(Attributes::getReal(itsAttr[REBINFREQ]));
507 }
508
509 if (itsAttr[AUTOPHASE]) {
510 autoPhase = int(Attributes::getReal(itsAttr[AUTOPHASE]));
511 }
512
513 if (itsAttr[NUMBLOCKS]) {
514 numBlocks = int(Attributes::getReal(itsAttr[NUMBLOCKS]));
515 }
516
517 if (itsAttr[RECYCLEBLOCKS]) {
518 recycleBlocks = int(Attributes::getReal(itsAttr[RECYCLEBLOCKS]));
519 }
520
521 if (itsAttr[NLHS]) {
522 nLHS = int(Attributes::getReal(itsAttr[NLHS]));
523 }
524
525 if (itsAttr[BOUNDPDESTROY]) {
526 /*
527 * Historically, BOUNDPDESTROYFQ was used as a positive frequency and
528 * clamped to values >= 1 here. In OPALX, the same parameter now also
529 * encodes the N-sigma boundary used in ParticleContainer::
530 * markParticlesOutside(N). A value <= 0 is treated as "disabled"
531 * by markParticlesOutside, so we must *not* clamp it to 1 anymore.
532 */
533 boundpDestroy = Attributes::getReal(itsAttr[BOUNDPDESTROY]);
534 }
535
536 if (itsAttr[CZERO]) {
537 cZero = bool(Attributes::getBool(itsAttr[CZERO]));
538 }
539
540 if (itsAttr[RNGTYPE]) {
541 rngtype = std::string(Attributes::getString(itsAttr[RNGTYPE]));
542 } else {
543 rngtype = std::string("RANDOM");
544 }
545
546 if (itsAttr[BEAMHALOBOUNDARY]) {
547 beamHaloBoundary = Attributes::getReal(itsAttr[BEAMHALOBOUNDARY]);
548 } else {
550 }
551 if (itsAttr[CLOTUNEONLY]) {
552 cloTuneOnly = bool(Attributes::getBool(itsAttr[CLOTUNEONLY]));
553 } else {
554 cloTuneOnly = false;
555 }
556
557 // Set message flags.
559
560 if (Attributes::getBool(itsAttr[TELL])) {
561 *gmsg << "\nCurrent settings of options:\n" << *this << endl;
562 }
563
564 Option* main = dynamic_cast<Option*>(OpalData::getInstance()->find("OPTION"));
565 if (main) {
567 }
568}
569
570void Option::handlePsDumpFrame(const std::string& dumpFrame) {
571 psDumpFrame = bmDumpFrameString_s.right.at(dumpFrame);
572}
573
574std::string Option::getDumpFrameString(const DumpFrame& df) {
575 return bmDumpFrameString_s.left.at(df);
576}
577
578void Option::update(const std::vector<Attribute>& othersAttributes) {
579 for (int i = 0; i < SIZE; ++i) {
580 itsAttr[i] = othersAttributes[i];
581 }
582}
Inform * gmsg
Definition changes.cpp:7
@ SIZE
Definition IndexMap.cpp:179
int main(int argc, char *argv[])
Definition Main.cpp:135
Inform * gmsg
Definition changes.cpp:7
DumpFrame
Definition Options.h:26
The base class for all OPAL actions.
Definition Action.h:29
Simple bidirectional map with lookup in both directions.
Definition BiMap.h:28
void insert(const Left &left, const Right &right)
Insert or overwrite a left/right association.
Definition BiMap.h:99
right_view right
Right view accessor.
Definition BiMap.h:94
left_view left
Left view accessor.
Definition BiMap.h:92
static void setEcho(bool flag)
Set echo flag.
void registerOwnership(const AttributeHandler::OwnerType &itsClass) const
Definition Object.cpp:169
std::vector< Attribute > itsAttr
The object attributes.
Definition Object.h:210
Object * find(const std::string &name)
Find entry.
Definition OpalData.cpp:477
static OpalData * getInstance()
Definition OpalData.cpp:193
virtual ~Option()
Definition Option.cpp:400
virtual void execute()
Execute the command.
Definition Option.cpp:404
void update(const std::vector< Attribute > &)
Definition Option.cpp:578
virtual void update()
Update this object.
Definition Object.cpp:239
void handlePsDumpFrame(const std::string &dumpFrame)
Definition Option.cpp:570
static const BiMap< DumpFrame, std::string > bmDumpFrameString_s
Definition Option.h:44
virtual Option * clone(const std::string &name)
Make clone.
Definition Option.cpp:402
static std::string getDumpFrameString(const DumpFrame &df)
Definition Option.cpp:574
Option()
Definition Option.cpp:102
void init55(int seed)
Initialise random number generator.
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
double getReal(const Attribute &attr)
Return real value.
void setBool(Attribute &attr, bool val)
Set logical value.
Attribute makePredefinedString(const std::string &name, const std::string &help, const std::initializer_list< std::string > &predefinedStrings)
Make predefined string attribute.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
void setString(Attribute &attr, const std::string &val)
Set string value.
bool getBool(const Attribute &attr)
Return logical value.
void setReal(Attribute &attr, double val)
Set real value.
void setPredefinedString(Attribute &attr, const std::string &val)
Set predefined string value.
std::string getString(const Attribute &attr)
Get string value.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
int stepInfoFreq
The frequency to print per-step tracking status lines; 0 disables them.
Definition Options.cpp:43
bool computePercentiles
Definition Options.cpp:107
int mtsSubsteps
Definition Options.cpp:61
double remotePartDel
Definition Options.cpp:63
int psDumpFreq
The frequency to dump the phase space, i.e.dump data when steppsDumpFreq==0.
Definition Options.cpp:39
double haloShift
The constant parameter C to shift halo, by < w^4 > / < w^2 > ^2 - C (w=x,y,z)
Definition Options.cpp:103
bool writeBendTrajectories
Definition Options.cpp:97
bool mtrace
Trace flag.
Definition Options.cpp:31
bool memoryDump
Definition Options.cpp:101
bool enableVTK
If true VTK files are written.
Definition Options.cpp:85
int version
opal version of input file
Definition Options.cpp:99
int minBinEmitted
The number of bins that have to be emitted before the bin are squashed into a single bin.
Definition Options.cpp:53
bool enableHDF5
If true HDF5 files are written.
Definition Options.cpp:83
bool psDumpEachTurn
phase space dump flag for OPAL-cycl
Definition Options.cpp:45
bool asciidump
Definition Options.cpp:87
int numBlocks
RCG: cycle length.
Definition Options.cpp:73
int sptDumpFreq
The frequency to dump single particle trajectory of particles with ID = 0 & 1.
Definition Options.cpp:49
int autoPhase
Definition Options.cpp:71
bool warn
Warn flag.
Definition Options.cpp:33
std::string rngtype
random number generator
Definition Options.cpp:81
bool echo
Echo flag.
Definition Options.cpp:26
bool rhoDump
Definition Options.cpp:65
int minStepForRebin
The number of steps into the simulation before the bins are squashed into a single bin.
Definition Options.cpp:55
bool cloTuneOnly
Do closed orbit and tune calculation only.
Definition Options.cpp:93
bool csrDump
Definition Options.cpp:69
bool useQMAttributes
Definition Options.cpp:109
bool ebDump
Definition Options.cpp:67
bool idealized
Definition Options.cpp:95
unsigned int delPartFreq
The frequency to delete particles (currently: OPAL-cycl only)
Definition Options.cpp:105
int scSolveFreq
The frequency to solve space charge fields.
Definition Options.cpp:59
int repartFreq
The frequency to do particles repartition for better load balance between nodes.
Definition Options.cpp:51
bool cZero
If true create symmetric distribution.
Definition Options.cpp:79
double beamHaloBoundary
Definition Options.cpp:91
int nLHS
number of old left hand sides used to extrapolate a new start vector
Definition Options.cpp:77
int rebinFreq
The frequency to reset energy bin ID for all particles.
Definition Options.cpp:57
bool info
Info flag.
Definition Options.cpp:28
double boundpDestroy
Governs how many sigmas away particles are deleted.
Definition Options.cpp:89
Random rangen
Definition Options.cpp:36
int seed
The current random seed.
Definition Options.cpp:37
bool aggressiveStateSync
Definition Options.cpp:111
DumpFrame psDumpFrame
flag to decide in which coordinate frame the phase space will be dumped for OPAL-cycl
Definition Options.cpp:47
int statDumpFreq
The frequency to dump statistical values, e.e. dump data when stepstatDumpFreq==0.
Definition Options.cpp:41
int recycleBlocks
RCG: number of recycle blocks.
Definition Options.cpp:75