2.6. User Defined Post Processing#

Overview#

Flow360 allows users to define custom fields that can be applied on volumes, surfaces, slices and isosurfaces alongside the built-in solution fields.

These can be classified into three families depending on what entity the user wants to postprocess.

User Variables#

User Variables allows users to define their own postprocessing variables using expressions. These variables can then be used to define outputs.

User Defined Surface Integrals#

The User Variables functionality also allows users to integrate internal solver variables over a given set of mesh patches. For example, a pressure force calculation on a given subset of the body can be done with the following user variable.

import flow360 as fl

with fl.SI_unit_system:
    thermal_state = fl.ThermalState(temperature=288.15, density=1.225)
    pressure_force_field = fl.UserVariable(name="PressureForce", value=(fl.solution.pressure.in_units("Pa") - thermal_state.pressure) * fl.solution.node_unit_normal)

    fl.SimulationParams(
        outputs=[
            fl.SurfaceIntegralOutput(
                name="SurfaceIntegralPressureForce",
                output_fields=[pressure_force_field],
                surfaces=[vm["rotating/rotors"]]
            )
        ]
    )

One could also look at integrated flow quantities across an inlet or an outlet for example.

User Defined Monitors#

Using the User Variables functionality, users can create User Defined Monitors that export a history of the evolution of a given variable during the course of the simulation.

Examples include:

  • Monitor the convergence of a force or torque on a control surface as the simulation progresses

  • Monitor the evolution of a subset of variables as a function of time in a time accurate simulation