diff options
118 files changed, 478 insertions, 238 deletions
diff --git a/.editorconfig b/.editorconfig index b63a89f6c..0f75d35a7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -30,3 +30,7 @@ trim_trailing_whitespace = false # TABs are part of its syntax indent_style = tab indent_size = unset + +[*.py] +# isort config +force_sort_within_sections = true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6bae2ddb8..de2af9287 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -57,6 +57,32 @@ repos: # C++ formatting # clang-format +# Autoremoves unused Python imports +- repo: https://github.com/hadialqattan/pycln + rev: v1.1.0 + hooks: + - id: pycln + name: pycln (python) + +# Sorts Python imports according to PEP8 +# https://www.python.org/dev/peps/pep-0008/#imports +- repo: https://github.com/pycqa/isort + rev: 5.10.1 + hooks: + - id: isort + name: isort (python) + +# Python: Flake8 (checks only, does this support auto-fixes?) +#- repo: https://github.com/PyCQA/flake8 +# rev: 4.0.1 +# hooks: +# - id: flake8 +# additional_dependencies: &flake8_dependencies +# - flake8-bugbear +# - pep8-naming +# exclude: ^(docs/.*|tools/.*)$ +# Alternatively: use autopep8? + # Python Formatting #- repo: https://github.com/psf/black # rev: 21.10b0 # Keep in sync with blacken-docs diff --git a/Docs/source/conf.py b/Docs/source/conf.py index eab022751..9542fa019 100644 --- a/Docs/source/conf.py +++ b/Docs/source/conf.py @@ -25,8 +25,13 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -import os, sys, urllib.request, subprocess +import os +import subprocess +import sys +import urllib.request + import sphinx_rtd_theme + sys.path.insert(0, os.path.join( os.path.abspath(__file__), '../Python') ) # -- General configuration ------------------------------------------------ diff --git a/Examples/Modules/ParticleBoundaryScrape/analysis_scrape.py b/Examples/Modules/ParticleBoundaryScrape/analysis_scrape.py index 652fd3be3..8082b1133 100755 --- a/Examples/Modules/ParticleBoundaryScrape/analysis_scrape.py +++ b/Examples/Modules/ParticleBoundaryScrape/analysis_scrape.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 -import yt from pathlib import Path +import yt + # This test shoots a beam of electrons at cubic embedded boundary geometry # At time step 40, none of the particles have hit the boundary yet. At time # step 60, all of them should have been absorbed by the boundary. In the diff --git a/Examples/Modules/RigidInjection/analysis_rigid_injection_BoostedFrame.py b/Examples/Modules/RigidInjection/analysis_rigid_injection_BoostedFrame.py index 5e5a5bf74..ba04580af 100755 --- a/Examples/Modules/RigidInjection/analysis_rigid_injection_BoostedFrame.py +++ b/Examples/Modules/RigidInjection/analysis_rigid_injection_BoostedFrame.py @@ -20,9 +20,10 @@ The simulation runs in a boosted frame, and the analysis is done in the lab frame, i.e., on the back-transformed diagnostics. ''' -import yt import numpy as np import read_raw_data +import yt + yt.funcs.mylog.setLevel(0) # Read data from back-transformed diagnostics diff --git a/Examples/Modules/RigidInjection/analysis_rigid_injection_LabFrame.py b/Examples/Modules/RigidInjection/analysis_rigid_injection_LabFrame.py index c764ef357..624fd8f7c 100755 --- a/Examples/Modules/RigidInjection/analysis_rigid_injection_LabFrame.py +++ b/Examples/Modules/RigidInjection/analysis_rigid_injection_LabFrame.py @@ -20,10 +20,12 @@ case rigid injection is OFF (i.e., the beam starts expanding from -5 microns), in which case a warning is raised. ''' +import os import sys -import yt + import numpy as np -import os +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/dive_cleaning/analysis.py b/Examples/Modules/dive_cleaning/analysis.py index c4c09353e..504368fa8 100755 --- a/Examples/Modules/dive_cleaning/analysis.py +++ b/Examples/Modules/dive_cleaning/analysis.py @@ -15,13 +15,16 @@ This script verifies that the field at the end of the simulation corresponds to the theoretical field of a Gaussian beam. """ import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt -import yt import numpy as np import scipy.constants as scc from scipy.special import gammainc +import yt + yt.funcs.mylog.setLevel(0) # Parameters from the Simulation diff --git a/Examples/Modules/embedded_boundary_cube/analysis_fields.py b/Examples/Modules/embedded_boundary_cube/analysis_fields.py index 05f43ce1c..b81f72d9d 100755 --- a/Examples/Modules/embedded_boundary_cube/analysis_fields.py +++ b/Examples/Modules/embedded_boundary_cube/analysis_fields.py @@ -1,9 +1,12 @@ #!/usr/bin/env python3 -import yt -import os, sys -from scipy.constants import mu_0, pi, c +import os +import sys + import numpy as np +from scipy.constants import c, mu_0, pi +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/embedded_boundary_cube/analysis_fields_2d.py b/Examples/Modules/embedded_boundary_cube/analysis_fields_2d.py index 8127cc9e5..227048be9 100755 --- a/Examples/Modules/embedded_boundary_cube/analysis_fields_2d.py +++ b/Examples/Modules/embedded_boundary_cube/analysis_fields_2d.py @@ -1,10 +1,11 @@ #!/usr/bin/env python3 -import yt import os import sys -from scipy.constants import mu_0, pi, c + import numpy as np +from scipy.constants import c, mu_0, pi +import yt sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/embedded_boundary_python_API/PICMI_inputs_EB_API.py b/Examples/Modules/embedded_boundary_python_API/PICMI_inputs_EB_API.py index b0653ae01..6dea197d3 100755 --- a/Examples/Modules/embedded_boundary_python_API/PICMI_inputs_EB_API.py +++ b/Examples/Modules/embedded_boundary_python_API/PICMI_inputs_EB_API.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import numpy as np import pywarpx -from pywarpx import picmi, fields +from pywarpx import fields, picmi max_steps = 1 unit = 1e-3 diff --git a/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields.py b/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields.py index 655322b5b..02f4c8012 100755 --- a/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields.py +++ b/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields.py @@ -7,10 +7,13 @@ # License: BSD-3-Clause-LBNL -import yt -import os, sys -from scipy.constants import mu_0, pi, c +import os +import sys + import numpy as np +from scipy.constants import c, mu_0, pi +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields_2d.py b/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields_2d.py index 2b48d1a36..5c8c544d0 100755 --- a/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields_2d.py +++ b/Examples/Modules/embedded_boundary_rotated_cube/analysis_fields_2d.py @@ -1,10 +1,11 @@ #!/usr/bin/env python3 -import yt import os import sys -from scipy.constants import mu_0, pi, c + import numpy as np +from scipy.constants import c, mu_0, pi +import yt sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py index a20f18a68..fc965787f 100755 --- a/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py +++ b/Examples/Modules/gaussian_beam/PICMI_inputs_gaussian_beam.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 -from pywarpx import picmi #from warp import picmi import argparse +from pywarpx import picmi parser = argparse.ArgumentParser(description="Gaussian beam PICMI example") diff --git a/Examples/Modules/ionization/analysis_ionization.py b/Examples/Modules/ionization/analysis_ionization.py index f11662b0a..d81e04345 100755 --- a/Examples/Modules/ionization/analysis_ionization.py +++ b/Examples/Modules/ionization/analysis_ionization.py @@ -18,10 +18,12 @@ 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 yt + import numpy as np -import os +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/laser_injection/analysis_1d.py b/Examples/Modules/laser_injection/analysis_1d.py index 7c8e985f6..4f4bd505d 100755 --- a/Examples/Modules/laser_injection/analysis_1d.py +++ b/Examples/Modules/laser_injection/analysis_1d.py @@ -12,13 +12,16 @@ # the simulation and it compares it with theory. It also checks that the # central frequency of the Fourier transform is the expected one. -import yt import sys + import matplotlib +import yt + matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np from scipy.signal import hilbert + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/laser_injection/analysis_2d.py b/Examples/Modules/laser_injection/analysis_2d.py index e26ae4478..377931718 100755 --- a/Examples/Modules/laser_injection/analysis_2d.py +++ b/Examples/Modules/laser_injection/analysis_2d.py @@ -17,15 +17,18 @@ # the simulation and it compares it with theory. It also checks that the # central frequency of the Fourier transform is the expected one. -import yt +import os import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as np -import os from scipy.signal import hilbert -from mpl_toolkits.axes_grid1 import make_axes_locatable +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/laser_injection/analysis_laser.py b/Examples/Modules/laser_injection/analysis_laser.py index 5e2234c30..8dde8d6e9 100755 --- a/Examples/Modules/laser_injection/analysis_laser.py +++ b/Examples/Modules/laser_injection/analysis_laser.py @@ -8,12 +8,15 @@ # License: BSD-3-Clause-LBNL +import os import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np -import os + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/laser_injection_from_file/analysis.py b/Examples/Modules/laser_injection_from_file/analysis.py index 05a245e52..03c2a3c5c 100755 --- a/Examples/Modules/laser_injection_from_file/analysis.py +++ b/Examples/Modules/laser_injection_from_file/analysis.py @@ -16,14 +16,17 @@ # - Compute the theory for laser envelope at time T # - Compare theory and simulation, for both envelope and central frequency -import yt ; yt.funcs.mylog.setLevel(50) -import numpy as np +import glob +import os + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt +import numpy as np from scipy.signal import hilbert -import glob -import os + +import yt ; yt.funcs.mylog.setLevel(50) #Maximum acceptable error for this test relative_error_threshold = 0.065 diff --git a/Examples/Modules/nci_corrector/analysis_ncicorr.py b/Examples/Modules/nci_corrector/analysis_ncicorr.py index 409c4ba2f..d3849e707 100755 --- a/Examples/Modules/nci_corrector/analysis_ncicorr.py +++ b/Examples/Modules/nci_corrector/analysis_ncicorr.py @@ -8,11 +8,13 @@ # License: BSD-3-Clause-LBNL -import sys -import yt import re +import sys + import numpy as np import scipy.constants as scc +import yt + yt.funcs.mylog.setLevel(0) fn = sys.argv[1] diff --git a/Examples/Modules/qed/breit_wheeler/analysis_core.py b/Examples/Modules/qed/breit_wheeler/analysis_core.py index cb65fccb9..61d928bf2 100755 --- a/Examples/Modules/qed/breit_wheeler/analysis_core.py +++ b/Examples/Modules/qed/breit_wheeler/analysis_core.py @@ -7,13 +7,12 @@ # # License: BSD-3-Clause-LBNL +import matplotlib.pyplot as plt import numpy as np -import scipy.special as spe import scipy.integrate as integ +import scipy.special as spe import scipy.stats as st -import matplotlib.pyplot as plt - # This script performs detailed checks of the Breit-Wheeler pair production process. # Four populations of photons are initialized with different momenta in different # directions in a background EM field (with non-zero components along each direction). diff --git a/Examples/Modules/qed/breit_wheeler/analysis_opmd.py b/Examples/Modules/qed/breit_wheeler/analysis_opmd.py index e06bfe127..2b1fbc703 100755 --- a/Examples/Modules/qed/breit_wheeler/analysis_opmd.py +++ b/Examples/Modules/qed/breit_wheeler/analysis_opmd.py @@ -8,11 +8,13 @@ # -*- coding: utf-8 -*- import sys + +import analysis_core as ac import openpmd_api as io + #sys.path.insert(1, '../../../../warpx/Regression/Checksum/') #import checksumAPI -import analysis_core as ac # This script is a frontend for the analysis routines # in analysis_core.py (please refer to this file for diff --git a/Examples/Modules/qed/breit_wheeler/analysis_yt.py b/Examples/Modules/qed/breit_wheeler/analysis_yt.py index ef377d55a..e8950419f 100755 --- a/Examples/Modules/qed/breit_wheeler/analysis_yt.py +++ b/Examples/Modules/qed/breit_wheeler/analysis_yt.py @@ -9,11 +9,12 @@ import os import sys + import yt -sys.path.insert(1, '../../../../warpx/Regression/Checksum/') -import checksumAPI +sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import analysis_core as ac +import checksumAPI # This script is a frontend for the analysis routines # in analysis_core.py (please refer to this file for diff --git a/Examples/Modules/qed/quantum_synchrotron/analysis.py b/Examples/Modules/qed/quantum_synchrotron/analysis.py index 2abafa24a..ee6139f75 100755 --- a/Examples/Modules/qed/quantum_synchrotron/analysis.py +++ b/Examples/Modules/qed/quantum_synchrotron/analysis.py @@ -8,16 +8,17 @@ # -*- coding: utf-8 -*- -import yt -import numpy as np import os import sys -import scipy.special as spe + +import numpy as np import scipy.integrate as integ +import scipy.special as spe import scipy.stats as st +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI - import matplotlib.pyplot as plt # This script performs detailed checks of the Quantum Synchrotron photon emission process. diff --git a/Examples/Modules/qed/schwinger/analysis_schwinger.py b/Examples/Modules/qed/schwinger/analysis_schwinger.py index 8af14a425..c93c92021 100755 --- a/Examples/Modules/qed/schwinger/analysis_schwinger.py +++ b/Examples/Modules/qed/schwinger/analysis_schwinger.py @@ -11,11 +11,13 @@ ## The pair production rate is calculated using the formula described in ## Bulanov, S. S., et al. Physical review letters 104.22 (2010): 220404. -import yt -import numpy as np import os -import sys import re +import sys + +import numpy as np +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/relativistic_space_charge_initialization/analysis.py b/Examples/Modules/relativistic_space_charge_initialization/analysis.py index 19dc84ef2..569a7d267 100755 --- a/Examples/Modules/relativistic_space_charge_initialization/analysis.py +++ b/Examples/Modules/relativistic_space_charge_initialization/analysis.py @@ -11,14 +11,17 @@ This script checks the space-charge initialization routine, by verifying that the space-charge field of a Gaussian beam corresponds to the expected theoretical field. """ +import os import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt -import yt import numpy as np -import os import scipy.constants as scc +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/resampling/analysis_leveling_thinning.py b/Examples/Modules/resampling/analysis_leveling_thinning.py index ffa2a4333..50fec6282 100755 --- a/Examples/Modules/resampling/analysis_leveling_thinning.py +++ b/Examples/Modules/resampling/analysis_leveling_thinning.py @@ -9,11 +9,13 @@ ## In this test, we check that leveling thinning works as expected on two simple cases. Each case ## corresponds to a different particle species. -import yt -import numpy as np import os import sys + +import numpy as np from scipy.special import erf +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Modules/space_charge_initialization/analysis.py b/Examples/Modules/space_charge_initialization/analysis.py index 130a54207..0df21e6d9 100755 --- a/Examples/Modules/space_charge_initialization/analysis.py +++ b/Examples/Modules/space_charge_initialization/analysis.py @@ -11,15 +11,18 @@ This script checks the space-charge initialization routine, by verifying that the space-charge field of a Gaussian beam corresponds to the expected theoretical field. """ +import os import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt -import yt import numpy as np -import os import scipy.constants as scc from scipy.special import gammainc +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Physics_applications/capacitive_discharge/PICMI_inputs_2d.py b/Examples/Physics_applications/capacitive_discharge/PICMI_inputs_2d.py index 1456fadd9..7afbf8ccc 100755 --- a/Examples/Physics_applications/capacitive_discharge/PICMI_inputs_2d.py +++ b/Examples/Physics_applications/capacitive_discharge/PICMI_inputs_2d.py @@ -6,9 +6,10 @@ # --- used for the field solve step. import numpy as np -from scipy.sparse import csc_matrix, linalg as sla import pywarpx -from pywarpx import picmi, callbacks, fields +from pywarpx import callbacks, fields, picmi +from scipy.sparse import csc_matrix +from scipy.sparse import linalg as sla constants = picmi.constants diff --git a/Examples/Physics_applications/capacitive_discharge/analysis.py b/Examples/Physics_applications/capacitive_discharge/analysis.py index 41f8f55f3..641bea50b 100755 --- a/Examples/Physics_applications/capacitive_discharge/analysis.py +++ b/Examples/Physics_applications/capacitive_discharge/analysis.py @@ -8,6 +8,7 @@ # rather than the iterative approach from the MLMG solver. import sys + sys.path.append('../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py index 7e75e14de..4931a20e9 100755 --- a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py +++ b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py @@ -2,6 +2,7 @@ # import numpy as np from pywarpx import picmi + #from warp import picmi constants = picmi.constants diff --git a/Examples/Physics_applications/laser_acceleration/analysis_refined_injection.py b/Examples/Physics_applications/laser_acceleration/analysis_refined_injection.py index 26508f40d..88bbd422d 100755 --- a/Examples/Physics_applications/laser_acceleration/analysis_refined_injection.py +++ b/Examples/Physics_applications/laser_acceleration/analysis_refined_injection.py @@ -11,9 +11,12 @@ # the actual number of electrons at step 200 to the expected value import os import sys + import yt + yt.funcs.mylog.setLevel(50) import numpy as np + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py index e237ac1c1..296aea48b 100755 --- a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py +++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from pywarpx import picmi + #from warp import picmi constants = picmi.constants diff --git a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py index 99086a99e..65ef1b898 100755 --- a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py +++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from pywarpx import picmi + #from warp import picmi constants = picmi.constants diff --git a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py index f3156ec3f..03f78cadb 100755 --- a/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py +++ b/Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_mr.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from pywarpx import picmi + #from warp import picmi constants = picmi.constants diff --git a/Examples/Tests/ElectrostaticDirichletBC/PICMI_inputs_2d.py b/Examples/Tests/ElectrostaticDirichletBC/PICMI_inputs_2d.py index 21c4c49c9..309251149 100755 --- a/Examples/Tests/ElectrostaticDirichletBC/PICMI_inputs_2d.py +++ b/Examples/Tests/ElectrostaticDirichletBC/PICMI_inputs_2d.py @@ -2,7 +2,6 @@ from pywarpx import picmi - ########################## # physics parameters ########################## diff --git a/Examples/Tests/ElectrostaticDirichletBC/analysis.py b/Examples/Tests/ElectrostaticDirichletBC/analysis.py index 6dd231e89..8541ed864 100755 --- a/Examples/Tests/ElectrostaticDirichletBC/analysis.py +++ b/Examples/Tests/ElectrostaticDirichletBC/analysis.py @@ -13,10 +13,10 @@ # Possible running time: ~ 19 s -import numpy as np +import glob +import numpy as np import yt -import glob files = sorted(glob.glob('dirichletbc_plt*'))[1:] if len(files) == 0: diff --git a/Examples/Tests/ElectrostaticSphere/analysis_electrostatic_sphere.py b/Examples/Tests/ElectrostaticSphere/analysis_electrostatic_sphere.py index 9bb3ff5f5..c718c1a42 100755 --- a/Examples/Tests/ElectrostaticSphere/analysis_electrostatic_sphere.py +++ b/Examples/Tests/ElectrostaticSphere/analysis_electrostatic_sphere.py @@ -17,10 +17,12 @@ the correct speed and that the electric field is accurately modeled against a known analytic solution. While the radius r(t) is not analytically known, its inverse t(r) can be solved for exactly. """ +import sys + import numpy as np from scipy.optimize import fsolve -import sys import yt + yt.funcs.mylog.setLevel(0) # Open plotfile specified in command line diff --git a/Examples/Tests/ElectrostaticSphereEB/PICMI_inputs_3d.py b/Examples/Tests/ElectrostaticSphereEB/PICMI_inputs_3d.py index e95365425..b1f631fc2 100755 --- a/Examples/Tests/ElectrostaticSphereEB/PICMI_inputs_3d.py +++ b/Examples/Tests/ElectrostaticSphereEB/PICMI_inputs_3d.py @@ -2,7 +2,6 @@ from pywarpx import picmi - ########################## # physics parameters ########################## diff --git a/Examples/Tests/ElectrostaticSphereEB/analysis.py b/Examples/Tests/ElectrostaticSphereEB/analysis.py index 79a414237..3cd17aa97 100755 --- a/Examples/Tests/ElectrostaticSphereEB/analysis.py +++ b/Examples/Tests/ElectrostaticSphereEB/analysis.py @@ -5,6 +5,7 @@ # tests are otherwise the same. import sys + sys.path.append('../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py index 3db0b838f..dae0ba40d 100755 --- a/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py +++ b/Examples/Tests/Langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py @@ -4,12 +4,13 @@ # This simulates a RZ multimode periodic plasma wave. # The electric field from the simulation is compared to the analytic value -import numpy as np import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt +import numpy as np import pywarpx -from pywarpx import picmi, fields +from pywarpx import fields, picmi constants = picmi.constants diff --git a/Examples/Tests/Langmuir/analysis_langmuir_multi.py b/Examples/Tests/Langmuir/analysis_langmuir_multi.py index 29dbe2255..c45a40219 100755 --- a/Examples/Tests/Langmuir/analysis_langmuir_multi.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi.py @@ -6,24 +6,28 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs.multi.rt`. This simulates a 3D periodic plasma wave. # The electric field in the simulation is given (in theory) by: # $$ E_x = \epsilon \,\frac{m_e c^2 k_x}{q_e}\sin(k_x x)\cos(k_y y)\cos(k_z z)\sin( \omega_p t)$$ # $$ E_y = \epsilon \,\frac{m_e c^2 k_y}{q_e}\cos(k_x x)\sin(k_y y)\cos(k_z z)\sin( \omega_p t)$$ # $$ E_z = \epsilon \,\frac{m_e c^2 k_z}{q_e}\cos(k_x x)\cos(k_y y)\sin(k_z z)\sin( \omega_p t)$$ -import sys import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) -import numpy as np import os -from scipy.constants import e, m_e, epsilon_0, c + +import numpy as np +from scipy.constants import c, e, epsilon_0, m_e + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py b/Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py index 5fb03e459..52fda1dcf 100755 --- a/Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py @@ -6,21 +6,24 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs.multi.rt`. This simulates a 1D periodic plasma wave. # The electric field in the simulation is given (in theory) by: # $$ E_z = \epsilon \,\frac{m_e c^2 k_z}{q_e}\sin(k_z z)\sin( \omega_p t)$$ -import sys import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) import numpy as np -from scipy.constants import e, m_e, epsilon_0, c +from scipy.constants import c, e, epsilon_0, m_e + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py b/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py index 17a6fd72b..8b88dc995 100755 --- a/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi_2d.py @@ -6,24 +6,28 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs.multi.rt`. This simulates a 3D periodic plasma wave. # The electric field in the simulation is given (in theory) by: # $$ E_x = \epsilon \,\frac{m_e c^2 k_x}{q_e}\sin(k_x x)\cos(k_y y)\cos(k_z z)\sin( \omega_p t)$$ # $$ E_y = \epsilon \,\frac{m_e c^2 k_y}{q_e}\cos(k_x x)\sin(k_y y)\cos(k_z z)\sin( \omega_p t)$$ # $$ E_z = \epsilon \,\frac{m_e c^2 k_z}{q_e}\cos(k_x x)\cos(k_y y)\sin(k_z z)\sin( \omega_p t)$$ -import sys +import os import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) + import numpy as np -import os -from scipy.constants import e, m_e, epsilon_0, c +from scipy.constants import c, e, epsilon_0, m_e + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py b/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py index d99c6426e..87fd0b367 100755 --- a/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py +++ b/Examples/Tests/Langmuir/analysis_langmuir_multi_rz.py @@ -5,8 +5,7 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs.multi.rz.rt`. This simulates a RZ periodic plasma wave. # The electric field in the simulation is given (in theory) by: @@ -14,17 +13,22 @@ # $$ E_z = -\partial_z \phi = - \epsilon \,\frac{mc^2}{e} k_0 \exp\left(-\frac{r^2}{w_0^2}\right) \cos(k_0 z) \sin(\omega_p t) # Unrelated to the Langmuir waves, we also test the plotfile particle filter function in this # analysis script. -import sys +import os import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) + import numpy as np -import os -from scipy.constants import e, m_e, epsilon_0, c import post_processing_utils +from scipy.constants import c, e, epsilon_0, m_e + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/Maxwell_Hybrid_QED/analysis_Maxwell_QED_Hybrid.py b/Examples/Tests/Maxwell_Hybrid_QED/analysis_Maxwell_QED_Hybrid.py index 0db5e0a75..e74e9c524 100755 --- a/Examples/Tests/Maxwell_Hybrid_QED/analysis_Maxwell_QED_Hybrid.py +++ b/Examples/Tests/Maxwell_Hybrid_QED/analysis_Maxwell_QED_Hybrid.py @@ -7,10 +7,12 @@ # License: BSD-3-Clause-LBNL import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np import scipy.constants as scc +import yt ; yt.funcs.mylog.setLevel(0) + # Static electric field and quantum parameters, from the input file. Es = 1.0e5 xi = 1.0e-23 diff --git a/Examples/Tests/PEC/analysis_pec.py b/Examples/Tests/PEC/analysis_pec.py index 32bb10ddf..0414420ef 100755 --- a/Examples/Tests/PEC/analysis_pec.py +++ b/Examples/Tests/PEC/analysis_pec.py @@ -5,22 +5,26 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs_field_PEC_3d`. This simulates a sinusoindal wave. # The electric field (Ey) is a standing wave due to the PEC boundary condition, # and as a result, the minimum and maximum value after reflection would be two times the value at initialization due to constructive interference. # Additionally, the value of Ey at the boundary must be equal to zero. -import sys +import os import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) + import numpy as np -import os + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/PEC/analysis_pec_mr.py b/Examples/Tests/PEC/analysis_pec_mr.py index 9d7d6656e..1f9e5276c 100755 --- a/Examples/Tests/PEC/analysis_pec_mr.py +++ b/Examples/Tests/PEC/analysis_pec_mr.py @@ -5,22 +5,26 @@ # This file is part of WarpX. # # License: BSD-3-Clause-LBNL - - +# # This is a script that analyses the simulation results from # the script `inputs_field_PEC_mr_3d`. This simulates a sinusoindal wave. # The electric field (Ey) is a standing wave due to the PEC boundary condition, # and as a result, the minimum and maximum value after reflection would be two times the value at initialization due to constructive interference. # Additionally, the value of Ey at the boundary must be equal to zero. -import sys +import os import re +import sys + import matplotlib + matplotlib.use('Agg') import matplotlib.pyplot as plt import yt + yt.funcs.mylog.setLevel(50) + import numpy as np -import os + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/PML/analysis_pml_ckc.py b/Examples/Tests/PML/analysis_pml_ckc.py index 74faab3d7..c4b9d5464 100755 --- a/Examples/Tests/PML/analysis_pml_ckc.py +++ b/Examples/Tests/PML/analysis_pml_ckc.py @@ -8,11 +8,13 @@ # License: BSD-3-Clause-LBNL +import os import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np -import os import scipy.constants as scc + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/PML/analysis_pml_psatd.py b/Examples/Tests/PML/analysis_pml_psatd.py index 9710ee4e9..287ce1e29 100755 --- a/Examples/Tests/PML/analysis_pml_psatd.py +++ b/Examples/Tests/PML/analysis_pml_psatd.py @@ -7,11 +7,13 @@ # # License: BSD-3-Clause-LBNL +import os import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np -import os import scipy.constants as scc + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI @@ -67,6 +69,7 @@ assert(reflectivity < reflectivity_max) # Check restart data v. original data sys.path.insert(0, '../../../../warpx/Examples/') from analysis_default_restart import check_restart + check_restart(filename) test_name = os.path.split(os.getcwd())[1] diff --git a/Examples/Tests/PML/analysis_pml_yee.py b/Examples/Tests/PML/analysis_pml_yee.py index 61527ef2d..f10b281c5 100755 --- a/Examples/Tests/PML/analysis_pml_yee.py +++ b/Examples/Tests/PML/analysis_pml_yee.py @@ -8,11 +8,13 @@ # License: BSD-3-Clause-LBNL +import os import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np -import os import scipy.constants as scc + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI @@ -55,6 +57,7 @@ assert( error_rel < tolerance_rel ) # Check restart data v. original data sys.path.insert(0, '../../../../warpx/Examples/') from analysis_default_restart import check_restart + check_restart(filename) test_name = os.path.split(os.getcwd())[1] diff --git a/Examples/Tests/ParticleDataPython/PICMI_inputs_2d.py b/Examples/Tests/ParticleDataPython/PICMI_inputs_2d.py index 2162236eb..6df8d676c 100755 --- a/Examples/Tests/ParticleDataPython/PICMI_inputs_2d.py +++ b/Examples/Tests/ParticleDataPython/PICMI_inputs_2d.py @@ -1,9 +1,10 @@ #!/usr/bin/env python3 import argparse import sys + import numpy as np import pywarpx -from pywarpx import picmi, callbacks +from pywarpx import callbacks, picmi # Create the parser and add the argument parser = argparse.ArgumentParser() diff --git a/Examples/Tests/PythonWrappers/PICMI_inputs_2d.py b/Examples/Tests/PythonWrappers/PICMI_inputs_2d.py index 8e4648554..597bcd69a 100755 --- a/Examples/Tests/PythonWrappers/PICMI_inputs_2d.py +++ b/Examples/Tests/PythonWrappers/PICMI_inputs_2d.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable +import numpy as np from pywarpx import picmi # Number of time steps @@ -171,6 +171,7 @@ sim.initialize_warpx() # Get fields data using Python wrappers import pywarpx.fields as pwxf + Ex = pwxf.ExFPWrapper(include_ghosts = include_ghosts) Ey = pwxf.EyFPWrapper(include_ghosts = include_ghosts) Ez = pwxf.EzFPWrapper(include_ghosts = include_ghosts) diff --git a/Examples/Tests/RepellingParticles/analysis_repelling.py b/Examples/Tests/RepellingParticles/analysis_repelling.py index e9df1e4b2..0aa3ed53d 100755 --- a/Examples/Tests/RepellingParticles/analysis_repelling.py +++ b/Examples/Tests/RepellingParticles/analysis_repelling.py @@ -22,12 +22,16 @@ w is the weight of the individual macroparticles d is the distance between them beta is the velocity normalized by the speed of light """ -import numpy as np -from scipy.constants import m_e, c, physical_constants -import sys, re, os -import yt import glob +import os +import re +import sys + import matplotlib.pyplot as plt +import numpy as np +from scipy.constants import c, m_e, physical_constants +import yt + yt.funcs.mylog.setLevel(0) # Check plotfile name specified in command line @@ -74,5 +78,6 @@ assert np.allclose( -beta2[1:], beta_th[1:], atol=0.01 ) # Run checksum regression test sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI + test_name = os.path.split(os.getcwd())[1] checksumAPI.evaluate_checksum(test_name, last_filename) diff --git a/Examples/Tests/SilverMueller/analysis_silver_mueller.py b/Examples/Tests/SilverMueller/analysis_silver_mueller.py index 947d92acd..9fa7dc9f1 100755 --- a/Examples/Tests/SilverMueller/analysis_silver_mueller.py +++ b/Examples/Tests/SilverMueller/analysis_silver_mueller.py @@ -11,10 +11,12 @@ A laser pulse is emitted and propagates towards the boundaries ; the test check that the reflected field at the boundary is negligible. """ +import os import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np -import os + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/SingleParticle/analysis_bilinear_filter.py b/Examples/Tests/SingleParticle/analysis_bilinear_filter.py index 310948ce2..95ee07619 100755 --- a/Examples/Tests/SingleParticle/analysis_bilinear_filter.py +++ b/Examples/Tests/SingleParticle/analysis_bilinear_filter.py @@ -7,11 +7,13 @@ # License: BSD-3-Clause-LBNL +import os import sys -import yt ; yt.funcs.mylog.setLevel(0) + import numpy as np -import os from scipy import signal + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/boundaries/analysis.py b/Examples/Tests/boundaries/analysis.py index ca86d6b8b..0a879bb83 100755 --- a/Examples/Tests/boundaries/analysis.py +++ b/Examples/Tests/boundaries/analysis.py @@ -14,11 +14,13 @@ along each of the three axis. It launches particles heading toward each of the b and checks that they end up in the correct place (or are deleted). """ +import os import sys -import yt + import numpy as np -import os -from scipy.constants import m_e, c +from scipy.constants import c, m_e +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/collision/analysis_collision_2d.py b/Examples/Tests/collision/analysis_collision_2d.py index 4eefa280b..07cbe50d4 100755 --- a/Examples/Tests/collision/analysis_collision_2d.py +++ b/Examples/Tests/collision/analysis_collision_2d.py @@ -23,14 +23,16 @@ # tolerance: 0.001 # Possible running time: ~ 30.0 s -import sys -import yt +import glob import math -import numpy import os -import glob import re +import sys + +import numpy import post_processing_utils +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/collision/analysis_collision_3d.py b/Examples/Tests/collision/analysis_collision_3d.py index 8bc8f700b..52cbf6dab 100755 --- a/Examples/Tests/collision/analysis_collision_3d.py +++ b/Examples/Tests/collision/analysis_collision_3d.py @@ -23,14 +23,16 @@ # tolerance: 0.001 # Possible running time: ~ 30.0 s -import sys -import yt +import glob import math -import numpy import os -import glob import re +import sys + +import numpy import post_processing_utils +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/collision/analysis_collision_rz.py b/Examples/Tests/collision/analysis_collision_rz.py index 72f57eb09..9f9b9c17f 100755 --- a/Examples/Tests/collision/analysis_collision_rz.py +++ b/Examples/Tests/collision/analysis_collision_rz.py @@ -16,11 +16,13 @@ # tolerance: 1.0e-30 # Possible running time: ~ 1.0 s +from glob import glob import os import sys -import yt + import numpy as np -from glob import glob +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/divb_cleaning/analysis.py b/Examples/Tests/divb_cleaning/analysis.py index 4f7e34e36..1cdbdcb78 100755 --- a/Examples/Tests/divb_cleaning/analysis.py +++ b/Examples/Tests/divb_cleaning/analysis.py @@ -7,12 +7,16 @@ # License: BSD-3-Clause-LBNL import sys + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') -import numpy as np import os + +import numpy as np import yt + yt.funcs.mylog.setLevel(50) import re + import checksumAPI from scipy.constants import c diff --git a/Examples/Tests/embedded_circle/analysis.py b/Examples/Tests/embedded_circle/analysis.py index 28391ebe2..6401b47bb 100755 --- a/Examples/Tests/embedded_circle/analysis.py +++ b/Examples/Tests/embedded_circle/analysis.py @@ -2,6 +2,7 @@ import os import sys + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/galilean/analysis_2d.py b/Examples/Tests/galilean/analysis_2d.py index b7ea2b6e7..820dcc667 100755 --- a/Examples/Tests/galilean/analysis_2d.py +++ b/Examples/Tests/galilean/analysis_2d.py @@ -14,12 +14,14 @@ It compares the energy of the electric field with precalculated reference energy * if averaged Galilean PSATD is used ('psatd.do_time_averaging == 1) : NCI is suppressed => simulation is stable. """ -import sys +import os import re -import yt ; yt.funcs.mylog.setLevel(0) +import sys + import numpy as np -import os import scipy.constants as scc + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/galilean/analysis_3d.py b/Examples/Tests/galilean/analysis_3d.py index a05aadf6a..d224e2b9a 100755 --- a/Examples/Tests/galilean/analysis_3d.py +++ b/Examples/Tests/galilean/analysis_3d.py @@ -14,12 +14,14 @@ It compares the energy of the electric field with precalculated reference energy * if averaged Galilean PSATD is used ('psatd.do_time_averaging == 1) : NCI is suppressed => simulation is stable. """ -import sys +import os import re -import yt ; yt.funcs.mylog.setLevel(0) +import sys + import numpy as np -import os import scipy.constants as scc + +import yt ; yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/initial_distribution/analysis_distribution.py b/Examples/Tests/initial_distribution/analysis_distribution.py index 98e48420a..23b0a38c0 100755 --- a/Examples/Tests/initial_distribution/analysis_distribution.py +++ b/Examples/Tests/initial_distribution/analysis_distribution.py @@ -16,12 +16,14 @@ # 7 denotes maxwell-boltzmann distribution w/ spatially-varying velocity # The distribution is obtained through reduced diagnostic ParticleHistogram. -import numpy as np import os +import sys + +import numpy as np +from read_raw_data import read_reduced_diags, read_reduced_diags_histogram import scipy.constants as scc import scipy.special as scs -from read_raw_data import read_reduced_diags_histogram, read_reduced_diags -import sys + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/initial_plasma_profile/analysis.py b/Examples/Tests/initial_plasma_profile/analysis.py index 552ac473a..b8cfaad10 100755 --- a/Examples/Tests/initial_plasma_profile/analysis.py +++ b/Examples/Tests/initial_plasma_profile/analysis.py @@ -8,7 +8,9 @@ import os import sys + import yt + yt.funcs.mylog.setLevel(50) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') diff --git a/Examples/Tests/particle_pusher/analysis_pusher.py b/Examples/Tests/particle_pusher/analysis_pusher.py index ae12b211a..0d9e3a743 100755 --- a/Examples/Tests/particle_pusher/analysis_pusher.py +++ b/Examples/Tests/particle_pusher/analysis_pusher.py @@ -24,7 +24,9 @@ import os import sys + import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py b/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py index ebc517e55..85878d3ad 100755 --- a/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py +++ b/Examples/Tests/particles_in_PML/analysis_particles_in_pml.py @@ -19,7 +19,9 @@ charge, with associated fields, behind them. """ import os import sys + import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/pass_mpi_communicator/PICMI_inputs_2d.py b/Examples/Tests/pass_mpi_communicator/PICMI_inputs_2d.py index 540766152..fbb108a0e 100755 --- a/Examples/Tests/pass_mpi_communicator/PICMI_inputs_2d.py +++ b/Examples/Tests/pass_mpi_communicator/PICMI_inputs_2d.py @@ -8,6 +8,7 @@ from mpi4py import MPI import pywarpx from pywarpx import picmi + constants = picmi.constants ########################## diff --git a/Examples/Tests/pass_mpi_communicator/analysis.py b/Examples/Tests/pass_mpi_communicator/analysis.py index 9c1be3e51..db23c7047 100755 --- a/Examples/Tests/pass_mpi_communicator/analysis.py +++ b/Examples/Tests/pass_mpi_communicator/analysis.py @@ -4,15 +4,18 @@ # the script `PICMI_inputs_2d`. import sys + import matplotlib + matplotlib.use('Agg') import yt + yt.funcs.mylog.setLevel(50) import numpy as np + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksum - # this will be the name of the first plot file fn1 = "Python_pass_mpi_comm_plt1_00010" # second plot file diff --git a/Examples/Tests/photon_pusher/analysis_photon_pusher.py b/Examples/Tests/photon_pusher/analysis_photon_pusher.py index 03c47b314..92d1e95f7 100755 --- a/Examples/Tests/photon_pusher/analysis_photon_pusher.py +++ b/Examples/Tests/photon_pusher/analysis_photon_pusher.py @@ -7,10 +7,12 @@ # # License: BSD-3-Clause-LBNL -import yt -import numpy as np import os import sys + +import numpy as np +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/plasma_lens/analysis.py b/Examples/Tests/plasma_lens/analysis.py index 094870eaf..f13ecb00f 100755 --- a/Examples/Tests/plasma_lens/analysis.py +++ b/Examples/Tests/plasma_lens/analysis.py @@ -15,11 +15,13 @@ The final positions are compared to the analytic solutions. The motion is slow enough that relativistic effects are ignored. """ -import sys import os -import yt +import sys + import numpy as np -from scipy.constants import e, m_e, c +from scipy.constants import c, e, m_e +import yt + yt.funcs.mylog.setLevel(0) sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py b/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py index d56990e1a..001dd5011 100755 --- a/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py +++ b/Examples/Tests/radiation_reaction/test_const_B_analytical/analysis_classicalRR.py @@ -30,10 +30,12 @@ # 3) H. Spohn, Dynamics of charged particles and their radiation field # (Cambridge University Press, Cambridge, 2004) -import numpy as np import os import sys + +import numpy as np import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/reduced_diags/analysis_reduced_diags_impl.py b/Examples/Tests/reduced_diags/analysis_reduced_diags_impl.py index 3be1667d1..81d5f8fc2 100755 --- a/Examples/Tests/reduced_diags/analysis_reduced_diags_impl.py +++ b/Examples/Tests/reduced_diags/analysis_reduced_diags_impl.py @@ -11,13 +11,16 @@ # Various particle and field quantities are written to file using the reduced diagnostics # and compared with the corresponding quantities computed from the data in the plotfiles. +import os import sys -import yt + import numpy as np -import os -from scipy.constants import c, m_e, m_p -from scipy.constants import mu_0 as mu0 +from scipy.constants import c from scipy.constants import epsilon_0 as eps0 +from scipy.constants import m_e, m_p +from scipy.constants import mu_0 as mu0 +import yt + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/reduced_diags/analysis_reduced_diags_loadbalancecosts.py b/Examples/Tests/reduced_diags/analysis_reduced_diags_loadbalancecosts.py index 2246eaeb3..263e16bdf 100755 --- a/Examples/Tests/reduced_diags/analysis_reduced_diags_loadbalancecosts.py +++ b/Examples/Tests/reduced_diags/analysis_reduced_diags_loadbalancecosts.py @@ -17,9 +17,11 @@ # Possible running time: ~ 1 s -import numpy as np import os import sys + +import numpy as np + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/Tests/restart/PICMI_inputs_runtime_component_analyze.py b/Examples/Tests/restart/PICMI_inputs_runtime_component_analyze.py index bc1cd9217..ffb820fed 100755 --- a/Examples/Tests/restart/PICMI_inputs_runtime_component_analyze.py +++ b/Examples/Tests/restart/PICMI_inputs_runtime_component_analyze.py @@ -5,9 +5,10 @@ # to the original simulation. import sys + import numpy as np import pywarpx -from pywarpx import picmi, callbacks +from pywarpx import callbacks, picmi ########################## # physics parameters diff --git a/Examples/Tests/restart/analysis_restart.py b/Examples/Tests/restart/analysis_restart.py index 7934cd518..1a5b13746 100755 --- a/Examples/Tests/restart/analysis_restart.py +++ b/Examples/Tests/restart/analysis_restart.py @@ -1,7 +1,8 @@ #!/usr/bin/env python3 -import sys import os +import sys + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI @@ -10,6 +11,7 @@ filename = sys.argv[1] # Check restart data v. original data sys.path.insert(0, '../../../../warpx/Examples/') from analysis_default_restart import check_restart + check_restart(filename) # Check-sum analysis diff --git a/Examples/analysis_default_regression.py b/Examples/analysis_default_regression.py index 3198cbe37..453f650be 100755 --- a/Examples/analysis_default_regression.py +++ b/Examples/analysis_default_regression.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 import os -import sys import re +import sys + sys.path.insert(1, '../../../../warpx/Regression/Checksum/') import checksumAPI diff --git a/Examples/analysis_default_restart.py b/Examples/analysis_default_restart.py index 21373b30a..612851678 100755 --- a/Examples/analysis_default_restart.py +++ b/Examples/analysis_default_restart.py @@ -3,6 +3,7 @@ import numpy as np import yt + def check_restart(filename, tolerance = 1e-12): """ Compare output data generated from initial run with output data generated after restart. diff --git a/Python/pywarpx/Bucket.py b/Python/pywarpx/Bucket.py index 3a0d2862c..917bf47f2 100644 --- a/Python/pywarpx/Bucket.py +++ b/Python/pywarpx/Bucket.py @@ -7,6 +7,7 @@ import numpy as np + class Bucket(object): """ The purpose of this class is to be a named bucket for holding attributes. diff --git a/Python/pywarpx/Constants.py b/Python/pywarpx/Constants.py index abc0c3e87..e899fa255 100644 --- a/Python/pywarpx/Constants.py +++ b/Python/pywarpx/Constants.py @@ -8,6 +8,7 @@ import re from .Bucket import Bucket + class Constants(Bucket): """ The purpose of this class is to be hold user defined constants diff --git a/Python/pywarpx/PGroup.py b/Python/pywarpx/PGroup.py index ad6b4b878..f19c0d079 100644 --- a/Python/pywarpx/PGroup.py +++ b/Python/pywarpx/PGroup.py @@ -5,8 +5,10 @@ # License: BSD-3-Clause-LBNL import numpy as np + from . import _libwarpx + class PGroup(object): """Implements a class that has the same API as a warp ParticleGroup instance. """ diff --git a/Python/pywarpx/WarpInterface.py b/Python/pywarpx/WarpInterface.py index 46c38ffdc..0a1899389 100644 --- a/Python/pywarpx/WarpInterface.py +++ b/Python/pywarpx/WarpInterface.py @@ -14,9 +14,10 @@ # The class WarpX_EM3D inherits from Warp's EM3D class. It primarily provides # access to the field plotting routines. +from pywarpx import PGroup import warp + from . import fields -from pywarpx import PGroup # The particle weight is always the first pid warp.top.wpid = 1 diff --git a/Python/pywarpx/WarpX.py b/Python/pywarpx/WarpX.py index 232550764..8c4900fab 100644 --- a/Python/pywarpx/WarpX.py +++ b/Python/pywarpx/WarpX.py @@ -5,22 +5,20 @@ # # License: BSD-3-Clause-LBNL +from . import Particles, _libwarpx +from .Algo import algo +from .Amr import amr +from .Boundary import boundary from .Bucket import Bucket +from .Collisions import collisions, collisions_list from .Constants import my_constants -from .Amr import amr +from .Diagnostics import diagnostics from .Geometry import geometry -from .Boundary import boundary -from .Algo import algo -from .Langmuirwave import langmuirwave from .Interpolation import interpolation +from .Langmuirwave import langmuirwave from .Lasers import lasers, lasers_list -from . import Particles -from .Particles import particles, particles_list -from .Collisions import collisions, collisions_list from .PSATD import psatd -from .Diagnostics import diagnostics - -from . import _libwarpx +from .Particles import particles, particles_list class WarpX(Bucket): diff --git a/Python/pywarpx/WarpXPIC.py b/Python/pywarpx/WarpXPIC.py index e98ff823d..a2efaffbd 100644 --- a/Python/pywarpx/WarpXPIC.py +++ b/Python/pywarpx/WarpXPIC.py @@ -12,8 +12,10 @@ # able to run a customized PIC simulation with that code. from warp.run_modes.timestepper import PICAPI + from ._libwarpx import libwarpx + class WarpXPIC(PICAPI): def get_time(self): diff --git a/Python/pywarpx/__init__.py b/Python/pywarpx/__init__.py index fb671915e..8751b07ff 100644 --- a/Python/pywarpx/__init__.py +++ b/Python/pywarpx/__init__.py @@ -4,18 +4,17 @@ # # License: BSD-3-Clause-LBNL -from .WarpX import warpx -from .Constants import my_constants +from .Algo import algo from .Amr import amr from .Boundary import boundary +from .Collisions import collisions +from .Constants import my_constants +from .Diagnostics import diagnostics from .Geometry import geometry -from .Algo import algo -from .Langmuirwave import langmuirwave from .Interpolation import interpolation -from .Particles import particles, electrons, positrons, protons, newspecies -from .Collisions import collisions -from .PSATD import psatd +from .Langmuirwave import langmuirwave from .Lasers import lasers -from .Diagnostics import diagnostics - +from .PSATD import psatd +from .Particles import electrons, newspecies, particles, positrons, protons +from .WarpX import warpx from ._libwarpx import * # noqa diff --git a/Python/pywarpx/_libwarpx.py b/Python/pywarpx/_libwarpx.py index 2c942c49d..84e13d1af 100755 --- a/Python/pywarpx/_libwarpx.py +++ b/Python/pywarpx/_libwarpx.py @@ -5,13 +5,14 @@ # # License: BSD-3-Clause-LBNL -# --- This defines the wrapper functions that directly call the underlying compiled routines -import os -import sys -import platform import atexit import ctypes from ctypes.util import find_library as _find_library +# --- This defines the wrapper functions that directly call the underlying compiled routines +import os +import platform +import sys + import numpy as np from numpy.ctypeslib import ndpointer as _ndpointer @@ -21,6 +22,7 @@ try: # --- If mpi4py is going to be used, this needs to be imported # --- before libwarpx is loaded, because mpi4py calls MPI_Init from mpi4py import MPI + # --- Change MPI Comm type depending on MPICH (int) or OpenMPI (void*) if MPI._sizeof(MPI.Comm) == ctypes.sizeof(ctypes.c_int): _MPI_Comm_type = ctypes.c_int diff --git a/Python/pywarpx/callbacks.py b/Python/pywarpx/callbacks.py index 49d0c3db2..35cc51894 100644 --- a/Python/pywarpx/callbacks.py +++ b/Python/pywarpx/callbacks.py @@ -53,15 +53,17 @@ installafterstep(myplots) """ from __future__ import generators -import types import copy -import time import ctypes import sys +import time +import types + import numpy from ._libwarpx import libwarpx + class CallbackFunctions(object): """ Class to handle call back function lists. diff --git a/Python/pywarpx/fields.py b/Python/pywarpx/fields.py index 6f4ec1c43..85b0f2f23 100644 --- a/Python/pywarpx/fields.py +++ b/Python/pywarpx/fields.py @@ -14,6 +14,7 @@ JxWrapper, JyWrapper, JzWrapper """ import numpy as np + try: from mpi4py import MPI as mpi comm_world = mpi.COMM_WORLD diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index 677253405..cbe01baa6 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -8,12 +8,13 @@ """Classes following the PICMI standard """ -import re import os -import picmistandard +import re + import numpy as np -import pywarpx import periodictable +import picmistandard +import pywarpx codename = 'warpx' picmistandard.register_codename(codename) diff --git a/Python/pywarpx/timestepper.py b/Python/pywarpx/timestepper.py index f75bc8c2b..de341097a 100644 --- a/Python/pywarpx/timestepper.py +++ b/Python/pywarpx/timestepper.py @@ -12,8 +12,7 @@ # Note that this is intended to be an example only and may not be functional. The # onestep routine as written here is out of date and is not consistent with WarpX::Evolve. -from . import libwarpx -from . import callbacks +from . import callbacks, libwarpx class TimeStepper(object): diff --git a/Regression/Checksum/benchmark.py b/Regression/Checksum/benchmark.py index 47f2535cd..771aa06e1 100644 --- a/Regression/Checksum/benchmark.py +++ b/Regression/Checksum/benchmark.py @@ -6,10 +6,11 @@ This file is part of WarpX. License: BSD-3-Clause-LBNL """ -import config import json import os +import config + class Benchmark: '''Holds data and functions for referenc benchmark of one checksum test. diff --git a/Regression/Checksum/checksum.py b/Regression/Checksum/checksum.py index 341a791b1..da8ec8225 100644 --- a/Regression/Checksum/checksum.py +++ b/Regression/Checksum/checksum.py @@ -6,10 +6,11 @@ License: BSD-3-Clause-LBNL """ -from benchmark import Benchmark -import yt import sys + +from benchmark import Benchmark import numpy as np +import yt yt.funcs.mylog.setLevel(50) diff --git a/Regression/Checksum/checksumAPI.py b/Regression/Checksum/checksumAPI.py index 40c607fc8..3d25413bd 100755 --- a/Regression/Checksum/checksumAPI.py +++ b/Regression/Checksum/checksumAPI.py @@ -8,12 +8,13 @@ License: BSD-3-Clause-LBNL """ -from checksum import Checksum -from benchmark import Benchmark import argparse import glob -import sys import os +import sys + +from benchmark import Benchmark +from checksum import Checksum ''' API for WarpX checksum tests. It can be used in two ways: diff --git a/Regression/PostProcessingUtils/post_processing_utils.py b/Regression/PostProcessingUtils/post_processing_utils.py index 1ce398121..50026ca10 100644 --- a/Regression/PostProcessingUtils/post_processing_utils.py +++ b/Regression/PostProcessingUtils/post_processing_utils.py @@ -9,6 +9,7 @@ import numpy as np import yt + ## This is a generic function to test a particle filter. We reproduce the filter in python and ## verify that the results are the same as with the WarpX filtered diagnostic. def check_particle_filter(fn, filtered_fn, filter_expression, dim, species_name): diff --git a/Regression/prepare_file_ci.py b/Regression/prepare_file_ci.py index 46c9bf8b1..03accd185 100644 --- a/Regression/prepare_file_ci.py +++ b/Regression/prepare_file_ci.py @@ -5,13 +5,14 @@ # # License: BSD-3-Clause-LBNL +import os # This script modifies `WarpX-test.ini` (which is used for nightly builds) # and creates the file `ci-test.ini` (which is used for continous # integration) # The subtests that are selected are controlled by WARPX_TEST_DIM # The architecture (CPU/GPU) is selected by WARPX_TEST_ARCH import re -import os + # Get relevant environment variables arch = os.environ.get('WARPX_TEST_ARCH', 'CPU') diff --git a/Source/Utils/check_interp_points_and_weights.py b/Source/Utils/check_interp_points_and_weights.py index 13b429050..4d54af01c 100644 --- a/Source/Utils/check_interp_points_and_weights.py +++ b/Source/Utils/check_interp_points_and_weights.py @@ -24,9 +24,11 @@ # data. C++ implementation in Source/Utils/CoarsenMR.H/.cpp and Source/Utils/CoarsenIO.H/.cpp #------------------------------------------------------------------------------- -import numpy as np import sys +import numpy as np + + # Fine grid limits (without ghost cells) def fine_grid_limits( sf ): if ( sf == 0 ): # cell-centered diff --git a/Source/Utils/write_atomic_data_cpp.py b/Source/Utils/write_atomic_data_cpp.py index d1df7a3ea..3b0538aa1 100644 --- a/Source/Utils/write_atomic_data_cpp.py +++ b/Source/Utils/write_atomic_data_cpp.py @@ -13,7 +13,9 @@ the NIST website) and extracts ionization levels into C++ file IonizationEnergiesTable.H, which contains tables + metadata. ''' -import re, os +import os +import re + import numpy as np filename = os.path.join( '.', 'atomic_data.txt' ) diff --git a/Tools/LibEnsemble/plot_results.py b/Tools/LibEnsemble/plot_results.py index 5c2548257..6c294fe36 100755 --- a/Tools/LibEnsemble/plot_results.py +++ b/Tools/LibEnsemble/plot_results.py @@ -6,12 +6,13 @@ input: A directory which which the script will read the latest .npy and .pickle files generated by LibEnsemble """ -import os -import sys import glob +import os import pickle -import numpy as np +import sys + import matplotlib.pyplot as plt +import numpy as np # 'aposmm' or 'random' generator_type = 'random' diff --git a/Tools/LibEnsemble/read_sim_output.py b/Tools/LibEnsemble/read_sim_output.py index 861575e88..5eabf1803 100644 --- a/Tools/LibEnsemble/read_sim_output.py +++ b/Tools/LibEnsemble/read_sim_output.py @@ -1,9 +1,10 @@ +import glob import os import shutil + import numpy as np -import yt import scipy.constants as scc -import glob +import yt """ This file is part of the suite of scripts to use LibEnsemble on top of WarpX diff --git a/Tools/LibEnsemble/run_libensemble_on_warpx.py b/Tools/LibEnsemble/run_libensemble_on_warpx.py index d3f3deec0..dec8dfd54 100644 --- a/Tools/LibEnsemble/run_libensemble_on_warpx.py +++ b/Tools/LibEnsemble/run_libensemble_on_warpx.py @@ -20,32 +20,31 @@ generator_type = 'aposmm' machine = 'local' import sys -import numpy as np -from warpx_simf import run_warpx # Sim function from current directory # Import libEnsemble modules from libensemble.libE import libE +import numpy as np +from warpx_simf import run_warpx # Sim function from current directory + if generator_type == 'random': - from libensemble.gen_funcs.sampling \ - import uniform_random_sample as gen_f - from libensemble.alloc_funcs.give_sim_work_first\ - import give_sim_work_first as alloc_f + from libensemble.alloc_funcs.give_sim_work_first import \ + give_sim_work_first as alloc_f + from libensemble.gen_funcs.sampling import uniform_random_sample as gen_f elif generator_type == 'aposmm': import libensemble.gen_funcs libensemble.gen_funcs.rc.aposmm_optimizers = 'nlopt' + from libensemble.alloc_funcs.persistent_aposmm_alloc import \ + persistent_aposmm_alloc as alloc_f from libensemble.gen_funcs.persistent_aposmm import aposmm as gen_f - from libensemble.alloc_funcs.persistent_aposmm_alloc \ - import persistent_aposmm_alloc as alloc_f else: print("you shouldn' hit that") sys.exit() -from libensemble.tools import parse_args, save_libE_output, \ - add_unique_random_streams +import all_machine_specs from libensemble import libE_logger from libensemble.executors.mpi_executor import MPIExecutor - -import all_machine_specs +from libensemble.tools import (add_unique_random_streams, parse_args, + save_libE_output) # Import machine-specific run parameters if machine == 'local': diff --git a/Tools/LibEnsemble/warpx_simf.py b/Tools/LibEnsemble/warpx_simf.py index 8822d22ef..4a1f0f90d 100644 --- a/Tools/LibEnsemble/warpx_simf.py +++ b/Tools/LibEnsemble/warpx_simf.py @@ -1,9 +1,9 @@ import os import time -import numpy as np from libensemble.executors.executor import Executor -from libensemble.message_numbers import WORKER_DONE, TASK_FAILED +from libensemble.message_numbers import TASK_FAILED, WORKER_DONE +import numpy as np from read_sim_output import read_sim_output from write_sim_input import write_sim_input diff --git a/Tools/LibEnsemble/write_sim_input.py b/Tools/LibEnsemble/write_sim_input.py index edd2ed4a5..e4a639868 100644 --- a/Tools/LibEnsemble/write_sim_input.py +++ b/Tools/LibEnsemble/write_sim_input.py @@ -1,4 +1,5 @@ import re + import scipy.constants as scc """ diff --git a/Tools/PerformanceTests/cori.py b/Tools/PerformanceTests/cori.py index fcd33f992..046767713 100644 --- a/Tools/PerformanceTests/cori.py +++ b/Tools/PerformanceTests/cori.py @@ -5,7 +5,8 @@ # # License: BSD-3-Clause-LBNL -import os, copy +import copy +import os from functions_perftest import test_element diff --git a/Tools/PerformanceTests/functions_perftest.py b/Tools/PerformanceTests/functions_perftest.py index 6af4189b6..938bcb974 100644 --- a/Tools/PerformanceTests/functions_perftest.py +++ b/Tools/PerformanceTests/functions_perftest.py @@ -5,10 +5,15 @@ # # License: BSD-3-Clause-LBNL -import os, shutil, re, copy -import pandas as pd -import numpy as np +import copy +import os +import re +import shutil + import git +import numpy as np +import pandas as pd + # import cori # import summit diff --git a/Tools/PerformanceTests/run_alltests.py b/Tools/PerformanceTests/run_alltests.py index 3ebc40b63..af99df194 100644 --- a/Tools/PerformanceTests/run_alltests.py +++ b/Tools/PerformanceTests/run_alltests.py @@ -5,10 +5,14 @@ # # License: BSD-3-Clause-LBNL -import os, sys, shutil -import argparse, re, time -from functions_perftest import * +import argparse import datetime +import os +import re +import shutil +import time + +from functions_perftest import * # This script runs automated performance tests for WarpX. # It runs tests in list test_list defined below, and write diff --git a/Tools/PerformanceTests/run_alltests_1node.py b/Tools/PerformanceTests/run_alltests_1node.py index 8bc8b3bb4..54900e9e0 100644 --- a/Tools/PerformanceTests/run_alltests_1node.py +++ b/Tools/PerformanceTests/run_alltests_1node.py @@ -4,8 +4,13 @@ # # License: BSD-3-Clause-LBNL -import os, shutil, datetime -import argparse, re, time +import argparse +import datetime +import os +import re +import shutil +import time + from functions_perftest import * # This script runs automated performance tests for WarpX. @@ -301,8 +306,8 @@ if args.mode == 'read': 'git push -u origin development') # Plot file - import numpy as np import matplotlib + import numpy as np matplotlib.use('Agg') import matplotlib.pyplot as plt filename0 = 'my_performance_log' diff --git a/Tools/PerformanceTests/run_automated.py b/Tools/PerformanceTests/run_automated.py index e8fa512ec..14ce0fed2 100644 --- a/Tools/PerformanceTests/run_automated.py +++ b/Tools/PerformanceTests/run_automated.py @@ -5,24 +5,31 @@ # # License: BSD-3-Clause-LBNL -import os, sys, shutil, datetime, git -import argparse, time, copy +import argparse +import copy +import datetime +import os +import shutil +import sys +import time + +from functions_perftest import (extract_dataframe, get_file_content, + run_batch_nnode, store_git_hash) +import git import pandas as pd -from functions_perftest import store_git_hash, get_file_content, \ - run_batch_nnode, extract_dataframe # Get name of supercomputer and import configuration functions from # machine-specific file if os.getenv("LMOD_SYSTEM_NAME") == 'summit': machine = 'summit' - from summit import executable_name, process_analysis, \ - get_config_command, time_min, get_submit_job_command, \ - get_batch_string, get_run_string, get_test_list + from summit import (executable_name, get_batch_string, get_config_command, + get_run_string, get_submit_job_command, get_test_list, + process_analysis, time_min) if os.getenv("NERSC_HOST") == 'cori': machine = 'cori' - from cori import executable_name, process_analysis, \ - get_config_command, time_min, get_submit_job_command, \ - get_batch_string, get_run_string, get_test_list + from cori import (executable_name, get_batch_string, get_config_command, + get_run_string, get_submit_job_command, get_test_list, + process_analysis, time_min) # typical use: python run_automated.py --n_node_list='1,8,16,32' --automated # Assume warpx, picsar, amrex and perf_logs repos ar in the same directory and diff --git a/Tools/PerformanceTests/summit.py b/Tools/PerformanceTests/summit.py index 0dd779d2a..cb0200e19 100644 --- a/Tools/PerformanceTests/summit.py +++ b/Tools/PerformanceTests/summit.py @@ -8,9 +8,12 @@ # requirements: # - module load python/3.7.0-anaconda3-5.3.0 -import os, copy +import copy +import os + from functions_perftest import test_element + def executable_name(compiler,architecture): return 'perf_tests3d.' + compiler + '.TPROF.MTMPI.CUDA.QED.GPUCLOCK.ex' diff --git a/Tools/PostProcessing/plot_distribution_mapping.py b/Tools/PostProcessing/plot_distribution_mapping.py index 0e732b02d..94d63e14e 100644 --- a/Tools/PostProcessing/plot_distribution_mapping.py +++ b/Tools/PostProcessing/plot_distribution_mapping.py @@ -1,7 +1,7 @@ # Standard imports -import os from collections import defaultdict from itertools import product +import os # High-performance math import numpy as np diff --git a/Tools/PostProcessing/plot_parallel.py b/Tools/PostProcessing/plot_parallel.py index 66f3c3cde..e4b75c0e4 100644 --- a/Tools/PostProcessing/plot_parallel.py +++ b/Tools/PostProcessing/plot_parallel.py @@ -4,15 +4,17 @@ # # License: BSD-3-Clause-LBNL -import os +import argparse import glob -import matplotlib +import os import sys -import argparse + +import matplotlib import yt + yt.funcs.mylog.setLevel(50) -import numpy as np import matplotlib.pyplot as plt +import numpy as np ''' This script loops over all WarpX plotfiles in a directory and, for each diff --git a/Tools/PostProcessing/plot_particle_path.py b/Tools/PostProcessing/plot_particle_path.py index 5fee4a467..9bf7f896c 100644 --- a/Tools/PostProcessing/plot_particle_path.py +++ b/Tools/PostProcessing/plot_particle_path.py @@ -7,6 +7,7 @@ import numpy as np + class AMReXParticleHeader(object): ''' @@ -120,9 +121,10 @@ def read_particle_data(fn, ptype="particle0"): if __name__ == "__main__": - import pylab as plt import glob + import pylab as plt + x0 = [] y0 = [] x1 = [] diff --git a/Tools/PostProcessing/read_lab_particles.py b/Tools/PostProcessing/read_lab_particles.py index 2ae52c0eb..5216c94ef 100644 --- a/Tools/PostProcessing/read_lab_particles.py +++ b/Tools/PostProcessing/read_lab_particles.py @@ -4,10 +4,11 @@ # # License: BSD-3-Clause-LBNL -import numpy as np from glob import glob import os +import numpy as np + it = 1 fn = "./lab_frame_data/" + 'snapshot' + str(it).zfill(5) + "/particle1/" diff --git a/Tools/PostProcessing/read_raw_data.py b/Tools/PostProcessing/read_raw_data.py index 60c50d39a..e3e9d879d 100644 --- a/Tools/PostProcessing/read_raw_data.py +++ b/Tools/PostProcessing/read_raw_data.py @@ -5,10 +5,11 @@ # # License: BSD-3-Clause-LBNL +from collections import namedtuple from glob import glob import os + import numpy as np -from collections import namedtuple HeaderInfo = namedtuple('HeaderInfo', ['version', 'how', 'ncomp', 'nghost']) diff --git a/Tools/PostProcessing/video_yt.py b/Tools/PostProcessing/video_yt.py index d59afd5f7..61046b3c0 100644 --- a/Tools/PostProcessing/video_yt.py +++ b/Tools/PostProcessing/video_yt.py @@ -20,8 +20,11 @@ to generate the images. It can be quite slow for even moderately large plotfiles. ''' +import glob + # Import statements -import yt, glob +import yt + yt.enable_parallelism() import numpy as np diff --git a/Tools/PostProcessing/yt3d_mpi.py b/Tools/PostProcessing/yt3d_mpi.py index 5960b1185..20054756d 100644 --- a/Tools/PostProcessing/yt3d_mpi.py +++ b/Tools/PostProcessing/yt3d_mpi.py @@ -17,10 +17,13 @@ to generate the images. It can be quite slow for even moderately large plotfiles. ''' -import yt, glob +import glob + from mpi4py import MPI import numpy as np import scipy.constants as scc +import yt + yt.funcs.mylog.setLevel(50) # my_max = 1.e11 # for smooth rendering diff --git a/Tools/Release/updateAMReX.py b/Tools/Release/updateAMReX.py index c2f7a5176..a4573accf 100755 --- a/Tools/Release/updateAMReX.py +++ b/Tools/Release/updateAMReX.py @@ -11,8 +11,10 @@ import datetime from pathlib import Path import re -import requests import sys + +import requests + try: from configupdater import ConfigUpdater except ImportError: diff --git a/Tools/Release/updatePICSAR.py b/Tools/Release/updatePICSAR.py index ebf9154bc..bbb4887d7 100755 --- a/Tools/Release/updatePICSAR.py +++ b/Tools/Release/updatePICSAR.py @@ -11,8 +11,10 @@ import datetime from pathlib import Path import re -import requests import sys + +import requests + try: from configupdater import ConfigUpdater except ImportError: @@ -1,14 +1,14 @@ +from distutils.command.build import build +from distutils.version import LooseVersion import os -import re -import sys import platform +import re import shutil import subprocess +import sys -from setuptools import setup, Extension +from setuptools import Extension, setup from setuptools.command.build_ext import build_ext -from distutils.command.build import build -from distutils.version import LooseVersion class CopyPreBuild(build): |