Skip to content

Commit 222c6fb

Browse files
feat(rf): FXC 1604 add api for automatic extrusion of boundary structures into pml
1 parent 25ecca3 commit 222c6fb

File tree

8 files changed

+165
-3
lines changed

8 files changed

+165
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1919
## [2.10.0rc3] - 2025-11-26
2020

2121
### Added
22+
- Added optional automatic extrusion of structures at the simulation boundaries into/through PML/Absorber layers via `enable_extrusion` field in class `AbsorberSpec`.
2223
- Added S-parameter de-embedding to `TerminalComponentModelerData`, enabling recalculation with shifted reference planes.
2324
- Added optional automatic extrusion of structures intersecting with a `WavePort` via the new `extrude_structures` field, ensuring mode sources, absorbers, and PEC frames are fully contained.
2425
- Added support for `tidy3d-extras`, an optional plugin that enables more accurate local mode solving via subpixel averaging.

schemas/EMESimulation.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@
3636
"default": {},
3737
"type": "object"
3838
},
39+
"extrude_structures": {
40+
"default": false,
41+
"type": "boolean"
42+
},
3943
"name": {
4044
"type": "string"
4145
},
@@ -1008,6 +1012,7 @@
10081012
"minus": {
10091013
"default": {
10101014
"attrs": {},
1015+
"extrude_structures": true,
10111016
"name": null,
10121017
"num_layers": 12,
10131018
"parameters": {
@@ -1072,6 +1077,7 @@
10721077
"plus": {
10731078
"default": {
10741079
"attrs": {},
1080+
"extrude_structures": true,
10751081
"name": null,
10761082
"num_layers": 12,
10771083
"parameters": {
@@ -1167,6 +1173,7 @@
11671173
"attrs": {},
11681174
"minus": {
11691175
"attrs": {},
1176+
"extrude_structures": true,
11701177
"name": null,
11711178
"num_layers": 12,
11721179
"parameters": {
@@ -1186,6 +1193,7 @@
11861193
},
11871194
"plus": {
11881195
"attrs": {},
1196+
"extrude_structures": true,
11891197
"name": null,
11901198
"num_layers": 12,
11911199
"parameters": {
@@ -1216,6 +1224,7 @@
12161224
"attrs": {},
12171225
"minus": {
12181226
"attrs": {},
1227+
"extrude_structures": true,
12191228
"name": null,
12201229
"num_layers": 12,
12211230
"parameters": {
@@ -1235,6 +1244,7 @@
12351244
},
12361245
"plus": {
12371246
"attrs": {},
1247+
"extrude_structures": true,
12381248
"name": null,
12391249
"num_layers": 12,
12401250
"parameters": {
@@ -1265,6 +1275,7 @@
12651275
"attrs": {},
12661276
"minus": {
12671277
"attrs": {},
1278+
"extrude_structures": true,
12681279
"name": null,
12691280
"num_layers": 12,
12701281
"parameters": {
@@ -1284,6 +1295,7 @@
12841295
},
12851296
"plus": {
12861297
"attrs": {},
1298+
"extrude_structures": true,
12871299
"name": null,
12881300
"num_layers": 12,
12891301
"parameters": {
@@ -9352,6 +9364,10 @@
93529364
"default": {},
93539365
"type": "object"
93549366
},
9367+
"extrude_structures": {
9368+
"default": true,
9369+
"type": "boolean"
9370+
},
93559371
"name": {
93569372
"type": "string"
93579373
},
@@ -11286,6 +11302,10 @@
1128611302
"default": {},
1128711303
"type": "object"
1128811304
},
11305+
"extrude_structures": {
11306+
"default": false,
11307+
"type": "boolean"
11308+
},
1128911309
"name": {
1129011310
"type": "string"
1129111311
},

schemas/ModeSimulation.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@
3636
"default": {},
3737
"type": "object"
3838
},
39+
"extrude_structures": {
40+
"default": false,
41+
"type": "boolean"
42+
},
3943
"name": {
4044
"type": "string"
4145
},
@@ -1008,6 +1012,7 @@
10081012
"minus": {
10091013
"default": {
10101014
"attrs": {},
1015+
"extrude_structures": true,
10111016
"name": null,
10121017
"num_layers": 12,
10131018
"parameters": {
@@ -1072,6 +1077,7 @@
10721077
"plus": {
10731078
"default": {
10741079
"attrs": {},
1080+
"extrude_structures": true,
10751081
"name": null,
10761082
"num_layers": 12,
10771083
"parameters": {
@@ -1167,6 +1173,7 @@
11671173
"attrs": {},
11681174
"minus": {
11691175
"attrs": {},
1176+
"extrude_structures": true,
11701177
"name": null,
11711178
"num_layers": 12,
11721179
"parameters": {
@@ -1186,6 +1193,7 @@
11861193
},
11871194
"plus": {
11881195
"attrs": {},
1196+
"extrude_structures": true,
11891197
"name": null,
11901198
"num_layers": 12,
11911199
"parameters": {
@@ -1216,6 +1224,7 @@
12161224
"attrs": {},
12171225
"minus": {
12181226
"attrs": {},
1227+
"extrude_structures": true,
12191228
"name": null,
12201229
"num_layers": 12,
12211230
"parameters": {
@@ -1235,6 +1244,7 @@
12351244
},
12361245
"plus": {
12371246
"attrs": {},
1247+
"extrude_structures": true,
12381248
"name": null,
12391249
"num_layers": 12,
12401250
"parameters": {
@@ -1265,6 +1275,7 @@
12651275
"attrs": {},
12661276
"minus": {
12671277
"attrs": {},
1278+
"extrude_structures": true,
12681279
"name": null,
12691280
"num_layers": 12,
12701281
"parameters": {
@@ -1284,6 +1295,7 @@
12841295
},
12851296
"plus": {
12861297
"attrs": {},
1298+
"extrude_structures": true,
12871299
"name": null,
12881300
"num_layers": 12,
12891301
"parameters": {
@@ -9073,6 +9085,10 @@
90739085
"default": {},
90749086
"type": "object"
90759087
},
9088+
"extrude_structures": {
9089+
"default": true,
9090+
"type": "boolean"
9091+
},
90769092
"name": {
90779093
"type": "string"
90789094
},
@@ -11007,6 +11023,10 @@
1100711023
"default": {},
1100811024
"type": "object"
1100911025
},
11026+
"extrude_structures": {
11027+
"default": false,
11028+
"type": "boolean"
11029+
},
1101011030
"name": {
1101111031
"type": "string"
1101211032
},
@@ -12159,6 +12179,7 @@
1215912179
"attrs": {},
1216012180
"minus": {
1216112181
"attrs": {},
12182+
"extrude_structures": true,
1216212183
"name": null,
1216312184
"num_layers": 12,
1216412185
"parameters": {
@@ -12178,6 +12199,7 @@
1217812199
},
1217912200
"plus": {
1218012201
"attrs": {},
12202+
"extrude_structures": true,
1218112203
"name": null,
1218212204
"num_layers": 12,
1218312205
"parameters": {
@@ -12201,6 +12223,7 @@
1220112223
"attrs": {},
1220212224
"minus": {
1220312225
"attrs": {},
12226+
"extrude_structures": true,
1220412227
"name": null,
1220512228
"num_layers": 12,
1220612229
"parameters": {
@@ -12220,6 +12243,7 @@
1222012243
},
1222112244
"plus": {
1222212245
"attrs": {},
12246+
"extrude_structures": true,
1222312247
"name": null,
1222412248
"num_layers": 12,
1222512249
"parameters": {
@@ -12243,6 +12267,7 @@
1224312267
"attrs": {},
1224412268
"minus": {
1224512269
"attrs": {},
12270+
"extrude_structures": true,
1224612271
"name": null,
1224712272
"num_layers": 12,
1224812273
"parameters": {
@@ -12262,6 +12287,7 @@
1226212287
},
1226312288
"plus": {
1226412289
"attrs": {},
12290+
"extrude_structures": true,
1226512291
"name": null,
1226612292
"num_layers": 12,
1226712293
"parameters": {

schemas/Simulation.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@
3636
"default": {},
3737
"type": "object"
3838
},
39+
"extrude_structures": {
40+
"default": false,
41+
"type": "boolean"
42+
},
3943
"name": {
4044
"type": "string"
4145
},
@@ -1389,6 +1393,7 @@
13891393
"minus": {
13901394
"default": {
13911395
"attrs": {},
1396+
"extrude_structures": true,
13921397
"name": null,
13931398
"num_layers": 12,
13941399
"parameters": {
@@ -1453,6 +1458,7 @@
14531458
"plus": {
14541459
"default": {
14551460
"attrs": {},
1461+
"extrude_structures": true,
14561462
"name": null,
14571463
"num_layers": 12,
14581464
"parameters": {
@@ -1548,6 +1554,7 @@
15481554
"attrs": {},
15491555
"minus": {
15501556
"attrs": {},
1557+
"extrude_structures": true,
15511558
"name": null,
15521559
"num_layers": 12,
15531560
"parameters": {
@@ -1567,6 +1574,7 @@
15671574
},
15681575
"plus": {
15691576
"attrs": {},
1577+
"extrude_structures": true,
15701578
"name": null,
15711579
"num_layers": 12,
15721580
"parameters": {
@@ -1597,6 +1605,7 @@
15971605
"attrs": {},
15981606
"minus": {
15991607
"attrs": {},
1608+
"extrude_structures": true,
16001609
"name": null,
16011610
"num_layers": 12,
16021611
"parameters": {
@@ -1616,6 +1625,7 @@
16161625
},
16171626
"plus": {
16181627
"attrs": {},
1628+
"extrude_structures": true,
16191629
"name": null,
16201630
"num_layers": 12,
16211631
"parameters": {
@@ -1646,6 +1656,7 @@
16461656
"attrs": {},
16471657
"minus": {
16481658
"attrs": {},
1659+
"extrude_structures": true,
16491660
"name": null,
16501661
"num_layers": 12,
16511662
"parameters": {
@@ -1665,6 +1676,7 @@
16651676
},
16661677
"plus": {
16671678
"attrs": {},
1679+
"extrude_structures": true,
16681680
"name": null,
16691681
"num_layers": 12,
16701682
"parameters": {
@@ -13055,6 +13067,10 @@
1305513067
"default": {},
1305613068
"type": "object"
1305713069
},
13070+
"extrude_structures": {
13071+
"default": true,
13072+
"type": "boolean"
13073+
},
1305813074
"name": {
1305913075
"type": "string"
1306013076
},
@@ -15357,6 +15373,10 @@
1535715373
"default": {},
1535815374
"type": "object"
1535915375
},
15376+
"extrude_structures": {
15377+
"default": false,
15378+
"type": "boolean"
15379+
},
1536015380
"name": {
1536115381
"type": "string"
1536215382
},
@@ -16854,6 +16874,7 @@
1685416874
"attrs": {},
1685516875
"minus": {
1685616876
"attrs": {},
16877+
"extrude_structures": true,
1685716878
"name": null,
1685816879
"num_layers": 12,
1685916880
"parameters": {
@@ -16873,6 +16894,7 @@
1687316894
},
1687416895
"plus": {
1687516896
"attrs": {},
16897+
"extrude_structures": true,
1687616898
"name": null,
1687716899
"num_layers": 12,
1687816900
"parameters": {
@@ -16896,6 +16918,7 @@
1689616918
"attrs": {},
1689716919
"minus": {
1689816920
"attrs": {},
16921+
"extrude_structures": true,
1689916922
"name": null,
1690016923
"num_layers": 12,
1690116924
"parameters": {
@@ -16915,6 +16938,7 @@
1691516938
},
1691616939
"plus": {
1691716940
"attrs": {},
16941+
"extrude_structures": true,
1691816942
"name": null,
1691916943
"num_layers": 12,
1692016944
"parameters": {
@@ -16938,6 +16962,7 @@
1693816962
"attrs": {},
1693916963
"minus": {
1694016964
"attrs": {},
16965+
"extrude_structures": true,
1694116966
"name": null,
1694216967
"num_layers": 12,
1694316968
"parameters": {
@@ -16957,6 +16982,7 @@
1695716982
},
1695816983
"plus": {
1695916984
"attrs": {},
16985+
"extrude_structures": true,
1696016986
"name": null,
1696116987
"num_layers": 12,
1696216988
"parameters": {

0 commit comments

Comments
 (0)