Parameter Configuration#

This tutorials explains the role of each parameter in the parameter files used to run the Python and C++ routines. The Python parameter file is in the YAML format, whereas the C++ parameter file is in the INI format. For each parameter mentioned below, the configurations for both formats are listed.

See also

For the Python parameter set class ParameterSet, see Parameter Set for more details. The equivalent C++ class is ParameterSet.

Note

Entry values in the parameter file snippets below are written in a pseudo extended Backus–Naur form, where

  • angled brackets < and > denotes a parameter value;

  • square brackets [ and ] delimit an optional entry;

  • braces { and } delimit repetitions;

  • round brackets ( and ) delimit a grouping;

  • a vertical bar | separates mutually exclusive options;

  • an equal sign = inside optional entries denotes the default value;

  • a colon : inside an entry is followed by the data type.

System I/O#

Directories#

To set the catalogue directory from which catalogue files are read and the measurement directory to which measurement files are saved, insert the absolute or relative (to the working directory) paths in the following parts.

directories:
  catalogues: [<directory: str>]
  measurements: [<directory: str>]

Hint

If left empty, the current working directory is assumed. The catalogue directory can be unset if no catalogues are to be loaded.

Files#

To set the data and random catalogue files (inside the catalogue directory specified as above) for which clustering measurements are made, insert the file names with extension in the following parts.

files:
  data_catalogue: [<filename-stem.ext: str>]
  rand_catalogue: [<filename-stem.ext: str>]

Hint

If no data/random catalogue(s) is/are to be loaded by the program, then the corresponding parameter has no effect/can be unset.

For C++ routines, the catalogue data columns need to be specified as a non-breaking comma-separated string in the following part in the INI file. For the Python program, this is specified as a list of strings in the YAML filethis is a future feature, currently has no effect and can be unset in the YAML file.

INI#
catalogue_columns = [<column-name: string>{","<column-name: string>}]

Hint

This parameter is required in the INI file when a catalogue file is to be loaded by the C++ program, or when the Python catalogue reader cannot infer the data columns.

See also

For the Python catalogue class ParticleCatalogue, see Particle Catalogue for more details. The equivalent C++ class is ParticleCatalogue.

Mesh sampling#

Physical properties#

All catalogue particles are weighted and assigned to a mesh grid as discrete sampling of a continuous field. The mesh grid box has sizes (typically in \(h^{-1}\,\mathrm{Mpc}\) units) specified in the following parts.

boxsize:
  x: <boxsize: float>
  y: <boxsize: float>
  z: <boxsize: float>

Hint

Make sure the box sizes are large enough for the catalogue(s).

The number of grid cells in each dimension is specified in the following parts.

ngrid:
  x: <grid-number: int>
  y: <grid-number: int>
  z: <grid-number: int>

Hint

Mesh grid numbers should be even and often a power of 2 for fast Fourier transforms.

Alignment#

The particle coordinates are offset to box coordinates in length units. The alignment of particles in the box has two options: their mid-point either coincides with the box centre (‘centre’), or their coordinate minima are padded from the origin corner of the box (‘pad’).

If the padding option is used, the amount of padding is determined as a multiple padfactor of padscale, which is either the box size (‘box’) or the grid cell size in each dimension (‘grid’).

This is specified in the following parts.

alignment: [=centre | pad]
padscale: [=box | grid]
padfactor: [<pad-factor: float>]

Assignment#

Mesh assignment schemes from order 1 to 4 are supported: nearest grid point (‘ngp’), cloud-in-cell (‘cic’), triangular-shaped cloud (‘tsc’) and piecewise cubic spline (‘pcs’).

The interlacing technique can be used to reduce aliasing in discrete Fourier transforms for two-point clustering statistics only.

These are specified in the following parts.

assignment: [ngp | cic | =tsc | pcs]
interlace: [(true | on | false | =off): bool]

Measurements#

Types#

To specify the statistic being measured in local/global plane-parallel (LPP/GPP) approximations or as the window function, insert the relevant catalogue type,

  • ‘survey’ for LPP,

  • ‘sim’ for GPP, and

  • ‘random’ for window functions,

  • ‘none’ for other statistics (e.g. mesh grid binning),

and the statistic type,

  • ‘powspec’ for power spectrum,

  • ‘2pcf’ for correlation function,

  • ‘2pcf-win’ for correlation function window,

  • ‘bispec’ for bispectrum,

  • ‘3pcf’ for three-point correlation function,

  • ‘3pcf-win’ for three-point correlation function window,

  • ‘3pcf-win-wa’ for three-point correlation function window wide-angle terms,

  • ‘modes’ for the binning of wavevector modes,

  • ‘pairs’ for the binning of separation pairs,

in the following parts.

catalogue_type: [survey | random | sim | none]
statistic_type: [powspec | 2pcf | 2pcf-win | bispec | 3pcf | 3pcf-win | 3pcf-win-wa | modes | pairs]

Indexing#

Each clustering statistic is indexed by (a) multipole degree(s) \(L\) (and \(\ell_1, \ell_2\) for three-point statistics), and wide-angle terms are indexed by orders \(i, j\). These are specified in the following parts.

degrees:
  ell1: [<degree-1: int>]
  ell2: [<degree-2: int>]
  ELL: [<degree: int>]

wa_orders:
  i: [<order-i: int>]
  j: [<order-j: int>]

Hint

These indices can be unset if no actual clustering measurements are being made, e.g. when ‘statistic_type’ is ‘modes’ or ‘pairs’ for obtaining the mesh grid binning details only.

Choices#

Three-point clustering statistic measurements have four forms: ‘diag’ (diagonal), ‘off-diag’ (off-diagonal) and ‘row’, which all have reduced 1-d coordinate binning, and ‘full’, which has flattened 2-d coordinate binning. This is specified in the following parts.

form: [=diag | off-diag | row | full]

Hint

The ‘off-diag’ form returns an off-diagonal in the upper triangular matrix of the 2-d full form. The ‘full’ form concatenates entries of each row in the upper triangular matrix.

The normalisation factor can be computed either as a sum over catalogue particles (‘particle’) or as a sum over the mesh grid (‘mesh’), or unspecified (‘none’) equivalent to unity normalisation. For two-point clustering statistics only, pypower-like mixed-mesh normalisation is available as ‘mesh-mixed’. The normalisation convention is specified in the following parts.

norm_convention: [=particle | mesh | mesh-mixed | none]

Coordinate binning#

The coordinates at which the statistics are measured and binned are determined by a binning scheme: linear (‘lin’) spacing, logarithmic (‘log’) spacing, linear spacing with additional lower-end padding for 5 linear intervals (‘linpad’), logarithmic spacing with additional lower-end padding for 5 linear intervals (‘logpad’), and customised bins (‘custom’) (for which the user needs to supply the binning class object explicitly). The padding intervals are \(10^{-3}\) (wavenumber units) in Fourier space and \(10\) (length units) in configuration space. The total number of bins, num_bins, should be no lower than 2 (or 7 with padding), and the binning range are the lower and upper edges bin_min and bin_max of the bins.

In addition, for ‘row’ form three-point statistics, the first coordinate is fixed with the bin index idx_bin specified; for ‘off-diag’ form three-point statistics, the off-diagonal index is specified by idx_bin as well.

binning: [= lin | log | linpad | logpad | custom]
range: "["<bin-min: float>"," <bin-max: float>"]"
num_bins: <bin-number: int>
idx_bin: <bin-index: int>

See also

For the Python binning class Binning, see Binning Scheme for more details. The equivalent C++ class is Binning.

Miscellaneous#

I/O#

The C++ program can save the details of the binning of wavevector modes or separation pairs from a mesh grid when measuring clustering statistics to a file in the following part in the INI file. For the Python program, this is a future feature, currently has no effect and can be unset in the YAML file.

INI#
save_binned_vectors = [=false | true | <file-path: string>]

Hint

When save_binned_vectors is ‘true’, a default file path in the measurement directory is used to save the binned vectors; if it is a string (not ‘false’), then that is used as the saved file path (relative to the measurement directory).

Logging#

The C++ backend/program comes with a logger (Logger) for which the verbosity/logging level can be specified in the following parts.

verbose: [=20 | <logging-level: int>]