From 337b4bd0286b3f1689c55afce8971396804bf30f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Jan 2023 22:54:18 -0500 Subject: [PATCH] Improved the convergence of Fraggle on the energy constraint. Fixed issue where, because the data file is not written to every time there's a collision, particles can come and go before ever being recorded, leaving gaps in the name dimension of the NetCDF file. --- python/swiftest/swiftest/io.py | 1 + src/collision/collision_resolve.f90 | 1 - src/fraggle/fraggle_generate.f90 | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index e76c772aa..d7367774a 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -820,6 +820,7 @@ def process_netcdf_input(ds, param): elif param['OUT_TYPE'] == "NETCDF_FLOAT": ds = fix_types(ds,ftype=np.float32) + ds = ds.where(ds['id']>=0, drop=True) return ds def swiftest2xr(param, verbose=True): diff --git a/src/collision/collision_resolve.f90 b/src/collision/collision_resolve.f90 index 07bdc6fb3..52948c4d2 100644 --- a/src/collision/collision_resolve.f90 +++ b/src/collision/collision_resolve.f90 @@ -325,7 +325,6 @@ module subroutine collision_resolve_mergeaddsub(nbody_system, param, t, status) integer(I4B) :: merge_text_length character(len=NAMELEN) :: merge_text character(len=NAMELEN) :: newname, origin_type - character(len=STRMAX) :: message real(DP) :: volume select type(nbody_system) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index e7b0aabba..611a34eb3 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -420,7 +420,7 @@ module subroutine fraggle_generate_vel_vec(collider, nbody_system, param, lfailu real(DP), parameter :: vmax_initial_factor = 5.0_DP ! For the initial "guess" of fragment velocities, this is the maximum velocity relative to escape velocity that the fragments will have integer(I4B), parameter :: MAXLOOP = 200 integer(I4B), parameter :: MAXTRY = 20 - real(DP), parameter :: SUCCESS_METRIC = 1.0_DP + real(DP), parameter :: SUCCESS_METRIC = 1.0e-3_DP class(collision_fraggle), allocatable :: collider_local character(len=STRMAX) :: message