aboutsummaryrefslogtreecommitdiff
path: root/Examples/Modules/ionization/analysis_ionization.py
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2022-12-02 20:20:17 -0800
committerGravatar GitHub <noreply@github.com> 2022-12-02 20:20:17 -0800
commit2857ca08a97b3a8f82d902480816acac0b9614d6 (patch)
tree5999a62464445e491eeb81a96444f48c0fa41125 /Examples/Modules/ionization/analysis_ionization.py
parent3b6a467d1b7dd79ce90b02048dd1c6a0db7b138d (diff)
downloadWarpX-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-xExamples/Modules/ionization/analysis_ionization.py97
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)