aboutsummaryrefslogtreecommitdiff
path: root/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-10-11 10:40:51 -0700
committerGravatar GitHub <noreply@github.com> 2019-10-11 10:40:51 -0700
commit46baf306dfa45a5a966452664d8f041e608711eb (patch)
tree80a14e9e2d07f0fde0ee954ee49c9fe1aabd1edb /Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py
parent3fea6d30d65967f77a3fa6d9a2322609cdd111b7 (diff)
parent9e4cb10cbd19d787852bcfbb5cd83b38497ce5a6 (diff)
downloadWarpX-46baf306dfa45a5a966452664d8f041e608711eb.tar.gz
WarpX-46baf306dfa45a5a966452664d8f041e608711eb.tar.zst
WarpX-46baf306dfa45a5a966452664d8f041e608711eb.zip
Merge pull request #344 from lucafedeli88/qed_phys_part_with_lambda
QED: now particles initialize a real component (optical depth) to be used for QED modules
Diffstat (limited to 'Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py')
-rwxr-xr-xExamples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py b/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py
new file mode 100755
index 000000000..05b313ee6
--- /dev/null
+++ b/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py
@@ -0,0 +1,36 @@
+#! /usr/bin/env python3
+import yt
+import numpy as np
+import scipy.stats as st
+import sys
+
+# This script checks if electrons and positrons initialized with
+# Quantum Synchrotron process enabled
+# do actually have an exponentially distributed optical depth
+
+# Tolerance
+tol = 1e-2
+
+def check():
+ filename = sys.argv[1]
+ data_set = yt.load(filename)
+
+ all_data = data_set.all_data()
+ res_ele_tau = all_data["electrons", 'particle_tau']
+ res_pos_tau = all_data["positrons", 'particle_tau']
+
+ loc_ele, scale_ele = st.expon.fit(res_ele_tau)
+ loc_pos, scale_pos = st.expon.fit(res_pos_tau)
+
+ # loc should be very close to 0, scale should be very close to 1
+ assert(np.abs(loc_ele - 0) < tol)
+ assert(np.abs(loc_pos - 0) < tol)
+ assert(np.abs(scale_ele - 1) < tol)
+ assert(np.abs(scale_pos - 1) < tol)
+
+def main():
+ check()
+
+if __name__ == "__main__":
+ main()
+