Analyze a PLM-data PDE simulation run for numerical health and physical plausibility. Use when a user asks whether a simulation output looks valid, wants a diagnosis of a run directory under output/, or wants post-run analysis. Always inspect frames_meta.json, run_meta.json, and simulation.log, compute PDE-appropriate validity metrics from the saved arrays, and extract and view representative GIF frames. Invoked via /pde-simulation-analysis.
Use this skill when evaluating whether a PLM-data simulation run is numerically healthy and physically plausible.
The typical input is a run directory like output/<category>/<preset>/.
Always open frames_meta.json and run_meta.json first.
run_meta.json, record the run status, stage, preset/category, solver convergence, frame/timestep counts, health summary, resolved config, and any error payload.frames_meta.json, record the saved times, field_names, output resolution, expected outputs, and diagnostic results.Read simulation.log.
run_meta.json says the run failed, use the log to localize the failing stage before looking at field arrays.Compute additional validity metrics from the saved arrays.
frames_meta.json.domain_mask.npy exists, exclude out-of-domain points from all metrics.Conservative transport / compressible Euler / wave-like conservative systems:
Heat / diffusion:
Reaction-diffusion:
Incompressible flow:
Maxwell / Helmholtz / wave problems:
If exact conservation is not expected, say why and pick a better metric. The point is to test the physics the preset is supposed to represent, not to force a generic invariant.
Extract representative image frames and inspect them visually.
scripts/extract_gif_frames.py in this skill folder for deterministic extraction.Synthesize the evidence.
If you analyze multiple runs to compare them, generate a plot which compare the start, middle, and end frames for one (important) field across the runs. This can be done by extracting the frames as PNGs and then using a plotting library to create a side-by-side comparison. Look for differences in the patterns, magnitudes, and any artifacts that may indicate differences in the underlying physics or numerical stability of the runs.
density, pressure, temperature, concentration, total_energy, and velocity components or magnitude..npy outputs exist, render representative PNGs from those arrays and inspect them instead of GIFs.Report these sections in order:
run_meta.json and frames_meta.json