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

Structure containing user parameters (with defaults).

To see default values for each parameter, use UserParams._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.

  • HII_DIM (int, optional) – Number of cells for the low-res box. Default 200.

  • DIM (int,optional) – Number of cells for the high-res box (sampling ICs) along a principal axis. To avoid sampling issues, DIM should be at least 3 or 4 times HII_DIM, and an integer multiple. By default, it is set to 3*HII_DIM.

  • BOX_LEN (float, optional) – Length of the box, in Mpc. Default 300 Mpc.

  • HMF (int or str, optional) – Determines which halo mass function to be used for the normalisation of the collapsed fraction (default Sheth-Tormen). If string should be one of the following codes: 0: PS (Press-Schechter) 1: ST (Sheth-Tormen) 2: Watson (Watson FOF) 3: Watson-z (Watson FOF-z)

  • USE_RELATIVE_VELOCITIES (int, optional) – Flag to decide whether to use relative velocities. If True, POWER_SPECTRUM is automatically set to 5. Default False.

  • POWER_SPECTRUM (int or str, optional) – Determines which power spectrum to use, default EH (unless USE_RELATIVE_VELOCITIES is True). If string, use the following codes: 0: EH 1: BBKS 2: EFSTATHIOU 3: PEEBLES 4: WHITE 5: CLASS (single cosmology)

  • N_THREADS (int, optional) – Sets the number of processors (threads) to be used for performing 21cmFAST. Default 1.

  • PERTURB_ON_HIGH_RES (bool, optional) – Whether to perform the Zel’Dovich or 2LPT perturbation on the low or high resolution grid.

  • NO_RNG (bool, optional) – Ability to turn off random number generation for initial conditions. Can be useful for debugging and adding in new features

  • USE_FFTW_WISDOM (bool, optional) – Whether or not to use stored FFTW_WISDOMs for improving performance of FFTs

  • USE_INTERPOLATION_TABLES (bool, optional) – If True, calculates and evaluates quantites using interpolation tables, which is considerably faster than when performing integrals explicitly.

  • FAST_FCOLL_TABLES (bool, optional) – Whether to use fast Fcoll tables, as described in Appendix of Muñoz+21 (2110.13919). Significant speedup for minihaloes.

  • USE_2LPT (bool, optional) – Whether to use second-order Lagrangian perturbation theory (2LPT). Set this to True if the density field or the halo positions are extrapolated to low redshifts. The current implementation is very naive and adds a factor ~6 to the memory requirements. Reference: Scoccimarro R., 1998, MNRAS, 299, 1097-1118 Appendix D.

  • MINIMIZE_MEMORY (bool, optional) – If set, the code will run in a mode that minimizes memory usage, at the expense of some CPU/disk-IO. Good for large boxes / small computers.


__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.



Number of cells for the high-res box (sampling ICs) along a principal axis.




Total number of pixels in the low-res box.


The HMF to use (an int, mapping to a given form).


The power spectrum generator to use, as an integer.


Whether to use interpolation tables for integrals, speeding things up.


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").


String representation of the HMF model used.


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


String representation of the power spectrum model used.


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.


Total number of pixels in the high-res box.