# This file defines of shortcuts for the setup script.
# Each line starting with '#' is a comment line.

# each line is of the form
# shortcut:arg1:arg2:...:
#
# For example, the shortcut ug is defined as:
# ug:--with-unit=Grid/GridMain/:Grid=UG:
#
# To use the ug shortcut ad +ug to the setup line ie: ./setup Sod -auto +ug
# this is equivalent to typing in unit options with -unit=Grid/GridMain/UG 
# -unit=IO/IOMain/hdf5/serial/UG (because the appropriate IO is included by default)
# 
# These shortcuts can refer to each other. 
#
# The name of this file is hard coded into the setup script. But dont worry.
# You can define an environment variable SETUP_SHORTCUTS and set it to a
# ":" delimited set of filenames. Then the setup script will process those
# files (in that order) to define the shortcuts
#

# These options are always assumed to be given at beginning of command line,
# most of these can be overridden later.
default:--with-library=mpi:+io:+grid:-gridinterpolation=monotonic

# io choices
noio:--without-unit=IO:
io:--with-unit=IO:
serialIO:parallelIO=False:
parallelIO:parallelIO=True:
hdf5:IO=hdf5:
pnetcdf:IO=pnetcdf:
collective_hdf5:IO=hdf5:parallelIO=True:-defines=COLLECTIVE_HDF5

# other optional but useful stuff
nolog:-without-unit=monitors/Logfile:

# Choice of Grid
grid:-unit=Grid:
ug:+grid:Grid=UG:
pm2:+grid:Grid=PM2:
pm40:+grid:Grid=PM40:
pm3:+pm40
pm4dev:+grid:Grid=PM4DEV:ParameshLibraryMode=True

# Choice of MHD solver
8wave:--with-unit=physics/Hydro/HydroMain/split/MHD_8Wave:+grid:-gridinterpolation=native
usm:--with-unit=physics/Hydro/HydroMain/unsplit/MHD_StaggeredMesh:--without-unit=physics/Hydro/HydroMain/split/MHD_8Wave
#NOTE: The 8wave mhd solver only works with the native interpolation.

cube64:-nxb=64:-nyb=64:-nzb=64:
cube16:-nxb=16:-nyb=16:-nzb=16:
cube32:-nxb=32:-nyb=32:-nzb=32:
# include Particles and IO for uniform grid
ptio:+ug:-with-unit=Particles:
# The following shortcut is used for checking FLASH with rectangular block
# sizes and non-fixed block size
rnf:-3d:-nxb=8:-nyb=16:-nzb=32:-nofbs:+ug:
nofbs:-nofbs:+ug:-unit=IO/IOMain/hdf5/parallel/NoFbs:
# PM40 with arrays allocated at runtime, compiled with LIBRARY defined.
# Not yet officially supported. - KW
dynamicmem-pm40:+pm40:ParameshLibraryMode=True
dynamicmem-pm3:+dynamicmem-pm40


###### Shortcuts to achieve setup script support for geometry-related
###### choices.  These shortcut now translate directly to setup options
###### newly created for curvilinear coordinate support in F3.0 alpha.
curvilinear:-curvilinear
cartesian:-geometry=cartesian
spherical:-geometry=spherical
polar:-geometry=polar
cylindrical:-geometry=cylindrical


# Some alternative combined shortcuts to request support for curvilinear coordinates.
# These specify necessary directories
# directly rather than relying on the -gridinterpolation=monotonic option. - KW
curv-pm2:+pm2:-unit=Grid/GridMain/paramesh/Paramesh2:-with-unit=Grid/GridMain/paramesh/Paramesh2/monotonic:
spherical-pm2:+pm2:+spherical

# short cut to get passive particles initialization with density
ptdens:-unit=Particles/ParticlesMain:-unit=Particles/ParticlesInitialization/WithDensity:-unit=Particles/ParticlesMapping:

# a shortcut for requesting NO_PERMANENT_GUARDCELLS mode
npg:npg=True

# short cut to request multipole gravity
mpole:-with-unit=physics/Gravity/GravityMain/Poisson/Multipole

#short cut toe request longrange active particles
longrange:-with-unit=Particles/ParticlesMain/active/longRange/gravity/ParticleMesh

gravPfftNofbs:+ug:+nofbs:-with-unit=physics/Gravity/GravityMain/Poisson/Pfft:

gravMgrid:+pm40:-with-unit=physics/Gravity/GravityMain/Poisson/Multigrid:


