Instituto Superior Técnico Vector Postprocessor Capabilities Examples Formats Performance Manuals Download

Instituto Superior Técnico

IST Vector Postprocessor

A desktop tool that turns finite-element solver output into figures, animations, and reproducible scenes — resolution-independent throughout.

An Avalonia-based C# / .NET 10 application compiled ahead-of-time with .NET Native AOT — one self-contained native executable, no .NET runtime install required.

Download for Windows Windows 10 21H2 / Windows 11, x64  ·  Authenticode IV–signed  ·  SHA-256 checksum
IST Vector Postprocessor showing a deformed 3D lattice beam from a finite-element damage run, one region rendered with a colour field and the rest in plain grey, with the undeformed wireframe overlay and a value legend.
FE damage on a 3D lattice beam — 133,308 nodes, 209,088 elements — field-coloured and plain-grey representations in one scene, with the undeformed wireframe as reference.

One pipeline

Solver output is rarely visualisation-ready: stresses arrive piecewise-constant per element, displacements live on nodes, tensors come as nine loose scalars, and every field carries discretisation noise. IST Vector treats postprocessing as a single pipeline:

1 · Loadtopology + fields
2 · Recoveroptional field filter
3 · Selectwhat to show
4 · Renderscreen · PDF · MP4 · .spp

Capabilities

Field recovery

Five methods on one card: Zienkiewicz–Zhu SPR (linear least-squares patch fit), quadratic least squares Z2 (ten-term basis; reproduces quadratic fields exactly), moving least squares with a Wendland-C2 kernel, Taubin λ|μ smoothing (shrinkage-free), and Perona–Malik anisotropic diffusion (edge-preserving — fracture fronts and material boundaries survive). The kernel radius defaults to 1/200 of the mesh bounding box’s longest side; a shared uniform grid keeps neighbour lookup O(K) per point.

Fields derived at load

Every vector field gains its three components and its ℓ² and ℓ norms; every tensor gains von Mises and Frobenius invariants, hydrostatic pressure, its nine components, and its column vectors. Matched nodal/element field pairs additionally seed the a-posteriori Absolute_E error estimator described below.

Scalar fields

Plain shading, banded contours, or 3–30 labelled iso-lines with collision-checked label placement; log10 mapping for fields spanning decades; a B/W mode for print figures (pure black lines, field name set as a caption). Turbo colour map, 256-entry LUT; NaN samples render magenta rather than corrupting the range.

Vector fields

Arrows, steady streamlines, and transient pathlines and streaklines, integrated with the adaptive Dormand–Prince DOP853 controller (8th order, embedded 5th/3rd-order error estimation); optional colour-by-speed. Element vectors anchor at centroids.

Tensor glyphs

Tensor fields

Principal-axis ellipsoid glyphs: the nine components are assembled into a symmetric 3×3 matrix at each node and decomposed by Jacobi eigendecomposition, so each glyph’s axes align with the principal directions and its radii scale with the eigenvalues. Asymmetric input is symmetrised first, so any 3×3 field is admissible. Scale sets glyph size as a fraction of mesh diameter; sparsity thins them on a uniform grid. Alongside the glyphs, principal-stress trajectory lines integrate the eigenvector field with an adaptive Runge–Kutta 5(4) scheme — with evenly-spaced-line and 3-D tube options.

A-posteriori error

Error estimator

When the solver writes a field both ways — smooth on nodes and piecewise on elements — IST Vector pairs the two by longest common name prefix and forms Absolute_E = |fnodal − proj(felem)|, the gap between the nodal field and its element projection. That gap is the finite-element practitioner’s a-posteriori error indicator: pick a pair and a projection direction and it becomes a scalar field — coloured, thresholded, and iso-lined like any other, and taken from the recovered field whenever a recovery filter is active.

Deformed configuration

Warp by any vector field with magnification 0–20. The scrub drives a single shader uniform, so it is O(1) in mesh size; an undeformed-outline overlay keeps the reference shape visible; mesh-quality statistics can be recomputed on the deformed configuration.

Visibility composition

Threshold erosion (mean / max / min node→element reduction; >, <, =, ≠ relations, with a ±0.5%-of-range tolerance for continuous fields and exact matching for integer material IDs), X/Y/Z section planes with flip, and part / material masks — all composed in one element-visibility pass.

Iso-surfaces

Volume cells are decomposed to tetrahedra and marched in 3-D; a per-cell range test skips elements that cannot bracket the level. A slider scrubs the iso-value live, and a count of 1–10 extracts nested equispaced surfaces in one pass, optionally with the part outline kept for reference.

Symmetry expansion

X/Y/Z mirrors and 1–16 rotational copies about any axis reconstruct a full body from a modelled sector; colour fields are carried onto the copies, and the mirror silhouette renders in neutral grey or polished steel. Expansion is capped at 100 million expanded nodes.

Transient playback

60 Hz interpolation between solver steps: Catmull–Rom (C1) when the topology is fixed; on adaptive remeshes, where no node correspondence exists, a self-timed offscreen cross-fade (32–250 ms) dissolves every visible layer uniformly. Playback sub-ranges, ease-in/out envelopes, and a step badge; interpolation is allocation-free.

Camera and tours

Best View maximises Vázquez viewpoint entropy over 192 Fibonacci-sphere candidate directions. Tours interpolate waypoints with squad quaternion rotation (C1) and Catmull–Rom pan/zoom, arc-length reparameterised for constant perceptual speed; the recorder replays the identical camera path into the MP4, frame for frame.

Probes and mesh statistics

Ctrl+click reports a node’s coordinates and every active field value; Ctrl+Shift+click reports an element’s type, centroid, and field values. The mesh-quality card gives per-type counts, edge-length statistics, aspect-ratio extrema, signed area / volume distributions, and inverted-element counts.

IST Vector Postprocessor showing a necked tension specimen with the effective plastic strain field on a section cut, with a step navigator and a value legend.
A 50-step finite-strain tension run: necking, recovered effective plastic strain on the section cut, live legend, one scene → screen, PDF, and MP4.

Example exports

Every file below is exported directly from IST Vector. Surfaces are PDF Type-4 Gouraud-shaded triangle meshes and lines are stroked paths — open one and zoom: there is no raster layer to pixelate. Scenes built on public datasets carry the upstream attribution line (Stanford 3D Scanning Repository, VTK test data), printed with the figure.

Reads what your solver writes

FormatWhat it carries
.caseEnSight Gold, with .geo / .scl / .vec / .ens sidecars — multi-part topology, transient steps (wildcard and arithmetic time sets), scalar / vector / tensor fields (symmetric and asymmetric), ghost cells, iblanking. ASCII & binary.
.vtuVTK XML UnstructuredGrid — topology plus per-point / per-cell fields. Inline ASCII, base64, and zlib-compressed payloads.
.vtpVTK XML PolyData — verts, lines, polys, and strips.
.vtkVTK legacy, ASCII or binary — UnstructuredGrid, PolyData, StructuredGrid, RectilinearGrid, StructuredPoints.
.pvdParaView collection — time-series index of .vtu / .vtp files; timestep attributes honoured.
.stl / .objReference geometry only, no fields. OBJ triangles and quads load directly; longer faces are fan-triangulated.
.sppIST Vector project — the full scene state plus the mesh reference in one shareable file; both an input and an output.

Fields may be nodal or per-element; scalar, vector, or tensor; steady or transient. Format detection reads the leading bytes of the file, so a mislabelled extension still reaches the right parser. Files open by drag-and-drop, Ctrl+O, or the recent-files flyout.

Element types

Internal typeNodesDimQuadratic variant read
point10-D
bar221-Dbar3
tria332-Dtria6
quad442-Dquad8, quad9
tetra443-Dtetra10
pyramid553-Dpyramid13
penta663-Dpenta15 (aliases prism6, wedge6)
hexa883-Dhexa20

Every parsed cell collapses to one of these eight corner-only types; quadratic mid-edge and mid-face nodes are read past and discarded. VTK strips are unrolled, polygons with five or more vertices are fan-triangulated, VTK_VOXEL / VTK_PIXEL corner order is corrected, and structured grids unroll to hexa8 (quad4 for slabs). General polygons / polyhedra (nsided, nfaced) are read but not rendered; ghost cells are skipped.

Exports

OutputDetails
Scene PDF Surfaces emit as PDF Type-4 (free-form) Gouraud-shaded triangles; contour and feature lines as stroked polylines; colour bar, axis triad, labels, and dimension callouts at their on-screen relative positions. Text is base-14 Helvetica-Bold with a ToUnicode CMap, so values copy out of the figure. An ultra-fine mode re-evaluates Lambert + GGX shading on an N2 barycentric subdivision of each lit face, keeping hotspots and gradients at sub-element resolution.
Batch contour PDFs One contour figure per scalar field that varies at the current step, written in a single pass; uniform fields are skipped. Also: a two-up geometry reference page and a one-sheet collage of the saved-views library.
MP4 H.264 via FFmpeg / libx264, with Windows Media Foundation as fallback. Frames are captured at the viewport’s physical pixel size and the stream is tagged BT.709, so players decode the colour space deterministically. The recorder is driven by the same camera closure as the live tours — the clip reproduces the on-screen motion frame-identically. Optional cinematic pass: FXAA, soft-knee bloom, Reinhard tone-mapping, vignette, grain.
Project .spp The complete scene state — active fields, ranges, recovery filter, iso / threshold / section state, symmetry, hidden parts, probes, time, camera — plus the mesh reference, resolved relative to the project on re-open. Round-trips losslessly.
Figure recipe .json Camera plus every display setting, without the mesh binding: a portable figure specification to apply to other data (absent fields are skipped) or to ship beside a paper. Saved views store the same snapshot as named entries in a per-user library.

Scale, performance, requirements

Mesh size tiers

TierNodes / elementsBehaviour
Standard≤ 500,000Every derived field computed eagerly at load.
Optimized≤ 2,000,000Eager derivation; element-centroid cache becomes lazy.
Large≤ 10,000,000Components, norms, and invariants built on demand (force-derive control) to bound memory.
Very large≤ 50,000,000Additionally skips jagged-node materialisation; status-bar warning chip.
Above> 50,000,000Rejected at load, with the reason stated.

Case bundles load fully into memory when the file total fits in 85% of available RAM; larger transients stream lazily — step 0 up front, the rest on demand with a ±2-step background prefetch.

Representative costs

OperationTypical
Open EnSight case, binary (parallel parser)1–3 s / 100 MB
Transient step swap5–20 ms
Field switch (min/max memoised per array)10–50 ms
Deformation / iso-value scrub (shader-side)O(1) in mesh size
Contour regeneration (cached per state key)15–40 ms
Scene PDF export0.5–3 s
MP4 export, 1080p, 8 s clip5–15 s

From the Reference Manual §7.2. During rotation and zoom the viewport renders to a half-resolution buffer and upscales, returning to full resolution on idle. NaN and ±∞ are skipped in every reduction, so a single bad sample cannot collapse a colour range or hide the mesh.

Requirements

Windows 10 21H2 / Windows 11, x64, on a CPU meeting the x86-64-v2 baseline (SSE 4.2 + POPCNT), checked by a startup preflight. 15 GB of RAM or more is recommended; below that the application warns at startup and large transients run in lazy-streaming mode. Displays from 1280×768 to 7680×4320 are supported.

Engineering notes

Manuals

DocumentDownload
Reference Manual · 20 pages
The pipeline; the recovery mathematics (SPR, Z2, MLS, Taubin, Perona–Malik); every representation card with control ranges and defaults; camera, tours, and saved state; export internals; the element catalogue; performance tables and system requirements.
PDF  ·  1.0 MB
Inputs & Outputs · 3 pages
The file contract: each input format and what it carries, fields derived at load, the four outputs, and the reproducible-state formats (.spp, saved views, figure recipes).
PDF  ·  310 KB
Architecture & Developer Guide · 8 pages
Solution layout; the mesh / field data model; the load-to-render pipeline; concurrency and caching contracts; Native AOT constraints; test strategy; extension recipes.
PDF  ·  380 KB

Get IST Vector Postprocessor

Download the Windows installer and open your first .case, .vtu, or .vtk file — or start from a bundled example dataset. The installer and every executable it carries are signed with an Authenticode Individual Validation (IV) code-signing certificate and RFC 3161 timestamped, so Windows SmartScreen runs them without a warning. Verify the download against its SHA-256 checksum.

Download for Windows Windows 10 21H2 / 11, x64  ·  SHA-256