OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Option.cpp
Go to the documentation of this file.
1 // ------------------------------------------------------------------------
2 // $RCSfile: Option.cpp,v $
3 // ------------------------------------------------------------------------
4 // $Revision: 1.1.1.1 $
5 // ------------------------------------------------------------------------
6 // Copyright: see Copyright.readme
7 // ------------------------------------------------------------------------
8 //
9 // Class: Option
10 // The class for the OPAL OPTION command.
11 //
12 // ------------------------------------------------------------------------
13 //
14 // $Date: 2000/03/27 09:33:37 $
15 // $Author: Andreas Adelmann $
16 //
17 // ------------------------------------------------------------------------
18 
19 #include "BasicActions/Option.h"
20 #include "Attributes/Attributes.h"
21 #include "Parser/FileStream.h"
22 #include "Utilities/Options.h"
23 #include "Utilities/OptionTypes.h"
25 #include "Utility/IpplInfo.h"
26 #include "Utilities/Util.h"
27 
29 
31 
32 #include <ctime>
33 #include <iostream>
34 #include <limits>
35 #include <cstddef>
36 
37 extern Inform *gmsg;
38 
39 using namespace Options;
40 
41 std::string DumpFrameToString(DumpFrame df);
42 
43 // Class Option
44 // ------------------------------------------------------------------------
45 
46 namespace {
47  // The attributes of class Option.
48  enum {
49  ECHO,
50  INFO,
51  TRACE,
52  WARN,
53  SEED,
54  TELL,
55  PSDUMPFREQ,
56  STATDUMPFREQ,
57  PSDUMPEACHTURN,
58  PSDUMPFRAME,
59  SPTDUMPFREQ,
60  REPARTFREQ,
61  REBINFREQ,
62  SCSOLVEFREQ,
63  MTSSUBSTEPS,
64  REMOTEPARTDEL,
65  RHODUMP,
66  EBDUMP,
67  CSRDUMP,
68  AUTOPHASE,
69  PPDEBUG,
70  SURFDUMPFREQ,
71  NUMBLOCKS,
72  RECYCLEBLOCKS,
73  NLHS,
74  CZERO,
75  RNGTYPE,
76  ENABLEHDF5,
77  ASCIIDUMP,
78  BOUNDPDESTROYFQ,
79  BEAMHALOBOUNDARY,
80  CLOTUNEONLY,
81  IDEALIZED,
82  LOGBENDTRAJECTORY,
83  VERSION,
84 #ifdef ENABLE_AMR
85  AMR,
86  AMR_YT_DUMP_FREQ,
87  AMR_REGRID_FREQ,
88 #endif
89  MEMORYDUMP,
90  HALOSHIFT,
91  DELPARTFREQ,
92  MINBINEMITTED,
93  MINSTEPFORREBIN,
94  SIZE
95  };
96 }
97 
98 
100  Action(SIZE, "OPTION",
101  "The \"OPTION\" statement defines OPAL execution options.")
102  {
103 
105  ("ECHO", "If true, give echo of input", echo);
106 
108  ("INFO", "If true, print information messages", info);
109 
111  ("TRACE", "If true, print execution trace", mtrace);
112 
114  ("WARN", "If true, print warning messages", warn);
115 
117  ("SEED", "The seed for the random generator, -1 will use time(0) as seed ");
118 
120  ("TELL", "If true, print the current settings. "
121  "Must be the last option in the inputfile in "
122  "order to render correct results", false);
123 
124  itsAttr[PSDUMPFREQ] = Attributes::makeReal
125  ("PSDUMPFREQ", "The frequency to dump the phase space, "
126  "i.e.dump data when step%psDumpFreq==0, its default value is 10.",
127  psDumpFreq);
128 
129  itsAttr[STATDUMPFREQ] = Attributes::makeReal
130  ("STATDUMPFREQ", "The frequency to dump statistical data "
131  "(e.g. RMS beam quantities), i.e. dump data when step%statDumpFreq == 0, "
132  "its default value is 10.", statDumpFreq);
133 
134  itsAttr[PSDUMPEACHTURN] = Attributes::makeBool
135  ("PSDUMPEACHTURN", "If true, dump phase space after each "
136  "turn ,only aviable for OPAL-cycl, its default value is false",
138 
139  itsAttr[SCSOLVEFREQ] = Attributes::makeReal
140  ("SCSOLVEFREQ", "The frequency to solve space charge fields. its default value is 1");
141 
142  itsAttr[MTSSUBSTEPS] = Attributes::makeReal("MTSSUBSTEPS", "How many small timesteps "
143  "are inside the large timestep used in multiple "
144  "time stepping (MTS) integrator");
145 
146  itsAttr[REMOTEPARTDEL] = Attributes::makeReal
147  ("REMOTEPARTDEL", "Artifically delete the remote particle if its distance "
148  "to the beam mass is larger than REMOTEPARTDEL times of the beam rms size, "
149  "its default values is 0 (no delete) ",0.0);
150 
151  itsAttr[PSDUMPFRAME] = Attributes::makeString
152  ("PSDUMPFRAME", "Controls the frame of phase space dump in "
153  "stat file and h5 file. If 'GLOBAL' OPAL will dump in the "
154  "lab (global) Cartesian frame; if 'BUNCH_MEAN' OPAL will "
155  "dump in the local Cartesian frame of the beam mean; "
156  "if 'REFERENCE' OPAL will dump in the local Cartesian "
157  "frame of the reference particle 0. Only aviable for "
158  "OPAL-cycl, its default value is 'GLOBAL'");
159 
160  itsAttr[SPTDUMPFREQ] = Attributes::makeReal
161  ("SPTDUMPFREQ", "The frequency to dump single "
162  "particle trajectory of particles with ID = 0 & 1, "
163  "its default value is 1. ");
164 
165  itsAttr[REPARTFREQ] = Attributes::makeReal
166  ("REPARTFREQ", "The frequency to do particles repartition "
167  "for better load balance between nodes, its "
168  "default value is " + std::to_string(repartFreq) + ".", repartFreq);
169 
170  itsAttr[MINBINEMITTED] = Attributes::makeReal
171  ("MINBINEMITTED", "The number of bins that have to be emitted before the bins are squashed into "
172  "a single bin; the default value is " + std::to_string(minBinEmitted) + ".", minBinEmitted);
173 
174  itsAttr[MINSTEPFORREBIN] = Attributes::makeReal
175  ("MINSTEPFORREBIN", "The number of steps into the simulation before the bins are squashed into "
176  "a single bin; the default value is " + std::to_string(minStepForRebin) + ".", minStepForRebin);
177 
178  itsAttr[REBINFREQ] = Attributes::makeReal
179  ("REBINFREQ", "The frequency to reset energy bin ID for "
180  "all particles, its default value is 100.", rebinFreq);
181 
182  itsAttr[RHODUMP] = Attributes::makeBool
183  ("RHODUMP", "If true, in addition to the phase "
184  "space the scalar rho field is also dumped (H5Block)", rhoDump);
185 
186  itsAttr[EBDUMP] = Attributes::makeBool
187  ("EBDUMP", "If true, in addition to the phase space the "
188  "E and B field at each particle is also dumped into the H5 file)", ebDump);
189 
190  itsAttr[CSRDUMP] = Attributes::makeBool
191  ("CSRDUMP", "If true, the csr E field, line density "
192  "and the line density derivative is dumped into the "
193  "data directory)", csrDump);
194 
195  itsAttr[AUTOPHASE] = Attributes::makeReal
196  ("AUTOPHASE", "If greater than zero OPAL is scanning "
197  "the phases of each rf structure in order to get maximum "
198  "acceleration. Defines the number of refinements of the "
199  "search range", autoPhase);
200 
201  itsAttr[PPDEBUG] = Attributes::makeBool
202  ("PPDEBUG", "If true, use special initial velocity distribution "
203  "for parallel plate and print special debug output", ppdebug);
204 
205  itsAttr[SURFDUMPFREQ] = Attributes::makeReal
206  ("SURFDUMPFREQ", "The frequency to dump surface-particle "
207  "interaction data, its default value is -1 (no dump).",
208  surfDumpFreq);
209 
211  ("CZERO", "If set to true a symmetric distribution is "
212  "created -> centroid == 0.0 ", cZero);
213 
215  ("RNGTYPE", "RANDOM (default), Quasi-random number "
216  "generators: HALTON, SOBOL, NIEDERREITER (Gsl ref manual 18.5)", rngtype);
217 
218 
219  itsAttr[CLOTUNEONLY] = Attributes::makeBool
220  ("CLOTUNEONLY", "If set to true stop after "
221  "CLO and tune calculation ", cloTuneOnly);
222 
223  itsAttr[NUMBLOCKS] = Attributes::makeReal
224  ("NUMBLOCKS", "Maximum number of vectors in the Krylov "
225  "space (for RCGSolMgr). Default value is 0 and BlockCGSolMgr will be used.");
226  itsAttr[RECYCLEBLOCKS] = Attributes::makeReal
227  ("RECYCLEBLOCKS", "Number of vectors in the recycle "
228  "space (for RCGSolMgr). Default value is 0 and BlockCGSolMgr will be used.");
230  ("NLHS", "Number of stored old solutions for extrapolating "
231  "the new starting vector. Default value is 1 and just the last solution is used.");
232 
233  itsAttr[ENABLEHDF5] = Attributes::makeBool
234  ("ENABLEHDF5", "If true, HDF5 actions are enabled", enableHDF5);
235 
236  itsAttr[ASCIIDUMP] = Attributes::makeBool
237  ("ASCIIDUMP", "If true, some of the elements dump in ASCII instead of HDF5", false);
238 
239  itsAttr[BOUNDPDESTROYFQ] = Attributes::makeReal
240  ("BOUNDPDESTROYFQ", "The frequency to do boundp_destroy to delete lost particles. Default 10",10.0);
241 
242  itsAttr[BEAMHALOBOUNDARY] = Attributes::makeReal
243  ("BEAMHALOBOUNDARY", "Defines in terms of sigma where the halo starts. Default 0.0",0.0);
244 
245  itsAttr[IDEALIZED] = Attributes::makeBool
246  ("IDEALIZED", "Using the hard edge model for the calculation of path length. Default: false", false);
247 
248  itsAttr[LOGBENDTRAJECTORY] = Attributes::makeBool
249  ("LOGBENDTRAJECTORY", "Writing the trajectory of every bend to disk. Default: false", false);
250 
251  itsAttr[VERSION] = Attributes::makeReal
252  ("VERSION", "Version of OPAL for which input file was written", 10000);
253 
254 #ifdef ENABLE_AMR
256  ("AMR", "Use adaptive mesh refinement.", amr);
257 
258  itsAttr[AMR_YT_DUMP_FREQ] = Attributes::makeReal("AMR_YT_DUMP_FREQ",
259  "The frequency to dump grid "
260  "and particle data "
261  "(default: 10)", amrYtDumpFreq);
262 
263  itsAttr[AMR_REGRID_FREQ] = Attributes::makeReal("AMR_REGRID_FREQ",
264  "The frequency to perform a regrid "
265  "in multi-bunch mode (default: 10)",
266  amrRegridFreq);
267 #endif
268  itsAttr[MEMORYDUMP] = Attributes::makeBool
269  ("MEMORYDUMP", "If true, write memory to SDDS file", memoryDump);
270 
271  itsAttr[HALOSHIFT] = Attributes::makeReal
272  ("HALOSHIFT", "Constant parameter to shift halo value (default: 0.0)", haloShift);
273 
274  itsAttr[DELPARTFREQ] = Attributes::makeReal
275  ("DELPARTFREQ", "The frequency to delete particles, i.e. delete when step%delPartFreq == 0. Default: 1", delPartFreq);
276 
278 
280 }
281 
282 
283 Option::Option(const std::string &name, Option *parent):
284  Action(name, parent) {
290  Attributes::setReal(itsAttr[PSDUMPFREQ], psDumpFreq);
291  Attributes::setReal(itsAttr[STATDUMPFREQ], statDumpFreq);
292  Attributes::setBool(itsAttr[PSDUMPEACHTURN], psDumpEachTurn);
294  Attributes::setReal(itsAttr[SPTDUMPFREQ], sptDumpFreq);
295  Attributes::setReal(itsAttr[SCSOLVEFREQ], scSolveFreq);
296  Attributes::setReal(itsAttr[MTSSUBSTEPS], mtsSubsteps);
297  Attributes::setReal(itsAttr[REMOTEPARTDEL], remotePartDel);
298  Attributes::setReal(itsAttr[REPARTFREQ], repartFreq);
305  Attributes::setReal(itsAttr[SURFDUMPFREQ], surfDumpFreq);
307  Attributes::setBool(itsAttr[CLOTUNEONLY], cloTuneOnly);
308  Attributes::setString(itsAttr[RNGTYPE], std::string(rngtype));
310  Attributes::setReal(itsAttr[RECYCLEBLOCKS], recycleBlocks);
312  Attributes::setBool(itsAttr[ENABLEHDF5], enableHDF5);
314  Attributes::setReal(itsAttr[BOUNDPDESTROYFQ], boundpDestroyFreq);
315  Attributes::setReal(itsAttr[BEAMHALOBOUNDARY], beamHaloBoundary);
319 #ifdef ENABLE_AMR
321  Attributes::setReal(itsAttr[AMR_YT_DUMP_FREQ], amrYtDumpFreq);
322  Attributes::setReal(itsAttr[AMR_REGRID_FREQ], amrRegridFreq);
323 #endif
324  Attributes::setBool(itsAttr[MEMORYDUMP], memoryDump);
326  Attributes::setReal(itsAttr[DELPARTFREQ], delPartFreq);
327 }
328 
329 
331 {}
332 
333 
334 Option *Option::clone(const std::string &name) {
335  return new Option(name, this);
336 }
337 
338 
340  // Store the option flags.
345  psDumpEachTurn = Attributes::getBool(itsAttr[PSDUMPEACHTURN]);
346  rhoDump = Attributes::getBool(itsAttr[RHODUMP]);
348  csrDump = Attributes::getBool(itsAttr[CSRDUMP]);
349  ppdebug = Attributes::getBool(itsAttr[PPDEBUG]);
350  enableHDF5 = Attributes::getBool(itsAttr[ENABLEHDF5]);
351  version = Attributes::getReal(itsAttr[VERSION]);
352 #ifdef ENABLE_AMR
354  amrYtDumpFreq = int(Attributes::getReal(itsAttr[AMR_YT_DUMP_FREQ]));
355 
356  if ( amrYtDumpFreq < 1 ) {
358  }
359 
360  amrRegridFreq = int(Attributes::getReal(itsAttr[AMR_REGRID_FREQ]));
361  amrRegridFreq = ( amrRegridFreq < 1 ) ? 1 : amrRegridFreq;
362 #endif
363  memoryDump = Attributes::getBool(itsAttr[MEMORYDUMP]);
364  haloShift = Attributes::getReal(itsAttr[HALOSHIFT]);
365  delPartFreq = Attributes::getReal(itsAttr[DELPARTFREQ]);
366 
367  if ( memoryDump ) {
369  IpplMemoryUsage::Unit::GB, false);
370  memory->sample();
371  }
372 
374 
377 
378  if (Options::seed == -1)
379  rangen.init55(time(0));
380  else
381  rangen.init55(seed);
382 
383 
386 
388 
389  if(itsAttr[ASCIIDUMP]) {
390  asciidump = Attributes::getBool(itsAttr[ASCIIDUMP]);
391  }
392 
395  if(itsAttr[SEED]) {
396  seed = int(Attributes::getReal(itsAttr[SEED]));
397  if (seed == -1)
398  rangen.init55(time(0));
399  else
400  rangen.init55(seed);
401  }
402 
403  if(itsAttr[PSDUMPFREQ]) {
404  psDumpFreq = int(Attributes::getReal(itsAttr[PSDUMPFREQ]));
405  if (psDumpFreq==0)
407  }
408 
409  if(itsAttr[STATDUMPFREQ]) {
410  statDumpFreq = int(Attributes::getReal(itsAttr[STATDUMPFREQ]));
411  if (statDumpFreq==0)
413  }
414 
415  if(itsAttr[SPTDUMPFREQ]) {
416  sptDumpFreq = int(Attributes::getReal(itsAttr[SPTDUMPFREQ]));
417  if (sptDumpFreq==0)
419  }
420 
421 
422  if(itsAttr[SCSOLVEFREQ]) {
423  scSolveFreq = int(Attributes::getReal(itsAttr[SCSOLVEFREQ]));
424  scSolveFreq = ( scSolveFreq < 1 ) ? 1 : scSolveFreq;
425  }
426 
427 
428  if(itsAttr[MTSSUBSTEPS]) {
429  mtsSubsteps = int(Attributes::getReal(itsAttr[MTSSUBSTEPS]));
430  }
431 
432 
433  if(itsAttr[REMOTEPARTDEL]) {
434  remotePartDel = Attributes::getReal(itsAttr[REMOTEPARTDEL]);
435  }
436 
437  if(itsAttr[REPARTFREQ]) {
438  repartFreq = int(Attributes::getReal(itsAttr[REPARTFREQ]));
439  }
440 
441  if(itsAttr[REBINFREQ]) {
442  rebinFreq = int(Attributes::getReal(itsAttr[REBINFREQ]));
443  }
444 
445  if(itsAttr[AUTOPHASE]) {
446  autoPhase = int(Attributes::getReal(itsAttr[AUTOPHASE]));
447  }
448  if(itsAttr[SURFDUMPFREQ]) {
449  surfDumpFreq = int(Attributes::getReal(itsAttr[SURFDUMPFREQ]));
450  }
451  if(itsAttr[NUMBLOCKS]) {
452  numBlocks = int(Attributes::getReal(itsAttr[NUMBLOCKS]));
453  }
454  if(itsAttr[RECYCLEBLOCKS]) {
455  recycleBlocks = int(Attributes::getReal(itsAttr[RECYCLEBLOCKS]));
456  }
457  if(itsAttr[NLHS]) {
458  nLHS = int(Attributes::getReal(itsAttr[NLHS]));
459  }
460 
461  if(itsAttr[CZERO]) {
462  cZero = bool(Attributes::getBool(itsAttr[CZERO]));
463  }
464 
465  if(itsAttr[RNGTYPE]) {
466  rngtype = std::string(Attributes::getString(itsAttr[RNGTYPE]));
467  } else {
468  rngtype = std::string("RANDOM");
469  }
470 
471  if(itsAttr[BEAMHALOBOUNDARY]) {
472  beamHaloBoundary = Attributes::getReal(itsAttr[BEAMHALOBOUNDARY]);
473  }
474  else {
475  beamHaloBoundary = 0;
476  }
477 
478  idealized = Attributes::getBool(itsAttr[IDEALIZED]);
479 
480  writeBendTrajectories = Attributes::getBool(itsAttr[LOGBENDTRAJECTORY]);
481 
482  if(itsAttr[CLOTUNEONLY]) {
483  cloTuneOnly = bool(Attributes::getBool(itsAttr[CLOTUNEONLY]));
484  } else {
485  cloTuneOnly = false;
486  }
487 
488  // Set message flags.
490 
491  if(Attributes::getBool(itsAttr[TELL])) {
492  *gmsg << "\nCurrent settings of options:\n" << *this << endl;
493  }
494 }
495 
496 void Option::handlePsDumpFrame(const std::string &dumpFrame) {
497  if (dumpFrame == "GLOBAL") {
499  } else if (dumpFrame == "BUNCH_MEAN") {
501  } else if (dumpFrame == "REFERENCE") {
503  } else {
504  std::string msg = std::string("Did not recognise PSDUMPFRAME '")+\
505  dumpFrame+std::string("'. It should be one of 'GLOBAL',")+\
506  std::string(" 'BUNCH_MEAN' or 'REFERENCE'");
507  throw OpalException("Option::handlePsDumpFrame", msg);
508  }
509 }
510 
511 std::string DumpFrameToString(DumpFrame df) {
512  switch (df) {
513  case BUNCH_MEAN:
514  return std::string("BUNCH_MEAN");
515  case REFERENCE:
516  return std::string("REFERENCE");
517  case GLOBAL:
518  default:
519  return std::string("GLOBAL");
520  }
521 }
bool mtrace
Trace flag.
Definition: Options.cpp:29
int seed
The current random seed.
Definition: Options.cpp:41
void setReal(Attribute &attr, double val)
Set real value.
Definition: Attributes.cpp:236
double haloShift
The constant parameter C to shift halo, by &lt; w^4 &gt; / &lt; w^2 &gt; ^2 - C (w=x,y,z)
Definition: Options.cpp:110
bool rhoDump
Definition: Options.cpp:32
The OPTION command.
Definition: Option.h:29
The base class for all OPAL actions.
Definition: Action.h:30
void on(const bool o)
Definition: Inform.h:68
T::PETE_Expr_t::PETE_Return_t max(const PETE_Expr< T > &expr, NDIndex< D > &loc)
Definition: ReductionLoc.h:123
The base class for all OPAL exceptions.
Definition: OpalException.h:28
Inform * gmsg
Definition: Main.cpp:21
std::string toUpper(const std::string &str)
Definition: Util.cpp:130
static Inform * Warn
Definition: IpplInfo.h:88
int minStepForRebin
The number of steps into the simulation before the bins are squashed into a single bin...
Definition: Options.cpp:66
bool echo
Echo flag.
Definition: Options.cpp:7
static IpplMemory_p getInstance(Unit unit=Unit::GB, bool reset=true)
bool memoryDump
Definition: Options.cpp:108
void init55(int seed)
Initialise random number generator.
void setString(Attribute &attr, const std::string &val)
Set string value.
Definition: Attributes.cpp:356
virtual void execute()
Execute the command.
Definition: Option.cpp:339
std::vector< Attribute > itsAttr
The object attributes (see Attribute.hh).
Definition: Object.h:214
bool info
Info flag.
Definition: Options.cpp:8
int recycleBlocks
RCG: number of recycle blocks.
Definition: Options.cpp:82
double beamHaloBoundary
Definition: Options.cpp:24
bool warn
Warn flag.
Definition: Options.cpp:10
virtual ~Option()
Definition: Option.cpp:330
bool cZero
if true create symmetric distribution
Definition: Options.cpp:16
int statDumpFreq
The frequency to dump statistical values, e.e. dump data when stepstatDumpFreq==0.
Definition: Options.cpp:54
bool getBool(const Attribute &attr)
Return logical value.
Definition: Attributes.cpp:66
unsigned int delPartFreq
The frequency to delete particles (currently: OPAL-cycl only)
Definition: Options.cpp:112
virtual Option * clone(const std::string &name)
Make clone.
Definition: Option.cpp:334
int version
opal version of input file
Definition: Options.cpp:97
int sptDumpFreq
The frequency to dump single particle trajectory of particles with ID = 0 &amp; 1.
Definition: Options.cpp:57
Random rangen
Random generator.
Definition: Options.cpp:38
double remotePartDel
Definition: Options.cpp:22
int repartFreq
The frequency to do particles repartition for better load balance between nodes.
Definition: Options.cpp:60
std::string rngtype
random number generator
Definition: Options.cpp:85
int numBlocks
RCG: cycle length.
Definition: Options.cpp:81
void registerOwnership(const AttributeHandler::OwnerType &itsClass) const
Definition: Object.cpp:194
bool enableHDF5
If true HDF5 files are written.
Definition: Options.cpp:35
int rebinFreq
The frequency to reset energy bin ID for all particles.
Definition: Options.cpp:69
int autoPhase
Definition: Options.cpp:45
int nLHS
number of old left hand sides used to extrapolate a new start vector
Definition: Options.cpp:83
std::string DumpFrameToString(DumpFrame df)
Definition: Option.cpp:511
int psDumpFreq
The frequency to dump the phase space, i.e.dump data when steppsDumpFreq==0.
Definition: Options.cpp:48
bool amr
Definition: Options.cpp:100
static void setEcho(bool flag)
Set echo flag.
Definition: FileStream.cpp:47
bool psDumpEachTurn
phase space dump flag for OPAL-cycl
Definition: Options.cpp:30
Option()
Exemplar constructor.
Definition: Option.cpp:99
DumpFrame psDumpFrame
flag to decide in which coordinate frame the phase space will be dumped for OPAL-cycl ...
Definition: Options.cpp:31
bool asciidump
Definition: Options.cpp:18
int minBinEmitted
The number of bins that have to be emitted before the bin are squashed into a single bin...
Definition: Options.cpp:63
static Inform * Info
Definition: IpplInfo.h:87
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
Definition: Attributes.cpp:56
void setBool(Attribute &attr, bool val)
Set logical value.
Definition: Attributes.cpp:85
const std::string name
int amrRegridFreq
Definition: Options.cpp:105
int surfDumpFreq
The frequency to dump the particle-geometry surface interation data.
Definition: Options.cpp:78
int scSolveFreq
The frequency to solve space charge fields.
Definition: Options.cpp:72
int amrYtDumpFreq
The frequency to dump AMR grid data and particles into file.
Definition: Options.cpp:103
bool cloTuneOnly
Do closed orbit and tune calculation only.
Definition: Options.cpp:87
int boundpDestroyFreq
Definition: Options.cpp:91
int mtsSubsteps
Definition: Options.cpp:75
double getReal(const Attribute &attr)
Return real value.
Definition: Attributes.cpp:217
bool ppdebug
ppdebug flag.
Definition: Options.cpp:13
bool idealized
Definition: Options.cpp:94
Definition: Inform.h:41
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
Definition: Attributes.cpp:296
void handlePsDumpFrame(const std::string &dumpFrame)
Definition: Option.cpp:496
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
Definition: Attributes.cpp:205
Inform & endl(Inform &inf)
Definition: Inform.cpp:42
bool csrDump
Definition: Options.cpp:12
bool ebDump
Definition: Options.cpp:33
std::string getString(const Attribute &attr)
Get string value.
Definition: Attributes.cpp:307
bool writeBendTrajectories
Definition: Options.cpp:26