Slice Output#
Slice Output in Flow360 allows you to visualize flow field variables on 2D cutting planes through the computational domain. The data is interpolated from the three-dimensional flow solution field onto the two-dimensional slice plane. This provides detailed insight into flow features at specific locations, while generating much smaller files than full volume outputs.
Available Options#
Option |
Description |
Applicable |
|---|---|---|
Output fields |
Flow variables to include in the output |
always |
Output format |
Format for saving output data |
always |
Save interval |
When to save outputs |
always |
Frequency |
How often to save outputs |
when Save interval is |
Frequency offset |
The time step at which to start the output |
when Save interval is |
Assigned slices |
Define one or more slice planes by specifying their origin and normal vector |
always |
Global Time Stepping in Child Cases#
When working with child cases (cases forked from a parent simulation), it’s important to understand that the Frequency and Frequency offset parameters refer to the global time step, which is transferred from the parent case.
Example: If the parent case finished at time_step=174, the child case will start from time_step=175. If Frequency=100 is set in the child case, the output will be saved at global time steps 200 (25 time steps into the child simulation), 300 (125 time steps into the child simulation), etc. Frequency offset also refers to the global time step, meaning that if in the previously mentioned child case, Frequency offset=50 was set (with Frequency=100), the output would be saved at global time steps 250 (75 time steps into the child simulation), 350 (175 time steps into the child simulation), etc.
Detailed Descriptions#
Output fields#
Select the flow variables to include in the output files.
Default: None (must select at least one)
Example:
Cp, Mach, velocity
Note: See complete list of available fields below.
Output format#
The file format for saving the slice data.
Default:
paraviewOptions:
paraviewtecplotboth
Notes:
Choose the format that best suits your post-processing workflow.
Select
paraviewfor.vtuformat,tecplotfor.pltformat, orbothto save in both formats.
Save interval#
Choose the points in the simulation where the results are saved.
Default:
Save at endOptions:
Save at endCustom(only available whenTime steppingisUnsteady)
Notes:
Choose
Save at endto save only the final results of the simulation.Choose
Customto save the results in given intervals.
Frequency#
How often to save outputs, measured in number of physical time steps.
Default:
-1(only at the end of simulation)Example:
100— saves output every 100 physical time steps.Standalone case: If you start a simulation from
time_step=0withfrequency=100, outputs are saved at time steps 100, 200, 300, etc.Parent-child case: If the parent finished at
time_step=174, the child starts fromtime_step=175. Withfrequency=100in the child, outputs are saved at global time steps 200 (25 steps into child), 300 (125 steps into child), 400 (225 steps into child), etc.
Notes:
For steady simulations, use -1 to save only at end of run. For unsteady simulations, set a positive value to create the data required for an animation.
Important for child cases - this parameter refers to the global time step (see Global Time Stepping).
This setting is only applicable for unsteady cases.
Frequency offset#
The time step at which to start the output animation.
Default:
0(beginning of simulation)Example:
1000— withfrequency=100, outputs are saved at time steps 1000, 1100, 1200, etc.Standalone case: If you start a simulation from
time_step=0withfrequency=100andfrequency_offset=1000, outputs are saved at time steps 1000, 1100, 1200, etc.Parent-child case: If the parent finished at
time_step=174, the child starts fromtime_step=175. Withfrequency=100andfrequency_offset=200in the child, outputs are saved at global time steps 200 (25 steps into child), 300 (125 steps into child), 400 (225 steps into child), etc.
Notes:
Useful for skipping initial transient phases in unsteady simulations.
Important for child cases - this parameter refers to the global time step (see Global Time Stepping).
This setting is only applicable for unsteady cases.
Assigned slices#
Define one or more slice planes through the computational domain.
Definition parameters:
Name: A unique identifier for the slice
Origin: The 3D coordinates of a point on the slice plane
Normal: The normal vector to the slice plane (does not need to be normalized)
Example:
Name: "Midspan" Origin: (0, 5, 0) Normal: (0, 1, 0)
Note: Multiple slices can be defined, each with unique name, origin, and normal.
Available Output Fields#
Variables from Available Output Fields and the following specific variables
Volume-Specific Variables#
betMetrics- BET MetricsbetMetricsPerDisk- BET Metrics per DisklinearResidualNavierStokes- Linear residual of Navier-Stokes solverlinearResidualTurbulence- Linear residual of turbulence solverlinearResidualTransition- Linear residual of transition solverSpalartAllmaras_hybridModel- Hybrid RANS-LES output for Spalart-Allmaras solver (supports both DDES and ZDES)kOmegaSST_hybridModel- Hybrid RANS-LES output for kOmegaSST solver (supports both DDES and ZDES)localCFL- Local CFL number
Hybrid RANS-LES Output Variables#
For detailed information about the SpalartAllmaras_hybridModel and kOmegaSST_hybridModel output fields and their DDES and ZDES variables, see the Hybrid RANS-LES Output Variables section in Volume Output.
💡 Tips
Key Output Fields for Slice Analysis#
Total Pressure Coefficient (Cpt)
Effectively shows boundary layer development and growth
Clearly reveals flow separation regions
Highlights wakes behind objects
Indicates regions of energy loss in the flow
Can be used to identify vortices and other flow structures
To calculate the dimensional total pressure from Cpt:
p_t (N/m²) = Cpt × (1/2)ρ∞ × U_ref² + p_t∞
Mach Number and Velocity Fields
Excellent for visualizing shock waves
Shows expansion regions
Reveals flow acceleration and deceleration zones
Indicates boundary layer thickness
Common Slice Orientations#
XY Plane: Normal = (0, 0, 1)
YZ Plane: Normal = (1, 0, 0)
XZ Plane: Normal = (0, 1, 0)
Strategic Slice Placement#
Place slices at these key locations for maximum insight:
Leading and trailing edges of aerodynamic surfaces
Maximum thickness locations on wings or bodies
Wing-body junctions to visualize corner flow
Wake regions behind objects (at various downstream distances)
Boundary layer regions (parallel to surface)
Shock wave locations (approximately perpendicular to flow)
Visualization Recommendations#
For boundary layer analysis: Use
Cptwith a color scale that highlights low valuesFor shock detection: Use
Machorpressurewith carefully adjusted color scalesFor vortex visualization: Use
vorticityMagnitudeor velocity vector plotsFor separation detection: Look for reversal in velocity vectors or negative streamwise velocity
For BET analysis: Position slices at specific radial positions of the rotor disk
❓ Frequently Asked Questions
How many slices can I create in a single simulation?
There is no hard limit on the number of slices, but each additional slice increases the output file size and computational overhead. For best performance, limit slices to key areas of interest.
Can I create slices at angles that aren’t aligned with the coordinate axes?
Yes, by setting the appropriate normal vector. For example, a 45° plane between X and Y axes would use normal = (1, 1, 0).
What’s the difference between paraview and tecplot formats?
Paraview format (.vtu) is for the open-source ParaView visualization tool, while Tecplot format (.plt) is for the commercial Tecplot software. Choose based on your preferred visualization tool.
🐍 Python Example Usage
The following example demonstrates how to configure slice outputs in your simulation using the Flow360 Python API.
import flow360 as fl
from flow360 import u
# Create a simulation setup
simulation = fl.SimulationParams(
# Other simulation parameters...
)
# Define slice outputs
simulation.outputs.append(
fl.SliceOutput(
name="Wing Slices",
entities=[
fl.Slice(
name="Wing Root",
origin=(0, 0, 0) * u.m,
normal=(0, 1, 0)
),
fl.Slice(
name="Midspan",
origin=(0, 5, 0) * u.m,
normal=(0, 1, 0)
),
fl.Slice(
name="Wingtip",
origin=(0, 10, 0) * u.m,
normal=(0, 1, 0)
)
],
output_format="paraview",
output_fields=["Mach", "pressure", "vorticity"],
frequency=100, # Save every 100 time steps
frequency_offset=0 # Start saving from beginning of simulation
)
)
# Create time-averaged slice output
simulation.outputs.append(
fl.TimeAverageSliceOutput(
name="Time Averaged Wake",
entities=[
fl.Slice(
name="Wake Slice",
origin=(2, 0, 0) * u.m,
normal=(1, 0, 0) # Normal to flow direction
)
],
output_fields=["velocity", "Cp", "turbulence"],
start_step=1000, # Start averaging from time step 1000
frequency=500, # Save every 500 time steps
frequency_offset=1500 # Start saving from time step 1500
)
)
Note: For information on time-averaging slice output for unsteady simulations, see Time-Averaged Slice Output.