Ippl refactoring
Code:
- [x] use
Kokkos::Viewfor fields (see !2) - [x] use
Kokkos::Viewfor particles (see !3) - [x] add more field functions (see !4)
- [x] refactoring field layouts (see !19)
- [x] ~~refactoring particle layouts~~
- [x] boundary conditions for particles (see !9 and !16)
- [x] boundary conditions for fields (see !8)
- [x] new expression interface for index classes
- [x] Index and IndexLines (see !26)
- [x] code cleaning:
- [x] remove DataSource (see !5)
- [x] remove SubField and SubParticle classes (see !6)
- [x] remove deprecated Field and RNG classes (see !21)
- [x] remove Disc* classes (see !22)
- [x] remove *Debug files (see !23)
- [x] remove unused AppTypes (see !24)
- [x] remove PETE (see !28)
- [x] remove deprecated Particle classes (see !25)
- [x] remove IpplMessageCounter (see !27)
- [x] major code review of Index and NDIndex class (see !59)
- [x] remove deprecated Mesh classes (see !29)
- [x] remove leading
Kokkos_from field class (see !30) - [x] remove deprecated Ippl options (see !31)
- [x] remove IpplCounter class (see !33)
- [x] remove deprecated Message classes (see !46)
- [x] remove Vec.h (see !47)
- [x] remove IpplParticleBase class (see !48)
- [x] replace ParticleSpatialLayout and RegionLayout (see !49)
- [x] remove deprecated DomainMap class (see !50)
- [x] remove unused classes (see !51)
- [x] remove deprecated IPPL tests (see !52)
- [x] cleanup NDRegion (see !53)
- [x] cleanup PRegion (see !54)
- [x] rename MPI files (see !55)
- [x] remove NamedObj.h (see !61)
- [x] remove deprecated functions of ParticleSpatialLayout (see !63)
- [x] cleanup UniformCartesian (see !79)
- [ ] FFT:
- [x] link to HeFFTe (see !69)
- [x] add FFT transform interface (see !70)
- [ ] implement FFT transform with Kokkos
- [x] remove deprecated FFT interface of IPPL 1.0 (see !71)
- [x] reduction operations for particle classes (see !32)
- [ ] domain decomposition:
- [ ] add new load balancing interface
- [ ] remove deprecated load balancing
- [ ] inter-node communication:
- [ ] update general MPI interface:
- [x] remove
CommCreatorclass (see !37) - [x] remove unused members and unused class CommSendInfo (see !38)
- [x] use of Boost.MPI (see !39)
- [x] remove
- [x] sending / receiving particle data (see !43)
- [x] ~~sending / receiving field data~~
- [x] field halo exchange (see !62)
- [x] collective operations (e.g. reduce) (see !66)
- [ ] 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)
- [x] make HaloCells dimension independent (see !157)
- [x] periodic boundary condition for halo exchange (see !64)
- [x] ~~add boost collectives in the communicator class~~ (we do not use Boost anymore)
- [ ] update general MPI interface:
- [x] enhance Timer class to catch Kokkos kernels (see !40)
- [x] use Boost program options (see !57)
Tests: (GTest: !11)
- [x] add unit tests for fields (see !11, !88, !97)
- [x] add unit tests for particles (see #12)
- [x] add unit tests for PIC operations:
- [x] scatter (see !15)
- [x] gather (see !36)
- [ ] add unit tests for index classes
- [x] add unit test for FFT (see !157)
- [x] add unit test for field BCs (see !44)
- [x] add unit test for particle update (see !45)
Documentation:
- [x] add old manual (see !10)
- [ ] Doxygen (see !56)
In GitLab by @srikrrish on Oct 23, 2020, 22:41
marked the task use Kokkos::View for particles (see !3) as completed
In GitLab by @srikrrish on Oct 23, 2020, 22:41
marked the task use Kokkos::View for particles (see !3) as incomplete
In GitLab by @srikrrish on Oct 24, 2020, 15:22
marked the task use Kokkos::View for particles (see !3) as completed
In GitLab by @srikrrish on Oct 24, 2020, 15:22
marked the task add more field functions (see !4) as completed
With !11 we add the unit test environment. I propose that we implement for each new class such a test base. In addition the Doxygen documentation needs to be extended.
In GitLab by @srikrrish on Oct 26, 2020, 11:54
Great! I will add the other tests for differential operators, unary and binary also in to the gtest for fields. Same can be then done for particles.
:thumbsup: Ok, could you then approve !11. Thanks.
marked the task scatter (see !15) as completed
marked the task add unit tests for particles (see #12) as completed
marked the task boundary conditions for particles (see !9 and !16) as completed
marked the task add old manual (see !10) as completed
marked the task remove DataSource (see !5) as completed
marked the task remove SubField and SubParticle classes (see !6) as completed
marked the task remove deprecated Field and RNG classes (see !21) as completed
marked the task remove Disc classes (see !22)* as completed
marked the task *remove Debug files (see !23) as completed
marked the task remove unused AppTypes (see !24) as completed
marked the task remove deprecated Particle classes (see !25) as completed
marked the task remove IpplMessageCounter (see !27) as completed
marked the task remove deprecated Mesh classes (see !29) as completed
marked the task remove leading Kokkos_ from field class (see !30) as completed
marked the task Index and IndexLines (see !26) as completed
marked the task new expression interface for index classes as completed
marked the task remove PETE (see !28) as completed
marked the task remove deprecated Ippl options (see !31) as completed
marked the task remove IpplCounter class (see !33) as completed
marked the task reduction operations for particle classes (see !32) as completed
marked the task remove CommCreator class (see !37) as completed
marked the task remove unused members and unused class CommSendInfo (see !38) as completed
In GitLab by @srikrrish on Nov 11, 2020, 10:07
marked the task gather (see !36) as completed