Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

Running the Model

Basic rules:

  • Running OpenGGCM occurs in 2 phases: (a) pre-compilation, and (b) compilation and execution. These 2 steps can occur on different machines. It is thus good practice to keep the source tree and run the pre-compilation on a local machine. That makes it easier to keep sources, input data, etc together, and still be able to run the model on different machine from one source tree. Other advantages are that backups are done locally (where all information is stored to make a run) and that one only needs to istall all the tools required for the pre-compilation process once without having to deal with different OS quirks. This also separates the code and input data from the output data, which often need to reside on different file systems because of their size. Steps (a) and (b) are completely automated and only require a password-less (private - public key pair) ssh login from the local machine to the machine where OpenGGCM is actually running on. The latter is called the 'target' in many places. Note that this does not prevent one from doing everything on one machine, but some care must be taken to avoid directory name conflicts.
  • The OpenGGCM sources (git or tarball) should be placed into a directory $OPENGGCMDIR. Then, for every run a separate directory MUST be created, named $RUN. The $RUN name should be descriptive, for example containing the date of an event, etc., like 'test_resistivity-001' or 'storm-20031027-004'. $RUN will be used to name most of the files involved in the run, so it must be unique.
  • Directories on 'local'
    • $HOME/..optional../$OPENGGCMDIR souces from git or tarball
    • $HOME/..optional../$RUN one for every run
  • Directories on 'target'
    • $HOME/TARGETDIR/$RUN will be created during precomp. Compilation occurs here.
    • $HOME/OUTDIR/$RUN will be created during precomp. This is where all output goes. Often needs to be on a scratch file system if many TB of output are created.
  • Considerations: TARGETDIR and OUTDIR can be the same, then the output gets mixed up with files from compilation. If 'local' and 'target' are the same it is wise to keep $HOME/..optional../$RUN and $HOME/TARGETDIR/$RUN separate, or some files will get overwritten.
  • All parameters pertaining to one run are stored in a file called 'runme'. Since there are several hundreds parameters one should start with a template. Many parameters probably will never need changing. Often a 'default' can be used. The defaults are defined in $OPENGGCMDIR/include/input.defines. The most important ones are these:
    • The second line (exactly!) must point to the correct $OPENGGCMDIR.
    • TARGET points to a file in $OPENGGCMDIR/conf/target/ that defines the characteristics (compilers, batch system etc.) of the target machine. Some need TARGETUSER and TARGETHOST to be set.
    • RUNTIME time limit for batch system
    • CLASS possibly a batch queue
    • NPX/NPY/NPZ partitioning of the MHD grid into NPX*NPY*NPZ boxes. The code will require NPX*NPY*NPZ+NN cores, where NN depends on what other modules are loaded, but at least NN>=2.
    • NX/NY/NZ gridpoints in each dimensions. Obviously NX/NPX etc. need to be integer.
    • DY0/DZ0 minimum grid size in y/z direction. No free lunch. Small values shrink the size of the high res region.
    • XX1...ZZ2 box dimensions.
    • DXFUNC Fortran expression for dx(x). Will be scaled for NX and XX1/XX2.
    • MAGDIFFU etc sets imposed resistivity model and parameters.
    • OUTTIMExxx when to write 2d, 3d, and io output. Either a list of times (seconds since start) or a negative number for cadence. Lists are ':' separated.
    • OUTPLANExyz write 2d cut planes at given locations produces p[x|y|z]_offset files. Nothing written if plane is outside box.
    • OUTSUB3D write only smaller box for 3d
    • ETAJOUT include staggered B/E in output for particle tracing.
    • ORBIT... write stuff along orbits at high cadence
    • CHECKPOINT/RESTART definitely does not work with sub models CTIM, RCM etc
    • RRMIN minimum allowed density
    • SPEEDLIMIT minimum allowed speed for stability
    • DTMIN kill run when time step control goes below DTMIN, typical for instability/crash
    • DIAGS selects between different output modules.
    • OUTTIMExxx time in seconds when to output. ':' separated list. Negative values are a cadence.
    • OUTTIMEEX T1:T2:TT increase cadence by factor TT between T! and T2. All times in seconds since start.
    • OUTPLANExyz output on cut planes. List of offsets (in RE MHD coords) given. Output only if plane is in box.
    • OUTSUB3d smaller 3d box.
    • ETAJOUT output E/B on staggered grids for particle tracing.
    • ORBITxxx high cadence output along orbits.
    • CHECKPOINT/RESTART definitely does not work.
    • RRMIN minimum allowed density (in cc)
    • SPEEDLIMIT max allowed speed in km/s
    • DTMIN kill job if dt < DTMIN usually indicates instability/crash
    • STARTTIME/ENDTIME
Edit - History - Print - Recent Changes - Search
Page last modified on March 29, 2019, at 01:34 PM EST