ippl icon indicating copy to clipboard operation
ippl copied to clipboard

Ippl refactoring

Open matt-frey opened this issue 5 years ago • 65 comments

Code:

  • [x] use Kokkos::View for fields (see !2)
  • [x] use Kokkos::View for 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 CommCreator class (see !37)
      • [x] remove unused members and unused class CommSendInfo (see !38)
      • [x] use of Boost.MPI (see !39)
    • [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)
  • [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)

matt-frey avatar Oct 23 '20 16:10 matt-frey

In GitLab by @srikrrish on Oct 23, 2020, 22:41

marked the task use Kokkos::View for particles (see !3) as completed

matt-frey avatar Oct 23 '20 21:10 matt-frey

In GitLab by @srikrrish on Oct 23, 2020, 22:41

marked the task use Kokkos::View for particles (see !3) as incomplete

matt-frey avatar Oct 23 '20 21:10 matt-frey

In GitLab by @srikrrish on Oct 24, 2020, 15:22

marked the task use Kokkos::View for particles (see !3) as completed

matt-frey avatar Oct 24 '20 14:10 matt-frey

In GitLab by @srikrrish on Oct 24, 2020, 15:22

marked the task add more field functions (see !4) as completed

matt-frey avatar Oct 24 '20 14:10 matt-frey

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.

matt-frey avatar Oct 26 '20 11:10 matt-frey

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.

matt-frey avatar Oct 26 '20 11:10 matt-frey

:thumbsup: Ok, could you then approve !11. Thanks.

matt-frey avatar Oct 26 '20 11:10 matt-frey

marked the task scatter (see !15) as completed

matt-frey avatar Oct 29 '20 16:10 matt-frey

marked the task add unit tests for particles (see #12) as completed

matt-frey avatar Oct 29 '20 16:10 matt-frey

marked the task boundary conditions for particles (see !9 and !16) as completed

matt-frey avatar Oct 30 '20 08:10 matt-frey

marked the task add old manual (see !10) as completed

matt-frey avatar Oct 30 '20 10:10 matt-frey

marked the task remove DataSource (see !5) as completed

matt-frey avatar Nov 05 '20 07:11 matt-frey

marked the task remove SubField and SubParticle classes (see !6) as completed

matt-frey avatar Nov 05 '20 07:11 matt-frey

marked the task remove deprecated Field and RNG classes (see !21) as completed

matt-frey avatar Nov 05 '20 14:11 matt-frey

marked the task remove Disc classes (see !22)* as completed

matt-frey avatar Nov 05 '20 14:11 matt-frey

marked the task *remove Debug files (see !23) as completed

matt-frey avatar Nov 05 '20 14:11 matt-frey

marked the task remove unused AppTypes (see !24) as completed

matt-frey avatar Nov 05 '20 14:11 matt-frey

marked the task remove deprecated Particle classes (see !25) as completed

matt-frey avatar Nov 05 '20 15:11 matt-frey

marked the task remove IpplMessageCounter (see !27) as completed

matt-frey avatar Nov 06 '20 05:11 matt-frey

marked the task remove deprecated Mesh classes (see !29) as completed

matt-frey avatar Nov 06 '20 09:11 matt-frey

marked the task remove leading Kokkos_ from field class (see !30) as completed

matt-frey avatar Nov 06 '20 09:11 matt-frey

marked the task Index and IndexLines (see !26) as completed

matt-frey avatar Nov 06 '20 09:11 matt-frey

marked the task new expression interface for index classes as completed

matt-frey avatar Nov 06 '20 09:11 matt-frey

marked the task remove PETE (see !28) as completed

matt-frey avatar Nov 06 '20 09:11 matt-frey

marked the task remove deprecated Ippl options (see !31) as completed

matt-frey avatar Nov 06 '20 14:11 matt-frey

marked the task remove IpplCounter class (see !33) as completed

matt-frey avatar Nov 10 '20 08:11 matt-frey

marked the task reduction operations for particle classes (see !32) as completed

matt-frey avatar Nov 10 '20 10:11 matt-frey

marked the task remove CommCreator class (see !37) as completed

matt-frey avatar Nov 10 '20 10:11 matt-frey

marked the task remove unused members and unused class CommSendInfo (see !38) as completed

matt-frey avatar Nov 10 '20 11:11 matt-frey

In GitLab by @srikrrish on Nov 11, 2020, 10:07

marked the task gather (see !36) as completed

matt-frey avatar Nov 11 '20 10:11 matt-frey