A parallel, high-performance Particle-In-Cell (PIC) solver with curvilinear coordinate support.
PICurv enables efficient simulation of particle-laden flows in complex geometries by combining state-of-the-art numerical methods with high-performance parallel computing. Perfect for multiphase flow simulations, plasma physics, and particle transport phenomena in curved geometries.
PICurv is a scientific computing application that combines Eulerian grid-based fluid dynamics with Lagrangian particle tracking using the PIC (Particle-In-Cell) method. It features:
- Parallel execution using MPI and PETSc
- Curvilinear coordinate system support
- Flexible boundary condition handling
- Turbulence modeling (LES/RANS)
- Advanced particle tracking algorithms
- VTK-compatible output for visualization
- C compiler (GCC/Clang)
- MPI implementation (OpenMPI/MPICH)
- PETSc library
- GNU Make
- Doxygen (for documentation)
- Set required environment variables:
export PETSC_DIR=/path/to/petsc
export PETSC_ARCH=arch-linux-c-debug- Build the project:
# For local development
make
# For cluster deployment
make SYSTEM=cluster- Create a simulation directory:
mkdir my_simulation
cd my_simulation
mkdir logs results- Copy configuration files:
cp -r /path/to/picurv/test/flow_solver_test/config .- Link the executable:
ln -s /path/to/picurv/bin/picsolver .- Run the simulation:
# Local run with 4 processes
make run NPROCS=4
# Cluster run with 64 processes
make run SYSTEM=cluster NPROCS=64├── bin/ # Compiled executables
├── docs/ # Documentation
├── include/ # Header files
├── src/ # Source files
├── test/ # Test cases
└── config.*.mk # Build configurations
Generate documentation using:
make build-docsView documentation in a web browser:
make open-docsMIT License
Vishal Indivar Kandala
