3ptWL-mod

3ptWL-mod computes theoretical multipoles of the three-point correlation function (3PCF) of projected scalar fields, with a focus on weak-lensing convergence. The public workflow provides:

  • a compiled C command-line executable, wlcf;

  • a static library, libwlcf.a;

  • a Cython wrapper, wlcfpy;

  • notebook workflows for 3PCF visualization and neural-network emulation.

The models include perturbation-theory, effective-field-theory, and Takahashi/Halo-model inspired bispectrum branches. Although the repository is named 3ptWL-mod, the executable and Python module retain their historical wlcf names for compatibility.

Basic Usage

Build the executable, static library, and Python wrapper from a source checkout:

make clean
make PYTHON=python3 all

Run a compact command-line calculation:

./wlcf rootDir=Output_quick prefix=quick_ \
   fnamePS=./input/linear_pk_Takahashi_z0.txt \
   numberThreads=1 verbose=0 verbose_log=0 \
   mMax=2 Nell=32 chiQuadSteps=40 GLpoints=24 writevectors=false

Or use the Python wrapper:

from wlcfpy import wlcf

model = wlcf()
model.set({
    "rootDir": "Output_python",
    "prefix": "python_",
    "fnamePS": "./input/linear_pk_Takahashi_z0.txt",
    "tree_level": 4,
    "mMax": 2,
    "Nell": 32,
    "chiQuadSteps": 40,
    "GLpoints": 24,
    "numberThreads": 1,
    "verbose": 0,
    "verbose_log": 0,
    "writevectors": False,
})
cputime = model.Run()
model.clean_all()

How to Use This Guide

Start with Installation and Quickstart. For production runs, read Command-Line Usage, Inputs and Parameter Files, and Outputs and File Formats before increasing the numerical resolution. The Tutorials section contains the end-to-end 3PCF and emulator workflows. Developers should also consult Developer Guide and Troubleshooting and Common Errors.