PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
PICurv Solver Documentation

Introduction

PICurv: A Hybrid Eulerian-Lagrangian Framework for Scalar Transport

PICurv is a parallel CFD and particle framework for incompressible flow and scalar transport. It combines:

  • Eulerian flow solves on curvilinear grids (PETSc DMDA based)
  • Lagrangian particle transport (DMSwarm based)
  • A YAML-driven run pipeline through ./scripts/pic.flow

The user workflow is configuration-first: YAML inputs are validated and translated into generated runtime artifacts consumed by the C solver and postprocessor.

Documentation Entry Points (Structural)

Start here first:

  • Getting Started: fast first-run path for installation, first case setup, validation, and first outputs.

Then use the structural map and reference pages:

Quick Preview

PICurv simulation preview
Example visualization output (ParaView)

Core Methodology

PICurv uses a two-way coupled Eulerian-Lagrangian strategy:

  1. Eulerian phase: velocity/pressure evolution on a structured curvilinear grid.
  2. Lagrangian phase: particle motion and particle-carried quantities.
  3. Coupling:
    • Grid -> particle interpolation for advection/source evaluation.
    • Particle -> grid projection for reconstructed Eulerian particle-derived fields.

Key Features

  • YAML-driven pipeline (case.yml, solver.yml, monitor.yml, post.yml)
  • Cluster scheduler integration (cluster.yml) for Slurm job generation/submission
  • Study/sweep orchestration (study.yml) with Slurm arrays, dependency chaining, and metric plots
  • Multiple grid ingestion modes: programmatic_c, file, and grid_gen
  • Named momentum solver strategy with solver-specific option blocks
  • Structured post-processing pipelines (Eulerian, Lagrangian, statistics)
  • Dedicated config contract and ingestion mapping docs for maintenance and extension

For release notes and recent contract changes, see Changelog. For solver-method overviews, see Methods and Models Overview.