v21.09
This is the first official HiPACE++ release.
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)
-
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++