TimeAverageSurfaceProbeOutput#

class TimeAverageSurfaceProbeOutput[source]#

Bases: SurfaceProbeOutput

TimeAverageSurfaceProbeOutput class for time average surface probe monitor output settings. The specified monitor point will be projected to the target_surfaces closest to the point. The probed results on the projected point will be dumped. The projection is executed at the start of the simulation. If the surface that the point was projected to is moving (mesh motion), the point moves with it (it remains stationary in the reference frame of the target surface).

Example

  • Calculate the average value on the geometry["surface1"] and geometry["surface2"] surfaces with multiple monitor points. The average is computed starting from the \(4^{th}\) physical step. The results are output every 10 physical step starting from the \(14^{th}\) physical step (14, 24, 34 etc.).

    >>> TimeAverageSurfaceProbeOutput(
    ...     name="time_average_surface_probe_group_points",
    ...     entities=[
    ...         Point(name="Point_1", location=[1, 1.02, 0.03] * fl.u.cm),
    ...         Point(name="Point_2", location=[2, 1.01, 0.03] * fl.u.m),
    ...         Point(name="Point_3", location=[3, 1.02, 0.03] * fl.u.m),
    ...     ],
    ...     target_surfaces=[
    ...         Surface(name="Surface_1", geometry["surface1"]),
    ...         Surface(name="Surface_2", geometry["surface2"]),
    ...     ],
    ...     output_fields=["Mach", "primitiveVars", "yPlus"],
    ...     start_step=4,
    ...     frequency=10,
    ...     frequency_offset=14,
    ... )
    
  • Calculate the average value on the geometry["surface1"] and geometry["surface2"] surfaces with multiple monitor lines. The average is computed starting from the \(4^{th}\) physical step. The results are output every 10 physical step starting from the \(14^{th}\) physical step (14, 24, 34 etc.).

    • Line_1 is from (1,0,0) * fl.u.m to (1.5,0,0) * fl.u.m and has 6 monitor points.

    • Line_2 is from (-1,0,0) * fl.u.m to (-1.5,0,0) * fl.u.m and has 3 monitor points, namely, (-1,0,0) * fl.u.m, (-1.25,0,0) * fl.u.m and (-1.5,0,0) * fl.u.m.

    >>> TimeAverageSurfaceProbeOutput(
    ...     name="time_average_surface_probe_group_points",
    ...     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=[
    ...         Surface(name="Surface_1", geometry["surface1"]),
    ...         Surface(name="Surface_2", geometry["surface2"]),
    ...     ],
    ...     output_fields=["Mach", "primitiveVars", "yPlus"],
    ...     start_step=4,
    ...     frequency=10,
    ...     frequency_offset=14,
    ... )
    

Attributes

output_fields: UniqueItemList[Union]#

List of output variables. Including universal output variables, variables specific to SurfaceOutput and UserDefinedField.

name: str, optional#

Name of the TimeAverageSurfaceProbeOutput.

Default:

'Time average surface probe output'

entities: EntityList[Point, PointArray]#

List of monitored Point/PointArray entities belonging to this surface monitor group. PointArray is used to define monitored points along a line.

target_surfaces: EntityList[Surface, MirroredSurface, WindTunnelGhostSurface]#

List of Surface entities belonging to this monitor group.

moving_statistic: MovingStatistic, optional#

When specified, report moving statistics of the fields instead.

Default:

None

frequency: int | Literal[-1]#

Frequency (in number of physical time steps) at which output is saved. -1 is at end of simulation. Important for child cases - this parameter refers to the global time step, which gets 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 (child case), the output will be saved at time steps 200 (25 time steps of the child simulation), 300 (125 time steps of the child simulation), etc. This setting is NOT applicable for steady cases.

Default:

1

frequency_offset: int#

Offset (in number of physical time steps) at which output is started to be saved. 0 is at beginning of simulation. Important for child cases - this parameter refers to the global time step, which gets transferred from the parent case (see frequency parameter for an example). Example: if an output has a frequency of 100 and a frequency_offset of 10, the output will be saved at global time step 10, 110, 210, etc. This setting is NOT applicable for steady cases.

Default:

0

start_step: int | Literal[-1]#

Physical time step to start calculating averaging. Important for child cases - this parameter refers to the global time step, which gets transferred from the parent case (see frequency parameter for an example).

Default:

-1

Additional Constructors

classmethod from_file(filename)#

Loads a Flow360BaseModel from .json, or .yaml file.

Parameters:

filename (str) – Full path to the .yaml or .json file to load the Flow360BaseModel from.

Returns:

An instance of the component class calling load.

Return type:

Flow360BaseModel

Example

>>> params = Flow360BaseModel.from_file(filename='folder/sim.json') 

Methods

help(methods=False)#

Prints message describing the fields and methods of a Flow360BaseModel.

Parameters:

methods (bool = False) – Whether to also print out information about object’s methods.

Return type:

None

Example

>>> params.help(methods=True) 
to_file(filename, **kwargs)#

Exports Flow360BaseModel instance to .json or .yaml file

Parameters:

filename (str) – Full path to the .json or .yaml or file to save the Flow360BaseModel to.

Return type:

None

Example

>>> params.to_file(filename='folder/flow360.json')