Skip to content

Commit 8bdd1cf

Browse files
cleanup
1 parent fd911a4 commit 8bdd1cf

File tree

9 files changed

+117
-36
lines changed

9 files changed

+117
-36
lines changed

tests/test_plugins/smatrix/test_component_modeler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import tidy3d as td
1010
from tidy3d.exceptions import SetupError, Tidy3dKeyError
11-
from tidy3d.plugins.smatrix import ComponentModeler, ComponentModelerData, Port, PortSimulationData
11+
from tidy3d.plugins.smatrix import ComponentModeler, ComponentModelerData, Port, IndexSimulationData
1212
from tidy3d.web.api.container import Batch
1313

1414
from ...utils import run_emulated
@@ -193,8 +193,8 @@ def make_component_modeler(**kwargs):
193193
def run_component_modeler(monkeypatch, modeler: ComponentModeler) -> ComponentModelerData:
194194
sim_dict = modeler.sim_dict
195195
batch_data = {task_name: run_emulated(sim) for task_name, sim in sim_dict.items()}
196-
port_data = PortSimulationData(
197-
ports=list(batch_data.keys()),
196+
port_data = IndexSimulationData(
197+
index=list(batch_data.keys()),
198198
data=list(batch_data.values()),
199199
)
200200
modeler_data = ComponentModelerData(modeler=modeler, data=port_data)

tests/test_plugins/smatrix/test_terminal_component_modeler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
CoaxialLumpedPort,
2121
LumpedPort,
2222
PortDataArray,
23-
PortSimulationData,
23+
IndexSimulationData,
2424
TerminalComponentModeler,
2525
TerminalComponentModelerData,
2626
TerminalPortDataArray,
@@ -39,8 +39,8 @@ def run_component_modeler(
3939
) -> TerminalComponentModelerData:
4040
sim_dict = modeler.sim_dict
4141
batch_data = {task_name: run_emulated(sim) for task_name, sim in sim_dict.items()}
42-
port_data = PortSimulationData(
43-
ports=list(batch_data.keys()),
42+
port_data = IndexSimulationData(
43+
index=list(batch_data.keys()),
4444
data=list(batch_data.values()),
4545
)
4646
modeler_data = TerminalComponentModelerData(modeler=modeler, data=port_data)

tidy3d/components/data/index.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from tidy3d.components.simulaton_types import SimulationDataType
2+
from tidy3d.components.base import Tidy3dBaseModel
3+
4+
class IndexSimulationData(Tidy3dBaseModel):
5+
index: tuple[str, ...]
6+
data: tuple[SimulationDataType, ...]
7+
8+
def __getitem__(self, index: str) -> SimulationDataType:
9+
"""
10+
Allows retrieving simulation data by the port name.
11+
12+
Args:
13+
port_name: The string name of the port to look up.
14+
15+
Returns:
16+
The SimulationData object corresponding to the given port name.
17+
18+
Raises:
19+
KeyError: If no port with the given name is found.
20+
"""
21+
for i, index_i in enumerate(self.index):
22+
if index_i == index:
23+
return self.data[i]
24+
raise KeyError(f"Index '{index}' not found.")

tidy3d/components/index.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from tidy3d.components.simulaton_types import SimulationType
2+
from tidy3d.components.base import Tidy3dBaseModel
3+
4+
class IndexSimulation(Tidy3dBaseModel):
5+
index: tuple[str, ...]
6+
simulation: tuple[SimulationType, ...]
7+
8+
def __getitem__(self, index: str) -> SimulationType:
9+
"""
10+
Allows retrieving simulation data by the port name.
11+
12+
Args:
13+
port_name: The string name of the port to look up.
14+
15+
Returns:
16+
The SimulationData object corresponding to the given port name.
17+
18+
Raises:
19+
KeyError: If no port with the given name is found.
20+
"""
21+
for i, index_i in enumerate(self.index):
22+
if index_i == index:
23+
return self.simulation[i]
24+
raise KeyError(f"Index '{index}' not found.")
25+
26+

tidy3d/components/simulaton_types.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
2+
from __future__ import annotations
3+
4+
import json
5+
from typing import Callable, Optional, Union
6+
7+
import pydantic.v1 as pd
8+
from pydantic.v1 import BaseModel
9+
10+
from tidy3d import log
11+
from tidy3d.components.base import _get_valid_extension
12+
from tidy3d.components.data.monitor_data import ModeSolverData
13+
from tidy3d.components.data.sim_data import SimulationData
14+
from tidy3d.components.eme.data.sim_data import EMESimulationData
15+
from tidy3d.components.eme.simulation import EMESimulation
16+
from tidy3d.components.mode.data.sim_data import ModeSimulationData
17+
from tidy3d.components.mode.simulation import ModeSimulation
18+
from tidy3d.components.simulation import Simulation
19+
from tidy3d.components.tcad.data.sim_data import (
20+
HeatChargeSimulationData,
21+
HeatSimulationData,
22+
VolumeMesherData,
23+
)
24+
from tidy3d.components.tcad.mesher import VolumeMesher
25+
from tidy3d.components.tcad.simulation.heat import HeatSimulation
26+
from tidy3d.components.tcad.simulation.heat_charge import HeatChargeSimulation
27+
from tidy3d.plugins.mode.mode_solver import ModeSolver
28+
from tidy3d.web.core.file_util import (
29+
read_simulation_from_hdf5,
30+
read_simulation_from_hdf5_gz,
31+
read_simulation_from_json,
32+
)
33+
from tidy3d.web.core.stub import TaskStub, TaskStubData
34+
from tidy3d.web.core.types import TaskType
35+
36+
SimulationType = Union[
37+
Simulation,
38+
HeatChargeSimulation,
39+
HeatSimulation,
40+
EMESimulation,
41+
ModeSolver,
42+
ModeSimulation,
43+
VolumeMesher,
44+
]
45+
SimulationDataType = Union[
46+
SimulationData,
47+
HeatChargeSimulationData,
48+
HeatSimulationData,
49+
EMESimulationData,
50+
ModeSolverData,
51+
ModeSimulationData,
52+
]
53+

tidy3d/plugins/smatrix/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
PortDataArray,
1616
TerminalPortDataArray,
1717
)
18-
from tidy3d.plugins.smatrix.data.modal import ComponentModelerData, PortSimulationData
18+
from tidy3d.plugins.smatrix.data.modal import ComponentModelerData
1919
from tidy3d.plugins.smatrix.data.terminal import MicrowaveSMatrixData, TerminalComponentModelerData
2020
from tidy3d.plugins.smatrix.data.types import ComponentModelerDataType
2121
from tidy3d.plugins.smatrix.ports.coaxial_lumped import CoaxialLumpedPort
@@ -45,7 +45,6 @@
4545
"ModalPortDataArray",
4646
"Port",
4747
"PortDataArray",
48-
"PortSimulationData",
4948
"TerminalComponentModeler",
5049
"TerminalComponentModelerData",
5150
"TerminalPortDataArray",

tidy3d/plugins/smatrix/data/modal.py

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,12 @@
66

77
from tidy3d.components.base import Tidy3dBaseModel, cached_property
88
from tidy3d.components.data.sim_data import SimulationData
9+
from tidy3d.components.data.index import IndexSimulationData
910
from tidy3d.plugins.smatrix.component_modelers.modal import ComponentModeler
1011
from tidy3d.plugins.smatrix.data.data_array import ModalPortDataArray
1112
from tidy3d.plugins.smatrix.ports.types import PortReferenceType
1213

1314

14-
class PortSimulationData(Tidy3dBaseModel):
15-
ports: tuple[PortReferenceType, ...]
16-
data: tuple[SimulationData, ...]
17-
18-
def __getitem__(self, port_name: str) -> SimulationData:
19-
"""
20-
Allows retrieving simulation data by the port name.
21-
22-
Args:
23-
port_name: The string name of the port to look up.
24-
25-
Returns:
26-
The SimulationData object corresponding to the given port name.
27-
28-
Raises:
29-
KeyError: If no port with the given name is found.
30-
"""
31-
for i, port_i in enumerate(self.ports):
32-
if port_i == port_name:
33-
return self.data[i]
34-
raise KeyError(f"Port '{port_name}' not found.")
35-
3615

3716
class ComponentModelerData(Tidy3dBaseModel):
3817
modeler: ComponentModeler = pd.Field(
@@ -42,7 +21,7 @@ class ComponentModelerData(Tidy3dBaseModel):
4221
"and from which this data was generated.",
4322
)
4423

45-
data: PortSimulationData = pd.Field(
24+
data: IndexSimulationData = pd.Field(
4625
...,
4726
title="ComponentModeler",
4827
description="The original :class:`ComponentModeler` object that defines the simulation setup "

tidy3d/plugins/smatrix/data/terminal.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from tidy3d.log import log
1616
from tidy3d.plugins.smatrix.component_modelers.terminal import TerminalComponentModeler
1717
from tidy3d.plugins.smatrix.data.data_array import PortDataArray, TerminalPortDataArray
18-
from tidy3d.plugins.smatrix.data.modal import PortSimulationData
18+
from tidy3d.plugins.smatrix.data.modal import IndexSimulationData
1919
from tidy3d.plugins.smatrix.ports.types import TerminalPortType
2020
from tidy3d.plugins.smatrix.utils import (
2121
ab_to_s,
@@ -69,7 +69,7 @@ class TerminalComponentModelerData(Tidy3dBaseModel):
6969
"and from which this data was generated.",
7070
)
7171

72-
data: PortSimulationData = pd.Field(
72+
data: IndexSimulationData = pd.Field(
7373
...,
7474
title="Port-Simulation Data",
7575
description="Stores raw simulation data from each microwave port-specific simulation.",

tidy3d/plugins/smatrix/run.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from tidy3d.plugins.smatrix.component_modelers.types import (
88
ComponentModelerType,
99
)
10-
from tidy3d.plugins.smatrix.data.modal import ComponentModelerData, PortSimulationData
10+
from tidy3d.plugins.smatrix.data.modal import ComponentModelerData, IndexSimulationData
1111
from tidy3d.plugins.smatrix.data.terminal import TerminalComponentModelerData
1212
from tidy3d.plugins.smatrix.data.types import ComponentModelerDataType
1313
from tidy3d.plugins.smatrix.web import Batch, BatchData
@@ -74,7 +74,7 @@ def compose_terminal_modeler_data(
7474
"""
7575
ports = [modeler.get_task_name(port=port_i) for port_i in modeler.ports]
7676
data = [batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports]
77-
port_simulation_data = PortSimulationData(ports=ports, data=data)
77+
port_simulation_data = IndexSimulationData(ports=ports, data=data)
7878
return TerminalComponentModelerData(modeler=modeler, data=port_simulation_data)
7979

8080

@@ -97,7 +97,7 @@ def compose_component_modeler_data(
9797
"""
9898
ports = [modeler.get_task_name(port=port_i) for port_i in modeler.ports]
9999
data = [batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports]
100-
port_simulation_data = PortSimulationData(ports=ports, data=data)
100+
port_simulation_data = IndexSimulationData(ports=ports, data=data)
101101
return ComponentModelerData(modeler=modeler, data=port_simulation_data)
102102

103103

0 commit comments

Comments
 (0)