class py21cmfast.inputs.FlagOptions(*args, **kwargs)[source]

Flag-style options for the ionization routines.

To see default values for each parameter, use FlagOptions._defaults_. All parameters passed in the constructor are also saved as instance attributes which should be considered read-only. This is true of all input-parameter classes.

Note that all flags are set to False by default, giving the simplest “vanilla” version of 21cmFAST.

  • USE_HALO_FIELD (bool, optional) – Set to True if intending to find and use the halo field. If False, uses the mean collapse fraction (which is considerably faster).

  • USE_MINI_HALOS (bool, optional) – Set to True if using mini-halos parameterization. If True, USE_MASS_DEPENDENT_ZETA and INHOMO_RECO must be True.

  • USE_CMB_HEATING (bool, optional) – Whether to include CMB Heating. (cf Eq.4 of Meiksin 2021,

  • USE_LYA_HEATING (bool, optional) – Whether to use Lyman-alpha heating. (cf Sec. 3 of Reis+2021,

  • USE_MASS_DEPENDENT_ZETA (bool, optional) – Set to True if using new parameterization. Setting to True will automatically set M_MIN_in_Mass to True.

  • SUBCELL_RSDS (bool, optional) – Add sub-cell redshift-space-distortions (cf Sec 2.2 of Greig+2018). Will only be effective if USE_TS_FLUCT is True.

  • INHOMO_RECO (bool, optional) – Whether to perform inhomogeneous recombinations. Increases the computation time.

  • USE_TS_FLUCT (bool, optional) – Whether to perform IGM spin temperature fluctuations (i.e. X-ray heating). Dramatically increases the computation time.

  • M_MIN_in_Mass (bool, optional) – Whether the minimum halo mass (for ionization) is defined by mass or virial temperature. Automatically True if USE_MASS_DEPENDENT_ZETA is True.

  • PHOTON_CONS (bool, optional) – Whether to perform a small correction to account for the inherent photon non-conservation.

  • FIX_VCB_AVG (bool, optional) – Determines whether to use a fixed vcb=VAVG (regardless of USE_RELATIVE_VELOCITIES). It includes the average effect of velocities but not its fluctuations. See Muñoz+21 (2110.13919).

  • USE_VELS_AUX (bool, optional) – Auxiliary variable (not input) to check if minihaloes are being used without relative velocities and complain


__init__(*args, **kwargs)


Make a fresh copy of the instance with arbitrary parameters updated.

convert(key, val)

Make any conversions of values before saving to the instance.


Obtain the C-side field names of this struct.


Obtain the C-side fields of this struct.


Obtain all pointer fields of the struct (typically simulation boxes).


Delete the underlying C object, forcing it to be rebuilt.


Update the parameters of an existing class structure.



Automatically setting INHOMO_RECO to True if USE_MINI_HALOS.


Whether minimum halo mass is defined in mass or virial temperature.


Automatically setting PHOTON_CONS to False if USE_MINI_HALOS.


The SUBCELL_RSD flag is only effective if APPLY_RSDS is True.


Automatically setting USE_HALO_FIELD to False if USE_MINI_HALOS.


Automatically setting USE_MASS_DEPENDENT_ZETA to True if USE_MINI_HALOS.


Automatically setting USE_TS_FLUCT to True if USE_MINI_HALOS.


Pure python dictionary representation of this class, as it would appear in C.


List names of fields of the underlying C struct.


List of fields of the underlying C struct (a list of tuples of "name, type").


List of names of fields which have pointer type in the C struct.


List of names of fields which have primitive type in the C struct.


A pure-python dictionary representation of the corresponding C structure.


Dictionary which if passed to its own constructor will yield an identical copy.