This page summarizes current capabilities from YAML + picurv without editing C source. It is organized by workflow stage rather than just a feature bullet list.
PICurv currently supports three grid ingestion modes:
programmatic_c: C-side structured grid generation,file: external .picgrid read path with scaling/validation,grid_gen: pre-run Python generator orchestration.grid_gen offers two composed geometries rather than a list of named shapes: box, a Cartesian block whose bounding walls are piecewise height fields, and sweep, a cross-section carried along a piecewise centreline. Both accept an ordered placement and similarity transform list. Both are supported: every feature closes a uniform flow in the solver's metrics, and a solve on a swept circle converges at second order. See Grid Generator Guide: generators/grid.gen.
Domain controls include:
models.physics.dimensionality: 2D, which holds the i velocity component fixed on an unchanged 3-D grid,da_processors_x/y/z).Supported high-level operation modes:
TGV3D, ZERO_FLOW, UNIFORM_FLOW).ZERO_FLOW, UNIFORM_FLOW).Particle controls include:
Surface, Volume, PointSource, SurfaceEdges),init, load),Trilinear direct cell-center or CornerAveraged legacy),Psi model).Particle positions are not currently wrapped across periodic boundaries.
Four LES closures are selectable. constant_smagorinsky applies a prescribed coefficient and allocates no coefficient field. dynamic_smagorinsky measures the coefficient each update through the Germano identity and Lilly's least-squares contraction, with selectable grid filter width, test-filter kernel and width ratio, coefficient averaging set, and limiting policy. vreman and wale need no coefficient field, test filter or averaging and vanish in pure shear; vreman resolves each grid direction by the cell's own spacing. Entries and full detail at 5. LES Subgrid Models; the formulation is derived in LES Turbulence Closure.
geometric_mean width is supported on orthogonal cells, where it reproduces cube_root_volume. The simpson_ik test filter is supported for planes homogeneous in xi and zeta, after a fix to its dynamic-procedure weighting.There is no RANS closure. A k_omega selector existed until 2026-09-22, but nothing behind it was ever implemented, so it was removed and the subsystem returned to planned; models.physics.turbulence.rans is now refused at validation (6a. RANS Closures). Wall functions are configured separately from the LES closure, and offer three laws - log_law, werner, and cabot; log_law and werner are supported on that channel validation, and cabot is experimental: on the same channel its pressure-gradient term put the friction velocity 22% low. The correction is applied inside the momentum solve and again before the LES strain rates are formed, so a wall-modelled large-eddy simulation is coupled in both directions, and the modelled stress reaches the momentum equation through an effective eddy viscosity installed at the wall face.
Momentum:
Explicit RK4, Dual Time Picard Jameson RK, and Newton Krylov (see 3. Momentum Solver Entries for the comparison and status of each),Explicit RK4 and Dual Time Picard Jameson RK are supported, with measured orders at 3. Momentum Solver Entries. Newton Krylov is supported within its documented scope, with a 144-rank channel campaign using no preconditioner; its quantitative DNS discrepancy is recorded at 10.2 Retained turbulent-channel campaign (2026-09-29). The frozen-Jacobian preconditioner is supported on a three-grid laminar curved-duct campaign (10.1 Retained laminar curved-duct campaign (2026-10-07)), with no performance claim. Dual Time Picard Jameson RK is the production default.Pressure:
fgmres or cg outer method,See method details in Methods and Models Overview.
Boundary capabilities include validated type-handler pairings across inlet/outlet/wall/periodic classes. Runtime controls include:
Pipeline capabilities include:
dat),post.yml -> io.paraview_series; see Physical-Time ParaView Collections (post.pipeline) for the direct tests and unverified scenarios.Single-run cluster flow (run --cluster ...):
Study flow (sweep):
picurv init creates a workspace whose editable configuration, imported inputs, reusable assets, runs, and studies each have a fixed home. Run-owned directory names are part of that contract rather than a monitor setting; the topology and the guards that hold it are in 4. Artifact Topology.
External files enter a workspace explicitly. picurv inputs import <kind> <source> records a checksum and an ownership mode, and reference mode registers a path without copying it, so an unavailable external target fails loudly instead of silently. Entries at 12.1 Workspace Input Import Mode Entries.
picurv precompute resolves the grid, initial-condition, and inlet-profile provider graph and publishes each result as an immutable content-addressed object in the workspace asset store. Identity covers the normalized provider settings, the checksums of referenced files, and the PICurv build, so an unchanged input reuses its object and any change selects a new one. Runs materialize what they need by reflink, hardlink, or copy and record the mapping. --require-precomputed refuses to build a missing object instead of quietly rebuilding it; --fetch-missing looks in configured storage first. A provider that only exists inside the simulator is reported rather than imitated.
Branching a run with --restart-from carries the checkpoint's physical fields but starts field-statistics accumulators empty unless --statistics-state carry asks for the saved window state. Entries at 8.6 Restart Statistics State Entries.
picurv storage moves finished runs, studies, and study members through an rclone remote. protect uploads and verifies while keeping every local file; offload does the same and then prunes the verified payload according to an offload policy that chooses what stays local, with --retain/--drop adjusting that preset one component at a time. Compression policy entries are at 9.1 Compression Policy Entries, offload policy entries at 9.2 Offload Policy Entries, and retention component entries at 9.3 Retention Component Entries. Cold data is marked, so continuation, post-processing, submission, and study reaggregation refuse it with the restore command rather than mistaking pruned output for output that was never produced.
picurv version, picurv versions, and picurv source report and select the release and build identity that runs, checkpoints, and archives are stamped with. picurv version status additionally validates that the conductor, both executables, and any workspace version requirement agree, and exits non-zero when they do not.
picurv summarize supports:
--list-plot-series,--plot and --last,PICurv owns run/log interpretation; standalone generators/plot.gen renders versioned normalized JSON requests without knowing run-directory layouts.
Current extension pathways are documented and active for:
Reference pages: