Skip to content

Commit f90f640

Browse files
MeenaBytesRajesh MeenaPProfizi
authored
fix(animation): add mode number and frequency value with unit in mode animations (#1700)
Co-authored-by: Rajesh Meena <[email protected]> Co-authored-by: Rajesh Meena <[email protected]> Co-authored-by: Paul Profizi <[email protected]>
1 parent 598f64a commit f90f640

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/ansys/dpf/core/animation.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,14 @@ def animate_mode(
9595
)
9696

9797
# Get fields
98+
available_mode_numbers = fields_container.get_available_ids_for_label("time")
99+
100+
if not mode_number in available_mode_numbers:
101+
raise ValueError(f"The mode {mode_number} data is not available in field container.")
98102
fields_mode = fields_container.get_fields({"time": mode_number})
103+
mode_frequencies_field = fields_container.time_freq_support.time_frequencies
104+
mode_frequencies = mode_frequencies_field.data
105+
mode_frequency = mode_frequencies[available_mode_numbers.index(mode_number)]
99106

100107
# Merge fields if needed
101108
if len(fields_mode) > 1:
@@ -108,6 +115,7 @@ def animate_mode(
108115

109116
max_data = float(np.max(field_mode.data))
110117
loop_over = dpf.fields_factory.field_from_array(scale_factor_per_frame)
118+
loop_over.unit = mode_frequencies_field.unit
111119

112120
# Create workflow
113121
wf = dpf.Workflow()
@@ -130,6 +138,7 @@ def animate_mode(
130138
output_name="field",
131139
save_as=save_as,
132140
mode_number=mode_number,
141+
mode_frequency=mode_frequency,
133142
clim=[0, max_data],
134143
scale_factor=deform_scale_factor,
135144
**kwargs,

src/ansys/dpf/core/animator.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def animate_workflow(
5959
input_name="loop_over",
6060
save_as="",
6161
mode_number=None,
62+
mode_frequency=None,
6263
scale_factor=1.0,
6364
shell_layer=core.shell_layers.top,
6465
**kwargs,
@@ -133,9 +134,9 @@ def render_frame(frame):
133134
str_template.format(indices[frame], unit, freq_fmt), **kwargs_in
134135
)
135136
else:
136-
str_template = "frq={0:{2}} {1}"
137+
str_template = "mode={3}\nfrq={0:{2}} {1}"
137138
self._plotter.add_text(
138-
str_template.format(mode_number, unit, freq_fmt), **kwargs_in
139+
str_template.format(mode_frequency, unit, freq_fmt, mode_number), **kwargs_in
139140
)
140141

141142
if cpos:

0 commit comments

Comments
 (0)