diff options
author | 2019-10-11 10:40:51 -0700 | |
---|---|---|
committer | 2019-10-11 10:40:51 -0700 | |
commit | 46baf306dfa45a5a966452664d8f041e608711eb (patch) | |
tree | 80a14e9e2d07f0fde0ee954ee49c9fe1aabd1edb /Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py | |
parent | 3fea6d30d65967f77a3fa6d9a2322609cdd111b7 (diff) | |
parent | 9e4cb10cbd19d787852bcfbb5cd83b38497ce5a6 (diff) | |
download | WarpX-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-x | Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py | 36 |
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() + |