PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
Configuration Reference: Post-Processing Recipes (<tt>post.yml</tt>)

For a complete, heavily commented reference file showing every possible option, please see the master template:

A Post-Processing Recipe is a .yml file that instructs the postprocessor executable on how to analyze the raw binary data generated by the solver. Using these recipes, you can perform complex analysis and generate tailored visualization files without writing any new code.

The post-processing workflow is always run via the pic-flow conductor using the --post-process flag.

1. Structure of a <tt>post.yml</tt> File

A post.yml file is organized into sections that control the time range, data sources, processing steps, and output format.

# Example post.yml
run_control:
startTime: 100
endTime: 1000
timeStep: 100
source_data:
directory: "<solver_output_dir>"
eulerian_pipeline:
- task: CellToNodeAverage
input_field: Ucat
output_field: Ucat_nodal
- task: ComputeQCriterion
lagrangian_pipeline:
- task: specific_ke
input_field: velocity
output_field: SpecificKE
io:
output_directory: "viz"
output_filename_prefix: "Field"
particle_filename_prefix: "Particle"
output_particles: true
eulerian_fields:
- Ucat_nodal
- Qcrit
particle_fields:
- velocity
- SpecificKE

2. The <tt>run_control</tt> Section

This section specifies which timesteps from the simulation will be analyzed.

Parameter Type Description
startTime Integer The first time step to process.
endTime Integer The last time step to process.
timeStep Integer The interval between processed time steps.

3. The <tt>source_data</tt> Section

This section tells the post-processor where to find the raw solver output.

Parameter Type Description
directory String Path to the directory containing the solver's binary output files (.dat). The special value **<solver_output_dir>** is a placeholder that automatically resolves to the results (or equivalent) folder of the run being processed. This is the recommended default.

4. The <tt>eulerian_pipeline</tt> Section

This is a list of computational tasks (kernels) that are executed in sequence on the Eulerian (grid) data.

4.1. Available Eulerian Kernels

task Name Description Parameters
CellToNodeAverage Averages a cell-centered field to the grid nodes. This is essential for creating smooth visualizations. input_field: Name of the cell-centered field (e.g., "Ucat", "P").
output_field: Name for the new node-centered field (e.g., "Ucat_nodal", "P_nodal").
ComputeQCriterion Computes the Q-criterion, a scalar field used to identify vortices. This creates a new field named Qcrit. None
NormalizeRelativeField Normalizes a scalar field (like pressure) by subtracting the value at a reference point. field: The name of the field to normalize (e.g., "P").
reference_point: A list of 3 integers [i, j, k] for the reference grid index.
DimensionalizeAllLoadedFields (Implicitly available) Converts all loaded non-dimensional fields to dimensional units using the scaling factors from the original case.yml. This is usually run automatically. None

5. The <tt>lagrangian_pipeline</tt> Section

This is a list of computational tasks that are executed in sequence on the Lagrangian (particle) data.

5.1. Available Lagrangian Kernels

| task Name | Description | Parameters | | :— | :— | :— | | specific_ke | Computes the specific kinetic energy (0.5 * |velocity|²) for each particle. | input_field: Name of the particle velocity field (usually "velocity").
output_field: Name for the new scalar field (e.g., "SpecificKE"). |

6. The <tt>io</tt> Section

This section controls the format and content of the final visualization files (.vts and .vtp).

Parameter Type Description
output_directory String The name of the subdirectory within the run folder where visualization files will be saved (e.g., "viz").
output_filename_prefix String The base name for the output Eulerian .vts files (e.g., "Field" results in Field_000100.vts).
particle_filename_prefix String The base name for the output Lagrangian .vtp files.
output_particles Boolean If true, the post-processor will load, process, and save particle data into .vtp files.
particle_subsampling_frequency Integer Saves particle data for every N-th particle, reducing the size of .vtp files. A value of 1 saves all particles.
eulerian_fields String List A list of the final grid-based fields to include in the output .vts files. These can be fields loaded from the solver or new fields created by the pipeline.
particle_fields String List A list of the final particle-based fields to include in the output .vtp files.

5. Next Steps

You have now completed the reference guides for all the core configuration files in the PICurv user workflow. The next step is to explore a collection of practical examples.

Proceed to the User How-To Guides for a list of quick, goal-oriented recipes for common simulation tasks. logical step is to create the "How-To Guides" page that consolidates answers to common user questions. Ready to proceed?