kaipartmann / Peridynamics.jl

A Julia package for parallel peridynamics simulations
https://kaipartmann.github.io/Peridynamics.jl/
MIT License
32 stars 7 forks source link

Halo exchange functions with fields as parameter #75

Closed kaipartmann closed 2 months ago

kaipartmann commented 2 months ago

The halo exchange functions now accept arbitrary storage fields.

Naming convention changed:

New functions for MPIDataHandler

exchange_loc_to_halo!(dh::MPIDataHandler)
exchange_loc_to_halo!(dh::MPIDataHandler, fields::NTuple{N,Symbol}) where {N}
exchange_loc_to_halo!(dh::MPIDataHandler, field::Symbol)
exchange_halo_to_loc!(dh::MPIDataHandler)
exchange_halo_to_loc!(dh::MPIDataHandler, fields::NTuple{N,Symbol}) where {N}
exchange_halo_to_loc!(dh::MPIDataHandler, field::Symbol)

New functions for ThreadsDataHandler

exchange_loc_to_halo!(dh::ThreadsDataHandler, chunk_id::Int)
exchange_loc_to_halo!(dh::ThreadsDataHandler, chunk_id::Int, fields::NTuple{N,Symbol}) where {N}
exchange_loc_to_halo!(dh::ThreadsDataHandler, chunk_id::Int, field::Symbol)
exchange_halo_to_loc!(dh::ThreadsDataHandler, chunk_id::Int)
exchange_halo_to_loc!(dh::ThreadsDataHandler, chunk_id::Int, fields::NTuple{N,Symbol}) where {N}
exchange_halo_to_loc!(dh::ThreadsDataHandler, chunk_id::Int, field::Symbol)

Fixes #73