Skip to content

Commit c871fa2

Browse files
feat(source_time): broadband pulse
1 parent 04e4851 commit c871fa2

File tree

9 files changed

+422
-57
lines changed

9 files changed

+422
-57
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3333
- Added a Gaussian inverse design filter option with autograd gradients and complete padding mode coverage.
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`.
36+
- Introduced `BroadbandPulse` for exciting simulations across a wide frequency spectrum.
3637

3738
### Breaking Changes
3839
- 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: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1504,6 +1504,59 @@
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": 5.0,
1540+
"minimum": 2.5,
1541+
"type": "number"
1542+
},
1543+
"phase": {
1544+
"default": 0.0,
1545+
"type": "number"
1546+
},
1547+
"type": {
1548+
"default": "BroadbandPulse",
1549+
"enum": [
1550+
"BroadbandPulse"
1551+
],
1552+
"type": "string"
1553+
}
1554+
},
1555+
"required": [
1556+
"freq_range"
1557+
],
1558+
"type": "object"
1559+
},
15071560
"CaugheyThomasMobility": {
15081561
"additionalProperties": false,
15091562
"properties": {
@@ -8092,13 +8145,17 @@
80928145
"source_time": {
80938146
"discriminator": {
80948147
"mapping": {
8148+
"BroadbandPulse": "#/definitions/BroadbandPulse",
80958149
"ContinuousWave": "#/definitions/ContinuousWave",
80968150
"CustomSourceTime": "#/definitions/CustomSourceTime",
80978151
"GaussianPulse": "#/definitions/GaussianPulse"
80988152
},
80998153
"propertyName": "type"
81008154
},
81018155
"oneOf": [
8156+
{
8157+
"$ref": "#/definitions/BroadbandPulse"
8158+
},
81028159
{
81038160
"$ref": "#/definitions/ContinuousWave"
81048161
},

schemas/Simulation.json

Lines changed: 89 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,59 @@
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": 5.0,
1921+
"minimum": 2.5,
1922+
"type": "number"
1923+
},
1924+
"phase": {
1925+
"default": 0.0,
1926+
"type": "number"
1927+
},
1928+
"type": {
1929+
"default": "BroadbandPulse",
1930+
"enum": [
1931+
"BroadbandPulse"
1932+
],
1933+
"type": "string"
1934+
}
1935+
},
1936+
"required": [
1937+
"freq_range"
1938+
],
1939+
"type": "object"
1940+
},
18841941
"CaugheyThomasMobility": {
18851942
"additionalProperties": false,
18861943
"properties": {
@@ -3244,13 +3301,17 @@
32443301
"source_time": {
32453302
"discriminator": {
32463303
"mapping": {
3304+
"BroadbandPulse": "#/definitions/BroadbandPulse",
32473305
"ContinuousWave": "#/definitions/ContinuousWave",
32483306
"CustomSourceTime": "#/definitions/CustomSourceTime",
32493307
"GaussianPulse": "#/definitions/GaussianPulse"
32503308
},
32513309
"propertyName": "type"
32523310
},
32533311
"oneOf": [
3312+
{
3313+
"$ref": "#/definitions/BroadbandPulse"
3314+
},
32543315
{
32553316
"$ref": "#/definitions/ContinuousWave"
32563317
},
@@ -3899,13 +3960,17 @@
38993960
"source_time": {
39003961
"discriminator": {
39013962
"mapping": {
3963+
"BroadbandPulse": "#/definitions/BroadbandPulse",
39023964
"ContinuousWave": "#/definitions/ContinuousWave",
39033965
"CustomSourceTime": "#/definitions/CustomSourceTime",
39043966
"GaussianPulse": "#/definitions/GaussianPulse"
39053967
},
39063968
"propertyName": "type"
39073969
},
39083970
"oneOf": [
3971+
{
3972+
"$ref": "#/definitions/BroadbandPulse"
3973+
},
39093974
{
39103975
"$ref": "#/definitions/ContinuousWave"
39113976
},
@@ -8118,13 +8183,17 @@
81188183
"source_time": {
81198184
"discriminator": {
81208185
"mapping": {
8186+
"BroadbandPulse": "#/definitions/BroadbandPulse",
81218187
"ContinuousWave": "#/definitions/ContinuousWave",
81228188
"CustomSourceTime": "#/definitions/CustomSourceTime",
81238189
"GaussianPulse": "#/definitions/GaussianPulse"
81248190
},
81258191
"propertyName": "type"
81268192
},
81278193
"oneOf": [
8194+
{
8195+
"$ref": "#/definitions/BroadbandPulse"
8196+
},
81288197
{
81298198
"$ref": "#/definitions/ContinuousWave"
81308199
},
@@ -12058,13 +12127,17 @@
1205812127
"source_time": {
1205912128
"discriminator": {
1206012129
"mapping": {
12130+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1206112131
"ContinuousWave": "#/definitions/ContinuousWave",
1206212132
"CustomSourceTime": "#/definitions/CustomSourceTime",
1206312133
"GaussianPulse": "#/definitions/GaussianPulse"
1206412134
},
1206512135
"propertyName": "type"
1206612136
},
1206712137
"oneOf": [
12138+
{
12139+
"$ref": "#/definitions/BroadbandPulse"
12140+
},
1206812141
{
1206912142
"$ref": "#/definitions/ContinuousWave"
1207012143
},
@@ -13711,13 +13784,17 @@
1371113784
"source_time": {
1371213785
"discriminator": {
1371313786
"mapping": {
13787+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1371413788
"ContinuousWave": "#/definitions/ContinuousWave",
1371513789
"CustomSourceTime": "#/definitions/CustomSourceTime",
1371613790
"GaussianPulse": "#/definitions/GaussianPulse"
1371713791
},
1371813792
"propertyName": "type"
1371913793
},
1372013794
"oneOf": [
13795+
{
13796+
"$ref": "#/definitions/BroadbandPulse"
13797+
},
1372113798
{
1372213799
"$ref": "#/definitions/ContinuousWave"
1372313800
},
@@ -13855,13 +13932,17 @@
1385513932
"source_time": {
1385613933
"discriminator": {
1385713934
"mapping": {
13935+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1385813936
"ContinuousWave": "#/definitions/ContinuousWave",
1385913937
"CustomSourceTime": "#/definitions/CustomSourceTime",
1386013938
"GaussianPulse": "#/definitions/GaussianPulse"
1386113939
},
1386213940
"propertyName": "type"
1386313941
},
1386413942
"oneOf": [
13943+
{
13944+
"$ref": "#/definitions/BroadbandPulse"
13945+
},
1386513946
{
1386613947
"$ref": "#/definitions/ContinuousWave"
1386713948
},
@@ -15763,13 +15844,17 @@
1576315844
"source_time": {
1576415845
"discriminator": {
1576515846
"mapping": {
15847+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1576615848
"ContinuousWave": "#/definitions/ContinuousWave",
1576715849
"CustomSourceTime": "#/definitions/CustomSourceTime",
1576815850
"GaussianPulse": "#/definitions/GaussianPulse"
1576915851
},
1577015852
"propertyName": "type"
1577115853
},
1577215854
"oneOf": [
15855+
{
15856+
"$ref": "#/definitions/BroadbandPulse"
15857+
},
1577315858
{
1577415859
"$ref": "#/definitions/ContinuousWave"
1577515860
},
@@ -16369,13 +16454,17 @@
1636916454
"source_time": {
1637016455
"discriminator": {
1637116456
"mapping": {
16457+
"BroadbandPulse": "#/definitions/BroadbandPulse",
1637216458
"ContinuousWave": "#/definitions/ContinuousWave",
1637316459
"CustomSourceTime": "#/definitions/CustomSourceTime",
1637416460
"GaussianPulse": "#/definitions/GaussianPulse"
1637516461
},
1637616462
"propertyName": "type"
1637716463
},
1637816464
"oneOf": [
16465+
{
16466+
"$ref": "#/definitions/BroadbandPulse"
16467+
},
1637916468
{
1638016469
"$ref": "#/definitions/ContinuousWave"
1638116470
},

0 commit comments

Comments
 (0)