Skip to content
Python based continuous adjoint optimization wrapper for Lumerical
Python
Branch: release
Clone or download

Latest commit

areid-van Added topology optimization and enhancements
Added a major new feature to perform topology optimization. This
supports 2D optimization and 3D optimization with an extruded quasi-2D
layer. The topology optimization is constrained to binary materials
and respects a minimum feature size which the user can control.

Added a number of performance enhancements to the shape based
optimization to support grating coupler devices with large numbers of
parameters and using the high presision volume averrage mesh refnement
strategy.

Example files have been added and updated to demonstrate the new
features included in this commit.

This commit corresponds to the version shipped with Lumerical FDTD 2019b
R2
Latest commit c350a1a Jul 2, 2019

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
QA Added topology optimization and enhancements Jul 3, 2019
docs Updated python version in docs May 12, 2019
examples Added topology optimization and enhancements Jul 3, 2019
lumopt Added topology optimization and enhancements Jul 3, 2019
LICENSE Squashed commit of a number of enhancements added by Lumerical: Feb 15, 2019
README.md Python 3 update in readme May 12, 2019
__init__.py First commit on orphan release branch Sep 13, 2018
requirements.txt Squashed commit of a number of enhancements added by Lumerical: Feb 15, 2019
setup.py First commit on orphan release branch Sep 13, 2018

README.md

Continuous adjoint optimization wrapper for Lumerical

Introduction

This is a continuous adjoint opimtization wrapper for Lumerical, using Python as the main user interface. It is released under an MIT license. It is still work in progress and any contribution will be very welcome! New features to come out soon, and make it even easier to use (hopefully)!

If you use this tool in any published work, please cite https://www.osapublishing.org/oe/abstract.cfm?uri=oe-21-18-21693 and give a link to this repo. Thanks!

Tutorials, Examples, and Documentation

It is all here: https://lumopt.readthedocs.io/en/latest/

Install

Make sure you have Python 3 and the latest version of Lumerical installed (it won't work correctly with older versions), and that lumapi (the python api) works.

cd your/install/folder/
git clone https://github.com/chriskeraly/LumOpt.git
python setup.py develop

I would strongly recommend using jupyter notebooks to run optimizations.

First optimization

If you are not using jupyter notebooks:

cd your/install/folder/examples/Ysplitter
python splitter_opt_2D.py

Otherwise copy your/install/folder/examples/Ysplitter/splitter_opt_2D.py into a notebook

You can’t perform that action at this time.