Skip to content

Ippl refactoring #7

@matt-frey

Description

@matt-frey

Code:

  • use Kokkos::View for fields (see !2)
  • use Kokkos::View for particles (see !3)
  • add more field functions (see !4)
  • refactoring field layouts (see !19)
  • refactoring particle layouts
  • boundary conditions for particles (see !9 and !16)
  • boundary conditions for fields (see !8)
  • new expression interface for index classes
    • Index and IndexLines (see !26)
  • code cleaning:
    • remove DataSource (see !5)
    • remove SubField and SubParticle classes (see !6)
    • remove deprecated Field and RNG classes (see !21)
    • remove Disc* classes (see !22)
    • remove *Debug files (see !23)
    • remove unused AppTypes (see !24)
    • remove PETE (see !28)
    • remove deprecated Particle classes (see !25)
    • remove IpplMessageCounter (see !27)
    • major code review of Index and NDIndex class (see !59)
    • remove deprecated Mesh classes (see !29)
    • remove leading Kokkos_ from field class (see !30)
    • remove deprecated Ippl options (see !31)
    • remove IpplCounter class (see !33)
    • remove deprecated Message classes (see !46)
    • remove Vec.h (see !47)
    • remove IpplParticleBase class (see !48)
    • replace ParticleSpatialLayout and RegionLayout (see !49)
    • remove deprecated DomainMap class (see !50)
    • remove unused classes (see !51)
    • remove deprecated IPPL tests (see !52)
    • cleanup NDRegion (see !53)
    • cleanup PRegion (see !54)
    • rename MPI files (see !55)
    • remove NamedObj.h (see !61)
    • remove deprecated functions of ParticleSpatialLayout (see !63)
    • cleanup UniformCartesian (see !79)
  • FFT:
    • link to HeFFTe (see !69)
    • add FFT transform interface (see !70)
    • implement FFT transform with Kokkos
    • remove deprecated FFT interface of IPPL 1.0 (see !71)
  • 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:
      • remove CommCreator class (see !37)
      • remove unused members and unused class CommSendInfo (see !38)
      • use of Boost.MPI (see !39)
    • sending / receiving particle data (see !43)
    • sending / receiving field data
    • field halo exchange (see !62)
    • 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)
    • make HaloCells dimension independent (see !157)
    • periodic boundary condition for halo exchange (see !64)
    • add boost collectives in the communicator class (we do not use Boost anymore)
  • enhance Timer class to catch Kokkos kernels (see !40)
  • use Boost program options (see !57)

Tests: (GTest: !11)

  • add unit tests for fields (see !11, !88, !97)
  • add unit tests for particles (see Unit test for ParticleBase class #12)
  • add unit tests for PIC operations:
    • scatter (see !15)
    • gather (see !36)
  • add unit tests for index classes
  • add unit test for FFT (see !157)
  • add unit test for field BCs (see !44)
  • add unit test for particle update (see !45)

Documentation:

  • add old manual (see !10)
  • Doxygen (see !56)

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions