diff --git a/src/ansys/dpf/core/animation.py b/src/ansys/dpf/core/animation.py index 2fa42bf790c..6caccb6ed6d 100644 --- a/src/ansys/dpf/core/animation.py +++ b/src/ansys/dpf/core/animation.py @@ -95,7 +95,14 @@ def animate_mode( ) # Get fields + available_mode_numbers = fields_container.get_available_ids_for_label("time") + + if not mode_number in available_mode_numbers: + raise ValueError(f"The mode {mode_number} data is not available in field container.") fields_mode = fields_container.get_fields({"time": mode_number}) + mode_frequencies_field = fields_container.time_freq_support.time_frequencies + mode_frequencies = mode_frequencies_field.data + mode_frequency = mode_frequencies[available_mode_numbers.index(mode_number)] # Merge fields if needed if len(fields_mode) > 1: @@ -108,6 +115,7 @@ def animate_mode( max_data = float(np.max(field_mode.data)) loop_over = dpf.fields_factory.field_from_array(scale_factor_per_frame) + loop_over.unit = mode_frequencies_field.unit # Create workflow wf = dpf.Workflow() @@ -130,6 +138,7 @@ def animate_mode( output_name="field", save_as=save_as, mode_number=mode_number, + mode_frequency=mode_frequency, clim=[0, max_data], scale_factor=deform_scale_factor, **kwargs, diff --git a/src/ansys/dpf/core/animator.py b/src/ansys/dpf/core/animator.py index e418cd4a699..33b6f9f9431 100644 --- a/src/ansys/dpf/core/animator.py +++ b/src/ansys/dpf/core/animator.py @@ -59,6 +59,7 @@ def animate_workflow( input_name="loop_over", save_as="", mode_number=None, + mode_frequency=None, scale_factor=1.0, shell_layer=core.shell_layers.top, **kwargs, @@ -133,9 +134,9 @@ def render_frame(frame): str_template.format(indices[frame], unit, freq_fmt), **kwargs_in ) else: - str_template = "frq={0:{2}} {1}" + str_template = "mode={3}\nfrq={0:{2}} {1}" self._plotter.add_text( - str_template.format(mode_number, unit, freq_fmt), **kwargs_in + str_template.format(mode_frequency, unit, freq_fmt, mode_number), **kwargs_in ) if cpos: