Bundled defaults#

Defaults live beside the task implementations:

  • pyhermes/base/default_params.json for SFCProjection

  • pyhermes/theory/default_params.json for the statistical tasks

They are JSON5 files used internally by read_param. Do not edit them for an individual analysis; override values in a user YAML file instead.

SFCProjection#

Field-construction defaults#

Key

Default

Purpose

box_size

1000

Periodic-box side length in the coordinate units of particle_pos.

J

8

Dilation level, with \(L=2^J\) cells per axis.

wavelet_mode

db2

PyWavelets scaling-function family.

wavelet_level

10

Refinement depth used to tabulate the scaling function.

phi_resolution

1024

Sampling resolution of the tabulated scaling function.

weight_normalization

catalog

Normalization of catalog_weight * field_value.

save_particle_data

false

Save positions and projected particle weights for particle-centred estimators.

threads

1

Numba threads per MPI rank.

particle_pos, catalog_weight, and field_value default to null; file input then comes from fin. The default reader is a three-column float32 raw binary table. fout_path and particle_data_path are empty until supplied by the user. fin.download defaults to an empty explicit cache path and checksum, a 60-second request timeout, and the platform cache directory when a URL is supplied without further options.

Counting#

random_count=1000000 and seed=42 define the sampling positions. The default window.type is empty, so no optional smoothing is applied. weight_normalization=catalog converts catalogue fields to their standard normalized amplitude before sampling.

Corr_2PCF#

The shared field and random inputs are empty by default. The default estimator uses:

weight_normalization: "catalog"
binning_window:
   type: "shell"
   len_args: ["R"]
   mapping: "s_to_R"
sampling:
   s: {min: 1.0, max: 150.0, n: 30}
products: "xi"
memory_strategy: "speed"
binning_window_cache: false
threads: 1

The list form len_args: ["R"] is normalized internally into a runtime placeholder. User configurations are clearer when written explicitly as len_args: {R: null}.

Corr_3PCF#

The default direct-angular triangle has r12=20, r13=40, 20 angular samples, 100 rotations, and center=box_random with five million centres. angle_param=theta, base_seed=42, and products=Q. Shared and vertex-specific fields, randoms, and windows remain empty until configured.

Corr_3PCF_Multipole#

Multipole radii have no top-level defaults. Both edge windows and sampling must be supplied. The execution defaults are:

l_min: 0
l_max: 4
products: "zeta_l"
execution_mode: "serial"
summation_backend: "gpu"
gpu_device_id: 0
gpu_threads_per_block: [8, 8, 8]
sample_mpi:
   ranks_per_sample: 1
   gpu_device_ids: []
cache_multipole_fields: false
verbose_m_progress: false
verbose_profile: false
radial_profile_diagnostics: true
radial_profile_diagnostic_tolerance: 1.0e-5
radial_profile_diagnostic_probes: 33
zeta_condition_warning: 1.0e12
threads: 1

The default GPU backend requires a usable CUDA device. Set summation_backend: cpu explicitly on CPU-only systems.

Resolution and memory#

The deceptively small J parameter controls a three-dimensional array:

\[N_{\rm MRA}=L^3=2^{3J}.\]

Increasing J by one multiplies the coefficient count by eight. Treat a change from \(J=8\) to \(J=9\) as a new resource regime, not a cosmetic resolution tweak.