You can launch PyAEDT on a remote machine if these conditions are met:
PyAEDT is installed on client and server machines. (There is no need to have AEDT installed on the client machine.)
The same Python version is used on the client and server machines. (CPython 3.7+ or IronPython is embedded in the AEDT installation.)
gRPC connection in AEDT 2022 R2 and later#
In AEDT 2022 R2 and later, PyAEDT fully supports the gRPC API (except for EDB):
# Launch the latest installed version of AEDT in graphical mode. from pyaedt import Hfss from pyaedt import settings settings.use_grpc_api=True hfss = Hfss(machine="fullmachinename", port=portnumber)
machine argument is provided and the machine is a remote machine, AEDT
must be up and running on the remote server listening on the specified port
To start AEDT in listening mode on the remote machine:
path/to/ANSYSEM/v222/Win64/ansysedt.exe -grpcsrv portnumber #windows path/to/ANSYSEM/v222/Lin64/ansysedt -grpcsrv portnumber #linux
If the connection is local, the
machine argument must be left empty. PyAEDT then
starts the AEDT session automatically. Machine and port arguments are available to
all applications except EDB.
PyAEDT remote service manager#
PyAEDT includes a service manager that can be run on the server machine and can be launched on-demand in AEDT sessions and act as a file manager. You can make a remote application call on a CPython server or any Windows client machine in AEDT 2022 R2 and later.
On a CPython Server run the
pyaedt_service_manager service that listens on port 17878
for incoming requests of connections from clients. The port is configurable.
Python 3.7+ Virtual Environment.
pyaedt > 0.6.0
On Linux, in addition to the preceding requirements, these environments are needed:
- You can use the CPython version in the AEDT installation folder if you first
add the Python library folder to the
LD_LIBRARY_PATH environment variable.
- You can use the Python 3.7 or later version that is installed.
- You can export
- You can export
On the server, the
pyaedt_service_manager service listen for incoming connections:
# Launch PyAEDT remote server on CPython from pyaedt.common_rpc import pyaedt_service_manager pyaedt_service_manager()
On any client machine, the user must establish the connection as shown in following example. AEDT can be launched directly while creating the session or after the connection is established.
from pyaedt.common_rpc import create_session # User can establish the connection and start a new AEDT session cl1 = create_session("server_name", launch_aedt_on_server=True, aedt_port=17880, non_graphical=True) # Optionally AEDT can be launched after the connection is established cl2 = create_session("server_name", launch_aedt_on_server=False) cl2.aedt(port=17880, non_graphical=True)
Once AEDT is started then user can connect an application to it.
hfss = Hfss(machine=cl1.server_name, port=cl1.aedt_port) # your code here
The client can be used also to upload or download files from the server.
cl1.filemanager.upload(local_path, remote_path) file_content = cl1.open_file(remote_file)