SELFGRAVITY # switch to enable self-gravity of particles (typically always on)
#FMM # enables FMM tree algorithm
#FMM # enables Fast Multipole Method instead of one-sided tree algorithm
ALLOW_DIRECT_SUMMATION # allows calculation of small number of particles with direct summation
#MULTIPOLE_ORDER=2 # sets the multipole order of Tree or FMM computations
#EXTERNALGRAVITY # switch on for external potential
#EVALPOTENTIAL # computes gravitational potential besides force
#EVALPOTENTIAL # computes gravitational potential
#EXTRAPOTTERM # this computes an extra multipole term for the potential which is not needed for the forces
#EXTRAPOTTERM # if this is set, the extra multipole term needed in principle for the potential is computed even though it does not enter the force
#EXTRA_HIGH_EWALD_ACCURACY # this uses third-order instead of second-order Taylor expansion to interpolate Ewald corrections from table
#EXTRA_HIGH_EWALD_ACCURACY # if this is activate, a third order Taylor expansion is used for the Ewald corrections
#ALLOW_DIRECT_SUMMATION # allows calculation of direct summation gravity force if only a tiny number of particles as active
#EXTERNALGRAVITY # switches on inclusion of external gravitational potential
#MULTIPOLE_ORDER=2 # enables in tree and/or FMM for a value of 2 monopoles+dipoles (this is default), 3 gives quadrupoles, 4 octupoles, and 5 hexadecupoles
#PMGRID=512 # basic mesh size for TreePM calculations
#RCUT=6.0
#ASMTH=1.25 # sets the smoothing of the PM force and thus the split-scale between Tree/FMM force and PM force
#RCUT=6.0 # cut-off radius beyond which Tree or FMM evaluations are stopped in TreePM / FMM-PM
#NTAB=128 # size of short-range look-up table
#NTAB=128 # size of short-range look-up table
#TREEPM_NOTIMESPLIT # if this is activated, long-range and short-range gravity are time-integrated on a single timestep
#PLACEHIGHRESREGION=2 # bitmask selecting the particle types that are used to define the location of a secondary PM mesh
#PLACEHIGHRESREGION=2
#HRPMGRID=512 # dimension of high-res PM grid (optional, default is HRPMGRID=PMGRID)
#HRPMGRID=512 # High-res PM grid size (optional, default is HRPMGRID=PMGRID)
#FFT_COLUMN_BASED # uses a column-based FFT algorithm instead of the default slab-based one
#PM_ZOOM_OPTIMIZED # selects a communication strategy in the PM code that is better balanced for zoom simulations
#TREE_NUM_BEFORE_NODESPLIT=4 # number of particles are are at most allowed in a tree node before it is split (can be 1)
#--------------------------------------- Time integration options
#TREEPM_NOTIMESPLIT # if this is activated, long-range and short-range gravity are time-integrated on a common timestep
#HIERARCHICAL_GRAVITY # enables hierarchical time integration of the gravity
#FORCE_EQUAL_TIMESTEPS # this chooses a global timestep for all particles
#FFT_COLUMN_BASED
#PM_ZOOM_OPTIMIZED
#GRAVITY_TALLBOX=2 # this can be used to set-up gravity with two-dimensional boxes
#TREE_NUM_BEFORE_NODESPLIT=10 # Optional number that tells how many particles are allowed in a tree node before it is split
#--------------------------------------- Treatment of gravitational softening
#--------------------------------------- Treatment of gravitational softening
#INDIVIDUAL_GRAVITY_SOFTENING=4+8+16+32
#NSOFTCLASSES=4 # Number of different softening values. Normally equal to number of particle types, but can be chosen differently if DECOUPLE_TYPE_AND_SOFTTYPE is set.
#ADAPTIVE_HYDRO_SOFTENING
#INDIVIDUAL_GRAVITY_SOFTENING=4+8+16+32 # bitmasks which selects the particle type(s) which pick their softening class based on particle mass
#NSOFTCLASSES=4 # number of different softening classes
#ADAPTIVE_HYDRO_SOFTENING # makes SPH gas particles pick an adaptive gravitational softening proportional to their SPH smoothing lengths
#--------------------------------------- SPH treatmeant and formulation
#--------------------------------------- SPH treatmeant and formulation
#PRESSURE_ENTROPY_SPH # enables the Hopkins 2013 pressure-entropy formulation
#OUTPUT_PRESSURE_SPH_DENSITY # output also density computed in the pressure-entropy forumulation
#REUSE_HYDRO_ACCELERATIONS_FROM_PREVIOUS_STEP # does not recompute the pressure forces after application of source functions
#GAMMA=1.4
#VISCOSITY_LIMITER_FOR_LARGE_TIMESTEPS # limits the acceleration due to the viscosity
#ISOTHERM_EQS
#PRESSURE_ENTROPY_SPH # enables the Hopkins (2013) pressure-entropy formulation, other density-entropy is used
#REUSE_HYDRO_ACCELERATIONS_FROM_PREVIOUS_STEP
#GAMMA=1.4 # sets the adiabatic index
IMPROVED_VELOCITY_GRADIENTS # use higher-order gradients of the velocity according to Hu et. al (2014)
#ISOTHERM_EQS # selects an isothermal equation of state
VISCOSITY_LIMITER_FOR_LARGE_TIMESTEPS #limits the acceleration due to the viscosity
#IMPROVED_VELOCITY_GRADIENTS # use higher-order gradients of the velocities according to Hu et. al (2014)
#IMPOSE_PINNING # enables pinning of MPI processes to CPU cores
#IMPOSE_PINNING_OVERRIDE_MODE # tries to do the pinning even if a prior pinning is detected
#PRESERVE_SHMEM_BINARY_INVARIANCE # preserve binary invariance of results despite machine weather, at the price of more tree walk overhead
#EXPLICIT_VECTORIZATION # use AVX at selected places in SPH kernels through the vectorclass C++ library
#SIMPLE_DOMAIN_AGGREGATION # this is an experimental modification of the domain decomposition algorithm (can either help or harm performance)
#---------------------------------------- MPI related settings
#---------------------------------------- MPI related settings
#ISEND_IRECV_IN_DOMAIN
#USE_MPIALLTOALLV_IN_DOMAINDECOMP
#MPI_HYPERCUBE_ALLGATHERV # some MPI-libraries may use quite a bit of internal storage for MPI_Allgatherv. This uses hypercubes instead as a work-around
#MPI_MESSAGE_SIZELIMIT_IN_MB=200
#NUMPART_PER_TASK_LARGE # Set this if the number of particle per task is very large (so that more than 2GB data is comprised just by the particle data)
#MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY=64
#NUMBER_OF_MPI_LISTENERS_PER_NODE=1 # set such that the number of MPI-ranks per node and listener is maller than MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY
#NUMBER_OF_MPI_LISTENERS_PER_NODE=1
#MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY=64 # default is 64, but can also be set to 32
#NUMPART_PER_TASK_LARGE # set this if the number of particles per task is so large that more than 2 GB are comprised just by particle data
#USE_MPIALLTOALLV_IN_DOMAINDECOMP # replaces hypercube communication in domain particle exchance with a single MPI_Allgatherv (can be less stable)
#MPI_HYPERCUBE_ALLGATHERV # if your MPI-library uses too much internal storage for MPI_Allgatherv, this uses a hypercube as a work-around
#MPI_MESSAGE_SIZELIMIT_IN_MB=200 # limit the message size of very large MPI transfers
#ISEND_IRECV_IN_DOMAIN # uses asynchronous communication instead of synchronous communication in hypercube pattern (can be less stable)
#---------------------------------------- Testing and Debugging options
#---------------------------------------- Testing and Debugging options
DEBUG # enables core-dumps
#DEBUG_ENABLE_FPU_EXCEPTIONS # tries to enable FPU exceptions
#HOST_MEMORY_REPORTING # reports after start-up the available system memory by analyzing /proc/meminfo (active by default on Linux)
#ENABLE_HEALTHTEST # can be used to enable some auto-checking of the machine you're running on
#DEBUG # enables core-dumps in case MPI_Init() has disabled them
#DEBUG_ENABLE_FPU_EXCEPTIONS # tries to enable FPU exceptions so that a bad floating point operation triggers a core dump
#DEBUG_SYMTENSORS # carries out a few unit tests related to the tensor algebra routines of the code
#DEBUG_SYMTENSORS # carries out a few unit tests related to the tensor algebra routines of the code
HOST_MEMORY_REPORTING # reports after start-up the available system memory by analyzing /proc/meminfo
#FORCETEST=0.001 # calculates for given fraction of particles direct summation forces to check accuracy of tree force
#FORCETEST=0.001 # calculates for given fraction of particles direct summation forces to check accuracy of tree force
#FORCETEST_FIXEDPARTICLESET # if this set, always the same particle receive a force accuracy check during a run
#FORCETEST_FIXEDPARTICLESET # if this set, always the same particle receive a force accuracy check during a run
#FORCETEST_TESTFORCELAW=1 # Special option for measuring the effective force law, can be set to 1 or 2 for TreePM+HighRes
#FORCETEST_TESTFORCELAW=1 # special option for measuring the effective force law, can be set to 1 or 2 for TreePM+HighRes
#VTUNE_INSTRUMENT
#VTUNE_INSTRUMENT # outputs auxiliary info to simplify Vtune performance analysis
#DEBUG_MD5 # make MD5 check sum routines available for debugging
#DEBUG_MD5 # make MD5 check sum routines available for debugging and code development
#SQUASH_TEST
#SQUASH_TEST # special check-option for code development
#DOMAIN_SPECIAL_CHECK
#DOMAIN_SPECIAL_CHECK # special check-option for code development
#RECREATE_UNIQUE_IDS # Before carrying out the ID uniqueness test, this sets new IDs. Can be used if IC files contain broken IDs.
#RECREATE_UNIQUE_IDS # before carrying out the ID uniqueness test, this sets new IDs (e.g. to fix broken ICs)
#NO_STOP_BELOW_MINTIMESTEP # do not stop when the code wants to go below minimum timestep
#NO_STOP_BELOW_MINTIMESTEP # do not stop when the code wants to go below a prescribed minimum timestep
#TILING=2 # duplicated an IC in each dimension
#TILING=2 # duplicate an IC in each dimension for scaling tests
#DO_NOT_PRODUCE_BIG_OUTPUT # for scaling tests, one may disable the writing of restart files and snapshot dumps
#DO_NOT_PRODUCE_BIG_OUTPUT # for scaling tests, disable the writing of restart files and snapshot dumps
#MEASURE_TOTAL_MOMENTUM
#MEASURE_TOTAL_MOMENTUM # special test option for code development
#ENABLE_HEALTHTEST
#EWALD_TEST # a development test for the Ewald tables
#EWALD_TEST # a development test for the Ewald tables
#STOP_AFTER_STEP=10 # ends a simulation after the specified timestep (to simplify scalability tests)
#STOP_AFTER_STEP=10 # ends a simulation after the specified timestep (to simplify scalability tests)
#TREE_NO_SAFETY_BOX # when set, this disables the geometric 'near node' protection
#TREE_NO_SAFETY_BOX # when set, this disables the geometric 'near node' protection