Time-averaging Isosurface Output#

Time-averaging Isosurface Output in Flow360 lets you visualize the time-averaged flow field variables on surfaces of constant value within the computational domain. This is particularly useful for identifying and analyzing average flow structures like vortices, shock waves, or temperature contours.

Note: Time-averaging outputs are only available when using unsteady time stepping.


Available Options#

Option

Description

Applicable

Output fields

Flow variables to include in the output

always

Output format

Format for saving isosurface data

always

Start step

Physical time step from which to start the time average

always

Save interval

When to save outputs

always

Frequency

How often to save outputs

when Save interval is Custom

Frequency offset

Time step at which to start the output animation

when Save interval is Custom

Isosurfaces

Define one or more isosurfaces

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, Frequency offset, and Start step 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 isosurface output.

  • Default: None (user must select at least one field)

  • Example: Mach, pressure, velocity

Note: Select only the fields you need for your analysis. See Available Output Fields for a complete list of supported variables.

Output format#

The file format used to save the isosurface output data.

  • Default: paraview

  • Example: both

  • 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.

Start step#

The physical time step at which time-averaging begins.

  • Default: -1 (at end of simulation)

  • Example: 100 (begin averaging from the 100th physical time step)

Notes:

  • Use positive integers to start averaging from a specific time step.

  • Important for child cases - this parameter refers to the global time step, which gets transferred from the parent case (see Global Time Stepping).

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, 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=0 with frequency=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 from time_step=175. With frequency=100 in 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:

  • Higher frequencies provide better temporal resolution but increase storage requirements.

  • Important for child cases - this parameter refers to the global time step (see Global Time Stepping).

Frequency offset#

The time step at which to start the output animation.

  • Default: 0 (beginning of simulation)

  • Example: 1000 — with frequency=100, outputs are saved at time steps 1000, 1100, 1200, etc.

    • Standalone case: If you start a simulation from time_step=0 with frequency=100 and frequency_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 from time_step=175. With frequency=100 and frequency_offset=200 in 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 when you want to skip initial transient flow development.

  • Important for child cases - this parameter refers to the global time step (see Global Time Stepping).

Isosurfaces#

Define one or more isosurfaces by specifying a field variable and iso-value.

  • Default: None (user must select at least one field)

  • Definition parameters:

    • Name: A unique identifier for the isosurface

    • Field: The flow variable used to define the isosurface

    • Iso-value: The constant value of the field variable that defines the isosurface

  • Examples:

    • name: qcrit-iso, Field: qcriterion , Iso-value: 0.001

    • name: atm-pressure, Field: pressure_with_units , Iso-value: 1013000 (Unit system: SI)


💡 Tips

When to Use Time-Averaged Outputs#

  • Use time averaging when you need statistical flow behavior rather than instantaneous snapshots

  • Particularly useful for unsteady flows with periodic or chaotic behavior

  • Effective for filtering out noise and revealing underlying flow patterns

Selecting the Right Start Step#

  • Set Start Step after initial transients have passed for more meaningful averages

  • Monitor convergence of your unsteady simulation to determine appropriate Start Step

  • Too early: averages may include non-physical startup transients

  • Too late: may miss important physical phenomena

Setting Appropriate Frequency#

  • For long simulations, use higher Frequency values to reduce storage requirements

  • For detailed time evolution of averages, use lower Frequency values

  • Balance between data resolution and file size


❓ Frequently Asked Questions

  • When should I use time-averaged outputs instead of regular outputs?

    Time-averaged outputs are ideal for unsteady simulations where you want to analyze the statistical behavior of the flow rather than instantaneous values. They help filter out noise and reveal underlying flow patterns.

  • Can I have both time-averaged and instantaneous outputs for the same isosurface?

    Yes, you can define both regular isosurface outputs and time-averaged isosurface outputs for the same points to monitor both instantaneous and time-averaged values.

  • How does the averaging calculation work?

    Flow360 calculates an average from the Start Step specified until the end of the simulation. The average is computed and saved at the frequency specified.

  • Does time-averaging increase computational cost?

    Time-averaging adds minimal computational overhead as it’s primarily a post-processing operation, but it does require additional memory to store the averaged values.

  • What happens if I set Start Step to -1?

    Setting Start Step to -1 means the time-averaged output will only be calculated and saved at the end of the simulation, providing a single averaged value over the entire simulation (after any specified start step).

  • Can I use time-averaging with steady simulations?

    No, time-averaged outputs are only available when using unsteady time stepping methods, as they require time evolution to calculate meaningful averages.


🐍 Python Example Usage

# Example of configuring isosurface output using Flow360 Python API
import flow360 as fl
from flow360 import u

# Define multiple isosurfaces with different fields and values
my_temp = fl.UserVariable(name="my_temp", value=fl.solution.temperature).in_units(new_unit='K')
time_averaging_isosurfaces_output = fl.TimeAverageIsosurfaceOutput(
  isosurfaces=[
      fl.Isosurface(name="q_criterion_avg", field="qcriterion", iso_value=0.0004128),
      fl.Isosurface(name="q_criterion_avg", field=my_temp, iso_value=300*fl.u.K)
  ],
  start_step=420,
  output_fields=["velocity_magnitude"],
  output_format="both",
)

# Add your time-averaged isosurface output to simulation parameters
simulation_params = fl.SimulationParams(
    # ... other simulation parameters ...
    outputs=[time_averaging_isosurfaces_output]
)