aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-07-08Averaged Galilean PSATD (#869)Gravatar Olga Shapoval 1-0/+125
* 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 * Added modifications for PICSAR galilean branch * Averaged coefficients added * 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 * Averaged fileds allocated on fine patch (Ex) * Preparation for merging dev into galilean. * remove TABs by hand * Removed a tab. * Redeclared v_galilean as a vector & related changed * Added an automated test * Moved v_galilean inside WarpX constructor * Added analysis script for the automated test * Changed name of the automated test to galilean_psatd * Added InitializeSpectralCoefficients method * Removed temporary comments * Averaged fields added to FiledGather * Added infinite order k[i] * Setting kx_mod( kz_mod) = 0 for index = nx/2(-nz/2) * 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 * Changing type of v_galilean from amrex::Vector to amrex::Array * Changed back ng_fft to be equal nox_fft * Changed v_galilean's type from amrex::vector to amrex::array * Removed type * Removed temporary comments * Added flag 'do_time_averaging' to swith from unaveraged to averaged Galilean PSATD * Updated doxygen * Small fix on using 'do_time_averaging' flag * Remove some commented Print statements * [skip ci] Further cleanup * Fix compilation * Guard cells update of the averaged E,B fields * Corrected included header file accordingly * Removed EOL * Removed EOL * Corrected path of the included header file * Updated choice of the spectral solver. * Cleanup. * use amrex::exp instead of std::exp * no backward FFT for avg fields if avg is off * Need to shift avg fields in MoveWindow * Further cleaning * Added 2D automated test for averaged PSATD * Added automated 2D and 3D tests for averaged PSATD * Removed comments * Added specifications for averaged Galilean PSATD tests. * Bug fixed - do FillBoundary of the averaged fields only if averaged is activated * Do shiftMF of the averaged fields only if fft_do_time_averaging=true * Add checksum json benchmarks for averaged Galilean PSATD * Add missing indentation * Add missing indentation * Updated automated analysis script * Updated diags period * Fixed bug: no backtransform of the averaged fields when WARPX_DIM_RZ is set * Fixed an uninitialized variable * Clean-up * Changed permissions for analysis_avg_*d.py * Compactified variables initialization via conditional assignment * Initialized averaged E_avg, B_avg fields * Updated automated test for 2D averaged galilean PSATD * Updated benchmark for 2D averaged galilean PSATD * Updated automated 2D averaged PSATD test & benchmark * Updated automated 3D averaged PSATD test & benchmark * Fixed typo * Updated benchmark averaged_galilean_3d_psatd * Initialize the averaged fields only if the averaged Galilean PSATD algorithm is enabled * Encreased time step for automated 3D averaged Galilean PSATD (to be equal c*dt=dz while dz/dx=3) * Updated 3D automated test: specified standard deviations `.ux_th, .uy_th, .uz_th` along each direction * Typo from the previous commit: enabled the averaged algorithm * Trying out another input parameters for 3D averaged automated test with v_gal = v_plasma * Update benchmark for previously added 3D averaged automated test * Update 2D averaged automated test and corresponding benchmark * Revert "Updated diags period" This reverts commit 7334729b05e96589e020c981efdb430ca095991d. * Cleanup: removed unwanted comment. * Added descriptions of the 2D and 3D automated tests for the averaged Galilean PSATD. * Updated value calculated via standard Galilean PSATD. * Encreased relative error tolerance for 3D automated test for the averaged Galilean PSATD. * Removed to avoid duplication since it already specified in the corresponding 2D/3D input scripts. * Removed unwanted empty lines * Added spaces after function's names * Removed unwanted empty line * Removed * Fixed indentation * Cleanup: removed #include <math.h> * Cleanup: removed empty lines and fixed indentation * Added 'AvgGalileanAlgorithm.cpp' to 'CMakeLists.txt' Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-06-12Add CMake Scripts (#759)Gravatar Axel Huebl 1-0/+6
* [skip travis] CMake: Add CMake Scripts This add CMake scripts for the CMake build system generator. * CUDA Support Achieved Fastest compile via: cmake .. -DENABLE_CUDA=ON -DCUDA_ARCH=6.0 * CMake: openPMD & QED * CMake: Dimension Support WarpX_DIMS=2,3,RZ * CCache & Out-of-Source Enable CCache when found and prevent in-root builds (in-source okay-ish). * CMake: CUDA C++ Language Minimum * Add new Files * CI: Migrate macOS to CMake * Fortran: Enable Because Transitive ... for now :) * CI: Migrate Linux ICC to CMake * CI: Verbose Make * CMake: Add Missing PSATD Sources * CMake: PSATD, Compute, Precision, Clean
2020-05-12Implement intervals parser for override_sync (#1008)Gravatar NeilZaim 1-2/+2
2020-05-11Generalize coarsening for MR (#945)Gravatar Edoardo Zoni 4-402/+9
* Move interpolation functions for MR to new folder * Preparatory clean-up of old namespace Average for future MR functions * Add interpolation for MR in new namespace Coarsen * Change file names Average.H/.cpp to Coarsen.H/.cpp * Remove Source/Parallelization/WarpXComm.H (not necessary anymore) * Coarsening for IO and MR in separate files * Clean up IO and MR Coarsen namespaces * Remove old interpolation functions (charge and current) * Void commit: trigger Travis CI build * Fix GPU build * Void commit: trigger Travis CI build * Add Python script to test interpolation points/weights in 1D * Move using-directives inside namespaces * Add Doxygen documentation and comments * Minor style changes * Improve new Python script
2020-05-05Switch costs to LayoutData (#970)Gravatar Michael E Rowan 1-13/+12
Cleanup Cleanup
2020-05-01Switch to new overloads of makeKnapSack, makeSFC w/ reduced comms (#955)Gravatar Michael E Rowan 1-60/+50
2020-04-26minor code changes to remove warnings when compiling with gcc DEBUG=TRUE (#950)Gravatar MaxThevenet 1-2/+2
2020-04-24Re-initialize diag functors after LoadBalance (#943)Gravatar Revathi Jambunathan 1-0/+2
* fixing bug to initialize CellCenterFunctor for Bx * new function to initialize diag functors called from regrid * add comments and clean * more cleaning * use of unique_ptrs to prevent memory leak * fixing eol * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * rho_new in PSATD defined using unique_ptr * initialize field functor per level * adding a comment for input lev * more comments * clearning * comments * space in function when called * fix eol Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-04-17Remove code for hybrid PSATD, as well as remaining Fortran interface file (#927)Gravatar Remi Lehe 2-37/+32
* Clean-up hybrid code * Remove Fortran interface
2020-04-15Redistribute only if the distribution mapping is changed (#911)Gravatar Michael E Rowan 1-2/+15
eol bool doRedistribute
2020-04-07Fix typos (#897)Gravatar NeilZaim 1-3/+3
2020-04-02Load balance efficiency threshold (#887)Gravatar Michael E Rowan 1-7/+54
* Efficiency safeguard Add load balance efficiency threshold Formatting Minor EOL [skip ci] Minor [skip ci] Fix * EOL
2020-04-02Includes: Only From `Source/` (#873)Gravatar Axel Huebl 2-3/+3
* Includes: Only From `Source/` Avoid adding all directories to include paths: - automatically structure includes more clearly, e.g. a util include with a short name is clearly seen as such - should have some small positive impact on compile time, since the compiler has to search less directories for an include file * Includes: Fix Non-Local Paths Add missing prefix relative to `Source/` for WarpX-local includes.
2020-03-31Make Build System: No Public Includes (#870)Gravatar Axel Huebl 1-4/+0
Remove the listing of all header-files from the Make-buildsystem. Listing public header files here tells the AMReX Makefile build system to install those in an install step after build. WarpX is currently not building a public library which can be consumed by users for their projects and only an executable.
2020-03-30Remove compiler warnings (#843)Gravatar Edoardo Zoni 1-8/+6
* 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-03-27Costs vector of (pointer to) vector (#829)Gravatar Michael E Rowan 1-57/+15
* [WIP] costs mf --> costs vector * [WIP] costs vector * [WIP] vector costs * formatting * makefile * [WIP] costs vector * [WIP] *= costs * wts do not need to divide by num cells * Tiling safety on CPU * Add tests * EOL * Remove unneeded input * Update Source/WarpX.H costs documentation Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Update timers with times only if user Timers update * warpx.-->WarpX:: * warpx.-->WarpX:: * warpx.-->WarpX:: * warpx.-->WarpX:: * warpx.-->WarpX:: * add dev synch * Update Regression/WarpX-tests.ini Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Delete inputs_loadbalance_costs_heuristic * Update and rename inputs_loadbalancecosts_timers to inputs_loadbalancecosts * Update WarpX-tests.ini Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-03-19Add costs reduced diagnostic (#790)Gravatar Michael E Rowan 1-6/+21
* WIP add reduced diagnostic for cost * WIP add costs reduced diagnostic * WIP costs reduced diagnostic * WIP costs reduced diags * Reduced costs * Reduced cost diagnostic * Reduced cost diagnostic * Reduced cost diagnostic * Reduced diagnostics costs * AMREX_ASSERT Works only with heuristic costs (for now) * GNUmakefile * Doc * Doc * Remove unneeded * Documentation * Space * Whitespace * AMREX_ASSERT * whitespace * Update authors * Member variable naming convention * Remove verbose if else * Remove verbose if else * PR review suggestions * whitespace * makefile * Change from Costs-->LoadBalanceCosts * Update docs * Put separator to beginning of header loop * Put separator to beginning of header loop * whitespace * Update documentation * WIP reduced diags * WIP costs RD to not modify WarpX object * WIP Documentation for ComputeCostsHeuristic * WIP whitespace * Add test for reduced_diagnostics_cost * whitespace * Test tolerance * Add a crucial closing bracket * plt_interval * minor * Analysis script * RD costs test * Comments * execute permissions * prtl-->particle * Remove indentation level; remove comments * Remove comments * remove whitespace
2020-03-11Added optional user defined number of guard cells to use with PSATD solver ↵Gravatar Olga Shapoval 1-14/+13
(#787) * Added optional user defined number of quard cells to use with PSATD solver. * Removed temporary comments. * Changed names nx_guard_psatd to psatd.nx_guard for consistency.
2020-03-06Remove old electrostatic code (#780)Gravatar Remi Lehe 1-5/+0
* Create inputs * fixed stuff * Make smaller test * Re-use EvolveEM for ES calculation * Use correct variable const_dt * Avoid out of bound and modify computation of electrostatic field * Update test file * Remove tab * Minor refactoring of space-charge calculation * Remove old electrostatic files * Fix electrostatic test * Rename WarpXEvolveEM to WarpXEvolve * Use if conditions instead of ifdef * Correct initialization of `do_electrostatic` * Fix static variable * Add documentation for `do_electrostatic` * Remove more electrostatic code Co-authored-by: dbizzozero <dbizzozero@users.noreply.github.com>
2020-03-02Heuristic load balance based on number of particles and number of cells (#737)Gravatar Michael E Rowan 1-7/+89
* Issue #713: Load Balance w.r.t. number of cells + particles README: Update Badged to `master` (#725) * README: Update Badged to `master` Update the badges to check the `master` branch as development branch. * Docs: More dev->master updates - release workflow - contribution guide link Galilean PSATD with shift (#704) * 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> [mini-PR] when a cufft error occurs, print a meaningful error message (#728) * added method to translate cufft errors * fixed style * bug fixing avoid duplicate tests and plot less often (#726) * avoid duplicate tests and plot less often * fix tests I broke when trying to save plotfiles doc install yt on Summit (#729) * doc install yt on Summit * eol Do not use local Redistribute for electrostatic solver (#731) Add Reset Random Seed Feature (#717) * Add ResetRandomSeed * Add doc * Modify and change location of the code. * Small fix * Try to fix an alert * Try to fix an alert * Modify based on suggestions * Use INT_MAX * Modify based on suggestions. * Modify based on suggestions. openPMD: warn if step is already written (#718) * making sure iterations are written at most once. * prints a warning when iteration is written more than once writting is not stopped * Fixed tabs * included <iostream> as requested by Axel Minor refactoring of space-charge calculation (#732) Improve clarity and documentation Minor Update GNUmakefile Update based on comments Update GNU Makefile Formatting Formatting Formatting Formatting Remove unneeded function Removed unneeded function Formatting Formatting Formatting Whitespace Minor Formatting Formatting Formatting Formatting Formatting Formatting Formatting whitespace Formatting Minor Formatting Remove unneeded template function Change import Minor Formatting Remove unused variable Formatting Update Source/WarpX.H Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Update Source/Parallelization/WarpXRegrid.cpp Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Remove `n_particles` and `n_cells` Update Source/WarpX.H Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Revert clear costs in case of edge case Update to use new load_balance_api in AMReX Tabs Minor * minor: indentation in Source/WarpX.H Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-02-27Comment/Remove Unused Parameters (#749)Gravatar Axel Huebl 2-1/+7
Use the `clang-tidy` pass `misc-unused-parameters` to remove unused parameter warnings. https://clang.llvm.org/extra/clang-tidy/checks/misc-unused-parameters.html) Committed as generic user so git does not credit the many lines to me: ```bash GIT_AUTHOR_NAME="Tools" GIT_AUTHOR_EMAIL="warpx@lbl.gov" \ git commit ```
2020-02-25Includes: Clean Up (#743)Gravatar Axel Huebl 2-7/+9
- 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-24Profiler wrapper to allow for cudaDeviceSynchronize (#738)Gravatar MaxThevenet 2-7/+7
* add warpx profiler wrapper * call WX profiler wrapper instead of BL * EOL and cleaning * add doc on profile syncs * do not use PROFILE macros in .H files * replace WX_PROFILE with WARPX_PROFILE and use bool instead of int * typo * this file shouldn't be there
2020-02-21Make the option to exchange all guard cells safer (#709)Gravatar MaxThevenet 3-45/+73
* make the option to exchange all guard cells safer * EOL **** * more consistent naming in guard cells test script
2020-02-18Galilean PSATD with shift (#704)Gravatar Olga Shapoval 2-3/+14
* 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-02-06Do not include 'WarpX_f.H' when not necessary.Gravatar Edoardo Zoni 1-1/+0
2020-01-27Automatically add copyright header with update_copyright.shGravatar Tools 9-2/+49
2020-01-22Interpolate Current: Fix Shadow WarningGravatar Axel Huebl 1-2/+2
Fix a variable shadowing warning in InterpolateCurrentFineToCoarse.
2020-01-14fix error MW 1 MR 1 subcycling 0Gravatar MaxThevenet 1-1/+3
2020-01-08delete EOL whitespaceGravatar MaxThevenet 1-1/+1
2020-01-08option to always exchange all guard cellsGravatar MaxThevenet 2-31/+45
2020-01-08Merge branch 'dev' into commGravatar MaxThevenet 1-2/+2
2020-01-03include Remi's suggestionsGravatar MaxThevenet 2-11/+40
2019-12-18Merge branch 'dev' into commGravatar MaxThevenet 1-2/+2
2019-12-18Make comments in header files Doxygen-readableGravatar MaxThevenet 1-2/+2
2019-11-26Removed the blank lines between the nLevels declarations and the for loops. ↵Gravatar levinem 1-1/+0
Moved the prefix operator change back to its original postfix unary position. Changed the int const changes back to their original const int declarations.
2019-11-21Made similar for loop condition updates in other files. Changed an int const ↵Gravatar levinem 1-2/+3
declaration to a const int declaration.
2019-11-19fix mege conflicts with devGravatar MaxThevenet 2-3/+3
2019-11-13Merge branch 'dev' into commGravatar MaxThevenet 2-4/+38
2019-11-12no guard cell exchanges for F with Yee solver. Remove print statementsGravatar MaxThevenet 3-4/+4
2019-11-12cleaning, and additional checksGravatar MaxThevenet 2-2/+5
2019-11-12Merge branch 'dev' into poissonGravatar Remi Lehe 2-1/+34
2019-11-12fix psatd: problem was in buffer cellsGravatar MaxThevenet 3-14/+5
2019-11-12Reuse existing interpolation functionsGravatar Remi Lehe 1-0/+33
2019-11-12Remove Fortran filesGravatar Remi Lehe 1-4/+5
2019-11-12Revert "move FillBoundaryF call to where needed, and allow for extra guard ↵Gravatar MaxThevenet 2-17/+2
cells" This reverts commit 89069ca7ba61dc34f9b392c75d0d4e2f3c2e0938.
2019-11-11Update DepositChargeGravatar Remi Lehe 2-7/+8
2019-11-11move FillBoundaryF call to where needed, and allow for extra guard cellsGravatar MaxThevenet 2-2/+17
2019-11-10pfew fix bug (that could lead to SEGFAULT), and indentationGravatar MaxThevenet 1-2/+3
2019-11-06exchange 1 extra guard cell when moving window and PMLsGravatar MaxThevenet 2-0/+5