# 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 Custom
Frequency offset The time step at which to start the output when Save interval is Custom
Assigned slices Define one or more slice planes by specifying their origin and normal vector always

# 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: paraview
  • Options:
    • paraview
    • tecplot
    • both

Notes:

  • Choose the format that best suits your post-processing workflow.
  • Select paraview for .vtu format, tecplot for .plt format, or both to save in both formats.

# Save interval

Choose the points in the simulation where the results are saved.

  • Default: Save at end
  • Options:
    • Save at end
    • Custom

Notes:

  • Choose Save at end to save only the final results of the simulation.
  • Choose Custom to 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 (save every 100 time steps)

Note: For steady simulations, use -1 to save only at convergence. For unsteady simulations, set a positive value to create an animation.

# Frequency offset

The time step at which to start the output animation.

  • Default: 0 (beginning of simulation)
  • Example: 1000 (start saving at time step 1000)

Note: Useful for skipping initial transient phases in unsteady simulations.

# 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 Metrics
  • betMetricsPerDisk - BET Metrics per Disk
  • linearResidualNavierStokes - Linear residual of Navier-Stokes solver
  • linearResidualTurbulence - Linear residual of turbulence solver
  • linearResidualTransition - Linear residual of transition solver
  • SpalartAllmaras_hybridModel - Hybrid RANS-LES output for Spalart-Allmaras solver
  • kOmegaSST_hybridModel - Hybrid RANS-LES output for kOmegaSST solver
  • localCFL - Local CFL number

💡 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 Cpt with a color scale that highlights low values
  • For shock detection: Use Mach or pressure with carefully adjusted color scales
  • For vortex visualization: Use vorticityMagnitude or velocity vector plots
  • For 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.