67 param_declare_enum(ps,
"DensityKernelType", DensityKernelTypeEnum,
OPTIONAL,
"quintic",
"SPH density kernel to use. Supported values are cubic, quartic and quintic.");
78 "Present-day CMB temperature in Kelvin, default from Fixsen 2009; affects background if RadiationOn is set.");
85 param_declare_double(ps,
"HubbleParam",
OPTIONAL, -1,
"Hubble parameter. Does not affect gravity. Used only for cooling and star formation.");
93 param_declare_double(ps,
"MaxMemSizePerNode",
OPTIONAL, 0.6,
"Pre-allocate this much memory per computing node/ host, in MB. Passing < 1 allocates a fraction of total available memory per node, defaults to 0.6 available memory.");
94 param_declare_double(ps,
"AutoSnapshotTime",
OPTIONAL, 0,
"Seconds after which to automatically generate a snapshot if nothing is output.");
97 param_declare_double(ps,
"TimeLimitCPU",
REQUIRED, 0,
"CPU time to run for in seconds. Code will stop if it notices that the time to end of the next PM step is longer than the remaining time.");
99 param_declare_int (ps,
"MaxDomainTimeBinDepth",
OPTIONAL, 8,
"Forces a domain decompositon every 2^MaxDomainTimeBinDepth timesteps.");
100 param_declare_int (ps,
"DomainOverDecompositionFactor",
OPTIONAL, -1,
"Create on average this number of sub domains on a MPI rank. Higher numbers improve the load balancing. For optimal tree building efficiency, use one domain per thread (the default).");
101 param_declare_double(ps,
"RandomParticleOffset",
OPTIONAL, 8.,
"Internally shift the particles within a periodic box by a random fraction of a PM grid cell each domain decomposition, ensuring that tree openings are decorrelated between timesteps. This shift is subtracted before particles are saved.");
103 param_declare_int (ps,
"DomainUseGlobalSorting",
OPTIONAL, 1,
"Determining the initial refinement of chunks globally. Enabling this produces better domains at costs of slowing down the domain decomposition.");
104 param_declare_double(ps,
"ErrTolIntAccuracy",
OPTIONAL, 0.02,
"Controls the length of the short-range timestep. Smaller values are shorter timesteps.");
105 param_declare_double(ps,
"ErrTolForceAcc",
OPTIONAL, 0.002,
"Force accuracy required from tree. Controls tree opening criteria. Lower values are more accurate.");
106 param_declare_double(ps,
"BHOpeningAngle",
OPTIONAL, 0.175,
"Barnes-Hut opening angle. Alternative purely geometric tree opening angle. Lower values are more accurate.");
108 param_declare_int(ps,
"TreeUseBH",
OPTIONAL, 2,
"If 1, use Barnes-Hut opening angle rather than the standard Gadget acceleration based opening angle. If 2, use BH criterion for the first timestep only, before we have relative accelerations.");
110 "Larger values suppresses grid anisotropy. ShortRangeForceWindowType = erfc supports any value. 'exact' only supports 1.5. ");
118 param_declare_enum(ps,
"ShortRangeForceWindowType", ShortRangeForceWindowTypeEnum,
OPTIONAL,
"exact",
"type of shortrange window, exact or erfc (default is exact) ");
126 param_declare_int(ps,
"ForceEqualTimesteps",
OPTIONAL, 0,
"Force all (tree) timesteps to be the same, and equal to the smallest required.");
129 param_declare_double(ps,
"MaxRMSDisplacementFac",
OPTIONAL, 0.2,
"Controls the length of the PM timestep. Max RMS displacement per timestep in units of the mean particle separation.");
134 param_declare_double(ps,
"DensityContrastLimit",
OPTIONAL, 100,
"Has an effect only if DensityIndepndentSphOn=1. If = 0 enables the grad-h term in the SPH calculation. If > 0 also sets a maximum density contrast for hydro force calculation.");
135 param_declare_double(ps,
"MaxNumNgbDeviation",
OPTIONAL, 2,
"Maximal deviation from the desired number of neighbours for each SPH particle.");
139 param_declare_int(ps,
"NumWriters",
OPTIONAL, 0,
"Max number of concurrent writer processes. 0 implies Number of Tasks; ");
140 param_declare_int(ps,
"MinNumWriters",
OPTIONAL, 1,
"Min number of concurrent writer processes. We increase number of Files to avoid too few writers. ");
141 param_declare_int(ps,
"WritersPerFile",
OPTIONAL, 8,
"Number of Writer groups assigned to a file; total number of writers is capped by NumWriters.");
143 param_declare_int(ps,
"EnableAggregatedIO",
OPTIONAL, 0,
"Use the Aggregated IO policy for small data set (Experimental).");
144 param_declare_int(ps,
"AggregatedIOThreshold",
OPTIONAL, 1024 * 1024 * 256,
"Max number of bytes on a writer before reverting to throttled IO.");
149 param_declare_string(ps,
"MetalCoolFile",
OPTIONAL,
"",
"Path to the Metal Cooling Table. Empty string disables metal cooling. Refer to cooling.c");
150 param_declare_string(ps,
"ReionHistFile",
OPTIONAL,
"",
"Path to the file containing the helium III reionization table. Used if QSOLightupOn = 1.");
152 param_declare_double(ps,
"HIReionTemp",
OPTIONAL, 0,
"Boost the particle temperature to this value during the timestep when it undergoes HI reionization. Do not boost star-forming gas. 1807.09282 suggests a boost of 20000.");
153 param_declare_double(ps,
"UVRedshiftThreshold",
OPTIONAL, -1.0,
"Earliest Redshift that UV background is enabled. This modulates UVFluctuation and TreeCool globally. Default -1.0 means no modulation.");
166 param_declare_enum(ps,
"CoolingRates", CoolingTypeTable,
OPTIONAL,
"Sherwood",
"Which cooling rate table to use. Options are KWH92 (old gadget default), Enzo2Nyx and Sherwood (new default).");
167 param_declare_enum(ps,
"RecombRates", RecombTypeTable,
OPTIONAL,
"Verner96",
"Which recombination rate table to use. Options are Cen92 (old gadget default), Verner96 (new default), Badnell06");
176 param_declare_int(ps,
"LightconeOn",
OPTIONAL, 0,
"Enables a wildly experimental lightcone algorithm that writes particles crossing a lightcone boundary to a file. May not work!");
179 param_declare_int(ps,
"FastParticleType",
OPTIONAL, 2,
"Particles of this type will not decrease the timestep. Default neutrinos.");
180 param_declare_double(ps,
"PairwiseActiveFraction",
OPTIONAL, 0,
"Pairwise gravity instead of tree gravity is used if N(active particles) / N(particles) is less than this. Usually slower.");
182 param_declare_double(ps,
"GravitySoftening",
OPTIONAL, 1./30.,
"Softening for collisionless particles; units of mean separation of DM. ForceSoftening is 2.8 times this.");
183 param_declare_int(ps,
"GravitySofteningGas",
OPTIONAL, 1,
"0 to use adaptive softening, where the gas softening is the smoothing length of the last step.");
185 param_declare_int(ps,
"ImportBufferBoost",
OPTIONAL, 2,
"Memory factor to allow for there being more particles imported during treewlk than exported. Increase this if code crashes during treewalk with out of memory.");
186 param_declare_double(ps,
"PartAllocFactor",
OPTIONAL, 1.5,
"Over-allocation factor of particles. The load can be imbalanced to allow for the work to be more balanced.");
190 param_declare_double(ps,
"InitGasTemp",
OPTIONAL, -1,
"Initial gas temperature. By default set to CMB temperature at starting redshift.");
199 param_declare_double(ps,
"MinFoFMassForNewSeed",
OPTIONAL, 2,
"Minimal halo mass for seeding tracer particles in internal mass units.");
200 param_declare_double(ps,
"MinMStarForNewSeed",
OPTIONAL, 5e-4,
"Minimal stellar mass in halo for seeding black holes in internal mass units.");
204 param_declare_int(ps,
"BlackHoleOn",
REQUIRED, 1,
"Master switch to enable black hole formation and feedback. If this is on, type 5 particles are treated as black holes.");
207 param_declare_double(ps,
"BlackHoleAccretionFactor",
OPTIONAL, 100,
"BH accretion boosting factor relative to the rate from the Bondi accretion model.");
209 param_declare_double(ps,
"SeedBlackHoleMass",
OPTIONAL, 2e-5,
"Mass of initial black hole seed in internal mass units. If this is too much smaller than the gas particle mass, BH will not accrete.");
210 param_declare_double(ps,
"MaxSeedBlackHoleMass",
OPTIONAL, 0,
"Black hole seed masses are drawn from a power law. This is the upper limit on the BH seed mass. If <= 0 then all BHs have the SeedBlackHoleMass and the power law is disabled.");
216 param_declare_double(ps,
"BlackHoleFeedbackFactor",
OPTIONAL, 0.05,
" Fraction of the black hole luminosity to turn into thermal energy");
217 param_declare_double(ps,
"BlackHoleFeedbackRadius",
OPTIONAL, 0,
"NO EFFECT. Was the comoving radius at which the black hole feedback energy was deposited. Did not affect accretion so had odd behaviour.");
218 param_declare_int(ps,
"BlackHoleRepositionEnabled",
OPTIONAL, 1,
"Enables Black hole repositioning to the potential minimum.");
220 param_declare_int(ps,
"BlackHoleKineticOn",
OPTIONAL, 0,
"Switch to AGN kinetic feedback when Eddington accretion is low.");
222 param_declare_double(ps,
"BHKE_EddingtonMFactor",
OPTIONAL, 0.002,
"Factor for mbh-dependent Eddington threshold for the kinetic feedback");
223 param_declare_double(ps,
"BHKE_EddingtonMPivot",
OPTIONAL, 0.05,
"Pivot MBH for mbh-dependent Eddington threshold for the kinetic feedback");
224 param_declare_double(ps,
"BHKE_EddingtonMIndex",
OPTIONAL, 2,
"Powlaw index for mbh-dependent Eddington threshold for the kinetic feedback");
226 param_declare_double(ps,
"BHKE_EffCap",
OPTIONAL, 0.05,
"Factor2 for kinetic feedback efficiency, sets the maximum factor that converts accretion energy to kinetic feedback");
227 param_declare_double(ps,
"BHKE_InjEnergyThr",
OPTIONAL, 5,
"Factor for Minimum KineticFeedbackEnergy injection, controls the burstiness of kinetic feedback");
229 param_declare_double(ps,
"BlackHoleFeedbackRadiusMaxPhys",
OPTIONAL, 0,
"If set, the physical radius at which the black hole feedback energy is deposited. When both this flag and BlackHoleFeedbackRadius are both set, the smaller radius is used.");
232 param_declare_int(ps,
"BH_DynFrictionMethod",
OPTIONAL, 0,
"If set to non-zero, dynamical friction is applied through this method. Setting BH_DynFrictionMethod = 1, = 2, = 3 uses stars only (=1), dark matter + stars (=2), all mass (=3) to compute the DF force.");
236 param_declare_int(ps,
"MergeGravBound",
OPTIONAL, 1,
"If set to 1, apply gravitational bound criteria for merging event. This criteria would be automatically turned off if reposition is enabled.");
237 param_declare_double(ps,
"SeedBHDynMass",
OPTIONAL, -1,
"The initial dynamic mass of BH, default -1 will use the mass of gas particle. Larger Mdyn would help to stablize the BH in the early phase if turning off reposition.");
277 StarformationCriterionEnum,
OPTIONAL,
"density",
"Extra star formation criteria to use. Default is density which corresponds to the SH03 model.");
280 param_declare_double(ps,
"CritOverDensity",
OPTIONAL, 57.7,
"Threshold over-density (in units of the critical density) for gas to be star forming.");
281 param_declare_double(ps,
"CritPhysDensity",
OPTIONAL, 0,
"Threshold physical density (in protons/cm^3) for gas to be star forming. If zero this is worked out from CritOverDensity.");
283 param_declare_int(ps,
"BHFeedbackUseTcool",
OPTIONAL, 1,
"Control how BH feedback interacts with the SFR. If 0, star-forming gas which is heated by a BH remains pressurized (and thus does not cool). If 1, it cools exponentially to the EEQOS using the cooling time rather than the relaxation time. If 2, gas more than 0.3 dex above the EOS temp just cools normally. 1 and 2 give similar BH output, but 1 is 50% faster due to the smaller timebins populated by 2.");
284 param_declare_double(ps,
"FactorSN",
OPTIONAL, 0.1,
"Fraction of the gas energy which is locally returned as supernovae on star formation.");
290 param_declare_enum(ps,
"WindModel", WindModelEnum,
OPTIONAL,
"ofjt10",
"Wind model to use. Default is the varying wind velocity model with isotropic winds.");
293 param_declare_double(ps,
"WindEfficiency",
OPTIONAL, 2.0,
"Fraction of the stellar mass that goes into a wind. Needs sh03 or vs08 wind models.");
297 param_declare_double(ps,
"WindSigma0",
OPTIONAL, 353,
"Reference halo circular velocity at which to evaluate wind speed. Needs ofjt10 wind model.");
298 param_declare_double(ps,
"WindSpeedFactor",
OPTIONAL, 3.7,
"Factor connecting wind speed to halo circular velocity. ofjt10 wind model.");
300 param_declare_double(ps,
"WindFreeTravelLength",
OPTIONAL, 20,
"Expected decoupling distance for the wind in internal distance units.");
301 param_declare_double(ps,
"WindFreeTravelDensFac",
OPTIONAL, 0.1,
"If the density of the wind particle drops below this factor of the star formation density threshold, the gas will recouple.");
302 param_declare_double(ps,
"MinWindVelocity",
OPTIONAL, 0,
"Minimum velocity of the kicked particle in the wind, in internal units (physical km/s).");
310 param_declare_double(ps,
"QuickLymanAlphaProbability",
OPTIONAL, 0,
"Probability gas is turned directly into stars, irrespective of pressure. One is equivalent to quick lyman alpha star formation.");
311 param_declare_double(ps,
"QuickLymanAlphaTempThresh",
OPTIONAL, 1e5,
"Temperature threshold for gas to be star forming in the quick lyman alpha model, in K. Gas above this temperature does not form stars.");
316 param_declare_int(ps,
"HeliumHeatOn",
OPTIONAL, 0,
"Change photo-heating rate to model helium reionisation on underdense gas.");
327 param_declare_double(ps,
"QSOMeanBubble",
OPTIONAL, 20000,
"Mean size of the ionizing bubble around a quasar. By default 20 Mpc/h = 28 Mpc. 0807.2799");
328 param_declare_double(ps,
"QSOVarBubble",
OPTIONAL, 0,
"Variance of the ionizing bubble around a quasar. By default zero so all bubbles are the same size");
329 param_declare_double(ps,
"QSOHeIIIReionFinishFrac",
OPTIONAL, 0.995,
"Reionization fraction at which all particles are flash-reionized instead of having quasar bubbles placed.");
333 param_declare_double(ps,
"MetalsMaxNgbDeviation",
OPTIONAL, 5.,
"Maximum variance in the number of neighbours metals are returned to.");
334 param_declare_int(ps,
"MetalsSPHWeighting",
OPTIONAL, 1,
"If true, return metals to gas with a volume-weighted SPH kernel. If false use a volume-weighted uniform kernel.");
337 param_declare_int(ps,
"MassiveNuLinRespOn",
REQUIRED, 0,
"Enables linear response massive neutrinos of 1209.0461. Make sure you enable radiation too.");
338 param_declare_int(ps,
"HybridNeutrinosOn",
OPTIONAL, 0,
"Enables hybrid massive neutrinos, where some density is followed analytically, and some with particles. Requires MassivenuLinRespOn");
342 param_declare_double(ps,
"Vcrit",
OPTIONAL, 500.,
"For hybrid neutrinos: Critical velocity (in km/s) in the Fermi-Dirac distribution below which the neutrinos are particles in the ICs.");
@ DENSITY_KERNEL_CUBIC_SPLINE
@ DENSITY_KERNEL_QUINTIC_SPLINE
@ DENSITY_KERNEL_QUARTIC_SPLINE
static int BlackHoleFeedbackMethodAction(ParameterSet *ps, const char *name, void *data)
static int StarformationCriterionAction(ParameterSet *ps, const char *name, void *data)
@ SHORTRANGE_FORCE_WINDOW_TYPE_ERFC
@ SHORTRANGE_FORCE_WINDOW_TYPE_EXACT
void param_declare_enum(ParameterSet *ps, const char *name, ParameterEnum *enumtable, const enum ParameterFlag required, const char *defvalue, const char *help)
void param_declare_double(ParameterSet *ps, const char *name, const enum ParameterFlag required, const double defvalue, const char *help)
void param_declare_int(ParameterSet *ps, const char *name, const enum ParameterFlag required, const int defvalue, const char *help)
void param_set_action(ParameterSet *ps, const char *name, ParameterAction action, void *userdata)
void param_declare_string(ParameterSet *ps, const char *name, const enum ParameterFlag required, const char *defvalue, const char *help)
ParameterSet * parameter_set_new()
@ SFR_CRITERION_MOLECULAR_H2
@ SFR_CRITERION_CONVERGENT_FLOW
@ SFR_CRITERION_CONTINUOUS_CUTOFF
@ SFR_CRITERION_SELFGRAVITY
int OutputListAction(ParameterSet *ps, const char *name, void *data)