aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-11-30PSATD: Rewrite Equations with/without Rho (#3343)Gravatar Edoardo Zoni 1-83/+64
2022-11-10Vay Deposition: Filter D, Exchange Guard Cells of J (#3388)Gravatar Edoardo Zoni 1-2/+7
* Vay Deposition: Filter D, Exchange Guard Cells of J * Improve Inline Comment
2022-11-07Allow `None` for Maxwell solver (#3504)Gravatar Roelof Groenewald 14-36/+36
* Add "None" as an option for the Maxwell solver * fixed some of the reasons for failing CI tests * no longer pass `do_electrostatic` to `GuardCellManager` * renamed `MaxwellSolverAlgo` to `ElectromagneticSolverAlgo` * rename `do_electrostatic` to `electrostatic_solver_id` * rename `maxwell_solver_id` to `electromagnetic_solver_id` * changes requested during PR review * remove `do_no_deposit` from tests without field evolution * Fix doc-string in `GuardCellManager.H` Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-10-25Replace "none" BC with Neumann for electrostatic (#3483)Gravatar David Grote 1-11/+17
* Replace "none" BC with Neumann for electrostatic * Added checking for Neumann boundaries * Updated documentation regarding Neumann BCs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-24Fix stair-case solver in 2D Cartesian (#2942)Gravatar Remi Lehe 2-2/+12
* Fix stair-case solver in 2D Cartesian * Generalization for the macroscropic solver * Update automated test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update benchmark Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-10Partial refactoring of the utils directory (#3404)Gravatar Luca Fedeli 5-22/+23
* 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-30Implement tridiag solver for 1D (#3431)Gravatar David Grote 1-4/+202
* Added tridiag solve for 1D * Added tridiag solver to WarpX.H * Updated PICMI_inputs_1d.py to use float64 This was done so that it will compare to the tridiag to machine precision * Updated 1D capacitive_discharge test, adding pythonsolver flag * Update capacitive_discharge analysis_1d.py file with updated reference data * Add periodic boundary conditions, plus other fixes * Added CI test Python_background_mcc_1d_tridiag * Fix for parallel * Fixed CI test file prefix for PICMI_inputs_1d.py * Fixed comments
2022-09-20PSATD: More Options for Time Dependency of J, Rho (#3242)Gravatar Edoardo Zoni 13-64/+87
* 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-26Fix Bugs w/ Current Correction and Vay Deposition (#3290)Gravatar Edoardo Zoni 1-29/+104
* Fix Bugs w/ Current Correction and Vay Deposition * Vay Deposition and Current Correction Cannot be Combined Together * Add Comment for Future Implementation of Vay Deposition w/ MR * Add Comment for Future Implementation of Vay Deposition w/ MR * Define SyncCurrentAndRho, Clean Up * Vay Deposition: Remove Extra FFT of Rho * Fix Bug in RZ Geometry (Double Filtering) * Add 2D Galilean Test w/o Periodic Single Box * Add RZ Galilean Test w/o Periodic Single Box * Add 3D Galilean Test w/o Periodic Single Box
2022-08-15Move handling of do_not_deposit to physics callers (#3225)Gravatar Phil Miller 1-5/+10
* Rearrange in preparation for lifting do_not_deposit higher in the call stack * Make do_not_deposit public, so callers can test on it * Make all DepositCharge call sites respect WarpXParticleContainer::do_not_deposit * Drop check for do_not_deposit in DepositCharge * Fix comment to accurately describe np_to_depose * Fix logic to account for other logic in AddSpaceChargeField * Match zero charge density array to filled array in RZ PSATD case * Structure control flow per @dpgrote's preference * Reword comment for clarity
2022-08-12Fill Guard Cells of Fields and Currents Independently (#3302)Gravatar Edoardo Zoni 15-51/+62
* Fill Guard Cells of Fields and Currents Independently * Fill Guard Cells of Averaged Fields as Regular Fields
2022-08-02`SyncCurrent`: Pass References To Current MultiFabs (#3277)Gravatar Edoardo Zoni 1-1/+1
* `SyncCurrent`: Pass References To Current MultiFabs * Add Doxygen for `SyncCurrent`
2022-07-27Starting with the pusher, consistently use ParticleReal (#3259)Gravatar David Grote 1-2/+3
* Starting with the pusher, consistently use ParticleReal * Update benchmarks for background_mcc_dp_psp
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-07-18ABLASTR: Update Poisson Solver API (#3243)Gravatar Axel Huebl 1-3/+10
Update the Poisson Solver API to be more usable. Needed for ImpactX.
2022-06-15ABLASTR: Compute Phi (#2994)Gravatar Axel Huebl 2-256/+167
* ABLASTR: Compute Phi Expose the computation of the electro-static potential for relativistic beams via ABLASTR for ImpactX. * Add `ablastr::fields::computePhi` Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Cleanup: Old Comments Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2022-06-08ABLASTR: Move Communication Utilities (#3167)Gravatar Axel Huebl 1-2/+4
* Move: WarpXCommUtils to ABLASTR * Update Usage Locations * Refactor: `WarpX::do_single_precision_comms` Do not use a global from WarpX in ABLASTR routines.
2022-06-03Vay Deposition: Add Cumulative Sums (#2958)Gravatar Edoardo Zoni 1-0/+116
* Implement Cumulative Sum * Implement Subtraction of Average * Fix Bug, Remove Abort w/ Periodic Single Box * Enforce Consistency w/ Periodic Single Box * Cleaning * Cleaning * Fix Bugs * Cleaning * Compute Cumulative Sums Before Sync * Always Loop Over Full Boxes * MFIter without Tiling * Cleaning * Do Not Store Cumulative Sums * Add Two-Particle Test (3D) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Set 3D Velocity in CI Test * Precompute Normalization Factors * Add Two-Particle Test (2D) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-06-02Move warning logger in ablastr (#3154)Gravatar Luca Fedeli 3-21/+35
* 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-24Simplify the function computePhi (#3026)Gravatar Remi Lehe 1-56/+30
* Simplify the function computePhi * Allow to compile RZ without EB * Allow to compile RZ without EB * Deactivate semi-coarsening when both EB and RZ are used * Update Source/FieldSolver/ElectrostaticSolver.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-05-23use fwd declaration for WarpXFaceInfoBox (#3125)Gravatar Luca Fedeli 2-1/+2
2022-05-17Use uniform error message formatting in more source files (#2964)Gravatar Luca Fedeli 21-58/+108
* 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-05-09Fix miscellaneous issues found with clang tidy (#3083)Gravatar Luca Fedeli 1-1/+0
* fix miscellaneous issues found with clang tidy * fix miscellaneous issues found with clang tidy * moved default constructors and destructors to header * fix issue * Use default again
2022-05-03Release 22.05 (#3076)Gravatar Axel Huebl 1-1/+4
* AMReX: 22.05 * PICSAR: 22.05 * WarpX: 22.05 * Fix issue with RZ electrostatic solver Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2022-04-07Vay Deposition: Fix SyncCurrent, FFTs (#3012)Gravatar Edoardo Zoni 1-0/+2
2022-04-05Semicoarsening in electrostatic solvers (#3024)Gravatar Weiqun Zhang 1-4/+37
* Semicoarsening in electrostatic solvers Enable semicoarsening in electrostatic solvers if the problem is anisotropic due to relativistic beam and/or anisotropic cell spacing. * Update relativistic_space_charge_initialization benchmark
2022-04-04Refactoring: More General Interfaces (#2991)Gravatar Edoardo Zoni 1-43/+55
* Refactoring: More General Interfaces (J, rho) * Refactoring: More General Interfaces (E, B) * Refactoring: More General Interfaces (rho) * Fix const Correctness * Fix const Correctness (continued) * Fix Bugs * Refactoring: More General Interfaces (averaged E, averaged B)
2022-03-28Clean up handling of `v_galilean` (#2989)Gravatar David Grote 2-5/+3
* 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 5-113/+25
* 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 3-18/+19
* 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-14FFT of J: Use Spectral Index of Correct MR Level (#2961)Gravatar Edoardo Zoni 1-8/+18
2022-03-14FFT of J: Use Correct Current w/ Current Centering (#2962)Gravatar Edoardo Zoni 1-5/+1
2022-03-08Make error and info messages visually uniform (#2939)Gravatar Luca Fedeli 7-19/+29
* 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 21-116/+150
* Refactor Vay Deposition Functions * Use rho Index Type for FFT of D * Improve Doxygen Strings
2022-03-03Macroscopic Maxwell solver: do not update fields in EB (stair-case ↵Gravatar Remi Lehe 3-7/+32
approximation) (#2899) * Macroscopic Maxwell solver: do not update fields in EB * Correct unused variable * Add test with macroscopic solver * Add automated test
2022-03-01Check that the relative permittivity epsilon is always strictly positive (#2906)Gravatar Remi Lehe 1-0/+6
2022-02-25Relativistic ES - only add the E-field due to boundary potentials once (#2722)Gravatar Roelof Groenewald 1-21/+75
* in relativistic ES, add boundary potential E-fields only once * return early from computeB if beta is zero * add a check that self fields were calculated for any species before adding the field due to boundary potentials * added new function `WarpX::AddBoundaryField` and other changes requested during code review * update ElectrostaticSphere test runtime params
2022-02-24Add mesh refinement for electrostatic solver and scraping (#2728)Gravatar Yinjian Zhao 1-47/+84
* Modify in ElectrostaticSolver.cpp. * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Apply suggestions from code review * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Can compile. * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * compiling error * Can compile. * Fix compileing error for 3D. * Can pass test Examples/Tests/ElectrostaticSphereEB/analysis_rz.py with mesh refinement added. * Initial modification. * Remove an assert. * Add new test. * Update WarpX.cpp * Debuging. * Add print for debuging. * Remove prints. * reset benchmark for ElectrostaticSphereEB_RZ_MR * Fix compilation * Fix number of guard cell for coarse patch * Update Source/WarpX.cpp * Correct inverse cell side when interpolating EB distance * Cleaning up * Fix unused variable call * Partition: copy all compile-time attributes * Fix compilation * Update Regression/WarpX-tests.ini * Fix bug * reset benchmark for scarping 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-02-16Refactor Current Correction Functions (#2839)Gravatar Edoardo Zoni 20-187/+77
* Refactor Current Correction Functions * Clean Up, Reset Benchmark
2022-02-16Correct typo in the relativistic Poisson solver (#2853)Gravatar Remi Lehe 1-4/+5
* Correct typo in the relativistic Poisson solver * Fix unused variable * Update 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-11Rename ngE as ngEB (used for E,B) (#2841)Gravatar Edoardo Zoni 1-1/+1
2022-02-05Fixes removing implicit double to float conversions (#2687)Gravatar David Grote 2-2/+3
* Fixes removing implicit double to float conversions * Minor fix in Evolve * Removed comments * Reverted amrex::second to original version. This change will be made in a separate PR * More fixes * Performance: pow2 & pow3 * One more pow2 * Cleaning: auto where types are repetitive std::pow(float, int): see comments and https://stackoverflow.com/a/5627278/2719194
2022-02-03Fixing the computation of ECT Rho Field (#2711)Gravatar Lorenzo Giacomel 7-96/+183
* Fixed computation of ECT Rho * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adding a missing preprocessor directive * Updated contributors list * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fixed an abort message * Fix in Source/Initialization/WarpXInitData.cpp Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Added some comments * Made EvolveRhoCartesianECT not static Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: lgiacome <lorenzo.giacome@cern.ch> 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> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2022-02-03Rename PSATD Classes (#2805)Gravatar Edoardo Zoni 15-90/+90
* Rename PSATD Classes * Rename PsatdAlgorithmJLinear as PsatdAlgorithmJLinearInTime