Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
|
|
Using namespace amrex::Gpu` is not safe because of the conflict between
`amrex::Gpu::memcpy` and `::memcpy`.
|
|
|
|
|
|
We reduce the number of command line arguments passed in the AMReX
build systems by placing defines in an `AMReX_Config.H` file that
is configured at AMReX build time. Files like `AMReX.H` will pull
it in as well.
In the case of `AnyFFT.H`, we need to make sure this is included
before we check the preprocessor defines.
|
|
* Implement Galilean PSATD equations on staggered grids
* Implement high-order interpolation in 2D/3D
* Include missing header file and small clean-up
* Fix bug for FDTD build
* Small clean-up
* Modify current correction for staggered grids
* Implement comoving PSATD scheme (formulation with rho)
* Fix single-precision builds
* Do not implement rho-free formulation for comoving PSATD yet
* Invert sign of comoving velocity to match Galilean convention
* Fix two bugs in comoving PSATD algorithm
* Update benchmark of CI test momentum-conserving-gather
* Update benchmark of CI test PlasmaAccelerationMR
* Update documentation
* Clean up comoving PSATD class
* Clean up comoving PSATD class (more)
* Clean up comoving PSATD class (more)
* Implement changes requested in PR review
* Add 2D regression test for staggered Galilean PSATD
* Add 2D regression test for staggered comoving PSATD
* Unify input files for new CI tests to avoid duplication
* Fully rebase benchmarks changes on development
* Update benchmark of Galilean hybrid test after #1536
|
|
* Implemented lab frame electrostatic model
* Small clean up of ComputeSpaceChargeField
* Added ElectrostaticSphereLabFrame regression test
|
|
Regression build/linker error from an outdated CMake variable.
|
|
* Implement new PML PSATD equations
* Update CI test and benchmark
* Compute coefficients C1,...,C22 on the fly
* Add check on initial energy from diagnostics
|
|
There is no need to modify the evolve routines depending on
the python build. By default, the callbacks are stored as
shared globals, which are validly initialized to nothing.
This simplifies the binary variants of WarpX.
|
|
* PSATD: only deposit charge if needed
* Update Source/FieldSolver/WarpXPushFieldsEM.cpp
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* added an option to set explicitely `max_iters` for MLMG solver
* fix EOL white spaces
* fix EOL white spaces 2
|