From 6dc488941a84c3df48750d92e016bdfea547c6ae Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Jan 2023 10:00:10 -0500 Subject: [PATCH] Trying one more convergence scheme. The behavior still doesn't make sense. It keeps putting all the angular momentum in spin and so never converges on energy --- src/fraggle/fraggle_generate.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index 67ad37e82..c2de18f73 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -537,8 +537,10 @@ module subroutine fraggle_generate_vel_vec(collider, nbody_system, param, lfailu call collider_local%get_energy_and_momentum(nbody_system, param, phase="after") ! Check for any residual angular momentum, and if there is any, put it into spin of the largest body L_residual(:) = collider_local%L_total(:,2) - collider_local%L_total(:,1) - fragments%L_spin(:,1) = fragments%L_spin(:,1) - L_residual(:) - fragments%rot(:,1) = fragments%L_spin(:,1) / (fragments%mass(1) * fragments%radius(1)**2 * fragments%Ip(:,1)) + do i = 1, fragments%nbody + fragments%L_spin(:,i) = fragments%L_spin(:,i) - L_residual(:) * fragments%mass(i) / fragments%mtot + fragments%rot(:,i) = fragments%L_spin(:,i) / (fragments%mass(i) * fragments%radius(i)**2 * fragments%Ip(:,i)) + end do fragments%rotmag(:) = .mag.fragments%rot(:,:) call collider_local%get_energy_and_momentum(nbody_system, param, phase="after")