diff --git a/doc/changelog.d/4515.fixed.md b/doc/changelog.d/4515.fixed.md new file mode 100644 index 000000000000..c88278b13a78 --- /dev/null +++ b/doc/changelog.d/4515.fixed.md @@ -0,0 +1 @@ +Implement migration adapter check for textual settings parameters. diff --git a/src/ansys/fluent/core/solver/flobject.py b/src/ansys/fluent/core/solver/flobject.py index 7f7d9be72cb5..7d9052898131 100644 --- a/src/ansys/fluent/core/solver/flobject.py +++ b/src/ansys/fluent/core/solver/flobject.py @@ -686,9 +686,11 @@ def set_state(self, state: StateT | None = None, **kwargs): allowed_types = (str, VariableDescriptor) if not isinstance(state, allowed_types): - expected = " or ".join(t.__name__ for t in allowed_types) + if self._has_migration_adapter: + return self.base_set_state(state=state, **kwargs) raise TypeError( - f"Expected state to be {expected}, got {type(state).__name__}." + f"Expected state to be {' or '.join(t.__name__ for t in allowed_types)}, " + f"got {type(state).__name__}." ) return self.base_set_state(state=_to_field_name_str(state), **kwargs) diff --git a/tests/test_settings_api.py b/tests/test_settings_api.py index 0e86e4ca6243..02f746011c55 100644 --- a/tests/test_settings_api.py +++ b/tests/test_settings_api.py @@ -793,3 +793,39 @@ def test_setting_string_constants(mixing_elbow_settings_session): with pytest.raises(ValueError): viscous.k_epsilon_model = viscous.k_epsilon_model.EASM + + +@pytest.mark.fluent_version(">=26.1") +def test_migration_adapter_for_strings(mixing_elbow_settings_session): + solver = mixing_elbow_settings_session + solver.settings.setup.general.solver.time = "unsteady-2nd-order" + solver.settings.setup.models.discrete_phase.general_settings.interaction.enabled = ( + True + ) + + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.enabled = ( + True + ) + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.option = ( + "particle-time-step" + ) + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.dpm_time_step_size = ( + 0.0002 + ) + + # Migration adapter is set on the 'create_particles_at' to accept boolean values as well besides string + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = ( + False + ) + assert ( + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at() + == "fluid-flow-time-step" + ) + + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at = ( + True + ) + assert ( + solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at() + == "particle-time-step" + )