Time-averaging Force Distribution Output#
Time-averaging Force Distribution Output allows you to calculate and output time-averaged force and moment distributions along a custom direction for unsteady simulations. This is essential for statistical analysis of unsteady force distributions, such as spanwise loading on wings experiencing flutter or propellers in unsteady flow conditions.
Available Options#
Option |
Description |
Applicable |
|---|---|---|
Name |
Unique identifier for the time-averaged force distribution output |
always |
Distribution direction |
3D unit vector specifying the direction along which forces and moments are distributed |
always |
Distribution type |
Type of distribution calculation: incremental or cumulative |
always |
Number of segments |
Number of bins along the distribution direction used for sampling |
always |
Assigned surfaces |
Surfaces to include in force integration; if not set, all wall surfaces are used |
always |
Start step |
Physical time step to start calculating the time average |
always |
See also
For the underlying physics and configuration of outputs, see the Output Configuration user guide.
Global Time Stepping in Child Cases#
When working with child cases (cases forked from a parent simulation), it’s important to understand that the Start step parameter refers 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 start_step=200 is set in the child case, time averaging will begin at global time step 200, which corresponds to 25 time steps into the child simulation. See Global Time Stepping in Child Cases for details.
Detailed Descriptions#
Name#
Unique identifier for the time-averaged force distribution output.
Required: Yes
Default:
"Time average force distribution output"Example:
"spanwise_avg","chordwise_avg"
Note: Output names must be unique among all force distribution outputs in the same simulation.
Distribution direction#
The 3D unit vector that specifies the direction along which forces and moments are distributed. The vector is automatically normalized by Flow360.
Required: Yes
Format: 3-element array
[x, y, z]representing a 3D direction vectorExample:
[0, 1, 0]for spanwise (y-direction),[1, 0, 0]for chordwise (x-direction),[0.1, 0.9, 0]for a custom oblique direction
Note: The vector is automatically normalized, so
[0.1, 0.9, 0]and[0.1, 0.9, 0.0]will result in the same normalized direction vector.
Distribution type#
Specifies whether forces and moments are output as incremental (per segment) or cumulative (integrated up to that point).
Required: No
Default:
"incremental"Options:
"incremental"- Outputs time-averaged force and moment contributions for each segment along the distribution direction"cumulative"- Outputs time-averaged cumulative (integrated) force and moment values along the distribution direction
Number of segments#
The number of bins (segments) used to sample the time-averaged force distribution along the specified direction. Higher values provide finer resolution in the distribution plot.
Required: No
Default:
300Example:
500for higher resolution,100for a coarser overview
Note: Increasing the number of segments increases output file size and post-processing time.
Assigned surfaces#
The list of surfaces to include in the time-averaged force integration. If left empty, Flow360 automatically includes all wall surfaces in the simulation.
Required: No
Default: All wall surfaces (when not specified)
How to set: Click + to add surfaces manually, or use the Select from 3D scene button to pick surfaces interactively in the viewer.
Example use case: In automotive simulations, exclude the road/floor surface to compute time-averaged force distributions only over the vehicle body.
Note: Only surfaces assigned a wall boundary condition can be selected.
Start step#
The physical time step at which to start calculating the time average. This parameter refers to the global time step, which is important for child cases (cases that inherit time stepping from a parent case).
Required: No
Default:
-1(calculate average from the beginning of the simulation)Example:
100(start averaging from the 100th physical time step)
Note:
For child cases, the start step refers to the global time step, not the step count within the child case.
Setting
start_stepafter initial transients allows you to exclude transient effects from the time average.See Global Time Stepping in Child Cases for details.
Output Data#
The output provides time-averaged axis-aligned components of force and moment coefficients along the specified distribution direction. Data is saved in CSV format and can be accessed through:
Python API: Results are available through
case.results(pattern:<output_name>_forceDistribution.csv)WebUI: Download from the Assets button
The output includes time-averaged force and moment coefficients (CL, CD, CFx, CFy, CFz, CMx, CMy, CMz) distributed along the specified direction.
❓ Frequently Asked Questions
How does the Start Step parameter affect my results?
The
Start Stepparameter controls when the solver begins accumulating statistics for time-averaging:Setting it too early may include unwanted transient effects in your averages
Setting it too late may not give enough time for statistical convergence
For child cases, remember this refers to the global time step
Monitor your force history and set it manually once transients have subsided
How long should I run my simulation to get good time-averaged force distribution results?
For statistically meaningful time-averaged force distribution results:
Continue at least 5-10 characteristic time periods after starting the averaging
For external aerodynamics, typically 5-10 flow-through times past your geometry
For periodic flows (vortex shedding), at least 20-30 shedding cycles
Monitor key quantities (like total forces) to ensure their time averages have converged
Can I use both regular and time-averaged force distribution outputs in the same simulation?
Yes, you can define both
ForceDistributionOutputandTimeAverageForceDistributionOutputin the same simulation with different names. This allows you to compare instantaneous and time-averaged distributions.What’s the difference between Force Distribution Output and the default X/Y slicing force distributions?
The default X and Y slicing force distributions are automatically generated along the coordinate axes. Force Distribution Output (both regular and time-averaged) allows you to specify any custom direction, which is useful for oblique or sweep-aligned analysis.
🐍 Python Example Usage
See also
Python API reference: TimeAverageForceDistributionOutput. See also Force Distribution Output.
Basic Time-Averaged Force Distribution Output Example
import flow360 as fl
# Time-averaged spanwise force distribution starting from step 100
time_avg_spanwise = fl.TimeAverageForceDistributionOutput(
name="spanwise_avg",
distribution_direction=[0, 1, 0], # Y-direction (spanwise)
distribution_type="cumulative",
start_step=100 # Start averaging after 100 time steps
)
Time-Averaged Output with custom segments and surface selection
import flow360 as fl
# Higher-resolution time-averaged chordwise distribution on selected surfaces
time_avg_chordwise = fl.TimeAverageForceDistributionOutput(
name="chordwise_avg",
distribution_direction=[1, 0, 0], # X-direction
distribution_type="incremental",
number_of_segments=500, # finer resolution
surfaces=[volume_mesh["wing_upper"], # restrict to wing surfaces only
volume_mesh["wing_lower"]],
start_step=200, # start after transients
)
Combined Regular and Time-Averaged Outputs
# Use both regular and time-averaged outputs for comparison
regular_spanwise = fl.ForceDistributionOutput(
name="spanwise_instantaneous",
distribution_direction=[0, 1, 0],
distribution_type="cumulative",
number_of_segments=300,
)
time_avg_spanwise = fl.TimeAverageForceDistributionOutput(
name="spanwise_averaged",
distribution_direction=[0, 1, 0],
distribution_type="cumulative",
number_of_segments=300,
start_step=200 # Start after transients
)
# Add both to simulation parameters
params = fl.SimulationParams(
# ... other parameters ...
outputs=[regular_spanwise, time_avg_spanwise]
)