Skip to content

Commit a4f16b6

Browse files
committed
Version 0.5.16
* New function: add_structure_group in FDTDSimulation. * Automatically search for new version API.
1 parent df445b3 commit a4f16b6

4 files changed

Lines changed: 32 additions & 6 deletions

File tree

history.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,3 +249,7 @@
249249
* New function: get_point_list() for customized components.
250250
* Fix layout bug for CirclePixelsRegionwithGroup.
251251
* Layer operations for libraries apart from the common_lib.
252+
253+
### Version 0.5.16 (Sep 6, 2025)
254+
* New function: add_structure_group in FDTDSimulation.
255+
* Automatically search for new version API.

splayout/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "0.5.15"
1+
__version__ = "0.5.16"
22

33
## Submodules
44
from . import utils

splayout/lumericalcommun/fdtdapi.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2250,4 +2250,14 @@ def get_port_transmission(self, port_name, direction=OUT, datafile=None):
22502250
spectrum[i, 1, :] = transmission[:, i]
22512251
if (datafile != None):
22522252
np.save(datafile, spectrum)
2253-
return spectrum
2253+
return spectrum
2254+
2255+
def add_structure_group(self, group_script, structure_group_name = 'group', center_point = Point(0, 0), z=0):
2256+
self.fdtd.eval("addstructuregroup;")
2257+
self.fdtd.eval("set(\"name\", \"" + structure_group_name + "\");")
2258+
self.fdtd.eval("set(\"x\"," + "%.6f" % (center_point.x) + "e-6);")
2259+
self.fdtd.eval("set(\"y\"," + "%.6f" % (center_point.y) + "e-6);")
2260+
self.fdtd.eval("set(\"z\"," + "%.6f" % (z) + "e-6);")
2261+
self.fdtd.putv("groupscript", group_script)
2262+
self.fdtd.eval("set(\"script\", groupscript);")
2263+
self.fdtd.eval("clear;")

splayout/utils/utils.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -515,15 +515,27 @@ def find_lumerical():
515515
preset_disks = ["C:/", "D:/", "E:/", "F:/", "G:/", "H:/", "I:/", "J:/",
516516
"K:/", "L:/", "M:/", "N:/", "O:/", "P:/", "Q:/", "R:/",
517517
"S:/", "T:/", "U:/", "V:", "W:/", "X:/", "Y:/", "Z:/"]
518-
preset_dir = ["Program Files/Lumerical/", "Lumerical/"]
519-
version_numbers = [str(num) for num in range(202, 250)]
520-
preset_version = [ "v" + version_number + "/api/python" for version_number in version_numbers]
521-
518+
# new versions
522519
lumerical_api_path = None
520+
preset_dir = ["Program Files/Ansys Inc/"]
521+
version_numbers = [str(num) for num in range(252, 300)]
522+
preset_version = ["v" + version_number + "/Lumerical/api/python" for version_number in version_numbers]
523523
for disk in preset_disks:
524524
for pdir in preset_dir:
525525
for pver in preset_version:
526526
if os.path.exists(disk + pdir + pver):
527527
lumerical_api_path = disk + pdir + pver
528528

529+
if lumerical_api_path is None:
530+
# old versions
531+
preset_dir = ["Program Files/Lumerical/", "Lumerical/"]
532+
version_numbers = [str(num) for num in range(202, 250)]
533+
preset_version = ["v" + version_number + "/api/python" for version_number in version_numbers]
534+
535+
for disk in preset_disks:
536+
for pdir in preset_dir:
537+
for pver in preset_version:
538+
if os.path.exists(disk + pdir + pver):
539+
lumerical_api_path = disk + pdir + pver
540+
529541
return lumerical_api_path

0 commit comments

Comments
 (0)