Age | Commit message (Collapse) | Author | Files | Lines |
|
* Fix Warnings for RZ Builds
* Add Cost Calculation to RZ Spectral Solver
|
|
* Do Not Always Fill Guard Cells with Inverse FFTs
* Query psatd.fill_guards from Inputs
* Clean Up and Reduce Style Changes
* Fix Bug for Periodic Single Box
* Clean Up and Reduce Style Changes
* Fix Bug for RZ PSATD
* Remove Input Parameter, Default 0 Unless Damping
* Fix CI Tests (2D)
* Fix CI Tests (3D)
|
|
|
|
* fix readability-container-size-empty warning raised by clang-tidy
* fix bug
|
|
* Added warpx_solver_verbosity input parameter
- This input paramter is for the electrostatic solver to pass into
MLMG::setVerbose(int)
- Originally this value was hardcoded to 2
* readded accidently deleted line
* Handle the default solver_verbosity value on the C++ side
* Verbosity parameter now works the same as warpx.self_fields_max_iters
- The input parameter for mlmg verbosity is now warpx.self_fields_verbosity
- It still has a default value of 2.
* fixed missing comma
* added missing parameter to function call
* Added documentation entry for warpx.self_fields_verbosity
* corrected documentation
* fixed formatting mistsake
|
|
|
|
* RZ spectral solver header to be called within PSATD ifdefs
* include spectralsolver.H if not RZ
|
|
* CMake: Find out if FFTW supports OpenMP
Add a heuristics that also works with PkgConfig to query
OpenMP support in FFTW. Enable by default if we build with the
OpenMP compute backend unless explicitly disabled.
Add a macro to control the source-code, since FFTW does not offer
a public define for this.
* FFTW: Initialize Threads
Co-authored-by: Severin Diederichs <severin.diederichs@desy.de>
Co-authored-by: Severin Diederichs <severin.diederichs@desy.de>
|
|
* Introduce new option skip_deposition
* Properly implement the option to skip deposition
* Skip deposition for electrostatic solver
* Correct typo
* Add Index Enumerator and Equations for F/G Without Averaging
* Define new functions for current deposition and charge deposition
* Disable interpolation between levels
* Correct compilation error in RZ mode
* Add argument for relative time
* Add Index Enumerator and Equations for F/G With Averaging
* [skip ci] Add new OneStep function
* Fix compilation errors
* Correct more compilation errors
* [skip ci] Fix compilation
* Split the PSATD push into separate functions
* Add guards for rho field
* [skip ci] Use new functions in OneStep
* [skip ci] Separate the inverse transform of E_avg, B_avg
* Add deposition of rho
* [skip ci] Prevent deposition of rho if unallocated
* Fix error in deposition function
* Add subcycling of current deposition
* [skip ci] Add inverse transform of averaged fields
* [skip ci] Move component of rho
* Add function to copy J
* Temporarily deactivate contribution from F
* [skip ci] Implement call to linear in J
* Add psatd time averaging for multiJ
* [skip ci] Fix implementation of averaging
* [skip ci] Implement divE cleaning
* Fix Bug for RZ Builds
* Fix Bug for RZ Builds
* Fix Bug in Init of PML Spectral Solvers
* Cleaning
* Cleaning
* Add div(B) Cleaning (G Equation)
* Multi-J Not Implemented with Galilean PSATD or PMLs
* Add 2D CI Test Using Multi-J Scheme
* Add More Inline Comments
* Add More Inline Comments & Doxygen
* Add Doxygen for Constructor of SpectralSolver
* More Doxygen in Class SpectralSolver
* Add Doxygen for New Functions in WarpXPushFieldsEM.cpp
* Add Doxygen for New Functions in WarpX/MultiParticleContainer
* do_dive/b_cleaning Must Be True With linear_in_J Option
* Cast multij_n_depose to Real in Divisions
* New Input Syntax
* Add const where Possible, Fix Warnings
* Docs for New Input Syntax, Fix Abort Messages
* Consistent Use of Idx, IdxAvg, IdxLin
* Improve Documentation of psatd.J_linear_in_time
* Use const Type Qualifier whenever Possible
* Simplify Initialization of Pointer ion_lev
* Improve Doxygen
* Update documentation
* Add Note on NCI to Docs
* Make warpx.do_multi_J_n_depositions Not Optional
* Simplify Logic in getRequiredNumberOfFields
* Use More const Type Qualifiers
Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
|
|
* 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>
|
|
Avoid relying on managed memory usage in Silver-Mueller boundary
conditions. Previously, we initialized the coefficients on the
host, copied them to device and then accidentially used the
device memory on the host again, as we calculated some constants.
This now keeps the initial host-memory around so we can use it
for host-only operations.
|
|
Fix a build error with the latest AMReX version due to a missing include.
|
|
solve, so that the potential of the previous step is used as a starting guess for the solution of the Poisson equation. (#1968)
|
|
* 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>
|
|
factor (#1969)
|
|
being unreachable statements (#1957)
|
|
|
|
simulations (#1761)
* 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
* changed boundary value parameter for Dirichlet BC to boundary.field_lo/hi and changed setPhiBC() to only loop over the grid points when a boundary value has changed
* switched specifying potential boundary values though individual inputs of the form boundary.potential_lo/hi_x/y/z and incorporated the new BC formalism through FieldBoundaryType::Periodic and FieldBoundaryType::PEC rather than Geom(0).isPeriodic(idim)
* removed incorrect check of whether the potential boundary values are already correct, also had to change the input to test space_charge_initialization_2d to comply with the new boundary condition input parameters and finally changed permissions to analysis_fields.py file for the embedded boundary test since it was failing
* remove line from WarpX-tests.ini that was incorrectly added during upstream merge
* changed input file for relativistic space charge initialization to new boundary condition specification
* fixed outdated comment and updated documentation to reflect that the Dirichlet BCs can also be specified when using the relativistic electrostatic field solver
* moved call to get domain boundaries inside the loop over levels
* cleaned up the code some by using domain.smallEnd and domain.bigEnd rather than lbound and ubound
* added check that a box contains boundary cells before launching a loop over that box cells to set the boundary conditions
Co-authored-by: Peter Scherpelz <peter.scherpelz@modernelectron.com>
|
|
Work-around for:
```
Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanPsatdAlgorithmRZ.cpp(145):
error #2985: identifier "PhysConst::ep0" is undefined in device code
```
|
|
* Loop Over Full Box in Inverse FFTs
* Enable Fields Damping in Cartesian Geometry
* Minimize Style Changes
* Fields Damping: Fix Tileboxes For General Case
* Clean Up
* Assume Periodicity For Last Nodal Point in Inverse FFTs
* Update Benchmark of averaged_galilean_2d_psatd
* Update Benchmark of averaged_galilean_3d_psatd
* Update Benchmark of averaged_galilean_2d_psatd
* Update Benchmarks
* Update Benchmark of pml_psatd_dive_divb_cleaning
* Clean Up: Use More Descriptive Names
|
|
* Implement div(B) Cleaning With FDTD
* Add CI Test
* Clean Up
|
|
|
|
* Added staircased embedded boundaris to the YEE solver
* adding spherical resonating cavity test
* adding functions for fields initialization
* style adjustments
* fixing tabs
* fixed name of analysis script
* fixed name of analysis script
* fixed a few wrong preprocessor directives
* workaround for missing boost
* Revert "workaround for missing boost"
This reverts commit 601f9eb2ec6f8c2100304379b2bea1c6cf9d1851.
* another workaround for missing boost
* getting rid of boost by depending on c++17
* Removed a few unused variables
* adding USE_EB to addToCompileString for EB testing
* removed tabs
* fixing the inputs name for EB sphere test
* shortened the test
* zero padding the names of the images
* adjusted two for loops
* removed some unused variables
* improving the fields initialization
* removed the sphere test and implemented the cube test
* fixed edges lengths computation and added comments
* Fixed the case of all_regular geometries
* fixing a bug that was breaking some tests
* adding test folder
* fixed the default values for the EB cube test
* simplified the analysis script
* fixed cubic resonator default results
* inputting the plot file name from command line
* fixing the diag name
* Fixed a bug in edges initialization
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
* Adding comments to the staircased yee solver (thanks Remi)
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
* fixed the cube resonator test
* removed an unused import
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* Fix typo in the Silver-Mueller boundary conditions
* Reset checksum for silver-mueller
|
|
* Implement Silver-Mueller boundary conditions in z for RZ
* Add automated test and benchmark
|
|
* Add div(E)/div(B) cleaning options for PSATD in PMLs
* Pass missing flags to spectral solver in PML
* Duplicate MPI exchange and communication functions for G
* Use separate parameters for div cleaning in PMLs
* Add asserts for features that are not implemented
* Do not need to duplicate MPI exchange functions for G
* Add short documentation for new input parameters
* Set new parameters true by default with PSATD solver
* Add CI test for PML div cleaning with PSATD
* Use new syntax <diag_name>.intervals in new input file
* Reset benchmark of new CI test
* Always synchronize nodal points of G MultiFab
* Fix few warnings in 2D build
* Update Benchmark of pml_psatd_dive_divb_cleaning
* Improve Documentation of warpx.do_pml_dive_cleaning
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Improve Documentation of warpx.do_pml_divb_cleaning
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Improve Abort Message
* Clean Up
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
|
|
|
|
* Added RZ Er, Et, Ez and Br, Bt and Bz
* Answered my own question
* Making Yee and cells domain check for RZ too
* Added relevant coefficients
* Derivative in z requires coefsz and n_coefsz
* Bt computed with UpwardDz
* UpwardDz might require CylindricalYeeAlgorithm.H
* Added mode 0 Bz
* Added higher-order modes for Bt
* Added higher-order modes for Bz
* Fix to EOLs
* Fix typo
* Added cylindrical specific parameters
* Fix error of #endif
* rmin also needed in RZ parameters
* T_Algo needed for RZ -> different initialization in .H
* Fix private / public function
* Replacing T_Algo by CylindricalYeeAlgorithm
* Fix typo
* ParallelFor for Br, Bt and Bz separated
* Compiled after removing unecessary Br
* Changes suggested by reviewer
* No need to compute r before if()
* Corrected real and imaginary parts of Bz
* Remove vscode file
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* Split Initialization Functions of Spectral Coefficients
* Simplify Initialization of Coefficients Without Averaging
* Do Not Store Coefficients C1,S1,C3,S3 With Averaging
* Simplify Initialization of Coefficients With Averaging
* Add amrex:: Prefix Following WarpX Style Guidelines
* Match Names Of Coefficients With/Without Averaging
* 'pow' Cannot Be Used in a Constant Expression
* Update Doxygen Documentation
|
|
* PSATD+RZ: Fix Warnings
Fix a couple of warnings in PSATD + RZ.
* BesselRoots: Missing Include & using
* Kernel & Util: Unused Code & Var
|
|
|
|
* Add function definitions for Silver-Mueller boundary condition
* Add test file
* Implement Silver-Mueller equations
* Add equations for Bz
* Add equation in the z direction
* Add equation for Bx
* Add 3D implementation
* Add documentation, automated tests, and warnings
* Include second automated test and evaluate benchmark
* Fix unused variable warning
* Fix minor bugs
* Update benchmark
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Incorporate review comments
* Incorporate more suggestions
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* Add timers
* eol
* AtomicAdd
* lev argument for getCosts
* style
* style
* wip
* eol
* .ipynb
* passing down lev
* eol
* passing lev
* eol
* Update Source/Particles/Collision/PairWiseCoulombCollision.cpp
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Add for QED and ionization routines
* eol
* remove unneeded
* mfi-->pti
* move cost
* eol
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
* Refactor and clean up some spectral classes
* Abort when current correction or Vay deposition are not implemented
* Implement general equations for averaged Galilean
* Allocate averaged MultiFabs also when aux_is_nodal=1 and do_nodal=0
* Allocate +ngextra guard cells also for averaged MultiFabs
* Make alias MultiFabs for averaged aux data
* With averaging, interpolate from avg_fp (not fp) to aux
* Fix some limits of the coefficients
* Fix bug causing NaNs in spectral coefficients
* Add 2D CI test with same analysis as nodal test
* Add 3D CI test with same analysis as nodal test
* Add limit that was not covered (knorm=0 && knorm_c!=0 && nu=0)
* Allocate T2_coef only if Galilean algorithm is used
* Allocate X4_coef only if Galilean algorithm is used
* Remove extra ghost cell from 'avg_fp' MultiFabs
|
|
* Added RZ Poison solver
* Added test case for RZ Poisson solver
* Fixed intervals in RZ Poisson test case
* Added RZ Poisson test to regression tests
* Split ComputePhi into two routines, RZ and Cartesian
* Add declaration of new functions
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
|
|
|
|
|
|
* Fix electrostatic solver with momentum conservation
* Fix electrostatic, adding call to FillBoundaryAux
* For electrostatic, removed unneeded extra calls to UpdateAux and FillBoundary
* For electrostatic, calculate fields at the end of the time step
* Updated ElectrostaticSphere analysis script to use fields from end of time step
|
|
* Use IntVect for ng_J and ng_rho
* Compute guard cells for J and rho based on dt
* Reset some CI benchmarks
* Fix rebase commit
* Add back +1 cell for rho: fix remaining out-of-bound accesses
* Simplify ASSERTS using new interface of amrex::numParticlesOutOfRange
|
|
* 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
|
|
* fixed some warnings
* add missing files
* fixed bug
* fix several other warnings
* add missing include
* fixed bug
* fixed bug
* fixed bug
* fixed bug
|
|
* Implemented update without rho in RZ spectral solver
* Updated documentation for update_with_rho for RZ
* Tiny fix in GalileanPsatdAlgorithmRZ reordering declarations
* In Langmuir_multi_rz_psatd, set update_with_rho = 1
|
|
|
|
* Use PML diagonal components only with div cleaning
* Apply @RemiLehe's suggestions and simplify allocations
|
|
* CMake: Update GPU Backend Vars
Adopt to changes in AMReX modernizing GPU control.
Note: `WarpX_COMPUTE` for DPCPP is now called SYCL for consistency.
* GH Action: SYCL/DPC++ w/o MPI for now
does not build yet
|
|
|
|
* Docs: PSATD Runtime Option
* Tests: PSATD Runtime Option
Add new runtime option to PSATD regression test matrix.
* PICMI: PSATD runtime option
* Source: PSATD Runtime Option
|
|
|