aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/Geometry.py (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-06-27Clang-tidy CI test: add bugprone-branch-clone check (#4030)Gravatar Luca Fedeli 8-80/+94
* add bugprone-branch-clone to clang-tidy CI test * Updating Inline Comments Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-27refactored `HybridPICModel::HybridPICSolveE` to more readable (#4044)Gravatar Roelof Groenewald 5-57/+33
2023-06-27Doc: Summit Scipy Install (#4023)Gravatar Ryan Sandberg 1-11/+13
* fix some build issues * downgrade scipy version to what can install on Summit * make sure to remove tmp build dir * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update * Cleaning --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-26Remove Custom momentum and density injector (#4037)Gravatar Remi Lehe 9-158/+7
2023-06-24Explicitly check field `IndexType` appropriateness when using hybrid-PIC ↵Gravatar Roelof Groenewald 2-6/+20
solver (#4034) * explicitly check field `IndexType` appropriateness when using hybrid-PIC solver * fix typo
2023-06-24change default current deposition algorithm to `direct` with hybrid-PIC ↵Gravatar Roelof Groenewald 2-4/+6
solver (#4033)
2023-06-23added `WarpX::HybridPICDepositInitialRhoAndJ()` helper function to clean up ↵Gravatar Roelof Groenewald 3-31/+41
WarpX::Evolve (#4032)
2023-06-23abort simulation if a user attempts to use an external field applied ↵Gravatar Roelof Groenewald 1-0/+9
directly to the particles with the hybrid-PIC solver (#4020)
2023-06-23Doc: HPC Machines Source Py Env (#4029)Gravatar Axel Huebl 4-0/+5
Make sure the Python environment is active on very first dependency install, before we start compiling.
2023-06-23Doc: HPC3 (UCI) HDF5 & GPU Visibility (#4021)Gravatar Axel Huebl 2-3/+4
* Doc: HPC3 (UCI) HDF5 & GPU Visibility Switch the HDF5 module to one that is picked up well by our build logic. Slurm is not well configured to properly address GPU visibility per MPI rank. Thus, we define the node layouts during compile-time. * GPUS_PER_NODE: In CMake Looks like there is no env var support. * GPU Visibility: Via SLURM_LOCALID Not necessarily ideally pinned, but a good start.
2023-06-23Doc: IPAC22 Tan et al. Dielectric (#4027)Gravatar Axel Huebl 1-0/+5
Document the IPAC22 proceeding article by Tan et al.
2023-06-22Clean up GpuArray init in ABLASTR interp modules (#4028)Gravatar Edoardo Zoni 2-78/+18
2023-06-22Doc: IPAC23 Paper (#4017)Gravatar Axel Huebl 2-1/+21
Document the IPAC23 paper, which uses WarpX to train an ML model for ImpactX.
2023-06-22add modernize-avoid-bind check to clang-tidy CI test (#4025)Gravatar Luca Fedeli 1-0/+1
2023-06-22Move MPIInitHelpers into ablastr (#4026)Gravatar Luca Fedeli 9-29/+36
* move MPIInitHelper into ablastr * fix bug * fix bug
2023-06-22For ReducedDiags, write header on restart if file does not exist (#4022)Gravatar David Grote 16-21/+23
2023-06-21Fixes to remove compilation warnings (#4015)Gravatar David Grote 2-9/+9
* Fixes to remove compilation warnings * Further cleanup in FieldProbe.cpp * Fix Bug, Use Assign Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-21Doc: HPC QED & Multi-Dim (#4013)Gravatar Axel Huebl 18-26/+28
Update HPC machine instructions to enable multi-dims, PSATD and QED table non-defaults for all machines where these dependencies are met. This ensures users will get an as-feature- complete-as-possible install.
2023-06-19Doc: HPC3 (UCI) Fix LinkGravatar Axel Huebl 1-1/+1
2023-06-19Add documentation describing handling of PICMI input (#3978)Gravatar David Grote 1-2/+84
* Add documentation describing handling of PICMI input * Update Docs/source/developers/python.rst * Use the term "layers" Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-19AMReX: Weekly Update (#4008)Gravatar Axel Huebl 5-5/+5
2023-06-19Doc: Batch System Cheat Sheets (#4011)Gravatar Axel Huebl 5-2/+223
Over the years, I documented w/ contributions a series of cheat sheets / quick-references on how to use various batch systems to monitor, change, control, interact-with or abort jobs for various HPC batch systems. Since I found myself looking this sheet up regulary in the PIConGPU documentation, I moved some pages over here, updated them, and added further batch systems we encountered recently.
2023-06-19Doc: HPC3 at UCI (#4010)Gravatar Axel Huebl 5-6/+404
* Doc: HPC3 at UCI Document how to install and run GPU-accelerated WarpX on HPC3 (UCI). * Update Batch Script - mpirun over srun - set OMP_NUM_THREADS * Jupyter Service * Slurm: Link System Examples/Notes
2023-06-17Doc: Copy Code Blocks (#4004)Gravatar Axel Huebl 3-0/+3
Add a copy button to every code block in the docs.
2023-06-17add performance-faster-string-find check in clang-tidy (#4003)Gravatar Luca Fedeli 2-1/+2
2023-06-17Docs: Install Dep Scripts Build Dirs (#4002)Gravatar Axel Huebl 6-23/+42
Clean the temporary build directories of dependencies immediately after successful install, to save on FS quotas.
2023-06-17add performance-for-range-copy check to clang-tidy CI test (#4000)Gravatar Luca Fedeli 1-0/+1
2023-06-16add readability-non-const-parameter check to clang-tidy file (#3999)Gravatar Luca Fedeli 1-1/+2
2023-06-16correct seperate --> separate (#3998)Gravatar Luca Fedeli 2-2/+2
2023-06-15Summit: Optimas Only builds 1hrGravatar Axel Huebl 1-1/+1
2023-06-15Summit: Install optimas separatelyGravatar Axel Huebl 2-4/+12
Will otherwise jump the 2hr walltime of a 1node job.
2023-06-15Doc: Perlmutter (NERSC) Install Helpers (#3985)Gravatar Axel Huebl 8-210/+445
This streamlines the HPC dependency installation docs and makes sure one does not forget to configure the `$proj` environment variable during setup. The new structure is would then be used blueprint for other systems.
2023-06-15Doc: Summit (OLCF) Quick Install + Torch (#3997)Gravatar Axel Huebl 4-70/+307
This streamlines the Summit (OLCF) docs to use install helper scripts. It also adds a step to install pyTorch on ppc64le with CUDA acceleration, consistent with our main environment for our codes.
2023-06-16Generalize buffers for `SyncRho`, `SyncCurrent`, and related functions (#3995)Gravatar Edoardo Zoni 8-58/+69
2023-06-15Add Twiss alpha to BeamRelevant and Docs (#3993)Gravatar Marco Garten 2-15/+27
2023-06-15Added external field loading from file to picmi.py (#3945)Gravatar Camille Woicekowska 8-81/+162
* Added external field loading from file to picmi.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Python/pywarpx/picmi.py Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Added documentation * Removed init, documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated picmi version in requirements.txt * Updated picmi version in setup.py * Updated picmi version in requirements.txt * Updated name of call to picmi class * Adapted CI test for PICMI field loading from file * Added PICMI input script * Added .json file with new file name * fixed small errors * Fixed error in input script * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removed old comments from code * fixed import, spacing in input script * fixed spacing * cleaned up input script * fixed typo * removed blocking factor * fixed name of test * correct ion species name * Added initial field to sim object --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-15AMReX: Weekly Update (#3992)Gravatar Axel Huebl 5-5/+5
2023-06-15Fix: Unused Cost GPUClock (#3988)Gravatar Axel Huebl 1-1/+1
By default, unused on ROCm, for instance.
2023-06-14Docs: Frontier Script DetailsGravatar Axel Huebl 1-1/+17
2023-06-14Doc: Frontier (OLCF) hipcc (#3986)Gravatar Axel Huebl 4-42/+213
* Doc: Frontier (OLCF) hipcc On Frontier, we switch back to `hipcc` as compiler since we see: - HPE/Cray compilers have the performance regression we saw for 5.3-5.4 even when we load the ROCm 5.2 modules in the latest CCE programming environment (PE) - ROCm 5.5 still has the performance regressions This also adds RZ+PSATD dependencies of BLAS++ & LAPACK++ and Python dependencies, and modernizes/streamlines the dependency install. * Add Absolute Path
2023-06-14Fix: 1D Abort in Kernels (#3987)Gravatar Axel Huebl 2-8/+8
Regression to #3965
2023-06-14Docs: Update OpenMP for macOS Pkg Mgs (#3990)Gravatar Axel Huebl 1-1/+17
Update especially conda for macOS OpenMP dependencies.
2023-06-14Docs: Debian/Ubuntu no-MPI (#3983)Gravatar Axel Huebl 3-53/+78
* Docs: Debian/Ubuntu no-MPI Add details how to install dependencies with `apt` w/o MPI. Add details how to compile w/ and w/o MPI. * General Cleaning
2023-06-14Add Frontier Checkpointing and IO Warning (#3984)Gravatar Marco Garten 1-0/+17
* Add Frontier Checkpointing and IO Warning We observed that I/O and checkpointing can be critically slow at scale with the default settings. We recommend testing and making changes to striping or AMReX checkpointing. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-13Add python script to update benchmarks from Azure output (#2355)Gravatar Neïl Zaim 2-2/+119
* Add python script to update benchmarks from Azure output * Update Regression/Checksum/update_benchmarks_from_azure_output.py Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Cleaner python script * Remove empirical numbers and read and write the json files once * Also read dashes in test names * Move script to Tools/DevUtils folder * Add documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Directly parse the new file * Apply suggestions from code review Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> --------- Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-13Enforce const correctness using clang-tidy CI test (#3921)Gravatar Luca Fedeli 144-1230/+1277
* add clang-tidy workflow * fix missing newline * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * make clang.14.sh executable * remove non explicitly selected checks * complete list of dependencies * fix bug * specify path of clang-tidy file * fix bug * add new check * remove one check * add magic numbers check * removed one check * keep only one check * Docs: Conda Dev w/ Boost (#3911) Add the `boost` package to the conda developer environment. Used for QED table generation. * Fix typo in Adastra cluster documentation (#3918) * add back three checks * prepare clang-tidy wrapper * actually use clang-tidy in the script * test * fix bug * actually use clang-tidy * fixed bug * fixed bug * fixed bug * fixed bug * remove all checks except the selected 3 * fixed bug * fixed bug * fixed bug * enforce const correctness using clang-tidy * remove one check * Fix Concurrency Issue * BLAS++/LAPACK++ for RZ+PSATD * Build all 4 WarpX DIMS * add few echo for test purposes * try to debug mysterious error * don't test RZ with clang-tidy * add back RZ test * add some const * fix bug * check also header files * remove header filter since it does not work as expected * fixed bug * check also WarpX headers * fix bugs * continue enforcing const correctness * continue enforcing const correctness * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed bug * fix bugs and add new const * clean .clang-tidy * make regex more precise according to Weiqun's suggestion * add more const * fix bugs * fix bug * silence warning on float comparison * fixed bug * fixed bugs * fix bug and add const * fixed bugs * fix bug * fix bug * fix bug * fixed bug * fix bug
2023-06-12Docs: TAE (#3977)Gravatar Axel Huebl 1-3/+3
* Docs: TAE Acknowledge TAE contributions & reflect moved core developers such as @roelof-groenewald :) * Update TAE Technologies Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Update acknowledge_us.rst --------- Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-12Cleanup unused parts of WarpX Python interface (#3971)Gravatar Remi Lehe 4-33/+2
* Cleanup unused parts of WarpX Python interface * Fix breaking Python import
2023-06-12Ohm's law solver (hybrid kinetic-fluid extension) (#3665)Gravatar Roelof Groenewald 53-44/+4521
* Add "None" as an option for the Maxwell solver * fixed some of the reasons for failing CI tests * no longer pass `do_electrostatic` to `GuardCellManager` * renamed `MaxwellSolverAlgo` to `ElectromagneticSolverAlgo` * rename `do_electrostatic` to `electrostatic_solver_id` * rename `maxwell_solver_id` to `electromagnetic_solver_id` * start of hybrid solver logic * changes requested during PR review * remove `do_no_deposit` from tests without field evolution * added `HybridSolveE.cpp` * bulk of the hybrid solver implementation * mostly reproduce 1d cold ion mirror results * ion Bernstein modes reproduced with this version * fix bug with reduced diagnostic FieldProbe in 1d * added hybrid solver installation to PICMI and added example script generating ion-Bernstein modes * enable the use of `FieldProbe` default parameter values * use default field-probe values * steady progress * add `do_not_push` flag to picmi * possibly use nodal fields * added extra multifab for current calculated from curl B * added `CalculateTotalCurrent` functions * rewrote implementation to calculate J x curl B on a nodal grid first * fill boundary for auxiliary MFs used during hybrid E solve * properly handle nonzero resistivity * updated hybrid model example * clean up example scripts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed invalid memory access for GPU and other code cleanups * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refinements on the example scripts * added ion beam instability example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added EM modes and ion beam examples to CI test suite * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * started docs section on the hybrid model * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * more progress on documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added ion Landau damping verification test / example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add checksum benchmark for Landau damping example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added fields.py wrapper to access total current density in hybrid case * refactored the charge deposition fix to be performed with the field data rather than individual particles * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * also correct current density at PEC boundary * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * made resistivity a parsed function of `rho` * work on PEC boundary condition * corrections pointed out during code review * fix build fails due to unused variables * fix issue with GPU builds * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * actually apply rho boundary correction in EM case * take one sided derivative at PEC boundary when calculating div Pe * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * actually apply rho boundary correction in EM case * removed specific treatment of E-field on PEC boundary for Ohm's law solver * first round of CI fixes * second round of CI fixes * added description of deposition logic with PEC boundaries to documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * third round of CI fixing * move J and rho boundary handling to after `SyncRho` and `SyncCurrent` calls * properly order the application of boundary conditions on rho, for electrostatic simulations * fourth round of CI fixing * moved calculation of total current (Ampere's law) to seperate function * add random seed specification to `picmi` * code clean-up -> renamed hybrid model to hybrid-PIC model * added magnetic reconnection example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * code cleanup & benchmark updates * update PICMI class name for hybrid solver to `HybridPICSolver` * don't apply J field boundary in * don't apply J field boundary in `MultiParticleContainer::DepositCurrent` * apply changes requested during code review * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Loosen tolerance on failing CI test * Removed unused variable * code cleanup: make use of `MultiParticleContainer::DepositCurrent` in `AddSpaceChargeFieldLabFrame` * switch to using a rho_fp_temp multifab for old and averaged charge density field, also no longer require particles to move only one cell per step * use `ablastr::coarsen::sample` namespace in `HybridPICSolveECartesian` * switched to using `MultiFab::LinComb` instead of self written GPU kernels to calculated averaged or extrapolated current density * add verbosity flag for the Ohm solver tests * deal with fine versus coarse patches * add theoretical instability growth / damping rates to hybrid-PIC examples * update ion-Bernstein mode plot in documentation * move the `ApplyRhofieldBoundary` call to after `SumBoundary` * use a uniform calculation for the number of cells a given index is from the boundary * remove unused variable * limit number of ghost cells updated during PEC BC application * the number of ghost cells to consider depends on whether the field is nodal or not * attempt 1 to fix failing CI tests * attempt 2 to fix failing CI tests and code cleanup * attempt 3 to fix failing CI tests * attempt 4 to fix failing CI tests and docs cleanup * switched to using bibtex citations * move hybrid solver input parameters documentation to its own section * clean up ion beam instability analysis script * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * add inline comments describing the meaning of each argument for the `amrex::MultiFab::LinComb` calls used * make `HybridPICSolver` a child class of `picmistandard.base._ClassWithInit` * apply changes requested during code review * add warning about using hybrid-PIC solver with Esirkepov current deposition * add Stanier 2020 reference to recommend linear particles with hybrid-PIC * add call to FillBoundary for `current_fp` - needed for accurate interpolation to nodal grid * changes requested from code review * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * include physics accuracy check for ion beam instability; switch CI tests to use direct current deposition * reset benchmark values after switching to direct current deposition * update ion beam instability benchmark * minor changes requested during code review * remove guard cells for `enE_nodal_mf` as well as corresponding `FillBoundary` call * refactor: moved hybrid-PIC specific multifabs and `CalculateElectronPressure()` to `HybridPICModel` * add assert that load balancing is not used with the hybrid-PIC solver since the new multifabs are not yet properly redistributed * move `CalculateCurrentAmpere` to `HybridPICModel` * refactor: moved `HybridPICSolveE` to `HybridPICModel` class --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2023-06-12Replace amrex::Abort with WARPX_ABORT_WITH_MESSAGE (#3965)Gravatar Luca Fedeli 30-75/+97
* replace amrex::Abort with WarpX macros * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * adding back missing include * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * bump precision