From 5df4d290d215946feca58486fa3c32abe320165f Mon Sep 17 00:00:00 2001 From: Mainak Kundu Date: Mon, 11 Aug 2025 12:41:42 -0400 Subject: [PATCH 1/5] fix: grpc connection --- src/ansys/fluent/core/launcher/fluent_container.py | 1 + src/ansys/fluent/core/launcher/slurm_launcher.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ansys/fluent/core/launcher/fluent_container.py b/src/ansys/fluent/core/launcher/fluent_container.py index ced35c68f213..b1c58e7f73f5 100644 --- a/src/ansys/fluent/core/launcher/fluent_container.py +++ b/src/ansys/fluent/core/launcher/fluent_container.py @@ -350,6 +350,7 @@ def configure_container_dict( environment={ "ANSYSLMD_LICENSE_FILE": license_server, "REMOTING_PORTS": f"{container_grpc_port}/portspan=2", + "FLUENT_ALLOW_REMOTE_GRPC_CONNECTION": "1", } ) diff --git a/src/ansys/fluent/core/launcher/slurm_launcher.py b/src/ansys/fluent/core/launcher/slurm_launcher.py index 5e62dee9031d..d5a251733cd3 100644 --- a/src/ansys/fluent/core/launcher/slurm_launcher.py +++ b/src/ansys/fluent/core/launcher/slurm_launcher.py @@ -460,6 +460,7 @@ def _prepare(self): launch_cmd += _build_journal_argument( self._argvals["topy"], self._argvals["journal_file_names"] ) + launch_cmd += ' --setenv="FLUENT_ALLOW_REMOTE_GRPC_CONNECTION=1"' logger.debug(f"Launching Fluent with command: {launch_cmd}") proc = subprocess.Popen(launch_cmd, **kwargs) From c43038ee1224fcc2535a550177014dc8002010db Mon Sep 17 00:00:00 2001 From: Mainak Kundu Date: Fri, 1 Aug 2025 12:14:47 -0400 Subject: [PATCH 2/5] fix: Fix some paths which have been wrongly marked --- .../fluent/core/codegen/builtin_settingsgen.py | 8 +++++++- .../fluent/core/solver/settings_builtin_data.py | 16 ++-------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/ansys/fluent/core/codegen/builtin_settingsgen.py b/src/ansys/fluent/core/codegen/builtin_settingsgen.py index 5ade70479abf..e1101d65a632 100644 --- a/src/ansys/fluent/core/codegen/builtin_settingsgen.py +++ b/src/ansys/fluent/core/codegen/builtin_settingsgen.py @@ -23,7 +23,11 @@ """Generate builtin setting classes.""" from ansys.fluent.core import FluentVersion, config -from ansys.fluent.core.solver.flobject import CreatableNamedObjectMixin, NamedObject +from ansys.fluent.core.solver.flobject import ( + CreatableNamedObjectMixin, + NamedObject, + _ChildNamedObjectAccessorMixin, +) from ansys.fluent.core.solver.settings_builtin_data import DATA from ansys.fluent.core.utils.fluent_version import all_versions @@ -52,6 +56,8 @@ def _get_named_objects_in_path(root, path, kind): cls = cls.child_object_type final_type = "" if kind == "NamedObject": + if not issubclass(cls, (NamedObject, _ChildNamedObjectAccessorMixin)): + raise TypeError(f"{cls.__name__} is not NamedObject type.") if issubclass(cls, CreatableNamedObjectMixin): final_type = "Creatable" else: diff --git a/src/ansys/fluent/core/solver/settings_builtin_data.py b/src/ansys/fluent/core/solver/settings_builtin_data.py index 98f4cab998e7..fb38e41468a2 100644 --- a/src/ansys/fluent/core/solver/settings_builtin_data.py +++ b/src/ansys/fluent/core/solver/settings_builtin_data.py @@ -225,26 +225,14 @@ "VelocityInlet": ("NamedObject", "setup.boundary_conditions.velocity_inlet"), "WallBoundaries": ("Singleton", "setup.boundary_conditions.wall"), "WallBoundary": ("NamedObject", "setup.boundary_conditions.wall"), - "NonReflectingBoundaries": ( - "Singleton", - { - since(FluentVersion.v241): "setup.boundary_conditions.non_reflecting_bc", - }, - ), "NonReflectingBoundary": ( - "NamedObject", - { - since(FluentVersion.v241): "setup.boundary_conditions.non_reflecting_bc", - }, - ), - "PerforatedWallBoundaries": ( "Singleton", { - since(FluentVersion.v241): "setup.boundary_conditions.perforated_wall", + since(FluentVersion.v241): "setup.boundary_conditions.non_reflecting_bc", }, ), "PerforatedWallBoundary": ( - "NamedObject", + "Singleton", { since(FluentVersion.v241): "setup.boundary_conditions.perforated_wall", }, From 8b24ad33ef72d901a395a3d97da2e273c20477e6 Mon Sep 17 00:00:00 2001 From: Mainak Kundu Date: Fri, 1 Aug 2025 13:42:08 -0400 Subject: [PATCH 3/5] fix: Expose both object and method classes for commands --- .../core/codegen/builtin_settingsgen.py | 58 ++++++++++++------- .../core/solver/settings_builtin_bases.py | 6 +- tests/test_builtin_settings.py | 27 ++++++++- 3 files changed, 66 insertions(+), 25 deletions(-) diff --git a/src/ansys/fluent/core/codegen/builtin_settingsgen.py b/src/ansys/fluent/core/codegen/builtin_settingsgen.py index e1101d65a632..f66fc6cf96fe 100644 --- a/src/ansys/fluent/core/codegen/builtin_settingsgen.py +++ b/src/ansys/fluent/core/codegen/builtin_settingsgen.py @@ -22,6 +22,8 @@ """Generate builtin setting classes.""" +import re + from ansys.fluent.core import FluentVersion, config from ansys.fluent.core.solver.flobject import ( CreatableNamedObjectMixin, @@ -45,6 +47,13 @@ def _get_settings_root(version: str): return settings.root +def _convert_camel_case_to_snake_case(name: str) -> str: + """Convert CamelCase to snake_case.""" + # Replace uppercase letters with lowercase and prepend an underscore + name = re.sub(r"(?= FluentVersion.v241: + assert WriteCase(settings_source=solver) == solver.file.write_case + assert WriteData(settings_source=solver) == solver.file.write_data + assert WriteCaseData(settings_source=solver) == solver.file.write_case_data + else: + with pytest.raises(RuntimeError): + WriteCase(settings_source=solver) + with pytest.raises(RuntimeError): + WriteData(settings_source=solver) + with pytest.raises(RuntimeError): + WriteCaseData(settings_source=solver) + assert ( + Initialize(settings_source=solver) == solver.solution.initialization.initialize + ) + assert ( + Calculate(settings_source=solver) == solver.solution.run_calculation.calculate + ) + assert Iterate(settings_source=solver) == solver.solution.run_calculation.iterate + assert ( + DualTimeIterate(settings_source=solver) + == solver.solution.run_calculation.dual_time_iterate + ) @pytest.mark.codegen_required @@ -706,5 +731,5 @@ def test_context_manager_2(new_solver_session): ) with using(solver): - ReadCase(file_name=import_filename) + read_case(file_name=import_filename) assert Viscous().model() == "k-omega" From 020ce83e98c142a92a3a4d08535e85d635439176 Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:44:15 +0000 Subject: [PATCH 4/5] chore: adding changelog file 4340.added.md [dependabot-skip] --- doc/changelog.d/4340.added.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/4340.added.md diff --git a/doc/changelog.d/4340.added.md b/doc/changelog.d/4340.added.md new file mode 100644 index 000000000000..28e9ae097085 --- /dev/null +++ b/doc/changelog.d/4340.added.md @@ -0,0 +1 @@ +Expose both object and method classes for builtin commands \ No newline at end of file From 909ba7735b9b492ca2494196d2bd5277f0a66ded Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:51:14 +0000 Subject: [PATCH 5/5] chore: adding changelog file 4340.added.md [dependabot-skip] --- doc/changelog.d/4340.added.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/changelog.d/4340.added.md b/doc/changelog.d/4340.added.md index 28e9ae097085..50c0b90f46bc 100644 --- a/doc/changelog.d/4340.added.md +++ b/doc/changelog.d/4340.added.md @@ -1 +1 @@ -Expose both object and method classes for builtin commands \ No newline at end of file +Expose both object and method classes for builtin commands