Skip to content

Commit 13fcc4b

Browse files
Testing endpoints
1 parent aece7d7 commit 13fcc4b

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

tidy3d/plugins/smatrix/component_modelers/base.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from __future__ import annotations
44

55
import os
6+
import typing
67
from abc import ABC, abstractmethod
78
from typing import Optional, Union, get_args
89

@@ -22,7 +23,6 @@
2223
from tidy3d.plugins.smatrix.ports.modal import Port
2324
from tidy3d.plugins.smatrix.ports.rectangular_lumped import LumpedPort
2425
from tidy3d.plugins.smatrix.ports.wave import WavePort
25-
from tidy3d.web.api.container import Batch, BatchData
2626

2727
# fwidth of gaussian pulse in units of central frequency
2828
FWIDTH_FRAC = 1.0 / 10
@@ -35,6 +35,11 @@
3535
class AbstractComponentModeler(ABC, Tidy3dBaseModel):
3636
"""Tool for modeling devices and computing port parameters."""
3737

38+
name: str = pd.Field(
39+
"",
40+
title="Simulation",
41+
description="Simulation describing the device without any sources present.",
42+
)
3843
simulation: Simulation = pd.Field(
3944
...,
4045
title="Simulation",
@@ -99,7 +104,8 @@ class AbstractComponentModeler(ABC, Tidy3dBaseModel):
99104
"If not supplied, uses default for the current front end version.",
100105
)
101106

102-
batch_cached: Batch = pd.Field(
107+
# TODO properly refactor, plugins should not have web methods.
108+
batch_cached: typing.Any = pd.Field(
103109
None,
104110
title="Batch (Cached)",
105111
description="Optional field to specify ``batch``. Only used as a workaround internally "
@@ -168,8 +174,10 @@ def to_file(self, fname: str) -> None:
168174
super(AbstractComponentModeler, self).to_file(fname=fname) # noqa: UP008
169175

170176
@cached_property
171-
def batch(self) -> Batch:
177+
def batch(self):
172178
""":class:`.Batch` associated with this component modeler."""
179+
# TODO properly refactor, plugins data types should not have web methods.
180+
from tidy3d.web.api.container import Batch
173181

174182
if self.batch_cached is not None:
175183
return self.batch_cached
@@ -194,7 +202,7 @@ def batch_path(self) -> str:
194202
return self.batch._batch_path(path_dir=self.path_dir)
195203

196204
@cached_property
197-
def batch_data(self) -> BatchData:
205+
def batch_data(self):
198206
"""The :class:`.BatchData` associated with the simulations run for this component modeler."""
199207
return self.batch.run(path_dir=self.path_dir)
200208

@@ -216,7 +224,7 @@ def _batch_path(self) -> str:
216224
"""Where we store the batch for this :class:`AbstractComponentModeler` instance after the run."""
217225
return os.path.join(self.path_dir, "batch" + str(hash(self)) + ".hdf5")
218226

219-
def _run_sims(self, path_dir: str = DEFAULT_DATA_DIR) -> BatchData:
227+
def _run_sims(self, path_dir: str = DEFAULT_DATA_DIR):
220228
"""Run :class:`.Simulation` for each port and return the batch after saving."""
221229
_ = self.get_path_dir(path_dir)
222230
self.batch.to_file(self._batch_path)
@@ -231,11 +239,11 @@ def get_port_by_name(self, port_name: str) -> Port:
231239
return ports[0]
232240

233241
@abstractmethod
234-
def _construct_smatrix(self, batch_data: BatchData) -> DataArray:
242+
def _construct_smatrix(self, batch_data) -> DataArray:
235243
"""Post process :class:`.BatchData` to generate scattering matrix."""
236244

237245
@abstractmethod
238-
def _internal_construct_smatrix(self, batch_data: BatchData) -> DataArray:
246+
def _internal_construct_smatrix(self, batch_data) -> DataArray:
239247
"""Post process :class:`.BatchData` to generate scattering matrix, for internal use only."""
240248

241249
def run(self, path_dir: str = DEFAULT_DATA_DIR) -> DataArray:

tidy3d/plugins/smatrix/component_modelers/modal.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from tidy3d.components.viz import add_ax_if_none, equal_aspect
2020
from tidy3d.exceptions import SetupError
2121
from tidy3d.plugins.smatrix.ports.modal import ModalPortDataArray, Port
22-
from tidy3d.web.api.container import BatchData
2322

2423
from .base import FWIDTH_FRAC, AbstractComponentModeler
2524

@@ -277,7 +276,7 @@ def _construct_smatrix(self) -> ModalPortDataArray:
277276
"""Post process :class:`.BatchData` to generate scattering matrix."""
278277
return self._internal_construct_smatrix(batch_data=self.batch_data)
279278

280-
def _internal_construct_smatrix(self, batch_data: BatchData) -> ModalPortDataArray:
279+
def _internal_construct_smatrix(self, batch_data) -> ModalPortDataArray:
281280
"""Post process :class:`.BatchData` to generate scattering matrix, for internal use only."""
282281

283282
max_mode_index_out, max_mode_index_in = self.max_mode_index

tidy3d/plugins/smatrix/component_modelers/terminal.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from tidy3d.plugins.smatrix.ports.coaxial_lumped import CoaxialLumpedPort
2929
from tidy3d.plugins.smatrix.ports.rectangular_lumped import LumpedPort
3030
from tidy3d.plugins.smatrix.ports.wave import WavePort
31-
from tidy3d.web.api.container import Batch, BatchData, Job
3231

3332
from .base import AbstractComponentModeler, TerminalPortType
3433

@@ -199,7 +198,7 @@ def _construct_smatrix(self) -> TerminalPortDataArray:
199198
"""Post process :class:`.BatchData` to generate scattering matrix."""
200199
return self._internal_construct_smatrix(batch_data=self.batch_data)
201200

202-
def _internal_construct_smatrix(self, batch_data: BatchData) -> TerminalPortDataArray:
201+
def _internal_construct_smatrix(self, batch_data) -> TerminalPortDataArray:
203202
"""Post process :class:`.BatchData` to generate scattering matrix, for internal use only."""
204203

205204
port_names = [port.name for port in self.ports]
@@ -464,10 +463,12 @@ def port_reference_impedances(self) -> PortDataArray:
464463
"""The reference impedance used at each port for definining power wave amplitudes."""
465464
return self._port_reference_impedances(self.batch_data)
466465

467-
def _port_reference_impedances(self, batch_data: BatchData) -> PortDataArray:
466+
def _port_reference_impedances(self, batch_data) -> PortDataArray:
468467
"""Tabulates the reference impedance of each port at each frequency using the
469468
supplied :class:`.BatchData`.
470469
"""
470+
# TODO properly refactor, plugins data types should not have web methods.
471+
471472
port_names = [port.name for port in self.ports]
472473

473474
values = np.zeros(
@@ -671,7 +672,10 @@ def _terminal_modeler_path(self) -> str:
671672
"""Where we store the for this :class:`TerminalComponentModeler` instance after the run."""
672673
return os.path.join(self.path_dir, "tcp_" + str(hash(self)) + ".hdf5")
673674

674-
def _upload_terminal_modeler(self) -> Job:
675+
def _upload_terminal_modeler(self):
676+
# TODO properly refactor, plugins data types should not have web methods.
677+
from tidy3d.web.api.container import Job
678+
675679
# first try loading the terminal_component_modeler from file, if it exists
676680
terminal_modeler_path = self._terminal_modeler_path
677681

@@ -680,6 +684,7 @@ def _upload_terminal_modeler(self) -> Job:
680684

681685
return Job(
682686
simulation=self,
687+
task_name=self.name,
683688
folder_name=self.folder_name,
684689
callback_url=self.callback_url,
685690
verbose=self.verbose,
@@ -688,8 +693,10 @@ def _upload_terminal_modeler(self) -> Job:
688693
)
689694

690695
@cached_property
691-
def batch(self) -> Batch:
696+
def batch(self):
692697
""":class:`.Batch` associated with this component modeler."""
698+
# TODO properly refactor, plugins data types should not have web methods.
699+
from tidy3d.web.api.container import Batch
693700

694701
if self.batch_cached is not None:
695702
return self.batch_cached

0 commit comments

Comments
 (0)