# @file params_template.yml
# @brief Template parameter file for the Triumvirate Python package.
# @seealso https://triumvirate.readthedocs.io

---

# -- I/O -----------------------------------------------------------------

# Directories for input catalogue(s) and output measurement(s).
# The paths can be either absolute or relative to the working directory.
# If unset, the current working directory is assumed.
directories:
  catalogues:
  measurements:

# Filenames (with extension) of input catalogues.  These are relative
# to the catalogue directory.
files:
  data_catalogue:
  rand_catalogue:

# FUTURE: This parameter currently has no effect in the Python interface.
catalogue_columns: []

# FUTURE: This parameter currently has no effect in the Python interface.
catalogue_dataset:

# Tags to be appended as an input/output filename suffix.
tags:
  output:


# -- Mesh sampling -------------------------------------------------------

# Box size in each dimension (in length units).
boxsize:
  x:
  y:
  z:

# Grid cell number in each dimension.
ngrid:
  x:
  y:
  z:

# Box expansion factor: {1. (default), >1.}.
# The box is expanded by this factor in each dimension when
# box size is not set.
expand: 1.

# Nyquist cut-off in either wavenumber or separation.
# Only applicable when the grid cell number `ngrid` is unset, which is
# then determined from this and the box size.
# The measurement range is also truncated at this value if unset.
cutoff_nyq:

# Box alignment: {'centre' (default), 'pad'}.
# The catalogues are either centred or padded from the
# mininum-coordinate corner.
alignment: centre

# Padding scale: {'box' (default), 'grid'}.
# The padding scale is either the box size or the grid cell size.
# Only applicable if `alignment` is set to 'pad'.
padscale: box

# Padding factor as a multiple of the size of padding scale.
# Only applicable if `alignment` is set to 'pad'.
padfactor:

# Mesh assignment scheme: {'ngp', 'cic', 'tsc' (default), 'pcs'}.
assignment: tsc

# Interlacing switch: {true/on, false/off (default))}.
# The switch is overridden to `false` when measuring three-point statistics.
interlace: off


# -- Measurements --------------------------------------------------------

# Type of catalogue(s): {'survey', 'random', 'sim', 'none'}.
# If of type 'sim', global-plane-parallel measurements are made;
# otherwise, local-plane-parallel measurements are made.
catalogue_type:

# Type of measurement: {
#   'powspec', '2pcf', '2pcf-win',
#   'bispec', '3pcf', '3pcf-win', '3pcf-win-wa',
#   'modes', 'pairs'
# }.
statistic_type:

# Degrees of the multipoles.
degrees:
  ell1:
  ell2:
  ELL:

# Orders of wide-angle corrections.
wa_orders:
  i:
  j:

# Form of three-point statistic measurements:
# {'full', 'diag' (default), 'off-diag', 'row'}.
form: diag

# Normalisation convention: {
#   'none', 'particle' (default), 'mesh',
#   'mesh-mixed' (two-point statistics only)
# }.
norm_convention: particle

# Binning scheme: {'lin' (default), 'log', 'linpad', 'logpad', 'custom'}.
binning: lin

# Range of measurement scales.
# The binning coordinate is either wavenumbers in Fourier space,
# or separations in configuration space. [mandatory]
range: [~, ~]

# Number of measurement bins (i.e. data vector dimension).
# Must be >=2, or >=7 if padding is used in binning. [mandatory]
num_bins:

# Fixed bin index when the `form` of three-point statistics measurements
# is set to 'off-diag' or 'row'.  If 'off-diag', the bin index is the
# positive off-diagonal index; if `form` is set to 'row', the bin index
# is the row index.
idx_bin:


# -- Misc ----------------------------------------------------------------

# FFTW scheme: {'estimate', 'measure' (default), 'patient'}.
# This corresponds to the FFTW planner flags.
fftw_scheme: measure

# Use FFTW wisdom: {false (default)/off, <path-to-dir>}.
# If not `false` or non-empty, then this is the path to
# the FFTW wisdom directory; the FFTW wisdom file is either imported
# from there or exported there if the wisdom file does not yet exist;
# `fftw_scheme` must be set to 'measure' or higher (i.e. 'patient').
use_fftw_wisdom: false

# FUTURE: This parameter currently has no effect in the Python interface.
save_binned_vectors: false

# Logging verbosity level: a non-negative integer.
# Typical values are: {
#   0 (NSET, unset), 10 (DBUG, debug), 20 (STAT, status) (default),
#   30 (INFO, info), 40 (WARN, warning), 50 (ERRO, error)
# }.
verbose: 20

# Progress bar display switch: {true/on, false/off (default), <%-points>}.
# If a float is provided, the progress bar is update/displayed
# at that percentage-point interval, e.g. 10. for every 10%.
progbar: off

...
