@@ -257,6 +257,10 @@ def monitors():
257257
258258 electric_field_mnt = td .SteadyElectricFieldMonitor (size = (1.6 , 2 , 3 ), name = "electric_field_test" )
259259
260+ current_density_mnt = td .SteadyCurrentDensityMonitor (
261+ size = (1.6 , 2 , 3 ), name = "current_density_mnt"
262+ )
263+
260264 return [
261265 temp_mnt1 , # 0
262266 temp_mnt2 , # 1
@@ -271,6 +275,7 @@ def monitors():
271275 energy_band_mnt1 , # 10
272276 mesh_mnt , # 11
273277 electric_field_mnt , # 12
278+ current_density_mnt , # 13
274279 ]
275280
276281
@@ -756,6 +761,19 @@ def electric_field_monitor_data(monitors):
756761 return (mnt_data1 , mnt_data2 , mnt_data3 )
757762
758763
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+
759777@pytest .fixture (scope = "module" )
760778def simulation_data (
761779 heat_simulation ,
@@ -930,52 +948,68 @@ def test_monitor_crosses_medium(mediums, structures, heat_simulation, conduction
930948
931949
932950def 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 ,
934955):
935956 """Tests whether different heat-charge monitor data can be created."""
936957 assert len (temperature_monitor_data ) == 4 , "Expected 4 temperature monitor data entries."
937958 assert len (voltage_monitor_data ) == 4 , "Expected 4 voltage monitor data entries."
938959 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+ )
939988
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+ )
962993
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+ )
968999
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+ )
9761007
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 )
9791013
9801014
9811015def test_grid_spec_validation (grid_specs ):
0 commit comments