Age | Commit message (Collapse) | Author | Files | Lines |
|
* Added wrapper to get number of particle species tracked by the scraper
Not sure if this is going to be useful, but it demonstrates a method to get information
from the ParticleBoundaryBuffer into Python.
* Stubbed out the main wrapper functions
* Added parameters to wrapper
* Added wrapper for getting the number of particles scraped of a species on a boundary
* added picmi arguments to scrape particles at the domain boundary
* Added wrapper to get the full particle buffer into python
* rearanged the getBuffer properties code a little
* Added docstrings +other suggested changes
* Added num_particles_impacted_boundary docstring
* fixed mistake in docstring
* Changed boundary parameter to be a string for clarity
* Fixed issue with the boundary parameter for scraping
* Fixed issue with the boundary input for scraping stats wrapper
* Added demonstration of particle scraping wrapper
* Added analysis.py file
* Fix typo in one of the dimension maps
Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
* Added before esolve to warpx evolve
* added test for the scraped particle buffer wrappers
* Moved python PICMI particle boundary scrape test
* Renamed test file to the correct name
* Removed old test
* added special functionality to get the timestep at which particles were scraped
* removed debug print
* added python wrapper for the clearParticles() function of the scraper buffer
* added special wrapper function to get the timesteps at which the particles in the boundary buffer were scraped
* updated test to match the non-PICMI test for the particle scraper buffer
* Fix uncaught rebase mistake
* re-activated picmi test of accessing the scraped particle buffers via python
* added documentation for the new parameters involved in the scraped particle buffer and fixed remaining issue with picmi test
* changes requested during code review
Co-authored-by: mkieburtz <michaelkieburtz@gmail.com>
Co-authored-by: Roelof <roelof.groenewald@modernelectron.com>
Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
|
|
of the Electrostatic solver (#2143)
* refactored parts of the electrostatic solver to allow an outside Poisson solver to be installed
* added callback to install a Poisson solver that can be used instead of the MLMG solver
* added call to the poissonsolver callback if one is installed and updated ElectrostaticSolver.cpp to calculate the electric field directly in amrex if EBs are used
* fixed issue causing ElectrostaticSphereEB test to crash
* fixed the logic for when to call computeE
* added function to allow charge density to be deposited in rho_fp from outside WarpX
* fixed inconsistency between labframe and relativistic electrostatic simulation setup
* fixed typo
* fixed issue that caused ElectrostaticSphere test to fail and removed unnecessary call to multiply E_y by -1 when doing a 2d simulation
* revert edit to error handling string
* changes requested during PR review
* additional change requested during PR review
* fixed typo
* revert unnecessary changes
|
|
particle creation in AddNParticles() (#2115)
* exposes AddRealComp to Python to allow extra particle attributes to be added at runtime; also includes a new function to grab a particle data array from the name of the component rather than the index
* added functionality to AddNParticles() to allow extra particle attributes to also be set during particle creation
* added function to get index of a particle component given the PID name
* changed new get component index and get_particle_arrays_from_comp_name functions to take species name as argument rather than species id
* changed warpx_addRealComp to accept a species name as input and only add the new component for that species
* added a test of the pywarpx bridge to get particle data and add new particle attributes at runtime
* changed all particle interacting functions in libwarpx to use the species name rather than id, also changed the functions to get particle array data to use the component name rather than index
* updated test according to PR #2119 changes
* removed unneeded BL_ASSERT(nattr == 1) statement
* fixed bug in add_particles to correctly determine the number of extra attributes
* fixed bug in AddNParticles if fewer attribute values are passed than the number of extra arrays for the species
* use isinstance(attr, ndarray) rather than type(attr) is np.ndarray
* generalize_runtime_comps_io
* fix OpenPMD
* fix OpenPMD
* fix plot flags in WritePlotFile
* fix offset and comment
* changed extra pid test to not use an underscore in the pid name
* switched _libwarpx.py::add_particles to use kwargs to accept the weight and extra attribute arrays
* License update in test file
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* fix typo
* added a test with unique_particles=False
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* updated docstring and comments
Co-authored-by: atmyers <atmyers2@gmail.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* changed all particle interacting functions in libwarpx to use the species name rather than id, also changed the functions to get particle array data to use the component name rather than index
* removed unneeded function declaration
|
|
* exposes AddRealComp to Python to allow extra particle attributes to be added at runtime; also includes a new function to grab a particle data array from the name of the component rather than the index
* added function to get index of a particle component given the PID name
* changed new get component index and get_particle_arrays_from_comp_name functions to take species name as argument rather than species id
* changed warpx_addRealComp to accept a species name as input and only add the new component for that species
|
|
* interface silvermueller with refactored boundary interface
* add interface in silver mueller input files
* define first and second half for EvolveB
* add do_pml parse snce RZ needs do_pml to be st to false
* Silver-Mueller boundary condition in docs
* add firsthalf in ApplyBfieldBoundary within PushPSATD as only first first half is used to apply silvermueller
* CallSilverMueller once for all boundaries
* remove unused do silvermueller flag
* fix typo in input file
* Apply suggestions from code review
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
* abort message if silver-mueller is not selected on all valid boundaries
* fix typo
* fix eol
* remove ifdef from inside the Assert message
* check silver-mueller selection after reading all boundaries
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* Added functionality to pass mpi comm from python script to amrex during initialization
* Fixed missing _ in MPI._sizeof()
* Added functions to get the current processor's rank and total number of processors
* Renamed MPI_Comm to _MPI_Comm_type and defined _MPI_Comm_type in except statement
* Updated comment to explain why mpi4py needs to be imported before loading libwarpx
* Removed ifdef flags that prevent amrex_init_with_inited_mpi from being declared when MPI is off
* Changed amrex_init_with_inited_mpi to be declared even when not using mpi, but will be defined to be functionally the same as amrex_init
* Defined MPI = None to signify whether MPI is used, to add another check when initializing amrex
* Changed ifdef blocks in WarpXWrappers.cpp/h to fix compile errors.
Added ifdef block to conditionally declare amrex_init_with_inited_mpi in WarpXWrappers.h to prevent compile error when not using MPI. Removed ifdef block to declare/define same function in WarpXWrappers.cpp since function needs to be declared even when MPI is not used, but will never be called in that case.
* Changed BL_USE_MPI to AMREX_USE_MPI and removed incorrect MPI=None statement
* Changed BL_USE_MPI to AMREX_USE_MPI
* Added test to verify correct passing of MPI communicator to amrex
* Added ability to pass mpi_comm to sim.step
* Change test to check for differeing outputs when passed different inputs
* Removed obsolete comments refactored program to use more shared code
* Refactored comments
* Updated description to match test
* Removed unecessary imports and updated comments
|
|
* Add possibility to start and stop moving window
* Update Benchmark laserInjection_2d
* Update Source/Diagnostics/BTDiagnostics.cpp
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* modification of the MoveWindow function in the python interface
* False to True for move j in python function
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* initial tests with IWYU
* added a couple of forward declarations
* used iwyu on more files
* progress
* used iwyu on more files
* progress with iwyu
* progress with iwyu
* fixed bug
* progress with iwyu
* progress with IWYU
* progress with IWYU
* fixed bug
* fixed bug
* progress with IWYU
* progress with IWYU + use forward declarations in WarpX.H
* first try with .def files
* fix bugs
* progress with IWYU
* progress with IWYU
* progress with iwyu
* correct copyright
* fixed bug
* fixed bugs
* fix missing include
* fixed bug
* fix bug
* fix bug introduced during last bugfix
* use iwyu on newly added files
* add space
* fix bug
* fix missing include
* fix missing include
* fix missing include
* fixed bugs
* fixed bug
* attempt at fixing issue with math functions
* added missing include
* fixed missing include
* using _fwd.H
* fixed bug
* progress with iwyu
* update AMReX branch
* enforce alphabetic order
* progress with iwyu
* use right version of amrex
* use right version of amrex for tests
* fixed bug
* fix another bug
* fix missing include
* fix missing include
* fix missing include
* updated amrex
* initial work to document new include strategy
* updated documentation
* Fix rst & private includes
* Remove accidentially added files
* Fix rst code blocks
* one more rst block
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* added ReadBCParams() function call to python execution and added a test of the electrostatic solver executing from python
* added separate specification of particle boundary conditions in picmi setup and adjusted the inputs for existing tests to follow the new practice
* updated input for rz PICMI test and renamed the electrostatic test to follow standard practice
* added arguments for particle boundary conditions to Langmuir RZ test
* added dictionary to picmi.py to map from picmistandard field boundary condition specifications to that of WarpX
* fixes for failing unit tests; added key, pair 'none' to picmi dictionary of field BCs
* also using 'none' for upper boundary condition for RZ test Python_Langmuir_rz_multimode
|
|
* Define: _OPENMP -> AMREX_USE_OMP
Replace the define check of `_OPENMP` with the explicit
backend control of `AMREX_USE_OMP` for parallel constructs.
Doing so avoids that we accidentially turn on OpenMP, e.g. if a dependency
pulls it in for linear algebra, I/O, etc. This can led to confusion if the
user explicitly requested a serial build. Also, we might want to use OpenMP
functionality here and there for auxiliary functions w/o having to use the
AMReX OpenMP backend, i.e. because we compile for GPUs.
* Add missing amrex::Gpu::notInLaunchRegion
|
|
* Fixes to the Python interface for accessing field and particle data
* In Python wrapper, cleaned up how ngrow is handled
|
|
|
|
* New reduced diag: number of macroparticles
* Add parentheses in header line
* Apply suggestions from code review
Co-authored-by: Luca Fedeli <luca.fedeli.88@gmail.com>
* Add some consts
* Fuse some lines with std::ofstream
Co-authored-by: Luca Fedeli <luca.fedeli.88@gmail.com>
|
|
|
|
* Rename l_lower_order_in_v to galerkin_interpolation
* Changed galerkin_interpolation from int to bool
* ... and same for member versions.
* Add input parameter to control galerkin_interpolation
* Update documentation
* semicolon
* Update Docs/source/running_cpp/parameters.rst
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Docs/source/running_cpp/parameters.rst
Resolve ambiguity
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Fix doc
* Add references to documentation
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
Forgot to also overwrite the initialization defines for Python
with my last PR.
|
|
* Added CheckGriddingForRZSpectral
* Bug fix in check gridding for RZ Spectral, fixing handling of refinement ratio
* Change numprocs=2 for python reg tests and reset benchmarks (#1075)
* changing nprocs to 2 for Python_PlasmaAcceleration test
* Resetting benchmark for Python_PlasmaAcceleration test case due to change in nprocs=2 in reg test
* resetting benchmarks for Python test-cases except Python_Langmuir due to change in numprocs in WarpX-tests.ini
* changing numprocs=2 for Python tests
* resetting python reg test benchmarks after updating pywarpx
Co-authored-by: Revathi Jambunathan <revanathan@pop-os.localdomain>
Co-authored-by: Tools <warpx.lbl.gov>
Co-authored-by: Tools <warpx@lbl.gov>
* Updates to picmi, mostly related to fields, and add psatd (#1077)
* Fixed bad arguments in PICMI_inputs_laser_acceleration.py (#1074)
Note that polarization_angle was changed to 0 since that
was the value being used because the polarization_argument was bad.
* Fix typo for pml_ncell in parameters doc (#1071)
* remove #line wp_parser.l because it causes issues with AMReX make system (#1078)
* remove amrex namespace from diag functor cpp files and use amrex:: prefic (#1093)
* For RZ spectral, updated documentation regarding blocking factor and max grid size
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
Co-authored-by: Revathi Jambunathan <revanathan@pop-os.localdomain>
Co-authored-by: Tools <warpx@lbl.gov>
Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com>
Co-authored-by: WeiqunZhang <WeiqunZhang@lbl.gov>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* [skip travis] CMake: Add CMake Scripts
This add CMake scripts for the CMake build system generator.
* CUDA Support Achieved
Fastest compile via:
cmake .. -DENABLE_CUDA=ON -DCUDA_ARCH=6.0
* CMake: openPMD & QED
* CMake: Dimension Support
WarpX_DIMS=2,3,RZ
* CCache & Out-of-Source
Enable CCache when found and prevent in-root builds (in-source okay-ish).
* CMake: CUDA C++ Language Minimum
* Add new Files
* CI: Migrate macOS to CMake
* Fortran: Enable Because Transitive
... for now :)
* CI: Migrate Linux ICC to CMake
* CI: Verbose Make
* CMake: Add Missing PSATD Sources
* CMake: PSATD, Compute, Precision, Clean
|
|
* Start removing nodal flags where possible
* Remove additional nodal flags
* Clean up getFieldNodalFlagData in Python wrappers
* Remove nodal flags from PML files
* Revert "Remove nodal flags from PML files"
This reverts commit 1d58519f9cee2e64df811f76f3d8a0aead1aa4ef.
* Fix issue when removing nodal flags from PML files
* Remove nodal flags from (OLD) slice diagnostics
* Nodal flags are now local variables in WarpX::AllocLevelMFs
* Trigger Travis CI build after AMReX bug fix
* Void commit: trigger Travis CI build
|
|
* Create subsection for diags documentation in input parameters list
* Replace old diags with new ones IN DOC ONLY
* eol whitespace
* Check first CI test with new diags, before changing all of them
* use diags in all CI
* oops, had forgotten all examples except Tests/
* Updated picmi interface to use the new diagnostics
* fix bug in how field functors are initialized for diags
* fix bug: should always dump output at the end of simulation
* eol
* update test parameters in ini file
* Further fixes to picmi for new diagnostics
* Updates PICMI input files to use the new diagnostics
* avoid dumping final plotfile twoce
* update test to run with new diags
* fix typo introduced when fixing merge conflicts
* had accidentally removed the max_step here, so the run never ended on TravisCI
* Add Diagnostics.py for picmi with new diagnostics
* Adding m_ for member variables in new diags (#934)
* fixing bug to initialize CellCenterFunctor for Bx
* diag_name renamed to m_diag_name
* some more diag members made m_
* renaming member variable mf_avg to m_mf_output
* fixing m_mf_output to mf_dst in comments
* Python documentation updates (#936)
* Update Python documentation
* Added numpy as a requirement for the Python installation
* Cleaned EOL white space in Python documentation
* Add periodictable to the Python packages required
Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja>
* Added periodictable to required packages for pure Python version
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Add hostname to LoadBalanceCosts reduced diagnostic (#902)
* Add hostname to reduced diags
EOL
Fix rd loadbalancecosts test
AMREX_USE_MPI
EOL
move macro to source file
Review changes
eol
add GPU ID if running on GPU
eol
Typo in comment
use vectors to get rid of C-style memory management
Fix for test
eol
* Compute number of unique box data fields in analysis script
* analysis script
* Use amrex Tokenize to split string
* Update WarpXUtil.cpp
* Update WarpXUtil.H
* [mini] Add contact us section to documentation (#941)
* add contact us section to doc
* Update Docs/source/contact_us.rst
Co-Authored-By: L. Diana Amorim <LDianaAmorim@lbl.gov>
* Update Docs/source/contact_us.rst
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
* stop calling the old WritePlotFile functions
* fix new diags, problem with rho and PSATD and particle output variables
* remove more deprecated code for old diags
* Move checkpoint capability to new diagnostics
* error if user asks custom output for checkpoint
* eol
* some more old diags code deleted
* further cleaning
* eol
* further cleaning, make sure that WarpX compiles with USE_OPENPMD
* remove old diags parameters
* use new option to change the plotfile name
* typo
* do not need checkpoint files
* adapt to new option for checkpoint
* removed unread options as they make tests crash
* remove warpx_checkInt from the Python layer
* remove some more python wrappers
* add checkpoint capability with 2 diags in new output
* fix bug in MultiDiagnostics, and (should) fix checkpoint-restart test
* fix restart CI test
* avoid issue when writing the last plotfile twice
* dpgrote's fix for the Python tests
* update doc for diagnostics
* stop requesting ndiags, this is read from the list of diags
* awk to remove ndiags from all example input files
* Removed diagnostics.ndiags from picmi interface
Co-authored-by: Dave Grote <dpgrote@lbl.gov>
Co-authored-by: Dave Grote <grote1@llnl.gov>
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Michael E Rowan <38045958+mrowan137@users.noreply.github.com>
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
|
|
* Includes: Only From `Source/`
Avoid adding all directories to include paths:
- automatically structure includes more clearly, e.g. a util include
with a short name is clearly seen as such
- should have some small positive impact on compile time, since the
compiler has to search less directories for an include file
* Includes: Fix Non-Local Paths
Add missing prefix relative to `Source/` for WarpX-local includes.
|
|
Remove the listing of all header-files from the Make-buildsystem.
Listing public header files here tells the AMReX Makefile build
system to install those in an install step after build. WarpX is
currently not building a public library which can be consumed by
users for their projects and only an executable.
|
|
* Added nodal and cell size data to the Python interface and updates the Python_Langmuir_rz_multimode regression test
* Cleanup of PICMI_inputs_langmuir_rz_multimode_analyze.py
|
|
|
|
- Use `""` for WarpX-local includes
- Order: WarpX `""`, AMReX `<>`, other third party includes `<>`
- Add dir prefixes for WarpX
Add order to includes by including from `Source/` onward and keeping
directory prefixes of non-local includes for clarity.
|
|
|
|
Add Copyright header in all source files
|
|
Remove the `dump_plotfile` switch and only control via
interval value in `plot_int` for plotfiles.
Remove the `dump_openpmd` switch and only control via
interval value in `plot_openpmd` for openPMD data dumps.
openPMD: pick first available backend if unspecified.
|
|
|
|
|
|
Adds Python wrapper of PML fields
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Manually fix tabs to four spaces and alignments for consistent
prepresentation of source code over all machines.
|
|
End-of-line (EOL) whitespaces are verbose and increase diffs and
merge conflicts over time.
Cleaned them up for the `Source/`, `Examples/` and `Tools/` directory
with the following bash one-liner:
```bash
find . -type f -not -path './.git*' \
-exec sed -i 's/[[:blank:]]*$//' {} \;
```
Committed as generic user so git does not credit the many lines
to me:
```bash
GIT_AUTHOR_NAME="Tools" GIT_AUTHOR_EMAIL="warpx@lbl.gov" \
git commit
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
files
|
|
|