aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2021-07-08Docs: JUWELS more Modules (#2065)Gravatar Axel Huebl 1-3/+6
Add a few more useful modules.
2021-07-07Fix ES Init & Filter (#2064)Gravatar Axel Huebl 1-4/+5
Move the calculation of initial space charge fields further down in `WarpX::InitData` and out of `InitFromScratch`. This call runs already MLMG routines that rely on a filtered rho, whose stencils are not initialized if called to early.
2021-07-07CI: BLAS++/LAPACK++ Only in Py/RZ (#2061)Gravatar Axel Huebl 1-4/+6
Install BLAS++/LAPACK++ only fr the Python main and RZ tests, which both build & perform RZ tests with PSATD support. Save a minute in download & build for the other test matrix entries.
2021-07-06remove extra semicolon (#2052)Gravatar Luca Fedeli 1-1/+1
2021-07-06CI: yt@3.6.1 (#2060)Gravatar Axel Huebl 2-2/+3
The latest yt release (4.0.0) adds a new unconditional `nbody` key, which breaks our test checksums.
2021-07-06Add possibility to start and stop moving window (#2027)Gravatar thomas clark 18-31/+77
* 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>
2021-07-06Fix CMAKE_VERBOSE_MAKEFILES typo in documentation (#2053)Gravatar Neïl Zaim 1-1/+1
2021-07-06Fix readability-container-size-empty warning raised by clang-tidy (#2055)Gravatar Luca Fedeli 7-13/+13
* fix readability-container-size-empty warning raised by clang-tidy * fix bug
2021-07-06Reflective particle boundary condition (#1728)Gravatar David Grote 16-48/+509
* 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>
2021-07-06Input parameter for AMReX MLMG verbosity (#2041)Gravatar Michael Kieburtz 7-14/+33
* 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
2021-07-06changed default behavior of AddNParticles to not overwrite current particles ↵Gravatar Roelof Groenewald 1-2/+6
(#2046)
2021-07-06Fix Few Warnings with FDTD Build (#2050)Gravatar Edoardo Zoni 2-1/+2
2021-07-06fix unused variables (#2054)Gravatar Luca Fedeli 3-4/+3
2021-07-02Test Scripts: +PSATD (#2049)Gravatar Axel Huebl 3-7/+9
* Test Scripts: +PSATD Unless the `run_test.sh` are run with `export WARPX_CI_PSATD=FALSE`, build by default using also FFT libraries. This continues to ensure that we can disable FFT features on new platforms but reduced the confusion that can occur between the Azure and local tests. This now requires that people have either FFTW or the respective accelerated compute FFTW library installed locally when running the full `./run_tests.sh` locally. We document how to get those libs, so this should be fine. * Docs: Install BLAS++ & LAPACK++ Document the currently available installation options for BLAS++ and LAPACK++.
2021-07-02Use queryWithParser for more real input values (#2042)Gravatar David Grote 2-2/+2
2021-07-02Release 21.07 (#2047)Gravatar Axel Huebl 8-10/+10
* AMReX/PICSAR: 21.07 * WarpX: 21.07
2021-07-01Filter Always ON by Default (#2031)Gravatar Edoardo Zoni 29-22/+73
* Filter Always ON by Default * Fix CI Tests * Update Docs * Fix CI Test dirichletbc * Default WarpX::use_filter = 0 with RZ FDTD, Add Warnings * Set WarpX::use_kspace_filter = true by Default, too * RZ: Fix Bug with PSATD Binary and FDTD Runtime Solver * Default use_kspace_filter = true, Fix Runtime Issue with Rho Functor
2021-07-01CI: No-FFT RZ Entry (#2048)Gravatar Axel Huebl 1-2/+8
Add a no-FFT RZ compile test.
2021-07-01RZ spectral solver header to be called within PSATD ifdefs (#2044)Gravatar Revathi Jambunathan 3-11/+13
* RZ spectral solver header to be called within PSATD ifdefs * include spectralsolver.H if not RZ
2021-07-01CI: Disable DPC++ temporarilyGravatar Axel Huebl 1-0/+2
2021-06-30Add OpenMP for FFTW (#2040)Gravatar Axel Huebl 3-31/+90
* 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>
2021-06-28Docs: Update Repo-Structure (#2039)Gravatar Axel Huebl 2-11/+17
- update build system references - move "evolve" term to glossary - update titles to typical spelling - minor formatting
2021-06-28Check verbose parameter before printing out step info (#2033)Gravatar Michael Kieburtz 1-6/+9
* Check verbose parameter before printing out step info * moved walltime outside of verbose check * renamed wall_time to evolve_time
2021-06-28Multi-J scheme (#1828)Gravatar Remi Lehe 22-221/+1342
* 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>
2021-06-28Docs: Fix Include RST linksGravatar Axel Huebl 1-1/+1
Little formatting issues when linking to references
2021-06-28AMReX/PICSAR: Weekly Update (#2038)Gravatar Axel Huebl 2-2/+2
Update AMReX to AMReX-Codes/amrex@55cb40092910183729ca81e6eef3d0ce386af317 No changes im PICSAR since last update. ``` ./Tools/Release/updatePICSAR.py ./Tools/Release/updateAMReX.py ```
2021-06-25Evolve: Avoid Resetting Walltime (#2032)Gravatar nruof 1-7/+7
* Moved walltime to WarpX.H so that it doesn't reset for each sim.step() call * Move Real walltime to static instance in WarpXEvolve.cpp and rename all instances of walltime to evolve_time
2021-06-24Use "Include What You Use" on WarpX (#1947)Gravatar Luca Fedeli 279-733/+3221
* 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>
2021-06-24Refactored basestring to str (#2030)Gravatar kzhu-ME 1-6/+6
2021-06-23DepositCurrent: Const Arguments (#2025)Gravatar Axel Huebl 4-46/+46
2021-06-21Laser: warnin antenna of a box; Allow zero amplitude (#1989)Gravatar Luca Fedeli 2-8/+19
* add check of laser antenna position * implement axel suggestions * disable laser if antenna is out the box * fix bug * Update Source/Particles/LaserParticleContainer.cpp * implement neil's solution * remove unnecessary include * fix initial status of m_enabled * adding back a check * add back check * add back check * removed unnecessary comment Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
2021-06-21Add option to not dump first and last timestep (#1530)Gravatar Neïl Zaim 8-3/+27
* Add option to not dump first and last timestep * Add new function MultiDiagnostics::FilterComputePackFlushLastTimestep
2021-06-21Add damped to BC_map (#2021)Gravatar David Grote 1-1/+1
2021-06-21AMReX/PICSAR: Weekly Update (#2024)Gravatar Axel Huebl 2-2/+2
Update AMReX to https://github.com/AMReX-Codes/amrex/commit/c797f6b6979aea63cc6bda574765c29ba89e7b9c No changes im PICSAR since last update. ``` ./Tools/Release/updatePICSAR.py ./Tools/Release/updateAMReX.py ```
2021-06-21Make FieldReduction more robust with respect to multiline parser inputs (#2008)Gravatar Neïl Zaim 2-2/+8
* Add multi-line example * Replace newlines and following whitespaces by single whitespaces * Update Source/Diagnostics/ReducedDiags/FieldReduction.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-06-17Avoid calling `AddPlasma` when using `AddPlasmaFlux` (#2014)Gravatar David Grote 1-1/+4
2021-06-16AMReX: (#2020)Gravatar Axel Huebl 2-2/+2
Update AMReX to https://github.com/AMReX-Codes/amrex/commit/501626901f500b45fce5102c01d15cd8f74c7187 ``` ./Tools/Release/updateAMReX.py ``` Updated to include https://github.com/AMReX-Codes/amrex/pull/2116 This PR mitigates: - do no allocated managed memory for received buffers as managed (with preferred location on-device): they are used only on host and caused crases with `amrex.the_arena_is_managed=0`
2021-06-16Silver-Mueller: Avoid Managed Memory (#2019)Gravatar Axel Huebl 3-24/+26
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.
2021-06-16don't use RealVector in laser particle initialization. (#2018)Gravatar Andrew Myers 1-4/+4
2021-06-14callbacks.py: Fix bound method py2 -> py3 syntax (#2012)Gravatar peterscherpelz 1-1/+1
2021-06-14AMReX: fc9bc1e3efdaead0253d0a55dcf1abb7abc06bd7 (#2016)Gravatar Axel Huebl 2-2/+2
2021-06-11Fix Offset: PushPX -> evolve_opt (#2011)Gravatar Axel Huebl 3-23/+23
* Fix Offset: PushPX -> evolve_opt Comparing to the `doParticlePush()` above, the `ux`/`uy`/`uz` SoA attributes seem to lack the particle offset in `PushPX`. Also simplifies the offset calculation to reside off-kernel, which saves 8 bytes cmem and some index indirection logic for the compiler. * RigidInjected Particle: Fix Offset Looks like this is missing here, too?
2021-06-09ion_map_ids: static & const access (#2010)Gravatar Axel Huebl 3-6/+9
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.
2021-06-09Add Total Particle & Field Momentum to Reduced Diagnostics (#1908)Gravatar Edoardo Zoni 12-125/+794
* Add Field Momentum To Reduced Diagnostics * Add Particle Momentum To Reduced Diagnostics * Cover Particle/Field Momentum in CI Test reduced_diags * Clean Up Implementation of Photons Case * Fix Bug in Field Momentum and Improve Analysis of CI Test * Fix 'includes' Following @ax3l's Suggestions * Interpolate On The Fly, Do Not Allocate Cell-Centered MultiFabs * Update/Improve Docs * Fix include, Remove Unused Variable * Write Total Momentum Divided by Sum of Weights, Test Output * Write Total Energy Divided by Sum of Weights, Test Output * Divide by Wtot Only if Not Zero * Use New Tuple-Level Reductions Available in AMReX * Use Tuple-level Reduction for Field Momentum
2021-06-08[Docs] openPMD: fix block formatting (compressors)Gravatar Axel Huebl 1-4/+7
Fix .rst block highlighting
2021-06-08Fix kernel timer: use after free (#2006)Gravatar Axel Huebl 4-23/+71
* KernelTimer: Fix Cost Use-After-Free AMReX' ParallelFor is async, the free of the cost function occurs too early can can lead to use-after-free's from the kernel. * CMake: WarpX_GPUCLOCK on CUDA/HIP Make conditional on supported backends. * Add addition to global cost array As we abstracted this from the original research prototypes (https://doi.org/10.5281/zenodo.4708449) to merge this to mainline in 1406, we forgot to add the addition to `*costs` at this point. Measurements were done with the code linked in the zenodo archive. * Cleaning: Move m_cost assignment more in Not too important, but with a default nullptr now possible. * synchronize -> streamSynchronize Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
2021-06-07Call function ReadBCParams() during python execution (#1972)Gravatar roelof-groenewald 12-5/+158
* 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
2021-06-07Added injection of a thermal flux from a plane (#1892)Gravatar David Grote 12-3/+639
* Added injection of a thermal flux from the domain surface * Major fixes to NFluxPerCell injection * Small fixes and clean up * Fixed 'if WARPX_DIMS_RZ' to use ifdef * Small fix to flux_normal_axis error message * Fix typo Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-06-07add m_u (#2003)Gravatar Luca Fedeli 3-0/+5
2021-06-07AMReX: Weekly Update (#2005)Gravatar Axel Huebl 2-2/+2