Skip to content
Back to skills

Of Post

ASecurity

Post-process OpenFOAM v2412 results - residual/convergence plots, forces and force coefficients, y+, min/max, flow rates, line samples/profiles, probes, field statistics, VTK export for ParaView, screenshots, and a results report. Use when the user asks to analyze, plot, extract numbers from, visualize, or report on a completed (or running) OpenFOAM case. Also use to check status or monitor convergence of a running simulation.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsgobash

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add swtbkim/openfoam-claude-suite --skill of-post --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Of Post?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Of Post
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/swtbkim-of-post/badge)](https://www.skillsdirectory.com/skills/swtbkim-of-post)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: of-post
description: Post-process OpenFOAM v2412 results - residual/convergence plots, forces and force coefficients, y+, min/max, flow rates, line samples/profiles, probes, field statistics, VTK export for ParaView, screenshots, and a results report. Use when the user asks to analyze, plot, extract numbers from, visualize, or report on a completed (or running) OpenFOAM case. Also use to check status or monitor convergence of a running simulation.
---

# of-post: results extraction, plots, report

If of-sim is not already loaded, Read the sibling skill's SKILL.md -
skills/of-sim/SKILL.md in this suite - section 0 (Environment + invocation), and
references/environment.md (generated by /of-setup) BEFORE the first command.
Mode A (Windows host + WSL) canonical invocation:
`MSYS_NO_PATHCONV=1 wsl.exe -d <distro> --exec bash <scripts>/<script>.sh [args...]`
Mode B (native Linux): `bash <scripts>/<script>.sh [args...]`
`<scripts>` = this suite's skills/of-sim/scripts/ dir. In mode A case paths are WSL
paths; their Windows view is `\\wsl.localhost\<distro>\...`. The Read tool works on
case files in both modes, including PNG rendering - LOOK at every plot you produce
before reporting it.

## Operation menu

### Convergence / residuals
```
ofmon.sh status <case>         # time/Courant/continuity + verdict
ofmon.sh residuals <case>      # CSV + verdict
ofmon.sh plot <case>           # residuals.png (gnuplot, log-y)
```

### Standard derived fields (run on results, no solve)
```
ofrun.sh run <case> postProcess -funcs '(mag(U))' -latestTime
ofrun.sh run <case> postProcess -func 'fieldMinMax(U,p)' -latestTime   # bounds sanity
# needs turbulence/transport model context -> run THROUGH THE SOLVER:
ofrun.sh run <case> simpleFoam -postProcess -func yPlus -latestTime
ofrun.sh run <case> simpleFoam -postProcess -func wallShearStress -latestTime
```
Outputs land in `<case>/postProcessing/<func>/<time>/*.dat` - cat them and quote numbers.

### Forces / coefficients (bodies)
Add to controlDict functions{} (or run via -postProcess if fields suffice):
```
forces1 { type forces; libs (forces); patches (<bodyPatches>); rho rhoInf; rhoInf <rho>; CofR (0 0 0); }
forceCoeffs1 { type forceCoeffs; libs (forces); patches (<body>); rho rhoInf; rhoInf <rho>;
  magUInf <U>; lRef <L>; Aref <A>; liftDir (0 1 0); dragDir (1 0 0); CofR (0 0 0); pitchAxis (0 0 1); }
```
Ready-made configs: `#includeEtc "caseDicts/postProcessing/forces/forceCoeffsIncompressible.cfg"`
(siblings: forces.cfg, forceCoeffs.cfg, forcesIncompressible.cfg; #includeEtc does not expand globs).

### Profiles / line samples
Write `system/sample` (sets format):
```
type sets; libs (sampling); interpolationScheme cellPoint; setFormat raw;
fields (U p);
sets ( line1 { type uniform; axis distance; start (x1 y1 z1); end (x2 y2 z2); nPoints 100; } );
```
Run: `ofrun.sh run <case> postProcess -func sample -latestTime` ->
`postProcessing/sample/<time>/line1_*.xy`. Plot with gnuplot to PNG, or hand the numbers
to the user. (Benchmark comparisons - e.g. Ghia cavity, Poiseuille - belong here.)

### Slice heatmaps without ParaView (validated on mixer cases)
Plane-sample the field (`type surfaces; libs (sampling); surfaceFormat raw;` with a
`cuttingPlane`) at selected times, then render the scattered points via gnuplot:
`set dgrid3d 100,100; set pm3d map; splot '<time>/s_plane.raw' using 1:2:4`
(pick the two in-plane coordinate columns). Time series as 2x2 multiplot:
```
set term pngcairo size 1200,1100; set out 'snapshots.png'; set multiplot layout 2,2
set size ratio -1; set dgrid3d 100,100; set pm3d map; unset key
do for [t in "6 18 36 60"] { set title 't = '.t
  splot sprintf('postProcessing/slice/%s/s_plane.raw', t) using 1:2:4 }
unset multiplot
```

### Probes (time histories)
`probes { type probes; libs (sampling); probeLocations ((x y z) ...); fields (p U); }`
in functions{} during the run.

### Flow rate through a patch
`postProcess -func 'flowRatePatch(name=outlet)' -latestTime`

### Export for ParaView (user-facing visualization)
```
ofrun.sh run <case> foamToVTK -latestTime        # -> <case>/VTK/
```
Tell the user the path (mode A: the Windows `\\wsl.localhost\<distro>\...` view). With
`-allRegions` the per-region volume block is named
`internal`, not `internalMesh`. Headless screenshots (validated): `/usr/bin/pvbatch
--force-offscreen-rendering <script.py>` works with no xvfb/display. Gotchas: `ColorBy(rep,
None)` throws - use `rep.ColorArrayName=['POINTS','']` for solid colour; multi-region .vtm:
`ExtractBlock(Selectors=['//internal'])` + `MergeBlocks`; FeatureEdges only on the extracted
`internal` block (merged volume+patches -> non-manifold blowup). If pvbatch scripting fights
you, fall back to foamToVTK + user-side ParaView.
Quick built-in renders also possible with `functions { #includeFunc runTimePostProcessing }`
(graphics functionObject) - advanced, optional.

### Animation
Transient with many write times: `foamToVTK` (all times) -> ParaView; or
`foamSequenceVTKFiles` for renamed sequences. For GIFs: gnuplot frames + ImageMagick if
installed (check `which convert`).

## Report template (<case>/report.md)

```
# <title>  (<date>)
## Spec          - goal, geometry, fluid, regime, BCs (from of-sim spec)
## Mesh          - generator, cells, checkMesh summary (nonOrtho/skew max)
## Numerics      - solver, turbulence model, schemes preset, dt/Co or relaxation
## Convergence   - verdict, final residuals, continuity, residuals.png
## Results       - requested quantities w/ numbers + plots; y+ if turbulent
## Validation    - comparison vs analytic/benchmark/expectation where possible
## Assumptions   - everything defaulted (--auto) or inferred
## Reproduce     - exact command sequence
## Artifacts     - case path (both views in mode A), VTK, PNGs, CSVs
```
Keep chat summary short: verdict + 3-5 key numbers + artifact paths.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…