Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
a2b21de
New Maxwell2D-Lumerical Workflow for an Ion Trap Application. Require…
tizianrot Jun 23, 2025
3c71ca9
New Maxwell2D-Lumerical Workflow for an Ion Trap Application. Require…
tizianrot Jun 23, 2025
2e578a7
New Maxwell2D-Lumerical Workflow for an Ion Trap Application. Require…
tizianrot Jun 24, 2025
cb0dd29
New Maxwell2D-Lumerical Workflow for an Ion Trap Application. Require…
tizianrot Jun 24, 2025
c392782
New Maxwell2D-Lumerical Workflow for an Ion Trap Application. Require…
tizianrot Jun 24, 2025
e6b6d5c
fix: code-style issues
RobPasMue Jun 24, 2025
98060af
Merge branch 'main' into pyAEDTM2D_Lum
SMoraisAnsys Oct 9, 2025
4d0c786
Merge branch 'main' into pyAEDTM2D_Lum
SMoraisAnsys Oct 16, 2025
0edb664
chore: remove unwanted files
SMoraisAnsys Oct 16, 2025
2a2f6de
ci: prepare draft of workflow
SMoraisAnsys Oct 16, 2025
1f89895
docs: add section to fill in README
SMoraisAnsys Oct 16, 2025
8b2ec39
docs: add doc configuration
SMoraisAnsys Oct 16, 2025
7dca4a7
chore: update requirements and extend to 25.2
SMoraisAnsys Oct 16, 2025
b49becc
refactor: rename file and update content
SMoraisAnsys Oct 16, 2025
1c990c2
fix: wrong name of file
SMoraisAnsys Oct 22, 2025
6897616
New M2D-Lumerical Workflow for an Ion Trap Application. Requires the …
tizianrot Nov 20, 2025
c42a75c
New M2D-Lumerical Workflow for an Ion Trap Application. Requires the …
tizianrot Nov 25, 2025
3a3e6a1
Merge branch 'main' into pyAEDTM2D_Lum
SMoraisAnsys Nov 27, 2025
f9327c5
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Nov 27, 2025
8f76508
chore: fix typo in README
SMoraisAnsys Dec 1, 2025
2ade4ce
New M2D-Lumerical Workflow for an Ion Trap Application. Requires the …
tizianrot Dec 2, 2025
f9e8565
Merge remote-tracking branch 'origin/pyAEDTM2D_Lum' into pyAEDTM2D_Lum
tizianrot Dec 2, 2025
dedcc9a
Merge branch 'pyAEDTM2D_Lum' of github.com:ansys/pyansys-workflows in…
SMoraisAnsys Dec 4, 2025
b558665
refactor: clean up example
SMoraisAnsys Dec 4, 2025
64d100d
chore: update dependencies
SMoraisAnsys Dec 4, 2025
469bd48
Maxwell-2D updated workflow, run with PyLumerical and reformatted to …
tizianrot Dec 5, 2025
f8cd0b1
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Dec 5, 2025
7194cbd
ci: pin version to 25R2 and cleanup
SMoraisAnsys Dec 8, 2025
59b8f2f
docs: add missing ref in examples.rst
SMoraisAnsys Dec 8, 2025
bf66277
wip: temporary example removal for testing
SMoraisAnsys Dec 8, 2025
5fba8ce
Update .github/workflows/maxwell2d-lumerical.yml
SMoraisAnsys Dec 9, 2025
0f3b963
New M2D-Lumerical Workflow for an Ion Trap Application. Requires the …
tizianrot Dec 10, 2025
fdd9c11
Merge branch 'main' into pyAEDTM2D_Lum
SMoraisAnsys Jan 12, 2026
2238372
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Jan 12, 2026
ac3475b
refactor: use non graphical mode
SMoraisAnsys Jan 26, 2026
ae46b85
wip: build doc
SMoraisAnsys Jan 26, 2026
2e3436a
refactor: add docstring to example
SMoraisAnsys Jan 26, 2026
24f3fbd
wip: fix doc build
SMoraisAnsys Jan 27, 2026
d94f4d8
ci: add example to doc build
SMoraisAnsys Jan 27, 2026
947b1b0
ci: align changes
SMoraisAnsys Jan 27, 2026
4b0ae0a
Merge branch 'main' into pyAEDTM2D_Lum
MaxJPRey Jan 27, 2026
9a5361c
docs: update sections content and titles
SMoraisAnsys Jan 28, 2026
c665ffc
docs: revert to standard doc build
SMoraisAnsys Jan 28, 2026
0048ca3
Readme.md modified
tizianrot Jan 28, 2026
3971e1c
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Jan 28, 2026
802715f
Readme.md modified again
tizianrot Jan 28, 2026
44da614
Merge remote-tracking branch 'origin/pyAEDTM2D_Lum' into pyAEDTM2D_Lum
tizianrot Jan 28, 2026
420b7b7
Readme.md modified again
tizianrot Jan 28, 2026
020ea0a
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Jan 28, 2026
9d23b98
Update README.md
SMoraisAnsys Jan 29, 2026
46c394e
CI: Update build doc logic to recent changes
SMoraisAnsys Jan 29, 2026
7f4db3d
docs: use correct URL
SMoraisAnsys Jan 29, 2026
a7b8ee1
docs: sort examples correctly
SMoraisAnsys Jan 29, 2026
70d446a
docs: fix format issues
SMoraisAnsys Jan 29, 2026
01dc0e0
Update maxwell2d-lumerical/Readata.lsf
tizianrot Feb 4, 2026
ce9cfbe
Merge branch 'main' into pyAEDTM2D_Lum
MaxJPRey Feb 4, 2026
e8e0a5b
Update README.md
tizianrot Feb 4, 2026
d7ed5a8
Update README.md
tizianrot Feb 4, 2026
aea57d3
Update README.md
tizianrot Feb 4, 2026
ce440e1
Update README.md
tizianrot Feb 4, 2026
479f21b
Update README.md
tizianrot Feb 4, 2026
a0b4abc
Update README.md
tizianrot Feb 4, 2026
6c1fa33
Update README.md
tizianrot Feb 4, 2026
9920a9a
Update README.md
tizianrot Feb 4, 2026
22f7ede
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
034ce9f
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
ac93756
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
c46eadb
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
451bbe2
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
cb2eb80
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
bc5ecfd
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
845e816
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
d58db12
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
9a0f47c
Update maxwell2d-lumerical/GC_farfield.lsf
tizianrot Feb 4, 2026
1371c56
Update maxwell2d-lumerical/GC_Opt.lsf
tizianrot Feb 4, 2026
05b1935
Update maxwell2d-lumerical/GC_Opt.lsf
tizianrot Feb 4, 2026
90b519b
Update maxwell2d-lumerical/README.rst
tizianrot Feb 4, 2026
98fdbc1
Update maxwell2d-lumerical/README.rst
tizianrot Feb 4, 2026
2c0adfa
Update maxwell2d-lumerical/README.rst
tizianrot Feb 4, 2026
6676a51
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
f9af63f
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
5002d62
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
ea876fa
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
ef403cd
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
51a9c12
Update maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py
tizianrot Feb 4, 2026
f4bfa6f
Modifications in the commenst after Review from @PipKat
tizianrot Feb 4, 2026
727ce44
Update maxwell2d-lumerical/README.rst
SMoraisAnsys Feb 9, 2026
6ddf3f4
Merge branch 'main' into pyAEDTM2D_Lum
SMoraisAnsys Feb 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ jobs:
with:
doc-build: true

maxwell2d-lumerical:
uses: ./.github/workflows/maxwell2d-lumerical.yml
secrets: inherit
with:
doc-build: true

compile-docs:
runs-on: ubuntu-latest
# TODO: enable when issues in PyMechanical are resolved
Expand Down Expand Up @@ -106,6 +112,12 @@ jobs:
name: mapdl-dpf-docs
path: doc/

- name: Download artifacts for maxwell2d-lumerical
uses: actions/download-artifact@v7
Comment thread
SMoraisAnsys marked this conversation as resolved.
with:
name: maxwell2d-lumerical-docs
path: doc/

- name: Build the documentation
run: |
cd doc
Expand Down
101 changes: 101 additions & 0 deletions .github/workflows/maxwell2d-lumerical.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Maxwell2D Lumerical Workflow

on:
workflow_dispatch:
inputs:
doc-build:
required: false
default: false
type: boolean
description: 'Whether to build the documentation'
workflow_call:
inputs:
doc-build:
required: false
default: false
type: boolean
description: 'Whether to build the documentation'
push:
branches:
- main
pull_request:
paths:
- 'maxwell2d-lumerical/**'

env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER )}}
ANSYS_RELEASE_FOR_DOCS: 25.2
ANSYSEM_ROOT252: 'C:\Program Files\ANSYS Inc\v252\AnsysEM'
MAIN_PYTHON_VERSION: '3.12'
ON_CI: true

jobs:

is-only-docs-required:
uses: ./.github/workflows/check-docs-required.yml
with:
doc-build: ${{ inputs.doc-build || false }}

maxwell2d-lumerical:
name: Maxwell2D Lumerical
runs-on: [self-hosted, Windows, pyansys-workflows]
needs: is-only-docs-required
strategy:
fail-fast: false
matrix:
ansys-release: ${{ needs.is-only-docs-required.outputs.only-docs == 'true' && fromJSON('[25.2]') || fromJSON('[25.2]') }}
steps:
- name: Checkout code
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.2.2
with:
sparse-checkout: |
maxwell2d-lumerical
doc

- name: Set up Python ${{ env.MAIN_PYTHON_VERSION }}
uses: actions/setup-python@2e3e4b15a884dc73a63f962bff250a855150a234 # v5.6.0
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}

- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m venv .venv
source .venv/Scripts/activate
pip install -r maxwell2d-lumerical/requirements_${{ matrix.ansys-release }}.txt

- name: Run the workflow script
env:
AEDT_VERSION: ${{ matrix.ansys-release }}
shell: bash
run: |
source .venv/Scripts/activate
python maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py

- name: (DOCS) Build the documentation (only on ${{ env.ANSYS_RELEASE_FOR_DOCS}})
if: needs.is-only-docs-required.outputs.only-docs == 'true' && matrix.ansys-release == env.ANSYS_RELEASE_FOR_DOCS
env:
BUILD_DOCS_SCRIPT: 'maxwell2d-lumerical/wf_ml_01_ion_trap_modelling.py'
shell: bash
run: |
source .venv/Scripts/activate
cd doc
pip install -r requirements.txt
./make.bat html

- name: (DOCS) Adapt the documentation paths
if: needs.is-only-docs-required.outputs.only-docs == 'true' && matrix.ansys-release == env.ANSYS_RELEASE_FOR_DOCS
shell: bash
run: |
find doc/_build -type f -exec sed -i 's|C:\\Users\\ansys\\actions-runner\\_work\\pyansys-workflows\\pyansys-workflows\\doc\\source\\examples\\maxwell2d-lumerical\\images\\|./images/|g' {} +

- name: (DOCS) Upload docs artifacts
if: needs.is-only-docs-required.outputs.only-docs == 'true' && matrix.ansys-release == env.ANSYS_RELEASE_FOR_DOCS
uses: actions/upload-artifact@v4
with:
name: maxwell2d-lumerical-docs
path: |
doc/_build/
doc/source/examples/maxwell2d-lumerical/
overwrite: true
2 changes: 1 addition & 1 deletion .github/workflows/speos-optislang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
BUILD_DOCS_SCRIPT: 'speos-optislang/wf_so_01_light_guide_robustness_study.py'
shell: bash
run: |
.venv/Scripts/activate
source .venv/Scripts/activate
Comment thread
SMoraisAnsys marked this conversation as resolved.
cd doc
pip install -r requirements.txt
./make.bat html
Expand Down
29 changes: 20 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,26 +26,37 @@ for every part of the simulation process. The available workflows are:
- For geometry: Ansys SpaceClaim / Ansys Discovery / Ansys Geometry Service
- For meshing: Ansys Fluent Meshing
- For simulation: Ansys Fluent Solver
- [Geometry, mechanical and post-processing](https://github.com/ansys/pyansys-workflows/tree/main/geometry-mechanical-dpf): this workflow demonstrates how to

- [Geometry, mechanical and postprocessing](https://github.com/ansys/pyansys-workflows/tree/main/geometry-mechanical-dpf): this workflow demonstrates how to
create a printed circuit board (PCB) geometry, mesh, run steady state and transient thermal analysis,
and post-process using DPF. The geometry generated is a simple PCB with multiple chips.
and postprocess using DPF. The geometry generated is a simple PCB with multiple chips.
The exported CAD file (PMDB format) is then imported inside Ansys Mechanical
to run a steady-state thermal analysis followed by transient analysis.
All temperature results in different chips are displayed using DPF. The involved Ansys products are:
- For geometry: Ansys SpaceClaim / Ansys Discovery / Ansys Geometry Service
- For simulation: Ansys Mechanical
- For post-procesing: Ansys Data Processing Framework
- [Fluent and mechanical analysis](https://github.com/ansys/pyansys-workflows/tree/main/fluent-mechanical): this workflow demonstrates how to perform a Conjugate Heat Transfer (CHT) analysis for an exhaust manifold to simulate heat transfer between solid and fluid domains, calculate heat transfer coefficients (HTCs) and temperature distribution, and export results for thermo-mechanical analysis. The thermo-mechanical assessment is then performed to evaluate the exhaust manifold's performance under thermal cycling, aiding in design optimization for durability
The involved Ansys products are:
- For postprocesing: Ansys Data Processing Framework

- [Fluent and mechanical analysis](https://github.com/ansys/pyansys-workflows/tree/main/fluent-mechanical): this workflow demonstrates how to perform a Conjugate Heat Transfer (CHT) analysis for an exhaust manifold to simulate heat transfer between solid and fluid domains, calculate heat transfer coefficients (HTCs) and temperature distribution, and export results for thermo-mechanical analysis. The workflow then performs thermo-mechanical assessment to evaluate the exhaust manifold's performance under thermal cycling, aiding in design optimization for durability
These Ansys products are used:
- For fluids analysis: Ansys Fluent
- For thermal analysis: Ansys Mechanical
- [Speos and optiSLang robustness analysis](https://github.com/ansys/pyansys-workflows/tree/main/speos-optislang): this workflow performs a robustness
study to evaluate how variations in LED source power and position influence lightguide performance using PySpeos and PyOptiSLang. The analysis quantifies performance
through key metrics such as RMS contrast, average luminance, and the number of failed regulations.
The involved Ansys products are:

- [Speos and optiSLang robustness analysis](https://github.com/ansys/pyansys-workflows/tree/main/speos-optislang): this workflow performs a robustness study to evaluate how variations in LED source power and position influence lightguide performance. The analysis quantifies performance through key metrics such as RMS contrast, average luminance, and the number of failed regulations.

These Ansys products are used:
- For optical analysis: Ansys Speos
- For robustness analysis: Ansys optiSLang

- [Maxwell2D and Lumerical ion trap modelling](https://github.com/ansys/pyansys-workflows/tree/main/maxwell2d-lumerical): this workflow
is fully automated and models a chip-based ion trap that incorporates optical antennas with surface electrodes.
Ansys Maxwell computes the electrostatic response of a three-rail surface electrode design, while Ansys Lumerical retrieves the data
from Maxwell to optimize the grating coupler design that operates as an optical antenna for tightly focused laser beams.
For additional information, see this article:
https://optics.ansys.com/hc/en-us/articles/20715978394131-Integrated-Ion-Traps-using-Surface-Electrodes-and-Grating-Couplers
In this article is also shown how multiple grating couplers can provide a platform for more complex field distributions and optical force calculation
over various nano-objects.

## How to run the workflows

All workflows are structured in the same way, with a Python script for each part of the simulation process.
Expand Down
2 changes: 2 additions & 0 deletions doc/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ def examples_gallery_dirs_and_filename_pattern():
"../../geometry-mesh",
"../../geometry-mesh-fluent",
"../../speos-optislang",
"../../maxwell2d-lumerical",
]
gallery_dirs = [
"examples/fluent-mechanical",
Expand All @@ -153,6 +154,7 @@ def examples_gallery_dirs_and_filename_pattern():
"examples/geometry-mesh",
"examples/geometry-mesh-fluent",
"examples/speos-optislang",
"examples/maxwell2d-lumerical",
]

return examples_dirs, gallery_dirs, filename_pattern
Expand Down
8 changes: 7 additions & 1 deletion doc/source/examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ Workflow examples
examples/geometry-mesh-fluent/index
examples/mapdl-dpf/index
examples/speos-optislang/index
examples/maxwell2d-lumerical/index
.. TODO: enable when issues in PyMechanical are resolved
examples/geometry-mechanical-dpf/index


.. include:: examples/fluent-mechanical/index.rst
:start-line: 1
:end-before: .. toctree
Expand All @@ -36,6 +38,10 @@ Workflow examples
:start-line: 1
:end-before: .. toctree

.. include:: examples/maxwell2d-lumerical/index.rst
:start-line: 1
:end-before: .. toctree

.. include:: examples/speos-optislang/index.rst
:start-line: 1
:end-before: .. toctree
:end-before: .. toctree
1 change: 1 addition & 0 deletions maxwell2d-lumerical/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
outputs
Loading
Loading