aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-11-30PSATD: Rewrite Equations with/without Rho (#3343)Gravatar Edoardo Zoni 1-83/+64
2022-10-10Partial refactoring of the utils directory (#3404)Gravatar Luca Fedeli 1-1/+1
* initial work to clean WarpX Utils * remove AMRCore from Ionization tables * progress * refactoring of a part of the utils directory * fix bug * fixed bug * fixed bug * remove debug line accidentally slipped into the code * remove debug line accidentally slipped into the code * remove debug line accidentally slipped into the code * cleaning * fixed bug
2022-09-20PSATD: More Options for Time Dependency of J, Rho (#3242)Gravatar Edoardo Zoni 12-58/+81
* Rename PsatdAlgorithm as PsatdAlgorithmJConstantInTime * Add New Inputs: psatd.J_in_time, psatd.rho_in_time * Update PSATD Classes * Fix Bug for FDTD Build * Fix Warning for RZ PSATD Build * Fix Multi-J Loop w/ J Constant in Time * Clean up * Fix Error Message * Fix Time of Charge Deposition for Rho Linear * Add 3D Langmuir CI Tests w/ Multi-J Algo * Fix Checksums of New CI Tests * Remove Extra CI Tests (added in #3363) * Fix CI Tests w/ Multi-J PSATD * Add Docs for New Input Parameters * Galilean/Comoving PSATD Not Compatible w/ J Linear
2022-09-15Use blaspp::gemm on GPU for Hankel transform (#3383)Gravatar Remi Lehe 2-48/+49
* Use gemm on GPU for Hankel transform * Add stream synchronization * Add `amrex` * blas::gemm call: add `queue` with device id * CMake: BLAS++ Missing Deps * Update installation instructions for Summit * CMake: BLAS++ should not need curand * Add paths to blaspp/lapackpp * Move Queue Constructor to Constructor * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Correct name of profiled area * Use gemm for inverse Hankel transform * Add missing comma * Clean up the code so that it compiles for CPU * Clean up code ; update documentation * Update Comment Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Update Tools/machines/summit-olcf/summit_warpx.profile.example Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Add stream synchronization * Switch to streamsynchronize * Update comments 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>
2022-08-12Fill Guard Cells of Fields and Currents Independently (#3302)Gravatar Edoardo Zoni 14-37/+19
* Fill Guard Cells of Fields and Currents Independently * Fill Guard Cells of Averaged Fields as Regular Fields
2022-07-22Fix a bug in GPU version of Hankel Transform (#3253)Gravatar Weiqun Zhang 1-6/+6
amrex::Array4 is a 4D array that can be accessed with three spatial indices plus an optional component index. We must always provide all three spatial indices even in 2D.
2022-06-02Move warning logger in ablastr (#3154)Gravatar Luca Fedeli 1-16/+25
* initial work to move the Warning Logger into ablastr * progress with warn manager class * moved Warning Logger in ablastr * fixed bugs * Fix: `SpectralFieldDataRZ.cpp` Missing include for `WarpX::getCosts(lev);` Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-05-30Use Utils::TextMsg::Err and WARPX_ALWAYS_ASSERT_WITH_MESSAGE in more files ↵Gravatar Luca Fedeli 4-10/+23
(#3117) * use formatted error messages * fixed bug * fixed bug * fixed bugs * fixed bug
2022-05-26SpectralFieldDataRZ: Missing Utils Include (#3140)Gravatar Axel Huebl 1-0/+1
2022-05-17Use uniform error message formatting in more source files (#2964)Gravatar Luca Fedeli 7-19/+36
* use WARPX_ALWAYS_ASSERT_WITH_MESSAGE instead of Abort() * fix bug * Update Source/WarpX.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * use more uniform text formatting * fixed bug * fixed bug * using Utils::TextMsg in more files * fixed bug * use Utils::TextMsg in more files * fixed bug * use Utils::TextMsg in more files * fixed last merge conflict * fixed bug * fix indentation Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-05-11Fix Wrong Abort Message for PSATD w/ Time Averaging (#3098)Gravatar Edoardo Zoni 1-1/+1
2022-03-28Clean up handling of `v_galilean` (#2989)Gravatar David Grote 1-1/+1
* Cleaned up handling of v_galilean * Missed one * Update Source/WarpX.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/WarpX.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/WarpX.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/PhotonParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/FieldSolver/WarpXPushFieldsEM.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/WarpXParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/WarpXParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Diagnostics/ReducedDiags/ParticleExtrema.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/PhysicalParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/PhysicalParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Utils/WarpXUtil.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/RigidInjectedParticleContainer.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/ElementaryProcess/QEDPhotonEmission.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/ElementaryProcess/QEDPairGeneration.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/Particles/ElementaryProcess/Ionization.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/FieldSolver/WarpXPushFieldsEM.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * More cleanup * Reset Galilean Benchmarks * For mirrors, now include the Galilean shift * Removed the flag since it is true for all calls * Fix Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp * Update Source/WarpX.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
2022-03-22Vay Deposition: Separate Arrays, Correct Index Types w/ FFTs (#2965)Gravatar Edoardo Zoni 4-55/+11
* Refactoring * Separate Arrays (Fine Patch) * Add Aborts w/ Current Centering, MR * Cleaning * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-03-21Hybrid Algorithms: Add FDTD Support for Centering (#2327)Gravatar Edoardo Zoni 2-51/+2
* Hybrid Algorithms: Add FDTD Support for Centering * Current Centering Incompatible with Esirkepov Deposition * Remove FDTD v. PSATD Runtime Conditions * Add CI Test * Rename coefs as coeffs in getFornbergStencilCoefficients * amrex::Vector: Use at() Instead of Operator [] * Reset Benchmark * Reset Benchmark * Cleaning * Reduce Size of New CI Test * Reset Benchmark * Fix Bug
2022-03-16RZ: Use WarpX::ncomps more consistently (#2951)Gravatar Axel Huebl 2-15/+16
* RZ: Use WarpX::ncomps more consistently We used `2*modes - 1` in many places, which is harder to follow then the variable we have. * Update Comments * Replace leftover `ncomp` -> `m_ncomps`
2022-03-08Make error and info messages visually uniform (#2939)Gravatar Luca Fedeli 4-12/+19
* initial work to add msg formatter * wip * replace AMREX_ALWAYS_ASSERT_WITH_MESSAGE with WarpX equivalent
2022-03-03Refactor Vay Deposition Functions (#2885)Gravatar Edoardo Zoni 20-108/+72
* Refactor Vay Deposition Functions * Use rho Index Type for FFT of D * Improve Doxygen Strings
2022-02-16Refactor Current Correction Functions (#2839)Gravatar Edoardo Zoni 19-187/+24
* Refactor Current Correction Functions * Clean Up, Reset Benchmark
2022-02-15Only set modified k to 0 for even number of points (#2852)Gravatar Remi Lehe 1-1/+1
* Only set modified k to 0 for even number of points * Update Source/FieldSolver/SpectralSolver/SpectralKSpace.cpp
2022-02-03Rename PSATD Classes (#2805)Gravatar Edoardo Zoni 15-90/+90
* Rename PSATD Classes * Rename PsatdAlgorithmJLinear as PsatdAlgorithmJLinearInTime
2022-01-31Separate Class for Multi-J PSATD Algo (#2748)Gravatar Edoardo Zoni 7-197/+632
* Separate Class for Multi-J PSATD Algo * Cleaning * X1,...,X6 Real, not Complex * Cleaning * Improve Comments, Rename Jx as Jx_old (etc.)
2022-01-20Implement PML for the outer RZ boundary with PSATD (#2211)Gravatar David Grote 8-10/+285
* Initial version of RZ PSATD PML BCs * Cleaned up some bugs * Add support of do_pml_in_domain option * Cleaned up stuff for building * Fix PMLPsatdAlgorithm macro * Removed unneeded variable from SpectralSolverRZ * Change length 3 arrays to length 2 (for 2D) * Cleanup around DampPML * Added more checks of pml[lev] * Added CI test for RZ PML * Added code to update the corner guard cells * Further updates * Added CI test * Fixed EOL space * Updated CI benchmarks, removing round off fields * Changes to CI missed on previous commit * Various fixes for clean up * More fixes for clean up * Further cleanup * Updated benchmark * Fixed benchmarks file * Minor cleanup * Added round off benchmark values * Fixed testname in analysis_pml_psatd_rz.py * Update comment in analysis file * Put pml_rz code in RZ and PSATD macro blocks * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add geometry.dims input to CI test input file, inputs_rz * Cleanup to match recent changes Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-01-12Don't attempt to use costs when working on PML grids. (#2737)Gravatar Andrew Myers 2-19/+29
2022-01-09Multi-J: J Always Linear in Time (#2679)Gravatar Edoardo Zoni 10-58/+61
* Remove WarpX::J_linear_in_time * Fix Bug * Implement Deposition of Rho at Half Time * Implement New Equations for E * Fix New Equations for E * Cleaning * Fix Limits of X2, X3, X7 * Implement New Equations for F * Implement New Equations for F * Revert E Equations to Avoid Roundoff Changes * Remove Quadratic Equations * Remove Deposition of Rho at Half Time Step
2021-12-16Doxygen: Fix Diags, FieldSolver, Parallelization & Particles (#2662)Gravatar Axel Huebl 9-0/+22
* Doxygen: Fix Diags, FieldSolver, Parallelization & Particles * Apply suggestions: Remi Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Apply suggestions: Roelof Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Apply suggestions: Luca Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it> * Apply suggestions: Edoardo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions: Andrew * Apply suggestions: Edoardo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions: Neil Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Apply suggestions: Roelof * Apply suggestions: Weiqun Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
2021-12-11ABLASTR Library (#2263)Gravatar Axel Huebl 1-3/+3
* [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.
2021-12-08Replace AMREX_SPACEDIM: Evolve & FieldSolver (#2642)Gravatar Prabhat Kumar 9-65/+65
* AMREX_SPACEDIM : Boundary Conditions * AMREX_SPACEDIM : Parallelization * Fix compilation * AMREX_SPACEDIM : Initialization * Fix Typo * space * AMREX_SPACEDIM : Particles * AMREX_SPACEDIM : Evolve and FieldSolver
2021-12-02div(E,B) Cleaning Options for PSATD (#2403)Gravatar Edoardo Zoni 2-33/+33
* Implement div(E)/div(B) Cleaning with Standard PSATD * Cleaning * Update Benchmark * Add Nodal Synchronization of F,G * OneStep_multiJ: Nodal Syncs, Damp PML * OneStep_multiJ: Push PSATD Fields in PML * div Cleaning Defaults (Domain v. PML) * Include Fix of #2429 until Merged * Reset Benchmark of Langmuir_multi_psatd_div_cleaning * Multi-J: Remove PML Support * Include Fix of #2474 Until Merged * Exchange All Guard Cells for F,G * Fix Defaults * Update Test, Reset Benchmark * Fix Defaults * Cleaning * Default update_with_rho=1 if do_dive_cleaning=1 * Update CI Test pml_psatd_dive_divb_cleaning * Replace Warning with Abort
2021-11-22Python: Start 1D Support (#2582)Gravatar Axel Huebl 1-5/+39
* Python: Start 1D Support Start supporting 1D builds in Python. * Fix 1D: PML FillZero unused ... since PMLs are not yet supported in 1D. * BeamRelevant: Fix unused p_pos0 * FromTXYEFileLaserProfile: Not Impl in 1D * QED Schwinger: 1D not Implemented Fix unused warnings, add aborts. * 1D RealVect/IntVect: Initialization Use explicit scalar constructors, no braces. Fix warning in clang 10. * 1D NCI Filter: Fix unused members & Init Unimplemented, but throws warnings. * PSATD: 1D not Implemented - remove compile warnings - start porting some parts * NCIGodfreyFilter: Clean up 2D & Else
2021-11-22Added abort error message to prevent using averaged Galilean PSATD with ↵Gravatar Olga Shapoval 1-0/+4
psatd.update_with_rho=0 (#2571)
2021-10-21Div(B) Cleaning: Change Normalization of G (#2429)Gravatar Edoardo Zoni 2-14/+14
* PSATD with div(B) Cleaning: Change Normalization of G * Use New Normalization also in RZ * Use New Normalization also in FDTD * Reset Benchmark of Test divb_cleaning_3d
2021-10-20⚠️ Add warning logger (#2113)Gravatar Luca Fedeli 1-8/+16
* 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>
2021-10-11Use parser for more input parameters (#2386)Gravatar Neïl Zaim 10-15/+15
* 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
2021-08-25Fix: Missing Include Guards (FWD) (#2226)Gravatar Axel Huebl 4-4/+24
* Fix: Missing Include Guards (FWD) All header files need include guards to avoid double definitons. * Fix copy-paste guard
2021-08-11Work-Around: ROCm/rocFFT <=4.3.0 (#2180)Gravatar Axel Huebl 1-0/+3
C++ template typedefs do not work in `extern C` blocks. This work-arounds this construct: https://github.com/ROCmSoftwarePlatform/rocFFT/blob/rocm-4.3.0/library/include/rocfft.h#L36-L42 This is fixed in the post 4.3.0 rocFFT `develop` branch already. Fixes build errors of the kind: ``` AnyFFT.H:15: In file included from /opt/rocm-4.1.0/hip/../include/rocfft.h:38: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/cstddef:69:21: error: explicit specialization of undeclared template struct '__byte_operand' template<> struct __byte_operand<bool> { using __type = byte; }; ```
2021-08-05RZ PSATD: Time Averaging for Multi-J Algorithm (#2141)Gravatar Edoardo Zoni 2-3/+125
* RZ PSATD: Time Averaging for Multi-J Algorithm * Fix Wrong Signs in Bm * Use Time Averaging in CI Test, Update Benchmark * Minor Fix
2021-07-29PSATD: div Cleaning Implemented only with psatd.J_linear_in_time=1 (#2142)Gravatar Edoardo Zoni 1-0/+10
2021-07-26RZ PSATD: Multi-J Algorithm (#2111)Gravatar Edoardo Zoni 5-23/+182
* RZ PSATD: Implement Multi-J Algorithm * Implement J_linear_in_time Option * Reduce Style Changes * Move Copy/Zero/Scale Functions to SpectralFieldDataRZ * Remove Unused Member m_n_rz_azimuthal_modes from SpectralSolverRZ * Fix CI -Werror Warnings * Implement Same Changes of #2116, Cleaning * Fix Bug: Pass Correct dt to SpectralSolverRZ * Add CI Test * CI Test: Set random_theta = 0, Update Benchmark * Remove random_theta from Inputs * Update Benchmark of multi_J_rz_psatd
2021-07-21Multi-J Algo: Make div(E)/div(B) Cleaning Optional (#2116)Gravatar Edoardo Zoni 4-38/+81
* Multi-J Algo: Make div(E)/div(B) Cleaning Optional * Remove Unnecessary Newlines
2021-07-19Fix Bug in Multi-J PSATD Equations (#2106)Gravatar Edoardo Zoni 1-3/+3
2021-07-15Spectral Index: Replace `struct`s of `enum` with Class (#2062)Gravatar Edoardo Zoni 23-426/+543
* Add New Spectral Index Class * Cleaning * Use New Spectral Index Class in PML * Cleaning * Reuse Available Data for divE * Allocate Rho Data Only when Necessary * Cleaning * Fix Bug in RZ Geometry * Revert Commits for Allocation of Rho Data * Cleaning * Update Forward Declaration Header * Do Not Include Unnecessary Header Files * Doxygen * Do Not Use Separate div() Cleaning Flags * SpectralFieldIndex: Add Missing param to Doxygen * Remove Unused getRequiredNumberOfFields
2021-07-12Add Cost Calculations for Cartesian/RZ Filtering (#2074)Gravatar Edoardo Zoni 3-8/+41
* Add Cost Calculations to ApplyFilter * Add Cost Calculations to ApplyStencil * Update Doxygen
2021-07-12Fixes to RZ PSATD (#1945)Gravatar David Grote 1-8/+72
* For RZ, changed the sign of the density corrections near the axis * Further fixes for deposition correction near axis * Yet one more sign fix for charge density * For RZ spectral solver, filled in the guard cells below the radial axis * Fix white space at end of line * In RZ spectral backtransform, ensure box is valid * For RZ inverse volume scaling, fixed use of nGrow to use nGrowVect * Temporary fix adding damped cells in the domain interior * Bug fix for RZ PSATD scalar backward transform * Fixes for damping of the fields in the z-guards * Bug fix in DampFieldsInGuards * Bug fix in DampFieldsInGuards (for tiling) * Added warpx_amr_check_input input parameter * Removed unneeded damp and zero_in_domain input * Removed damping related code from picmi * Improved some comments in code copying field to the radial guard cells * Update Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp Simplify the expression for the sign Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Updated benchmarks * Updated tolerance for Langmuir analysis script * Updated CI test galilean_rz_psatd_current_correction Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2021-07-09RZ: Fix Warnings, Add Cost Calculations to Spectral Solver (#2071)Gravatar Edoardo Zoni 1-0/+56
* Fix Warnings for RZ Builds * Add Cost Calculation to RZ Spectral Solver
2021-07-08Do Not Fill Guard Cells with Inverse FFTs, Unless for Field Damping (#2045)Gravatar Edoardo Zoni 12-24/+69
* 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)
2021-07-06remove extra semicolon (#2052)Gravatar Luca Fedeli 1-1/+1
2021-07-06Fix readability-container-size-empty warning raised by clang-tidy (#2055)Gravatar Luca Fedeli 1-1/+1
* fix readability-container-size-empty warning raised by clang-tidy * fix bug
2021-06-30Add OpenMP for FFTW (#2040)Gravatar Axel Huebl 2-1/+15
* 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-28Multi-J scheme (#1828)Gravatar Remi Lehe 5-51/+307
* 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-24Use "Include What You Use" on WarpX (#1947)Gravatar Luca Fedeli 30-45/+267
* 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>