Time-averaging Probe Outputs#
Time-averaging Probe Outputs in Flow360 allow you to collect statistical data over time during unsteady simulations, providing valuable insights into time-averaged flow behavior.
Note: Time-averaging outputs are only available when using unsteady time stepping.
Available Options#
Option |
Description |
Applicable |
|---|---|---|
Output fields |
Flow variables to monitor at specified locations |
always |
Start step |
Physical time step to start calculating averaging |
always |
Save interval |
When to save outputs |
always |
Frequency |
Frequency at which output is saved |
when Save interval is |
Frequency offset |
Offset at which output begins |
when Save interval is |
Assigned probes |
Points or point arrays where variables will be monitored |
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#
The flow variables that will be time-averaged at the specified probe locations.
Default: None (user must select at least one field)
Example:
primitiveVars,Cp,Mach
Note: Select only the fields you need for your analysis. See Available Output Fields for a complete list of supported variables.
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 endOptions:
Save at endCustom
Notes:
Choose
Save at endto save only the final results of the simulation.Choose
Customto save the results in given intervals.
Frequency#
How often (in physical time steps) the time-averaged data is saved.
Default:
1(every physical time step)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:
Set to a positive integer to save at that interval, or
-1to save only at the end.Important for child cases - this parameter refers to the global time step (see Global Time Stepping).
Frequency offset#
Defines when the first time-averaged output occurs.
Default:
0(first output at 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:
Important for child cases - this parameter refers to the global time step (see Global Time Stepping).
Probes#
The specific points or arrays of points where time-averaged flow variables will be monitored. Regardless of the motion of the mesh, the points retain their positions in the global reference frame during the simulation.
Default: None (user must define at least one probe)
Example: A point at
(0, 1.5, 0), or a line of points between two locations
Note: Points can be added individually or as arrays (lines) with evenly distributed points.
Point Definition: The creation of points is described in detail here
💡 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
Point Placement Best Practices#
Place points in regions of interest (wakes, boundary layers, separation regions)
Use point arrays to capture gradients across important flow features
For boundary layer analysis, create point arrays normal to surfaces
Output File Management#
Time-averaged outputs generate separate history files from regular outputs
File naming convention:
[case_name]_TimeAvg[output_name].csvMonitor file sizes when using many output points with high output frequency
❓ 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 points?
Yes, you can define both regular probe outputs and time-averaged probe 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
Time Average Probe Output Example#
# Define a time average probe output with individual points
time_avg_probe_output = fl.TimeAverageProbeOutput(
name="time_average_probe_group_points",
entities=[
fl.Point(
name="Point_1",
location=(0.0, 1.5, 0.0) * fl.u.m,
),
fl.Point(
name="Point_2",
location=(0.0, -1.5, 0.0) * fl.u.m,
),
],
output_fields=["primitiveVars", "Mach"],
start_step=4, # Start averaging at the 4th physical step
frequency=10, # Output every 10th physical step
frequency_offset=14, # First output at the 14th physical step
)
Time Average Probe Output with Point Arrays Example#
# Define a time average probe output with point arrays
time_avg_probe_output_lines = fl.TimeAverageProbeOutput(
name="time_average_probe_group_lines",
entities=[
fl.PointArray(
name="Line_1",
start=(1.0, 0.0, 0.0) * fl.u.m,
end=(1.5, 0.0, 0.0) * fl.u.m,
number_of_points=6,
),
fl.PointArray(
name="Line_2",
start=(-1.0, 0.0, 0.0) * fl.u.m,
end=(-1.5, 0.0, 0.0) * fl.u.m,
number_of_points=3,
),
],
output_fields=["primitiveVars", "Mach"],
start_step=4,
frequency=10,
frequency_offset=14,
)
Time Average Surface Probe Output Example#
# Define a time average surface probe output
time_avg_surface_probe_output = fl.TimeAverageSurfaceProbeOutput(
name="time_average_surface_probe_group_points",
entities=[
fl.Point(
name="Point_1",
location=(1, 1.02, 0.03) * fl.u.cm
),
fl.Point(
name="Point_2",
location=(2, 1.01, 0.03) * fl.u.m
),
fl.Point(
name="Point_3",
location=(3, 1.02, 0.03) * fl.u.m
),
],
target_surfaces=[
fl.Surface(name="Surface_1", geometry["surface1"]),
fl.Surface(name="Surface_2", geometry["surface2"]),
],
output_fields=["Mach", "primitiveVars", "yPlus"],
start_step=4,
frequency=10,
frequency_offset=14,
)
Time Average Surface Probe Output with Point Arrays Example#
# Define a time average surface probe output with point arrays
time_avg_surface_probe_output_lines = fl.TimeAverageSurfaceProbeOutput(
name="time_average_surface_probe_group_lines",
entities=[
fl.PointArray(
name="Line_1",
start=(1.0, 0.0, 0.0) * fl.u.m,
end=(1.5, 0.0, 0.0) * fl.u.m,
number_of_points=6,
),
fl.PointArray(
name="Line_2",
start=(-1.0, 0.0, 0.0) * fl.u.m,
end=(-1.5, 0.0, 0.0) * fl.u.m,
number_of_points=3,
),
],
target_surfaces=[
fl.Surface(name="Surface_1", geometry["surface1"]),
fl.Surface(name="Surface_2", geometry["surface2"]),
],
output_fields=["Mach", "primitiveVars", "yPlus"],
start_step=4,
frequency=10,
frequency_offset=14,
)