aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-08-29Clang tidy CI test: add more readability checks to clang tidy CI test (#4146)Gravatar Luca Fedeli 1-21/+21
* add more readability checks to clang-tidy CI test * reformat check list * starting to address issues found with clang-tidy£ * addressing issues * remove check * address issues * address all issues * address issue found with github code scanning
2023-08-12Transition to pyAMReX (#3474)Gravatar Axel Huebl 1-1/+1
* pyAMReX: Build System * CI Updates (Changed Options) * Callback modernization (#4) * refactor callbacks.py * added binding code in `pyWarpX.cpp` to add or remove keys from the callback dictionary * minor PR cleanups Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Added Python level reference to fetch the multifabs (#3) * pyAMReX: Build System * Added Python level reference to Ex_aux * Now uses the multifab map * Fix typo Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Add initialization and finalize routines (#5) A basic PICMI input file will now run to completion. * Regression Tests: WarpX_PYTHON=ON * Update Imports to nD pyAMReX * IPO/LTO Control Although pybind11 relies heavily on IPO/LTO to create low-latency, small-binary bindings, some compilers will have troubles with that. Thus, we add a compile-time option to optionally disable it when needed. * Fix: Link Legacy WarpXWrappers.cpp * Wrap WarpX instance and start multi particle container * Fix test Python_pass_mpi_comm * Start wrapper for multiparticle container * Add return policy Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update fields to use MultiFabs directly Remove EOL white space Removed old routines accessing MultiFabs Update to use "node_centered" * Fix compilation with Python * Update fields.py to use modified MultiFab tag names * Remove incorrect, unused code * Add function to extract the WarpX MultiParticleContainer * Complete class WarpXParticleContainer * Wrap functions getNprocs / getMyProc * restore `install___` callback API - could remove later if we want but should maintain backward compatibility for now * add `gett_new` and `getistep` functions wrappers; fix typos in `callbacks.py`; avoid error in getting `rho` from `fields.py` * Update callback call and `getNproc`/`getMyProc` function * Replace function add_n_particles * Fix setitem in fields.py for 1d and 2d * also update `gett_new()` in `_libwarpx.py` in case we want to keep that API * added binding for `WarpXParIter` - needed to port `libwarpx.depositChargeDensity()` which is an ongoing effort * Wrap function num_real_comp * added binding for `TotalNumberOfParticles` and continue progress on enabling 1d MCC test to run * add `SyncRho()` binding and create helper function in `libwarpx.depositChargeDensity` to manage scope of the particle iter * Clean up issues in fields.py * update bindings for `get_particle_structs` * Fix setitem in fields.py * switch order of initialization for particle container and particle iterator * switch deposit_charge loop to C++ code; bind `ApplyInverseVolumeScalingToChargeDensity` * move `WarpXParticleContainer.cpp` and `MultiParticleContainer.cpp` to new Particles folder * added binding for `ParticleBoundaryBuffer` * More fixes for fields.py * Fix: Backtraces from Python Add the Python executable name with an absolute path, so backtraces in AMReX work. See linked AMReX issue for details. * Cleaning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix: Backtraces from Python Part II Do not add Python script name - it confuses the AMReX ParmParser to build its table. * Fix: CMake Dependencies for Wheel This fixes a racecondition during `pip_install`: it was possible that not all dimensions where yet build from pybind before we start packing them in the wheel for pip install. * MCC Test: Install Callbacks before Run Otherwise hangs in aquiring the gil during shutdown. * addition of `Python/pywarpx/particle_containers.py` and various associated bindings * Fix: CMake Superbuild w/ Shared AMReX We MUST build AMReX as a shared (so/dll/dylib) library, otherwise all the global state in it will cause split-brain situations, where our Python modules operate on different stacks. * add `clear_all()` to callbacks in order to remove all callbacks at finalize * add `-DWarpX_PYTHON=ON` to CI tests that failed to build * add `get_comp_index` and continue to port particle data bindings * Add AMReX Module as `libwarpx_so.amr` Attribute to pass through the already loaded AMReX module with the matching dimensionality to the simulation. * Fix for fields accounting for guard cells * Fix handling of ghost cells in fields * Update & Test: Particle Boundary Scraping * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * CI: Python Updates - modernize Python setups - drop CUDA 11.0 for good and go 11.3+ as documented already ``` Error #3246: Internal Compiler Error (codegen): "there was an error in verifying the lgenfe output!" ``` * CI: Python Updates (chmod) * Add support for cupy in fields.py * Add MultiFab reduction routines * CI: CUDA 11.3 is <= Ubuntu 20.04 * changed `AddNParticles` to take `amrex::Vector` arguments * setup.py: WarpX_PYTHON=ON * update various 2d and rz tests with new APIs * add `-DWarpX_PYTHON_IPO=OFF` to compile string for 2d and 3d Python CI tests to speed up linking * CI: -DpyAMReX_IPO=OFF * CI: -DpyAMReX_IPO=OFF actually adding `=OFF` * CI: Intel Python * CI: macOS Python Executable Ensure we always use the same `python3` executable, as specified by the `PATH` priority. * CMake: Python Multi-Config Build Add support for multi-config generators, especially on Windows. * __init__.py: Windows DLL Support Python 3.8+ on Windows: DLL search paths for dependent shared libraries Refs.: - https://github.com/python/cpython/issues/80266 - https://docs.python.org/3.8/library/os.html#os.add_dll_directory * CI: pywarpx Update our setup.py cannot install pyamrex yet as a dependency. * ABLASTR: `ablastr/export.H` Add a new header to export public globals that are not covered by `WINDOWS_EXPORT_ALL_SYMBOLS`. https://stackoverflow.com/questions/54560832/cmake-windows-export-all-symbols-does-not-cover-global-variables/54568678#54568678 * WarpX: EXPORT Globals in `.dll` files WarpX still uses a lot of globals: - `static` member variables - `extern` global variables These globals cannot be auto-exported with CMake's `WINDOWS_EXPORT_ALL_SYMBOLS` helper and thus we need to mark them manually for DLL export (and import) via the new ABLASTR `ablastr/export.H` helper macros. This starts to export symbols in the: - WarpX and particle container classes - callback hook database map - ES solver * CI: pywarpx Clang CXXFLAGS Down Move CXXFLAGS (`-Werror ...`) down until deps are installed. * GNUmake: Generate `ablastr/export.H` * CMake: More Symbol Exports for Windows * `WarpX-tests.ini`: Simplify Python no-IPO Also avoids subtle differences in compilation that increase compile time. * Update PICMI_inputs_EB_API.py for embedded_boundary_python_API CI test * Fix Python_magnetostatic_eb_3d * Update: Python_restart_runtime_components New Python APIs * Windows: no dllimport for now * CI: Skip `PYINSTALLOPTIONS` For Now * CMake: Dependency Bump Min-Versions for external packages picked up by `find_package`. * Fix F and G_fp names in fields.py * Tests: Disable `Python_pass_mpi_comm` * Wrappers: Cleanup * pyWarpX: Include Cleaning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fields.py: Fix F and G Wrappers Correct MultiFab names (w/o components). * Remove unused in fields.py * Windows: New Export Headers - ABLASTR: `ablastr/export.H` - WarpX: `Utils/export.H` * removed `WarpInterface.py` since that functionality is now in `particle_containers.py`; removed parts of `WarpXWrappers.cpp` that have been ported to pyamrex * CMake: Link OBJECT Target PRIVATE * CMake: Remove OBJECT Target Simplify and make `app` link `lib` (default: static). Remove OBJECT target. * Fix in fields.py for the components index * Update get_particle_id/cpu As implemented in pyAMReX with https://github.com/AMReX-Codes/pyamrex/pull/165 * WarpX: Update for Private Constructor * Import AMReX Before pyd DLL Call Importing AMReX will add the `add_dll_directory` to a potentially shared amrex DLL on Windows. * Windows CI: Set PATH to amrex_Nd.dll * CMake: AMReX_INSTALL After Python In superbuild, Python can modify `AMReX_BUILD_SHARED_LIBS`. * Clang Win CI: Manually Install requirements Sporadic error is: ``` ... Installing collected packages: pyparsing, numpy, scipy, periodictable, picmistandard ERROR: Could not install packages due to an OSError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\hostedtoolcache\\windows\\Python\\3.11.4\\x64\\Lib\\site-packages\\numpy\\polynomial\\__init__.py' Consider using the `--user` option or check the permissions. ``` * Hopefully final fixes to fields.py * Update getProbLo/getProbHi * Set plasma length strength Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Fix fields method to remove CodeQL notice * Update Comments & Some Finalize * Move: set_plasma_lens_strength to MPC --------- Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> Co-authored-by: David Grote <dpgrote@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Dave Grote <grote1@llnl.gov> Co-authored-by: Roelof Groenewald <regroenewald@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-08-01Clang tidy CI test: add several readability checks to clang tidy CI test ↵Gravatar Luca Fedeli 1-2/+2
(#4124) * add few readability checks to clang-tidy CI test * address all the issues found with clang-tidy * fix bug * fixed bug * fix residual issue * fix issue found with clang-tidy
2023-07-26Initialize variables at declaration if it improves readability (#4117)Gravatar Luca Fedeli 1-7/+3
* init some variables at declaration * make code more readable * avoid lossy function result cast * Update Source/Initialization/WarpXInitData.cpp Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * replace with equality * Revert "replace with equality" This reverts commit e3164f9e053d345b153d770ae107a7f68c4bb260. * Update Source/Diagnostics/ComputeDiagFunctors/ParticleReductionFunctor.cpp Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> --------- Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
2023-06-29Clean up of MultiFab tagging (#4014)Gravatar David Grote 1-38/+38
* Clean up of MultiFab tagging * Use [level=level] for the tag
2023-06-16Generalize buffers for `SyncRho`, `SyncCurrent`, and related functions (#3995)Gravatar Edoardo Zoni 1-30/+34
2023-06-13Enforce const correctness using clang-tidy CI test (#3921)Gravatar Luca Fedeli 4-135/+148
* 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-12Ohm's law solver (hybrid kinetic-fluid extension) (#3665)Gravatar Roelof Groenewald 1-4/+9
* 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 2-5/+6
* 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
2023-06-09Fix SyncCurrent and SyncRho for multi-levels (#3777)Gravatar Weiqun Zhang 1-36/+195
* Fix SyncCurrent and SyncRho for multi-levels Previously these two function did not work when max_level > 1. For example, when max_level = 2, the coarse patch data from level 2 were coarsened and added to the fine patch on level 1. However, the coarse patch on level 1 did not have any contribution from level 2 as it should have, because the coarsening was performed before the fine patch on level 1 received the level 2 contribution. The order has been fixed in this commit. * Improve inline comment Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Improve inline comments * Reset CI benchmark * Add comments * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> --------- Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-05-22Multi-Dim Buildsystem Support (#3933)Gravatar Axel Huebl 1-6/+9
* Multi-Dim Buildsystem Support * Docs
2023-05-08Field Gather: Generalize FGcell (#3909)Gravatar Axel Huebl 1-3/+8
Replace explicit array with little formula for the range of the support function of shape factors.
2023-04-23Import external E/B fields from openPMD files (#3584)Gravatar Phil Miller 1-0/+6
* Squashed commit of the following: commit 5452b0a818e952fc8ac989a306b0ea83738243f1 Merge: a21dda0f 90b72e80 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Fri Sep 23 13:22:03 2022 -0700 Merge branch 'development' of https://github.com/ECP-WarpX/WarpX into add_external_fields commit a21dda0f1bad8ee8601104c3322631d5f385ffdd Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Fri Sep 23 13:13:23 2022 -0700 Update commit 3394416cc0f7dc1e4742249b469957bedbfd5e84 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 24 13:37:30 2022 -0700 Update Examples/Tests/LoadExternalField/* commit f0650b02e2f2d8d9719163ed5d4fd932a9d62a5b Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 24 12:41:11 2022 -0700 parameters.rst added commit a96a3eb3a181d6e1a649a43bc9eb2e00e4e0ef57 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 18 15:15:43 2022 -0700 Add 3D test commit caf213cdff02213cf0ff7389b399898bc76951b5 Merge: e85a7105 2b60afe8 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 18 12:02:35 2022 -0700 Merge branch 'add_external_fields' of https://github.com/Yin-YinjianZhao/WarpX into add_external_fields commit e85a7105dceb80bc8769062a306248f57ac0939d Merge: d00ce279 642f6c0f Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 18 12:01:59 2022 -0700 Merge branch 'development' of https://github.com/ECP-WarpX/WarpX into add_external_fields commit 2b60afe876b6e4400e9f2676824ec94a4728c468 Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu Aug 18 19:01:58 2022 +0000 [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci commit d00ce2790ae56148bd717baa7c8e074a2d12a6bf Merge: fbaf5226 c21244d1 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 18 12:01:42 2022 -0700 minor commit fbaf5226ee92444b618029ad56722f8e54918448 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 18 11:57:46 2022 -0700 The automated test of RZ passed, cleaning up needed. commit c21244d103e3eb245ebb1d3b9d2c4b016afd8671 Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed Aug 17 20:51:59 2022 +0000 [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci commit 0a52f2976b58cdbb48673387decce61aabf61561 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 17 13:51:40 2022 -0700 Add RZ test, but has a bug. commit 2c6e1537e9fa1f630134e64800b2d509088481b8 Merge: d3b6b0cd b4686616 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 10 13:37:01 2022 -0700 Merge branch 'development' of https://github.com/ECP-WarpX/WarpX into add_external_fields commit d3b6b0cd8eb34a5832bc8b439e96744f7a01a2ce Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 10 13:36:36 2022 -0700 Do not use WARPX_EXTERNAL_FIELD commit a32207ab2c4476feab0cb4b1e9a65a6181c7bf81 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Wed Aug 10 10:50:18 2022 -0700 In the middle of clean up. commit dcfcb02b9e053391c59cef50c692e84cf379fb8a Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Tue Aug 9 11:08:42 2022 -0700 RZ OpenPMD bug fixed, but code is messy, and chunk load is not done. commit dec17c35d025ac4d40dcaca4b68853959e176782 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Tue Aug 9 10:43:58 2022 -0700 Has bug using RZ OpenMPD commit b32e6efdd766f5986d66b213479d7c84587fca7e Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Fri Aug 5 13:17:04 2022 -0700 Add OpenPMD 3D. commit 7b7f48e2ae751d0393703c912116f5cb4d4dffbc Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Thu Aug 4 15:50:00 2022 -0700 Revert "minor" This reverts commit 01e022958bad3057737e57fda4ecfaed22778b51. commit 01e022958bad3057737e57fda4ecfaed22778b51 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Tue Aug 2 15:03:24 2022 -0700 minor commit 774e591959fce76f94dcb96ae17f43c71ee7b931 Author: Yin-YinjianZhao <yinjianzhao@lbl.gov> Date: Fri Jul 29 11:13:14 2022 -0700 Make 1d work commit 5db4e862104459e5511dad9869764866dc88e62d Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Fri Jul 29 10:27:03 2022 -0700 Make xz working commit 03c3d0062e301c1dd525a50f7ea84c2ccad6d679 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Fri Jul 29 09:38:43 2022 -0700 Make rz workiong commit 8864a1780606bfa68e842d6902d28a34da659dc8 Merge: 0c1c7b7b a514e793 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Wed Jun 22 14:02:05 2022 -0700 Merge branch 'add_external_fields' of https://github.com/Yin-YinjianZhao/WarpX into add_external_fields commit 0c1c7b7bda98549559d44125bb48e78ac6af24aa Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Wed Jun 22 14:01:42 2022 -0700 Fix a bug. commit a514e793cb5e30591debc475082cc48f9172ee25 Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed Jun 15 19:47:43 2022 +0000 [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci commit dd3c3749e2793c8c489652a8152c166def995514 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Wed Jun 15 12:47:23 2022 -0700 Use txt file. commit 61fb96d9219598d10dab6a729eb4db7278583d2e Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Thu May 26 13:51:58 2022 -0700 Now the loaded external field does not match the provided external field data. commit 7354a1abcd3b36e97d2145eff0c4b1da0a3aca27 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Wed May 18 15:21:15 2022 -0700 Try to add new arguments in the doGatherShapeN function, such that external fields can be added. commit 3a0db5fcbaf4298c7cf59ba4443f3cdf7a21094b Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Tue May 10 14:35:53 2022 -0700 Changed to mfi.growntilebox() to include the guard cells. commit 33e3393eb6bf769a2d92043c1012796b8212e653 Merge: 53201644 32fe8aac Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local.dhcp.lbl.gov> Date: Thu May 5 13:37:24 2022 -0700 A bug needs to be fixed related to the growth of cells. commit 53201644322ae2a65c121a6f0559cda874edd98d Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local.dhcp.lbl.gov> Date: Thu May 5 13:35:39 2022 -0700 A bug needs to be fixed related to the growth of cells. commit 32fe8aacc16a749910956e28120e31f1807f3bc1 Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue May 3 22:54:42 2022 +0000 [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci commit f434bff0e12643ba03fc76b1693c4875ef799fc6 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Tue May 3 15:54:25 2022 -0700 In the middle. commit 698e8f3e69dac5945b332c67570272bf2f4ae168 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local.dhcp.lbl.gov> Date: Tue May 3 09:32:54 2022 -0700 In the middle. commit 9d9f88d59820e00eed0e962c8c8905d3f1964083 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Wed Apr 27 14:07:31 2022 -0700 In the middle of reading data. commit 3640e134fa0970b6b4ec0bf7f1c7f779c730b9a1 Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Thu Apr 21 09:43:06 2022 -0700 Draft. commit 85e16cafbf65cf502b82943d5bae98c4e1d750df Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Mon Apr 18 15:15:22 2022 -0700 Minor: change tag. commit 0b7d2723c225cc4eed09eb58ad7f049d6baa650a Author: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Date: Mon Apr 18 15:04:19 2022 -0700 Allocate MultiFabs for the external E and B fields. * Conditionalize compilation on openPMD support * Switch bit-flag integer configuration to separate booleans * Clean up and modernize allocation and reading logic * Roll back addition of external fields in all calls down to doGatherShapeN * Do away with separate MultiFABs for file-read field values, and just read into the main ones * Check that solved and externally-prescribed fields are mutually exclusive * Clean up compilation issues * Support GPUs * Correct data sets URLs * Fix compilation for 1D * Fix some GPU issues * Extract elements of various random little types that aren't GPU-friendly * Run RZ test along with the others, not with the 2D tests * Fix complaint about unused variable * Fix complaints about unused variable from 1D * Clean up 1D warning issues harder * Clone the example dataset repository directly, like warpx-data * Allow composition of external and internal fields * Go back to reading external field into a separate MultiFAB * Vaguely working for lab frame electrostatic case * Fix copy-paste errors * Replace magic constants by enumerators * Get indexing order right for RZ * Put external field contribution in the right place * Fix GPU and unused variable issues * Match renamed input variable * Update input parameters * reset benchmark for LoadExternalField3D because data actually get loaded now * reset benchmark for LoadExternalFieldRZ because data actually get loaded now * Drop unused includes * Read data once for all boxes * Guard against unimplemented mesh refinement support * Rename function to slightly better reflect substance * Use existing linear interpolation routines * Specify type argument for interpolation to avoid mixture * Account for Array4 indexing in Fortran order * Address Edoardo's review comments * Support load balancing * Add assertions of assumptions about input file format * Move assertion about max levels to earlier in initialization * Error in XZ case since it's untested * Don't pretend implementation covers XZ * Name variables to correspond to dimensionality * Reword comment per request * Correct typos * Add issue numbers for different unimplemented bits, and guard 1D case * Fix comment about RZ ParallelFor * Fix reStructuredText syntax * Shift 2D case to the unimplemented path to avoid unused parameter/variable warnings * Use 2020+ Curl Command * Support older curl --------- Co-authored-by: Tools <warpx@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-04-21Move KernelTimer.H to ablastr/parallelization (#3863)Gravatar Luca Fedeli 1-90/+0
* move KernelTimer to ablastr * add missing folder * fixed bug * fixed bug * really fixed the bug * kernelTimer -> KernelTimer
2023-04-10`SyncRho`: Pass References To Charge MultiFabs (#3814)Gravatar Remi Lehe 1-6/+13
* `SyncRho`: Pass References To Charge MultiFabs * Keep a function SyncRho for the Python interface * [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-03-09New user input for grid type (collocated, staggered, hybrid) (#3683)Gravatar Edoardo Zoni 2-7/+7
* Introduce `warpx.grid_type` parameter * Replace `or` with `||` * Update examples with new user input syntax * Fix `if` condition * Improve error message * Fix `if` condition * Fix bugs * Fix warning * Fix RZ * Debugging * Fix RZ * Fix bug * Clean up * More changes: - set default algo parameters with hybrid grid - all hybrid input parameters under warpx name * Set default field gathering algo for hybrid grids * Update documentation
2023-01-30Implement linear interpolation for both cell-centered and nodal data types ↵Gravatar Prabhat Kumar 1-14/+16
(#3638) * use two points and correct weights for higher order interpolation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * better alignment * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Source/Parallelization/WarpXComm_K.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Reset CI benchmarks * apply review suggestion * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * white space --------- 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: Edoardo Zoni <ezoni@lbl.gov>
2023-01-13Fix segfault in interpolation with anisotropic ref ratio (#3613)Gravatar Prabhat Kumar 1-1/+7
* Fix segfault in interpolation with anisotropic ref ratio * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Source/ablastr/coarsen/average.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/ablastr/coarsen/average.cpp Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> 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: Weiqun Zhang <WeiqunZhang@lbl.gov>
2022-12-21Add accelerator lattice, starting with quadrupoles (#3063)Gravatar David Grote 1-0/+3
* Initial version of accelerator lattice * Clean up EOL white space * Small clean up for GPU * Fixed up consts * Added hard edge fraction plus other clean ups * More clean up * Restructure to work on GPUs * Now this grabs its own copies of particle info * Updates, including adding dBdx * Small cleanup in Quad * Small fixes for GPU * More cleanup for GPU * More GPU cleanup * Rewrite of the accelerator lattice implementation to better handle GPU * Fix struct forward definition * Another forward definition fix * Bug fix * Added LatticeElementBase * Removed zcenters array * Added CI test case * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Clean up in CI analysis.py * Cleanup of coding * Added CI test hard_edged_quadrupoles_moving * Added Lorentz transform between boosted frame and lab frame * Fixes for working in the boosted frame * Added boosted CI test * Change input name, adding the prefix "lattice." * Added plasma lens lattice element This will replace the external field plasma lens * Fixed CI analysis script to look for "lattice.quad" * Added checks of lattice element input * Added documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removed duplicate call to lattice finder UpdateIndices * Added extensive comments * Reworked the input to use the MAD like description This is the same as the method used in ImpactX * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Remove old lines from inputs_lattice_3d * Added "lattice" element type * Fixed some Real and ParticleReals * [pre-commit.ci] pre-commit autoupdate (#3246) updates: - [github.com/hadialqattan/pycln: v2.0.1 → v2.0.3](https://github.com/hadialqattan/pycln/compare/v2.0.1...v2.0.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * ABLASTR: Update Poisson Solver API (#3243) Update the Poisson Solver API to be more usable. Needed for ImpactX. * Docs: New OLCF Machine (#3228) * D-T fusion (#3153) * initial work * fixed bugs and added species * update documentation * delete unused file * Add properties for neutron, hydrogen isotopes, helium isotopes * Update code to be more consistent * Correct typo * Parse deuterium-tritium fusion * Start putting in place the files for deuterium-tritium * Update documentation * Prepare structures for deuterium tritium * Fix typo * Fix compilation * Add neutron * Add correct formula for the cross-section * Correct compilation error * Fix nuclear fusion * Reset benchmarks * Prepare creation functor for 2-product fusion * First implementation of momentum initialization * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Use utility function for fusion * Minor modification of variable names * Fix GPU compilation * Fix single precision compilation * Update types * Use util function in P-B fusion * Correct compilation errors * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct errors * Update values of mass and charge * Correct compilation error * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct compilation error * Correct compilation error * Correct compilation error * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Reset benchmark * Use helium particle in proton-boron, to avoid resetting benchmark * Fixed proton-boron test * Revert "Fixed proton-boron test" This reverts commit 73c8d9d0be8417d5cd08a23daeebbc322c984808. * Incorporate Neil's recommendations * Reset benchmarks * Correct compilation errors * Add new deuterium tritium automated test * Correct formula of cross-section * Correct cross-section * Improve analysis script * Add test of energy conservation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add test of conservation of momentum * Progress in analysis script * Fix error in the initial energy of the deuterium particles * Add check of isotropy * Clean up the test script * Rewrite p_sq formula in a way to avoids machine-precision negative numbers * Add checksum * Clean up code * Apply suggestions from code review * Update PR according to comments * Update benchmark * Address additional comments * Numerical Literals Co-authored-by: Luca Fedeli <luca.fedeli@cea.fr> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Docs: gaussian beam `q_tot` is not optional (#3249) * Fix a bug in GPU version of Hankel Transform (#3253) amrex::Array4 is a 4D array that can be accessed with three spatial indices plus an optional component index. We must always provide all three spatial indices even in 2D. * Add Python Callback Call when Checkpointing Signal is Received (#3251) * CI: Add Missing Regression Analysis (NCI corrector) (#3252) * Fixes to allow mixed precision, ParticleReal float, Real double (#3239) * Fixes to allow mixed precision, ParticleReal float, Real double * Fix for the optical depth * A different way of fixing QuantumSynchrotronEvolveOpticalDepth * In the QED code, consistently use ParticleReal * Use ParticleReal type consistently * Fix typo Docs/source/usage/parameters.rst Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fix typo Docs/source/usage/parameters.rst Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fix small error in plasma lens lattice documentation * Small addition to the documentation * Fix the residence correction to allow short elements * Updated CI benchmarks * Added check of lattice to isNoOp * Updated the hard_edged_quadrupoles CI benchmarks It is not clear why there was a change, but the difference is essentially round off in the E field. The important thing is that the particles are still correct. * Update Source/AcceleratorLattice/AcceleratorLattice.H Add include statements Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/AcceleratorLattice/LatticeElements/LatticeElementBase.H Add includes Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Renamed to README.rst and updated headers * Made d_lattice_element_finder optional type * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Include `<optional>` * Docs: Developer AccLattice Inclusion 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> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Luca Fedeli <luca.fedeli@cea.fr> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-12-19Clean up documentation (#3542)Gravatar David Grote 1-0/+2
* Fix comments for documentation * More fixes to comments for documentation * Fixes in the doc files * Fix typo in parameters.rst
2022-12-08ABLASTR: Coarsen Functions (#3433)Gravatar Axel Huebl 1-9/+9
* ABLASTR: Coarsen Functions Move coarsen functions to ABLASTR. Rename by property of the coarsening function. * Remove unused imports Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-11-14Centralize the multi fab allocation (#3484)Gravatar David Grote 1-1/+2
* New Function to Allocate MultiFabs w/ Initial Value * Use New Function in PML Allocations * Added AllocInitMultiFab and multifab_map * Make initial_value argument of AllocInitMultiFab optional * More updates Added initialization for iMultiFabs Added imultifab_map Added initial values for several MFs Updated MF init for EB data * Small clean up of ncomps name * Added init value to rho_cp * Use AllocInitMultiFab in PML_RZ * RemakeMultiFab now calls AllocInitMultiFab * Fixed spelling of AddToMultiFabMap * Removed the initialization of charge_buf * Added commentation * Fix tag names for _aux MFs * Cleaned up code using temporaries in PML * Apply suggestions from code review * Added initial value to AliasInitMultiFab Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-11-07Allow `None` for Maxwell solver (#3504)Gravatar Roelof Groenewald 5-24/+21
* 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` * changes requested during PR review * remove `do_no_deposit` from tests without field evolution * Fix doc-string in `GuardCellManager.H` Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-11-07Load balancing bug fix: remake MultiFabs for Vay deposition, current ↵Gravatar Revathi Jambunathan 1-2/+15
centering, time averaging (#3508) Additional MultiFabs for Vay deposition, current centering, and time averaging need to be allocated after load-balancing, otherwise the simulation crashes.
2022-10-28ABLASTR: Always Sync Option (#3467)Gravatar Axel Huebl 1-12/+12
* ABLASTR: Always Sync Option Add an option to ABLASTR/WarpX to always sync nodal cells that are owned by multiple blocks. This can be used for debugging. * Fix typo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Use New Option in One CI Test * Fix Logic: Force only to be `true`, not `false` Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
2022-10-10Partial refactoring of the utils directory (#3404)Gravatar Luca Fedeli 2-5/+4
* initial work to clean WarpX Utils * remove AMRCore from Ionization tables * progress * refactoring of a part of the utils directory * fix bug * fixed bug * fixed bug * remove debug line accidentally slipped into the code * remove debug line accidentally slipped into the code * remove debug line accidentally slipped into the code * cleaning * fixed bug
2022-09-09`SyncCurrent`: Split Filter and Sum over Guard Cells (#3222)Gravatar Edoardo Zoni 3-95/+125
* Split ApplyFilterandSumBoundaryJ * Fix Bug * Fix Bug * Fix CI * Pass Correct Periodicity to SumBoundaryJ * Use ApplyFilterJ and SumBoundaryJ w/ MR * Fix Bug (duplicate loops over dimensions) * Use ApplyFilterJ and SumBoundaryJ w/ MR * Clean up Variable Names in ApplyFilterJ * Increase Guard Cells of All MultiFabs, Not Only J * Reset CI Checksums
2022-08-02`SyncCurrent`: Pass References To Current MultiFabs (#3277)Gravatar Edoardo Zoni 1-4/+3
* `SyncCurrent`: Pass References To Current MultiFabs * Add Doxygen for `SyncCurrent`
2022-07-05Merge `FillBoundary` and `NodalSync` (`OneStep_multiJ`) (#3169)Gravatar Edoardo Zoni 1-40/+0
* Merge `FillBoundary` and `NodalSync` (`OneStep_multiJ`) * `NodalSync` Not Needed Anymore
2022-06-08ABLASTR: Move Communication Utilities (#3167)Gravatar Axel Huebl 6-428/+108
* Move: WarpXCommUtils to ABLASTR * Update Usage Locations * Refactor: `WarpX::do_single_precision_comms` Do not use a global from WarpX in ABLASTR routines.
2022-06-07Merge `FillBoundary` and `NodalSync` (`OneStep_nosub`, `OneStep_sub1`) (#3013)Gravatar Remi Lehe 3-34/+45
* Add argument for synchronizing nodal points * Add the option to overridesync in FillBoundaryE / FillBoundaryB * Remove explicit synchronization * Cleanup calls to nodal synchronization * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Improve const Correctness * Cleaning * Merge NodalSync and FillBoundary First Restarting the implementation from scratch. To-do: remove redundant FillBoundary calls. * Merge Only for OneStep_nosub and OneStep_sub1 * Fix Checksums of Python_wrappers * Define sync_nodal_points as WarpX Private Member Variable * Keep Calls to NodalSync for B * Keep Calls to NodalSync for F * Reset Benchmark of reduced_diags_single_precision * OneStep_sub1: Remove All Calls to NodalSync * OneStep_nosub: Remove All Calls to NodalSync * Reset Benchmark of divb_cleaning_3d Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
2022-05-23use fwd declaration for WarpXFaceInfoBox (#3125)Gravatar Luca Fedeli 1-0/+1
2022-05-09Fix miscellaneous issues found with clang tidy (#3083)Gravatar Luca Fedeli 1-1/+1
* fix miscellaneous issues found with clang tidy * fix miscellaneous issues found with clang tidy * moved default constructors and destructors to header * fix issue * Use default again
2022-04-14Remove Nodal Synchronization of J and Rho (#3038)Gravatar Edoardo Zoni 1-5/+0
* Remove Nodal Sync of J and Rho * Reset Benchmark of reduced_diags_single_precision
2022-04-07Vay Deposition: Fix SyncCurrent, FFTs (#3012)Gravatar Edoardo Zoni 1-3/+1
2022-04-04Refactoring: More General Interfaces (#2991)Gravatar Edoardo Zoni 1-70/+87
* Refactoring: More General Interfaces (J, rho) * Refactoring: More General Interfaces (E, B) * Refactoring: More General Interfaces (rho) * Fix const Correctness * Fix const Correctness (continued) * Fix Bugs * Refactoring: More General Interfaces (averaged E, averaged B)
2022-03-22Vay Deposition: Separate Arrays, Correct Index Types w/ FFTs (#2965)Gravatar Edoardo Zoni 1-45/+59
* Refactoring * Separate Arrays (Fine Patch) * Add Aborts w/ Current Centering, MR * Cleaning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-03-21Hybrid Algorithms: Add FDTD Support for Centering (#2327)Gravatar Edoardo Zoni 2-121/+62
* Hybrid Algorithms: Add FDTD Support for Centering * Current Centering Incompatible with Esirkepov Deposition * Remove FDTD v. PSATD Runtime Conditions * Add CI Test * Rename coefs as coeffs in getFornbergStencilCoefficients * amrex::Vector: Use at() Instead of Operator [] * Reset Benchmark * Reset Benchmark * Cleaning * Reduce Size of New CI Test * Reset Benchmark * Fix Bug
2022-03-08Make error and info messages visually uniform (#2939)Gravatar Luca Fedeli 3-8/+11
* initial work to add msg formatter * wip * replace AMREX_ALWAYS_ASSERT_WITH_MESSAGE with WarpX equivalent
2022-03-03Bugfix for LB + MR + Filter (#2917)Gravatar Andrew Myers 1-6/+6
Make sure we update the right costs multifab when apply the filter in the presence of mesh refinement.
2022-02-11Rename ngE as ngEB (used for E,B) (#2841)Gravatar Edoardo Zoni 1-6/+6
2022-01-24PML Exchanges: Less Duplicate Code (#2394)Gravatar Edoardo Zoni 1-99/+71
Similarly to #2375, I'm trying to see if we can reduce the amount of duplicate code, in this case for the functions `Exchange<E,B>` of the PML class. Open for discussion.
2022-01-20Implement PML for the outer RZ boundary with PSATD (#2211)Gravatar David Grote 3-20/+78
* Initial version of RZ PSATD PML BCs * Cleaned up some bugs * Add support of do_pml_in_domain option * Cleaned up stuff for building * Fix PMLPsatdAlgorithm macro * Removed unneeded variable from SpectralSolverRZ * Change length 3 arrays to length 2 (for 2D) * Cleanup around DampPML * Added more checks of pml[lev] * Added CI test for RZ PML * Added code to update the corner guard cells * Further updates * Added CI test * Fixed EOL space * Updated CI benchmarks, removing round off fields * Changes to CI missed on previous commit * Various fixes for clean up * More fixes for clean up * Further cleanup * Updated benchmark * Fixed benchmarks file * Minor cleanup * Added round off benchmark values * Fixed testname in analysis_pml_psatd_rz.py * Update comment in analysis file * Put pml_rz code in RZ and PSATD macro blocks * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add geometry.dims input to CI test input file, inputs_rz * Cleanup to match recent changes Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-16Doxygen: Fix Diags, FieldSolver, Parallelization & Particles (#2662)Gravatar Axel Huebl 2-2/+15
* Doxygen: Fix Diags, FieldSolver, Parallelization & Particles * Apply suggestions: Remi Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Apply suggestions: Roelof Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Apply suggestions: Luca Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it> * Apply suggestions: Edoardo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions: Andrew * Apply suggestions: Edoardo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions: Neil Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Apply suggestions: Roelof * Apply suggestions: Weiqun Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
2021-12-13Fixing the initialization of the EB data in ghost cells (#2635)Gravatar Lorenzo Giacomel 1-1/+2
* Using ng_FieldSolver ghost cells in the EB data * Removed an unused variable * Fixed makeEBFabFactory also in in WarpXRgrid.cpp * Fixed end of line whitespace * Undoing #2607
2021-12-06Define WARPX_ZINDEX to denote the index for the Z dimension regardless of ↵Gravatar Phil Miller 1-1/+1
the build's dimensionality (#2622) * Define WARPX_ZINDEX to denote the index for the Z dimension regardless of the build's dimensionality * Add WARPX_ZINDEX macro definition to Makefile as well
2021-12-03Replace AMREX_SPACEDIM: Boundary & Parallelization (#2620)Gravatar Prabhat Kumar 3-39/+39
* AMREX_SPACEDIM : Boundary Conditions * AMREX_SPACEDIM : Parallelization * Fix compilation * Update Source/Parallelization/WarpXComm_K.H
2021-11-23Fix Init of Vector Members (#2595)Gravatar Axel Huebl 1-0/+1
Fix default init of `Vector` member variables. The old construct is not valid C++. https://stackoverflow.com/a/11491003/2719194
2021-11-22Python: Start 1D Support (#2582)Gravatar Axel Huebl 1-0/+1
* Python: Start 1D Support Start supporting 1D builds in Python. * Fix 1D: PML FillZero unused ... since PMLs are not yet supported in 1D. * BeamRelevant: Fix unused p_pos0 * FromTXYEFileLaserProfile: Not Impl in 1D * QED Schwinger: 1D not Implemented Fix unused warnings, add aborts. * 1D RealVect/IntVect: Initialization Use explicit scalar constructors, no braces. Fix warning in clang 10. * 1D NCI Filter: Fix unused members & Init Unimplemented, but throws warnings. * PSATD: 1D not Implemented - remove compile warnings - start porting some parts * NCIGodfreyFilter: Clean up 2D & Else
2021-11-191D3V Cartesian Support (#2307)Gravatar Prabhat Kumar 3-15/+134
* Build System: Add 1D Geometry * test PR * test PR * 1D cartesian yee algorithm * fixed typo * Fixes for PML * 1D support related multiple changes * Fix compilation * change 1D to 1D_Z * 1D Field Gather and typo fix * 1D Charge Deposition * Particle Pusher * multiple changes related to 1D * 1D diagnostics and initialization * PlasmaInjector and PEC fixes for 1D * clean-up delete diags file * mobility 1D laser particle and bilinear filter * deleted diags files * update laser particle weight formula * delete diags files * Azure: Add 1D Cartesian Runner * 1D fixes for FieldProbe * Update Docs/source/developers/dimensionality.rst Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * 1d laser injection and langmuir test input files * 1d tests * clean up : delete print statements * analyse simulation result for laser injection and Langmuir tests * EOL * delete input files for which there are no automated tests * delete input files for which there are no automated tests * add ignore_unused to remove warnings * remove space * Fix compilation issues * fix error : macro name must be an identifier * Small bug fix * cleanup Python script for analysis * bug fix * bug fix * Update ParticleProbe: Check 1D in-domain * Update Source/Make.WarpX * Update .azure-pipelines.yml * Add USE_OPENPMD=FALSE to .azure-pipeline.yml * resolve conflict * resolve conflict * fix typo * Correct out-of-bound access * Fix Particle BC in WarpXParticleContainer and correct path to checksumAPI in python analysis scripts * EOL * Fix bug : accessing out of bound index of cell in 1D * remove 1d test for cartesian3d * Fix CI check * Slight style change * Address review comments * Fix GPU compilation Filter.cpp * Fix CI * Fix Indentation * Address review comments * More consistent ifdef for dimension bigger than 1 * Update Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update GNUmakefile Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Regression/prepare_file_ci.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * add comment inline to explain twice push_back * Add amrex::Abort for NCIGodfreyFilter Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Prabhat Kumar <prabhatkumar@kraken.dhcp.lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Remi Lehe <rlehe@lbl.gov>