@@ -257,6 +257,10 @@ def monitors():
257
257
258
258
electric_field_mnt = td .SteadyElectricFieldMonitor (size = (1.6 , 2 , 3 ), name = "electric_field_test" )
259
259
260
+ current_density_mnt = td .SteadyCurrentDensityMonitor (
261
+ size = (1.6 , 2 , 3 ), name = "current_density_mnt"
262
+ )
263
+
260
264
return [
261
265
temp_mnt1 , # 0
262
266
temp_mnt2 , # 1
@@ -271,6 +275,7 @@ def monitors():
271
275
energy_band_mnt1 , # 10
272
276
mesh_mnt , # 11
273
277
electric_field_mnt , # 12
278
+ current_density_mnt , # 13
274
279
]
275
280
276
281
@@ -756,6 +761,19 @@ def electric_field_monitor_data(monitors):
756
761
return (mnt_data1 , mnt_data2 , mnt_data3 )
757
762
758
763
764
+ @pytest .fixture (scope = "module" )
765
+ def current_density_monitor_data (monitors , electric_field_monitor_data ):
766
+ """Creates different current density monitor data."""
767
+ monitor = monitors [13 ]
768
+ e_data1 , e_data2 , e_data3 = electric_field_monitor_data
769
+
770
+ mnt_data1 = td .SteadyCurrentDensityData (monitor = monitor , J = e_data1 .E )
771
+ mnt_data2 = td .SteadyCurrentDensityData (monitor = monitor , J = e_data2 .E )
772
+ mnt_data3 = td .SteadyCurrentDensityData (monitor = monitor , J = e_data3 .E )
773
+
774
+ return (mnt_data1 , mnt_data2 , mnt_data3 )
775
+
776
+
759
777
@pytest .fixture (scope = "module" )
760
778
def simulation_data (
761
779
heat_simulation ,
@@ -930,52 +948,68 @@ def test_monitor_crosses_medium(mediums, structures, heat_simulation, conduction
930
948
931
949
932
950
def test_heat_charge_mnt_data (
933
- temperature_monitor_data , voltage_monitor_data , electric_field_monitor_data
951
+ temperature_monitor_data ,
952
+ voltage_monitor_data ,
953
+ electric_field_monitor_data ,
954
+ current_density_monitor_data ,
934
955
):
935
956
"""Tests whether different heat-charge monitor data can be created."""
936
957
assert len (temperature_monitor_data ) == 4 , "Expected 4 temperature monitor data entries."
937
958
assert len (voltage_monitor_data ) == 4 , "Expected 4 voltage monitor data entries."
938
959
assert len (electric_field_monitor_data ) == 3 , "Expected 3 electric field monitor data entries."
960
+ assert len (current_density_monitor_data ) == 3 , (
961
+ "Expected 3 current density monitor data entries."
962
+ )
963
+
964
+ for var , mnt_data_lists in [
965
+ ("E" , electric_field_monitor_data ),
966
+ ("J" , current_density_monitor_data ),
967
+ ]:
968
+ for mnt_data in mnt_data_lists :
969
+ assert var in mnt_data .field_components .keys ()
970
+
971
+ symm_data = mnt_data .symmetry_expanded_copy
972
+ if var == "E" :
973
+ assert symm_data .E == mnt_data .E
974
+ elif var == "J" :
975
+ assert symm_data .J == mnt_data .J
976
+
977
+ names = mnt_data .field_name ("abs^2" )
978
+ assert names == var + "²"
979
+ names = mnt_data .field_name ()
980
+ assert names == var
981
+
982
+ # make sure an error is raised if we don't use a field data array
983
+ # TriangularGridDataset
984
+ tri_grid_points = td .PointDataArray (
985
+ [[0.0 , 0.0 ], [1.0 , 0.0 ], [0.0 , 1.0 ], [1.0 , 1.0 ]],
986
+ dims = ("index" , "axis" ),
987
+ )
939
988
940
- for mnt_data in electric_field_monitor_data :
941
- assert "E" in mnt_data .field_components .keys ()
942
-
943
- symm_data = mnt_data .symmetry_expanded_copy
944
- assert symm_data .E == mnt_data .E
945
-
946
- names = mnt_data .field_name ("abs^2" )
947
- assert names == "E²"
948
- names = mnt_data .field_name ()
949
- assert names == "E"
950
-
951
- # make sure an error is raised if we don't use a field data array
952
- # TriangularGridDataset
953
- tri_grid_points = td .PointDataArray (
954
- [[0.0 , 0.0 ], [1.0 , 0.0 ], [0.0 , 1.0 ], [1.0 , 1.0 ]],
955
- dims = ("index" , "axis" ),
956
- )
957
-
958
- tri_grid_cells = td .CellDataArray (
959
- [[0 , 1 , 2 ], [1 , 2 , 3 ]],
960
- dims = ("cell_index" , "vertex_index" ),
961
- )
989
+ tri_grid_cells = td .CellDataArray (
990
+ [[0 , 1 , 2 ], [1 , 2 , 3 ]],
991
+ dims = ("cell_index" , "vertex_index" ),
992
+ )
962
993
963
- tri_grid_values = td .IndexedDataArray (
964
- [1.0 , 2.0 , 3.0 , 4.0 ],
965
- dims = ("index" ,),
966
- name = "T" ,
967
- )
994
+ tri_grid_values = td .IndexedDataArray (
995
+ [1.0 , 2.0 , 3.0 , 4.0 ],
996
+ dims = ("index" ,),
997
+ name = "T" ,
998
+ )
968
999
969
- tri_grid = td .TriangularGridDataset (
970
- normal_axis = 1 ,
971
- normal_pos = 0 ,
972
- points = tri_grid_points ,
973
- cells = tri_grid_cells ,
974
- values = tri_grid_values ,
975
- )
1000
+ tri_grid = td .TriangularGridDataset (
1001
+ normal_axis = 1 ,
1002
+ normal_pos = 0 ,
1003
+ points = tri_grid_points ,
1004
+ cells = tri_grid_cells ,
1005
+ values = tri_grid_values ,
1006
+ )
976
1007
977
- with pytest .raises (pd .ValidationError ):
978
- _ = mnt_data .updated_copy (E = tri_grid )
1008
+ with pytest .raises (pd .ValidationError ):
1009
+ if var == "E" :
1010
+ _ = mnt_data .updated_copy (E = tri_grid )
1011
+ elif var == "J" :
1012
+ _ = mnt_data .updated_copy (J = tri_grid )
979
1013
980
1014
981
1015
def test_grid_spec_validation (grid_specs ):
0 commit comments