Options.cpp 2.79 KB
Newer Older
1 2
#include "OptionTypes.h"
#include "Utilities/ClassicRandom.h"
3
#include <string>
kraus's avatar
kraus committed
4 5 6

namespace Options {
    // The global program options.
kraus's avatar
kraus committed
7
    bool echo = false;
kraus's avatar
kraus committed
8 9 10 11 12 13 14 15 16 17 18
    bool info = true;
    bool csrDump = false;
    bool ppdebug = false;

    // If true create symmetric distribution
    bool cZero = false;

    bool asciidump = false;

    // If the distance of a particle to bunch mass larger than remotePartDel times of the rms size of the bunch in any dimension,
    // the particle will be deleted artifically to hold the accuracy of space charge calculation. The default setting of -1 stands for no deletion.
adelmann's avatar
adelmann committed
19
    double remotePartDel = 0.0;
kraus's avatar
kraus committed
20

kraus's avatar
kraus committed
21
    double beamHaloBoundary = 0;
22

23 24 25 26 27
    bool writeBendTrajectories = false;

    OPENMODE openMode = WRITE;


28 29 30 31 32
    // The global program options.
    bool mtrace = false;
    bool verify = false;
    bool warn = true;
    bool psDumpEachTurn = false;
winklehner_d's avatar
-DW  
winklehner_d committed
33
    DumpFrame psDumpLocalFrame = GLOBAL;
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
    bool scan = false;
    bool rhoDump = false;
    bool ebDump = false;

    bool enableHDF5 = true;

    // bool efDump = false;

    // The global random generator.
    Random rangen;

    // The current random seed.
    int seed  = 123456789;

    // the number of refinements of the search range for the phase with maximum energy
    // if eq 0 then no autophase
    int autoPhase = 0;

    // The frequency to dump the phase space, i.e.dump data when step%psDumpFreq==0
    int psDumpFreq = 10;
    // // The frequency to dump the phase space, i.e.dump data when step%psDumpFreq==0
    // double rDump = 0.0;

    // The frequency to dump statistical quantities such as beam RMS properties, i.e. dump
    // when step%statDumpFreq == 0.
    int statDumpFreq = 10;

    // The frequency to dump single particle trajectory of particles with ID = 0 & 1
    int sptDumpFreq = 1;

    // The frequency to do particles repartition for better load balance between nodes
    int repartFreq = 10;

    // The frequency to reset energy bin ID for all particles
    int rebinFreq = 100;

    /// The frequency to solve space charge fields.
    int scSolveFreq = 1;

    // How many small timesteps are inside the large timestep used in multiple time stepping (MTS) integrator
    int mtsSubsteps = 1;

    // The frequency to dump the particle-geometry surface interation data, -1 stands for no dump.
    int surfDumpFreq = -1;

    // Options for the Belos solver
    int numBlocks = 0;
    int recycleBlocks = 0;
    int nLHS = 1;

    std::string rngtype = std::string("RANDOM");

86
    bool cloTuneOnly = false;
87 88 89 90

    // Governs how often boundp_destroy is called to destroy lost particles
    // Mainly used in the CyclotronTracker as of now -DW
    int boundpDestroyFreq = 10;
Uldis Locans's avatar
Uldis Locans committed
91

92 93 94 95 96
    // Using hard edge model for calculation of path length
    bool idealized = false;

    // opal version of input file
    int version = 10000;
winklehner_d's avatar
-DW  
winklehner_d committed
97
}