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


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 vector

  • Example: [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: 300

  • Example: 500 for higher resolution, 100 for 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_step after 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:

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

  2. Statistical analysis: Time-averaging allows you to identify statistically significant loading patterns that might be obscured by instantaneous fluctuations.

  3. Comparing configurations: Time-averaged distributions provide a stable basis for comparing force distributions between different configurations or operating conditions.

  4. 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_step to begin averaging after initial transients have subsided

  • For 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 Step parameter 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 ForceDistributionOutput and TimeAverageForceDistributionOutput in 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
)

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]
)