Ippl refactoring
Code:
-
use
Kokkos::View
for fields (see !2 (merged)) -
use
Kokkos::View
for particles (see !3 (merged)) - add more field functions (see !4 (merged))
- refactoring field layouts (see !19 (merged))
-
refactoring particle layouts - boundary conditions for particles (see !9 (merged) and !16 (merged))
- boundary conditions for fields (see !8 (merged))
-
new expression interface for index classes
- Index and IndexLines (see !26 (merged))
-
code cleaning:
- remove DataSource (see !5 (merged))
- remove SubField and SubParticle classes (see !6 (merged))
- remove deprecated Field and RNG classes (see !21 (merged))
- remove Disc* classes (see !22 (merged))
- remove *Debug files (see !23 (merged))
- remove unused AppTypes (see !24 (merged))
- remove PETE (see !28 (merged))
- remove deprecated Particle classes (see !25 (merged))
- remove IpplMessageCounter (see !27 (merged))
- major code review of Index and NDIndex class (see !59 (merged))
- remove deprecated Mesh classes (see !29 (merged))
-
remove leading
Kokkos_
from field class (see !30 (merged)) - remove deprecated Ippl options (see !31 (merged))
- remove IpplCounter class (see !33 (merged))
- remove deprecated Message classes (see !46 (merged))
- remove Vec.h (see !47 (merged))
- remove IpplParticleBase class (see !48 (merged))
- replace ParticleSpatialLayout and RegionLayout (see !49 (merged))
- remove deprecated DomainMap class (see !50 (merged))
- remove unused classes (see !51 (merged))
- remove deprecated IPPL tests (see !52 (merged))
- cleanup NDRegion (see !53 (merged))
- cleanup PRegion (see !54 (merged))
- rename MPI files (see !55 (merged))
- remove NamedObj.h (see !61 (merged))
- remove deprecated functions of ParticleSpatialLayout (see !63 (merged))
- cleanup UniformCartesian (see !79 (merged))
-
FFT:
- link to HeFFTe (see !69 (merged))
- add FFT transform interface (see !70 (merged))
- implement FFT transform with Kokkos
- remove deprecated FFT interface of IPPL 1.0 (see !71 (merged))
- reduction operations for particle classes (see !32 (merged))
-
domain decomposition:
- add new load balancing interface
- remove deprecated load balancing
-
inter-node communication:
-
update general MPI interface:
-
remove
CommCreator
class (see !37 (merged)) - remove unused members and unused class CommSendInfo (see !38 (merged))
- use of Boost.MPI (see !39 (merged))
-
remove
- sending / receiving particle data (see !43 (merged))
-
sending / receiving field data - field halo exchange (see !62 (merged))
- collective operations (e.g. reduce) (see !66 (merged))
- improve the way in which particle update is called
- recursive bisection algorithm
- non-blocking receive for particles
- non-blocking receive for field data (halo exchange)
- send field data as 3d data (i.e., do not serialize as 1d arrays)
- make HaloCells dimension independent
- periodic boundary condition for halo exchange (see !64 (merged))
- add boost collectives in the communicator class
-
update general MPI interface:
- enhance Timer class to catch Kokkos kernels (see !40 (merged))
- use Boost program options (see !57 (merged))
Tests: (GTest: !11 (merged))
- add unit tests for fields
- add unit tests for particles (see #12 (closed))
-
add unit tests for PIC operations:
- scatter (see !15 (merged))
- gather (see !36 (merged))
- add unit tests for index classes
- add unit test for FFT
- add unit test for field BCs (see !44 (merged))
- add unit test for particle update (see !45 (merged))
Documentation:
- add old manual (see !10 (merged))
- Doxygen (see !56)