From f0554649f39c8b456fdbd8b24655d59732ad8208 Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee Date: Fri, 3 Oct 2025 09:02:56 +0530 Subject: [PATCH 1/4] fix: Implement migration adapter check for textual settings parameters. --- src/ansys/fluent/core/solver/flobject.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ansys/fluent/core/solver/flobject.py b/src/ansys/fluent/core/solver/flobject.py index 7f7d9be72cb5..c5575a6377ad 100644 --- a/src/ansys/fluent/core/solver/flobject.py +++ b/src/ansys/fluent/core/solver/flobject.py @@ -686,10 +686,13 @@ 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) - raise TypeError( - f"Expected state to be {expected}, got {type(state).__name__}." - ) + if self._has_migration_adapter: + return self.base_set_state(state=state, **kwargs) + else: + expected = " or ".join(t.__name__ for t in allowed_types) + raise TypeError( + f"Expected state to be {expected}, got {type(state).__name__}." + ) return self.base_set_state(state=_to_field_name_str(state), **kwargs) From dc08e19c4ce7715f9b1ebb7cdd779f55b3fd28ea Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Fri, 3 Oct 2025 03:35:24 +0000 Subject: [PATCH 2/4] chore: adding changelog file 4515.fixed.md [dependabot-skip] --- doc/changelog.d/4515.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/4515.fixed.md 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. From c5ded6993127185f64bfeb15e124e716fa42d0b2 Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee <109645853+prmukherj@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:36:21 +0530 Subject: [PATCH 3/4] Update src/ansys/fluent/core/solver/flobject.py Co-authored-by: Sean Pearson <93727996+seanpearsonuk@users.noreply.github.com> --- src/ansys/fluent/core/solver/flobject.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ansys/fluent/core/solver/flobject.py b/src/ansys/fluent/core/solver/flobject.py index c5575a6377ad..7d9052898131 100644 --- a/src/ansys/fluent/core/solver/flobject.py +++ b/src/ansys/fluent/core/solver/flobject.py @@ -688,11 +688,10 @@ def set_state(self, state: StateT | None = None, **kwargs): if not isinstance(state, allowed_types): if self._has_migration_adapter: return self.base_set_state(state=state, **kwargs) - else: - expected = " or ".join(t.__name__ for t in allowed_types) - raise TypeError( - f"Expected state to be {expected}, got {type(state).__name__}." - ) + raise TypeError( + 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) From 150e14d1ce6394ee8cf42a6c8406a2b7c967e27e Mon Sep 17 00:00:00 2001 From: Prithwish Mukherjee Date: Mon, 6 Oct 2025 13:38:56 +0530 Subject: [PATCH 4/4] Add test. --- tests/test_settings_api.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) 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" + )