aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/Geometry.py (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2020-04-21Adding m_ for member variables in new diags (#934)Gravatar Revathi Jambunathan 6-93/+92
* fixing bug to initialize CellCenterFunctor for Bx * diag_name renamed to m_diag_name * some more diag members made m_ * renaming member variable mf_avg to m_mf_output * fixing m_mf_output to mf_dst in comments
2020-04-21This macro needs to be updated due to a recent change in amrex (#935)Gravatar Andrew Myers 1-1/+1
2020-04-20Install Docs: Spack Env Update (#932)Gravatar Axel Huebl 5-91/+129
* Install Docs: Spack Env Update Update the installation docs, modernize Spack instructions for environments, list common macOS "cleanup" hint, document Python dependencies for `pywarpx`. * Apply suggestions from code review Add review comments :) Co-Authored-By: L. Diana Amorim <LDianaAmorim@lbl.gov> Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
2020-04-20increase tolerance for test PlasmaAccelerationBoost3d from 1.e-14 to 2.e-14 ↵Gravatar MaxThevenet 1-1/+1
(#930)
2020-04-17these need not be member variables (#929)Gravatar MaxThevenet 2-3/+4
2020-04-17fixing bug to initialize CellCenterFunctor for Bx (#928)Gravatar Revathi Jambunathan 1-0/+1
2020-04-17Enable openPMD standard for new diagnostics (#923)Gravatar MaxThevenet 11-37/+155
* first implementation of OpenPMD for new diags * fix OpenPMD output * typos and add doc * idef in make.package to avoid compiling OpenPMD CPP files when USE_OPENPMD=FALSE
2020-04-17Remove code for hybrid PSATD, as well as remaining Fortran interface file (#927)Gravatar Remi Lehe 21-1189/+88
* Clean-up hybrid code * Remove Fortran interface
2020-04-16need to import sys there (#924)Gravatar MaxThevenet 1-0/+1
2020-04-16remove cython from CI pip install list (#926)Gravatar MaxThevenet 1-1/+1
2020-04-16Particle Plotfile Filter (#724)Gravatar Yinjian Zhao 7-4/+190
* functors to select particles * add const * oops, typo * Update Source/Particles/Filter/FilterFunctors.H Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Apply suggestions from code review @ax3l Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * use SuperParticleType * New particle filter. * Fix bug * Add doc * Modify doc * Test * Modify based on suggestions * Change units of ux,uy,uz * Modify doc * Move to constructor * Minor * Update Source/Diagnostics/ParticleIO.cpp Co-Authored-By: Andrew Myers <atmyers2@gmail.com> * Minor * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Andrew Myers <atmyers2@gmail.com>
2020-04-16[mini] SingleParticle Docs (#894)Gravatar L. Diana Amorim 1-0/+6
* Added description of singleparticle particle injection style * Removed useless = sign * Fix typos * Spelling number instead of nr Co-Authored-By: Yinjian Zhao <yinjianzhao@lbl.gov> * Use capital letters in parameters.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Added position dimensions. Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Yinjian Zhao <yinjianzhao@lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-04-15Redistribute only if the distribution mapping is changed (#911)Gravatar Michael E Rowan 1-2/+15
eol bool doRedistribute
2020-04-15Abort when trying to compute div(E) with USE_PSATD_PICSAR=TRUE (#916)Gravatar Edoardo Zoni 1-0/+2
2020-04-15Diags with coarsening (#856)Gravatar Revathi Jambunathan 13-61/+240
* 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). * first implementation of Diags base classes * 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 * 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 * user can choose flush interval, same behavior as plot_int * 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 * 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 * Apply suggestions from code review Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * add a bunch of const * Move average_down overload used in WarpX to Average::FineToCoarse * Write Average::FineToCoarse for cell-centered and nodal data * Clean up Average::FineToCoarse (WARNING: interface changed) * Small clean-up * Replace AMREX_LAUNCH_HOST_DEVICE_LAMBDA with ParallelFor * parse input for diag_crse_ratio, mf_avg allocate, call FineToCoarse * eol fix * fix compilation error by adding bool variable * Small clean-up * er-organizing placement for diag_crse_ratio * calling member function for crse_Ratio * cleaning * Change name from Average::FineToCoarse to Average::Coarsen * Add dcomp to interface of Coarsen (different from scomp in general) * fixing RZ build error by adding diag_crse_ratio * Remove ASSERT (general input and output staggerings will be accepted) * Fix averaging from fine nodal to coarse centered * Clean up Doxygen in old Average::ToCellCenter (likely to be removed) * Intermediate layers Average::CoarsenLoop and Average::CoarsenKernel * Revert "Intermediate layers Average::CoarsenLoop and Average::CoarsenKernel" This reverts commit 91f2beaa20617a3fb25df536472b74899942ffc5. * Clean-up * Implement interpolation with coarsening (remove averaging) * Trigger failing source/style checks on Travis CI * merged EZ's coarsen_branch added comments about ba.coarsen * Add ASSERTS to check coarsening ratio and guard cells * clarified a comment * cleaning * Input/output MultiFabs can have different number of components * Call the correct coarsen and interpolate function * adding comments for the input parameter * Use AMReX built-in functions to check if MultiFab is coarsenable * fixing assert * EOL fix * changes based on suggestions in the review * EOL fix * Add Doxygen documentation for new functions * Copy starting from correct component in destination MultiFab * making crse_ratio IntVect a protected variable Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * removing this function since crse_ratio is protected Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * removing assert since it is temporaty only for this PR Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * crse_ratio is protected and can be accessed directly Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Pass IntVect to BoxArray method 'coarsenable' directly * Improve comments * Rename 'ratio' as 'crse_ratio' * Extending coarsening to divE and divB functors * Add _rt suffix when necessary * Improve comments * Use method 'toIntVect' instead of 'ixType' * New names: mf_src, arr_src, stag_src, mf_dst, arr_dst, stag_dst * More clean-up * adding coarsening capability to all diag_functors * fixing compilation errors * fix eol * Replace calls to ToCellCenter and fix bug with staggering of temporary BoxArray * Check if coarsenable on BoxArray with destination staggering * clean up * dix eol * typo in comment * Replace remaining calls to Average::ToCellCenter * Remove Average::ToCellCenter * Use amrex::Gpu::ManagedVector<int> to avoid issues on GPUs * Add default value IntVect(1) for coarsening ratio * Add ngrow to possibly fill guard cells too * Add ngrow to Doxygen documentation * Count number of points outside innermost loop * added capability for different user-defined lo and hi for diags * eol fix * Add number of guard cells required to previous ASSERT and force ngrow=0 with coarsening * cleaning up by moving multifab generation to a new function * eol fix * added a small description for function * Update Source/Diagnostics/Diagnostics.H incorporating comments for member variables Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Update Source/Diagnostics/Diagnostics.cpp adding comments for a function Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Apply suggestions from code review Thanks to Maxence Thevenet for the suggestions from review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * adding suggestion from code review directly * Apply suggestions from code review max to prevent negative values due to precision errors Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * incorporating suggestions and some comments from code review * adding assert to ensure crse ratio is power of 2 * fix eol * cleaned code and added refine,coarsen for ba definition * fix eol * minor fix * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * constexpr instead of const * add a comment clarifying ng=1 for tmp multifabs * eol fix Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-15 Add section on LibEnsemble (#912)Gravatar MaxThevenet 12-1/+1093
* Add LibEnsemble scripts to run ensembles of WarpX simulations Co-authored-by: jmlarson1 <jmlarson@anl.gov> Co-authored-by: shuds13 <shudson@anl.gov> * reformatting to pass most pep8 checks * Add more comments in LibEnsemble scripts * small typos * some renaming * unused files (merged together) * add doc section and cleaning * Apply suggestions from code review Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * one line per sentence for rst * fixes suggested by LGTM Python checks Co-authored-by: jmlarson1 <jmlarson@anl.gov> Co-authored-by: shuds13 <shudson@anl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-15Fix link to Contributing Guide in README (#917)Gravatar Yinjian Zhao 1-1/+1
* Fix link in README.md * Update README.md Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-04-15Remove Jaehong and add Yin to the Reg test mailing list (#921)Gravatar MaxThevenet 1-1/+1
2020-04-14Implementation of the RZ spectral solver (#816)Gravatar David Grote 26-15/+2040
* For diagnostics, added RZ modes of scalars, allowed different centerings * For RZ, generalized the centering of the inverse volume scaling of J and rho * Fixed spacing in ConstructTotalRZScalarField Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Added Python wrapper of charge density arrays * Add assert ensuring that Jr is never node-centered Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Small fixes to Python to better handle particle weights * Implementation of the RZ spectral solver * Removed k-space filtering code * Removed more k-space filter code from RZ spectral solver * For RZ spectral, added _rt for literals and cleaned up namespace use * In RZ spectral solver, cleaned up some member names * Update Docs/source/building/rzgeometry.rst Small fix for clarity. Co-Authored-By: Remi Lehe <remi.lehe@normalesup.org> * Update Source/Evolve/WarpXEvolve.cpp Fix macro indentation Co-Authored-By: Remi Lehe <remi.lehe@normalesup.org> * Update Source/Evolve/WarpXEvolve.cpp Fix more macro indentation Co-Authored-By: Remi Lehe <remi.lehe@normalesup.org> * Update Source/Evolve/WarpXEvolve.cpp Fix another macro indentation Co-Authored-By: Remi Lehe <remi.lehe@normalesup.org> * New diagnostics support RZ (#836) * 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). * first implementation of Diags base classes * 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 * 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 * user can choose flush interval, same behavior as plot_int * 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 * simplify code following Dave's comments * rename mode_avg to convertRZmodes2cartesian * Update CellCenterFunctor.H * fill varnames and vector of functors at the same time * WarpX instance not needed here * add const Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> * Add load balance options documentation (#842) * Add load balance options documentation * Add load balance options documentations * EOL * Replace tilebox by growntilebox (#849) * Updated Profiling information in running_cpp (#776) * Fixed link that was pointing to 404 error page * Added motivation for profiling and TINYPROFILERS explanation * Moved section on NERSC profiling to developers Docs * Update Docs/source/running_cpp/profiling.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Update tiny profilers suggestion Docs/source/running_cpp/profiling.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Fix typo Docs/source/running_cpp/profiling.rst Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Add a few additional diags (divE etc.) (#844) * 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). * first implementation of Diags base classes * 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 * 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 * user can choose flush interval, same behavior as plot_int * 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 * 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 * Apply suggestions from code review Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * add a bunch of const * make derived classes final Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Add Initial Distribution Test (#735) * Add Histogram * Add normalization * Add doc * Minor * Minor * Fix a bug * Add gaussian distribution test * Fix alert and change amr.plot_int * Add maxwell-boltzmann distribution test * Add maxwell-boltzmann distribution test * Add maxwell-boltzmann distribution test * Add maxwell-juttner * Minor * Typo * Minor * Minor * Add const * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Modify based on suggestions. * Add histogram name * Add bin values * Don't add histogram name * Modify read_raw_data.py * Add doc * Change ux,uy,uz units * Change ux,uy,uz units * Change if format * Save some variables * Change more * Minor * Fix a bug on GPU * Fix a bug on GPU * Add wrong species name abort * Minor doc * Change #include format * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Add const * Change to member variables * revert * Change units based on changes of PR#727 * merge * Add Gaussian position distribution test * Minor * Change based on suggestions * Use read_raw_data.py * Minor * Change to no normalization * Add more in doc * doc * doc * Use relative error * Don't divide by bin_size * Change based on suggestions Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Tests: Fix Bool Switch Typo OMP (#854) useOMP is 0 (False) or 1 (True) * Costs vector of (pointer to) vector (#829) * [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> * [mini-PR] Read species distribution from OPMD file (#847) * Added <species>.profile=external_file and .profile_file * Added description of input parameters to Docs * Changed from profile to injection option for external file * Fix typo in amrex abort message (due to copy paste) * Added the OpenPMD use amrex abort message * Minor fix - not sure how to remove EOL issue * Tried to add AddExternalFileBeam functon to PhysicalParticleContainer * Trued to fix EOL white space issue * Added read/print species name from OPMD file * Update Source/Initialization/PlasmaInjector.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.H Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * No need to include openPMD header yet * Fix EOL according to @ax3l's recommendation in #845 * Remove commented out AbortMessage Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Removed commented out part initialization (used only in branch for next PR) Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Added warning that this is WIP Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Changed function name to AddPlasmaFromFile * Removed AMReX warning from loop Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Ignore python build/dist and egg folders (#850) * Travis CI: set max numprocs=2 and do not overwrite (#860) * [mini-PR] Fix bug in Breit-Wheeler engine (#852) * fixed bug in BW engine * fixed bug * fixed bug * fixed bug * fixed bug * fixed bug * eliminate useless variable * updated test * updated inputfile * Updated tests * increase tolerance from .04 to .07 in QED 3D BW test * do plot pos_bw and ele_bw Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Documentation update - towards full SI (#301) * Added blank line after list. Changed characters in link to Q. H. Liu paper so hyoerlink works with sphinx-build 2.1.2. * Added line cut unintentionally. * Removed line added unintentionally. * Same as before. * Same as before, but hopefully successfully * Same as before, but hopefully successfully * Minor changes to description of PWFA example run * Revert "Minor changes to description of PWFA example run" This reverts commit a4d7fa969c906959b018efe683a3e585cbd741f9. * Revert "Profiler wrapper to allow for cudaDeviceSynchronize (#738)" This reverts commit bbefc3dad687f4370afd5bc85386d983201cb321. * Revert "Revert "Minor changes to description of PWFA example run"" This reverts commit 965982d35361ff54d0ad10101ffc31605117e5ac. * Revert "Minor changes to description of PWFA example run" This reverts commit a4d7fa969c906959b018efe683a3e585cbd741f9. * I am making a huge mess with merging * Minor changes to description of PWFA example run * Added explanation PWFA simulation section * Re-structuring. Adding sections for each choice. * Minor fix to note * Minor changes to text * Time step description + fixed line length * Added FDTD and CKC selection * Added max time step calculations * Trying to fix EOL issue * Added mesh refinement and moving window * Fixed minor issues * Fix EOL issues again * Fixed typo - auxiliary Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Diana Amorim <diana@henrivincenti.dhcp.lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Remove compiler warnings (#843) * 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 * [mini-PR] Fix energy calculation for photons in reduced diagnostics (#861) * fix energy calculation for photons * fixed typo and mada calculation clearer * added photon particles in reduced diags test * Update Source/Diagnostics/ReducedDiags/ParticleEnergy.cpp Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Update Source/Diagnostics/ReducedDiags/ParticleEnergy.cpp Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Port rigid injection to the gpu (#862) * port rigid injection to the gpu * eol * Apply suggestions from code review Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * define csqi Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * Added blocking factor to 2d and RZ geometries (#864) * doc: fix formatting for ascent yaml examples (#865) * [mini-PR] Clarifying ionizable particle charge (#863) * Added documentation note on ionization particle charge * Added correct charge of ion to be ionized * Corrected multiplication symbol Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Testing doxygen issue * Charge correction only to ionizable species * Trying to fix doxygen url fetch issue Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * In HankelTransform, added explicit matrix multiply for GPU * In RZ spectral solver, update setval to be on device * Removed CEXE_headers from FieldSolver/SpectralSolver/Make.package * In HankelTransform, added check of the Bessel root finder * Updated includes to RZ spectral solver * Added comments on how Hankel transform matrix is calculated * Added more comments to Hankel transform calculation * For RZ spectral solver, cleaned up naming and add subdirectory for Hankel transform files * Cleaned up code in PsatdAlgorithmRZ.cpp * Updated comment for fields in SpectralFieldDataRZ.cpp * Changed HankelTransformer to MultiSpectralHankelTransformer * Updates comments in RZ spectral solver * Removed code for k-space filtering that will be added in a later PR * For RZ spectral solver, passed lev in * Fixed comment in SpectralFieldDataRZ.cpp Co-authored-by: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: Michael E Rowan <38045958+mrowan137@users.noreply.github.com> Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Yinjian Zhao <yinjianzhao@lbl.gov> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Luca Fedeli <luca.fedeli@cea.fr> Co-authored-by: Diana Amorim <diana@henrivincenti.dhcp.lbl.gov> Co-authored-by: Andrew Myers <atmyers@lbl.gov> Co-authored-by: Cyrus Harrison <cyrush@llnl.gov>
2020-04-13Abort code if `do_pml` is used in cylindrical geometry (#909)Gravatar Remi Lehe 3-1/+6
2020-04-13Add tolerance for single-precision PSATD test (#913)Gravatar MaxThevenet 1-1/+1
2020-04-13Yt release (#910)Gravatar MaxThevenet 3-19/+4
* No need for custom install of yt anymore * conda install yt form wheel to accelerate CI * Apply suggestions from code review Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-10Interpolation with coarsening for general staggering (#853)Gravatar Edoardo Zoni 6-93/+213
* 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). * first implementation of Diags base classes * 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 * 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 * user can choose flush interval, same behavior as plot_int * 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 * 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 * Apply suggestions from code review Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * add a bunch of const * Move average_down overload used in WarpX to Average::FineToCoarse * Write Average::FineToCoarse for cell-centered and nodal data * Clean up Average::FineToCoarse (WARNING: interface changed) * Small clean-up * Replace AMREX_LAUNCH_HOST_DEVICE_LAMBDA with ParallelFor * Small clean-up * Change name from Average::FineToCoarse to Average::Coarsen * Add dcomp to interface of Coarsen (different from scomp in general) * Remove ASSERT (general input and output staggerings will be accepted) * Fix averaging from fine nodal to coarse centered * Clean up Doxygen in old Average::ToCellCenter (likely to be removed) * Intermediate layers Average::CoarsenLoop and Average::CoarsenKernel * Revert "Intermediate layers Average::CoarsenLoop and Average::CoarsenKernel" This reverts commit 91f2beaa20617a3fb25df536472b74899942ffc5. * Clean-up * Implement interpolation with coarsening (remove averaging) * Trigger failing source/style checks on Travis CI * Add ASSERTS to check coarsening ratio and guard cells * Input/output MultiFabs can have different number of components * Use AMReX built-in functions to check if MultiFab is coarsenable * Add Doxygen documentation for new functions * Copy starting from correct component in destination MultiFab * Pass IntVect to BoxArray method 'coarsenable' directly * Improve comments * Rename 'ratio' as 'crse_ratio' * Add _rt suffix when necessary * Improve comments * Use method 'toIntVect' instead of 'ixType' * New names: mf_src, arr_src, stag_src, mf_dst, arr_dst, stag_dst * More clean-up * Replace calls to ToCellCenter and fix bug with staggering of temporary BoxArray * Check if coarsenable on BoxArray with destination staggering * Replace remaining calls to Average::ToCellCenter * Remove Average::ToCellCenter * Use amrex::Gpu::ManagedVector<int> to avoid issues on GPUs * Add default value IntVect(1) for coarsening ratio * Add ngrow to possibly fill guard cells too * Add ngrow to Doxygen documentation * Count number of points outside innermost loop * Add number of guard cells required to previous ASSERT and force ngrow=0 with coarsening Co-authored-by: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-10Refactor AMReX IDs to Global ID (#906)Gravatar Axel Huebl 2-12/+28
This PR exposes the AMReX AoS `.id` and `.cpu` to global particle ID conversion for general usage in WarpX. The generated particle ID is unique per particle in the sim. Also replaces the old implementation with a well-documented bitshift. The old implementation used C-style union type punning, via access of the inactive union member, which is technically undefined behavior (UB) in C++ (and is known to crash on some platforms, e.g. MSVC). Although some popular compilers implemented this C feature as an extension, it is never good to rely on a specific interpretation of UB on a certain platform.
2020-04-10Reorganize Tools/ into subfolders, in prevision of LibEnsemble scripts (#908)Gravatar MaxThevenet 40-78/+23
* reorganize Tools/ into subfolders, in prevision of LibEnsemble scripts * Oops, also need to let git know some files have been deleted * caps for consistency * few paths to fix
2020-04-10Revert "Breathe: <4.15.0 (#901)" (#905)Gravatar Axel Huebl 1-1/+1
This reverts commit 535575b27e9874da93bf961bf184245747a1c96c.
2020-04-09Travis: openPMD-api Compile (#697)Gravatar Axel Huebl 2-1/+13
* Travis: openPMD-api Compile Test openPMD I/O builds. Adds no input files for runtime checks yet. * openPMD: exclude for Carstesian for now Disable until non-MPI imports for MPI-enabled lib are available.
2020-04-09[Mini] PML ncell check only along active axes (#871)Gravatar David Grote 1-2/+10
* With PMLs, only check ncell along axis where PMLs are used * Update Source/BoundaryConditions/PML.cpp to check isPeriodic Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Bug fix in BoundaryConditions/PML.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-09Breathe: <4.15.0 (#901)Gravatar Axel Huebl 1-1/+1
RTD does not yet provide Sphinx 3 but the Breathe extension in version 4.15.0+ requires Sphinx 3. Ref.: https://github.com/michaeljones/breathe/issues/495
2020-04-08Reduced Diags: Fix 2D Emittance Label (#900)Gravatar Axel Huebl 1-1/+1
Fix bug introduced in #880.
2020-04-08Loadbalance efficiency threshold documentation (#889)Gravatar Michael E Rowan 2-1/+17
* Efficiency threshold documentation Add guidance for choice of threshold value EOL Update Docs/source/running_cpp/parameters.rst Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> Update Docs/source/running_cpp/parameters.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Update Source/WarpX.H Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Update Docs/source/running_cpp/parameters.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * Update Docs/source/running_cpp/parameters.rst Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-04-08no OpenMP for GPU tests on Garuda (#899)Gravatar MaxThevenet 1-1/+1
2020-04-07Make sure single-precision compiles on GPU (#898)Gravatar MaxThevenet 2-7/+26
* make sure single-precision compiles on GPU * add single-precision regression test on Garuda
2020-04-07Fix typos (#897)Gravatar NeilZaim 3-7/+7
2020-04-07[mini] Define and use enum to address PML components (#896)Gravatar Remi Lehe 2-28/+50
* Define and use enum to address PML components * Change import statement
2020-04-06Contributing Guide: Add to Sphinx (#888)Gravatar Axel Huebl 6-158/+196
* Contributing Guide: Add to Sphinx - port to `.rst` from `.md` - include in manual - change line limit to 100 chars - recommend EOL/Tab conversions in editors - update small details on includes * Update with suggestions. Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov> Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
2020-04-06Charge in BeamRelevant Redu. Diagnostic (#880)Gravatar Axel Huebl 4-8/+39
Adds the beam parameter "charge" to our reduced diagnostics, type "BeamRelevant".
2020-04-06Add space before bracket for function declaration (#886)Gravatar MaxThevenet 2-59/+70
* add space before bracket for function declaration * space before bracket for function definition
2020-04-06replace ixType().ixType() with ixType().toIntVect() for clarity (#895)Gravatar MaxThevenet 7-27/+27
2020-04-03[mini-PR] fix test for QED - Breit Wheeler, optical depth evolution (#891)Gravatar Luca Fedeli 1-1/+1
* set useOMP=0 for QED BW optical depth evolution test * bugfixing
2020-04-03lower tolerance of Langmuir_multi_single_precision (#890)Gravatar MaxThevenet 1-1/+1
2020-04-03Avoid i%1 in a lambda, gives compiler segfault (#892)Gravatar MaxThevenet 1-6/+11
* avoid i%1 in a lambda, gives compiler segfault * add 1 comment * Update Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp * explicit capture by value * Update Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-03avoid dumping particle magnetic field to output in Python_PlasmaAcceleration ↵Gravatar MaxThevenet 1-2/+17
(#893) Co-authored-by: David Grote <dpgrote@lbl.gov>
2020-04-02Load balance efficiency threshold (#887)Gravatar Michael E Rowan 3-7/+73
* Efficiency safeguard Add load balance efficiency threshold Formatting Minor EOL [skip ci] Minor [skip ci] Fix * EOL
2020-04-02increase tolerance for single-precision test (#885)Gravatar MaxThevenet 1-1/+1
2020-04-02GitHub Action: Check Tests on OSX (#882)Gravatar Axel Huebl 7-22/+48
* [skip travis] Style Action: Failsafe Properly add `set -eu -o pipefail` to all scripts. * [skip travis] hasEOLwhiteSpace: OSX Compatible * [skip travis] hasNonASCII: OSX Compatible * hasTabs: OSX Compatible * Style Checks: Exclude Docs (partly)
2020-04-02Badge for Travis-CI: Update Link (#884)Gravatar Axel Huebl 1-2/+2
* Badge for Travis-CI: Update Link Readme: Update the link for Travis-CI status on master. * Badge: C++14 We are a C++14 code now :)
2020-04-02Includes: Only From `Source/` (#873)Gravatar Axel Huebl 41-59/+32
* 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-04-02Periodic, single-box FFT (#881)Gravatar Remi Lehe 8-14/+67
* Implement periodic-single box option for spectral * Fix out-of-bound in the periodic, single-box case * Add documentation for periodic_single_box_fft
2020-04-01Fix: read_raw_data Tool for Reduced (#879)Gravatar Axel Huebl 1-1/+4
The read_raw_data python scripts were not consistently returning arrays. This fixes it, making sure that both a reduced diagnostics that has only been run for one step (e.g. in a test case) as well as for arbitrary many steps returns a dict of arrays. Seen with BeamRelevant reduced diagnostics.