Skip to content

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.

Notifications You must be signed in to change notification settings

VishalKandala/PICurv

Repository files navigation

PICurv

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.

Curvilinear Grid with Particles

Overview

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

Prerequisites

  • C compiler (GCC/Clang)
  • MPI implementation (OpenMPI/MPICH)
  • PETSc library
  • GNU Make
  • Doxygen (for documentation)

Building

  1. Set required environment variables:
export PETSC_DIR=/path/to/petsc
export PETSC_ARCH=arch-linux-c-debug
  1. Build the project:
# For local development
make

# For cluster deployment
make SYSTEM=cluster

Running a Simulation

  1. Create a simulation directory:
mkdir my_simulation
cd my_simulation
mkdir logs results
  1. Copy configuration files:
cp -r /path/to/picurv/test/flow_solver_test/config .
  1. Link the executable:
ln -s /path/to/picurv/bin/picsolver .
  1. Run the simulation:
# Local run with 4 processes
make run NPROCS=4

# Cluster run with 64 processes
make run SYSTEM=cluster NPROCS=64

Directory Structure

├── bin/           # Compiled executables
├── docs/          # Documentation
├── include/       # Header files
├── src/           # Source files
├── test/          # Test cases
└── config.*.mk    # Build configurations

Documentation

Generate documentation using:

make build-docs

View documentation in a web browser:

make open-docs

License

MIT License

Authors

Vishal Indivar Kandala

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published