RenderOutput#

class RenderOutput[source]#

Bases: _AnimationSettings

RenderOutput class for backend rendered output settings.

Example

Define the RenderOutput that outputs a basic image - boundaries and a Y-slice:

>>> fl.RenderOutput(
...     name="Example render",
...     groups=[
...         fl.RenderOutputGroup(
...             surfaces=geometry["*"],
...             material=fl.render.PBRMaterial.metal(shine=0.8)
...         ),
...         fl.RenderOutputGroup(
...             slices=[
...                 fl.Slice(name="Example slice", normal=(0, 1, 0), origin=(0, 0, 0))
...             ],
...             material=fl.render.FieldMaterial.rainbow(field="T", min_value=0, max_value=1, alpha=0.4)
...         )
...     ],
...     camera=fl.render_config.Camera(
...         position=fl.render_config.Viewpoint.TOP + fl.render_config.Viewpoint.LEFT, dimension=5
...     )
... )

Attributes

frequency: int | Literal[-1]#

Frequency at which output is saved, counted in physical time steps in unsteady simulations. Volume, surface, slice, isosurface and render outputs can also be saved during a steady simulation, where the frequency is counted in pseudo steps instead; the remaining outputs accept a frequency in unsteady simulations only. -1 is at end of simulation. Important for unsteady 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. For steady child cases the pseudo-step count restarts at 0, so the frequency is counted from the start of the child run. Time-averaged outputs are only supported in unsteady simulations.

Default:

-1

frequency_offset: int#

Offset at which output starts to be saved, counted in physical time steps in unsteady simulations. Volume, surface, slice, isosurface and render outputs can also be saved during a steady simulation, where the offset is counted in pseudo steps instead; the remaining outputs accept an offset in unsteady simulations only. 0 is at beginning of simulation. Important for unsteady 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. For steady child cases the pseudo-step count restarts at 0, so the offset is counted from the start of the child run. Time-averaged outputs are only supported in unsteady simulations.

Default:

0

name: str#

Name of the RenderOutput.

Default:

'Render output'

groups: list[RenderOutputGroup]#
Default:

[]

camera: Camera | LegacyCamera#

Camera settings

Default:

Camera()

lighting: Lighting#

Lighting settings

Default:

Lighting()

environment: Environment#

Environment settings

Default:

Environment()

resolution: Resolution#

Output image resolution (pixels). Default 1920x1080.

Default:

Resolution()

transform: SceneTransform, optional#

Optional model transform to apply to all entities

Default:

None

mode: Literal['video', 'frames']#

Output mode for the render. video (default) assembles the rendered frames into an MP4 animation. frames instead writes one full-fidelity PNG per frame, useful for per-iteration post-processing of unsteady simulations.

Default:

'video'

Methods

classmethod check_has_output_groups(value)[source]#

Verify the render output has at least one group to render