diff --git a/src/eucl/eucl.f90 b/src/eucl/eucl.f90 index 1809d3cc5..4a71bc5ff 100644 --- a/src/eucl/eucl.f90 +++ b/src/eucl/eucl.f90 @@ -36,6 +36,19 @@ module subroutine eucl_dist_index_plpl(self) end subroutine eucl_dist_index_plpl + module subroutine eucl_dist_index_pltp(self, pl) + !! author: Jacob R. Elliott and David A. Minton + !! + !! Turns i,j indices into k index for use in the Euclidean distance matrix + !! + !! Reference: + !! + !! Mélodie Angeletti, Jean-Marie Bonny, Jonas Koko. Parallel Euclidean distance matrix computation on big datasets *. + !! 2019. hal-0204751 implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_pl), intent(inout) :: pl !! Swiftest massive body object + end subroutine eucl_dist_index_pltp + module subroutine eucl_irij3_plpl(self) !! author: Jacob R. Elliott and David A. Minton !! diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index c4363b2e9..8b9c23b70 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -220,6 +220,7 @@ module swiftest_classes procedure, public :: discard_sun => discard_sun_tp !! Check to see if test particles should be discarded based on their positions relative to the Sun procedure, public :: discard_peri => discard_peri_tp !! Check to see if a test particle should be discarded because its perihelion distance becomes too small procedure, public :: discard_pl => discard_pl_tp !! Check to see if test particles should be discarded based on their positions relative to the massive bodies + procedure, public :: eucl_index => eucl_dist_index_pltp !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure, public :: setup => setup_tp !! A base constructor that sets the number of bodies and procedure, public :: set_mu => setup_set_mu_tp !! Method used to construct the vectorized form of the central body mass procedure, public :: h2b => util_coord_h2b_tp !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) @@ -361,6 +362,12 @@ module subroutine eucl_dist_index_plpl(self) class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object end subroutine + module subroutine eucl_dist_index_pltp(self, pl) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_pl), intent(inout) :: pl !! Swiftest massive body object + end subroutine + module subroutine eucl_irij3_plpl(self) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object