PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
Welcome to the documentation for PICurv, a high-performance, parallel framework for simulating turbulent flows with actively coupled scalar fields using a hybrid Eulerian-Lagrangian method.
PICurv is designed to tackle complex scalar transport problems where traditional grid-based methods suffer from numerical diffusion. It couples a curvilinear immersed boundary (CurvIB) fluid dynamics solver with a parallel Lagrangian particle method. In this framework, the "particles" act as moving computational points that carry and evolve scalar properties. These properties are then projected back onto the Eulerian grid, creating a powerful two-way coupling. This makes PICurv an ideal platform for advanced simulations in turbulent mixing and combustion, such as transported Probability Density Function (t-PDF) or Flamelet/Progress Variable (FPV) models.
PICurv's methodology is a tightly integrated, two-way coupled hybrid Eulerian-Lagrangian scheme. It solves for the fluid mechanics on a stationary grid while tracking the evolution of scalar fields on a vast number of moving Lagrangian markers.
The background fluid flow and the grid-based representation of scalar fields are handled in the Eulerian frame.
phi_field
):** The grid also hosts Eulerian fields for the scalars being tracked (e.g., mixture fraction, temperature). These fields are not directly advected but are instead constructed from the properties of the Lagrangian markers.
The core of the scalar transport model resides in the Lagrangian phase, which consists of millions of computational markers.
phi_particle
). Each marker represents a statistical sample of the flow.d(phi_particle)/dt = S(phi_particle, ...)
. The source term S
can depend on local fluid properties interpolated from the grid.DMSwarm
, handling memory, data layout, and automatic migration between MPI ranks.
The true power of PICurv lies in the continuous, two-way exchange of information between the grid and the markers, using specific numerical schemes.
**u**
is interpolated to each marker's location using a trilinear interpolation scheme to advect it accurately.phi_field
) is reconstructed from the Lagrangian marker properties using cell averaging. The value of phi_field
for a given grid cell is computed as the average of the phi_particle
values from all markers currently residing within that cell's volume.
DMDA
and DMSwarm
to ensure excellent performance and scalability on HPC systems.
The solver follows a clear, five-stage execution path: Initialize, Configure, Setup, Execute, and Finalize, orchestrated by main()
. All simulation data is managed by a central SimulationContext
object.