Skip to content
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

Conversation

hklion
Copy link

@hklion hklion commented May 22, 2024

No description provided.

ax3l and others added 30 commits March 12, 2024 01:04
* 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).
ax3l and others added 29 commits April 29, 2024 15:30
* `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 RevathiJambunathan merged commit 4005b09 into RevathiJambunathan:HarrisSheetinX May 22, 2024
19 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.