Files
kaiju/docs/source/misc/_obsolete/chimp/slice.x.rst
2025-11-14 12:49:45 -07:00

281 lines
10 KiB
ReStructuredText

2D Slice from GAMERA output (slice.x)
=====================================
Introduction
------------
slice.x extracts a 2D (Z=z0 or Y=y0) slice at from GAMERA output on either the
MAGE grid or interpolated onto a cartesian or a polar grid. Output is to an
hdf5 file that can be visualized and analyzed similarly to GAMERA output
files.
Example XML file
----------------
.. code-block:: xml
<?xml version="1.0" ?>
<Kaiju>
<Chimp>
<sim runid="ebXY"/>
<time T0="73800.0" dt="15.0" tFin="81000.1"/>
<fields doMHD="T" ebfile="msphere" grType="LFM" isMPI="T"/>
<parallel Ri="8" Rj="8" Rk="1"/>
<domain dtype="LFM" xSun="30.0" xTail="-50.0" yzMax="30.0"/>
<units uid="EARTH"/>
<slice doXY="T" grType="XY" z0="1.0" xSun="20" xTail="-20" yM="20" Nx1="400" Nx2="400"/>
<interp wgt="TSC"/>
<tracer epsds="0.20"/>
<output doSlim="T" doTrc="T"/>
<plasmapause doPP="F"/>
</Chimp>
</Kaiju>
Parameter Descriptions
----------------------
``<sim>`` (optional): Specify identifying information for this computation.
``runid`` (optional, default ``"Sim"``): String specifying an identifier for
this run of ``slice.x``. A best practice is to use the ``runid`` in the name
of the XML file.
``<time>`` (optional): Specify time range and interval for magnetic field
calculation.
``T0`` (optional, default ``"0.0"``): Start time (simulated seconds) for
ground magnetic field calculation, relative to start of simulation results
used as input.
``dt`` (optional, default ``"1.0"``): Time interval and output cadence
(simulated seconds) for ground magnetic field calculation.
``tFin`` (optional, default ``"60.0"``): Stop time (simulated seconds) for
ground magnetic field calculation, relative to start of simulation results
used as input.
``<fields>`` (required): Describes the input data from a MAGE model run.
``ebfile`` (optional, default ``"ebdata.h5"``): Path to HDF5 file containing
the electric and magnetic fields computed by a MAGE model run.
``grType`` (optional, default ``"EGG"``): String specifying grid type used by
the MAGE output file. Valid values are ``"EGG"``, ``"LFM"``, ``"SPH"``. If the
string is not one of the supported grid types, the default value (``"EGG"``)
is used, and a warning message is printed.
``doEBFix`` (optional, default ``"false"``): Set to ``"true"`` to "clean" the
electric field E so that the dot product of the electric and magnetic fields
is 0. See ``ebinterp.F90``.
``doMHD`` (optional, default ``"false"``): Set to ``"true"`` to pass the full
set of magnetohydrodynamic variables to CHIMP, rather than just electric and
magnetic fields. See ``ebtypes.F90``.
``isMPI`` (optional, default ``"false"``): Set to ``"true"`` is the MAGE
results file was generated with an MPI version of the model. See
``eblCstd.F90``.
``<domain>`` (optional): Options for the problem domain
``dtype`` (optional, default ``"SPH"``): Domain over which to perform CHIMP
calculations, separate from grid, enables the user to perform calculation on a
subset of the grid to reduce computation where it is not needed - See
``gridloc.F90``. Valid values are ``"SPH"``, ``"LFM"``, ``"LFMCYL"``,
``"MAGE"``, ``"EGG"``, ``"ELL"``.
``rClosed`` (optional, default set by choice of ``units/uid``): Radial value
for field line endpoint to reach to be considered closed - See
``chmpunits.F90``.
``rmax`` (optional, default computed): Maximum radius of Domain region - See
``gridloc.F90``.
``rmin`` (optional, default computed): Minimum radius of Domain region - See
``gridloc.F90``.
``xSun`` (optional,default 20.0): if dType is "LFM" or "MAGE", the Domain
region includes all i-shells which have distances along the Earth-Sun line is
less than this value (in Re)
``xTail`` (optional,default -100.0): if dType is "LFM" or "MAGE", the Domain
region includes cells in the magnetotail up until this value (in Re)
``yzMax`` (optional,default 40.0): if dType is "LFM" or "MAGE", the Domain
region includes cells with Y and Z coordinates between +/- yzMax (in Re)
``<output>`` (optional): Options related to driver output
``timer`` (optional, default ``"false"``): Set to ``"true"`` to turn time
flags on See ``starter.F90``.
``tsOut`` (optional, default ``"10"``): Cadence to output diagnostics to
run-log file See ``starter.F90``.
``doEQProj`` (optional, default ``"false"``): Set to ``.true.`` to include
equatorial variables, projected down to magnetic equator along field line from
cell location (i.e. Xeq,Yeq, if field line is open or closed etc) See
``chmpdefs.F90``.
``doSlim`` (optional, default ``"false"``): Set to ``"true"`` to remove
vector electric field and current data from slice.x output See
``chmpdefs.F90``.
``doTrc`` (optional, default ``"false"``): Similar to doEQProj, used iZzn
slice.x See ``chmpdefs.F90``.
``<parallel>`` (optional): Options if ebfile was generated using an MPI
version of the code (read if fields/doMPI is set to ``"true"``, file name in
form of ebfile_Ri_Rj_Rk_i_j_k.gam.h5)
``Ri`` (optional, default ``"1"``): Number of ranks used in decomposition of
``"i"`` dimension See iotable.F90.
``Rj`` (optional, default ``"1"``): Number of ranks used in decomposition of
``"j"`` zdimension See iotable.F90.
``Rk`` (optional, default ``"1"``): Number of ranks used in decomàosition of
``"k"`` dimension See iotable.F90.
``doOldNaming`` (optional, default ``"false"``): Allow for backward
compatibility for MHD files generated with the now deprecated naming
convention See ``chmpdefs.F90``.
``<tracer>`` (optional): Options related to field line tracing performed by
CHIMP
``epsds`` (optional, default ``"1.0e-2"``): Tolerance for field line tracing
computations See chmpdefs.F90.
``<units>`` (optional): Name of units system used in the model run.
``uID`` (optional, default ``"Earth"``): See chmpunits.F90. Valid values are
``"EARTH"``, ``"EARTHCODE"``, ``"JUPITER"``, ``"JUPITERCODE"``, ``"SATURN"``,
``"SATURNCODE"``, ``"HELIO"``, ``"LFM"``\ , ``"LFMJUPITER"``.
``<interp>`` (optional): Options related to interpolation
``wgt`` (optional, default ``"TSC"``): Sets 1D interpolation type. Valid
values are ``"TSC"`` (1D triangular shaped cloud), ``"LIN"`` (linear),
``"QUAD"`` (parabolic). See ``starter.F90``.
``<slice>`` (optional): Options specific to slice.x driver, see sliceio.F90
``doXY`` (optional, default ``"true"``): Perform a slice in the XY plane, if
``"false"``, performs a slice in the XZ plane
``z0`` (optional, default ``"0.0"``): Take a slice at Z=z0, if doXY
``"true"``.
``y0`` (optional, default ``"0.0"``): Take a slice at Y=y0, if doXY
``"false"``.
``grType`` (optional, default ``"XY"``): String specifying an identifier for
the grid to be used in sliced plane. Valid Values are ``"XY"`` (cartesian),
``"RP"`` (spherical), ``"LFM2D"`` (MAGE grid).
``Nx1`` (optional, default ``"128"``): Number of cells in X or R depending on
grid specified. Not used if grType is set to ``"LFM2D"``.
``Nx2`` (optional, default ``"256"``): Number of cells in Y/Z or R depending
on grid specified. Not used if grType is set to ``"LFM2D"``.
``Npow`` (optional, default ``"0"``): Number of times to increase the grid
used in the sliced plane by a factor of 2.
``xSun`` (optional, default ``"12.5"``): If ``grType="XY"``, sets the maximum
value of X used to initialize the slice grid. If ``grType="LFM2D"``, used
similarly to domain/xSun where all i-shells which have distances along the
Earth-Sun line is less than this value (in Re) are included in the sliced
grid.
``xTail`` (optional, default ``"-20.0"``): If ``grType="XY"``, sets the
minimum value of X used to initialize the slice grid.
``yM`` (optional, default ``"20.0"``): If ``grType="XY"``, the minimum/maximum
values of the grid of the second axis (either Y or Z depending on the value of
doXY) are set to +/-yM.
``Rin`` (optional, default ``"Rin of ebFile grid"``): If ``grType="RP"``, sets
the minimum value of R used to initialize the slice grid.
``Rout`` (optional, default ``"Max R in the +X direction of ebFile grid"``):
If ``grType="RP"``\ , sets the maximum value of R used to initialize the slice
grid.
``Pin`` (optional, default ``"0.0"``): If ``grType="RP"``, sets the minimum
value of longitude (in degrees) used to set the slice grid. A value of 0
corresponds to the +X direction.
``Pout`` (optional, default ``"360.0"``): If ``grType="RP"``, sets the maximum
value of longitude (in degrees) used to set the slice grid.
``doLog`` (optional, default ``"false"``): Set to ``"true"`` to distribute
cells uniformly in log-space between Rin/Rout values.
``dSlc`` (optional, default ``"0.05"``): Spacing used to average slice over
y0+/-dSlc or z0+/-dSlc, depending on the value of doXY.
``<plasmapause>`` (optional): Options for calculation to determine plasmapause
location in MHD file
``doPP`` (optional, default ``"false"``): Set to ``.true.`` to calculate
plasmapause location in the equator and include it in output file for slice.x
- See chmpfields.F90.
``Lin`` (optional, default ``"2.0"``): Minimum L-shell value to begin
plasmapause calculation - See plasmaputils.F90.
``Lout`` (optional, default ``"6.0"``): Maximum L-shell value to end
plasmapause calculation - See plasmaputils.F90.
``Nl`` (optional, default ``"80"``): Number of cells/steps in L-shell See
plasmaputils.F90.
``Nphi`` (optional, default ``"72"``): Number of cells/steps in longitude See
plasmaputils.F90.
``phi0`` (optional, default ``"0.0"``): Minimum longitude to perform
plasmapause calculation between (in radians, 0 is in the +X direction) -
See plasmaputils.F90.
``phi1`` (optional, default ``"2*PI"``): Maximum longitude to perform
plasmapause calculation between See plasmaputils.F90.
Run Script example
------------------
An example pbs script on ``cheyenne``, RunSlice.pbs to submit slice job:
.. code-block:: bash
#!/bin/bash
#PBS -A P28100045
#PBS -N sliceXZ
#PBS -j oe
#PBS -q regular
#PBS -l walltime=4:00:00
#PBS -l select=1:ncpus=72:ompthreads=72
export EXE=${slice}
export RUNID=${PBS_JOBNAME}
#Replace this with your module set
module purge
module restore kaiju
module list
hostname
date
export OMP_NUM_THREADS=72
export KMP_STACKSIZE=128M
echo "Running $EXE"
./slice.x ${RUNID}.xml > ${RUNID}.out
date
This job can be submitted with the command
.. code-block:: bash
qsub RunSlice.pbs