Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
* 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
|
|
* 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>
|
|
* AMREX_SPACEDIM : EB and Filter
* AMREX_SPACEDIM : Laser
* AMREX_SPACEDIM : Utils
* AMREX_SPACEDIM : Diagnostics
* Fix Typo
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* AMREX_SPACEDIM : Warpx.cpp
* Update Source/Diagnostics/FlushFormats/FlushFormatPlotfile.cpp
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Source/Diagnostics/FlushFormats/FlushFormatPlotfile.cpp
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
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>
|
|
* ABLASTR: Cleanups
- lowercase dir
- nested directories
- nested namespaces
- functions: lowercase and snake_case
- templates: prefix with `T_`
- profiler: doc strings
* Add: Particle Moments
Co-authored-by: Remi Lehe <rlehe@lbl.gov>
Co-authored-by: Remi Lehe <rlehe@lbl.gov>
|
|
* Refactor DepositCharge so it can be called from ImpactX.
* change thread_num
* Fix namespace
* remove all static WarpX:: members and methods from DepositChargeDoIt.
* fix unused
* Don't access ref_ratio unless lev != depos_lev
* more unused
* remove function to its own file / namespace
* don't need a CMakeLists.txt for this
* lower case namespace, rename file
* Refactor: Profiler Wrapper
Explicit control for synchronization instead of global state.
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* [Draft] ABLASTR Library
- CMake object library
- include FFTW wrappers to start with
* Add: MPIInitHelpers
* Enable ABLASTR-only builds
* Add alias WarpX::ablastr
* ABLASTR: openPMD forwarding
* make_third_party_includes_system: Avoid Collision
* WarpX: depend on `ablastr`
* Definitions: WarpX -> ablastr
* CMake: Reduce build objects for ABLASTR
Skip all object files that we do not use in builds.
* CMake: app/shared links all object targets
Our `PRIVATE` source/objects are not PUBLICly propagated themselves.
|
|
|
|
* use structured bindings
* std::ignore equivalent in structured bindings
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* With RZ PSATD, make blocking_factor a power of 2
* Fix typo
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* 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>
|
|
|
|
* Added Ar and Xe to pre-defined particle types
* Added Boltzmann's constant to warpx parser
* Updated documentation
|
|
* 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
|
|
* Fix Doxygen: Utilities
Fix doxygen errors & warnings.
* Review: Add doxygen title & brief body
|
|
* Bugfixes for ref_ratio = 4 in the moving window direction.
* == should be <=
* only adjust guard cells for moving window by ref_ratio if nlevs > 1
* restore logic to always have at least 2 grow cells if moving window is on
* remove comment about this not being needed on level 0 - it does.
|
|
* improve error msg
* eliminate final dot
* initial layout of the main classes
* progress
* progress with warnings
* print local errors
* progress with warning logger
* improved MsgLogger
* added file to test warnings
* added method to read debug warnings from inputfile
* progress towards collective gather of warnings
* add missing blank line in warning message
* move misplaced file
* refactoring
* fixed bugs
* progress
* fixed bugs
* fixed some bugs
* it finally works!
* add comments in WarpX.H
* add missing comment
* added comments to WarpX.cpp
* add profiler to WarpX.cpp
* expose option to enable 'warn immediately' feature in cmake
* Add comment to main.cpp
* add missing comment in WarpX.cpp
* add copyright and include guards to WarnManager_fwd.H
* cleaning and added comments to WarnManager.H
* updated test
* added fwd file for MsgLogger
* cleaning
* Added copyright in WarnManager.cpp
* Cleaning
* cleaning
* Add missing copyright
* cleaning
* clean and add comments to MsgLoggerSerialization.H
* cleaning MsgLogger_fwd.H
* cleaning
* continue cleaning MsgLogger
* added comments & bugfixing
* removed test file
* fixed bugs
* Update Source/Utils/MsgLogger/MsgLogger.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/WarpX.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLogger.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLogger.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLogger.cpp
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLoggerSerialization.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLoggerSerialization.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLoggerSerialization.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLoggerSerialization.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/MsgLogger/MsgLoggerSerialization.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/WarnManager.cpp
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/WarnManager.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/WarnManager.H
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Update Source/Utils/WarnManager.cpp
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* fixed bugs
* Update Source/Utils/MsgLogger/MsgLogger.cpp
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Added comment to explain rotation
* use last value computed by partial_sum
* fix bug
* now use error stream
* using anonymous namespace for helper functions
* print on both stderr and stdout
* now using runtime parameter to always print warnings
* added documentation
* using long int for counter
* sort affected warnings list
* add doc entry
* removed doc
* added documentation
* fixed bug
* fixed bug
* removing unnecessary text
* reformatting
* reformatting
* fixed bug
* fixed bug
* correction
* add warning_logger.rst to toctree in developers.rst
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
|
|
* option to use single precision guard cell exhanges
* add missing files
* fix namespace issue
* change precision of comms to float
* ParmParse the single_precision_comms flag
* set back to real
* test
* make sure dst is filled
* nGrow -> nGrowVect
* restore float
* don't override valid cells
* single precision mesh
* whitespace
* wrap SumBoundary
* Wrap additional uses of FillBoundary.
* catch missing copies of ParallelCopy
* missing OverrideSyncs
* add wrapper for iMultifab
* fix typo
* moar typos
* typo
* strip single_precision_mesh option
* fix original copy
* update fusible syntax
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
* Fix: Single Precision Builds
Should not copy around data for `do_single_precision_comms`
* Docs: warpx.do_single_precision_comms
* initialize this tmp multifab to 0.0
* fix tiny profile label
* remove orig copies, they are only correct for FillBoundary
* loosen tolerance for space charge tests for single precision
* missing some setVal
* another missing setVal
* missing setVal
* add wrapper for new version of sumboundary
* add explicit cast to silence compiler warning
* add a test for single precision comms
* revert change to test precision
* add benchmark for single precision comms test
* restore tolerance I removed by mistake
* tolerance
* copyright headers
* drop tolerance for single precision tests in default analysis script
* missing python module
* bump tol again
* fix bad merge
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
|
|
|
|
|
|
* synchronize device before ending profile
* fix shadowing issue
* add comment
|
|
* Use parser for more input parameters
* Fix PSATD compilation and apply suggestions from code review
* Avoid out of bound array access for num_particles_per_cell_each_dim
* Fix few input files with respect to num_particles_per_cell_each_dim
* Fix get that incorrectly became query
|
|
(#2397)
* fix kinetic energy calculation in single precision
* really fix the issue...
* add missing _rt
* we don't need m2 now
* remove unused variable
* always perform kinetic energy calculation in double precision
* put w where it was
* fixed bug
* fixed bug
* use threshold for kinetic energy
* fix bug
* increase order of Taylor expansion
* increase order of Taylor expansion
* reduce classical/relativistic threshold for kinetic energy
* reset threshold to 1.005
* improve test
|
|
* interpolate mu to B-location when computing H
* add comments
* modify comment to reflect interpolation
* eol
* add struct to compute macroparameters at x,y,z, and util function to compute cellcoordinates
* fix eol
* remove unused variables, multifabs, and initialization of macro multifabs
* host device function
* fix typo
* doxygen comments
|
|
* Parse my_constants always as double
* remove debug print out
* add comment
* fix comment
* add additional comment
|
|
|
|
* Added parsing in intervals, minor clean up of querywithparser routines
* Split up documentation
* Added documentation
* Added tests to inputs_2d_multi_rz_rt
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* adding base implementation of the conformal solver
* adding some preprocessor directives
* qualifying the isnan's correctly
* getting rid of some unused fields
* computing S_stab on the fly
* using empty in length check
* Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
* replaced a looponcpu with a parallelfor
* trying to not pass lending/borrowing info by reference in evolveB
* passing data using dataPtr
* converting inds into a device vector
* simplifying some +=
* extracting the inds BaseFabs as DataPtr
* Revert "extracting the inds BaseFabs as DataPtr"
This reverts commit bc709d2fcaa347c119514de79a3f57169a05af65.
* implementing new way ogf handling cell extensions (gpu compatible)
* fixing some white spaces
* removed a typo
* made a function static
* tidying up
* tidying up
* getting rid of the rho vector
* moving the rho update to evolveE
* refectoring the cell extension
* small chenge in input parameters
* updating WarpX.H
* bug fix
* fixing another bug
* rotating the cube
* updated gitignore
* using the conformal soler in the cube test
* fixing the signature of a function
* trying to fix the setVal problem
* Revert "trying to fix the setVal problem"
This reverts commit c7d0e5e3709b730ff570183b2a6df5f587ca4640.
* trying to fix the setVal problem
* cleaning some comments
* removing an abort in device code
* Including geometric information in the external field initializer
* cleaned up the test
* moving the geometric data initialization before the external fields initialization
* changing way of saving info about intruded cells
* fixed some white spaces
* Using S_mod instead of S_red and S_enl
* substituting a std::vector with amrex::Array1D
* bug fix in the uint8_t -> coords maps
* Condensed ect cell info into one single MultiFab
* fixing some includes
* fixing some more includes
* fixed a typo
* making some functions available in gpu code
* using tilebox instead of validbox for the geometry initialization
* communicating the geometric info in the guard cells
* fixing the guard cells initialization for ect
* fixing an unused parameter
* fixing an unused parameter
* ignored some unused variables when EB is not supported
* cleaning up
* cleaning up
* ignored some unused variables when EB is not supported
* evolving rho just for ect
* handling some more unused variables
* removing some white spaces
* adding the rotated cube test
* removed some white spaces
* change cells into faces
* small fix in unused parameters
* fixed a comment
* for safety for now just initialize the geometric data when lev==maxLevel
* adding some preprocessor directives to isolate EB code
* updating Makefile stuff
* Improving the rotated cube test
* bug fix in mesh refinement
* fixing boundary conditions in rotated cube test
* deactivating MPI in rotated cube test
* activating mpi in test
* improving outputs of cells extension
* improved the documentation
* Update Source/EmbeddedBoundary/WarpXInitEB.cpp
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
* Update Source/EmbeddedBoundary/WarpXInitEB.cpp
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
* Removed some obsolete isnan's
* undone change to gitignore
* adding some missing AMREX_GPU_DEVICEs
* Changing some amrex::Real(0) into 0.
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Making some variables const
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Adding amrex:: to some ignore_unused
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Enhancing readability of some parallelfor's
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Removed some unecessary includes
* Fixing some tags
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Fixing the function CountExtFaces
* added a comment for Rhofield
* Fixed a typo in CountExtCells
* trying to remove accesses to private members in ComputeEdgeLengths
* making some functions public
* undoing some useless changes
* undoing some useless changes
* adding some AMREX_GPU_DEVICEs
* adding some unused variables
* adding some AMREX_GPU_DEVICEs to fix warnings
* fixing relative error
* Making several variables const
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Fixed a comment
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* changing some double to amrex::Real
* removing commented lines
* changing some double to amrex::Real
* removing commented lines
* inizialing nelems_x,y,z to avoid a warning
* Fixing number of cells
* Adding missing analysis routine in rotated cube test
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Making some variables constexpr
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
* Improving some reduce operations
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
* reading time directly from the output
* fixed a few data types
* fixing another int
* Replacing or->||, and->&&, not->!
* Adding license info
* Adding a white space
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* removed some unused imports
* Moving the doxygen documentation
* Including AMReX_LayoutData.H
* removing some useless parameters
* adding ect solver to the doc
* Removing some useless reductions
* Small change for consistency
* Handling the resizing of arrays
* Handling correctly the resing of arrays
* Fixing some whitespaces
* Fixing an indentation
* Improving a comment
* Removed a useless initialization
* Renamed Rhofield to ECTRhofield
* Renamed Rhofield to ECTRhofield
* Added some if conditions to isolate some EB related code
* Improved some comments
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
* Made some functions not member of WarpX anymore
* Isolated some EB-only code
* Isolated some EB-only code
* Using the square brackets to access vectors
* Ignoring some unused variables
* Bug fix in initialization
* Removed a redundant if
* Using enumeration for connectivity and improved names
* Added a comment
* added a few comments
* Removed some useless template parameters
* Printing some info only in verbose mode
* Revert "Removed some useless template parameters"
This reverts commit 2c527980e6872c0212767c27f00e2b53ecbcfd0a.
* Fixed a bug with the neighbours enumeration
* Initializing geom data alsoo in the ghost cells
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
directions (#2220)
* Apply Silver-Mueller boundary only in requested direction
* Include a test with independent Silver-Mueller boundary conditions
* Correct typo in implementation
|
|
* Implemented the integer parser
* Updated comment
* Updated documentation
* Fixed unused parameters
* Added some additional documentation
* Reworked the implementation so that expressions are evaluated as real and rounded to the nearest integer
* Fixed loop type
* Copied over initial value of variable to the real instance
* Update Source/Utils/WarpXUtil.cpp
make result const
* Update Source/Utils/WarpXUtil.cpp
make result const
* Update Source/Utils/WarpXUtil.cpp
Fix comment
* Added safeCastToInt
* Fixed adding of safeCastToInt
* Cleaned up safe casting routine
* Added parsing of more integer inputs
* Cleaned up the integer parser, removing unneeded cast from int to real
* Made x a const in safeCastToInt
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
lookup (#2128)
* Shift parsing of physical/mathematical constants from hard-coding to table lookup
* Make constants map local and static for now, until there's a reason for it to be accessible/modifiable
* Accept rewording
* Accept rewording
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
Seen with CUDA 11.2.0 in C++17 build:
```
nvcc_internal_extended_lambda_implementation: In instantiation of ‘struct __nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, amrex::IntVect (ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>::*)(const amrex::Particle<0, 0>&) const noexcept>’:
nvcc_internal_extended_lambda_implementation:677:8: required from ‘struct __nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)> >’
nvcc_internal_extended_lambda_implementation:696:204: required by substitution of ‘template<class Lambda> static decltype (__nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, Lambda>::get(lam, args#0, args#1, args#2)) __nv_hdl_create_wrapper_t<false, false, __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_create_wrapper<Lambda>(Lambda&&, amrex::GpuArray<double, 3>, amrex::GpuArray<double, 3>, amrex::Dim3) [with Lambda = ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>]’
/home/axel/src/warpx/Source/Utils/ParticleUtils.cpp:62:17: required from here
nvcc_internal_extended_lambda_implementation:677:77: error: ‘operator()’ is not a member of ‘amrex::IntVect (ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>::*)(const amrex::Particle<0, 0>&) const noexcept’
/home/axel/src/warpx/Source/Utils/ParticleUtils.cpp: In function ‘ParticleUtils::ParticleBins ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)’:
/home/axel/src/warpx/Source/Utils/ParticleUtils.cpp:62:17: error: no matching function for call to ‘__nv_hdl_create_wrapper_t<false, false, __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_create_wrapper(ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>, const amrex::GpuArray<double, 3>&, const amrex::GpuArray<double, 3>&, const amrex::Dim3&)’
62 | });
| ^
nvcc_internal_extended_lambda_implementation:696:13: note: candidate: ‘template<class Lambda> static decltype (typename __nv_hdl_helper_trait_outer<IsMutable, HasFuncPtrConv, CaptureArgs ...>::__nv_hdl_helper_trait<Tag, Lambda>::get(lam, __nv_hdl_create_wrapper_t::__nv_hdl_create_wrapper::args ...)) __nv_hdl_create_wrapper_t<IsMutable, HasFuncPtrConv, Tag, CaptureArgs>::__nv_hdl_create_wrapper(Lambda&&, CaptureArgs ...) [with Lambda = Lambda; bool IsMutable = false; bool HasFuncPtrConv = false; Tag = __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>; CaptureArgs = {const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3}]’
nvcc_internal_extended_lambda_implementation:696:13: note: substitution of deduced template arguments resulted in errors seen above
```
Since this lambda is only needed on device, we can relax the qualifier.
|
|
* support only new boundary interface. set pml flags to 0 as default
* use new boundary interface in Examples/Modules/
* use new boundary interface in the input for tests in Examples/Physical_applications
* use new boundary interface in the input for tests in Examples/Tests
* use new bc
* fix typo
* fix typo
* Update Examples/Tests/SingleParticle/inputs_2d
* fix bc in input
* specific bc for electrostatic inputs
* resetting benchmark for PEC particle CI test after fixing the default pml flags from 1 to 0
* Update Examples/Physics_applications/laser_acceleration/inputs_2d_rz
* remove documentation on previous boundary input
* Comment to clarify where in the code is_periodic is appended and how it is defined
* add default parameters for BC in doc
|
|
* amrex::Parser
Replace WarpXParser with amrex::Parser. Roundoff errors are expected because
of additional optimization in amrex::Parser.
* Reset the Langmuir_multi_psatd_single_precision benchmark due to change in single precision parser
* enable Intel oneAPI CI again
* Update Source/EmbeddedBoundary/WarpXInitEB.cpp
* Replace hard-coded number in ParticleDiag with a constexpr
|
|
* RZ FDTD: Add ASSERT for Lower Bound of Radial Coordinate
* RZ PSATD: Add ASSERT for Lower Bound of Radial Coordinate
|
|
* Update copyright notices
* allow specification of boundary potentials at runtime when using Dirichlet boundary conditions in the electrostatic solver (labframe)
* added parsing to boundary potentials specified at runtime to allow time dependence through a mathematical expression with t (time)
* updated to picmistandard 0.0.14 in order to set the electrostatic solver convergence threshold
* update docs
* various changes requested during PR review
* fixed issue causing old tests to break and added a new test for time varying boundary potentials
* possibly a fix for the failed time varying boundary condition test
* changed permission on the analysis file for the time varying BCs test
* switched to using yt for data analysis since h5py is not available
* made changes compatible with PR#1730; changed potential boundary setting routine to use the ParallelFor construct and set all boundaries in a single call
* fixed typo in computePhiRZ
* updated docs and fixed other minor typos
* fixed bug in returning from loop over dimensions when setting boundary potentials rather than continuing
* changed to setting potentials on domain boundaries rather than tilebox boundaries and changed picmi.py to accept boundary potentials
* now using domain.surroundingNodes() to get the proper boundary cells for the physical domain
* fixed typo in variable name specifying z-boundary potential
* Initial commit of MCC development. Collision type background_mcc handles collisions with a neutral background species
* added back scattering and started expanding the multiple scattering processes functionality some
* added charge exchange collision handling
* added CrossSectionHandler class to install collision process cross-section calculators
* added file reading for cross-section data
* added input parameter for energy lost during inelastic collisions and changed how secondary species are passed for ionization events
* added ionization - requires work to add to the amrex::ParallelForRNG loop
* switched the MCC ionization handling to use the same workflow as other particle creation processes i.e. using the FilterCopyTransform functionality
* updated the docs with the input parameters needed to include MCC in a run
* added test for MCC and a function to ensure that cross-section data is provided with equal energy steps
* fixed issue with build failing when USE_OMP=TRUE and some of the naming issues in Examples/Physics_applications/capacitive_discharge but I am not sure what to do about the other files in that directory
* Improve file name construction to be strictly C++ compliant
* WIP GPU Support
* Fix QED Build (CUDA 10.0)
Replace capture of a host-side array with unnamed members for E & B
field transport with a nicely named struct that transports the
Array4's as members.
This is harder to mix up and thus more self-documenting and solves an
issue with NVCC 10.0 of the form:
```
nvcc_internal_extended_lambda_implementation: In instantiation of '__nv_dl_wrapper_t<Tag, F1, F2, F3, F4, F5>::__nv_dl_wrapper_t(F1, F2, F3, F4, F5) [with Tag = __nv_dl_tag<int (*)(amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::Box, const amrex::Array4<const double> (&)[6], int, int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&), filterCreateTransformFromFAB<1, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>, amrex::Array4<const double> [6], int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&>, 1>; F1 = amrex::Array4<double>; F2 = const SchwingerFilterFunc; F3 = const amrex::Array4<const double> [6]; F4 = const amrex::Box; F5 = int*]':
/home/ubuntu/repos/WarpX/Source/Particles/ParticleCreation/FilterCreateTransformFromFAB.H:174:28: required from 'Index filterCreateTransformFromFAB(DstTile&, DstTile&, amrex::Box, const FABs&, Index, Index, FilterFunc&&, CreateFunc1&&, CreateFunc2&&, TransFunc&&) [with int N = 1; DstTile = amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>; FABs = amrex::Array4<const double> [6]; Index = int; FilterFunc = const SchwingerFilterFunc&; CreateFunc1 = const SmartCreate&; CreateFunc2 = const SmartCreate&; TransFunc = const SchwingerTransformFunc&]'
/home/ubuntu/repos/WarpX/Source/Particles/MultiParticleContainer.cpp:1169:167: required from here
nvcc_internal_extended_lambda_implementation:70:103: error: invalid initializer for array member 'const amrex::Array4<const double> __nv_dl_wrapper_t<__nv_dl_tag<int (*)(amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::Box, const amrex::Array4<const double> (&)[6], int, int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&), filterCreateTransformFromFAB<1, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>, amrex::Array4<const double> [6], int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&>, 1>, amrex::Array4<double>, const SchwingerFilterFunc, const amrex::Array4<const double> [6], const amrex::Box, int*>::f3 [6]'
```
* CUDA: Quiet numerous warnings about unused-variable-warning suppressions being unreachable statements
* Compiles on GPU; may even run as intended
* Delete overwrought attempt at polymorphic implementation
* Fix compilation error from nvcc being stupid
* fixed improper input file for MCC test and updated reference results - a statistical test of the MCC routine would be better so that reference results should not change with changes in the RNG
* Runs on CPU and GPU now
* Clean up GPU-related memory/allocation management and function usage
* Try inlining MCCProcess::getCrossSection to appease HIP and SYCL compilers
* Fix up style/formatting issues
* Typedef to make stuff cleaner and simpler
* MCC: Make helper functions static
* MCC: Pull parsing out to a helper
* MCC: Name member variables according to convention
* MCC: Pull out part of constructor
* MCC: Add constructor that will take any iterable source for energies/cross sections
* MCC: Overload operator new/delete to allocate in managed memory, to make later use more straightforward
* MCC: Add process type for ionization
* MCC: Expose a method for adding processes programmatically
* MCC: Follow convention of all types being 'class', which keeps grep easy
* MCC: Fix a formatting silliness
* added a check that the collision cross-section is zero at the energy penalty for the collision to ensure that no collision will happen with a particle with insufficient energy to pay the energy cost
* updated MCC input files to new standard inputs
* reverted incorrect changes that was messed up during various upstream and branch merges
* moved the MCC benchmark results to the Examples section in the documentation, which allows us to meet the style requirements - the tests are ongoing and the results will be provided in a following commit
* Add GPU synchronization after collisions
* added benchmark results and updated test results with the refined cross-sections needed to accurately calculate the benchmark cases
* removed example input files for benchmarks since the style requirement prohibits input files not included in an automated test; also updated the reference results for the MCC test which changed slightly after merging upstream development and updated amrex
* CLean up indentation and bit of commented out code
* Inline addProcess method and refactor
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* switched MCC files copyright to Modern Electron
* Remove sync calls, which are unnecessary on support modern hardware
* removed He collision cross-sections and instead the new warpx-data repository to access those files; also added a call in run_test.sh to clone the new repository during tests
* Apply suggestions from code review
Co-authored-by: David Grote <dpgrote@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* cleaned up the MCC documentation a bit
* added include statements now needed by the MCC (after recent PR merges) and updated the MCC test reference values which changed slightly due to changing the value of Boltzmann's constant
* added plot results for 3rd benchmark case from literature and changed documentation to reference uploaded image rather than local image in repo
* updated MCC test file to match earlier execution which changed due to the new warpx use_filter default value being 1
* Apply suggestions from code review
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* added warp-data repository clone command to docs
* fix breaking change from earlier commit
Co-authored-by: Peter Scherpelz <peter.scherpelz@modernelectron.com>
Co-authored-by: Phil Miller <phil@intensecomputing.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Phil Miller <phil.miller@intensecomputing.com>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-31-245.us-east-2.compute.internal>
Co-authored-by: David Grote <dpgrote@lbl.gov>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* 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>
|
|
* 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>
|
|
* Added ParticleBoundaries and reflecting boundary conditions
* Added ParticleBoundaries::AllNone
* Allowed different particle boundary conditions on each side of the domain
* Updated the documentation for particle boundaries
* Fix end of line space in Docs/source/running_cpp/parameters.rst
* Updated the reflecting BC to use boundary input group
* Fixes to reflective boundary conditions
* Bug fix in AsStored
* Added particle boundaries regression test particle_boundaries_3d
* Fixed particle_boundaries_3d.json
* Minor updates
* Added algo.particle_shape to test case
* Remove do_pml from test case
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
* Need to explicitly turn off pml in CI test
* Re-add include
* Fixed includes
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
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>
|
|
This fixes the `ion_map_ids` atom-to-number object:
- declare static, so the file can be included in multiple
translation units
- use `.at()`:
- missing entries do not cause an insertion
- missing entries will throw
- access is `const`, so we can declare the whole object
`static const` as well.
|
|
|
|
Fix a warning from AMReX by migrating to the newer, recommended
interface.
|
|
* Add generic field reduction reduced diag
* Make ComputeFieldReduction public
* Apply suggestions from code review
* Apply suggestions from Luca and Edoardo
* Fix syntax error
* Fix typo in example input file
Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it>
|
|
* Read boundary and set periodicity, enumerate BC types, added support for periodic
* separate particle and field boudnary structs
* PEC Etangential Bnormal and setting default pml=0
* eol
* add PEC and FieldBoundary routines
* eol
* remove duplicate struct
* update guard cells for PEC
* host device functions
* remove duplicate function
* fix compilation error by adding ;
* temporary logic to set PEC boundary
* eol
* add documentation for PEC and abort if PEC is used for RZ
* documentation for PEC functions
* remove print statements
* Adding field CI test for PEC for 3D with and without MR
* fix eol
* Apply suggestions from code review
* Update Docs/source/usage/parameters.rst
* Update Source/BoundaryConditions/WarpX_PEC.cpp
* particle PEC CI test
* rename analysis scripts for PEC
* use iside == 0 as condition
* ParallelFor over guard cells. Set field values on boundary and guard in the kernel
* ijk_guard not needed anymore
* remove unnecessary nbody generated by yt
* pi and clight are built-in
* cleanup
* eol
* fix bug in computing ig and ijk_valid
* bug fix in guard-cell update in PEC changes benchmark for particles
* fix bug in the ig compute
* reset particle PEC benchmark
* fix logic to set PEC with current interface
* adding a none type for RZ
* reset benchmarks for 2dLaserInjection, 2dgalilean_hybrid and 2dcomoving CI tests due to differences in PEC reflection
* ensure noz shape factor is used for RZ and k=0 for RZ
* fix XZ/RZ logic for Ey,Etheta,By,Btheta. Add ncomponent for RZ, generically.
* fix the field update for corner cases and mixed boundaries. rename ijk_valid to ijk_mirror since ijk_mirror need not be in valid region
* set GuardCell and Boundary cell flags
* fix compilation bug
* suppress unused variable warning
* eol whitespace
* fix doc
* Apply suggestions from code review
Co-authored-by: Andy Nonaka <AJNonaka@lbl.gov>
* RZ abort message
* reset benchmark after fixing guard-cell updates
* fix typo
* RZ doc
* Update Source/Utils/WarpXUtil.cpp
* Update Examples/Tests/PEC/inputs_particle_PEC_3d
* changes suggested from code-review
* set Enormal and Btangential in guard cell across PEC boundary
* add more info about guard cell update in the docs
* fix typo
* ijk mirror only if ig>0
* update benchmarks
* ignore unused k
* temporarily revert guardcell damping for Cartesian
* fix typo
* dont set Etangential and Bnormal to zero if field is not nodal on boundary
* set bindary int as boolean
* fix high to hi
* set default nox to 1
* particle shape for PEC test
* update benchmarks for 2D comoving and galilean
* reset benchmark for RZ test-cases
* Add in benchmarks generated by @EZoni
* Changing transverse boundaries to periodic for psatd galilean cases
* resetting benchmark for comoving_hybrid_2d and galilean_hybrid_2d
* at-least one guard cell must be filled for PEC
* abort if PEC is used for PSATD
* use new boundary interface to set none for rmin and rmax, since pec does not work for psatd
* Update Source/WarpX.cpp
* add doc mentioning PEC does not work for PSATD
* missing semicolon
* Update Source/BoundaryConditions/WarpX_PEC.H
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Update Source/BoundaryConditions/WarpX_PEC.H
* lengthy comment for normal and tangential components at domain boundaries
* eol fix
* grammar
* field_hi
* reset benchmarks
Co-authored-by: Andy Nonaka <AJNonaka@lbl.gov>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* Implemented query and getArrWithParser
* Updated parameters.rst regarding expressions for multiple floats
|
|
|
|
* Ensure the geometry.coord_sys == 1 for RZ
* Fixed Examples/Tests/ElectrostaticSphere/inputs_rz
|
|
* Read boundary and set periodicity, enumerate BC types, added support for periodic
* separate particle and field boudnary structs
* Update comment for particle struct
* default pml is 0, and reset lo, hi, and do_pml to 1
* turn on pml for MR
* eol
* remove duplication
* resolving commit conflict
* explicitly setting pml_HI_MR
* default pml lo and hi to 0, and set MR pml lo and hi to the domain values if fine patch coincides with domain boundary
* set lo and hi flag for pml when do pml = 1 and domain is non-periodic
* remove commented line
* add doc
* Update Source/Utils/WarpXUtil.cpp
remove empty line
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Docs/source/usage/parameters.rst
lower case for input
* add do_pml flags for IonAcc2d and PlasmaMirror
* add pml = true in PICMI for gaussian beam and plasma acceleration
* pml is the default field BC
* adding temporary defaults for field and particle BC using periodicity
* fix temp initialization
* set default to pec if input sets pml to 0
* fix typo
* logic for both old and new pml interface
* fix eol
* change examples to original pml input with default values
* Update Docs/source/usage/parameters.rst
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* fix comments
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Docs: fix .rst list
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|