This project provides both a standalone NFsim C++ executable and Python bindings (pyvcell_nfsim).
Each vX.Y.Z release also carries the executable VCell runs, NFsim_x64, as linux64.tgz,
linux64arm.tgz, mac64.tgz (universal) and win64.zip with SHA256SUMS, and the solver image
ghcr.io/virtualcell/vcell-nfsim:X.Y.Z with its Apptainer SIF
oras://ghcr.io/virtualcell/vcell-nfsim_singularity:X.Y.Z (VCell messaging on, -tid <n>).
See SOLVER-RELEASE.md for the layout, the container entry point, the checks and
how to cut a release. To build NFsim_x64 locally: cmake --build build --target NFsim_x64
(add -DOPTION_VCELL_MESSAGING=ON at configure time for broker messaging; needs libcurl).
$ cmake -S . -B build
$ cmake --build build --config Release> cmake -S . -B build -G "Visual Studio 17 2022" -A x64
> cmake --build build --config ReleaseThe executable will be available at build/bin/NFsim.
- Python 3.9 or later
- pybind11
- scikit-build-core
$ pip install -e .This will build the Python extension module and install it in editable mode.
$ pip install build
$ python -m buildThe wheel will be created in the dist/ directory.
$ pip install .Run the NFsim model tests:
$ ctest --test-dir build -C Release --output-on-failureNote: -C <config> is required for multi-config generators to specify which build configuration to test.
First, activate your virtual environment (if not already activated):
$ source .venv/bin/activate # On Linux/macOS
$ .venv\Scripts\activate # On WindowsInstall the package in editable mode:
$ pip install -e .Then install test dependencies:
$ pip install pytestRun the smoke test:
$ pytest tests/test_pyvcell_nfsim.py -vTo run all tests:
$ pytest -vRemove build artifacts:
$ cmake --build build --target cleanCompletely remove the build directory:
# Linux/macOS
$ rm -rf build
# Windows (cmd)
> rmdir /s /q build
# Windows (PowerShell)
> Remove-Item -Recurse -Force build$ rm -rf dist/ build/ *.egg-info