-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assert incorrect wavefront size #3776
Assert incorrect wavefront size #3776
Conversation
…the result immediately on the CPU
…es like splitting.
- modify interface of new function 'BuildBufferMasksInBox'; - add brief Doxygen documentation.
Fix a typo of BeamRelevant reduced diagnostic.
Fortran to C++: build buffer masks
…arpX into reduced_diags2
doc and helper function to read reduced diags
* 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 <[email protected]> Co-authored-by: Axel Huebl <[email protected]>
* 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 <[email protected]> * Added Python wrapper of charge density arrays * Add assert ensuring that Jr is never node-centered Co-Authored-By: MaxThevenet <[email protected]> * 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 <[email protected]> * Update Source/Evolve/WarpXEvolve.cpp Fix macro indentation Co-Authored-By: Remi Lehe <[email protected]> * Update Source/Evolve/WarpXEvolve.cpp Fix more macro indentation Co-Authored-By: Remi Lehe <[email protected]> * Update Source/Evolve/WarpXEvolve.cpp Fix another macro indentation Co-Authored-By: Remi Lehe <[email protected]> * New diagnostics support RZ (AMReX-Codes#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 <[email protected]> * Add load balance options documentation (AMReX-Codes#842) * Add load balance options documentation * Add load balance options documentations * EOL * Replace tilebox by growntilebox (AMReX-Codes#849) * Updated Profiling information in running_cpp (AMReX-Codes#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 <[email protected]> * Update tiny profilers suggestion Docs/source/running_cpp/profiling.rst Co-Authored-By: MaxThevenet <[email protected]> * Fix typo Docs/source/running_cpp/profiling.rst Co-authored-by: MaxThevenet <[email protected]> * Add a few additional diags (divE etc.) (AMReX-Codes#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 <[email protected]> * add a bunch of const * make derived classes final Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Axel Huebl <[email protected]> * Add Initial Distribution Test (AMReX-Codes#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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Tests: Fix Bool Switch Typo OMP (AMReX-Codes#854) useOMP is 0 (False) or 1 (True) * Costs vector of (pointer to) vector (AMReX-Codes#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 <[email protected]> * 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 <[email protected]> * Delete inputs_loadbalance_costs_heuristic * Update and rename inputs_loadbalancecosts_timers to inputs_loadbalancecosts * Update WarpX-tests.ini Co-authored-by: MaxThevenet <[email protected]> * [mini-PR] Read species distribution from OPMD file (AMReX-Codes#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 <[email protected]> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <[email protected]> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <[email protected]> * Update Source/Particles/PhysicalParticleContainer.H Co-Authored-By: Axel Huebl <[email protected]> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <[email protected]> * No need to include openPMD header yet * Fix EOL according to @ax3l's recommendation in AMReX-Codes#845 * Remove commented out AbortMessage Co-Authored-By: MaxThevenet <[email protected]> * Removed commented out part initialization (used only in branch for next PR) Co-Authored-By: MaxThevenet <[email protected]> * Added warning that this is WIP Co-Authored-By: MaxThevenet <[email protected]> * Changed function name to AddPlasmaFromFile * Removed AMReX warning from loop Co-Authored-By: MaxThevenet <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: MaxThevenet <[email protected]> * Ignore python build/dist and egg folders (AMReX-Codes#850) * Travis CI: set max numprocs=2 and do not overwrite (AMReX-Codes#860) * [mini-PR] Fix bug in Breit-Wheeler engine (AMReX-Codes#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 <[email protected]> * Documentation update - towards full SI (AMReX-Codes#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 (AMReX-Codes#738)" This reverts commit bbefc3d. * 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 <[email protected]> Co-authored-by: Diana Amorim <[email protected]> Co-authored-by: MaxThevenet <[email protected]> * Remove compiler warnings (AMReX-Codes#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 (AMReX-Codes#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 <[email protected]> * Update Source/Diagnostics/ReducedDiags/ParticleEnergy.cpp Co-Authored-By: MaxThevenet <[email protected]> Co-authored-by: MaxThevenet <[email protected]> * Port rigid injection to the gpu (AMReX-Codes#862) * port rigid injection to the gpu * eol * Apply suggestions from code review Co-Authored-By: MaxThevenet <[email protected]> * define csqi Co-authored-by: MaxThevenet <[email protected]> * Added blocking factor to 2d and RZ geometries (AMReX-Codes#864) * doc: fix formatting for ascent yaml examples (AMReX-Codes#865) * [mini-PR] Clarifying ionizable particle charge (AMReX-Codes#863) * Added documentation note on ionization particle charge * Added correct charge of ion to be ionized * Corrected multiplication symbol Co-Authored-By: MaxThevenet <[email protected]> * Testing doxygen issue * Charge correction only to ionizable species * Trying to fix doxygen url fetch issue Co-authored-by: MaxThevenet <[email protected]> * 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 <[email protected]> Co-authored-by: Remi Lehe <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Michael E Rowan <[email protected]> Co-authored-by: NeilZaim <[email protected]> Co-authored-by: L. Diana Amorim <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Yinjian Zhao <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Luca Fedeli <[email protected]> Co-authored-by: Diana Amorim <[email protected]> Co-authored-by: Andrew Myers <[email protected]> Co-authored-by: Cyrus Harrison <[email protected]>
* Fix link in README.md * Update README.md Co-authored-by: MaxThevenet <[email protected]>
* Add LibEnsemble scripts to run ensembles of WarpX simulations Co-authored-by: jmlarson1 <[email protected]> Co-authored-by: shuds13 <[email protected]> * 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 <[email protected]> * one line per sentence for rst * fixes suggested by LGTM Python checks Co-authored-by: jmlarson1 <[email protected]> Co-authored-by: shuds13 <[email protected]> Co-authored-by: Axel Huebl <[email protected]>
* 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 <[email protected]> * 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 <[email protected]> * removing this function since crse_ratio is protected Co-Authored-By: MaxThevenet <[email protected]> * removing assert since it is temporaty only for this PR Co-Authored-By: MaxThevenet <[email protected]> * crse_ratio is protected and can be accessed directly Co-Authored-By: MaxThevenet <[email protected]> * 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 <[email protected]> * Update Source/Diagnostics/Diagnostics.cpp adding comments for a function Co-Authored-By: MaxThevenet <[email protected]> * Apply suggestions from code review Thanks to Maxence Thevenet for the suggestions from review Co-Authored-By: MaxThevenet <[email protected]> * adding suggestion from code review directly * Apply suggestions from code review max to prevent negative values due to precision errors Co-Authored-By: MaxThevenet <[email protected]> * 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 <[email protected]> * constexpr instead of const * add a comment clarifying ng=1 for tmp multifabs * eol fix Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: MaxThevenet <[email protected]> Co-authored-by: Axel Huebl <[email protected]>
…#911) eol bool doRedistribute
* Added description of singleparticle particle injection style * Removed useless = sign * Fix typos * Spelling number instead of nr Co-Authored-By: Yinjian Zhao <[email protected]> * Use capital letters in parameters.rst Co-Authored-By: MaxThevenet <[email protected]> * Added position dimensions. Co-Authored-By: MaxThevenet <[email protected]> Co-authored-by: Yinjian Zhao <[email protected]> Co-authored-by: MaxThevenet <[email protected]>
* functors to select particles * add const * oops, typo * Update Source/Particles/Filter/FilterFunctors.H Co-Authored-By: Axel Huebl <[email protected]> * Apply suggestions from code review @ax3l Co-Authored-By: Axel Huebl <[email protected]> * 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 <[email protected]> * Minor * Apply suggestions from code review Co-Authored-By: MaxThevenet <[email protected]> Co-authored-by: MaxThevenet <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Andrew Myers <[email protected]>
…file (AMReX-Codes#927) * Clean-up hybrid code * Remove Fortran interface
* 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
* 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 <[email protected]> Co-authored-by: L. Diana Amorim <[email protected]>
* 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
* Update Python documentation * Added numpy as a requirement for the Python installation * Cleaned EOL white space in Python documentation * Add periodictable to the Python packages required Co-Authored-By: Axel Huebl <[email protected]> * Added periodictable to required packages for pure Python version Co-authored-by: Axel Huebl <[email protected]>
* Add hostname to reduced diags EOL Fix rd loadbalancecosts test AMREX_USE_MPI EOL move macro to source file Review changes eol add GPU ID if running on GPU eol Typo in comment use vectors to get rid of C-style memory management Fix for test eol * Compute number of unique box data fields in analysis script * analysis script * Use amrex Tokenize to split string * Update WarpXUtil.cpp * Update WarpXUtil.H
* add contact us section to doc * Update Docs/source/contact_us.rst Co-Authored-By: L. Diana Amorim <[email protected]> * Update Docs/source/contact_us.rst Co-authored-by: L. Diana Amorim <[email protected]>
|
||
# Below is WarpX specific code to check the results. | ||
import pywarpx | ||
from pywarpx.fields import * |
Check notice
Code scanning / CodeQL
'import *' may pollute namespace Note
pywarpx.fields
|
||
|
||
# Below is WarpX specific code to check the results. | ||
import pywarpx |
Check notice
Code scanning / CodeQL
Module is imported with 'import' and 'import from' Note
# documentation root, use os.path.abspath to make it absolute, like shown here. | ||
# | ||
import os, sys, subprocess | ||
import sphinx_rtd_theme |
Check notice
Code scanning / CodeQL
Unused import Note
|
||
do_plot = False | ||
if do_plot: | ||
import matplotlib.pyplot as plt |
Check warning
Code scanning / CodeQL
Unreachable code Warning
|
||
do_plot = False | ||
if do_plot: | ||
import matplotlib.pyplot as plt |
Check warning
Code scanning / CodeQL
Unreachable code Warning
for sp in spec_names]) | ||
|
||
for cc in zip(cases, res_mom): | ||
init_gamma = gamma(cc[0].init_mom) |
Check notice
Code scanning / CodeQL
Unused local variable Note test
# Read data from back-transformed diagnostics | ||
snapshot = './lab_frame_data/snapshots/snapshot00001' | ||
header = './lab_frame_data/snapshots/Header' | ||
allrd, info = read_raw_data.read_lab_snapshot(snapshot, header) |
Check notice
Code scanning / CodeQL
Unused global variable Note
# Read data from back-transformed diagnostics | ||
snapshot = './lab_frame_data/snapshots/snapshot00001' | ||
header = './lab_frame_data/snapshots/Header' | ||
allrd, info = read_raw_data.read_lab_snapshot(snapshot, header) |
Check notice
Code scanning / CodeQL
Unused global variable Note
Summary
Add assert checking wavefront size for HIP build. It can hopefully alert to problems and fail loudly for users trying to run on Navi cards, rather than produce incorrect simulation results (until the underlying issue is fixed). I opened an internal ticket that I hope will get the underlying issue fixed soon.
Additional background
AMReX users reported to AMD incorrect results with Navi cards.
I think there is a bug with the compiler's definition of
__AMDGCN_WAVEFRONT_SIZE
when compiling for target gfx10XX, and find it disagrees withwarpSize
that one can check at runtime.For example, compiling for target gfx1030 and running on Navi card (with an up-to-date ROCm):
For Navi card, I got output
warpSize = 32 --- __AMDGCN_WAVEFRONT_SIZE = 64
, but of course expected 32 for both.Strangely, in an actual application compiled for target gfx1030, all the kernel metadata says the wavefront size is 32 (even with
__AMDGCN_WAVEFRONT_SIZE
apparently 64), so when manually overriding the wavefront size to 32 in AMReX built for target gfx1030, the simulation results seemed convergent to gfx9XX results. So maybe that wrong value is not polluting the kernel compilation.Checklist
The proposed changes: