aboutsummaryrefslogtreecommitdiff
path: root/Python (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-09-13Add flag to set GPU-aware MPI from PICMI (#4298)Gravatar Remi Lehe 1-0/+7
2023-09-13Revert PR4266 - lower and uppers bounds (#4294)Gravatar Marco Garten 1-10/+0
The lower and upper bounds are already present within PICMI.
2023-09-12PICMI: Add `warpx_intervals` option to BTD (#4288)Gravatar David Grote 1-2/+22
* Add warpx_intervals option to BTD * Add warpx_intervals to LabFrameParticleDiagnostics
2023-09-08Release 23.09 (#4277)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.09 * PICSAR: 23.09 * WarpX: 23.09
2023-09-08Add lower and upper bound params to regular diags in PICMI (#4266)Gravatar Marco Garten 1-0/+10
* Add lower and upper bound params to regular diags The parameters `warpx_lower_bound` and `warpx_upper_bound` can now be used in the definition of a `FieldDiagnostic` in PICMI. * Add docstring for lower and upper bound
2023-09-07Add particle resampling inputs to `picmi.py` (#4257)Gravatar Roelof Groenewald 1-1/+19
2023-09-07add symmetrize to PICMI (#4271)Gravatar Ryan Sandberg 1-0/+7
* add symmetrize to PICMI * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * don't set defaults in PICMI - they don't matter --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-09-01PICMI: warpx.numprocs (#4255)Gravatar Axel Huebl 1-0/+9
Adding a parameter for `warpx.numprocs` in PICMI. https://warpx.readthedocs.io/en/latest/usage/parameters.html#distribution-across-mpi-ranks-and-parallelization https://warpx.readthedocs.io/en/latest/usage/domain_decomposition.html#simple-method
2023-08-31PICMI: LabFrameParticleDiagnostic w/ Species (#4254)Gravatar Axel Huebl 1-0/+41
Support the `species=...` argument in `PICMI_LabFrameParticleDiagnostic`.
2023-08-29Fix: PICMI BTD Diags (#4248)Gravatar Axel Huebl 1-2/+2
Typos.
2023-08-28Add LabFrameParticleDiagnostic to picmi (#4148)Gravatar David Grote 1-2/+66
2023-08-25Do not pre-processing routine in Python initialization (#4231)Gravatar Remi Lehe 1-4/+0
2023-08-24Fix: WarpX Version (#4218)Gravatar Axel Huebl 2-2/+13
* Fix: WarpX Version Fix the WarpX version info. * Fix Version: pyWarpX * Version: More Python __version__
2023-08-24Fix Python wrapper to extract `theta` (#4229)Gravatar Remi Lehe 1-3/+3
2023-08-22Remove unused/untested Python file (#4217)Gravatar Remi Lehe 2-145/+0
* Remove unused/untested Python file * Remove additional file
2023-08-14Python 3.8+ (#4173)Gravatar Axel Huebl 1-1/+1
Python 3.7 went EOL last month. Time to bump up our supported versions to 3.8+ as well.
2023-08-12Transition to pyAMReX (#3474)Gravatar Axel Huebl 9-4032/+1404
* 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-11In picmi.py, add G to fields to plot check (#4180)Gravatar David Grote 1-1/+1
2023-08-11Update PICMI interface for Gaussian flux (#4084)Gravatar Remi Lehe 2-2/+2
* Update PICMI interface for Gaussian flux * Update version of picmistandard
2023-08-11Enable `divE` field diagnostic with Ohm's law solver (#4178)Gravatar Roelof Groenewald 1-1/+1
* use same finite difference algo as for Yee with hybrid-PIC to calculate divE * add `divE` and `divB` to field diagnostic in picmi.py
2023-08-11Add Python wrapper to set the lens strength (#3748)Gravatar Remi Lehe 1-0/+22
* Add Python wrapper to set the lens strength * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct missing `c_real` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add assert message --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-08-07Release 23.08 (#4165)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.08 * PICSAR: 23.08 * WarpX: 23.08
2023-07-18Release 23.07 (#4088)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.07 * PICSAR: 23.07 * WarpX: 23.07
2023-06-27Define new `InjectorFlux` object, and use it in `AddPlasmaFlux` (#4040)Gravatar Remi Lehe 1-3/+3
* Create flux injector object * Call new flux injector in AddPlasmaFlux * Update syntax in tests * Also test the flux parser * Remove the use of `density_min` and `density_max` for flux injection * Update PICMI interface * Update documentation * Remove .cpp file
2023-06-27Adding current density to Field Reduction reduced diagnostic (#3980)Gravatar Lizzette Corrales 1-1/+1
* Adding j in FieldReduction * Modiyfying input file with FieldReduced diag * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Source/Diagnostics/ReducedDiags/FieldReduction.H * updating Field Reduction Docs to include current density * Update Source/Diagnostics/ReducedDiags/FieldReduction.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * adding cuurent density BackwardCompatibility to Field Reduction diagnostic * including E dot j density using the modifyed Field Reduction * fixing picmi interface * adding Edotj to automated python test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Lizzette Corrales <lzcorrales@kong.dhcp.lbl.gov> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
2023-06-15Added external field loading from file to picmi.py (#3945)Gravatar Camille Woicekowska 2-1/+10
* 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-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 6-0/+125
* 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-05Release 23.06 (#3962)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.06 * PICSAR: 23.06 * WarpX: 23.06
2023-06-02Add max_background_density to MCCollision (#3960)Gravatar David Grote 1-1/+7
2023-06-02Update PICMI version (#3959)Gravatar Remi Lehe 1-1/+1
2023-06-01Update picmi interface for MCCCollisions (#3953)Gravatar David Grote 1-6/+12
* Allow string expressions for MCCCollisions background density and temperature * Add check of whether value is str since special behavior is needed
2023-05-08Enable field ionization from PICMI (#3298)Gravatar Neïl Zaim 1-8/+17
* Enable field ionization from PICMI * Implement Dave's suggestions and add automated test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update test benchmark * Add docstring for FieldIonization class --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-05-02Release 23.05 (#3887)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.05 * PICSAR: 23.05 * WarpX: 23.05 * Update ES EB RZ Tests - slightly relaxed Phi - better selection of r outside cutcells
2023-04-22Add python callback call when a break signal is recieved (#3849)Gravatar aveksler1 1-0/+20
* added onbreaksignal python callback * added documentation * fixed bug executing onbreaksignal callbacks at stoptime * applied suggestion from code review. * updated doc-strings
2023-04-19Add more PICMI options (#3773)Gravatar Remi Lehe 1-1/+10
* Add PICMI option to cover multiple cuts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Parse flux_min, flux_tmax from PICMI * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Implement review comments --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-04-17Fix particle reflecting boundaries in RZ (#3837)Gravatar David Grote 1-0/+6
* Fix the reflection of velocities in RZ * Add warpx_reflect_all_velocities to the PICMI interface
2023-04-13Add callback function before/after the initial Esolve (#3452)Gravatar Remi Lehe 1-1/+34
* Add callback function after the initial Esolve * Apply suggestions from code review * Change name of callback function * Update PR
2023-04-04Adding Amrex Bucket into WarpX Python interface. (#3590)Gravatar S. Eric Clark 4-0/+26
* Adding Amrex Bucket into WarpX Python interface. * Adding PICMI-like options in the Simulation class to control Amrex Arena parameters.
2023-04-02Release 23.04 (#3800)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.04 * PICSAR: 23.04 * WarpX: 23.04
2023-03-30Add random seed specification to `picmi` (#3793)Gravatar Roelof Groenewald 1-0/+6
2023-03-23Fix add_particles to account for theta attribute with RZ (#3776)Gravatar David Grote 1-4/+12
* Fix add_particles to account for theta attribute with RZ * Add assertions in the number of attributes specified
2023-03-23PICMI Boundary: Silver-Mueller (#3709)Gravatar Axel Huebl 2-1/+2
* PICMI Boundary: Silver-Mueller Add support for silver-mueller boundary conditions in PICMI. * Dependencies: Update PICMI
2023-03-20PICMI: add `do_not_push` and `do_not_gather` (#3766)Gravatar Yinjian Zhao 1-0/+10
2023-03-10PICMI: add missing flags for latest algorithms (#3743)Gravatar Edoardo Zoni 1-2/+76
* PICMI: add missing flags for latest algorithms * Fix docstrings
2023-03-10Fix Bucket __getattr__ (#3747)Gravatar David Grote 1-1/+1
2023-03-09Implement PICMI flag to set `compute_max_step_from_btd` (#3740)Gravatar Remi Lehe 1-0/+7
* Implement PICMI flag for setting max_step from btd * Update Python/pywarpx/picmi.py Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> --------- Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2023-03-01Release 23.03 (#3719)Gravatar Axel Huebl 1-1/+1
* AMReX: 23.03 * PICSAR: 23.03 * WarpX: 23.03
2023-02-27Change plotfile RZ allowed diags to r,t from x,y (#3663)Gravatar Ryan Sandberg 1-25/+44
* change plotfile RZ allowed diag to r,t from x,y * Change labeling in checksums * add rz silver mueller analysis script * make analysis_silver_mueller_rz.py executable * change x,y fields to r,t in more tests * x->r in MR RZ checksums * correct analysis for plotfiles saved as 'boxlib' * add self to creator list * change rz diags in PICMI * correct PICMI changes * another y->t in an rz test * update picmi plotfile rz btd names * review suggestion to condense analysis * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> --------- Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2023-02-22Reduced diagnostics: charge on the embedded boundary (#3648)Gravatar Remi Lehe 1-2/+20
* Prepare structure to compute charge inside boundary * Add calculation without embedded boundaries * Use EB area fraction * Skip cells that are not cut-cells * Choose point outside of the EB * Skip covered or regular boxes * Only compile with EB and 3D support * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add test for charge on EB * Add automated test * Add automated Python test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Avoid compilation error * Enable PICMI test * Rename ChargeInsideBoundary to ChargeOnEB * Update comments * Add parser for weighting * Call weighting function * Call weighting function * Add documentation * Update Python test * Add Python test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix compilation errors * Fix access of attribute on GPU * Use difference in surface area * Pick smaller radius in test This is in order to avoid the influence of the boundaries * Update benchmark * Update benchmark * Properly add diagnostic * Update radius in analysis * Update analysis script * Relax tolerance * Fix tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Python tests * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Test one-eighth from Python * Add one-eighth charge in tests * Handle ChargeOnEB * Remove bug when handling charge on eb * Fix Python errors * Fix Python issues * Use more natural setting of tilebox --------- 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>