diff options
59 files changed, 447 insertions, 1044 deletions
diff --git a/.github/workflows/source.yml b/.github/workflows/source.yml index 8e1dbec05..040a0d449 100644 --- a/.github/workflows/source.yml +++ b/.github/workflows/source.yml @@ -13,3 +13,7 @@ jobs: run: .github/workflows/source/hasTabs - name: End-of-Line whitespaces run: .github/workflows/source/hasEOLwhiteSpace + - name: Proper file names in Examples + run: .github/workflows/source/wrongFileNameInExamples + - name: Examples are tested + run: .github/workflows/source/inputsNotTested diff --git a/.github/workflows/source/inputsNotTested b/.github/workflows/source/inputsNotTested new file mode 100755 index 000000000..615db9367 --- /dev/null +++ b/.github/workflows/source/inputsNotTested @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +# Search input files in Examples/ and verify if all input files are tested + +ok=0 + +for file in $(find Examples -type f) +do + # Name of file without path + filename=$(basename $file) + # If file is an input file + if [[ ${filename:0:6 } =~ inputs ]] || + [[ ${filename:0:12} =~ PICMI_inputs ]] + then + # Search file name in test list + string_match=$(grep -m1 "$file" Regression/WarpX-tests.ini) + # If match is empty, inputs examples is not tested + if [[ -z $string_match ]] + then + echo "$file is not tested!" + ok=1 + fi + fi +done + +if [ $ok -ne 0 ] +then + echo "" + echo "All files in Examples that start with one of" + echo " - inputs" + echo " - PICMI_inputs" + echo "must have an automated test." + echo "Please add a test in Regression/WarpX-tests.ini" + echo "for all files listed above." +fi + +exit $ok
\ No newline at end of file diff --git a/.github/workflows/source/wrongFileNameInExamples b/.github/workflows/source/wrongFileNameInExamples new file mode 100755 index 000000000..0a5c56aba --- /dev/null +++ b/.github/workflows/source/wrongFileNameInExamples @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# Search inside Examples/ and check that file names start with +# inputs +# PICMI_inputs +# analysis +# README + +ok=0 +files=() + +for pathtofile in $(find Examples -type f) +do + file=$(basename $pathtofile) + if [[ ${file:0:6 } != inputs ]] && + [[ ${file:0:12} != PICMI_inputs ]] && + [[ ${file:0:8 } != analysis ]] && + [[ ${file:0:6 } != README ]] + then + files+=($file) + echo "$pathtofile does not have a proper name!" + ok=1 + fi +done + +if [ $ok -ne 0 ] +then + echo "" + echo "Files in Examples/ must start with one of:" + echo " - inputs : for WarpX input files" + echo " - PICMI_inputs : for PICMI-compliant input scripts" + echo " - analysis : for scripts testing the accuracy of a test" + echo " - README : for readme files" + echo "" + echo "Please rename the file(s) to comply, or move to another folder" +fi + +exit $ok
\ No newline at end of file diff --git a/Docs/source/running_cpp/platforms.rst b/Docs/source/running_cpp/platforms.rst index e74aa36db..9600c1c30 100644 --- a/Docs/source/running_cpp/platforms.rst +++ b/Docs/source/running_cpp/platforms.rst @@ -8,7 +8,7 @@ The batch script below can be used to run a WarpX simulation on 2 KNL nodes on the supercomputer Cori at NERSC. Replace descriptions between chevrons ``<>`` by relevant values, for instance ``<job name>`` could be ``laserWakefield``. -.. literalinclude:: ../../../Examples/batchScripts/batch_cori.sh +.. literalinclude:: ../../../Tools/batchScripts/batch_cori.sh :language: bash To run a simulation, copy the lines above to a file ``batch_cori.sh`` and @@ -42,7 +42,7 @@ by relevalt values, for instance ``<input file>`` could be ``plasma_mirror_inputs``. Note that the only option so far is to run with one MPI rank per GPU. -.. literalinclude:: ../../../Examples/batchScripts/batch_summit.sh +.. literalinclude:: ../../../Tools/batchScripts/batch_summit.sh :language: bash To run a simulation, copy the lines above to a file ``batch_summit.sh`` and diff --git a/Examples/Modules/boosted_diags/inputs.2d b/Examples/Modules/boosted_diags/inputs.2d deleted file mode 100644 index 6afe6977d..000000000 --- a/Examples/Modules/boosted_diags/inputs.2d +++ /dev/null @@ -1,95 +0,0 @@ -# Maximum number of time steps -max_step = 260 - -# number of grid points -amr.n_cell = 64 64 512 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. - -amr.max_grid_size = 32 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 -amr.plot_int = 10 # How often to write plotfiles. "<= 0" means no plotfiles. -amr.check_int = 10 - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 0 # Is periodic? -geometry.prob_lo = -150.e-6 -150.e-6 -0.6e-3 # physical domain -geometry.prob_hi = 150.e-6 150.e-6 0. - -# Verbosity -warpx.verbose = 1 - -# Algorithms -algo.current_deposition = direct - -# Numerics -interpolation.nox = 3 -interpolation.noy = 3 -interpolation.noz = 3 -warpx.use_filter = 1 -warpx.cfl = 1.0 -warpx.do_pml = 0 - -# Moving window -warpx.do_moving_window = 1 -warpx.moving_window_dir = z -warpx.moving_window_v = 1.0 # in units of the speed of light - -# Boosted frame -warpx.gamma_boost = 15. -warpx.boost_direction = z - -# Diagnostics -warpx.do_boosted_frame_diagnostic = 1 -warpx.num_snapshots_lab = 20 -warpx.dt_snapshots_lab = 7.0e-14 - -# Species -particles.nspecies = 2 -particles.species_names = electrons ions - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.xmin = -150.e-6 -electrons.xmax = 150.e-6 -electrons.ymin = -150.e-6 -electrons.ymax = 150.e-6 -electrons.zmin = 0.e-6 -electrons.num_particles_per_cell_each_dim = 1 1 2 -electrons.profile = constant -electrons.density = 1. -electrons.momentum_distribution_type = "constant" -electrons.do_continuous_injection = 1 - -ions.charge = q_e -ions.mass = m_p -ions.injection_style = "NUniformPerCell" -ions.xmin = -150.e-6 -ions.xmax = 150.e-6 -ions.ymin = -150.e-6 -ions.ymax = 150.e-6 -ions.zmin = 0.e-6 -ions.num_particles_per_cell_each_dim = 1 1 2 -ions.profile = constant -ions.density = 1. -ions.momentum_distribution_type = "constant" -ions.do_continuous_injection = 1 - -# Laser -lasers.nlasers = 1 -lasers.names = laser1 -laser1.profile = Gaussian -laser1.position = 0. 0. -1.e-6 # This point is on the laser plane -laser1.direction = 0. 0. 1. # The plane normal direction -laser1.polarization = 1. 0. 0. # The main polarization vector -laser1.e_max = 8.e12 # Maximum amplitude of the laser field (in V/m) -laser1.profile_waist = 5.e-5 # The waist of the laser (in meters) -laser1.profile_duration = 16.7e-15 # The duration of the laser (in seconds) -laser1.profile_t_peak = 33.4e-15 # The time at which the laser reaches its peak (in seconds) -laser1.profile_focal_distance = 0.e-6 # Focal distance from the antenna (in meters) -laser1.wavelength = 0.8e-6 # The wavelength of the laser (in meters) diff --git a/Examples/Modules/boosted_diags/inputs.3d b/Examples/Modules/boosted_diags/inputs.3d deleted file mode 100644 index 528eb6cd9..000000000 --- a/Examples/Modules/boosted_diags/inputs.3d +++ /dev/null @@ -1,95 +0,0 @@ -# Maximum number of time steps -max_step = 260 - -# number of grid points -amr.n_cell = 64 64 512 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. - -amr.max_grid_size = 32 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 -amr.plot_int = 10 # How often to write plotfiles. "<= 0" means no plotfiles. -amr.check_int = 10 - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 0 # Is periodic? -geometry.prob_lo = -150.e-6 -150.e-6 -0.6e-3 # physical domain -geometry.prob_hi = 150.e-6 150.e-6 0. - -# Verbosity -warpx.verbose = 1 - -# Algorithms -algo.current_deposition = direct - -# Numerics -interpolation.nox = 3 -interpolation.noy = 3 -interpolation.noz = 3 -warpx.use_filter = 1 -warpx.cfl = 1.0 -warpx.do_pml = 0 - -# Moving window -warpx.do_moving_window = 1 -warpx.moving_window_dir = z -warpx.moving_window_v = 1.0 # in units of the speed of light - -# Boosted frame -warpx.gamma_boost = 15. -warpx.boost_direction = z - -# Diagnostics -warpx.do_boosted_frame_diagnostic = 1 -warpx.num_snapshots_lab = 20; -warpx.dt_snapshots_lab = 7.0e-14; - -# Species -particles.nspecies = 2 -particles.species_names = electrons ions - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.xmin = -150.e-6 -electrons.xmax = 150.e-6 -electrons.ymin = -150.e-6 -electrons.ymax = 150.e-6 -electrons.zmin = 0.e-6 -electrons.num_particles_per_cell_each_dim = 1 1 2 -electrons.profile = constant -electrons.density = 1. -electrons.momentum_distribution_type = "constant" -electrons.do_continuous_injection = 1 - -ions.charge = q_e -ions.mass = m_p -ions.injection_style = "NUniformPerCell" -ions.xmin = -150.e-6 -ions.xmax = 150.e-6 -ions.ymin = -150.e-6 -ions.ymax = 150.e-6 -ions.zmin = 0.e-6 -ions.num_particles_per_cell_each_dim = 1 1 2 -ions.profile = constant -ions.density = 1. -ions.momentum_distribution_type = "constant" -ions.do_continuous_injection = 1 - -# Laser -lasers.nlasers = 1 -lasers.names = laser1 -laser1.profile = Gaussian -laser1.position = 0. 0. -1.e-6 # This point is on the laser plane -laser1.direction = 0. 0. 1. # The plane normal direction -laser1.polarization = 1. 0. 0. # The main polarization vector -laser1.e_max = 8.e12 # Maximum amplitude of the laser field (in V/m) -laser1.profile_waist = 5.e-5 # The waist of the laser (in meters) -laser1.profile_duration = 16.7e-15 # The duration of the laser (in seconds) -laser1.profile_t_peak = 33.4e-15 # The time at which the laser reaches its peak (in seconds) -laser1.profile_focal_distance = 0.e-6 # Focal distance from the antenna (in meters) -laser1.wavelength = 0.8e-6 # The wavelength of the laser (in meters) diff --git a/Examples/Modules/charged_beam/inputs b/Examples/Modules/charged_beam/inputs deleted file mode 100644 index 18b645281..000000000 --- a/Examples/Modules/charged_beam/inputs +++ /dev/null @@ -1,50 +0,0 @@ -# Maximum number of time steps -max_step = 40 - -# number of grid points -amr.n_cell = 63 63 63 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 32 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -amr.plot_int = 1 # How often to write plotfiles. "<= 0" means no plotfiles. - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 1 # Is periodic? -geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain -geometry.prob_hi = 20.e-6 20.e-6 20.e-6 - -# Verbosity -warpx.verbose = 1 - -# Algorithms -algo.current_deposition = direct - -# CFL -warpx.cfl = 1.0 - -particles.nspecies = 1 -particles.species_names = electrons - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.num_particles_per_cell_each_dim = 2 2 2 - -electrons.xmin = -20.e-6 -electrons.xmax = 0.e-6 -electrons.ymin = -20.e-6 -electrons.ymax = 20.e-6 -electrons.zmin = -20.e-6 -electrons.zmax = 20.e-6 - -electrons.profile = constant -electrons.density = 1.e25 # number of electrons per m^3 - -electrons.momentum_distribution_type = "constant" -electrons.ux = 0.01 # ux = gamma*beta_x diff --git a/Examples/Modules/gaussian_beam/gaussian_beam_PICMI.py b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py index a22e83794..ecc8f5a65 100644 --- a/Examples/Modules/gaussian_beam/gaussian_beam_PICMI.py +++ b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py @@ -45,9 +45,9 @@ electrons = picmi.Species(particle_type='electron', name='electrons', initial_di protons = picmi.Species(particle_type='proton', name='protons', initial_distribution=proton_beam) sim = picmi.Simulation(solver = solver, - max_steps = 1000, + max_steps = 10, verbose = 1, - warpx_plot_int = 8, + warpx_plot_int = 10, warpx_current_deposition_algo = 'direct') sim.add_species(electrons, layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles)) diff --git a/Examples/Modules/gaussian_beam/inputs b/Examples/Modules/gaussian_beam/inputs deleted file mode 100644 index 46cd785f2..000000000 --- a/Examples/Modules/gaussian_beam/inputs +++ /dev/null @@ -1,100 +0,0 @@ -# Maximum number of time steps -max_step = 1000 - -# number of grid points -amr.n_cell = 32 32 32 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 16 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -amr.plot_int = 8 # How often to write plotfiles. "<= 0" means no plotfiles. - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 0 # Is periodic? -geometry.prob_lo = -2. -2. -2. # physical domain -geometry.prob_hi = 2. 2. 2. - -# Verbosity -warpx.verbose = 1 - -# Algorithms - -# interpolation -interpolation.nox = 3 -interpolation.noy = 3 -interpolation.noz = 3 - -# CFL -warpx.cfl = 1.0 - -# Information about the particle species -particles.nspecies = 2 -particles.species_names = electrons protons - -# -# The electron species information -# - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "gaussian_beam" -electrons.x_rms = 0.25 -electrons.y_rms = 0.25 -electrons.z_rms = 0.25 -electrons.x_m = 0. -electrons.y_m = 0. -electrons.z_m = 0. -electrons.npart = 32768 -electrons.q_tot = -8.010883097437485e-07 - -electrons.profile = "constant" -electrons.density = 1 -electrons.momentum_distribution_type = "radial_expansion" -electrons.u_over_r = -0.04 - -electrons.xmin = -2 -electrons.xmax = 2 -electrons.ymin = -2 -electrons.ymax = 2 -electrons.zmin = -2 -electrons.zmax = 2 - -# -# The proton species information -# - -protons.charge = q_e -protons.mass = m_p -protons.injection_style = "gaussian_beam" -protons.x_rms = 0.25 -protons.y_rms = 0.25 -protons.z_rms = 0.25 -protons.x_m = 0. -protons.y_m = 0. -protons.z_m = 0. -protons.npart = 32768 -protons.q_tot = 8.010883097437485e-07 - -protons.profile = "constant" -protons.density = 1 -protons.momentum_distribution_type = "radial_expansion" -protons.u_over_r = 0. - -protons.xmin = -2 -protons.xmax = 2 -protons.ymin = -2 -protons.ymax = 2 -protons.zmin = -2 -protons.zmax = 2 - -warpx.do_pml = 0 - -# Moving window -warpx.do_moving_window = 0 -warpx.moving_window_dir = z -warpx.moving_window_v = 1.0 # in units of the speed of light diff --git a/Examples/Modules/ionization/ionization_analysis.py b/Examples/Modules/ionization/analysis_ionization.py index f512eac6e..f512eac6e 100755 --- a/Examples/Modules/ionization/ionization_analysis.py +++ b/Examples/Modules/ionization/analysis_ionization.py diff --git a/Examples/Modules/laser_injection/Visualization.ipynb b/Examples/Modules/laser_injection/Visualization.ipynb deleted file mode 100644 index 68dd53ac7..000000000 --- a/Examples/Modules/laser_injection/Visualization.ipynb +++ /dev/null @@ -1,137 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Overview\n", - "\n", - "This a notebook that inspects the results of a WarpX simulation.\n", - "\n", - "# Instructions\n", - "\n", - "Execute the cells below one by one, by selecting them with your mouse and typing `Shift + Enter`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Import statements\n", - "import sys\n", - "from tqdm import tqdm\n", - "import yt, glob\n", - "yt.funcs.mylog.setLevel(50)\n", - "from IPython.display import clear_output\n", - "import numpy as np\n", - "from ipywidgets import interact, RadioButtons, IntSlider\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib\n", - "\n", - "# Find iterations\n", - "file_list = glob.glob('plt?????')\n", - "iterations = [ int(file_name[3:]) for file_name in file_list ]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Functions to plot the fields" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "def plot_field( iteration, field, slicing_direction='y', plotter='matplotlib' ):\n", - " ds = yt.load( './plt%05d/' %iteration )\n", - " all_data_level_0 = ds.covering_grid(level=0, \n", - " left_edge=ds.domain_left_edge, dims=ds.domain_dimensions)\n", - " \n", - " if plotter == 'yt':\n", - " sl = yt.SlicePlot(ds, slicing_direction, field)\n", - " sl.set_log( field, False)\n", - " sl.annotate_grids()\n", - " # Show the new plot\n", - " clear_output()\n", - " sl.show()\n", - "\n", - " elif plotter == 'matplotlib':\n", - "\n", - " left_edge = ds.domain_left_edge.convert_to_mks()*1.e6\n", - " right_edge = ds.domain_right_edge.convert_to_mks()*1.e6\n", - " \n", - " if slicing_direction == 'x':\n", - " n = int( ds.domain_dimensions[0]//2 )\n", - " data2d = all_data_level_0[field][n, :, :]\n", - " extent = [ left_edge[2], right_edge[2], left_edge[1], right_edge[1] ]\n", - " elif slicing_direction == 'y':\n", - " n = int( ds.domain_dimensions[1]//2 )\n", - " data2d = all_data_level_0[field][:, n, :]\n", - " extent = [ left_edge[2], right_edge[2], left_edge[0], right_edge[0] ]\n", - " elif slicing_direction == 'z':\n", - " n = int( ds.domain_dimensions[2]//2 )\n", - " data2d = all_data_level_0[field][:, :, n]\n", - " extent = [ left_edge[1], right_edge[1], left_edge[0], right_edge[0] ]\n", - " plt.clf()\n", - " plt.title(\"%s at iteration %d\" %(field, iteration) )\n", - " plt.imshow( data2d, interpolation='nearest', cmap='viridis',\n", - " origin='lower', extent=extent, aspect='auto' )\n", - " plt.colorbar()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Interactive viewer" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "interact(plot_field, \n", - " iteration = IntSlider(min=min(iterations), max=max(iterations), step=iterations[1]-iterations[0]),\n", - " field = RadioButtons( options=['jx', 'jy', 'jz', 'Ex', 'Ey', 'Ez'], value='jz'),\n", - " slicing_direction = RadioButtons( options=[ 'x', 'y', 'z'], value='y'),\n", - " plotter = RadioButtons( options=['matplotlib', 'yt'] ) )" - ] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python [default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/Examples/Modules/laser_injection/laser_analysis.py b/Examples/Modules/laser_injection/analysis_laser.py index 1951bb29a..1951bb29a 100755 --- a/Examples/Modules/laser_injection/laser_analysis.py +++ b/Examples/Modules/laser_injection/analysis_laser.py diff --git a/Examples/Modules/nci_corrector/ncicorr_analysis.py b/Examples/Modules/nci_corrector/analysis_ncicorr.py index 94dd2f838..94dd2f838 100755 --- a/Examples/Modules/nci_corrector/ncicorr_analysis.py +++ b/Examples/Modules/nci_corrector/analysis_ncicorr.py diff --git a/Examples/Modules/nci_corrector/inputs2d b/Examples/Modules/nci_corrector/inputs.2d index 0bcffbe85..61278a8e6 100644 --- a/Examples/Modules/nci_corrector/inputs2d +++ b/Examples/Modules/nci_corrector/inputs.2d @@ -14,8 +14,6 @@ amr.blocking_factor = 8 # Maximum level in hierarchy (for now must be 0, i.e., one level in total) amr.max_level = 0 -warpx.fine_tag_lo = -20.e-6 -20.e-6 -warpx.fine_tag_hi = 20.e-6 20.e-6 # Geometry geometry.coord_sys = 0 # 0: Cartesian diff --git a/Examples/Modules/qed/breit_wheeler/check_2d_tau_init.py b/Examples/Modules/qed/breit_wheeler/analysis_2d_tau_init.py index 850ecc0fe..850ecc0fe 100755 --- a/Examples/Modules/qed/breit_wheeler/check_2d_tau_init.py +++ b/Examples/Modules/qed/breit_wheeler/analysis_2d_tau_init.py diff --git a/Examples/Modules/qed/breit_wheeler/inputs.2d_test_tau_init b/Examples/Modules/qed/breit_wheeler/inputs.2d_test_tau_init index 780e958b1..98bebc015 100644 --- a/Examples/Modules/qed/breit_wheeler/inputs.2d_test_tau_init +++ b/Examples/Modules/qed/breit_wheeler/inputs.2d_test_tau_init @@ -11,8 +11,6 @@ geometry.is_periodic = 0 0 # Is periodic? geometry.prob_lo = -32.e-6 -32.e-6 # physical domain geometry.prob_hi = 32.e-6 32.e-6 amr.max_level = 0 # Maximum level in hierarchy (1 might be unstable, >1 is not supported) -warpx.fine_tag_lo = -5.e-6 -35.e-6 -warpx.fine_tag_hi = 5.e-6 -25.e-6 ################################# ############ NUMERICS ########### @@ -28,8 +26,6 @@ warpx.verbose = 1 warpx.do_dive_cleaning = 0 warpx.plot_raw_fields = 0 warpx.plot_raw_fields_guards = 0 -warpx.plot_finepatch = 0 -warpx.plot_crsepatch = 0 warpx.use_filter = 1 warpx.cfl = 1. # if 1., the time step is set to its CFL limit warpx.do_pml = 1 # use Perfectly Matched Layer as boundary condition @@ -63,6 +59,7 @@ photons.uz_m = 0.0 photons.ux_th = 100. photons.uy_th = 100. photons.uz_th = 100. + ##########QED#################### photons.do_qed = 1 photons.do_qed_breit_wheeler = 1 diff --git a/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py b/Examples/Modules/qed/quantum_synchrotron/analysis_2d_tau_init.py index 05b313ee6..05b313ee6 100755 --- a/Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py +++ b/Examples/Modules/qed/quantum_synchrotron/analysis_2d_tau_init.py diff --git a/Examples/Modules/qed/quantum_synchrotron/inputs.2d_test_tau_init b/Examples/Modules/qed/quantum_synchrotron/inputs.2d_test_tau_init index 0de4169be..8baedbf52 100644 --- a/Examples/Modules/qed/quantum_synchrotron/inputs.2d_test_tau_init +++ b/Examples/Modules/qed/quantum_synchrotron/inputs.2d_test_tau_init @@ -11,8 +11,6 @@ geometry.is_periodic = 0 0 # Is periodic? geometry.prob_lo = -32.e-6 -32.e-6 # physical domain geometry.prob_hi = 32.e-6 32.e-6 amr.max_level = 0 # Maximum level in hierarchy (1 might be unstable, >1 is not supported) -warpx.fine_tag_lo = -5.e-6 -35.e-6 -warpx.fine_tag_hi = 5.e-6 -25.e-6 ################################# ############ NUMERICS ########### @@ -28,8 +26,6 @@ warpx.verbose = 1 warpx.do_dive_cleaning = 0 warpx.plot_raw_fields = 0 warpx.plot_raw_fields_guards = 0 -warpx.plot_finepatch = 0 -warpx.plot_crsepatch = 0 warpx.use_filter = 1 warpx.cfl = 1. # if 1., the time step is set to its CFL limit warpx.do_pml = 1 # use Perfectly Matched Layer as boundary condition diff --git a/Examples/Modules/restart/inputs b/Examples/Modules/restart/inputs deleted file mode 100644 index 175c714b2..000000000 --- a/Examples/Modules/restart/inputs +++ /dev/null @@ -1,18 +0,0 @@ -# Basic simulation parameters -max_step = 500 -amr.n_cell = 256 256 -amr.max_grid_size = 32 -amr.max_level = 0 -particles.nspecies = 0 - -# Geometry parameters -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 0 0 0 # Is periodic? -geometry.prob_lo = -50.e-6 0. # physical domain -geometry.prob_hi = 50.e-6 30.e-6 - -# Number of iterations between consecutive checkpoint dumps -amr.check_int = 200 - -# Checkpoint file from which to restart the simulation. -# amr.restart = chk00400 diff --git a/Examples/Physics_applications/laser_acceleration/laser_acceleration_PICMI.py b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py index 3c86d6348..7568ac3e8 100644 --- a/Examples/Physics_applications/laser_acceleration/laser_acceleration_PICMI.py +++ b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py @@ -32,7 +32,7 @@ plasma_max = [ 20.e-6, 20.e-6, 1.e-3] # --- Nb time steps -max_steps = 1000 +max_steps = 10 # --- grid diff --git a/Examples/Physics_applications/laser_acceleration/inputs.2d b/Examples/Physics_applications/laser_acceleration/inputs.2d index 1a76feacf..8b2913f8c 100644 --- a/Examples/Physics_applications/laser_acceleration/inputs.2d +++ b/Examples/Physics_applications/laser_acceleration/inputs.2d @@ -11,8 +11,8 @@ geometry.is_periodic = 0 0 # Is periodic? geometry.prob_lo = -30.e-6 -56.e-6 # physical domain geometry.prob_hi = 30.e-6 12.e-6 amr.max_level = 0 # Maximum level in hierarchy (1 might be unstable, >1 is not supported) -warpx.fine_tag_lo = -5.e-6 -35.e-6 -warpx.fine_tag_hi = 5.e-6 -25.e-6 +# warpx.fine_tag_lo = -5.e-6 -35.e-6 +# warpx.fine_tag_hi = 5.e-6 -25.e-6 ################################# ############ NUMERICS ########### @@ -24,8 +24,8 @@ warpx.verbose = 1 warpx.do_dive_cleaning = 0 warpx.plot_raw_fields = 1 warpx.plot_raw_fields_guards = 1 -warpx.plot_finepatch = 1 -warpx.plot_crsepatch = 1 +# warpx.plot_finepatch = 1 +# warpx.plot_crsepatch = 1 warpx.use_filter = 1 warpx.cfl = 1. # if 1., the time step is set to its CFL limit warpx.do_pml = 1 # use Perfectly Matched Layer as boundary condition @@ -62,8 +62,6 @@ beam.y_m = 0. beam.z_m = -28.e-6 beam.npart = 100 beam.q_tot = -1.e-12 -beam.profile = "constant" -beam.density = 8.e23 # not used in case of a gaussian beam beam.momentum_distribution_type = "gaussian" beam.ux_m = 0.0 beam.uy_m = 0.0 diff --git a/Examples/Physics_applications/laser_acceleration/inputs.2d.boost b/Examples/Physics_applications/laser_acceleration/inputs.2d.boost index 89bded6c0..731fa0079 100644 --- a/Examples/Physics_applications/laser_acceleration/inputs.2d.boost +++ b/Examples/Physics_applications/laser_acceleration/inputs.2d.boost @@ -1,8 +1,8 @@ ################################# ######### BOX PARAMETERS ######## ################################# -# max_step = 2700 -stop_time = 1.9e-12 +max_step = 2700 +# stop_time = 1.9e-12 amr.n_cell = 128 1024 amr.max_grid_size = 64 amr.blocking_factor = 32 @@ -94,8 +94,6 @@ beam.y_m = 0. beam.z_m = -20.e-6 beam.npart = 1000 beam.q_tot = -1.e-14 -beam.profile = "constant" -beam.density = 8.e23 # number of particles per m^3 beam.momentum_distribution_type = "gaussian" beam.ux_m = 0.0 beam.uy_m = 0.0 diff --git a/Examples/Physics_applications/laser_acceleration/inputs.3d b/Examples/Physics_applications/laser_acceleration/inputs.3d index f055708d1..017b82962 100644 --- a/Examples/Physics_applications/laser_acceleration/inputs.3d +++ b/Examples/Physics_applications/laser_acceleration/inputs.3d @@ -11,8 +11,8 @@ geometry.is_periodic = 1 1 0 # Is periodic? geometry.prob_lo = -30.e-6 -30.e-6 -56.e-6 # physical domain geometry.prob_hi = 30.e-6 30.e-6 12.e-6 amr.max_level = 0 # Maximum level in hierarchy (1 might be unstable, >1 is not supported) -warpx.fine_tag_lo = -5.e-6 -5.e-6 -50.e-6 -warpx.fine_tag_hi = 5.e-6 5.e-6 -30.e-6 +# warpx.fine_tag_lo = -5.e-6 -5.e-6 -50.e-6 +# warpx.fine_tag_hi = 5.e-6 5.e-6 -30.e-6 ################################# ############ NUMERICS ########### @@ -24,8 +24,8 @@ warpx.verbose = 1 warpx.do_dive_cleaning = 0 warpx.plot_raw_fields = 1 warpx.plot_raw_fields_guards = 1 -warpx.plot_finepatch = 1 -warpx.plot_crsepatch = 1 +# warpx.plot_finepatch = 1 +# warpx.plot_crsepatch = 1 warpx.use_filter = 1 warpx.cfl = 1. # if 1., the time step is set to its CFL limit warpx.do_pml = 0 # use Perfectly Matched Layer as boundary condition diff --git a/Examples/Physics_applications/laser_acceleration/inputs.rz b/Examples/Physics_applications/laser_acceleration/inputs.rz index 83071834e..bdaa99319 100755 --- a/Examples/Physics_applications/laser_acceleration/inputs.rz +++ b/Examples/Physics_applications/laser_acceleration/inputs.rz @@ -60,8 +60,6 @@ beam.y_m = 0. beam.z_m = -28.e-6 beam.npart = 100 beam.q_tot = -1.e-12 -beam.profile = "constant" -beam.density = 8.e23 # not used in case of a gaussian beam beam.momentum_distribution_type = "gaussian" beam.ux_m = 0.0 beam.uy_m = 0.0 diff --git a/Examples/Physics_applications/plasma_acceleration/plasma_acceleration_PICMI.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py index 0cd713514..7b1f9ea5d 100644 --- a/Examples/Physics_applications/plasma_acceleration/plasma_acceleration_PICMI.py +++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py @@ -43,7 +43,7 @@ beam = picmi.Species(particle_type='electron', name='beam', initial_distribution plasma = picmi.Species(particle_type='electron', name='plasma', initial_distribution=plasma_distribution) sim = picmi.Simulation(solver = solver, - max_steps = 1000, + max_steps = 10, verbose = 1, warpx_plot_int = 2, warpx_current_deposition_algo = 'esirkepov') diff --git a/Examples/Physics_applications/plasma_acceleration/plasma_acceleration_PICMI.mr.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py index 24b48d575..44049e244 100644 --- a/Examples/Physics_applications/plasma_acceleration/plasma_acceleration_PICMI.mr.py +++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py @@ -52,7 +52,7 @@ beam = picmi.Species(particle_type='electron', name='beam', initial_distribution plasma = picmi.Species(particle_type='electron', name='plasma', initial_distribution=plasma_distribution) sim = picmi.Simulation(solver = solver, - max_steps = 1000, + max_steps = 10, verbose = 1, warpx_plot_int = 2, warpx_current_deposition_algo = 'esirkepov') diff --git a/Examples/Physics_applications/plasma_acceleration/inputs.2d.boost b/Examples/Physics_applications/plasma_acceleration/inputs.2d.boost index d711815eb..efd740765 100644 --- a/Examples/Physics_applications/plasma_acceleration/inputs.2d.boost +++ b/Examples/Physics_applications/plasma_acceleration/inputs.2d.boost @@ -1,8 +1,8 @@ ################################# ####### GENERAL PARAMETERS ###### ################################# -stop_time = 4.03658656286e-11 -amr.n_cell = 64 1280 +max_step = 2500 +amr.n_cell = 64 640 amr.max_grid_size = 128 amr.blocking_factor = 32 amr.max_level = 0 diff --git a/Examples/Physics_applications/plasma_acceleration/inputs.3d.boost b/Examples/Physics_applications/plasma_acceleration/inputs.3d.boost index 42446a9ac..de18ec054 100644 --- a/Examples/Physics_applications/plasma_acceleration/inputs.3d.boost +++ b/Examples/Physics_applications/plasma_acceleration/inputs.3d.boost @@ -2,7 +2,7 @@ ####### GENERAL PARAMETERS ###### ################################# stop_time = 3.93151387287e-11 -amr.n_cell = 32 32 320 +amr.n_cell = 32 32 256 amr.max_grid_size = 64 amr.blocking_factor = 32 amr.max_level = 0 diff --git a/Examples/Tests/Langmuir/langmuir2d_PICMI.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py index 8cbc63e50..cd33d20f0 100644 --- a/Examples/Tests/Langmuir/langmuir2d_PICMI.py +++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py @@ -40,5 +40,5 @@ sim.add_species(electrons, layout=picmi.GriddedLayout(n_macroparticle_per_cell=[ sim.write_input_file(file_name='inputs2d_from_PICMI') # Alternatively, sim.step will run WarpX, controlling it from Python -#sim.step() +sim.step() diff --git a/Examples/Tests/Langmuir/langmuir_PICMI_rt.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rt.py index ae6731c05..ae6731c05 100644 --- a/Examples/Tests/Langmuir/langmuir_PICMI_rt.py +++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rt.py diff --git a/Examples/Tests/Langmuir/langmuir_PICMI_rz.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz.py index 699b7e3d9..699b7e3d9 100644 --- a/Examples/Tests/Langmuir/langmuir_PICMI_rz.py +++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz.py diff --git a/Examples/Tests/Langmuir/langmuir_PICMI_rz_multimode_analyze.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py index 00e54be3e..00e54be3e 100644 --- a/Examples/Tests/Langmuir/langmuir_PICMI_rz_multimode_analyze.py +++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py diff --git a/Examples/Tests/Langmuir/langmuir_analysis.py b/Examples/Tests/Langmuir/analysis_langmuir.py index 2ffb7f56b..2ffb7f56b 100755 --- a/Examples/Tests/Langmuir/langmuir_analysis.py +++ b/Examples/Tests/Langmuir/analysis_langmuir.py diff --git a/Examples/Tests/Langmuir/langmuir2d_analysis.py b/Examples/Tests/Langmuir/analysis_langmuir2d.py index d43134115..d43134115 100755 --- a/Examples/Tests/Langmuir/langmuir2d_analysis.py +++ b/Examples/Tests/Langmuir/analysis_langmuir2d.py diff --git a/Examples/Tests/Langmuir/langmuir_multi_analysis.py b/Examples/Tests/Langmuir/analysis_langmuir_multi.py index 890320be8..890320be8 100755 --- a/Examples/Tests/Langmuir/langmuir_multi_analysis.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi.py diff --git a/Examples/Tests/Langmuir/langmuir_multi_2d_analysis.py b/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py index 169c56e7b..169c56e7b 100755 --- a/Examples/Tests/Langmuir/langmuir_multi_2d_analysis.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py diff --git a/Examples/Tests/Langmuir/langmuir_multi_rz_analysis.py b/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py index 2ff30eb5e..2ff30eb5e 100755 --- a/Examples/Tests/Langmuir/langmuir_multi_rz_analysis.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py diff --git a/Examples/Tests/Langmuir/inputs.2d.rz b/Examples/Tests/Langmuir/inputs.2d.rz deleted file mode 100644 index 70850eea6..000000000 --- a/Examples/Tests/Langmuir/inputs.2d.rz +++ /dev/null @@ -1,55 +0,0 @@ -# Maximum number of time steps -max_step = 100 - -# number of grid points -amr.n_cell = 64 64 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 32 -amr.blocking_factor = 32 32 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -amr.plot_int = 1 # How often to write plotfiles. "<= 0" means no plotfiles. - -# Geometry -geometry.coord_sys = 1 # 1: RZ -geometry.is_periodic = 0 1 -geometry.prob_lo = 0.e0 -2e-05 # physical domain, rmin zmin -geometry.prob_hi = 2e-05 2e-05 # rmax zmax - -# Verbosity -warpx.verbose = 1 -warpx.do_moving_window = 0 -warpx.moving_window_dir = z -warpx.moving_window_v = 0.0 # in units of the speed of light - -# Algorithms -algo.current_deposition = direct -interpolation.nox = 1 -interpolation.noy = 1 -interpolation.noz = 1 - -# CFL -warpx.cfl = 1.0 - -particles.nspecies = 1 -particles.species_names = electrons - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.num_particles_per_cell_each_dim = 2 1 2 - -electrons.zmax = 0.0 - -electrons.profile = constant -electrons.density = 1.e25 # number of electrons per m^3 - -electrons.momentum_distribution_type = "constant" -electrons.ux = 0.0 -electrons.uy = 0.0 -electrons.uz = 0.1 -electrons.radially_weighted = true # Only true is supported diff --git a/Examples/Tests/Langmuir/inputs.lb b/Examples/Tests/Langmuir/inputs.lb deleted file mode 100644 index 73ededb23..000000000 --- a/Examples/Tests/Langmuir/inputs.lb +++ /dev/null @@ -1,59 +0,0 @@ -# Maximum number of time steps -max_step = 400 -max_step = 10 - -# number of grid points -amr.n_cell = 16 16 8 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 8 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -amr.plot_int = 1 # How often to write plotfiles. "<= 0" means no plotfiles. -amr.check_int = -1 # How often to write checkpoint files. "<= 0" means no plotfiles. - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 1 # Is periodic? -geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain -geometry.prob_hi = 20.e-6 20.e-6 20.e-6 - -# Verbosity -warpx.verbose = 1 - -warpx.do_moving_window = 0 -warpx.moving_window_dir = 0 -warpx.moving_window_v = 0.0 # in units of the speed of light - -# Dynamic Load Balancing -warpx.regrid_int = 1 - -# Algorithms -algo.current_deposition = direct - -# CFL -warpx.cfl = 1.0 - -particles.nspecies = 1 -particles.species_names = electrons - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.num_particles_per_cell_each_dim = 2 2 2 - -electrons.xmin = -20.e-6 -electrons.xmax = 0.e-6 -electrons.ymin = -20.e-6 -electrons.ymax = 20.e-6 -electrons.zmin = -20.e-6 -electrons.zmax = 20.e-6 - -electrons.profile = constant -electrons.density = 1.e25 # number of electrons per m^3 - -electrons.momentum_distribution_type = "constant" -electrons.ux = 1.0 # ux = gamma*beta_x diff --git a/Examples/Tests/Langmuir/inputs.nolb b/Examples/Tests/Langmuir/inputs.nolb deleted file mode 100644 index 6ac0629cb..000000000 --- a/Examples/Tests/Langmuir/inputs.nolb +++ /dev/null @@ -1,59 +0,0 @@ -# Maximum number of time steps -max_step = 400 -max_step = 10 - -# number of grid points -amr.n_cell = 16 16 8 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 8 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -amr.plot_int = 1 # How often to write plotfiles. "<= 0" means no plotfiles. -amr.check_int = -1 # How often to write checkpoint files. "<= 0" means no plotfiles. - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 1 # Is periodic? -geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain -geometry.prob_hi = 20.e-6 20.e-6 20.e-6 - -# Verbosity -warpx.verbose = 1 - -warpx.do_moving_window = 0 -warpx.moving_window_dir = 0 -warpx.moving_window_v = 0.0 # in units of the speed of light - -# Dynamic Load Balancing -warpx.regrid_int = -1 - -# Algorithms -algo.current_deposition = direct - -# CFL -warpx.cfl = 1.0 - -particles.nspecies = 1 -particles.species_names = electrons - -electrons.charge = -q_e -electrons.mass = m_e -electrons.injection_style = "NUniformPerCell" -electrons.num_particles_per_cell_each_dim = 2 2 2 - -electrons.xmin = -20.e-6 -electrons.xmax = 0.e-6 -electrons.ymin = -20.e-6 -electrons.ymax = 20.e-6 -electrons.zmin = -20.e-6 -electrons.zmax = 20.e-6 - -electrons.profile = constant -electrons.density = 1.e25 # number of electrons per m^3 - -electrons.momentum_distribution_type = "constant" -electrons.ux = 1.0 # ux = gamma*beta_x diff --git a/Examples/Tests/Langmuir/langmuir_PICMI.py b/Examples/Tests/Langmuir/langmuir_PICMI.py deleted file mode 100644 index ea1c93ba3..000000000 --- a/Examples/Tests/Langmuir/langmuir_PICMI.py +++ /dev/null @@ -1,52 +0,0 @@ -# --- Simple example of Langmuir oscillations in a uniform plasma - -import numpy as np -from pywarpx import picmi - -constants = picmi.constants - -nx = 64 -ny = 64 -nz = 64 - -xmin = -20.e-6 -ymin = -20.e-6 -zmin = -20.e-6 -xmax = +20.e-6 -ymax = +20.e-6 -zmax = +20.e-6 - -uniform_plasma = picmi.UniformDistribution(density = 1.e25, - upper_bound = [0., None, None], - directed_velocity = [0.1*constants.c, 0., 0.]) - -electrons = picmi.Species(particle_type='electron', name='electrons', initial_distribution=uniform_plasma) - -grid = picmi.Cartesian3DGrid(number_of_cells = [nx, ny, nz], - lower_bound = [xmin, ymin, zmin], - upper_bound = [xmax, ymax, zmax], - lower_boundary_conditions = ['periodic', 'periodic', 'periodic'], - upper_boundary_conditions = ['periodic', 'periodic', 'periodic'], - moving_window_velocity = [0., 0., 0.], - warpx_max_grid_size=32) - -solver = picmi.ElectromagneticSolver(grid=grid, cfl=1.) - -sim = picmi.Simulation(solver = solver, - max_steps = 40, - verbose = 1, - warpx_plot_int = 1, - warpx_current_deposition_algo = 'direct', - warpx_charge_deposition_algo = 'standard', - warpx_field_gathering_algo = 'standard', - warpx_particle_pusher_algo = 'boris') - -sim.add_species(electrons, layout=picmi.GriddedLayout(n_macroparticle_per_cell=[2,2,2], grid=grid)) - -# write_inputs will create an inputs file that can be used to run -# with the compiled version. -sim.write_input_file(file_name='inputs_from_PICMI') - -# Alternatively, sim.step will run WarpX, controlling it from Python -sim.step() - diff --git a/Examples/Tests/Larmor/inputs b/Examples/Tests/Larmor/inputs deleted file mode 100644 index 9ffd6ded9..000000000 --- a/Examples/Tests/Larmor/inputs +++ /dev/null @@ -1,77 +0,0 @@ -# Maximum number of time steps -max_step = 200 - -# number of grid points -amr.n_cell = 32 32 - -# The lo and hi ends of grids are multipliers of blocking factor -amr.blocking_factor = 16 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 64 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 0 - -warpx.fine_tag_lo = -0.8 -0.8 -warpx.fine_tag_hi = 0.8 0.8 - -amr.plot_int = 1 # How often to write plotfiles. "<= 0" means no plotfiles. - -warpx.plot_raw_fields = 1 -warpx.plot_finepatch = 1 -warpx.plot_crsepatch = 1 -warpx.fields_to_plot = Ex Ey Ez Bx By Bz jx jy jz part_per_cell divE divB - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 0 0 0 # Is periodic? -geometry.prob_lo = -2.0 -2.0 # physical domain -geometry.prob_hi = 2.0 2.0 - -# PML -warpx.do_pml = 1 -warpx.pml_ncell = 10 - -warpx.B_external = 0.0 0.00078110417851950768 0.0 - -# Verbosity -warpx.verbose = 1 - -# Algorithms - -# CFL -warpx.cfl = 1.0 - -# particles -particles.nspecies = 2 -particles.species_names = electron positron - -particles.nspecies = 1 -particles.species_names = electron - -electron.charge = -q_e -electron.mass = m_e -electron.injection_style = "SingleParticle" -electron.single_particle_pos = 0.0 0.0 -1.25 -electron.single_particle_vel = -0.45825756949558416 0.0 0.0 # gamma*beta - -positron.charge = q_e -positron.mass = m_e -positron.injection_style = "SingleParticle" -positron.single_particle_pos = 0.0 0.0 -1.25 -positron.single_particle_vel = 0.45825756949558416 0.0 0.0 # gamma*beta - -electron.single_particle_weight = 1.0e12 -positron.single_particle_weight = 1.0e12 - -# interpolation -interpolation.nox = 3 -interpolation.noy = 3 -interpolation.noz = 3 - -# Moving window -warpx.do_moving_window = 0 - -warpx.do_dive_cleaning = 1 diff --git a/Examples/Tests/Larmor/inputs.ml b/Examples/Tests/Larmor/inputs.mr index f70560bd9..79014009d 100644 --- a/Examples/Tests/Larmor/inputs.ml +++ b/Examples/Tests/Larmor/inputs.mr @@ -48,9 +48,6 @@ warpx.cfl = 1.0 particles.nspecies = 2 particles.species_names = electron positron -particles.nspecies = 1 -particles.species_names = electron - electron.charge = -q_e electron.mass = m_e electron.injection_style = "SingleParticle" diff --git a/Examples/Tests/PML/inputs2d b/Examples/Tests/PML/inputs.2d index c6abe2b88..c6abe2b88 100644 --- a/Examples/Tests/PML/inputs2d +++ b/Examples/Tests/PML/inputs.2d diff --git a/Examples/Tests/SingleParticle/bilinear_filter_analysis.py b/Examples/Tests/SingleParticle/analysis_bilinear_filter.py index 494434279..494434279 100755 --- a/Examples/Tests/SingleParticle/bilinear_filter_analysis.py +++ b/Examples/Tests/SingleParticle/analysis_bilinear_filter.py diff --git a/Examples/Tests/laser_on_fine/inputs b/Examples/Tests/laser_on_fine/inputs deleted file mode 100644 index 8a3b6fa7b..000000000 --- a/Examples/Tests/laser_on_fine/inputs +++ /dev/null @@ -1,73 +0,0 @@ -# Maximum number of time steps -max_step = 500 - -# number of grid points -amr.n_cell = 64 64 64 - -# The lo and hi ends of grids are multipliers of blocking factor -amr.blocking_factor = 32 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 64 - -# Maximum level in hierarchy (for now must be 0, i.e., one level in total) -amr.max_level = 1 - -warpx.fine_tag_lo = -10.e-6 -10.e-6 -0.4e-6 -warpx.fine_tag_hi = 10.e-6 10.e-6 0.4e-6 - -amr.plot_int = 10 # How often to write plotfiles. "<= 0" means no plotfiles. - -warpx.plot_raw_fields = 1 -warpx.plot_finepatch = 1 -warpx.plot_crsepatch = 1 -warpx.fields_to_plot = Ex Ey Ez Bx By Bz jx jy jz part_per_cell divB - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 1 1 0 # Is periodic? -geometry.prob_lo = -30.e-6 -30.e-6 -1.25e-6 # physical domain -geometry.prob_hi = 30.e-6 30.e-6 1.25e-6 - -# PML -warpx.do_pml = 1 -warpx.pml_ncell = 10 - -# Verbosity -warpx.verbose = 1 - -# Algorithms -algo.current_deposition = esirkepov -algo.charge_deposition = standard -algo.field_gathering = energy-conserving - -# CFL -warpx.cfl = 1.0 -particles.nspecies = 0 - -# interpolation -interpolation.nox = 1 -interpolation.noy = 1 -interpolation.noz = 1 - -# Moving window -warpx.do_moving_window = 0 -warpx.moving_window_dir = z -warpx.moving_window_v = 1.0 # in units of the speed of light - -# Laser -lasers.nlasers = 1 -lasers.names = laser1 -laser1.prob_lo = -12.e-6 -12.e-6 -5.e-6 -laser1.prob_hi = 12.e-6 12.e-6 5.e-6 -laser1.profile = Gaussian -laser1.position = 0. 0. 0.e-6 # This point is on the laser plane -laser1.direction = 0. 0. 1. # The plane normal direction -laser1.polarization = 1. 0. 0. # The main polarization vector -laser1.e_max = 16.e12 # Maximum amplitude of the laser field (in V/m) -laser1.profile_waist = 3.e-6 # The waist of the laser (in meters) -laser1.profile_duration = 15.e-15 # The duration of the laser (in seconds) -laser1.profile_t_peak = 30.e-15 # The time at which the laser reaches its peak (in seconds) -laser1.profile_focal_distance = 100.e-6 # Focal distance from the antenna (in meters) -laser1.wavelength = 0.8e-6 # The wavelength of the laser (in meters) diff --git a/Examples/Tests/laser_on_fine/inputs.2d b/Examples/Tests/laser_on_fine/inputs.2d index 93b1cd9f2..5ae4237d6 100644 --- a/Examples/Tests/laser_on_fine/inputs.2d +++ b/Examples/Tests/laser_on_fine/inputs.2d @@ -2,7 +2,7 @@ max_step = 500 # number of grid points -amr.n_cell = 64 64 64 +amr.n_cell = 64 64 # The lo and hi ends of grids are multipliers of blocking factor amr.blocking_factor = 32 @@ -53,8 +53,6 @@ interpolation.noz = 1 # Moving window warpx.do_moving_window = 0 -warpx.moving_window_dir = z -warpx.moving_window_v = 1.0 # in units of the speed of light # Laser lasers.nlasers = 1 diff --git a/Examples/Tests/particles_in_PML/analysis.py b/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py index 96406d717..96406d717 100755 --- a/Examples/Tests/particles_in_PML/analysis.py +++ b/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py diff --git a/Examples/Tests/particles_in_PML/inputs2d b/Examples/Tests/particles_in_PML/inputs.2d index 9c5a64921..9c5a64921 100644 --- a/Examples/Tests/particles_in_PML/inputs2d +++ b/Examples/Tests/particles_in_PML/inputs.2d diff --git a/Examples/Tests/photon_pusher/check.py b/Examples/Tests/photon_pusher/analysis_photon_pusher.py index d0986de48..d0986de48 100755 --- a/Examples/Tests/photon_pusher/check.py +++ b/Examples/Tests/photon_pusher/analysis_photon_pusher.py diff --git a/Examples/Tests/radiation_reaction/test_const_B_analytical/check.py b/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py index d9e3e28d9..d9e3e28d9 100755 --- a/Examples/Tests/radiation_reaction/test_const_B_analytical/check.py +++ b/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py diff --git a/Examples/Tests/self_force_test/inputs b/Examples/Tests/self_force_test/inputs deleted file mode 100644 index ff825c7ed..000000000 --- a/Examples/Tests/self_force_test/inputs +++ /dev/null @@ -1,70 +0,0 @@ -# Maximum number of time steps -max_step = 50000 - -# number of grid points -amr.n_cell = 64 64 64 - -# The lo and hi ends of grids are multipliers of blocking factor -amr.blocking_factor = 16 - -# Maximum allowable size of each subdomain in the problem domain; -# this is used to decompose the domain for parallel calculations. -amr.max_grid_size = 64 - -# Maximum level in hierarchy -amr.max_level = 1 - -warpx.fine_tag_lo = -0.5e-5 -0.5e-5 -0.5e-5 -warpx.fine_tag_hi = 0.5e-5 0.5e-5 0.5e-5 - -warpx.do_electrostatic = 1 -warpx.n_buffer = 4 -warpx.const_dt = 1.0e-10; - -amr.plot_int = -1 # How often to write plotfiles. "<= 0" means no plotfiles. - -warpx.plot_raw_fields = 0 -warpx.plot_divb = 0 -warpx.plot_finepatch = 0 -warpx.plot_crsepatch = 0 - -# Geometry -geometry.coord_sys = 0 # 0: Cartesian -geometry.is_periodic = 0 0 0 # Is periodic? -geometry.prob_lo = -2.0e-5 -2.0e-5 -2.0e-5 # physical domain -geometry.prob_hi = 2.0e-5 2.0e-5 2.0e-5 - -# PML -warpx.do_pml = 0 -warpx.pml_ncell = 10 - -# Verbosity -warpx.verbose = 1 - -# Algorithms -algo.current_deposition = esirkepov -algo.charge_deposition = standard -algo.field_gathering = energy-conserving - -# CFL -warpx.cfl = 1.0 - -# particles -particles.nspecies = 1 -particles.species_names = electron - -electron.charge = -q_e -electron.mass = m_e -electron.injection_style = "SingleParticle" -electron.single_particle_pos = -2.5e-6 0.0 0.0 -electron.single_particle_vel = 0.0 0.0 0.0 # gamma*beta - -electron.single_particle_weight = 1.0 - -# interpolation -interpolation.nox = 1 -interpolation.noy = 1 -interpolation.noz = 1 - -# Moving window -warpx.do_moving_window = 0 diff --git a/Regression/WarpX-tests.ini b/Regression/WarpX-tests.ini index a2d789ca2..19da4ba04 100644 --- a/Regression/WarpX-tests.ini +++ b/Regression/WarpX-tests.ini @@ -59,8 +59,8 @@ branch = master [pml_x_yee] buildDir = . -inputFile = Examples/Tests/PML/inputs2d -runtime_params = warpx.do_dynamic_scheduling=0 algo.maxwell_fdtd_solver=yee +inputFile = Examples/Tests/PML/inputs.2d +runtime_params = warpx.do_dynamic_scheduling=0 algo.maxwell_fdtd_solver=yee amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -74,8 +74,8 @@ analysisRoutine = Examples/Tests/PML/analysis_pml_yee.py [pml_x_ckc] buildDir = . -inputFile = Examples/Tests/PML/inputs2d -runtime_params = warpx.do_dynamic_scheduling=0 algo.maxwell_fdtd_solver=ckc +inputFile = Examples/Tests/PML/inputs.2d +runtime_params = warpx.do_dynamic_scheduling=0 algo.maxwell_fdtd_solver=ckc amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -89,8 +89,8 @@ analysisRoutine = Examples/Tests/PML/analysis_pml_ckc.py [pml_x_psatd] buildDir = . -inputFile = Examples/Tests/PML/inputs2d -runtime_params = warpx.do_dynamic_scheduling=0 +inputFile = Examples/Tests/PML/inputs.2d +runtime_params = warpx.do_dynamic_scheduling=0 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = USE_PSATD=TRUE restartTest = 0 @@ -105,6 +105,7 @@ analysisRoutine = Examples/Tests/PML/analysis_pml_psatd.py [RigidInjection_lab] buildDir = . inputFile = Examples/Modules/RigidInjection/inputs.LabFrame +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -120,6 +121,7 @@ analysisRoutine = Examples/Modules/RigidInjection/analysis_rigid_injection_LabFr [RigidInjection_BTD] buildDir = . inputFile = Examples/Modules/RigidInjection/inputs.BoostedFrame +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -153,8 +155,8 @@ analysisRoutine = Examples/Modules/boosted_diags/analysis_3Dbacktransformed_diag [nci_corrector] buildDir = . -inputFile = Examples/Modules/nci_corrector/inputs2d -runtime_params = amr.max_level=0 particles.use_fdtd_nci_corr=1 +inputFile = Examples/Modules/nci_corrector/inputs.2d +runtime_params = amr.max_level=0 particles.use_fdtd_nci_corr=1 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -165,12 +167,12 @@ numthreads = 2 compileTest = 0 doVis = 0 doComparison = 0 -analysisRoutine = Examples/Modules/nci_corrector/ncicorr_analysis.py +analysisRoutine = Examples/Modules/nci_corrector/analysis_ncicorr.py [nci_correctorMR] buildDir = . -inputFile = Examples/Modules/nci_corrector/inputs2d -runtime_params = amr.max_level=1 particles.use_fdtd_nci_corr=1 amr.n_cell=64 64 +inputFile = Examples/Modules/nci_corrector/inputs.2d +runtime_params = amr.max_level=1 particles.use_fdtd_nci_corr=1 amr.n_cell=64 64 amrex.abort_on_unused_inputs=1 warpx.fine_tag_lo=-20.e-6 -20.e-6 warpx.fine_tag_hi=20.e-6 20.e-6 dim = 2 addToCompileString = restartTest = 0 @@ -181,11 +183,12 @@ numthreads = 2 compileTest = 0 doVis = 0 doComparison = 0 -analysisRoutine = Examples/Modules/nci_corrector/ncicorr_analysis.py +analysisRoutine = Examples/Modules/nci_corrector/analysis_ncicorr.py [ionization_lab] buildDir = . inputFile = Examples/Modules/ionization/inputs.rt +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -195,11 +198,12 @@ useOMP = 1 numthreads = 1 compileTest = 0 doVis = 0 -analysisRoutine = Examples/Modules/ionization/ionization_analysis.py +analysisRoutine = Examples/Modules/ionization/analysis_ionization.py [ionization_boost] buildDir = . inputFile = Examples/Modules/ionization/inputs.bf.rt +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -209,12 +213,12 @@ useOMP = 1 numthreads = 1 compileTest = 0 doVis = 0 -analysisRoutine = Examples/Modules/ionization/ionization_analysis.py +analysisRoutine = Examples/Modules/ionization/analysis_ionization.py [bilinear_filter] buildDir = . inputFile = Examples/Tests/SingleParticle/inputs -runtime_params = warpx.use_filter=1 warpx.filter_npass_each_dir=1 5 +runtime_params = warpx.use_filter=1 warpx.filter_npass_each_dir=1 5 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -224,11 +228,12 @@ useOMP = 1 numthreads = 2 compileTest = 0 doVis = 0 -analysisRoutine = Examples/Tests/SingleParticle/bilinear_filter_analysis.py +analysisRoutine = Examples/Tests/SingleParticle/analysis_bilinear_filter.py [Langmuir_2d] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.rt +runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.fields_to_plot=Ex jx electrons.plot_vars=w ux Ex amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -240,13 +245,13 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = electrons -runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.fields_to_plot=Ex jx electrons.plot_vars=w ux Ex -analysisRoutine = Examples/Tests/Langmuir/langmuir2d_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir2d.py analysisOutputImage = langmuir2d_analysis.png [Langmuir_2d_nompi] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.rt +runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.fields_to_plot=Ex jx electrons.plot_vars=w ux Ex amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -258,13 +263,13 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = electrons -runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.fields_to_plot=Ex jx electrons.plot_vars=w ux Ex -analysisRoutine = Examples/Tests/Langmuir/langmuir2d_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir2d.py analysisOutputImage = langmuir2d_analysis.png [Langmuir_x] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.rt +runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ex jx electrons.plot_vars=w ux Ex amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -276,13 +281,13 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = electrons -runtime_params = electrons.ux=0.01 electrons.xmax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ex jx electrons.plot_vars=w ux Ex -analysisRoutine = Examples/Tests/Langmuir/langmuir_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir.py analysisOutputImage = langmuir_x_analysis.png [Langmuir_y] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.rt +runtime_params = electrons.uy=0.01 electrons.ymax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ey jy electrons.plot_vars=w uy Ey amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -294,13 +299,13 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = electrons -runtime_params = electrons.uy=0.01 electrons.ymax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ey jy electrons.plot_vars=w uy Ey -analysisRoutine = Examples/Tests/Langmuir/langmuir_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir.py analysisOutputImage = langmuir_y_analysis.png [Langmuir_z] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.rt +runtime_params = electrons.uz=0.01 electrons.zmax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ez jz electrons.plot_vars=w uz Ez amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -312,13 +317,13 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = electrons -runtime_params = electrons.uz=0.01 electrons.zmax=0.e-6 warpx.do_dynamic_scheduling=0 warpx.fields_to_plot = Ez jz electrons.plot_vars=w uz Ez -analysisRoutine = Examples/Tests/Langmuir/langmuir_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir.py analysisOutputImage = langmuir_z_analysis.png [Langmuir_multi] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.rt +runtime_params = warpx.do_dynamic_scheduling=0 amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -329,14 +334,14 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 1 -runtime_params = warpx.do_dynamic_scheduling=0 particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi.py analysisOutputImage = langmuir_multi_analysis.png [Langmuir_multi_nodal] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.rt +runtime_params = warpx.do_dynamic_scheduling=0 warpx.do_nodal=1 amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -347,14 +352,14 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 1 -runtime_params = warpx.do_dynamic_scheduling=0 warpx.do_nodal=1 particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi.py analysisOutputImage = langmuir_multi_analysis.png [Langmuir_multi_psatd] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.rt +runtime_params = psatd.fftw_plan_measure=0 amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = USE_PSATD=TRUE restartTest = 0 @@ -366,14 +371,14 @@ compileTest = 0 doVis = 0 compareParticles = 1 tolerance = 5.e-11 -runtime_params = psatd.fftw_plan_measure=0 particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi.py analysisOutputImage = langmuir_multi_analysis.png [Langmuir_multi_psatd_nodal] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.rt +runtime_params = psatd.fftw_plan_measure=0 warpx.do_dynamic_scheduling=0 warpx.do_nodal=1 amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = USE_PSATD=TRUE restartTest = 0 @@ -385,14 +390,14 @@ compileTest = 0 doVis = 0 compareParticles = 1 tolerance = 5.e-11 -runtime_params = psatd.fftw_plan_measure=0 warpx.do_dynamic_scheduling=0 warpx.do_nodal=1 particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi.py analysisOutputImage = langmuir_multi_analysis.png [Langmuir_multi_2d_nodal] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.2d.rt +runtime_params = warpx.do_nodal=1 algo.current_deposition=direct electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -403,14 +408,14 @@ numthreads = 1 compileTest = 0 doVis = 0 compareParticles = 1 -runtime_params = warpx.do_nodal=1 algo.current_deposition=direct electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_2d_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py analysisOutputImage = langmuir_multi_2d_analysis.png [Langmuir_multi_2d_psatd] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.2d.rt +runtime_params = psatd.fftw_plan_measure=0 electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez warpx.fields_to_plot=Ex Ey Ez jx jy jz part_per_cell amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = USE_PSATD=TRUE restartTest = 0 @@ -421,14 +426,14 @@ numthreads = 1 compileTest = 0 doVis = 0 compareParticles = 1 -runtime_params = psatd.fftw_plan_measure=0 electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez warpx.fields_to_plot=Ex Ey Ez jx jy jz part_per_cell particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_2d_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py analysisOutputImage = langmuir_multi_2d_analysis.png [Langmuir_multi_2d_psatd_nodal] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.2d.rt +runtime_params = psatd.fftw_plan_measure=0 warpx.do_nodal=1 algo.current_deposition=direct electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez warpx.fields_to_plot=Ex Ey Ez jx jy jz part_per_cell amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = USE_PSATD=TRUE restartTest = 0 @@ -439,14 +444,14 @@ numthreads = 1 compileTest = 0 doVis = 0 compareParticles = 1 -runtime_params = psatd.fftw_plan_measure=0 warpx.do_nodal=1 algo.current_deposition=direct electrons.plot_vars=w ux uy uz Ex Ey Ez positrons.plot_vars=w ux uy uz Ex Ey Ez warpx.fields_to_plot=Ex Ey Ez jx jy jz part_per_cell particleTypes = electrons positrons -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_2d_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py analysisOutputImage = langmuir_multi_2d_analysis.png [Langmuir_multi_rz] buildDir = . inputFile = Examples/Tests/Langmuir/inputs.multi.rz.rt +runtime_params = electrons.plot_vars=w ux uy uz Ex Ey Ez Bx By ions.plot_vars=w ux uy uz Ex Ey Ez Bx By amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = USE_RZ=TRUE restartTest = 0 @@ -456,16 +461,16 @@ useOMP = 1 numthreads = 1 compileTest = 0 doVis = 0 -runtime_params = electrons.plot_vars=w ux uy uz Ex Ey Ez Bx By ions.plot_vars=w ux uy uz Ex Ey Ez Bx By compareParticles = 1 particleTypes = electrons ions -analysisRoutine = Examples/Tests/Langmuir/langmuir_multi_rz_analysis.py +analysisRoutine = Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py analysisOutputImage = langmuir_multi_rz_analysis.png -[Langmuir_rz_multimode] +[Python_Langmuir_rz_multimode] buildDir = . -inputFile = Examples/Tests/Langmuir/langmuir_PICMI_rz_multimode_analyze.py -customRunCmd = python langmuir_PICMI_rz_multimode_analyze.py +inputFile = Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py +runtime_params = amrex.abort_on_unused_inputs=1 +customRunCmd = python PICMI_inputs_langmuir_rz_multimode_analyze.py dim = 2 addToCompileString = USE_PYTHON_MAIN=TRUE USE_RZ=TRUE restartTest = 0 @@ -482,6 +487,7 @@ outputFile = diags/plotfiles/plt00040 [LaserInjection] buildDir = . inputFile = Examples/Modules/laser_injection/inputs.rt +runtime_params = amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -492,12 +498,13 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Modules/laser_injection/laser_analysis.py +analysisRoutine = Examples/Modules/laser_injection/analysis_laser.py analysisOutputImage = laser_analysis.png [LaserInjection_2d] buildDir = . inputFile = Examples/Modules/laser_injection/inputs.2d.rt +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -507,13 +514,12 @@ useOMP = 1 numthreads = 2 compileTest = 0 doVis = 0 -runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 compareParticles = 0 [LaserAcceleration] buildDir = . inputFile = Examples/Physics_applications/laser_acceleration/inputs.3d -runtime_params = warpx.do_dynamic_scheduling=0 amr.n_cell=32 32 256 max_step=100 electrons.zmin=0.e-6 warpx.serialize_ics=1 +runtime_params = warpx.do_dynamic_scheduling=0 amr.n_cell=32 32 256 max_step=100 electrons.zmin=0.e-6 warpx.serialize_ics=1 amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 0 @@ -529,7 +535,7 @@ particleTypes = electrons [subcyclingMR] buildDir = . inputFile = Examples/Tests/subcycling/inputs.2d -runtime_params = warpx.serialize_ics=1 warpx.do_dynamic_scheduling=0 +runtime_params = warpx.serialize_ics=1 warpx.do_dynamic_scheduling=0 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -545,7 +551,7 @@ compareParticles = 0 [LaserAccelerationMR] buildDir = . inputFile = Examples/Physics_applications/laser_acceleration/inputs.2d -runtime_params = amr.max_level=1 max_step=200 warpx.serialize_ics=1 +runtime_params = amr.max_level=1 max_step=200 warpx.serialize_ics=1 amrex.abort_on_unused_inputs=1 warpx.fine_tag_lo=-5.e-6 -35.e-6 warpx.fine_tag_hi=5.e-6 -25.e-6 dim = 2 addToCompileString = restartTest = 0 @@ -561,7 +567,7 @@ particleTypes = electrons beam [PlasmaAccelerationMR] buildDir = . inputFile = Examples/Physics_applications/plasma_acceleration/inputs.2d -runtime_params = amr.max_level=1 amr.n_cell=32 512 max_step=400 warpx.serialize_ics=1 warpx.do_dynamic_scheduling=0 +runtime_params = amr.max_level=1 amr.n_cell=32 512 max_step=400 warpx.serialize_ics=1 warpx.do_dynamic_scheduling=0 amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = restartTest = 0 @@ -576,8 +582,9 @@ particleTypes = beam driver plasma_e [Python_Langmuir] buildDir = . -inputFile = Examples/Tests/Langmuir/langmuir_PICMI_rt.py -customRunCmd = python langmuir_PICMI_rt.py +inputFile = Examples/Tests/Langmuir/PICMI_inputs_langmuir_rt.py +runtime_params = amrex.abort_on_unused_inputs=1 +customRunCmd = python PICMI_inputs_langmuir_rt.py dim = 3 addToCompileString = USE_PYTHON_MAIN=TRUE restartTest = 0 @@ -594,6 +601,7 @@ outputFile = diags/plotfiles/plt00040 [uniform_plasma_restart] buildDir = . inputFile = Examples/Physics_applications/uniform_plasma/inputs.3d +runtime_params = amrex.abort_on_unused_inputs=1 dim = 3 addToCompileString = restartTest = 1 @@ -610,7 +618,8 @@ tolerance = 1.e-14 [particles_in_pml_2d] buildDir = . -inputFile = Examples/Tests/particles_in_PML/inputs2d +inputFile = Examples/Tests/particles_in_PML/inputs.2d +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 restartTest = 0 useMPI = 1 @@ -620,11 +629,12 @@ numthreads = 1 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Tests/particles_in_PML/analysis.py +analysisRoutine = Examples/Tests/particles_in_PML/analysis_particles_in_pml.py [particles_in_pml] buildDir = . inputFile = Examples/Tests/particles_in_PML/inputs +runtime_params = amrex.abort_on_unused_inputs=1 dim = 3 restartTest = 0 useMPI = 1 @@ -634,11 +644,12 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Tests/particles_in_PML/analysis.py +analysisRoutine = Examples/Tests/particles_in_PML/analysis_particles_in_pml.py [photon_pusher] buildDir = . inputFile = Examples/Tests/photon_pusher/inputs +runtime_params = amrex.abort_on_unused_inputs=1 dim = 3 restartTest = 0 useMPI = 1 @@ -648,7 +659,7 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Tests/photon_pusher/check.py +analysisRoutine = Examples/Tests/photon_pusher/analysis_photon_pusher.py [radiation_reaction] @@ -663,11 +674,12 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Tests/radiation_reaction/test_const_B_analytical/check.py +analysisRoutine = Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py [qed_breit_wheeler_tau_init] buildDir = . inputFile = Examples/Modules/qed/breit_wheeler/inputs.2d_test_tau_init +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = QED=TRUE restartTest = 0 @@ -678,11 +690,12 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Modules/qed/breit_wheeler/check_2d_tau_init.py +analysisRoutine = Examples/Modules/qed/breit_wheeler/analysis_2d_tau_init.py [qed_quantum_sync_tau_init] buildDir = . inputFile = Examples/Modules/qed/quantum_synchrotron/inputs.2d_test_tau_init +runtime_params = amrex.abort_on_unused_inputs=1 dim = 2 addToCompileString = QED=TRUE restartTest = 0 @@ -693,7 +706,7 @@ numthreads = 2 compileTest = 0 doVis = 0 compareParticles = 0 -analysisRoutine = Examples/Modules/qed/quantum_synchrotron/check_2d_tau_init.py +analysisRoutine = Examples/Modules/qed/quantum_synchrotron/analysis_2d_tau_init.py [particle_pusher] buildDir = . @@ -709,6 +722,96 @@ doVis = 0 compareParticles = 0 analysisRoutine = Examples/Tests/particle_pusher/analysis_pusher.py +[Python_gaussian_beam] +buildDir = . +inputFile = Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py +customRunCmd = python PICMI_inputs_gaussian_beam.py +dim = 3 +addToCompileString = USE_PYTHON_MAIN=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +compareParticles = 1 +particleTypes = electrons + +[PlasmaAccelerationBoost2d] +buildDir = . +inputFile = Examples/Physics_applications/plasma_acceleration/inputs.2d.boost +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 amr.n_cell=64 256 max_step=20 +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[Python_PlasmaAcceleration] +buildDir = . +inputFile = Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py +customRunCmd = python PICMI_inputs_plasma_acceleration.py +dim = 3 +addToCompileString = USE_PYTHON_MAIN=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +compareParticles = 1 +particleTypes = beam + +[Python_PlasmaAccelerationMR] +buildDir = . +inputFile = Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py +customRunCmd = python PICMI_inputs_plasma_acceleration_mr.py +dim = 3 +addToCompileString = USE_PYTHON_MAIN=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +compareParticles = 1 +particleTypes = beam + +[PlasmaAccelerationBoost3d] +buildDir = . +inputFile = Examples/Physics_applications/plasma_acceleration/inputs.3d.boost +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 amr.n_cell=64 64 128 max_step=5 +dim = 3 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[PlasmaMirror] +buildDir = . +inputFile = Examples/Physics_applications/plasma_mirror/inputs.2d +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 amr.n_cell=256 128 max_step=20 +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + [momentum-conserving-gather] buildDir = . inputFile = Examples/Physics_applications/plasma_acceleration/inputs.2d @@ -724,3 +827,136 @@ compileTest = 0 doVis = 0 compareParticles = 1 particleTypes = beam driver plasma_e + +[LaserAccelerationRZ] +buildDir = . +inputFile = Examples/Physics_applications/laser_acceleration/inputs.rz +runtime_params = max_step=10 +dim = 2 +addToCompileString = USE_RZ=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 4 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +runtime_params = electrons.plot_vars=w ux uy uz Ex Ey Ez Bx By beam.plot_vars=w ux uy uz Ex Ey Ez Bx By +compareParticles = 1 +particleTypes = electrons beam + +[Python_LaserAccelerationMR] +buildDir = . +inputFile = Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py +customRunCmd = python PICMI_inputs_laser_acceleration.py +dim = 3 +addToCompileString = USE_PYTHON_MAIN=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +compareParticles = 1 +particleTypes = electrons + +[Python_Langmuir_2d] +buildDir = . +inputFile = Examples/Tests/Langmuir/PICMI_inputs_langmuir2d.py +customRunCmd = python PICMI_inputs_langmuir2d.py +dim = 2 +addToCompileString = USE_PYTHON_MAIN=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 +compareParticles = 1 +particleTypes = electrons + +[Python_Langmuir_rz_multimode] +buildDir = . +inputFile = Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz.py +customRunCmd = python PICMI_inputs_langmuir_rz.py +dim = 2 +addToCompileString = USE_PYTHON_MAIN=TRUE USE_RZ=TRUE +restartTest = 0 +useMPI = 1 +numprocs = 4 +useOMP = 1 +numthreads = 1 +compileTest = 0 +doVis = 0 + +[GPU_inputs] +buildDir = . +inputFile = Examples/Tests/gpu_test/inputs +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 +dim = 3 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[LaserOnFine] +buildDir = . +inputFile = Examples/Tests/laser_on_fine/inputs.2d +runtime_params = max_step=50 +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[Larmor] +buildDir = . +inputFile = Examples/Tests/Larmor/inputs.mr +runtime_params = max_step=10 +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[Uniform_2d] +buildDir = . +inputFile = Examples/Physics_applications/uniform_plasma/inputs.2d +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + +[LaserAccelerationBoost] +buildDir = . +inputFile = Examples/Physics_applications/laser_acceleration/inputs.2d.boost +runtime_params = warpx.do_dynamic_scheduling=0 warpx.serialize_ics=1 amr.n_cell=64 512 max_step=20 +dim = 2 +addToCompileString = +restartTest = 0 +useMPI = 1 +numprocs = 2 +useOMP = 1 +numthreads = 2 +compileTest = 0 +doVis = 0 + diff --git a/Examples/batchScripts/batch_cori.sh b/Tools/batchScripts/batch_cori.sh index e6cd5e1ef..e6cd5e1ef 100644 --- a/Examples/batchScripts/batch_cori.sh +++ b/Tools/batchScripts/batch_cori.sh diff --git a/Examples/batchScripts/batch_summit.sh b/Tools/batchScripts/batch_summit.sh index 002660b91..002660b91 100644 --- a/Examples/batchScripts/batch_summit.sh +++ b/Tools/batchScripts/batch_summit.sh diff --git a/Examples/Tests/gpu_test/script_profiling.sh b/Tools/batchScripts/script_profiling_summit.sh index cd6b0eadd..cd6b0eadd 100755 --- a/Examples/Tests/gpu_test/script_profiling.sh +++ b/Tools/batchScripts/script_profiling_summit.sh diff --git a/Examples/Tests/Larmor/plot_particle_path.py b/Tools/plot_particle_path.py index ef52b4f4b..ef52b4f4b 100644 --- a/Examples/Tests/Larmor/plot_particle_path.py +++ b/Tools/plot_particle_path.py diff --git a/Tools/script_profiling_summit.sh b/Tools/script_profiling_summit.sh new file mode 100755 index 000000000..cd6b0eadd --- /dev/null +++ b/Tools/script_profiling_summit.sh @@ -0,0 +1,48 @@ +#!/bin/bash +#BSUB -P GEN109 +#BSUB -W 0:10 +#BSUB -nnodes 1 +#BSUB -J WarpX +#BSUB -o WarpXo.%J +#BSUB -e WarpXe.%J + +module load pgi +module load cuda/9.1.85 +module list +set -x + +omp=1 +export OMP_NUM_THREADS=${omp} +#EXE="../main3d.pgi.DEBUG.TPROF.MPI.ACC.CUDA.ex" +EXE="../main3d.pgi.TPROF.MPI.ACC.CUDA.ex" +#JSRUN="jsrun -n 4 -a 1 -g 1 -c 1 --bind=packed:${omp} " +#JSRUN="jsrun -n 1 -a 4 -g 4 -c 4 --bind=packed:${omp} " +JSRUN="jsrun -n 1 -a 1 -g 1 -c 1 --bind=packed:${omp} " + +rundir="${LSB_JOBNAME}-${LSB_JOBID}" +mkdir $rundir +cp $0 $rundir +cp inputs $rundir +cd $rundir + +# 1. Run normally +${JSRUN} --smpiargs="-gpu" ${EXE} inputs + +# 2. Run under cuda-memcheck +# ${JSRUN} --smpiargs="-gpu" cuda-memcheck ${EXE} inputs &> memcheck.txt + +# 3. Run under nvprof and direct all stdout and stderr to nvprof.txt +#${JSRUN} --smpiargs="-gpu" nvprof --profile-child-processes ${EXE} inputs &> nvprof.txt + +# 4. Run under nvprof and store performance data in a nvvp file +# Can be converted to text using nvprof -i nvprof-timeline-%p.nvvp +#${JSRUN} --smpiargs="-gpu" nvprof --profile-child-processes -o nvprof-timeline-%p.nvvp ${EXE} inputs + +# COLLECT PERFORMANCE METRICS - THIS IS MUCH SLOWER. Set nsteps=2 in the inputs files +# 5. Run under nvprof and collect metrics for a subset of kernels +#${JSRUN} --smpiargs="-gpu" nvprof --profile-child-processes --kernels '(deposit_current|gather_\w+_field|push_\w+_boris)' --analysis-metrics -o nvprof-metrics-kernel-%p.nvvp ${EXE} inputs + +# 6. Run under nvprof and collect metrics for all kernels -- much slower! +#${JSRUN} --smpiargs="-gpu" nvprof --profile-child-processes --analysis-metrics -o nvprof-metrics-%p.nvvp ${EXE} inputs + +cp ../WarpX*.${LSB_JOBID} . diff --git a/run_test.sh b/run_test.sh index bd04cf5f0..b6d4a644b 100755 --- a/run_test.sh +++ b/run_test.sh @@ -41,7 +41,7 @@ else fi # Clone the AMReX regression test utility -git clone https://github.com/RemiLehe/regression_testing.git +git clone https://github.com/ECP-WarpX/regression_testing.git # Prepare regression tests mkdir -p rt-WarpX/WarpX-benchmarks |
