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 |
Start step |
Physical time step to start calculating the time average |
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 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
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.
Use Cases#
Time-averaging Force Distribution Output is useful for:
Analyzing time-averaged spanwise loading distributions on wings experiencing unsteady aerodynamic loads
Computing statistical force distributions for propellers in unsteady inflow conditions
Studying mean force distributions in turbulent flows where instantaneous values fluctuate significantly
Comparing time-averaged force distributions between different configurations or operating conditions
Identifying statistically significant loading regions along specific geometric directions
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.
💡 Tips
Time-averaged force distribution output is particularly useful in the following scenarios:
Analyzing unsteady flows: For flows with inherent unsteadiness (like flutter, buffeting, or turbulent wakes), time-averaging provides mean force distribution statistics while filtering out transient fluctuations.
Statistical analysis: Time-averaging allows you to identify statistically significant loading patterns that might be obscured by instantaneous fluctuations.
Comparing configurations: Time-averaged distributions provide a stable basis for comparing force distributions between different configurations or operating conditions.
Convergence monitoring: Monitor the convergence of time-averaged force distributions to ensure your statistics have become stable.
Note: Time-averaged force distribution outputs are only available when using unsteady time stepping methods.
Best Practices
Set
start_stepto begin averaging after initial transients have subsidedFor periodic flows (like vortex shedding), run long enough to capture multiple cycles for meaningful statistics
Use cumulative distribution type to see how forces accumulate along a direction (e.g., total lift vs. span position)
Use incremental distribution type to see force contributions per segment (e.g., lift per unit span)
❓ Frequently Asked Questions
When should I use time-averaged force distribution output instead of regular force distribution output?
Time-averaged force distribution output is ideal when:
You’re analyzing unsteady flows where force distributions fluctuate significantly over time
You need to filter out transient effects or numerical noise
You want statistically meaningful force distributions for comparison between configurations
You’re interested in mean loading patterns rather than instantaneous snapshots
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
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
)
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"
)
time_avg_spanwise = fl.TimeAverageForceDistributionOutput(
name="spanwise_averaged",
distribution_direction=[0, 1, 0],
distribution_type="cumulative",
start_step=200 # Start after transients
)
# Add both to simulation parameters
params = fl.SimulationParams(
# ... other parameters ...
outputs=[regular_spanwise, time_avg_spanwise]
)