forked from ECP-WarpX/WarpX
-
Notifications
You must be signed in to change notification settings - Fork 3
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
HS development merge 240522 #141
Merged
RevathiJambunathan
merged 122 commits into
RevathiJambunathan:HarrisSheetinX
from
hklion:HSdevmerge_240522
May 22, 2024
Merged
HS development merge 240522 #141
RevathiJambunathan
merged 122 commits into
RevathiJambunathan:HarrisSheetinX
from
hklion:HSdevmerge_240522
May 22, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* AMReX: Weekly Update * pyAMReX: Weekly Update
…WarpX#4772) * Adding hyper-resistivity to generalized ohms law hybrid solver. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review Style changes to clean up Laplacian operators. Co-authored-by: Roelof Groenewald <[email protected]> * Removed extra arguments for triggering calculation of hyper_resistivity. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <[email protected]>
* Doc: Update libmamba Usage in Conda * Fix: The configuration key changed slightly. * Cosmetic: Adding `-y` ensures one can execute the whole block at once. * `solver` is the new (conda>=23) key! * Fix: Double backticks for verbatim
* Zenodo: Add Justin & Kale as Co-Authors Adding Justin and Kale as a co-author of WarpX. Thank you for your contributions! ❇️ * Update Order in Kale's Affiliation * Update Justin MN
…otential is specified (ECP-WarpX#4723) * Compute electrostatic fields at the beginning of EM simulations, if phi is specified * Fix tests * Add documentation * Update test to include initial electrostatic field * Avoid issue in CI * Set the potential to be uniform * Update checksum * Update automated test * Update checksum * Add warning message * Update Source/WarpX.cpp * Update Source/WarpX.cpp * Update Source/WarpX.cpp Co-authored-by: Roelof Groenewald <[email protected]> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Roelof Groenewald <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…dary (ECP-WarpX#4778) * Better boundary error message * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* CI: `isort` + `black` compatibility Avoid that these tools follow slightly different rules. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Remove Unused Import Co-authored-by: Luca Fedeli <[email protected]> --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Luca Fedeli <[email protected]>
…ticleContainer` (ECP-WarpX#4780) * Define function to define tiles, for a NamedComponentParticleContainer * Call parent class in WarpXParticleContainer
* update ml workflow for pasc revisions * update pasc reference: arxiv link+add andrew * update figures * Update Bibtex * refactor * clean duplication in references * add explicit reference to Zenodo archive
* add UB sanitizer CI test * fix bug * use fno-sanitize-recover=all * fix bug * rename sanitizers -> UB sanitizer * fix issue found with UB sanitizer * change compilation options * return early if np <= 0
…X#4785) * ApplyPECto Rho and J if particle boundary is reflecting * rename functions * call reflecting J/rho if particleBoundary is reflecting/field boundary is PEC * semicolon * semicolong * fix comments
* initial commit * added support for BW table * table generator is working * added reader * fixed cmake issue * add test * fixed bug * fixed bug * add table generation to test * add terminal newline * added diff test * increase precision of table reader * fixed bug in table reading * fixed bug * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * correct test * added documentation * complete test * modified CI test * fixed issues * fix bug * Update .github/workflows/ubuntu.yml Co-authored-by: Axel Huebl <[email protected]> * Update Docs/source/usage/workflows/generate_lookup_tables_with_tools.rst Co-authored-by: Axel Huebl <[email protected]> * fixed bug * add entry in cmake.rst * using script * fixed bug * change permission of script * removed 'false' from script * add newline at the end of a file * added new logic to control OpenMP support for lookup table generation * document cmake parameter * fixed trailing space * Frontier/Crusher: rocFFT Cache Control (ECP-WarpX#3366) rocFFT in ROCm 5.1+ tries to [write to a cache](https://rocfft.readthedocs.io/en/latest/library.html#runtime-compilation) in the home area by default. This does not scale. * `SyncCurrent`: Split Filter and Sum over Guard Cells (ECP-WarpX#3222) * Split ApplyFilterandSumBoundaryJ * Fix Bug * Fix Bug * Fix CI * Pass Correct Periodicity to SumBoundaryJ * Use ApplyFilterJ and SumBoundaryJ w/ MR * Fix Bug (duplicate loops over dimensions) * Use ApplyFilterJ and SumBoundaryJ w/ MR * Clean up Variable Names in ApplyFilterJ * Increase Guard Cells of All MultiFabs, Not Only J * Reset CI Checksums * Update Docs/source/usage/workflows/generate_lookup_tables_with_tools.rst Co-authored-by: Neïl Zaim <[email protected]> * Update Tools/QedTablesUtils/Source/ArgParser/QedTablesArgParser.H Co-authored-by: Neïl Zaim <[email protected]> * remove wrong comment * improve documentation * updated test * fix bug * use the right executable to run test simulation * FIX BUG * Build & Test Cleanups --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Neïl Zaim <[email protected]>
* JeFunctor to output electron current by subtracting ampere's current from total current in hybrid solver * add support for electron current diagnostic if hybrid solver is being used * add documentation for deposit_current parameter * add solver parameter for FieldDiagnostic passed in from Simulation object to help add in electron current diagnostics * Fix compilation errors * fix indentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix include statement * always define a Je_fields_list in picmi rather than adding extra solver-dependent logic * fix typo * Unify signature in H/cpp * Add to Build Scripts * define m_deposit_current in header file * fix InterpolateMFForDiag function call with bool flag not to sum up modes as Hybrid-PIC only works for m=0 in RZ right now * calculate electron current for every dimension, bug fix * fix namespace issue, single dimension multifab (direction passed in when creating the Functor) * use member function to access private member var * semicolon * change m_dir to be an int from const int in declaration * fix attempted indexing on FAB * fix Je indexing in LinComb * added external current to electron current diag, code cleanup * output JeFunctor as a field_functor initialization loop * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix RZ openPMD functor checks for Je * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix quote issue * rename je to j_e to work with string parsing in converting from WarpX to OpenPMD * fix clang-tidy issue * remove comment * Reworked electron current to be a displacement current diagnostic, only implemented for HybridPICSolver right now. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update test to output new displacement current field * clang tidy fixes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * renamed picmi field quantity to J_displacement, comment clean-up, add in convert2RZmodes functionality. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update docs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix bug where old naming convention was left behind, plus a missing comma * Apply suggestions from code review Reduce code duplication Co-authored-by: Roelof Groenewald <[email protected]> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove leftover comment block * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review fix skeleton code and comment * temporarily initialize curlB as nullptr in non-hybrid solver case * fix Jext staggering for subtraction * prepare for checksum * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update var name for checksum * fix OMP bug where tiling was attempted over uninitialized data * commenting out external current functionality to debug failing CI test * update checksum values * corrected staggering IntVects passed into interp function --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Avigdor Veksler <[email protected]> Co-authored-by: Roelof Groenewald <[email protected]>
* Update spacecraft charging test * Apply suggestions from code review * Apply suggestions from code review * Make calculation of `rho_integral` faster * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Examples/Physics_applications/spacecraft_charging/PICMI_inputs_rz.py * Update checksum --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Docs: update hybrid-pic description and parameters * also update docstring in picmi
* AMReX: Weekly Update * pyAMReX: Weekly Update * AMReX: Weekly Update --------- Co-authored-by: roelof-groenewald <[email protected]>
* Fix a number of compilation warnings * remove `m_` from non-member variables
* Clean up BeamRelevant with TypeMultiplier The BeamRelevant reduced diagnostics had a lot of code where `amrex::ReduceOps` were constructed from lists of types. It is hard to see immediately how many types are in that list. The `TypeMultiplier` utility can reduce this to make it more legible and this was done here. * Change length variable to constexpr size_t The variables `num_red_ops_*` are used for the TypeMultiplier and also for the length of the output vectors for the reduced diagnostics. This commit changes their type from `const int` to `constexpr size_t` because this is more appropriate for a vector length, and with constexpr we indicate that the value is constant and can be evaluated at compile time already.
* fix unfreed host buffer and missing iteration and series close in ParticleHistogram2D * More efficient resize Co-authored-by: Weiqun Zhang <[email protected]> --------- Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Weiqun Zhang <[email protected]>
Removing the GPUClock cost function due to the following reasons. Incomplete Implementation: The implementation is only added to selected kernels. The implementation is not generalized to work with varying occupancy of different kernels, even if it were used in all kernels. The implementation is verbose. Unused: Our host-side timer implementation was in the last years extended to synchronize kernels at minimal overhead cost. This and heuristic is actually used. Research scope shifted: In the last years, we realized that we do not need more precise scalar cost functions, but instead vector cost functions to build better load balance performance models from. Costly when used: The implementation uses an atomic add of each kernel, instead of, e.g., just using one per warp. This adds severe memory bandwidth strain. Costly, even if not used: The implementation adds about 4 registers unnecessary to all instrumented GPU kernels once compiled in (by default).
* `isort`: First Party Modules Declare `amrex` and `pywarpx` our first party modules, even if they are not installed. This resolves inconsistencies when sorting imports in developer or remote runs (pre-commit.com CI). * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* AMReX: Weekly Update * pyAMReX: Weekly Update
Update the ADIOS2 v2.10.0 installation, do not create campaign directories (we do not use them yet).
…ing` (ECP-WarpX#4886) * initial implementation of the grid based merging routine * add compiler directives for different dimensions * avoid implicit capture of `this` in lambda * code clean-up * use `PIdx::x` for r-coordinate while 4667 is still being reviewed * fix clang-tidy errors * another clang-tidy fix * improve doc-strings * use iterative heap sort since "SYCL kernel cannot call a recursive function" * fix clang-tidy error * fix sorting bug; add documentation and CI test * add dummy CI benchmark file to get proper values * update benchmark values based on Azure results * rename `GridBasedMerging` -> `VelocityCoincidenceThinning` * use `Algorithms::KineticEnergy` * reorganize merging loop * update CI benchmark values * Relativistic correction in product particles' velocity calculation * update benchmark values after changing energy calculation * handle edge case with zero cluster momentum * call redistribute after particle resampling to remove invalid particles * use unsigned ints for indexing * Revert "use unsigned ints for indexing" This reverts commit abe027f. * call `Redistribute` before merging * code clean-up * also check for `std::isnan` in edge case handling * add reference for grid based merging * check that cluster has total weight > 0 before merging * add defense against numerical error leading to nan * make resampling message more verbose * use `deleteInvalidParticles` instead of `Redistribute` * remove default values for merging parameters * remove doc-string default specifications in picmi.py * apply suggestions from code review * update benchmark values; avoid possible nans * add assert to prevent merging of photons * add `BackwardCompatibility` check to `LevelingThinning` * implement option for Cartesian velocity mesh * use `enum` for velocity grid types * fix Windows `uint` issue and clang-tidy error * use `Reduce` functions for GPU compatibility * merge kernels finding min and max velocities * take array of du values in picmi * avoid checking velocity grid type for every particle * fix issue in picmi * use array input for velocity bin sizes
Render issue in RST in PASC24 entry.
* add CI test for Cartesian velocity grid in resampling * avoid unneeded picmi input parameters * set checksum values for new test * use seperate input file for new example
Amend and move NOTICES to NOTICE.txt. Appended Text: Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government, The Regents of the University of California, or Lawrence Berkeley National Laboratory. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government, The Regents of the University of California, or Lawrence Berkeley National Laboratory, and shall not be used for advertising or product endorsement purposes.
* Diagnostics: Warn w/o Positions If a user specifies `<diag_name>.<species_name>.variables` without including particle position arguments we now warn. * openPMD: Skip 0-positions for deselected comps * Clang-Tidy: Braces * Update Examples * RZ: x,y,z * Fix: openPMD Low-D position/positionOffset Continue to write defaults for coarse and fine position of omitted dimensions to zero.
* Resetting charge buffers to zero. * Cleaning up: added braces. * Added CI test ElectrostaticSphereLabFrame_MR_emass_10 (with large particle's mass). * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Reverted ES sphere input script. * Docs: Fix PASC Paper Formatting * Highlights: Fix Formatting Issue Render issue in RST in PASC24 entry. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated benchmarks for ElectrostaticSphereLabFrame_MR_emass_10. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <[email protected]>
It appears that "apt/debian ubuntu main" does not work anymore. We now use "apt/latest ${UBUNTU_CODENAME} main" instead.
…arameter to specify if field is nodal (ECP-WarpX#4846) * use template parameter to specify if field is nodal in compute_weights and implement function also for 1D case * fix bug * remove unused variables * use amrex::IndexType::NODE as template parameter * Add Missing Include * Doc: Remove `(default)` Co-authored-by: Axel Huebl <[email protected]>
ParticleReductionFunctor uses the routine ParticleToMesh, which by default will zero out the MultiFab passed in. This PR removes the unneeded explicit calls to setVal(0.).
* code clean-up for binary collisions * fix variable shadowing * pass particle tiles by reference
* AMReX: 24.05 * pyAMReX: 24.05 * WarpX: 24.05 * `Python_restart_eb`: Reset Checksum
Use modern formatting as we have in newer codes to wrap the `LICENSE.txt` file for readability to 80 characters per line. No content change.
* AMReX: Weekly Update * pyAMReX: Weekly Update
* pB Fusion: Updated reaction cross sections * Updated the analytical model for pB fusion reaction cross sections to match that described in A. Tentori and F. Belloni Nucl. Fusion 63, 086001 (2023). * Updated python analysis test scripts to match new cross section function * Fixed reference in analysis_proton_boron_fusion.py * Bug: Fixed typo in analysis script Typo in constant C1 for low temp nonresonant pB reactivity * Updated checksums for pB fusion Updated the checksums for pB fusion 2D and 3D tests using the pB cross section data from A. Tentori & F. Belloni, Nuclear Fusion, 63, 086001 (2023) * Update Examples/Tests/nuclear_fusion/analysis_proton_boron_fusion.py Fixed comment to note the energy range covered by the XS fit in A. Tentori & F. Belloni Nucl. Fusion 63 086001 (2023). Co-authored-by: Neïl Zaim <[email protected]> * Fix pB crosssection for E>9.76 MeV * Added the power law decribed in Buck et al. Nuclear Physics A, 398(2), 189-202 (1983) for E>9.76 MeV * Note: cross section starting value altered from paper to ensure continuity with E<=9.76 MeV * Update Examples/Tests/nuclear_fusion/analysis_proton_boron_fusion.py Co-authored-by: Neïl Zaim <[email protected]> * update checksum values for pB11 fusion tests --------- Co-authored-by: Neïl Zaim <[email protected]> Co-authored-by: Roelof Groenewald <[email protected]> Co-authored-by: roelof-groenewald <[email protected]>
ECP-WarpX#4938) * ensure double precision particle with DSMC collisions * Check ParticleReal precision is double Co-authored-by: Roelof Groenewald <[email protected]> --------- Co-authored-by: Avigdor Veksler <[email protected]> Co-authored-by: Roelof Groenewald <[email protected]>
* AMReX: Weekly Update * pyAMReX: Weekly Update
…e-precision particles (ECP-WarpX#4941) * promote DSMC calculations to double precision * remove commented-out check * double -> auto for clang-tidy
RevathiJambunathan
merged commit May 22, 2024
4005b09
into
RevathiJambunathan:HarrisSheetinX
19 of 30 checks passed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.