aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithm.H (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-05-05Current correction in Fourier space (#675)Gravatar Edoardo Zoni 1-0/+16
* Start implementing PSATD push without rho. TODO: 1) fix unit test pml_x_psatd; 2) try new PSATD push in PML; 3) avoid intro of new derived class? * Correct PSATD push to fix PML test. * Few improvements on new PSATD push: - new class name is 'PsatdAlgorithmMixed' (both rho and J are used); - new algorithm parameter to choose between available implementations: parameter name is 'psatd_push', possible values are 'standard' for old implementation using rho via Gauss law and continuity equation and 'mixed' for new implementation using rho via Gauss law and J for all remaining terms. * Fix style error (tabs vs four white spaces). * Improve comments for available PSATD algorithms. * Correct few typos in latest comments. * Implement first current correction: - new member function 'CurrentCorrection' in class SpectralSolver; - correction applied only without subcycling (in function 'OneStep_nosub'); - TODO: add correction when subcycling is used (in function 'OneStep_sub1'); - back to old implementation of PSATD push of E and B (class 'PsatdAlgorithmMixed' removed); - TODO: PML unit test 'pml_x_psatd' does not pass. * Small cleanup: - remove residual option for choice of PSATD push algorithm (only one choice now); - improve comments. * Implement div(E) diagnostics for spectral case. * split travis tests in bigger matrix * split more TravisCI tests, add electrostatic, use defaults values * typo * Move computation of div(E) to base class SpectralBaseAlgorithm. * need to split psatd too * consistent variable names and use function to avoid duplication * fix typo for qed tests * typo * also need to update run_tests.sg * Update copyright tags. * change matrix * Add test of div(E) vs rho/epsilon_0 in PML test. * Small clean-up. * Small clean-up * Remove option for current correction from input files of two new tests (not used) * Small clean-up: remove unnecessary references * More clean-up (minimize style changes to keep PR simple). * Add specific 2D/3D tests for current correction: - 'Langmuir_multi_2d_psatd_cc': same input file as 'Langmuir_multi_2d_psatd', except for current correction and output of divE; - 'Langmuir_multi_psatd_cc': same input file (3D) as 'Langmuir_multi_psatd', except for current correction and output of divE; - add corresponding Python scripts for analysis: same as previous ones, except for check on L-infinity spatial norm of rho/epsilon_0 vs div(E); - revert changes on old tests: do not use current correction in old tests (benchmarks on Battra do not need to be updated). * Improve comments. * Start implementation of new averaging with staggering: - face-to-cell-center and edge-to-cell-center replaced so far; - TODO: node-to-cell-center and 1D behavior (AMREX_SPACEDIM=1). * Remove unrelated style changes (cleaner PR). * Avoid duplication of input files and analysis scripts for new tests * Improve comments for Doxygen documentation. * Improve comments for Doxygen documentation. * Small clean-up * first implementation of Diags base classes * Small clean-up * Small clean-up * Fix erroneous non-ASCII character * Small clean-up * Auxiliary function for current correction in class WarpX to keep OneStep_nosub clean * Remove unrelated style changes (cleaner PR) * Improve comments * Instrument virtual function 'CurrentCorrection' * Trying to fix build error detected by LGTM analysis only * add example, temporarily * Continue implementation of new averaging with staggering: - new function takes reference to single MultiFab (no vector); - TODO: node-to-cell-center still in progress. * Fix small bug and clean up * Fix bug in loop over n=0,...,ncomp-1 and clean up * add more functions * Add Doxygen documentation and clean up * Small clean-up in Doxygen documentation * Compile in single precision: add _rt suffix to avoid unnecessary conversions * Avoid accessing staggering index directly from IntVect in innermost loops * Implement periodic-single box option for spectral * Fix out-of-bound in the periodic, single-box case * Replace do-while loop with for loop (default ncomp=1) * Remove temporary pointer and pass reference to MultiFab (instead of MultiFab*) * Replace AMREX_LAUNCH_HOST_DEVICE_LAMBDA with ParallelFor * cleaning and initialize output mf * use general average routine * move flush in new class, and implemented the Plotfile derived class * add comments * eol * free memory in destructor * typo * typo * no need to clear MF pointers there * though shalt not break existing tests * FlushRaw doesnt have to be virtual for now * The importance of being constant * Capability to select fields in output files * EOL * revert to old inputs * const in right place * avoid brace initializer there * oops, fix logic error in is_in * Use old name for output image of new 2D test * user can choose flush interval, same behavior as plot_int * Small clean-up in Doxygen documentation * Add option to plot raw fields * eol * replace ter flush with dump to avoid confusion * add options * Diagnostics stores a vector of functors to compute diags on the fly * eol * Field gather from diags to sync particle quantities * New diagnostics handle RZ with same behavior as old ones * cleaning and doc * const ref for string * smarter for loop from Axel and typo fix from Reva * Functors to compute some fields * simplify code following Dave's comments * Create subfolders and add more output options (divE etc.) * eol * Add documentation for periodic_single_box_fft * For periodic, single-box, apply current correction after guard cell exchange * rename mode_avg to convertRZmodes2cartesian * Update CellCenterFunctor.H * fill varnames and vector of functors at the same time * output rho_new, not rho_old * WarpX instance not needed here * add const * little bit more of reorganization * Travis CI: force 2 MPI processes only for numprocs > 2 * Use special FFT (PR #834) and new diagnostics (PR #844) in new tests * Improve Doxygen documentation * Move option do_current_correction from warpx to psatd * Fix path to output files for tests using new diagnostics * Fix additional paths to output files for new diagnostics * Add input paramter do_current_correction to documentation * Fix test Langmuir_multi_psatd_hybrid: do not plot divE * Remove input parameter amr.plot_int in tests using new diagnostics * Trigger failing source/style checks on Travis CI * Fix build error due to public include * Add missing const keywords * Change test names and corresponding analysis scripts * Improve Python script for analysis * Do not rename output files in old CI tests (without current correction) * Fix output file name prefix for some tests * Trigger Travis CI build after AMReX bug fix * Void commit: trigger Travis CI build * Fix some tests failing due to recent changes in master * Use new diagnostics for particle output correctly Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Print tolerance and error in Python analysis Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Print tolerance and error in Python analysis Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Improve documentation Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Fix EOL white spaces * Fix name of particle output variables Co-authored-by: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2020-03-30Remove compiler warnings (#843)Gravatar Edoardo Zoni 1-1/+2
* Fix compiler warnings with DIM=2 * Fix compiler warnings with USE_RZ=TRUE * Fix compiler warnings with USE_PSATD=TRUE and DIM=2 * Fix compiler warnings with USE_PSATD=TRUE and DIM=3 * Fix bug: discard only return value when calling DefineAndReturnParticleTile * Remove unused variables not triggering warnings
2020-02-27Implement div(E) diagnostics for spectral case (#720)Gravatar Edoardo Zoni 1-1/+8
* Implement div(E) diagnostics for spectral case. * split travis tests in bigger matrix * split more TravisCI tests, add electrostatic, use defaults values * typo * Move computation of div(E) to base class SpectralBaseAlgorithm. * need to split psatd too * consistent variable names and use function to avoid duplication * fix typo for qed tests * typo * also need to update run_tests.sg * Update copyright tags. * change matrix * Add test of div(E) vs rho/epsilon_0 in PML test. * SpectralFieldIndex: reuse memory slot for Bx when computing divE. Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-02-25Includes: Clean Up (#743)Gravatar Axel Huebl 1-2/+6
- Use `""` for WarpX-local includes - Order: WarpX `""`, AMReX `<>`, other third party includes `<>` - Add dir prefixes for WarpX Add order to includes by including from `Source/` onward and keeping directory prefixes of non-local includes for clarity.
2020-02-18Galilean PSATD with shift (#704)Gravatar Olga Shapoval 1-1/+4
* Read Galilean velocity * Prepare structures for Galilean solver * Started implementing Galilean equations * Analytical limits for X1, X2, X3, X4 coefficients added * Slight changes added * Added Galilean position pusher * Scale galilean velocity * Remove unneeded Abort * Fix Galilean pusher * Allocate Theta2 array * Fix definition of coefficients * Increase guard cells for Galilean * Add guard cell in particle exchange * Type corrected * v_gal added to warpx_current_deposition * v_gal added to WarpXParticleContainer.H * Bug fixed - update particle x-position over one time step * Fix issues with merge from dev * Preparation for merging dev into galilean. * Adding galilean shift * Implemented galilean shift * Changed method's name from GalileanShift to ShiftGalileanBoundary * Added doxygen string for ShiftGalileanBoundary * Removed never used method LowerCornerWithCentering * Removed temporary comments * Removed dt as a variable from DepositCharge method and its dependencies * Converted tab to spaces * Removed EOL white space * Add documentation and automated tests * Fix compilation error * Add automated test * Update automated test * Removed temporary used galilean shift * Removed temporary used particle's push for Galilean PSATD * Removed unused statement * Remove EOL white space. * Added zero shift for LowerCorner in RZ geometry * Minor changes to Galilean implementation * Modifications for GPU * Fix typo Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2020-01-27Automatically add copyright header with update_copyright.shGravatar Tools 1-0/+6
2019-05-02Start implementation of spectral PMLGravatar Remi Lehe 1-2/+2
2019-05-01Add virtual destructorGravatar Remi Lehe 1-0/+4
2019-05-01Add commentsGravatar Remi Lehe 1-1/+4
2019-04-30Use factory method for the solverGravatar Remi Lehe 1-0/+44