Skip to content

Commit e047cc6

Browse files
dbochkov-flexcomputemarc-flex
authored andcommitted
fix tests, formatting
1 parent 29a2ba7 commit e047cc6

File tree

4 files changed

+22
-24
lines changed

4 files changed

+22
-24
lines changed

tests/test_components/test_heat.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
HeatFluxBC,
1212
HeatSimulation,
1313
HeatSimulationData,
14+
HeatSource,
1415
MediumMediumInterface,
1516
SimulationBoundary,
1617
SolidSpec,
@@ -20,7 +21,6 @@
2021
TemperatureBC,
2122
TemperatureData,
2223
TemperatureMonitor,
23-
UniformHeatSource,
2424
UniformUnstructuredGrid,
2525
)
2626
from tidy3d.exceptions import DataError
@@ -251,20 +251,30 @@ def test_grid_spec():
251251

252252

253253
def make_heat_source():
254-
return UniformHeatSource(structures=["solid_structure"], rate=100)
254+
return HeatSource(structures=["solid_structure"], rate=100)
255+
256+
257+
def make_custom_heat_source():
258+
return HeatSource(
259+
structures=["solid_structure"],
260+
rate=td.SpatialDataArray(np.ones((1, 2, 3)), coords=dict(x=[0], y=[1, 2], z=[3, 4, 5])),
261+
)
255262

256263

257264
def test_heat_source():
258265
source = make_heat_source()
266+
source = make_custom_heat_source()
259267
with pytest.raises(pd.ValidationError):
260268
_ = source.updated_copy(structures=[])
261269

262270

263-
def make_heat_sim():
271+
def make_heat_sim(include_custom_source: bool = True):
264272
fluid_medium, solid_medium = make_heat_mediums()
265273
fluid_structure, solid_structure = make_heat_structures()
266274
bc_temp, bc_flux, bc_conv = make_heat_bcs()
267-
heat_source = make_heat_source()
275+
sources = [make_heat_source()]
276+
if include_custom_source:
277+
sources += [make_custom_heat_source()]
268278

269279
pl1 = HeatBoundarySpec(
270280
condition=bc_conv, placement=MediumMediumInterface(mediums=["fluid_medium", "solid_medium"])
@@ -292,7 +302,7 @@ def make_heat_sim():
292302
size=(2, 2, 2),
293303
boundary_spec=[pl1, pl2, pl3, pl4, pl5],
294304
grid_spec=grid_spec,
295-
sources=[heat_source],
305+
sources=sources,
296306
monitors=temp_mnts,
297307
)
298308

@@ -323,7 +333,7 @@ def test_heat_sim():
323333
_ = heat_sim.updated_copy(boundary_spec=[pl])
324334

325335
with pytest.raises(pd.ValidationError):
326-
_ = heat_sim.updated_copy(sources=[UniformHeatSource(structures=["noname"])], rate=-10)
336+
_ = heat_sim.updated_copy(sources=[HeatSource(structures=["noname"])], rate=-10)
327337

328338
# run 2D case
329339
_ = heat_sim.updated_copy(center=(0.7, 0, 0), size=(0, 2, 2), monitors=heat_sim.monitors[:5])

tests/test_web/test_webapi_heat.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ def test_estimate_cost(set_api_key, mock_get_info, mock_metadata):
259259

260260
@responses.activate
261261
def test_download_json(monkeypatch, mock_get_info, tmp_path):
262-
sim = make_heat_sim()
262+
sim = make_heat_sim(include_custom_source=False)
263263

264264
def mock_download(*args, **kwargs):
265265
pass
@@ -278,7 +278,7 @@ def get_str(*args, **kwargs):
278278
@responses.activate
279279
def test_load_simulation(monkeypatch, mock_get_info, tmp_path):
280280
def mock_download(*args, **kwargs):
281-
make_heat_sim().to_file(args[1])
281+
make_heat_sim(include_custom_source=False).to_file(args[1])
282282

283283
monkeypatch.setattr(f"{task_core_path}.SimulationTask.get_simulation_json", mock_download)
284284

tidy3d/components/tcad/simulation/heat_charge.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,28 +1494,16 @@ def _add_source_cbar(self, ax: Ax, property: str = "heat_conductivity"):
14941494
ax=ax,
14951495
)
14961496

1497-
def _safe_float_conversion(self, string) -> float:
1498-
"""Function to deal with failed string2float conversion when using
1499-
expressions in 'HeatSource'"""
1500-
try:
1501-
return float(string)
1502-
except ValueError:
1503-
return None
1504-
15051497
def source_bounds(self, property: str = "heat_conductivity") -> Tuple[float, float]:
15061498
"""Compute range of heat sources present in the simulation."""
15071499

15081500
if property == "heat_conductivity" or property == "source":
15091501
rate_list = [
1510-
self._safe_float_conversion(source.rate)
1511-
for source in self.sources
1512-
if isinstance(source, HeatSource)
1502+
np.mean(source.rate) for source in self.sources if isinstance(source, HeatSource)
15131503
]
15141504
elif property == "electric_conductivity":
15151505
rate_list = [
1516-
self._safe_float_conversion(source.rate)
1517-
for source in self.sources
1518-
if isinstance(source, ChargeSourceTypes)
1506+
source.rate for source in self.sources if isinstance(source, ChargeSourceTypes)
15191507
] # this is currently an empty list
15201508

15211509
rate_list.append(0)
@@ -1537,7 +1525,7 @@ def _get_structure_source_plot_params(
15371525
plot_params = plot_params.copy(update={"alpha": alpha})
15381526

15391527
if isinstance(source, HeatSource):
1540-
rate = self._safe_float_conversion(source.rate)
1528+
rate = np.mean(source.rate)
15411529
if rate is not None:
15421530
delta_rate = rate - source_min
15431531
delta_rate_max = source_max - source_min + 1e-5

tidy3d/components/tcad/source/heat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
import pydantic.v1 as pd
88

9+
from tidy3d.components.data.data_array import SpatialDataArray
910
from tidy3d.components.tcad.source.abstract import StructureBasedHeatChargeSource
1011
from tidy3d.constants import VOLUMETRIC_HEAT_RATE
11-
from tidy3d.components.data.data_array import SpatialDataArray
1212
from tidy3d.log import log
1313

1414

0 commit comments

Comments
 (0)