Skip to content

Commit 79d8f19

Browse files
feat(source_time): broadband pulse
1 parent 04c05e4 commit 79d8f19

File tree

9 files changed

+419
-57
lines changed

9 files changed

+419
-57
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3434
- Added support for argument passing to DRC file when running checks with `DRCRunner.run(..., drc_args={key: value})` in klayout plugin.
3535
- Added support for `nonlinear_spec` in `CustomMedium` and `CustomDispersiveMedium`.
3636
- `tidy3d.plugins.design.DesignSpace.run(..., fn_post=...)` now accepts a `priority` keyword to propagate vGPU queue priority to all automatically batched simulations.
37+
- Introduced `BroadbandPulse` for exciting simulations across a wide frequency spectrum.
3738

3839
### Breaking Changes
3940
- Edge singularity correction at PEC and lossy metal edges defaults to `True`.

docs/api/sources.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Source Time Dependence
3434

3535
tidy3d.GaussianPulse
3636
tidy3d.ContinuousWave
37+
tidy3d.BroadbandPulse
3738
tidy3d.SourceTime
3839
tidy3d.CustomSourceTime
3940

schemas/ModeSimulation.json

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1504,6 +1504,58 @@
15041504
],
15051505
"type": "object"
15061506
},
1507+
"BroadbandPulse": {
1508+
"additionalProperties": false,
1509+
"properties": {
1510+
"amplitude": {
1511+
"default": 1.0,
1512+
"minimum": 0,
1513+
"type": "number"
1514+
},
1515+
"attrs": {
1516+
"default": {},
1517+
"type": "object"
1518+
},
1519+
"freq_range": {
1520+
"items": [
1521+
{
1522+
"type": "number"
1523+
},
1524+
{
1525+
"type": "number"
1526+
}
1527+
],
1528+
"maxItems": 2,
1529+
"minItems": 2,
1530+
"type": "array"
1531+
},
1532+
"minimum_amplitude": {
1533+
"default": 0.3,
1534+
"exclusiveMaximum": 0.5,
1535+
"exclusiveMinimum": 0.05,
1536+
"type": "number"
1537+
},
1538+
"offset": {
1539+
"default": 0.0,
1540+
"type": "number"
1541+
},
1542+
"phase": {
1543+
"default": 0.0,
1544+
"type": "number"
1545+
},
1546+
"type": {
1547+
"default": "BroadbandPulse",
1548+
"enum": [
1549+
"BroadbandPulse"
1550+
],
1551+
"type": "string"
1552+
}
1553+
},
1554+
"required": [
1555+
"freq_range"
1556+
],
1557+
"type": "object"
1558+
},
15071559
"CaugheyThomasMobility": {
15081560
"additionalProperties": false,
15091561
"properties": {
@@ -8092,13 +8144,17 @@
80928144
"source_time": {
80938145
"discriminator": {
80948146
"mapping": {
8147+
"BroadbandPulse": "#/definitions/BroadbandPulse",
80958148
"ContinuousWave": "#/definitions/ContinuousWave",
80968149
"CustomSourceTime": "#/definitions/CustomSourceTime",
80978150
"GaussianPulse": "#/definitions/GaussianPulse"
80988151
},
80998152
"propertyName": "type"
81008153
},
81018154
"oneOf": [
8155+
{
8156+
"$ref": "#/definitions/BroadbandPulse"
8157+
},
81028158
{
81038159
"$ref": "#/definitions/ContinuousWave"
81048160
},

schemas/Simulation.json

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,13 +748,17 @@
748748
"source_time": {
749749
"discriminator": {
750750
"mapping": {
751+
"BroadbandPulse": "#/definitions/BroadbandPulse",
751752
"ContinuousWave": "#/definitions/ContinuousWave",
752753
"CustomSourceTime": "#/definitions/CustomSourceTime",
753754
"GaussianPulse": "#/definitions/GaussianPulse"
754755
},
755756
"propertyName": "type"
756757
},
757758
"oneOf": [
759+
{
760+
"$ref": "#/definitions/BroadbandPulse"
761+
},
758762
{
759763
"$ref": "#/definitions/ContinuousWave"
760764
},
@@ -1881,6 +1885,58 @@
18811885
],
18821886
"type": "object"
18831887
},
1888+
"BroadbandPulse": {
1889+
"additionalProperties": false,
1890+
"properties": {
1891+
"amplitude": {
1892+
"default": 1.0,
1893+
"minimum": 0,
1894+
"type": "number"
1895+
},
1896+
"attrs": {
1897+
"default": {},
1898+
"type": "object"
1899+
},
1900+
"freq_range": {
1901+
"items": [
1902+
{
1903+
"type": "number"
1904+
},
1905+
{
1906+
"type": "number"
1907+
}
1908+
],
1909+
"maxItems": 2,
1910+
"minItems": 2,
1911+
"type": "array"
1912+
},
1913+
"minimum_amplitude": {
1914+
"default": 0.3,
1915+
"exclusiveMaximum": 0.5,
1916+
"exclusiveMinimum": 0.05,
1917+
"type": "number"
1918+
},
1919+
"offset": {
1920+
"default": 0.0,
1921+
"type": "number"
1922+
},
1923+
"phase": {
1924+
"default": 0.0,
1925+
"type": "number"
1926+
},
1927+
"type": {
1928+
"default": "BroadbandPulse",
1929+
"enum": [
1930+
"BroadbandPulse"
1931+
],
1932+
"type": "string"
1933+
}
1934+
},
1935+
"required": [
1936+
"freq_range"
1937+
],
1938+
"type": "object"
1939+
},
18841940
"CaugheyThomasMobility": {
18851941
"additionalProperties": false,
18861942
"properties": {
@@ -3244,13 +3300,17 @@
32443300
"source_time": {
32453301
"discriminator": {
32463302
"mapping": {
3303+
"BroadbandPulse": "#/definitions/BroadbandPulse",
32473304
"ContinuousWave": "#/definitions/ContinuousWave",
32483305
"CustomSourceTime": "#/definitions/CustomSourceTime",
32493306
"GaussianPulse": "#/definitions/GaussianPulse"
32503307
},
32513308
"propertyName": "type"
32523309
},
32533310
"oneOf": [
3311+
{
3312+
"$ref": "#/definitions/BroadbandPulse"
3313+
},
32543314
{
32553315
"$ref": "#/definitions/ContinuousWave"
32563316
},
@@ -3899,13 +3959,17 @@
38993959
"source_time": {
39003960
"discriminator": {
39013961
"mapping": {
3962+
"BroadbandPulse": "#/definitions/BroadbandPulse",
39023963
"ContinuousWave": "#/definitions/ContinuousWave",
39033964
"CustomSourceTime": "#/definitions/CustomSourceTime",
39043965
"GaussianPulse": "#/definitions/GaussianPulse"
39053966
},
39063967
"propertyName": "type"
39073968
},
39083969
"oneOf": [
3970+
{
3971+
"$ref": "#/definitions/BroadbandPulse"
3972+
},
39093973
{
39103974
"$ref": "#/definitions/ContinuousWave"
39113975
},
@@ -8118,13 +8182,17 @@
81188182
"source_time": {
81198183
"discriminator": {
81208184
"mapping": {
8185+
"BroadbandPulse": "#/definitions/BroadbandPulse",
81218186
"ContinuousWave": "#/definitions/ContinuousWave",
81228187
"CustomSourceTime": "#/definitions/CustomSourceTime",
81238188
"GaussianPulse": "#/definitions/GaussianPulse"
81248189
},
81258190
"propertyName": "type"
81268191
},
81278192
"oneOf": [
8193+
{
8194+
"$ref": "#/definitions/BroadbandPulse"
8195+
},
81288196
{
81298197
"$ref": "#/definitions/ContinuousWave"
81308198
},
@@ -12058,13 +12126,17 @@
1205812126
"source_time": {
1205912127
"discriminator": {
1206012128
"mapping": {
12129+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1206112130
"ContinuousWave": "#/definitions/ContinuousWave",
1206212131
"CustomSourceTime": "#/definitions/CustomSourceTime",
1206312132
"GaussianPulse": "#/definitions/GaussianPulse"
1206412133
},
1206512134
"propertyName": "type"
1206612135
},
1206712136
"oneOf": [
12137+
{
12138+
"$ref": "#/definitions/BroadbandPulse"
12139+
},
1206812140
{
1206912141
"$ref": "#/definitions/ContinuousWave"
1207012142
},
@@ -13711,13 +13783,17 @@
1371113783
"source_time": {
1371213784
"discriminator": {
1371313785
"mapping": {
13786+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1371413787
"ContinuousWave": "#/definitions/ContinuousWave",
1371513788
"CustomSourceTime": "#/definitions/CustomSourceTime",
1371613789
"GaussianPulse": "#/definitions/GaussianPulse"
1371713790
},
1371813791
"propertyName": "type"
1371913792
},
1372013793
"oneOf": [
13794+
{
13795+
"$ref": "#/definitions/BroadbandPulse"
13796+
},
1372113797
{
1372213798
"$ref": "#/definitions/ContinuousWave"
1372313799
},
@@ -13855,13 +13931,17 @@
1385513931
"source_time": {
1385613932
"discriminator": {
1385713933
"mapping": {
13934+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1385813935
"ContinuousWave": "#/definitions/ContinuousWave",
1385913936
"CustomSourceTime": "#/definitions/CustomSourceTime",
1386013937
"GaussianPulse": "#/definitions/GaussianPulse"
1386113938
},
1386213939
"propertyName": "type"
1386313940
},
1386413941
"oneOf": [
13942+
{
13943+
"$ref": "#/definitions/BroadbandPulse"
13944+
},
1386513945
{
1386613946
"$ref": "#/definitions/ContinuousWave"
1386713947
},
@@ -15763,13 +15843,17 @@
1576315843
"source_time": {
1576415844
"discriminator": {
1576515845
"mapping": {
15846+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1576615847
"ContinuousWave": "#/definitions/ContinuousWave",
1576715848
"CustomSourceTime": "#/definitions/CustomSourceTime",
1576815849
"GaussianPulse": "#/definitions/GaussianPulse"
1576915850
},
1577015851
"propertyName": "type"
1577115852
},
1577215853
"oneOf": [
15854+
{
15855+
"$ref": "#/definitions/BroadbandPulse"
15856+
},
1577315857
{
1577415858
"$ref": "#/definitions/ContinuousWave"
1577515859
},
@@ -16369,13 +16453,17 @@
1636916453
"source_time": {
1637016454
"discriminator": {
1637116455
"mapping": {
16456+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1637216457
"ContinuousWave": "#/definitions/ContinuousWave",
1637316458
"CustomSourceTime": "#/definitions/CustomSourceTime",
1637416459
"GaussianPulse": "#/definitions/GaussianPulse"
1637516460
},
1637616461
"propertyName": "type"
1637716462
},
1637816463
"oneOf": [
16464+
{
16465+
"$ref": "#/definitions/BroadbandPulse"
16466+
},
1637916467
{
1638016468
"$ref": "#/definitions/ContinuousWave"
1638116469
},

0 commit comments

Comments
 (0)