PyOptiSLang is a Python wrapper for Ansys optiSLang. It supports Pythonic
access to Ansys optiSLang to be able to communicate with Ansys optiSLang directly from Python.
The latest ansys-optislang
package provides these capabilities:
- Starting and managing local instances of Ansys optiSLang
- Remote connections to Ansys optiSLang instances via TCP/IP
- Create new Ansys optiSLang project
- Open existing Ansys optiSLang project
- Control Ansys optiSLang project execution
- Save Ansys optiSLang project
- Execute classic Ansys optiSLang Python API script on backend side
- Evaluate designs on root project level
- Create and connect nodes
For comprehensive information on PyOptiSLang, see the latest release documentation. On the PyOptiSLang Issues page, you can create issues to submit questions, report bugs, and request new features. This is the best place to post questions and code.
The ansys-optislang-core
package supports Python 3.9 through 3.13 on
Windows and Linux. Three modes of installation are available:
- User installation
- Developer installation
- Offline installation
For either a developer or offline installation, consider using a virtual environment.
Install the latest release from PyPi with this command:
pip install ansys-optislang-core
Alternatively, install the latest PyOptiSLang GitHub package with this command:
pip install git+https://github.com/ansys/pyoptislang.git
If you plan on doing local development with GitHub, clone and install PyOptiSLang with this code:
git clone https://github.com/ansys/pyoptislang.git cd pyoptislang pip install -e .
A developer installation allows you to edit ansys-optislang-core
files locally. Any changes that you make are reflected in your setup
after restarting the Python kernel.
Using a wheelhouse can be helpful if you work for a company that restricts access to external networks. From the Releases page in the PyOptiSLang repository, you can find the wheelhouses for a particular release in its assets and download the wheelhouse corresponding to your setup.
You can then install PyOptiSLang and all of its dependencies from one single entry point that can be shared internally, which eases the security review of the PyOptiSLang package content.
For example, on Linux with Python 3.9, unzip the wheelhouse and install PyOptiSLang with code like this:
unzip PyOptiSLang-v0.1.0-wheelhouse-Linux-3.9.zip wheelhouse
pip install ansys-optislang-core -f wheelhouse --no-index --upgrade --ignore-installed
If you're on Windows with Python 3.9, unzip the wheelhouse to a wheelhouse directory and
then install using the same pip
command as in the preceding Linux code example.
You must have a local licensed copy or a remote instance of optiSLang installed. The first supported version is 2023 R1.
Using the Optislang
class, you can either launch optiSLang locally or connect to a
remote optiSLang instance.
For launching optiSLang locally, both the host
and port
parameters in the Optislang
class must be set to None
, which are their defaults. Other parameters can optionally
be specified.
from ansys.optislang.core import Optislang
osl = Optislang()
osl.dispose()
For remote connection, it is assumed that an optiSLang instance is already running on
a remote (or local) host as a server. In this case, you must specify the host
and port
parameters. Parameters related to the execution of a new optiSLang instance are ignored.
from ansys.optislang.core import Optislang
host = "127.0.0.1"
port = 5310
osl = Optislang(host=host, port=port)
osl.dispose()
This code shows how to launch optiSLang locally, open and run a Python script file, save the results to a new project, and then close the connection:
from ansys.optislang.core import Optislang
osl = Optislang()
file_path = r"C:\Users\Username\my_scripts\myscript.py"
osl.application.project.run_python_file(path=file_path)
osl.application.save_copy("MyNewProject.opf")
osl.dispose()
PyOptiSLang is licensed under the MIT license.
PyOptiSLang makes no commercial claim over Ansys whatsoever. This library extends the functionality of Ansys optiSLang by adding a Python interface to optiSLang without changing the core behavior or license of the original software. The use of the interactive control of PyOptiSLang requires a legally licensed local copy of optiSLang.
For more information on optiSLang, see the Ansys optiSLang page on the Ansys website.