From 960f3e35d0f80cf83886cf095d708dd375b526dc Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 12:07:30 +0530 Subject: [PATCH 01/13] feat: Remote file transfer strategy --- .../core/utils/file_transfer_service.py | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/src/ansys/fluent/core/utils/file_transfer_service.py b/src/ansys/fluent/core/utils/file_transfer_service.py index 9a20ad0e1486..51a0bb55d573 100644 --- a/src/ansys/fluent/core/utils/file_transfer_service.py +++ b/src/ansys/fluent/core/utils/file_transfer_service.py @@ -401,6 +401,119 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non ) +class RemoteFileTransferStrategy(FileTransferStrategy): + """Provides a file transfer service based on the `gRPC client `_ + and `gRPC server `_. + + Examples + -------- + >>> import ansys.fluent.core as pyfluent + >>> from ansys.fluent.core import examples + >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy + >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") + >>> solver_session.file.read_case(file_name="elbow.cas.h5") + >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") + >>> solver_session.download(file_name="write_elbow.cas.h5", local_directory="") + """ + + def __init__( + self, + server_ip: str | None = None, + server_port: int | None = None, + ): + """Provides the gRPC-based remote file transfer strategy. + + Parameters + ---------- + server_ip: str + IP address of the server. + server_port : int + Port of the server. + """ + import ansys.tools.filetransfer as ft + + self.server_ip = server_ip + self.server_port = server_port + + self._client = ft.Client.from_server_address( + f"{self.server_ip}:{self.server_port}" + ) + + def upload(self, file_name: list[str] | str, remote_file_name: str | None = None): + """Upload a file to the server. + + Parameters + ---------- + file_name : list[str] | str + File name. + remote_file_name : str, optional + Remote file name. The default is ``None``. + + Raises + ------ + FileNotFoundError + If a file does not exist. + + Examples + -------- + >>> import ansys.fluent.core as pyfluent + >>> from ansys.fluent.core import examples + >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy + >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") + >>> solver_session.file.read_case(file_name="elbow.cas.h5") + """ + files = _get_files(file_name) + for file in files: + if os.path.isfile(file): + self._client.upload_file( + local_filename=file, + remote_filename=( + remote_file_name if remote_file_name else os.path.basename(file) + ), + ) + else: + raise FileNotFoundError(f"{file} does not exist.") + + def download(self, file_name: list[str] | str, local_directory: str | None = None): + """Download a file from the server. + + Parameters + ---------- + file_name : list[str] | str + File name. + local_directory : str, optional + Local directory. The default is ``None``. + + Examples + -------- + >>> import ansys.fluent.core as pyfluent + >>> from ansys.fluent.core import examples + >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy + >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") + >>> solver_session.download(file_name="write_elbow.cas.h5", local_directory="") + """ + files = _get_files(file_name) + for file in files: + if os.path.isfile(file): + warnings.warn( + f"\nFile already exists. File path:\n{file}\n", + PyFluentUserWarning, + ) + else: + self._client.download_file( + remote_filename=os.path.basename(file), + local_filename=( + local_directory if local_directory else os.path.basename(file) + ), + ) + + class PimFileTransferService: """Provides a file transfer service based on `PyPIM `_ and the ``simple_upload_server()`` method. From bcbd8d0d6886c3a36058139594c1db94aad0a5e4 Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Fri, 23 May 2025 06:40:58 +0000 Subject: [PATCH 02/13] chore: adding changelog file 4062.added.md [dependabot-skip] --- doc/changelog.d/4062.added.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/4062.added.md diff --git a/doc/changelog.d/4062.added.md b/doc/changelog.d/4062.added.md new file mode 100644 index 000000000000..898876e4f7d4 --- /dev/null +++ b/doc/changelog.d/4062.added.md @@ -0,0 +1 @@ +Remote file transfer strategy \ No newline at end of file From abf40f86643787dd6bc59b2afbc5d2049b1a7e43 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 12:13:15 +0530 Subject: [PATCH 03/13] feat: Update example --- src/ansys/fluent/core/utils/file_transfer_service.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ansys/fluent/core/utils/file_transfer_service.py b/src/ansys/fluent/core/utils/file_transfer_service.py index 51a0bb55d573..58bfa42a5e16 100644 --- a/src/ansys/fluent/core/utils/file_transfer_service.py +++ b/src/ansys/fluent/core/utils/file_transfer_service.py @@ -411,7 +411,8 @@ class RemoteFileTransferStrategy(FileTransferStrategy): >>> from ansys.fluent.core import examples >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") >>> solver_session.file.read_case(file_name="elbow.cas.h5") >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") @@ -462,7 +463,8 @@ def upload(self, file_name: list[str] | str, remote_file_name: str | None = None >>> from ansys.fluent.core import examples >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") >>> solver_session.file.read_case(file_name="elbow.cas.h5") """ @@ -494,7 +496,8 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non >>> from ansys.fluent.core import examples >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=RemoteFileTransferStrategy()) + >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) + >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") >>> solver_session.download(file_name="write_elbow.cas.h5", local_directory="") """ From 1eb601c12a980e54cd04a6378ce243baf7e2a2eb Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 17:25:23 +0530 Subject: [PATCH 04/13] feat: Integrate --- src/ansys/fluent/core/launcher/launcher.py | 4 ++++ src/ansys/fluent/core/session.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ansys/fluent/core/launcher/launcher.py b/src/ansys/fluent/core/launcher/launcher.py index d2e2d84791c2..d4973a389d16 100644 --- a/src/ansys/fluent/core/launcher/launcher.py +++ b/src/ansys/fluent/core/launcher/launcher.py @@ -359,6 +359,7 @@ def connect_to_fluent( server_info_file_name: str | None = None, password: str | None = None, start_watchdog: bool | None = None, + file_transfer_service: Any | None = None, ) -> Meshing | PureMeshing | Solver | SolverIcing: """Connect to an existing Fluent server instance. @@ -393,6 +394,8 @@ def connect_to_fluent( When ``cleanup_on_exit`` is True, ``start_watchdog`` defaults to True, which means an independent watchdog process is run to ensure that any local Fluent connections are properly closed (or terminated if frozen) when Python process ends. + file_transfer_service : optional + File transfer service. Uploads/downloads files to/from the server. Returns ------- @@ -408,6 +411,7 @@ def connect_to_fluent( port=port, password=password, cleanup_on_exit=cleanup_on_exit, + file_transfer_service=file_transfer_service, ) new_session = _get_running_session_mode(fluent_connection) diff --git a/src/ansys/fluent/core/session.py b/src/ansys/fluent/core/session.py index d668e7ba3c97..37b3a3cc4980 100644 --- a/src/ansys/fluent/core/session.py +++ b/src/ansys/fluent/core/session.py @@ -432,7 +432,7 @@ def upload(self, file_name: list[str] | str, remote_file_name: str | None = None if self._file_transfer_service: return self._file_transfer_service.upload(file_name, remote_file_name) - def download(self, file_name: str, local_directory: str | None = "."): + def download(self, file_name: str, local_directory: str | None = None): """Download a file from the server. Parameters From fef5ce0c0b20000629ac86be73c1d897565f5cde Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 18:02:32 +0530 Subject: [PATCH 05/13] feat: working fine --- src/ansys/fluent/core/launcher/launcher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/fluent/core/launcher/launcher.py b/src/ansys/fluent/core/launcher/launcher.py index d4973a389d16..1c601e16582c 100644 --- a/src/ansys/fluent/core/launcher/launcher.py +++ b/src/ansys/fluent/core/launcher/launcher.py @@ -411,7 +411,6 @@ def connect_to_fluent( port=port, password=password, cleanup_on_exit=cleanup_on_exit, - file_transfer_service=file_transfer_service, ) new_session = _get_running_session_mode(fluent_connection) @@ -428,4 +427,5 @@ def connect_to_fluent( fluent_connection=fluent_connection, scheme_eval=fluent_connection._connection_interface.scheme_eval, start_transcript=start_transcript, + file_transfer_service=file_transfer_service, ) From e25fd595dc6580eb88d80692a044a666dafda888 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 18:05:29 +0530 Subject: [PATCH 06/13] feat: update docstring --- .../core/utils/file_transfer_service.py | 39 ++----------------- 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/src/ansys/fluent/core/utils/file_transfer_service.py b/src/ansys/fluent/core/utils/file_transfer_service.py index 58bfa42a5e16..93d9a7b584e4 100644 --- a/src/ansys/fluent/core/utils/file_transfer_service.py +++ b/src/ansys/fluent/core/utils/file_transfer_service.py @@ -404,19 +404,6 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non class RemoteFileTransferStrategy(FileTransferStrategy): """Provides a file transfer service based on the `gRPC client `_ and `gRPC server `_. - - Examples - -------- - >>> import ansys.fluent.core as pyfluent - >>> from ansys.fluent.core import examples - >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy - >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) - >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") - >>> solver_session.file.read_case(file_name="elbow.cas.h5") - >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") - >>> solver_session.download(file_name="write_elbow.cas.h5", local_directory="") """ def __init__( @@ -456,17 +443,6 @@ def upload(self, file_name: list[str] | str, remote_file_name: str | None = None ------ FileNotFoundError If a file does not exist. - - Examples - -------- - >>> import ansys.fluent.core as pyfluent - >>> from ansys.fluent.core import examples - >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy - >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) - >>> solver_session.upload(file_name=case_file_name, remote_file_name="elbow.cas.h5") - >>> solver_session.file.read_case(file_name="elbow.cas.h5") """ files = _get_files(file_name) for file in files: @@ -489,17 +465,6 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non File name. local_directory : str, optional Local directory. The default is ``None``. - - Examples - -------- - >>> import ansys.fluent.core as pyfluent - >>> from ansys.fluent.core import examples - >>> from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy - >>> case_file_name = examples.download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow") - >>> file_service = RemoteFileTransferStrategy(server_ip="", server_port=) - >>> solver_session = pyfluent.launch_fluent(file_transfer_service=file_service) - >>> solver_session.file.write_case(file_name="write_elbow.cas.h5") - >>> solver_session.download(file_name="write_elbow.cas.h5", local_directory="") """ files = _get_files(file_name) for file in files: @@ -512,7 +477,9 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non self._client.download_file( remote_filename=os.path.basename(file), local_filename=( - local_directory if local_directory else os.path.basename(file) + local_directory + if os.path.isdir(local_directory) + else os.path.basename(file) ), ) From 00cc8aef3163f5d0f4531a68e591e347b953dbcf Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 19:57:29 +0530 Subject: [PATCH 07/13] feat: add docs --- .../session/launching_ansys_fluent.rst | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index b03176301b93..cf46a486e875 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -380,3 +380,76 @@ Connecting to a Fluent container running inside Linux from a Windows host >>> import ansys.fluent.core as pyfluent >>> solver = pyfluent.connect_to_fluent(ip="10.18.19.151", port=44383, password="hbsosnni") + + +Connecting to Fluent on Windows from a Linux or WSL Host +-------------------------------------------------------- + +This guide describes how to connect to an ANSYS Fluent instance running on a Windows machine from a Linux or WSL host. It also includes steps to enable remote file transfer. + +A. **Set Up Fluent and File Transfer Server on Windows** + +1. **Launch Fluent** + + Open a command prompt and run: + + .. code:: console + + ANSYS Inc\v252\fluent\ntbin\win64\fluent.exe 3ddp -sifile=server_info.txt + type server_info.txt + + Example output: + ``10.18.44.179:51344``, ``5scj6c8l`` + +2. **Retrieve Connection Details** + + Get the IP address, port, and password from the `server_info.txt` file. + Example: + - IP: `10.18.44.179` + - Port: `51344` + - Password: `5scj6c8l` + +3. **Set Working Directory** + + Change to the Fluent installation directory: + + .. code:: console + + cd "ANSYS Inc\v252\fluent\ntbin\win64" + +4. **Start the File Transfer Server** + + Launch the container: + + .. code:: console + + docker run -p 50000:50000 -v %cd%:/home/container/workdir ghcr.io/ansys/tools-filetransfer:latest + +5. **Allow Inbound TCP Connections** + + Configure the Windows Firewall: + + - Open: **Control Panel > Windows Defender Firewall > Advanced Settings > Inbound Rules** + - Right-click **Inbound Rules**, select **New Rule** + - Choose **Port**, click **Next** + - Keep **TCP** selected + - Enter the ports in **Specific local ports**: `51344, 50000` then click **Next** + - Select **Allow the connection**, click **Next** + - Leave all profiles (Domain, Private, Public) checked, click **Next** + - Name the rule: `Inbound TCP for Fluent` + +B. **Connect from Linux or WSL Host** + +Run the following Python code to connect to Fluent and transfer files: + +.. code:: python + + from ansys.fluent.core import connect_to_fluent + from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy + + file_service = RemoteFileTransferStrategy("10.18.44.179", 50000) + solver = connect_to_fluent(ip="10.18.44.179", port=51344, password="5scj6c8l", file_transfer_service=file_service) + + solver.file.read_case(file_name="/home/user_name/mixing_elbow.cas.h5") + solver.file.write_case(file_name="elbow_remote.cas.h5") + From c48cd120035dadee5784a4f7445b32bc9fc13e86 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 20:19:18 +0530 Subject: [PATCH 08/13] feat: add docs 1 --- .../session/launching_ansys_fluent.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index cf46a486e875..7f8b58757c12 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -385,7 +385,12 @@ Connecting to a Fluent container running inside Linux from a Windows host Connecting to Fluent on Windows from a Linux or WSL Host -------------------------------------------------------- -This guide describes how to connect to an ANSYS Fluent instance running on a Windows machine from a Linux or WSL host. It also includes steps to enable remote file transfer. +This guide describes how to connect to an ANSYS Fluent instance running on a Windows machine from a Linux or WSL host. +It also includes steps to enable remote file transfer. + + Prerequisites: + + - `Docker `_ A. **Set Up Fluent and File Transfer Server on Windows** @@ -405,9 +410,9 @@ A. **Set Up Fluent and File Transfer Server on Windows** Get the IP address, port, and password from the `server_info.txt` file. Example: - - IP: `10.18.44.179` - - Port: `51344` - - Password: `5scj6c8l` + - IP: ``10.18.44.179`` + - Port: ``51344`` + - Password: ``5scj6c8l`` 3. **Set Working Directory** @@ -438,6 +443,8 @@ A. **Set Up Fluent and File Transfer Server on Windows** - Leave all profiles (Domain, Private, Public) checked, click **Next** - Name the rule: `Inbound TCP for Fluent` +Note: Delete the added inbound rule after the Fluent session is closed. + B. **Connect from Linux or WSL Host** Run the following Python code to connect to Fluent and transfer files: @@ -450,6 +457,9 @@ Run the following Python code to connect to Fluent and transfer files: file_service = RemoteFileTransferStrategy("10.18.44.179", 50000) solver = connect_to_fluent(ip="10.18.44.179", port=51344, password="5scj6c8l", file_transfer_service=file_service) + # `mixing_elbow.cas.h5` will be uploaded to remote Fluent working directory solver.file.read_case(file_name="/home/user_name/mixing_elbow.cas.h5") + + # `elbow_remote.cas.h5` will be downloaded to local working directory solver.file.write_case(file_name="elbow_remote.cas.h5") From cd5c2df60a93925fef27f974ed8b6f21c230c543 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 20:53:45 +0530 Subject: [PATCH 09/13] feat: refactor --- src/ansys/fluent/core/utils/file_transfer_service.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/ansys/fluent/core/utils/file_transfer_service.py b/src/ansys/fluent/core/utils/file_transfer_service.py index 93d9a7b584e4..7eaf100119c4 100644 --- a/src/ansys/fluent/core/utils/file_transfer_service.py +++ b/src/ansys/fluent/core/utils/file_transfer_service.py @@ -477,9 +477,7 @@ def download(self, file_name: list[str] | str, local_directory: str | None = Non self._client.download_file( remote_filename=os.path.basename(file), local_filename=( - local_directory - if os.path.isdir(local_directory) - else os.path.basename(file) + local_directory if local_directory else os.path.basename(file) ), ) From 049b1e04a9d87a17241d7c7ec248fdd7621db3ea Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 21:12:39 +0530 Subject: [PATCH 10/13] feat: docs 2 --- .../session/launching_ansys_fluent.rst | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index 7f8b58757c12..3468c6bfa478 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -382,7 +382,7 @@ Connecting to a Fluent container running inside Linux from a Windows host >>> solver = pyfluent.connect_to_fluent(ip="10.18.19.151", port=44383, password="hbsosnni") -Connecting to Fluent on Windows from a Linux or WSL Host +Connecting to Fluent on Windows from a Linux or WSL host -------------------------------------------------------- This guide describes how to connect to an ANSYS Fluent instance running on a Windows machine from a Linux or WSL host. @@ -391,6 +391,7 @@ It also includes steps to enable remote file transfer. Prerequisites: - `Docker `_ + - `Build file transfer server `_ A. **Set Up Fluent and File Transfer Server on Windows** @@ -428,7 +429,7 @@ A. **Set Up Fluent and File Transfer Server on Windows** .. code:: console - docker run -p 50000:50000 -v %cd%:/home/container/workdir ghcr.io/ansys/tools-filetransfer:latest + docker run -p 50000:50000 -v %cd%:/home/container/workdir filetransfer-tool-server 5. **Allow Inbound TCP Connections** @@ -463,3 +464,71 @@ Run the following Python code to connect to Fluent and transfer files: # `elbow_remote.cas.h5` will be downloaded to local working directory solver.file.write_case(file_name="elbow_remote.cas.h5") + +Connecting to Fluent on Linux or WSL from a Windows host +-------------------------------------------------------- + +This guide describes how to connect to an ANSYS Fluent instance running on a Linux or WSL machine from a Windows host. +It also includes steps to enable remote file transfer. + + Prerequisites: + + - `Docker `_ + - `Build file transfer server `_ + +A. **Set Up Fluent and File Transfer Server on Linux or WSL** + +1. **Launch Fluent** + + Open a shell and run: + + .. code:: console + + ansys_inc/v252/fluent/bin/fluent 3ddp -sifile=server_info.txt + cat server_info.txt + + Example output: + ``10.18.19.150:41429``, ``u5s3iivh`` + +2. **Retrieve Connection Details** + + Get the IP address, port, and password from the `server_info.txt` file. + Example: + - IP: ``10.18.19.150`` + - Port: ``41429`` + - Password: ``u5s3iivh`` + +3. **Set Working Directory** + + Change to the Fluent installation directory: + + .. code:: console + + cd "ansys_inc/v252/fluent/bin/fluent" + +4. **Start the File Transfer Server** + + Launch the container: + + .. code:: console + + docker run -p 50000:50000 -v `pwd`:/home/container/workdir -u `id -u`:`id -g` filetransfer-tool-server + +B. **Connect from Windows Host** + +Run the following Python code to connect to Fluent and transfer files: + +.. code:: python + + from ansys.fluent.core import connect_to_fluent + from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy + + file_service = RemoteFileTransferStrategy("10.18.19.150", 50000) + solver = connect_to_fluent(ip="10.18.19.150", port=41429, password="u5s3iivh", file_transfer_service=file_service) + + # `mixing_elbow.cas.h5` will be uploaded to remote Fluent working directory + solver.file.read_case(file_name="/home/user_name/mixing_elbow.cas.h5") + + # `elbow_remote.cas.h5` will be downloaded to local working directory + solver.file.write_case(file_name="elbow_remote.cas.h5") + From dec37a2fb175b4a7f2b1e4666e506dc7921520be Mon Sep 17 00:00:00 2001 From: hpohekar Date: Fri, 23 May 2025 21:20:13 +0530 Subject: [PATCH 11/13] feat: docs 3 --- doc/source/user_guide/session/launching_ansys_fluent.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index 3468c6bfa478..7571e6dc46fb 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -527,7 +527,7 @@ Run the following Python code to connect to Fluent and transfer files: solver = connect_to_fluent(ip="10.18.19.150", port=41429, password="u5s3iivh", file_transfer_service=file_service) # `mixing_elbow.cas.h5` will be uploaded to remote Fluent working directory - solver.file.read_case(file_name="/home/user_name/mixing_elbow.cas.h5") + solver.file.read_case(file_name="D:\path_to_file\mixing_elbow.cas.h5") # `elbow_remote.cas.h5` will be downloaded to local working directory solver.file.write_case(file_name="elbow_remote.cas.h5") From d7c0a3ba7d067959d9523a7ac36d23eb79f86349 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Mon, 26 May 2025 09:49:31 +0530 Subject: [PATCH 12/13] feat: docs 4 --- doc/source/user_guide/session/launching_ansys_fluent.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index 7571e6dc46fb..f5da98d70a30 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -417,11 +417,11 @@ A. **Set Up Fluent and File Transfer Server on Windows** 3. **Set Working Directory** - Change to the Fluent installation directory: + Change to the Fluent's working directory: .. code:: console - cd "ANSYS Inc\v252\fluent\ntbin\win64" + cd "" 4. **Start the File Transfer Server** @@ -500,11 +500,11 @@ A. **Set Up Fluent and File Transfer Server on Linux or WSL** 3. **Set Working Directory** - Change to the Fluent installation directory: + Change to the Fluent's working directory: .. code:: console - cd "ansys_inc/v252/fluent/bin/fluent" + cd "" 4. **Start the File Transfer Server** From 4e46dc30e5dedca4273c17e7db87eb0bcd9a09d6 Mon Sep 17 00:00:00 2001 From: hpohekar Date: Mon, 26 May 2025 17:40:22 +0530 Subject: [PATCH 13/13] feat: docs 4 --- .../session/launching_ansys_fluent.rst | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/doc/source/user_guide/session/launching_ansys_fluent.rst b/doc/source/user_guide/session/launching_ansys_fluent.rst index f5da98d70a30..75071c8725e4 100644 --- a/doc/source/user_guide/session/launching_ansys_fluent.rst +++ b/doc/source/user_guide/session/launching_ansys_fluent.rst @@ -415,23 +415,15 @@ A. **Set Up Fluent and File Transfer Server on Windows** - Port: ``51344`` - Password: ``5scj6c8l`` -3. **Set Working Directory** +3. **Start the File Transfer Server** - Change to the Fluent's working directory: - - .. code:: console - - cd "" - -4. **Start the File Transfer Server** - - Launch the container: + From Fluent's working directory, start the container for file-transfer server. .. code:: console docker run -p 50000:50000 -v %cd%:/home/container/workdir filetransfer-tool-server -5. **Allow Inbound TCP Connections** +4. **Allow Inbound TCP Connections** Configure the Windows Firewall: @@ -498,17 +490,9 @@ A. **Set Up Fluent and File Transfer Server on Linux or WSL** - Port: ``41429`` - Password: ``u5s3iivh`` -3. **Set Working Directory** - - Change to the Fluent's working directory: - - .. code:: console - - cd "" - -4. **Start the File Transfer Server** +3. **Start the File Transfer Server** - Launch the container: + From Fluent's working directory, start the container for file-transfer server. .. code:: console