Skip to content

Commit b40978a

Browse files
Bring back run
1 parent ff43d56 commit b40978a

File tree

3 files changed

+82
-66
lines changed

3 files changed

+82
-66
lines changed

tidy3d/plugins/smatrix/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from tidy3d.plugins.smatrix.ports.modal import Port
2121
from tidy3d.plugins.smatrix.ports.rectangular_lumped import LumpedPort
2222
from tidy3d.plugins.smatrix.ports.wave import WavePort
23+
from tidy3d.plugins.smatrix.run import compose_modeler_data, create_batch, run
2324

2425
# Instantiate on plugin import till we unite with toplevel
2526
warnings.filterwarnings(
@@ -45,4 +46,7 @@
4546
"TerminalComponentModelerData",
4647
"TerminalPortDataArray",
4748
"WavePort",
49+
"compose_modeler_data",
50+
"create_batch",
51+
"run",
4852
]

tidy3d/plugins/smatrix/run.py

Lines changed: 77 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,77 @@
1-
# from __future__ import annotations
2-
#
3-
# from tidy3d.plugins.smatrix.component_modelers.modal import ComponentModeler
4-
# from tidy3d.plugins.smatrix.component_modelers.terminal import TerminalComponentModeler
5-
# from tidy3d.plugins.smatrix.component_modelers.types import (
6-
# ComponentModelerType,
7-
# )
8-
# from tidy3d.plugins.smatrix.data.modal import ComponentModelerData, PortSimulationMap
9-
# from tidy3d.plugins.smatrix.data.terminal import TerminalComponentModelerData
10-
# from tidy3d.plugins.smatrix.data.types import ComponentModelerDataType
11-
# from tidy3d.web import Batch, BatchData
12-
#
13-
# DEFAULT_DATA_DIR = "."
14-
#
15-
#
16-
# def create_batch(
17-
# modeler: ComponentModelerType,
18-
# path_dir: str = DEFAULT_DATA_DIR,
19-
# file_name: str = "batch.hdf5" ** kwargs,
20-
# ) -> Batch:
21-
# batch = Batch(simulations=modeler.sim_dict, **kwargs)
22-
# batch.to_file(file_name)
23-
#
24-
# return batch
25-
#
26-
#
27-
# def compose_terminal_modeler_data(
28-
# modeler: TerminalComponentModeler,
29-
# batch_data: BatchData = None,
30-
# ) -> TerminalComponentModelerData:
31-
# port_to_sim_data_map = {
32-
# port_i: batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports
33-
# }
34-
# port_simulation_data = PortSimulationMap(data=port_to_sim_data_map)
35-
# return TerminalComponentModelerData(modeler=modeler, data=port_simulation_data)
36-
#
37-
#
38-
# def compose_component_modeler_data(
39-
# modeler: ComponentModeler,
40-
# batch_data: BatchData = None,
41-
# ) -> ComponentModelerData:
42-
# port_to_sim_data_map = {
43-
# port_i: batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports
44-
# }
45-
# port_simulation_data = PortSimulationMap(data=port_to_sim_data_map)
46-
# return ComponentModelerData(modeler=modeler, data=port_simulation_data)
47-
#
48-
#
49-
# def run(
50-
# modeler: ComponentModelerType,
51-
# path_dir: str = DEFAULT_DATA_DIR,
52-
# ) -> ComponentModelerDataType:
53-
# """
54-
# This method internally determines which functions to run to compose the corresponding ComponentModelerDataType.
55-
# """
56-
# batch_data = run_batch(modeler=modeler, path_dir=path_dir)
57-
#
58-
# if isinstance(modeler, ComponentModeler):
59-
# modeler_data = compose_component_modeler_data(modeler=modeler, batch_data=batch_data)
60-
# elif isinstance(modeler, TerminalComponentModeler):
61-
# modeler_data = compose_terminal_modeler_data(modeler=modeler, batch_data=batch_data)
62-
# else:
63-
# raise Exception("sasas")
64-
#
65-
# return modeler_data
1+
from __future__ import annotations
2+
3+
from tidy3d.plugins.smatrix.component_modelers.modal import ComponentModeler
4+
from tidy3d.plugins.smatrix.component_modelers.terminal import TerminalComponentModeler
5+
from tidy3d.plugins.smatrix.component_modelers.types import (
6+
ComponentModelerType,
7+
)
8+
from tidy3d.plugins.smatrix.data.modal import ComponentModelerData, PortSimulationMap
9+
from tidy3d.plugins.smatrix.data.terminal import TerminalComponentModelerData
10+
from tidy3d.plugins.smatrix.data.types import ComponentModelerDataType
11+
from tidy3d.web import Batch, BatchData
12+
13+
DEFAULT_DATA_DIR = "."
14+
15+
16+
def create_batch(
17+
modeler: ComponentModelerType,
18+
path_dir: str = DEFAULT_DATA_DIR,
19+
file_name: str = "batch.hdf5",
20+
**kwargs,
21+
) -> Batch:
22+
batch = Batch(simulations=modeler.sim_dict, **kwargs)
23+
batch.to_file(file_name)
24+
25+
return batch
26+
27+
28+
def compose_terminal_modeler_data(
29+
modeler: TerminalComponentModeler,
30+
batch_data: BatchData = None,
31+
) -> TerminalComponentModelerData:
32+
port_to_sim_data_map = {
33+
port_i: batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports
34+
}
35+
port_simulation_data = PortSimulationMap(data=port_to_sim_data_map)
36+
return TerminalComponentModelerData(modeler=modeler, data=port_simulation_data)
37+
38+
39+
def compose_component_modeler_data(
40+
modeler: ComponentModeler,
41+
batch_data: BatchData = None,
42+
) -> ComponentModelerData:
43+
port_to_sim_data_map = {
44+
port_i: batch_data[modeler.get_task_name(port=port_i)] for port_i in modeler.ports
45+
}
46+
port_simulation_data = PortSimulationMap(data=port_to_sim_data_map)
47+
return ComponentModelerData(modeler=modeler, data=port_simulation_data)
48+
49+
50+
def compose_modeler_data(
51+
modeler: ComponentModelerType,
52+
batch_data: BatchData = None,
53+
) -> ComponentModelerDataType:
54+
"""
55+
This method internally determines which functions to run to compose the corresponding ComponentModelerDataType.
56+
"""
57+
if isinstance(modeler, ComponentModeler):
58+
modeler_data = compose_component_modeler_data(modeler=modeler, batch_data=batch_data)
59+
elif isinstance(modeler, TerminalComponentModeler):
60+
modeler_data = compose_terminal_modeler_data(modeler=modeler, batch_data=batch_data)
61+
else:
62+
raise Exception("sasas")
63+
64+
return modeler_data
65+
66+
67+
def run(
68+
modeler: ComponentModelerType,
69+
path_dir: str = DEFAULT_DATA_DIR,
70+
) -> ComponentModelerDataType:
71+
"""
72+
This method internally determines which functions to run to compose the corresponding ComponentModelerDataType.
73+
"""
74+
batch = create_batch(modeler=modeler, path_dir=path_dir)
75+
batch_data = batch.run()
76+
modeler_data = compose_modeler_data(modeler=modeler, batch_data=batch_data)
77+
return modeler_data

0 commit comments

Comments
 (0)