From 1c8d8b09c8fa3278aabfec7d7d078257a69b3724 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 30 Sep 2021 13:40:26 -0400 Subject: [PATCH] added collision_counter to symba_nbody_system, assigned collision_id --- src/modules/symba_classes.f90 | 1 + src/symba/symba_collision.f90 | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index e6c01bacc..b8529721d 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -161,6 +161,7 @@ module symba_classes class(symba_plplenc), allocatable :: plplenc_list !! List of massive body-massive body encounters in a single step class(symba_plplenc), allocatable :: plplcollision_list !! List of massive body-massive body collisions in a single step integer(I4B) :: irec !! System recursion level + integer(I4B) :: collision_counter !! Counter for number of collisions over total simulation contains procedure :: write_discard => symba_io_write_discard !! Write out information about discarded and merged planets and test particles in SyMBA procedure :: initialize => symba_setup_initialize_system !! Performs SyMBA-specific initilization steps diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index c784aad13..74a12413b 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -718,6 +718,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) ncolliders = colliders%ncoll nfrag = frag%nbody + system%collision_counter = system%collision_counter + 1 ! Setup new bodies allocate(plnew, mold=pl) call plnew%setup(nfrag, param) @@ -745,7 +746,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) plnew%status(1:nfrag) = NEW_PARTICLE do i = 1, nfrag write(newname, FRAGFMT) frag%id(i) - call plnew%info(i)%set_value(origin_type="Disruption", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i)) + call plnew%info(i)%set_value(origin_type="Disruption", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i), collision_id=system%collision_counter) end do do i = 1, ncolliders if (colliders%idx(i) == ibiggest) then @@ -759,7 +760,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) plnew%status(1:nfrag) = NEW_PARTICLE do i = 1, nfrag write(newname, FRAGFMT) frag%id(i) - call plnew%info(i)%set_value(origin_type="Supercatastrophic", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i)) + call plnew%info(i)%set_value(origin_type="Supercatastrophic", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i), collision_id=system%collision_counter) end do do i = 1, ncolliders if (colliders%idx(i) == ibiggest) then @@ -774,7 +775,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) plnew%status(1) = OLD_PARTICLE do i = 2, nfrag write(newname, FRAGFMT) frag%id(i) - call plnew%info(i)%set_value(origin_type="Hit and run fragment", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i)) + call plnew%info(i)%set_value(origin_type="Hit and run fragment", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i), collision_id=system%collision_counter) end do do i = 1, ncolliders if (colliders%idx(i) == ibiggest) cycle