Skip to content

Commit ed5bf19

Browse files
Fix render output translation logic
1 parent 16cee37 commit ed5bf19

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

flow360/component/simulation/translator/solver_translator.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,11 @@ def translate_isosurface_output(
576576
return translated_output
577577

578578

579-
def translate_render_output(output_params: list, injection_function):
579+
def translate_render_output(
580+
input_params: SimulationParams,
581+
output_params: list,
582+
injection_function
583+
):
580584
"""Translate render output settings."""
581585

582586
renders = get_all_entries_of_type(output_params, RenderOutput)
@@ -602,14 +606,17 @@ def translate_render_output(output_params: list, injection_function):
602606
translation_func=translate_output_fields,
603607
to_list=False,
604608
entity_injection_func=injection_function,
609+
entity_type_to_include=Isosurface,
605610
entity_list_attribute_name="isosurfaces",
611+
entity_injection_input_params=input_params,
606612
),
607613
"surfaces": translate_setting_and_apply_to_all_entities(
608614
[render],
609615
RenderOutput,
610616
translation_func=translate_output_fields,
611617
to_list=False,
612-
entity_list_attribute_name="surfaces",
618+
entity_type_to_include=Surface,
619+
entity_list_attribute_name="surfaces"
613620
),
614621
"camera": remove_units_in_dict(camera),
615622
"lighting": remove_units_in_dict(lighting),
@@ -989,7 +996,7 @@ def translate_output(input_params: SimulationParams, translated: dict):
989996

990997
##:: Step6: Get translated["renderOutput"]
991998
if has_instance_in_list(outputs, RenderOutput):
992-
translated["renderOutput"] = translate_render_output(outputs, inject_isosurface_info)
999+
translated["renderOutput"] = translate_render_output(input_params, outputs, inject_isosurface_info)
9931000

9941001
##:: Step7: Get translated["monitorOutput"]
9951002
probe_output = {}

flow360/component/simulation/translator/utils.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ def translate_setting_and_apply_to_all_entities(
287287
use_instance_name_as_key=False,
288288
use_sub_item_as_key=False,
289289
entity_type_to_include=None,
290+
entity_list_attribute_name="entities",
290291
**kwargs,
291292
):
292293
"""
@@ -369,23 +370,23 @@ def translate_setting_and_apply_to_all_entities(
369370
# pylint: disable=too-many-nested-blocks
370371
for obj in obj_list:
371372
if class_type and is_exact_instance(obj, class_type):
372-
373373
list_of_entities = []
374-
if "entities" in obj.__class__.model_fields:
375-
if obj.entities is None or (
376-
"stored_entities" in obj.entities.__class__.model_fields
377-
and obj.entities.stored_entities is None
374+
if entity_list_attribute_name in obj.__class__.model_fields:
375+
entity_list = getattr(obj, entity_list_attribute_name)
376+
if entity_list is None or (
377+
"stored_entities" in entity_list.__class__.model_fields
378+
and entity_list.stored_entities is None
378379
): # unique item list does not allow None "items" for now.
379380
continue
380-
if isinstance(obj.entities, EntityList):
381+
if isinstance(entity_list, EntityList):
381382
list_of_entities = (
382-
obj.entities.stored_entities
383+
entity_list.stored_entities
383384
if lump_list_of_entities is False
384-
else [obj.entities]
385+
else [entity_list]
385386
)
386-
elif isinstance(obj.entities, UniqueItemList):
387+
elif isinstance(entity_list, UniqueItemList):
387388
list_of_entities = (
388-
obj.entities.items if lump_list_of_entities is False else [obj.entities]
389+
entity_list.items if lump_list_of_entities is False else [entity_list]
389390
)
390391
elif "entity_pairs" in obj.__class__.model_fields:
391392
# Note: This is only used in Periodic BC and lump_list_of_entities is not relavant

0 commit comments

Comments
 (0)