Age | Commit message (Collapse) | Author | Files | Lines |
|
* AMReX: 22.06
* PICSAR: 22.06
* WarpX: 22.06
|
|
* Add precision to printed PIC parameters
* Added WarpX_PARTICLE_PRECISION as a build option
* Update types to ParticleReal
* Updated libwarpx to inject particles with correct ParticleReal type
* Fix syntax error
* Add logic to avoid duplicate definitions
* Use correct ParticleReal type in add_particles
* Cleaned up code, addressed comments
* Update Python/pywarpx/_libwarpx.py
Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com>
* Removed redundant functions, fixed some typing
* Modified template functions
* Cast d_w to Real
* Fixed failing tests
* Cast types to be consistent
* removed in-tree-build from pip command
* Added GPU device macros to PDim3 methods
* rerun tests
* Removed unecessary casting, update calls to use PDim3 instead of XDim3
* Refactored comments
* Added mcc fields double precision, particles single precision test
* Updated casting and formatting
* Removed cast, updated declaration
Co-authored-by: Peter Scherpelz <peter.scherpelz@modernelectron.com>
Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com>
|
|
* Add Headers to Input File Written by PICMI
* Commit Suggestion by @dpgrote
* Add Comment
* Add Empty Line
* Slightly Better Readable with a newline
|
|
* Added STL files support in pywarpx
* Add new EB bucket
* Added name to file headers
* Fixing year in file headers
* Checking that stl file and imp function are not both specified
* Renamed EB bucket to EB2
* Adding STL documentation
* Implement suggestions from code review
Co-authored-by: lgiacome <lorenzo.giacome@cern.ch>
|
|
* AMReX: 22.05
* PICSAR: 22.05
* WarpX: 22.05
* Fix issue with RZ electrostatic solver
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
|
|
* Added PlasmaLens class to PICMI
* Added CI test
* Added PICMI input file
* Fixed the output dir for the CI test
* Add `_plt` to Output File Prefix
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* Beginnings of signal handling machinery
* Add tentative logic to make checkpoint call
* Adapt formatting slightly
* Add calls to read signals and set up signal handlers
* Initialize signal flag array
* Add parsing of signal names, and fix some whitespace issues
* Skip signal setup on Windows
* added checkpoint and break signal inputs to picmi.py
* Address initial review requests
* Correct comment to match changed code
* Convert maximum signal number to a symbolic name
* Always parse signal input, and error out on Windows or wherever it may be unsupported
* Typo fix
* Add missing reset of checkpoint signal flag
* Add reset of break signal, in support of Python or library usage
* Test for a configured checkpoint diag when asked to checkpoint on a signal
* Fix typo in Linux code path
* Clean up MPI support
* Use symbolic name for maximum signal number
* Fix unused variable in the no-MPI case
* Add missing header inclusions
* Switch signal parsing to an enumerated table
* Test signal handling for Linux, not GNU C library
* Avoid another magic number
* Update MPI_Ibcast call to match symbolic array length
* Update loop over signal flags to use symbolic limit
* Match #includes to usage
* Add omitted C++ std <atomic> header include
* Guard entire set of signal definitions as *nix-only, not for Windows
* Broaden Windows exclusion to avoid zero-length array that displeases MSVC++
* Check return value from sigaction()
* Convert conditional calls to Abort() to assertions
* Move check for platform support to input parsing
* Shift signal handling code over toward ABLASTR to share with ImpactX and Hipace++
* Minor cleanup
* A bit more cleanup
* Fix formatting nits
* Add AMReX error handling on MPI calls
* Add ABLASTR signal handling code to GNU makefile too
* Document new input parameters
* Use ABLASTR assertion macros in ABLASTR code
* Convert requests limit value to a requests array size
* Generalize signal handling to an arbitrary set of potential actions
* Rename class to match usage and file name
* Stick stuff in ABLASTR namespace
* Indent conditional includes as requested
Co-authored-by: Roelof <roelof.groenewald@modernelectron.com>
|
|
* AMReX: 22.04
* PICSAR: 22.04
* WarpX: 22.04
|
|
|
|
|
|
|
|
|
|
* Rename `serialize_ics` as `serialize_initial_conditions`
* Add Backward Compatibility Check
|
|
* AMReX: 22.03
* PICSAR: 22.03
* WarpX: 22.03
|
|
Add for all diagnostics the equivalent of `<diag>.file_min_digits`.
|
|
* added Coulomb collision installation to picmi.py
* added comment saying the input values for the new PICMI test comes from inputs_2d
|
|
|
|
* AMReX: 22.02
* PICSAR: 22.02
* WarpX: 22.02
|
|
zero particles (#2808)
|
|
* add python callbacks before and after collisions
* re-order callback declarations
|
|
|
|
* add SyncRho call to warpx_depositChargeDensity
* expose SyncRho to Python; add warpx_clearChargeDensity to reset rho_fp before deposition
* remove unneeded warpx_clearChargeDensity function
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* add (default) option to depositChargeDensity to call SyncRho after deposition
* added option to depositChargeDensity to zero out rho_fp before deposition
* code cleanup
* import fields from inside depositChargeDensity
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* added python wrapper function to deposit a specific species density in rho_fp
* added 1D ES input file with MCC that uses the charge deposition functionality
* reset rho_fp[lev] before depositing
* updated documentation
* switch to using simulation.extension in Poisson solver
* Apply suggestion from code review
Co-authored-by: Phil Miller <phil.miller@intensecomputing.com>
* suggested changes from code review
* add comment explaining why a direct Poisson solver is used
* removed direct solver in 1D example since it is actually slower than the MLMG solver
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* added docstring for warpx_depositChargeDensity
* fixed order of imports in new PICMI input file
Co-authored-by: Phil Miller <phil.miller@intensecomputing.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* added support to uninstall an external Poisson solver and return to using the default MLMG solver; also updated some callbacks.py calls to Python3
* refactor callback handling - use a map to handle all the different callbacks
* warpx_callback_py_map does not need to link to C
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* further suggested changes from code review
* added function ExecutePythonCallback to reduce code duplication
* moved ExecutePythonCallback to WarpX_py
* added function IsPythonCallbackInstalled
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
Trying to fix the macOS PyPy 3.7 error seen in https://github.com/conda-forge/warpx-feedstock/issues/37
Testing in https://github.com/conda-forge/warpx-feedstock/pull/38
After googling for a while, the original implementation was likely based on https://code.activestate.com/lists/python-list/704158, which contains bugs.
1) Bug: `create_string_buffer`
Allocating new, null-terminated char arrays with `ctypes.create_string_buffer` does lead to scrambled arrays in pypy3.7.
As far as I can see, this [should have also worked](https://docs.python.org/3/library/ctypes.html), but maybe there is a bug in the upstream implementation or the original code created some kind of use-after-free on a temporary while the new implementation just shares the existing byte address.
This leads to errors such as the ones here:
https://github.com/conda-forge/warpx-feedstock/pull/38#issuecomment-1010160519
The call `argvC[i] = ctypes.c_char_p(enc_arg)` is equivalent in creating a `NULL`-terminated char array.
2) Bug: Last Argv Argument
The last argument in the array of char arrays `argv` in ANSII C needs to be a plain `NULL` ptr.
Before this PR, this has been allocated but never initialized, leading to undefined behavior (read as: crashes).
Reference: https://stackoverflow.com/a/39096006/2719194
3) Cleanup: there is a pre-defined `ctypes.c_char_p` we can use for pointer of char.
|
|
* Set geometry earlier in Python
* Fix comment typos
|
|
* Make moving window dimensionality consistent in PICMI
* update PICMI_inputs_plasma_acceleration_1d.py
* two elements for moving window velocity in RZ
* update RZ laser_acceration test
* update PICMI version
* update PICMI Langmuir RZ test
|
|
|
|
* allow Dirichlet BCs in r when r_min != 0 with ES RZ simulations
* handle the rmax boundary condition setting properly when rmin == 0
* add ability to specify rmin and rmax potentials through picmi
|
|
* AMReX: 22.01
* PICSAR: 22.01
* WarpX: 22.01
|
|
* Initial attempt at moving function into LibWarpX
* Bugfix - undefined structs in get_particle_theta
This is untested, identified by IDE/visual inspection only
* Unify newlines
* Delete libwarpx.clight (duplicated picmi.py)
See picmi.constants.c
* Change function descriptive comment to docstring
Also remove extra newline in __init__ beginning.
* Replace pywarpx/_libwarpx calls appropriately
* Fix atexit register of finalize function
* Reorder WarpX.py imports for pre-commit
* Use picmi.Simulation.extension = libwarpx alias
This will hopefully preempt user script changes if we restructure things
to allow multiple WarpX runs to be done within a single Python script.
* Fix libwarpx ref in WarpX.getProbLo/getProbHi
* Update get_particle_boundary_buffer doc reference
|
|
* pre-commit: Python imports
Add two new Python rules to:
- remove unused imports
- sort imports according to PEP8
* pre-commit: Python imports
Add two new Python rules to:
- remove unused imports
- sort imports according to PEP8
`.editorconfig`: isort options
https://github.com/PyCQA/isort/wiki/isort-Settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* move import os (mpl)
* move import yt (mpl)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup around matplotlib.use
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleaning: double np and lib
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
|
|
* Docs: `geometry.dims` option
Add a new, required option to specify the geometry of an
inputs file at runtime.
* Check & Report Runtime Dims Mismatch
* Examples: add `geometry.dims`
* Deprecation Warning: `geometry.coord_sys`
* PICMI: `geometry.dims`
* Improve error message
sounds a bit better
* Improve Doc Description
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
|
|
|
|
|
|
* Wrap shared object in a class to control its loading
* Fix libwarpx attribute references
* Updated callbacks.py for updated libwarpx
* Removed the wx module plus other clean up
* Further revision of how to use the pywarpx module.
Now, _libwarpx should not be imported by external scripts except in special circumstances.
* Updated documentation
* Clean up end of line whitespace
* Added more wrapping routines plus some clean up
* Fixed use of pywarpx in two examples
* Fix for getistep
* Fixed for the EB Python interface
* Silence a warning for our wrapper
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
* Adding edge_lengths and face_areas to the Python interface
* Added wrappers for the two new arrays of data
* Adding a CI test
* Fixed test name
* Added customRunCmd
* Added mpi in test
|
|
Forgotten in #2593
|
|
* modify requirements.txt and add input file for 1D Python pwfa
* add 1D Python plasma acceleration test to CI
* picmi version
* USE_PSATD=OFF for 1D
* Update Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Regression/WarpX-tests.ini
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Cartesian1D class in pywarpx/picmi.py
* requirements.txt: update picmistandard
* update picmi version
* requirements.txt: revert unintended changes
* 1D Laser Acceleration Test
* Update Examples/Physics_applications/laser_acceleration/inputs_1d
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Examples/Physics_applications/plasma_acceleration/PICMI_inputs_plasma_acceleration_1d.py
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* add data_list to PICMI laser_acceleration test
* increase max steps and fix bug in pywarpx/picmi.py 1DCartesian moving window direction
* add data_lust to Python laser acceleration test
* picmistandard update
Co-authored-by: Prabhat Kumar <prabhatkumar@kraken.dhcp.lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* added _getitem1d and _setitem1d to fields.py
* refactored fields.py to reduce duplicate code for different dimensions
* fixed some bugs with the refactor
* changes requested during code review
|
|
* AMReX: 21.12
* PICSAR: 21.12
* WarpX: 21.12
|
|
* Added check for if warpx was initialized when calling finalize
* Renamed to be warpx_initialized
* Fixed reference to global variable
Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com>
* Changed global variable to member of libwarpx
* Fixed syntax errors
* Remove custom arg from argv to avoid parmparse error
Co-authored-by: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com>
|
|
* 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
|
|
* Python: More Nullptr Checks
I am debugging a couple of crashes while mitigating CI.
One of them pointed to the locations here
(`ValueError: NULL pointer access`), so I decided to add some checks.
* Skip invalid tiles
* Skip Empty Tiles But Check Pointer
* Python: nullptr check in _array1d_from_pointer
Make the methods `get_particle_structs` and
`get_particle_boundary_buffer_structs` more robust.
|
|
* Add pre-commit
Add basis for automated pre-commit checks.
Install locally via:
```bash
python3 -m pip install -U pre-commit
pre-commit install
```
See: https://pre-commit.com
* Cleanup: Whitespaces
* Cleanup: requirements.txt order
|
|
buffers (#2498)
|
|
* PICMI: Add amr.max_grid_size_<x,y,z>
* Set All Flags in Python
* PICMI: Add amr.blocking_factor_<x,y,z>
|
|
* Add Python Wrappers for F,G in PML
* Add Getters for F,G Nodal Flags
* Fix Bug in <F,G>FPPMLWrapper (Default Level)
* Fix Bug in F,G Nodal Flags
* Use GetPML Method for F,G Nodal Flags
|