diff options
author | 2022-12-02 20:20:17 -0800 | |
---|---|---|
committer | 2022-12-02 20:20:17 -0800 | |
commit | 2857ca08a97b3a8f82d902480816acac0b9614d6 (patch) | |
tree | 5999a62464445e491eeb81a96444f48c0fa41125 /Examples/Modules/ionization/analysis_ionization.py | |
parent | 3b6a467d1b7dd79ce90b02048dd1c6a0db7b138d (diff) | |
download | WarpX-2857ca08a97b3a8f82d902480816acac0b9614d6.tar.gz WarpX-2857ca08a97b3a8f82d902480816acac0b9614d6.tar.zst WarpX-2857ca08a97b3a8f82d902480816acac0b9614d6.zip |
Clean up examples folders (#3545)
* Clean up examples folders
* Use `snake_case` names
* Rename `nci_corrector` as `nci_fdtd_stability`
Diffstat (limited to 'Examples/Modules/ionization/analysis_ionization.py')
-rwxr-xr-x | Examples/Modules/ionization/analysis_ionization.py | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/Examples/Modules/ionization/analysis_ionization.py b/Examples/Modules/ionization/analysis_ionization.py deleted file mode 100755 index e5d61fc0c..000000000 --- a/Examples/Modules/ionization/analysis_ionization.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright 2019-2020 Luca Fedeli, Maxence Thevenet -# -# This file is part of WarpX. -# -# License: BSD-3-Clause-LBNL - - -""" -This script tests the result of the ionization module in WarpX. - -Input files inputs.rt and inputs.bf.rt are used to reproduce the test from -Chen, JCP, 2013, figure 2 (in the lab frame and in a boosted frame, -respectively): a plane-wave laser pulse propagates through a -uniform N2+ neutral plasma and further ionizes the Nitrogen atoms. This test -checks that, after the laser went through the plasma, ~32% of Nitrogen -ions are N5+, in agreement with theory from Chen's article. -""" - -import os -import sys - -import numpy as np -import yt - -yt.funcs.mylog.setLevel(0) -sys.path.insert(1, '../../../../warpx/Regression/Checksum/') -import checksumAPI - -# Open plotfile specified in command line, and get ion's ionization level. -filename = sys.argv[1] -ds = yt.load( filename ) -ad = ds.all_data() -ilev = ad['ions', 'particle_ionizationLevel'].v - -# Fraction of Nitrogen ions that are N5+. -N5_fraction = ilev[ilev == 5].size/float(ilev.size) - -print("Number of ions: " + str(ilev.size)) -print("Number of N5+ : " + str(ilev[ilev == 5].size)) -print("N5_fraction : " + str(N5_fraction)) - -do_plot = False -if do_plot: - import matplotlib.pyplot as plt - all_data_level_0 = ds.covering_grid(level=0,left_edge=ds.domain_left_edge, - dims=ds.domain_dimensions) - F = all_data_level_0['boxlib', 'Ex'].v.squeeze() - extent = [ ds.domain_left_edge[1], ds.domain_right_edge[1], - ds.domain_left_edge[0], ds.domain_right_edge[0] ] - ad = ds.all_data() - - # Plot ions with ionization levels - species = 'ions'; - xi = ad[species, 'particle_position_x'].v - zi = ad[species, 'particle_position_y'].v - ii = ad[species, 'particle_ionizationLevel'].v - plt.figure(figsize=(10,10)) - plt.subplot(211) - plt.imshow(np.abs(F), extent=extent, aspect='auto', - cmap='magma', origin='default') - plt.colorbar() - for lev in range(int(np.max(ii)+1)): - select = (ii == lev) - plt.scatter(zi[select],xi[select],s=.2, - label='ionization level: ' + str(lev)) - plt.legend() - plt.title("abs(Ex) (V/m) and ions") - plt.xlabel("z (m)") - plt.ylabel("x (m)") - plt.subplot(212) - plt.imshow(np.abs(F), extent=extent, aspect='auto', - cmap='magma', origin='default') - plt.colorbar() - - # Plot electrons - species = 'electrons'; - if species in [x[0] for x in ds.field_list]: - xe = ad[species, 'particle_position_x'].v - ze = ad[species, 'particle_position_y'].v - plt.scatter(ze,xe,s=.1,c='r',label='electrons') - plt.title("abs(Ex) (V/m) and electrons") - plt.xlabel("z (m)") - plt.ylabel("x (m)") - plt.savefig("image_ionization.pdf", bbox_inches='tight') - -error_rel = abs(N5_fraction-0.32) / 0.32 -tolerance_rel = 0.07 - -print("error_rel : " + str(error_rel)) -print("tolerance_rel: " + str(tolerance_rel)) - -assert( error_rel < tolerance_rel ) - -test_name = os.path.split(os.getcwd())[1] -checksumAPI.evaluate_checksum(test_name, filename) |