aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2020-11-30 09:01:34 -0800
committerGravatar GitHub <noreply@github.com> 2020-11-30 09:01:34 -0800
commit8f3ccb17b31d0b26fedebb3c095700f2014f315c (patch)
treef228ca33f506065252a95a9c3e5c8265425acf67
parentbedec348b35ac28cf85cfe588e0ffd618fb2a1f9 (diff)
downloadWarpX-8f3ccb17b31d0b26fedebb3c095700f2014f315c.tar.gz
WarpX-8f3ccb17b31d0b26fedebb3c095700f2014f315c.tar.zst
WarpX-8f3ccb17b31d0b26fedebb3c095700f2014f315c.zip
Fix bug in yt workaround for Galilean 2D/RZ tests (#1536)
* Use negative velocity in 2D/RZ Galilean tests, remove yt workaround * Remove unused import
-rw-r--r--Examples/Tests/averaged_galilean/inputs_avg_2d6
-rwxr-xr-xExamples/Tests/galilean/analysis_2d.py12
-rw-r--r--Examples/Tests/galilean/inputs_2d6
-rw-r--r--Examples/Tests/galilean/inputs_rz6
-rw-r--r--Regression/Checksum/benchmarks_json/averaged_galilean_2d_psatd.json44
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_2d_psatd.json26
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_2d_psatd_current_correction.json30
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_rz_psatd.json42
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json40
-rw-r--r--Regression/Checksum/checksum.py26
10 files changed, 114 insertions, 124 deletions
diff --git a/Examples/Tests/averaged_galilean/inputs_avg_2d b/Examples/Tests/averaged_galilean/inputs_avg_2d
index cee42c8c5..f553009d3 100644
--- a/Examples/Tests/averaged_galilean/inputs_avg_2d
+++ b/Examples/Tests/averaged_galilean/inputs_avg_2d
@@ -7,7 +7,7 @@ amr.n_cell = 128 128
amr.max_grid_size = 128
amr.blocking_factor = 128
amr.max_level = 0
-psatd.v_galilean = 0 0 0.99498743710662
+psatd.v_galilean = 0 0 -0.99498743710662
psatd.do_time_averaging = 1
@@ -51,7 +51,7 @@ electrons.num_particles_per_cell_each_dim = 2 2
electrons.profile = constant
electrons.density = 282197938148984.7
electrons.momentum_distribution_type = "gaussian"
-electrons.uz_m = 9.9498743710661994
+electrons.uz_m = -9.9498743710661994
electrons.xmin = -12.3776
electrons.xmax = 12.3776
electrons.zmin = -49.5104
@@ -67,7 +67,7 @@ ions.num_particles_per_cell_each_dim = 2 2
ions.profile = constant
ions.density = 282197938148984.7
ions.momentum_distribution_type = "gaussian"
-ions.uz_m = 9.9498743710661994
+ions.uz_m = -9.9498743710661994
ions.xmin = -12.3776
ions.xmax = 12.3776
ions.zmin = -49.5104
diff --git a/Examples/Tests/galilean/analysis_2d.py b/Examples/Tests/galilean/analysis_2d.py
index ea423a71d..d6486a4e2 100755
--- a/Examples/Tests/galilean/analysis_2d.py
+++ b/Examples/Tests/galilean/analysis_2d.py
@@ -37,23 +37,23 @@ Ez= ds.index.grids[0]['boxlib', 'Ez'].squeeze().v
if (averaged):
# energyE_ref was calculated with Galilean PSATD method (v_galilean = (0,0,0.99498743710662))
- energyE_ref = 26913.546573259937
- tolerance_rel = 1e-5
+ energyE_ref = 32532.00882239954
+ tolerance_rel = 1e-6
elif (not dims_RZ and not current_correction):
# energyE_ref was calculated with standard PSATD method (v_galilean = (0.,0.,0.))
- energyE_ref = 38362.88743899688
+ energyE_ref = 35657.99361677053
tolerance_rel = 1e-8
elif (not dims_RZ and current_correction):
# energyE_ref was calculated with standard PSATD method (v_galilean = (0.,0.,0.)):
- energyE_ref = 33331.13857367177
+ energyE_ref = 35024.02751955393
tolerance_rel = 2e-8
elif (dims_RZ and not current_correction):
# energyE_ref was calculated with standard PSATD method (v_galilean = (0.,0.,0.))
- energyE_ref = 178013.54481470847
+ energyE_ref = 239019.10670780553
tolerance_rel = 1e-8
elif (dims_RZ and current_correction):
# energyE_ref was calculated with standard PSATD method (v_galilean = (0.,0.,0.))
- energyE_ref = 455119.0695414118
+ energyE_ref = 471730.0524143545
tolerance_rel = 1e-9
energyE = np.sum(scc.epsilon_0/2*(Ex**2+Ey**2+Ez**2))
diff --git a/Examples/Tests/galilean/inputs_2d b/Examples/Tests/galilean/inputs_2d
index 19189c0f3..c52471983 100644
--- a/Examples/Tests/galilean/inputs_2d
+++ b/Examples/Tests/galilean/inputs_2d
@@ -7,7 +7,7 @@ amr.n_cell = 128 128
amr.max_grid_size = 128
amr.blocking_factor = 128
amr.max_level = 0
-psatd.v_galilean = 0. 0. 0.99498743710662
+psatd.v_galilean = 0. 0. -0.99498743710662
geometry.coord_sys = 0
geometry.is_periodic = 1 1
@@ -47,7 +47,7 @@ electrons.num_particles_per_cell_each_dim = 2 2
electrons.profile = constant
electrons.density = 282197938148984.7
electrons.momentum_distribution_type = "gaussian"
-electrons.uz_m = 9.9498743710661994
+electrons.uz_m = -9.9498743710661994
electrons.xmin = -38.68
electrons.xmax = 38.68
electrons.zmin = -38.68
@@ -62,7 +62,7 @@ ions.num_particles_per_cell_each_dim = 2 2
ions.profile = constant
ions.density = 282197938148984.7
ions.momentum_distribution_type = "gaussian"
-ions.uz_m = 9.9498743710661994
+ions.uz_m = -9.9498743710661994
ions.xmin = -38.68
ions.xmax = 38.68
ions.zmin = -38.68
diff --git a/Examples/Tests/galilean/inputs_rz b/Examples/Tests/galilean/inputs_rz
index 4f94cb643..f2805faf0 100644
--- a/Examples/Tests/galilean/inputs_rz
+++ b/Examples/Tests/galilean/inputs_rz
@@ -7,7 +7,7 @@ amr.n_cell = 64 128
amr.max_grid_size = 128
amr.blocking_factor = 128
amr.max_level = 0
-psatd.v_galilean = 0. 0. 0.99498743710662
+psatd.v_galilean = 0. 0. -0.99498743710662
geometry.coord_sys = 1
geometry.is_periodic = 0 1
@@ -48,7 +48,7 @@ electrons.num_particles_per_cell_each_dim = 2 2
electrons.profile = constant
electrons.density = 282197938148984.7
electrons.momentum_distribution_type = "gaussian"
-electrons.uz_m = 9.9498743710661994
+electrons.uz_m = -9.9498743710661994
electrons.xmin = 0.
electrons.xmax = 38.68
electrons.zmin = -38.68
@@ -63,7 +63,7 @@ ions.num_particles_per_cell_each_dim = 2 2
ions.profile = constant
ions.density = 282197938148984.7
ions.momentum_distribution_type = "gaussian"
-ions.uz_m = 9.9498743710661994
+ions.uz_m = -9.9498743710661994
ions.xmin = 0.
ions.xmax = 38.68
ions.zmin = -38.68
diff --git a/Regression/Checksum/benchmarks_json/averaged_galilean_2d_psatd.json b/Regression/Checksum/benchmarks_json/averaged_galilean_2d_psatd.json
index 761fb0a6b..89fd6eeae 100644
--- a/Regression/Checksum/benchmarks_json/averaged_galilean_2d_psatd.json
+++ b/Regression/Checksum/benchmarks_json/averaged_galilean_2d_psatd.json
@@ -2,32 +2,32 @@
"electrons": {
"particle_cpu": 0.0,
"particle_id": 2147516416.0,
- "particle_momentum_x": 7.517481917937245e-21,
- "particle_momentum_y": 3.896955095181759e-21,
- "particle_momentum_z": 1.7807680056139682e-16,
- "particle_position_x": 405588.5826369648,
- "particle_position_y": 20127109.08237198,
+ "particle_momentum_x": 7.840028236162465e-21,
+ "particle_momentum_y": 3.765146435729977e-21,
+ "particle_momentum_z": 1.7807679253921786e-16,
+ "particle_position_x": 405588.5591398962,
+ "particle_position_y": 20127109.071436103,
"particle_weight": 6.917460794691972e+17
},
"ions": {
- "particle_cpu": 0.0,
- "particle_id": 6442483712.0,
- "particle_momentum_x": 2.6093555711476015e-18,
- "particle_momentum_y": 2.6179624992626143e-18,
- "particle_momentum_z": 3.2697610954306833e-13,
- "particle_position_x": 405588.43858521566,
- "particle_position_y": 20127109.123472013,
- "particle_weight": 6.917460794691972e+17
+ "particle_cpu": 0.0,
+ "particle_id": 6442483712.0,
+ "particle_momentum_x": 2.6093404228219635e-18,
+ "particle_momentum_y": 2.6179500432515532e-18,
+ "particle_momentum_z": 3.269760998813484e-13,
+ "particle_position_x": 405588.43859727494,
+ "particle_position_y": 20127109.11750953,
+ "particle_weight": 6.917460794691972e+17
},
"lev=0": {
- "Bx": 0.004047358398730228,
- "By": 0.002062010558669444,
- "Bz": 0.011439833996386319,
- "Ex": 485509.91869706754,
- "Ey": 3699539.155788414,
- "Ez": 334741.25200744916,
- "jx": 222.69108783295758,
- "jy": 1024.5042310228996,
- "jz": 4716.149133025747
+ "Bx": 0.0037913173274310057,
+ "By": 0.0019410303151043715,
+ "Bz": 0.010731882944058382,
+ "Ex": 471961.34461594024,
+ "Ey": 3576283.0065883463,
+ "Ez": 309019.28003672883,
+ "jx": 221.62156557908702,
+ "jy": 993.3580780378838,
+ "jz": 4650.141880076047
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/galilean_2d_psatd.json b/Regression/Checksum/benchmarks_json/galilean_2d_psatd.json
index b4434adb9..24fb56011 100644
--- a/Regression/Checksum/benchmarks_json/galilean_2d_psatd.json
+++ b/Regression/Checksum/benchmarks_json/galilean_2d_psatd.json
@@ -2,32 +2,32 @@
"electrons": {
"particle_cpu": 0.0,
"particle_id": 2160099328.0,
- "particle_momentum_x": 1.5318380864485464e-21,
+ "particle_momentum_x": 1.5301255600843141e-21,
"particle_momentum_y": 0.0,
- "particle_momentum_z": 1.7807674948394743e-16,
- "particle_position_x": 1267465.7004978752,
- "particle_position_y": 15724304.003752388,
+ "particle_momentum_z": 1.780767547480371e-16,
+ "particle_position_x": 1267465.6993027364,
+ "particle_position_y": 15724303.998543631,
"particle_weight": 1.6888332018290936e+18
},
"ions": {
"particle_cpu": 0.0,
"particle_id": 6522175488.0,
- "particle_momentum_x": 2.6093881778048826e-18,
+ "particle_momentum_x": 2.6093895683186773e-18,
"particle_momentum_y": 0.0,
- "particle_momentum_z": 3.269761095902631e-13,
- "particle_position_x": 1267465.647683476,
- "particle_position_y": 15724304.003483828,
+ "particle_momentum_z": 3.2697609991276653e-13,
+ "particle_position_x": 1267465.6476895714,
+ "particle_position_y": 15724303.998823564,
"particle_weight": 1.6888332018290936e+18
},
"lev=0": {
"Bx": 0.0,
- "By": 0.002476869771141878,
+ "By": 0.002472925048725493,
"Bz": 0.0,
- "Ex": 750177.9584610822,
+ "Ex": 747637.3999003221,
"Ey": 0.0,
- "Ez": 58823.18931851653,
- "jx": 196.76548638250154,
+ "Ez": 58623.22431213792,
+ "jx": 197.603109048905,
"jy": 0.0,
- "jz": 3912.960477247607
+ "jz": 3899.4426229911533
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/galilean_2d_psatd_current_correction.json b/Regression/Checksum/benchmarks_json/galilean_2d_psatd_current_correction.json
index 53e7998b3..40c1ef392 100644
--- a/Regression/Checksum/benchmarks_json/galilean_2d_psatd_current_correction.json
+++ b/Regression/Checksum/benchmarks_json/galilean_2d_psatd_current_correction.json
@@ -2,34 +2,34 @@
"electrons": {
"particle_cpu": 0.0,
"particle_id": 2160099328.0,
- "particle_momentum_x": 1.5467441231224847e-21,
+ "particle_momentum_x": 1.5446768224262931e-21,
"particle_momentum_y": 0.0,
- "particle_momentum_z": 1.7807674945985266e-16,
- "particle_position_x": 1267465.6971651274,
- "particle_position_y": 15724304.003759954,
+ "particle_momentum_z": 1.7807675479103523e-16,
+ "particle_position_x": 1267465.6959779875,
+ "particle_position_y": 15724303.998550693,
"particle_weight": 1.6888332018290936e+18
},
"ions": {
"particle_cpu": 0.0,
"particle_id": 6522175488.0,
- "particle_momentum_x": 2.609388312915195e-18,
+ "particle_momentum_x": 2.609389259207186e-18,
"particle_momentum_y": 0.0,
- "particle_momentum_z": 3.269761095902811e-13,
- "particle_position_x": 1267465.647685301,
- "particle_position_y": 15724304.003483817,
+ "particle_momentum_z": 3.269760999127174e-13,
+ "particle_position_x": 1267465.6476913819,
+ "particle_position_y": 15724303.99882355,
"particle_weight": 1.6888332018290936e+18
},
"lev=0": {
"Bx": 0.0,
- "By": 0.00295723484959143,
+ "By": 0.002955847949540036,
"Bz": 0.0,
- "Ex": 894661.4600751773,
+ "Ex": 893534.7419589404,
"Ey": 0.0,
- "Ez": 65986.52099691203,
- "divE": 1696584.2976513323,
- "jx": 218.31695279432097,
+ "Ez": 65657.88089087335,
+ "divE": 1689738.9457807848,
+ "jx": 219.89616041000212,
"jy": 0.0,
- "jz": 4477.030145847337,
- "rho": 1.5021876011649915e-05
+ "jz": 4459.160944658457,
+ "rho": 1.4961265980553603e-05
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json b/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
index 3b6b66679..e40fa7112 100644
--- a/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
+++ b/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
@@ -2,33 +2,33 @@
"electrons": {
"particle_cpu": 0.0,
"particle_id": 540033024.0,
- "particle_momentum_x": 6.991216723474512e-22,
- "particle_momentum_y": 2.7161964260573423e-22,
- "particle_momentum_z": 8.9036292669071e-17,
- "particle_position_x": 633733.7278962254,
- "particle_position_y": 7862151.377853205,
- "particle_theta": 51362.0874841635,
+ "particle_momentum_x": 6.999660495409049e-22,
+ "particle_momentum_y": 2.7286257042710144e-22,
+ "particle_momentum_z": 8.903628651318955e-17,
+ "particle_position_x": 633733.7284462163,
+ "particle_position_y": 7862151.373823494,
+ "particle_theta": 51362.08760999037,
"particle_weight": 1.0261080645329302e+20
},
"ions": {
"particle_cpu": 0.0,
"particle_id": 1630552064.0,
- "particle_momentum_x": 1.312586801897356e-18,
- "particle_momentum_y": 2.716175862542692e-22,
- "particle_momentum_z": 1.634880615821668e-13,
- "particle_position_x": 633733.7424931434,
- "particle_position_y": 7862152.004348258,
- "particle_theta": 51470.93289875299,
+ "particle_momentum_x": 1.3125868827082553e-18,
+ "particle_momentum_y": 2.7234814546935865e-22,
+ "particle_momentum_z": 1.634880473424221e-13,
+ "particle_position_x": 633733.7424979067,
+ "particle_position_y": 7862151.99748233,
+ "particle_theta": 51470.93289811907,
"particle_weight": 1.0261080645329302e+20
},
"lev=0": {
- "By": 0.002498168642125331,
- "Ex": 751403.0500041273,
- "Ey": 131304.8882148022,
- "Ez": 35783.1787975738,
- "divE": 1349004.6304044977,
- "jx": 163.91848307748262,
- "jz": 50271.11378286561,
- "rho": 0.0000120119242959871
+ "By": 0.0024307114063147504,
+ "Ex": 732693.5768885817,
+ "Ey": 130003.11944446711,
+ "Ez": 36772.52480157818,
+ "divE": 1348744.2569353955,
+ "jx": 163.0127498331044,
+ "jz": 50246.47997764914,
+ "rho": 1.1999059634758576e-05
}
-}
+} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
index 58108dac3..580e7f19c 100644
--- a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
+++ b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
@@ -2,33 +2,33 @@
"electrons": {
"particle_cpu": 0.0,
"particle_id": 540033024.0,
- "particle_momentum_x": 7.036569201550279e-22,
- "particle_momentum_y": 2.793899497847637e-22,
- "particle_momentum_z": 8.903840099297628e-17,
- "particle_position_x": 633734.05750754,
- "particle_position_y": 7862152.002417763,
- "particle_theta": 51362.087731504886,
+ "particle_momentum_x": 7.043225585491615e-22,
+ "particle_momentum_y": 2.8095488450457388e-22,
+ "particle_momentum_z": 8.903838826207317e-17,
+ "particle_position_x": 633734.0562112605,
+ "particle_position_y": 7862151.998116621,
+ "particle_theta": 51362.087830016804,
"particle_weight": 1.0261080645329302e+20
},
"ions": {
"particle_cpu": 0.0,
"particle_id": 1630552064.0,
- "particle_momentum_x": 1.3125865468027496e-18,
- "particle_momentum_y": 2.7973553652944355e-22,
- "particle_momentum_z": 1.6348805947388629e-13,
- "particle_position_x": 633733.7423125396,
- "particle_position_y": 7862152.004008202,
- "particle_theta": 51470.9328987146,
+ "particle_momentum_x": 1.3125871812988232e-18,
+ "particle_momentum_y": 2.8053964233138836e-22,
+ "particle_momentum_z": 1.634880452407025e-13,
+ "particle_position_x": 633733.7423183098,
+ "particle_position_y": 7862151.997142417,
+ "particle_theta": 51470.93289806633,
"particle_weight": 1.0261080645329302e+20
},
"lev=0": {
- "By": 0.0018580984062963768,
- "Ex": 559867.6116316387,
- "Ey": 131307.09706676172,
- "Ez": 39058.43730735371,
- "divE": 1270475.6165551757,
- "jx": 166.53608827990212,
- "jz": 50424.94919403208,
- "rho": 1.1249029720562342e-05
+ "By": 0.0018845897904908619,
+ "Ex": 568097.4835035336,
+ "Ey": 130003.2620179485,
+ "Ez": 40677.99022297442,
+ "divE": 1279972.8318518812,
+ "jx": 166.90827028769894,
+ "jz": 50430.778236016544,
+ "rho": 1.1333119848498335e-05
}
} \ No newline at end of file
diff --git a/Regression/Checksum/checksum.py b/Regression/Checksum/checksum.py
index 446fac352..67aa3b220 100644
--- a/Regression/Checksum/checksum.py
+++ b/Regression/Checksum/checksum.py
@@ -8,7 +8,6 @@
from benchmark import Benchmark
import yt
-import re
import sys
import numpy as np
@@ -58,27 +57,18 @@ class Checksum:
# Compute checksum for field quantities
if do_fields:
- # Boolean variable parsed from test name needed for workaround below
- galilean = True if re.search('galilean', self.test_name) else False
for lev in range(ds.max_level+1):
data_lev = {}
lev_grids = [grid for grid in ds.index.grids
if grid.Level == lev]
- if not (galilean):
- # Warning: For now, we assume all levels are rectangular
- LeftEdge = np.min(
- np.array([grid.LeftEdge.v for grid in lev_grids]), axis=0)
- all_data_level = ds.covering_grid(
- level=lev, left_edge=LeftEdge, dims=ds.domain_dimensions)
- for field in grid_fields:
- Q = all_data_level[field].v.squeeze()
- data_lev[field[1]] = np.sum(np.abs(Q))
- # Workaround for Galilean tests: the standard procedure above
- # does not seem to read 2D fields data correctly
- elif (galilean):
- for field in grid_fields:
- Q = ds.index.grids[lev][field].v.squeeze()
- data_lev[field[1]] = np.sum(np.abs(Q))
+ # Warning: For now, we assume all levels are rectangular
+ LeftEdge = np.min(
+ np.array([grid.LeftEdge.v for grid in lev_grids]), axis=0)
+ all_data_level = ds.covering_grid(
+ level=lev, left_edge=LeftEdge, dims=ds.domain_dimensions)
+ for field in grid_fields:
+ Q = all_data_level[field].v.squeeze()
+ data_lev[field[1]] = np.sum(np.abs(Q))
data['lev=' + str(lev)] = data_lev
# Compute checksum for particle quantities