|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
This guide covers dependency setup, PETSc configuration, and binary build verification for PICurv.
Install these first:
gcc or clang)mpich or openmpi)DMSwarm supportFrom the PICurv repo root:
If PETSc is not installed yet, let the script build it:
The script installs system and Python dependencies, verifies PETSc/DMSwarm visibility, then builds:
bin/simulator (compiled C solver)bin/postprocessor (compiled C post-processor)bin/picurv (symlink to scripts/picurv, the Python conductor)Debian/Ubuntu:
RHEL/CentOS/Fedora:
Optional (study plot generation):
Recommended source install:
Debug build example:
Optimized build example:
Official references:
Add to your shell profile (~/.bashrc or equivalent):
The etc/picurv.sh script sets PICURV_DIR, adds bin/ to your PATH for compiled executables, and also exposes scripts/ as a fallback so picurv still resolves if bin/picurv is temporarily absent before a rebuild. It is idempotent and safe to source multiple times.
Reload and verify:
Verify PETSc has DMSwarm headers:
Expected binaries:
bin/simulator (compiled C solver)bin/postprocessor (compiled C post-processor)bin/picurv (symlink → scripts/picurv)Useful variants:
After source etc/picurv.sh, use picurv directly from any directory. ./scripts/picurv build writes logs/build.log in the source repo. If you are auditing compiler warnings from a direct Make invocation, use make audit-build to generate both logs/build.log and logs/build.warnings.log.
Recommended sequence after a successful build:
make doctormake smoke (stronger executable-level sanity check)make check (full local validation sweep)make check-full (comprehensive MPI-inclusive validation sweep)What these prove:
make doctor proves the local PETSc installation can build and run a minimal PETSc-backed binary.make smoke proves the compiled PICurv executables still launch.make check runs Python regressions plus PETSc-backed validation.make check-full additionally validates dedicated MPI unit coverage, fixed-size multi-rank smoke, and rank-matrix smoke in one pass.What make doctor does not prove:
PETSC_DIR/PETSC_ARCH unset or mismatched with built arch.cannot find -lX11 on Linux; install libx11-dev).clean-project).For runtime-level failures after successful build, see Common Fatal Errors and Fixes.
For the full testing model after installation, see Testing and Validation Guide.
This page describes Installation Guide within the PICurv workflow. For CFD users, the most reliable reading strategy is to map the page content to a concrete run decision: what is configured, what runtime stage it influences, and which diagnostics should confirm expected behavior.
Treat this page as both a conceptual reference and a runbook. If you are debugging, pair the method/procedure described here with monitor output, generated runtime artifacts under runs/<run_id>/config, and the associated solver/post logs so numerical intent and implementation behavior stay aligned.