Published September 1, 2021
| Version v21.09
Software
Open
Hi-PACE/hipace: v21.09
Authors/Creators
- 1. Deutsches Elektronen-Synchrotron, previously LBNL
- 2. Deutsches Elektronen-Synchrotron
- 3. LBNL, previously HZDR
- 4. Lawrence Berkeley National Laboratory
Description
This is the first official release of HiPACE++.
Dependencies
AMReX: release 21.08 openPMD-api: releases 0.12.0-0.14.*
List of PRs
git log | grep -A 3 "Author: " | grep -B 1 "\-\-" | sed '/--/d' | sed -e 's/^ /- /'
(in the future, one can use git log 21.09.. | grep -A 3 "Author: " | grep -B 1 "\-\-" | sed '/--/d' | sed -e 's/^ /- /')
- version 21.09
- openPMD-api: 0.14.2 (#585)
- interpolate rho and psi at the boundaries (#572)
- print precision in output (#581)
- proper bin policy for tile sort (#577)
- use _rt in GetDomainLev (#579)
- Fix offset of interpolation and use second order interpolation in x and y (#570)
- fix transverse size of IO for level 1 (#569)
- Fix handling of tiling and GPU (#576)
- OpenMP handling (#575)
- Particle tiling and OpenMP threading (#551)
- change test number of cells to be a multiple of 8... (#571)
- fix slice IO for MR (#568)
- use correct longitudinal index in InterpolateBoundaries (#567)
- Mesh refinement: fix MR on GPUs (#564)
- enforceBC works for all levels (#566)
- remove unused parameters (#560)
- CMake: Warn Unknown Build Type (#563)
- Fix: CUDA Host-Side -O3 with CMake (#562)
- Add a few beam profiles (#558)
- Field Interpolation (#557)
- [mini] document compile option -DAMReX_LINEAR_SOLVERS (#559)
- CMake: FFTW Search w/ CMake Install (#553)
- add seed to write_beam.py (#555)
- initialize the plasma on the correct level (#554)
- Mesh refinement: enable level 1 to be longitudinally a different size than level 0 (#546)
- [mini] add missing/errorenous CMake in build description (#549)
- add OpenMP support for transverse and longitudinal derivative (#545)
- Unify forward and backward dst plans to save GPU memory (#537)
- Automatically use small DST for large Resolutions (#548)
- add OpenMP to CI tests (#547)
- New Discrete Sine Transformation (#534)
- Mesh refinement: fix parallel runs (#544)
- Add OpenMP for FFTW (#541)
- rescale weight of beam in normalized units (#543)
- ccache now on the JSC Juwels Booster (#539)
- FFTW: CMakeConfig Support (Windows, OpenMP) (#540)
- fix includes (#533)
- pass vector of geometries to field solve functions (#536)
- fix a few style warnings on AMD (#535)
- clean loop over levels (#531)
- Mesh refinement: first working field solve on level 1 (#530)
- Mesh refinement: fix boxarray (#529)
- Mesh refinement: multiple Poisson solvers (#527)
- Mesh refinement: Adding IO (#526)
- remove unused parameters (#525)
- we dont seem to need Fields::m_F anymore (#524)
- first preparation to enable multiple levels (#523)
- when odd number of cells, no need to average to get slice io (#521)
- CMake 3.20+ and CUDA: Modernized AMReX (#522)
- Update RNG (#520)
- switch assert to >0 density in adaptive time step (#518)
- Add atomic mass table for Plasmas (#510)
- Add beam selection for IO (#514)
- [mini] Sphinx: fix link in typo (#516)
- initialize m_adaptive_density (#515)
- move Diagnostic class from Fields to Hipace class (#513)
- add Adios2 support (#508)
- add proton element for convenience (#507)
- [sphinx] add links and logos to package managers (#506)
- Add possibility to input multiple beams at once (#502)
- [mini] clearer naming of direction (#501)
- Renaming to HiPACE++ (#505)
- conversion to normalized units for explicit solver (#499)
- remove hardcoded lev calls (#503)
- enable multiple boxes per rank (#493)
- add the possibility to have different species of beams (#492)
- remove deprecated comment (#500)
- Fix mass calculation for Dalton (#497)
- fix typo (#498)
- fix typo in execution command (#495)
- fix typos in readme (#491)
- [mini] add documentation badge (#490)
- add doc for juwels and maxwell (#489)
- change names from WarpX to Hipace++ (#485)
- Add get_started example (#488)
- add subcycling for beams (#487)
- introduce subheaddings (#486)
- Last changes for going open-source (#484)
- Add Cl test for Beam input from_file (#479)
- communicate physical time (#482)
- add second flush for beam IO (#480)
- assert no ion motion with explicit solver (#477)
- assert explicit isn't used with SI (#478)
- clean a few compilation warning (#481)
- updating a few parameters in the sphinx documentation (#473)
- option to not compile the MG solver (#476)
- parallelization for beam deposition in next slice (#458)
- clean up input parameters for bxby solver (#475)
- adding more parameters to the sphinx documentation (#471)
- [mini] comply with convention for variable parameter names (#470)
- Add Plasma Ionization using ADK Model (#456)
- fix transverse beam currents for explicit solver (#468)
- Fix explicit solver (#459)
- CI test for hosing and ion motion (#466)
- add hollow core plasma profile (#463)
- change parabolic profile from channel_radius to parabolic_curvature (#464)
- cuFFTUtils: Add Missing Include (#461)
- minor update of available input parameters (#460)
- fix sign of psi (#455)
- remove wrong assert (#454)
- Fix shift in time between fields and beam in IO (#453)
- deposit jx and jy of the beam on the next slice (#451)
- Limit number of significant digits in checksums (#444)
- Use previous slice as MG initial guess for explicit solver (#450)
- store MG solver to initialize it only once, to improve performance (#449)
- Replace predictor-corrector by analytic integration and multigrid solve (#437)
- Call OpenPMDWriter::InitDiagnostics() only if they are actually written (#447)
- Add correlated energy spread (#446)
- Remove option to dump to plotfiles (#445)
- add the possibility to have a parabolic plasma profile (#415)
- openPMD: clean up 'injection_type = restart' and add SI units to beam output (#423)
- adding ion motion (#439)
- must pass charge and mass by reference (#438)
- set default for skip empty comms to false (#436)
- Enable multiple plasma species (#432)
- change assert in predictor corrector loop to Warning (#435)
- Stop communicating if only empty boxes downstream (#434)
- Print Version (#433)
- last rank needs to resize to remove particles from previous time step (#426)
- Fix b field error calculation (#430)
- add option to not deposit Jx and Jy of the beam (#431)
- add additional diagnostics for the predictor corrector loop (#427)
- CMake: Update AMReX Particle Precision (#425)
- remove deprecated parameter (#422)
- remove configure_mpiexec from cmake (#421)
- AMReX: Skip AMRLEVEL (#403)
- Add licensing files in preparation of open-source release (#419)
- [WIP] New pipeline (#407)
- Constant accelerating field (#372)
- Add a paragraph on wandpic in the tex file (#354)
- #190 Performance changes to linear_wake analysis (#348)
- only write important field data to file (#346)
- renaming to the correctly describing name peak_current_density (#350)
- only run CI on development (#352)
- Adding possibility to write current directly to grid (#349)
- adding profiling for SolveOneSlice() (#343)
- CMake: Quick, Local Dependencies (#347)
- openPMD: restart simulation and multiple Beams (#325)
- fix bug by using std::abs instead of abs (#340)
- Transverse beam redistribute (#339)
- assert that the number of cells doesn't overflow int (#342)
- only init openPMD data if outputperiod > 0 (#326)
- Remove redundant which_slice from plasma particle advance (#328)
- add helpful error message, if user specifies output_period=0 (#327)
- Doc: update tex file with the algorithm description (#323)
- send beam particle information only at initialization (#322)
- [SCALING TEST] Only allocate required field components in each slice (#320)
- Readin from HiPACE-C files improved + conversion script (#315)
- openPMD-api: new CMake Control (tests) (#312)
- Optimize packing and unpacking particles to pinned memory buffers. (#308)
- README: openPMD-api Install (#313)
- removing namespace io (#311)
- checksum.py: unused import "re" (#310)
- openPMD: 0.13.1 (#309)
- Reset plasma particle weight to the initial value (#302)
- fix compiler warning for compiling without openPMD (#303)
- Make openPMD default, including for CI (#291)
- Encapsulate field IO, first step to multiple slice IO (#300)
- fix #ifdef OPENPMD to get rid of compiler warnings (#299)
- add ifdef AMREX_USE_MPI around communication functions (#298)
- Fix non-blocking communication for adaptive time step (#296)
- cleaning of the openPMD beam write PR (#294)
- [mini] Clean compiler warnings (#293)
- checksum tests: abstract the backend, to enable either openPMD or yt (#292)
- Remove the option slice_beam: it is ALWAYS true (#289)
- openPMD: read input beam from HDF5 file (#285)
- Fixing momentum for openPMD I/O (#286)
- Sending info for adaptive time step via nonblocking communication (#282)
- openPMD: cleaning (#281)
- fixing typo in notify finish (#280)
- openPMD default Path: as in WarpX (#278)
- openPMD: write beam data (#277)
- Use HDF5 File to input Beam with openPMD (#276)
- [WIP] openPMD: Collective Open & Group Based (#274)
- openPMD: Guard Output, Avoid 2x Copy (#275)
- [openPMD] Communication of upstream beam particle number (#269)
- openPMD: Rebased Handle fields with Guards (#272)
- revert collective open (#273)
- openPMD: Collective Open & Group Based (#270)
- [mini] option to disable z push of beam particles (#268)
- CMake: Update GPU Backend Vars (#267)
- Add missing Device::synchronize() calls to Wait() and Notify(). (#266)
- openPMD output (fields) (#265)
- fixing index error in DST (#264)
- Accelerating CI (#263)
- Fix a classic implicit capture of *this bug (#262)
- Longitudinal particle exchanges (#261)
- also send the ion charge density inn pipeline (#259)
- Fix bug in which plasma particles were not being initialized on the right proc. (#258)
- typo in doc (#256)
- openPMD: Doc Quote & Version (#254)
- Adding openPMD support (#252)
- Full domain transversally for slice IO to avoid losing particles (#253)
- Clean 'using namespace amrex;' (#250)
- Longitudinally parallelized adaptive time step (#247)
- fixing order of AMReX includes (#251)
- fix typo in the example Jupyter notebook (#249)
- Capability to have multiple beams (#246)
- store a correct time step in output files (#248)
- Move a few files in a utils directory (#245)
- F needs guard cells when beam deposits on the 3d grid (#244)
- Adding tilted beam (#243)
- CI for adaptive timestep (#242)
- Adding an adaptive time step (#241)
- Const weight Gaussian beam based on density input (#235)
- adding a few general parameters to sphinx documentation (#237)
- [mini] Assert for slice beam for slice IO (#236)
- using DeviceVector instead of ManagedVector for beam and plasma particle init (#233)
- Fix parallelization (except for plasma particles) (#230)
- Adding breathe to sphinx documentation (#229)
- A few bugfixes for longitudinal parallelization for beam particles. (#228)
- Gaussian beam with fixed weight (#220)
- fix slice averaging and clean up its IC (#225)
- adding printout for QSA violating particles (#222)
- fixing an important error in the longitudinal plasma velocity (#224)
- Node-center slice IO so it is at the domain center (#221)
- quick fix to make the external field work on GPU (#219)
- Sphinx documentation (#217)
- Implementation of the beam pusher (#202)
- add a visualization notebook with all useful basic operations (#218)
- IO slice defined on slice geom, to output a 2d array (#215)
- option to NOT dump plasma particles (#216)
- reset particlecontainer dm and ba (#199)
- Fixing bug with initialization of arrays (#213)
- Coarsen beam injection box (#211)
- Only define slice box if needed (#212)
- Fix redistribute and handling of particles which violate the QSA (#207)
- Slice diagnostics (#206)
- add doxygen documentation for beam slice deposition (#203)
- CMake: New AMReX Options (#204)
- CI: CUDA Update (#205)
- check for predictor corrector loop divergence only if B field error tolerance > 0 (#201)
- Selfmade redistribute to avoid high memory shifting (#200)
- remove pedantic semicolumn (#196)
- 3D array has no guard cell (#195)
- Handling of plasma particles violating the quasi-static approximation (#193)
- add virtual destructor to abstract class (#191)
- adding the possibility of a finite radius plasma column (#192)
- fixed-ppc Gaussian beam (#189)
- Move slice solve to a separate function (#187)
- replace hipace.do_plot with more flexible hipace.output_period (#184)
- Turn off serial tests to spare CI time (#183)
- Bash: Exit Earl on Error (+Pipes) (#178)
- oops, forgot one renaming (#182)
- Fix a number of naming inconsistencies in CI and examples (#181)
- forget about assert_exit, python assert work well (#179)
- LWFA Analysis: Fix Typo (#180)
- Adding CI test in the blowout regime and removing now redundant can_beam test (#174)
- Fix SI (#170)
- fixing CI tests not triggering (#171)
- [mini] adding CI test for a linear wake vs theory (#167)
- Fix SI Poisson solver for transverse fields (#169)
- Reset all quantities at the beginning of each time step (#168)
- Reformat poisson (#164)
- Add option to call Gpu::Synchronize around profiler region (#160)
- proper number of grid points in the error calculation (#161)
- Correct ion charge deposition (#156)
- Fixing bug with particles being pushed to the next slice (#159)
- Minor Cleaning in the plasma current deposition + addition of safe guards (#155)
- [mini] Improving host-device performance by removing redundant copy call (#151)
- push/pop the transverse communicator only once in the loop over slices (#150)
- Minor cleaning, in particular fix the order of includes in 1 file. (#149)
- Renaming slices to WhichSilce::Next, This, Previous1, Previous2 (#148)
- Moving class FFTPoissonSolver and all field-only related functions from class Hipace to Fields (#147)
- Consistent naming for pseudo-potential on plasma particles (#140)
- Add option to put the 3D array in pinned memory so it stays on the host (#143)
- Wrap BL_PROFILE into HIPACE_PROFILE for more control (#139)
- Improved predictor corrector loop (#138)
- Option to deposit beam charge and current in the slice MultiFab (#132)
- Predictor-corrector loop to compute transverse magnetic fields (#133)
- Fix crash when no plasma is specified (#131)
- Solve fields Ex-By, Ey+Bx, Ez, and Bz (#129)
- Plasma particle pusher (#125)
- enabling coefficient and add for TransvereDerivative (#121)
- fix sign error in Poisson solver, and adapt CI scripts (they missed that :/) (#126)
- Deposit ion charge (#128)
- add some _rt and remove parallel test from script to reset benchmarks (#127)
- Deposit beam density (#120)
- CI: Doxygen Builds (#118)
- add WarpX Copyright header for file taken from WarpX (#117)
- Add .editorconfig file (#119)
- Deposit plasma density (#112)
- Turn off OpenMP by default, and improve benchmark reset script (#114)
- Improve checksums (#113)
- space between function name and bracket for declaration and definition (#111)
- Update plasma force terms (#108)
- Create pull_request_template.md
- Implementation of the first part of the actual plasma particle pusher (field gathering) (#101)
- add option to get given field of given level (#102)
- fix units and typo in current deposition (#99)
- Fix order 0 deposition (#98)
- Physical plasma current deposition + read-in of particle momentum as vector (#95)
- fix typo in CMake compilation flag (#94)
- typo: remove extra character (#92)
- Doxygen-readable docstring in all .H file (#91)
- only run CI on PR, not on push (#89)
- Modified input and input_normalized to allow for a comparison. Added … (#73)
- Add style checks, stolen from WarpX (#87)
- Reformat CI, add checksum, and make beam_in_vacuum smaller (#85)
- add 1 checksum regression test. Others should be copied from there (#84)
- Add automated test that compares with theory (#79)
- renamed the plasma pseudo potential to psi (#82)
- CMake: openPMD Suffix
- Move examples to subfolder (#67)
- CMake: RelWithDebInfo -O3 (#71)
- option to not have IO (#65)
- Expose plasma species options to the input file (#64)
- space before bracket for function definition/declaration (#63)
- Instrument the main functions (#62)
- Current deposition for plasma particles (#61)
- compute Bx (#59)
- clean includes and current deposition (#58)
- Enable normalized units (#57)
- support various deposition order
- Add test for By field in vacuum with can beam (#56)
- set val to 0 at the beginning of each step (#55)
- do NGP deposition (#53)
- Initialize a can beam (#52)
- Cleanup: remove extra ;
- use amrex::Math::floor instead of floor for DPC++ (#51)
- Change AMREX_USE_GPU to AMREX_USE_CUDA (#50)
- Assertions and minor changes in FFT solver. Reduce the size of slice BoxArray. (#48)
- CMake: DPC++, OMP Def., Binary Names (#47)
- Cleaning in the FFT solver (#46)
- CMake: MPI, Asserts and Advanced AMReX (#44)
- field communication in longitude direction (#43)
- Update CI Badge: macOS deactivated
- Update CI Badge: development
- CMake: Compute Backend & Precision (#42)
-
Loop over slices. Tranverse FillBoundary for j and By. (#41)
-
add two subcommunicators (#39)
- FFTW: stress again not needed with CUDA
- Update README: Dependencies/Options
- Current: GPU (#38)
- Missing CMake 3.17 CUDA Feature Guard (#36)
- Loop over slices and call Poisson solver! (#35)
- CMake: -lcufft (#37)
- list optimizations we kept for later (#32)
- Clean duplicate utilities Constants and Direction::z (#34)
- Copy data between the full and slice MultiFab. Shift data in slices. (#33)
- FFT poisson solver (#28)
- Add a direction enum struct (#31)
- set up slice ba and dm (#29)
- Add function to compute transverse derivative function (#26)
- adjust field components (#30)
- Docs: pkg-config for FFTW/CMake
- FFTW: Only Needed in non-CUDA (#27)
- Remove options for multiple dimensions in FFT (#24)
- Fix indexing error in particle initialization (#25)
- Readme: Document Dependencies
- CI: FFTW3 (Serial)
- first attempt to include FFT in Hipace (#23)
- remove extra ;
- [WIP] Current deposition (#21)
- Readme: cleanup
- Readme: Formatting
- Doc: Debug Mode
- CMake: CUDA C++ Language Minimum
- Readme: Details AMReX External
- CMake: CCache (#22)
- AMReX: Clean-Up Options
- syntax fix in readme
- CUDACXX
- Add CUDAHOSTCXX
- CMake Build Dirs: Advanced Options
- add array of multifabs for 2D slices (#19)
- Add physical constants (#20)
- CMake: Guard in-Source builds
- Init Plasma Particles (#18)
- make sure the domain is decomposed only in z-direction (#17)
- Disable compilation of linear solvers (#16)
- CMake: Cleanup Include
- EOL
- Correct minor typos (#15)
- Add document with the equations of HiPACE
- macOS: move disabled
- macOS CI: empty job list
- CI: Reduce for now
- Doc & CI: OpenMP (#14)
- CI: Linux & macOS (#13)
- Default Build Type: RelWithDebInfo (#12)
- Same constant again
- CUDA: Fix Compile (constexpr)
- CMake: CUDA Support (Var Scope)
- CMake: Finish Cleaning (#11)
- Single Arg Constructors: Explicit (#10)
- readme file explains how to run simulation and plot the results
- also have plasma particles in the simulation
- add plotting script, to show results after running simulation
- fix merge conflits
- remove multi particle containers, for simplicity
- Fix Warnings: ;s and Init (#9)
- gitignore: typical IDE dirs (#8)
- Merge pull request #7 from Hi-PACE/topic-cmakeFunctions
- give the particles positive ids
- fix unitialized variable warning
- set max_step by default
- make sure constructor for the plasma particle container gets called
- fix some warnings
- CMake: Functions, 1 & 2 Ranks
- add beam particles in the simulation. Particle IO still not readable
- Merge branch 'master' of https://github.com/Hi-PACE/hipace
- fix bug in multifab allocation
- Merge pull request #6 from Hi-PACE/topic-amrexSystemIncludes
- add field diagnostics and evolve
- AMReX: System Includes
- fixes so it compiles
- Merge branch 'master' of https://github.com/Hi-PACE/hipace
- Initialize field data
- fix compilation of multi pc stuff
- multi plasma particle container
- typo
- Merge branch 'master' of github.com:Hi-PACE/hipace
- add the multi beam particle container
- set up the subdirectories in cmake
- finish spack env reactivate
- brew: mpi
- ignore *~
- Merge branch 'master' of https://github.com/Hi-PACE/hipace
- add example
- Readme: Set CC & CXX
- Hipace derives from AmrCore
- field class
- Merge pull request #5 from Hi-PACE/particle_containers
- Adjust Include Dirs: src/
- Merge pull request #4 from Hi-PACE/main
- add main function and hipace clss
- hook up the particle containers to the build system
- Merge branch 'master' into particle_containers
- check in stubs for beam and particle container classes
- Merge pull request #3 from Hi-PACE/topic-noFortran
- AMReX: no Fortran in CMake
- Merge pull request #2 from Hi-PACE/topic-cmake
- Add CMake structure & Docs
- Merge pull request #1 from Hi-PACE/topic-gitignore
- Add .gitignore for C++
Files
Hi-PACE/hipace-v21.09.zip
Files
(290.8 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:ad4457605e435527770ec557a9f8ad58
|
290.8 kB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/Hi-PACE/hipace/tree/v21.09 (URL)