From a68813abea126edf86984d3ac7a11f79312f3c17 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 2 Feb 2023 15:38:18 -0500 Subject: [PATCH] Restricted angular momentum conservation --- src/fraggle/fraggle_generate.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index c2360bfa6..2df7bb9cc 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -495,7 +495,7 @@ module subroutine fraggle_generate_vel_vec(collider, nbody_system, param, lfailu logical, intent(out) :: lfailure !! Did the velocity computation fail? ! Internals real(DP), parameter :: ENERGY_SUCCESS_METRIC = 1.0e-4_DP !! Relative energy error to accept as a success (success also must be energy-losing in addition to being within the metric amount) - real(DP), parameter :: MOMENTUM_SUCCESS_METRIC = 1.0e-12_DP !! Relative angular momentum error to accept as a success (should be *much* stricter than energy) + real(DP) :: MOMENTUM_SUCCESS_METRIC = epsilon(1.0_DP) !! Relative angular momentum error to accept as a success (should be *much* stricter than energy) integer(I4B) :: i, j, loop, try, istart, nfrag, nsteps, nsteps_best logical :: lhitandrun, lsupercat real(DP), dimension(NDIM) :: vimp_unit, rimp, vrot, L_residual, L_residual_unit, dL, drot, rot_new @@ -604,7 +604,7 @@ module subroutine fraggle_generate_vel_vec(collider, nbody_system, param, lfailu angmtm: do j = 1, MAXTRY call collider_local%get_energy_and_momentum(nbody_system, param, phase="after") L_residual(:) = (collider_local%L_total(:,2) - collider_local%L_total(:,1)) - dL_metric = .mag.L_residual(:) / .mag.collider_local%L_total(:,1) + dL_metric = .mag.L_residual(:) / .mag.(collider_local%L_total(:,1)) if (dL_metric <= MOMENTUM_SUCCESS_METRIC) exit angmtm L_residual_unit(:) = .unit. L_residual(:)