From 00f73cc15cbb47dafea2acb15668f3fc63e661f2 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Mon, 9 Aug 2021 14:44:42 -0400 Subject: [PATCH 001/315] Edited io_write_frame_body to accommodate NetCDF output format this does all the writing to a previously existing NetCDF file --- src/io/io.f90 | 101 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 26 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index ebfe2b1ef..055d238a6 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1318,52 +1318,101 @@ module subroutine io_write_frame_body(self, iu, param) !! !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 !! Adapted from Hal Levison's Swift routine io_write_frame.F + use netcdf implicit none ! Arguments class(swiftest_body), intent(in) :: self !! Swiftest particle object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: name_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: noutput !! Number of output events covering the total simulation time + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertial variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertial variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertial variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + + !! Open the netCDF file + call check( nf90_open(param%outfile, nf90_write, ncid) ) associate(n => self%nbody) if (n == 0) return - write(iu) self%id(1:n) - !write(iu) self%name(1:n) + select case (param%out_form) case (EL) - write(iu) self%a(1:n) - write(iu) self%e(1:n) - write(iu) self%inc(1:n) - write(iu) self%capom(1:n) - write(iu) self%omega(1:n) - write(iu) self%capm(1:n) + do i = 1, npl + call check( nf90_put_var(ncid, a_varid, self%a(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(self%id = i), start=(/self%id, param%t/)) ) + end do case (XV) - write(iu) self%xh(1, 1:n) - write(iu) self%xh(2, 1:n) - write(iu) self%xh(3, 1:n) - write(iu) self%vh(1, 1:n) - write(iu) self%vh(2, 1:n) - write(iu) self%vh(3, 1:n) + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id = i), start=(/self%id, param%t/)) ) end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - write(iu) pl%Gmass(1:n) - if (param%lrhill_present) write(iu) pl%rhill(1:n) - if (param%lclose) write(iu) pl%radius(1:n) + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id = i), start=(/self%id, param%t/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id = i), start=(/self%id, param%t/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id = i), start=(/self%id, param%t/)) ) if (param%lrotation) then - write(iu) pl%Ip(1, 1:n) - write(iu) pl%Ip(2, 1:n) - write(iu) pl%Ip(3, 1:n) - write(iu) pl%rot(1, 1:n) - write(iu) pl%rot(2, 1:n) - write(iu) pl%rot(3, 1:n) + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id = i), start=(/self%id, param%t/)) ) end if if (param%ltides) then - write(iu) pl%k2(1:n) - write(iu) pl%Q(1:n) + call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id = i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id = i), start=(/self%id, param%t/)) ) end if end select end associate + !! Close the netCDF file + call check( nf90_close(ncid) ) + + contains + + !! Checks the status of all NetCDF operations to catch errors + subroutine check(status) + integer, intent ( in) :: status + + if(status /= nf90_noerr) then + print *, trim(nf90_strerror(status)) + stop "NetCDF Error: Stopped" + end if + end subroutine check + return end subroutine io_write_frame_body From 2ae5828f5ffb3228f707f26a49c953ac82878711 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Mon, 9 Aug 2021 14:45:29 -0400 Subject: [PATCH 002/315] Edited io_write_frame_system to accommodate NetCDF output format creates a new NetCDF file if necessary and then calls to io_write_frame_body --- src/io/io.f90 | 167 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 128 insertions(+), 39 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 055d238a6..bfef5de24 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1465,67 +1465,156 @@ module subroutine io_write_frame_system(self, iu, param) !! Adapted from Hal Levison's Swift routine io_write_frame.F implicit none ! Arguments - class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method - integer(I4B) :: ierr !! I/O error code + logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method + integer(I4B) :: ierr !! I/O error code - class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions - class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions - class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions + class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions + class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions + class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions + + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: name_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: noutput !! Number of output events covering the total simulation time + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertial variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertial variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertial variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable allocate(cb, source = self%cb) allocate(pl, source = self%pl) allocate(tp, source = self%tp) iu = BINUNIT + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + if (lfirst) then select case(param%out_stat) case('APPEND') - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + !open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + + call cb%write_frame(iu, param) + call pl%write_frame(iu, param) + call tp%write_frame(iu, param) case('NEW', 'REPLACE', 'UNKNOWN') - open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', iostat = ierr) + !open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', iostat = ierr) + + !! Create the new output file, deleting any previously existing output file of the same name + call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) + + !! Calculate the number of outputs needed to cover the entire simulation time + noutput = (param%tstop / param%dt) / param%istep_out + + !! Define the NetCDF dimensions with particle name as the record dimension + call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) + call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) + dimids = (/ name_dimid, time_dimid /) + + !! Define the variables + select case (param%out_form) + case (EL) + call check( nf90_def_var(ncid, "a", NF90_FLOAT, dimids, a_varid) ) + call check( nf90_def_var(ncid, "e", NF90_FLOAT, dimids, e_varid) ) + call check( nf90_def_var(ncid, "inc", NF90_FLOAT, dimids, inc_varid) ) + call check( nf90_def_var(ncid, "capom", NF90_FLOAT, dimids, capom_varid) ) + call check( nf90_def_var(ncid, "omega", NF90_FLOAT, dimids, omega_varid) ) + call check( nf90_def_var(ncid, "capm", NF90_FLOAT, dimids, capm_varid) ) + case (XV) + call check( nf90_def_var(ncid, "xhx", NF90_FLOAT, dimids, xhx_varid) ) + call check( nf90_def_var(ncid, "xhy", NF90_FLOAT, dimids, xhy_varid) ) + call check( nf90_def_var(ncid, "xhz", NF90_FLOAT, dimids, xhz_varid) ) + call check( nf90_def_var(ncid, "vhx", NF90_FLOAT, dimids, vhx_varid) ) + call check( nf90_def_var(ncid, "vhy", NF90_FLOAT, dimids, vhy_varid) ) + call check( nf90_def_var(ncid, "vhz", NF90_FLOAT, dimids, vhz_varid) ) + end select + select type(pl => self) + class is (swiftest_pl) + call check( nf90_def_var(ncid, "Gmass", NF90_FLOAT, dimids, Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_FLOAT, dimids, rhill_varid) ) + if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_FLOAT, dimids, radius_varid) ) + if (param%lrotation) then + call check( nf90_def_var(ncid, "Ip1", NF90_FLOAT, dimids, Ip1_varid) ) + call check( nf90_def_var(ncid, "Ip2", NF90_FLOAT, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "Ip3", NF90_FLOAT, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "rotx", NF90_FLOAT, dimids, rotx_varid) ) + call check( nf90_def_var(ncid, "roty", NF90_FLOAT, dimids, roty_varid) ) + call check( nf90_def_var(ncid, "rotz", NF90_FLOAT, dimids, rotz_varid) ) + end if + if (param%ltides) then + call check( nf90_def_var(ncid, "k2", NF90_FLOAT, dimids, k2_varid) ) + call check( nf90_def_var(ncid, "Q", NF90_FLOAT, dimids, Q_varid) ) + end if + end select + + !! Exit define mode + call check( nf90_enddef(ncid) ) + + !! Close the netCDF file + call check( nf90_close(ncid) ) + + !! Write the first frame of the output + call cb%write_frame(iu, param) + call pl%write_frame(iu, param) + call tp%write_frame(iu, param) + case default write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) call util_exit(FAILURE) end select - if (ierr /= 0) then - write(*, *) "Swiftest error: io_write_frame_system - first", ierr - write(*, *) " Binary output file " // trim(adjustl(param%outfile)) // " already exists or cannot be accessed" - write(*, *) " OUT_STAT: " // trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end if + lfirst = .false. + else - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error: io_write_frame_system" - write(*, *) " Unable to open binary output file for APPEND" - call util_exit(FAILURE) - end if - end if - call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) - - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) + call cb%write_frame(iu, param) + call pl%write_frame(iu, param) + call tp%write_frame(iu, param) end if - ! Write out each data type frame - call cb%write_frame(iu, param) - call pl%write_frame(iu, param) - call tp%write_frame(iu, param) - deallocate(cb, pl, tp) - close(iu) + contains + + !! Checks the status of all NetCDF operations to catch errors + subroutine check(status) + integer, intent ( in) :: status + + if(status /= nf90_noerr) then + print *, trim(nf90_strerror(status)) + stop "NetCDF Error: Stopped" + end if + end subroutine check return end subroutine io_write_frame_system From 115d5cec036a3df7dca73edc6f1f00802289befc Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Mon, 9 Aug 2021 15:18:03 -0400 Subject: [PATCH 003/315] bug fixes to io_write_frame_body switched from npl->n, added do loops in places I forgot them, commented out return statements --- src/io/io.f90 | 65 +++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index bfef5de24..c00607c94 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1325,6 +1325,7 @@ module subroutine io_write_frame_body(self, iu, param) integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + integer(I4B) :: i integer(I4B) :: ncid !! NetCDF ID for the output file integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension @@ -1362,39 +1363,43 @@ module subroutine io_write_frame_body(self, iu, param) select case (param%out_form) case (EL) - do i = 1, npl - call check( nf90_put_var(ncid, a_varid, self%a(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(self%id = i), start=(/self%id, param%t/)) ) + do i = 1, n + call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/self%id, param%t/)) ) end do case (XV) - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id = i), start=(/self%id, param%t/)) ) + do i = 1, n + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/self%id, param%t/)) ) + end do end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id = i), start=(/self%id, param%t/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id = i), start=(/self%id, param%t/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id = i), start=(/self%id, param%t/)) ) - if (param%lrotation) then - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id = i), start=(/self%id, param%t/)) ) - end if - if (param%ltides) then - call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id = i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id = i), start=(/self%id, param%t/)) ) - end if + do i = 1, n + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/self%id, param%t/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/self%id, param%t/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/self%id, param%t/)) ) + if (param%lrotation) then + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/self%id, param%t/)) ) + end if + if (param%ltides) then + call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/self%id, param%t/)) ) + end if + end do end select end associate @@ -1413,7 +1418,7 @@ subroutine check(status) end if end subroutine check - return + !return end subroutine io_write_frame_body @@ -1616,7 +1621,7 @@ subroutine check(status) end if end subroutine check - return + !return end subroutine io_write_frame_system From 1f9d3c2400a6a145573e3c82de322bef9746c665 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 10:51:00 -0400 Subject: [PATCH 004/315] Improved robustness of spill methods when keeps and lspill_list are different sizes. Created new plplcollision_list structure in order to prevent resizing of the plplenc_list every time there is a collision --- src/io/io.f90 | 14 ++-- src/modules/swiftest_globals.f90 | 3 - src/modules/symba_classes.f90 | 7 +- src/setup/setup.f90 | 3 +- src/symba/symba_collision.f90 | 83 ++++++++++---------- src/symba/symba_discard.f90 | 12 +-- src/symba/symba_setup.f90 | 1 + src/symba/symba_step.f90 | 11 +-- src/symba/symba_util.f90 | 48 ++++++++---- src/util/util_rescale.f90 | 8 +- src/util/util_spill.f90 | 125 +++++++++++++++++++++---------- 11 files changed, 195 insertions(+), 120 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 2fa42dcc1..10267c140 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -574,7 +574,6 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) iostat = -1 return end if - end if if (param%qmin > 0.0_DP) then if ((param%qmin_coord /= "HELIO") .and. (param%qmin_coord /= "BARY")) then @@ -622,6 +621,9 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "MU2KG = ",param%MU2KG write(*,*) "TU2S = ",param%TU2S write(*,*) "DU2M = ",param%DU2M + if (trim(adjustl(param%outfile)) == "") then + param%outfile = BIN_OUTFILE + end if if (trim(adjustl(param%enc_out)) /= "") then write(*,*) "ENC_OUT = ",trim(adjustl(param%enc_out)) else @@ -632,6 +634,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "BIG_DISCARD = ",param%lbig_discard else write(*,*) "! DISCARD_OUT not set: Discards will not be recorded to file" + param%lbig_discard = .false. write(*,*) "! BIG_DISCARD = ",param%lbig_discard end if @@ -643,10 +646,11 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) ! Calculate the G for the system units param%GU = GC / (param%DU2M**3 / (param%MU2KG * param%TU2S**2)) - - ! Calculate the inverse speed of light in the system units - param%inv_c2 = einsteinC * param%TU2S / param%DU2M - param%inv_c2 = (param%inv_c2)**(-2) + if (param%lgr) then + ! Calculate the inverse speed of light in the system units + param%inv_c2 = einsteinC * param%TU2S / param%DU2M + param%inv_c2 = (param%inv_c2)**(-2) + end if associate(integrator => v_list(1)) if (integrator == RMVS) then diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 5ec55f6c6..6cacac789 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -107,9 +107,6 @@ module swiftest_globals character(*), dimension(2), parameter :: DUMP_PARAM_FILE = ['dump_param1.dat', 'dump_param2.dat'] !> Default file names that can be changed by the user in the parameters file - character(*), parameter :: ENC_OUTFILE = 'encounter.out' - character(*), parameter :: DISCARD_FILE = 'discard.out' - character(*), parameter :: ENERGY_FILE = 'energy.out' character(*), parameter :: CB_INFILE = 'cb.in' character(*), parameter :: PL_INFILE = 'pl.in' character(*), parameter :: TP_INFILE = 'tp.in' diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 4628202f8..6a69adcc7 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -149,7 +149,7 @@ module symba_classes !> SyMBA class for tracking pl-pl close encounters in a step type, extends(symba_pltpenc) :: symba_plplenc contains - procedure :: scrub_non_collision => symba_collision_encounter_scrub !! Processes the pl-pl encounter list remove only those encounters that led to a collision + procedure :: extract_collisions => symba_collision_encounter_extract_collisions !! Processes the pl-pl encounter list remove only those encounters that led to a collision procedure :: resolve_fragmentations => symba_collision_resolve_fragmentations !! Process list of collisions, determine the collisional regime, and then create fragments procedure :: resolve_mergers => symba_collision_resolve_mergers !! Process list of collisions and merge colliding bodies together end type symba_plplenc @@ -161,6 +161,7 @@ module symba_classes class(symba_merger), allocatable :: pl_adds !! List of added bodies in mergers or collisions class(symba_pltpenc), allocatable :: pltpenc_list !! List of massive body-test particle encounters in a single step 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 contains procedure :: write_discard => symba_io_write_discard !! Write out information about discarded and merged planets and test particles in SyMBA @@ -184,11 +185,11 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec integer(I4B), intent(in) :: irec !! Current recursion level end subroutine symba_collision_check_pltpenc - module subroutine symba_collision_encounter_scrub(self, system, param) + module subroutine symba_collision_encounter_extract_collisions(self, system, param) implicit none class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameterss + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine module subroutine symba_collision_make_family_pl(self,idx) diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 8f96c48a1..843a48698 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -56,8 +56,9 @@ module subroutine setup_construct_system(system, param) allocate(symba_tp :: system%tp_discards) allocate(symba_merger :: system%pl_adds) allocate(symba_merger :: system%pl_discards) - allocate(symba_plplenc :: system%plplenc_list) allocate(symba_pltpenc :: system%pltpenc_list) + allocate(symba_plplenc :: system%plplenc_list) + allocate(symba_plplenc :: system%plplcollision_list) end select case (RINGMOONS) write(*,*) 'RINGMOONS-SyMBA integrator not yet enabled' diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 1910411b9..f1b023a53 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -267,7 +267,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v end function symba_collision_consolidate_familes - module subroutine symba_collision_encounter_scrub(self, system, param) + module subroutine symba_collision_encounter_extract_collisions(self, system, param) !! author: David A. Minton !! !! Processes the pl-pl encounter list remove only those encounters that led to a collision @@ -283,56 +283,55 @@ module subroutine symba_collision_encounter_scrub(self, system, param) integer(I4B), dimension(:), pointer :: plparent integer(I4B), dimension(:), allocatable :: collision_idx, unique_parent_idx integer(I4B) :: i, index_coll, ncollisions, nunique_parent - type(symba_plplenc) :: plplenc_noncollision select type (pl => system%pl) class is (symba_pl) associate(plplenc_list => self, nplplenc => self%nenc, idx1 => self%index1, idx2 => self%index2, plparent => pl%kin%parent) lplpl_collision(:) = plplenc_list%status(1:nplplenc) == COLLISION - if (any(lplpl_collision)) then ! Collisions have been detected in this step. So we need to determine which of them are between unique bodies. - - ! Get the subset of pl-pl encounters that lead to a collision - ncollisions = count(lplpl_collision(:)) - allocate(collision_idx(ncollisions)) - collision_idx = pack([(i, i=1, nplplenc)], lplpl_collision) - - ! Get the subset of collisions that involve a unique pair of parents - allocate(lplpl_unique_parent(ncollisions)) - - lplpl_unique_parent(:) = plparent(idx1(collision_idx(:))) /= plparent(idx2(collision_idx(:))) - nunique_parent = count(lplpl_unique_parent(:)) - allocate(unique_parent_idx(nunique_parent)) - unique_parent_idx = pack(collision_idx(:), lplpl_unique_parent(:)) - - ! Scrub all pl-pl collisions involving unique pairs of parents, which will remove all duplicates and leave behind - ! all pairs that have themselves as parents but are not part of the unique parent list. This can hapepn in rare cases - ! due to restructuring of parent/child relationships when there are large numbers of multi-body collisions in a single - ! step - lplpl_unique_parent(:) = .true. - do index_coll = 1, ncollisions - associate(ip1 => plparent(idx1(collision_idx(index_coll))), ip2 => plparent(idx2(collision_idx(index_coll)))) - lplpl_unique_parent(:) = .not. ( any(plparent(idx1(unique_parent_idx(:))) == ip1) .or. & - any(plparent(idx2(unique_parent_idx(:))) == ip1) .or. & - any(plparent(idx1(unique_parent_idx(:))) == ip2) .or. & - any(plparent(idx2(unique_parent_idx(:))) == ip2) ) - end associate - end do - - ! Reassemble collision index list to include only those containing the unique pairs of parents, plus all the non-unique pairs that don't - ! contain a parent body on the unique parent list. - ncollisions = nunique_parent + count(lplpl_unique_parent) - collision_idx = [unique_parent_idx(:), pack(collision_idx(:), lplpl_unique_parent(:))] - - ! Create a mask that contains only the pl-pl encounters that did not result in a collision, and then discard them - lplpl_collision(:) = .false. - lplpl_collision(collision_idx(:)) = .true. - end if - call plplenc_list%spill(plplenc_noncollision, .not.lplpl_collision, ldestructive=.true.) ! Remove any encounters that are not collisions from the list. + if (.not.any(lplpl_collision)) return + ! Collisions have been detected in this step. So we need to determine which of them are between unique bodies. + + ! Get the subset of pl-pl encounters that lead to a collision + ncollisions = count(lplpl_collision(:)) + allocate(collision_idx(ncollisions)) + collision_idx = pack([(i, i=1, nplplenc)], lplpl_collision) + + ! Get the subset of collisions that involve a unique pair of parents + allocate(lplpl_unique_parent(ncollisions)) + + lplpl_unique_parent(:) = plparent(idx1(collision_idx(:))) /= plparent(idx2(collision_idx(:))) + nunique_parent = count(lplpl_unique_parent(:)) + allocate(unique_parent_idx(nunique_parent)) + unique_parent_idx = pack(collision_idx(:), lplpl_unique_parent(:)) + + ! Scrub all pl-pl collisions involving unique pairs of parents, which will remove all duplicates and leave behind + ! all pairs that have themselves as parents but are not part of the unique parent list. This can hapepn in rare cases + ! due to restructuring of parent/child relationships when there are large numbers of multi-body collisions in a single + ! step + lplpl_unique_parent(:) = .true. + do index_coll = 1, ncollisions + associate(ip1 => plparent(idx1(collision_idx(index_coll))), ip2 => plparent(idx2(collision_idx(index_coll)))) + lplpl_unique_parent(:) = .not. ( any(plparent(idx1(unique_parent_idx(:))) == ip1) .or. & + any(plparent(idx2(unique_parent_idx(:))) == ip1) .or. & + any(plparent(idx1(unique_parent_idx(:))) == ip2) .or. & + any(plparent(idx2(unique_parent_idx(:))) == ip2) ) + end associate + end do + + ! Reassemble collision index list to include only those containing the unique pairs of parents, plus all the non-unique pairs that don't + ! contain a parent body on the unique parent list. + ncollisions = nunique_parent + count(lplpl_unique_parent) + collision_idx = [unique_parent_idx(:), pack(collision_idx(:), lplpl_unique_parent(:))] + + ! Create a mask that contains only the pl-pl encounters that did not result in a collision, and then discard them + lplpl_collision(:) = .false. + lplpl_collision(collision_idx(:)) = .true. + call plplenc_list%spill(system%plplcollision_list, lplpl_collision, ldestructive=.false.) ! Extract any encounters that are not collisions from the list. end associate end select return - end subroutine symba_collision_encounter_scrub + end subroutine symba_collision_encounter_extract_collisions module subroutine symba_collision_make_family_pl(self, idx) diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index c154b4290..f003ab9cb 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -291,21 +291,21 @@ module subroutine symba_discard_pl(self, system, param) class is (symba_nbody_system) select type(param) class is (symba_parameters) - associate(pl => self, plplenc_list => system%plplenc_list) + associate(pl => self, plplenc_list => system%plplenc_list, plplcollision_list => system%plplcollision_list) call pl%h2b(system%cb) ! First deal with the non pl-pl collisions call symba_discard_nonplpl(self, system, param) - ! Scrub the pl-pl encounter list of any encounters that did not lead to a collision - call plplenc_list%scrub_non_collision(system, param) + ! Extract the pl-pl encounter list and return the plplcollision_list + call plplenc_list%extract_collisions(system, param) - if ((plplenc_list%nenc > 0) .and. any(pl%lcollision(:))) then + if ((plplcollision_list%nenc > 0) .and. any(pl%lcollision(:))) then write(*, *) "Collision between massive bodies detected at time t = ",param%t if (param%lfragmentation) then - call plplenc_list%resolve_fragmentations(system, param) + call plplcollision_list%resolve_fragmentations(system, param) else - call plplenc_list%resolve_mergers(system, param) + call plplcollision_list%resolve_mergers(system, param) end if end if diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index e06fb20b5..e4644f25e 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -76,6 +76,7 @@ module subroutine symba_setup_initialize_system(self, param) call whm_setup_initialize_system(system, param) call system%pltpenc_list%setup(0) call system%plplenc_list%setup(0) + call system%plplcollision_list%setup(0) select type(pl => system%pl) class is (symba_pl) call pl%sort("mass", ascending=.false.) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 7065625b4..847d6e4ee 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -237,7 +237,7 @@ module subroutine symba_step_reset_system(self) ! Internals integer(I4B) :: i - associate(system => self, pltpenc_list => self%pltpenc_list, plplenc_list => self%plplenc_list, pl_adds => self%pl_adds, pl_discards => self%pl_discards) + associate(system => self) select type(pl => system%pl) class is (symba_pl) select type(tp => system%tp) @@ -255,18 +255,19 @@ module subroutine symba_step_reset_system(self) pl%levelm(:) = 0 pl%lencounter = .false. pl%lcollision = .false. - plplenc_list%nenc = 0 + system%plplenc_list%nenc = 0 + system%plplcollision_list%nenc = 0 end if if (tp%nbody > 0) then tp%nplenc(:) = 0 tp%levelg(:) = 0 tp%levelm(:) = 0 - pltpenc_list%nenc = 0 + system%pltpenc_list%nenc = 0 end if - call pl_adds%resize(0) - call pl_discards%resize(0) + call system%pl_adds%resize(0) + call system%pl_discards%resize(0) end select end select end associate diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 4c0f256e3..1335272fe 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -704,14 +704,25 @@ module subroutine symba_util_spill_arr_info(keeps, discards, lspill_list, ldestr type(symba_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -732,14 +743,25 @@ module subroutine symba_util_spill_arr_kin(keeps, discards, lspill_list, ldestru type(symba_kinship), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -806,7 +828,7 @@ module subroutine symba_util_spill_pltpenc(self, discards, lspill_list, ldestruc ! Internals integer(I4B) :: i - associate(keeps => self) + associate(keeps => self, nenc => self%nenc) select type(discards) class is (symba_pltpenc) call util_spill(keeps%level, discards%level, lspill_list, ldestructive) diff --git a/src/util/util_rescale.f90 b/src/util/util_rescale.f90 index 62a9409ec..50ebc088c 100644 --- a/src/util/util_rescale.f90 +++ b/src/util/util_rescale.f90 @@ -20,9 +20,11 @@ module subroutine util_rescale_system(self, param, mscale, dscale, tscale) ! Calculate the G for the system units param%GU = GC / (param%DU2M**3 / (param%MU2KG * param%TU2S**2)) - ! Calculate the inverse speed of light in the system units - param%inv_c2 = einsteinC * param%TU2S / param%DU2M - param%inv_c2 = (param%inv_c2)**(-2) + if (param%lgr) then + ! Calculate the inverse speed of light in the system units + param%inv_c2 = einsteinC * param%TU2S / param%DU2M + param%inv_c2 = (param%inv_c2)**(-2) + end if vscale = dscale / tscale diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 9c76ff5e9..8039d14b4 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -13,14 +13,25 @@ module subroutine util_spill_arr_char_string(keeps, discards, lspill_list, ldest character(len=STRMAX), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -40,14 +51,25 @@ module subroutine util_spill_arr_DP(keeps, discards, lspill_list, ldestructive) real(DP), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -68,19 +90,30 @@ module subroutine util_spill_arr_DPvec(keeps, discards, lspill_list, ldestructiv logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals - integer(I4B) :: i - - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(NDIM, count(lspill_list(:)))) + integer(I4B) :: i, nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(NDIM, nspill)) + else if (size(discards, dim=2) /= nspill) then + deallocate(discards) + allocate(discards(NDIM, nspill)) + end if do i = 1, NDIM - discards(i,:) = pack(keeps(i,:), lspill_list(:)) + discards(i,:) = pack(keeps(i,1:nlist), lspill_list(1:nlist)) end do if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then + if (nkeep > 0) then do i = 1, NDIM - keeps(i,:) = pack(keeps(i,:), .not. lspill_list(:)) + keeps(i,:) = pack(keeps(i,1:nlist), .not. lspill_list(1:nlist)) end do + else + deallocate(keeps) end if end if @@ -98,14 +131,25 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) integer(I4B), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -125,14 +169,25 @@ module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestruct logical, dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or no + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if - if (.not.allocated(keeps) .or. count(lspill_list(:)) == 0) return - if (.not.allocated(discards)) allocate(discards(count(lspill_list(:)))) - - discards(:) = pack(keeps(:), lspill_list(:)) + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then - if (count(.not.lspill_list(:)) > 0) then - keeps(:) = pack(keeps(:), .not. lspill_list(:)) + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) else deallocate(keeps) end if @@ -154,7 +209,6 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list ! Internals - integer(I4B) :: i ! For each component, pack the discarded bodies into the discard object and do the inverse with the keeps !> Spill all the common components @@ -185,7 +239,6 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) discards%nbody = count(lspill_list(:)) keeps%nbody = keeps%nbody - discards%nbody if (keeps%nbody > size(keeps%status)) keeps%status(keeps%nbody+1:size(keeps%status)) = INACTIVE - end associate return @@ -201,11 +254,8 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - ! Internals - integer(I4B) :: i associate(keeps => self) - call util_spill(keeps%lvdotr, discards%lvdotr, lspill_list, ldestructive) call util_spill(keeps%status, discards%status, lspill_list, ldestructive) call util_spill(keeps%index1, discards%index1, lspill_list, ldestructive) @@ -237,11 +287,8 @@ module subroutine util_spill_pl(self, discards, lspill_list, ldestructive) class(swiftest_body), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - ! Internals - integer(I4B) :: i associate(keeps => self) - select type (discards) ! The standard requires us to select the type of both arguments in order to access all the components class is (swiftest_pl) !> Spill components specific to the massive body class From 22c327e5a46aa11334887718e9d5b0340e7f9414 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 11:02:06 -0400 Subject: [PATCH 005/315] Added back the fragmentation regime and involved bodies report from the Fragmentation branch --- src/symba/symba_fragmentation.f90 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_fragmentation.f90 b/src/symba/symba_fragmentation.f90 index b36c54e9a..430b8f81d 100644 --- a/src/symba/symba_fragmentation.f90 +++ b/src/symba/symba_fragmentation.f90 @@ -30,7 +30,9 @@ module function symba_fragmentation_casedisruption(system, param, family, x, v, real(DP), dimension(:), allocatable :: m_frag, rad_frag integer(I4B), dimension(:), allocatable :: id_frag logical :: lfailure - + + write(*, '("Disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_DISRUPT allocate(m_frag(nfrag)) @@ -117,6 +119,8 @@ module function symba_fragmentation_casehitandrun(system, param, family, x, v, m logical :: lpure logical, dimension(system%pl%nbody) :: lmask + write(*, '("Hit and run between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + mtot = sum(mass(:)) xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot @@ -217,7 +221,7 @@ module function symba_fragmentation_casemerge(system, param, family, x, v, mass, select type(pl => system%pl) class is (symba_pl) - write(*, '("Merging bodies ",99(I8,",",:))') pl%id(family(:)) + write(*, '("Merging bodies ",I8,99(:,",",I8))') pl%id(family(:)) ibiggest = maxloc(pl%Gmass(family(:)), dim=1) id_frag(1) = pl%id(family(ibiggest)) @@ -304,6 +308,8 @@ module function symba_fragmentation_casesupercatastrophic(system, param, family, logical :: lfailure logical, dimension(system%pl%nbody) :: lmask + write(*, '("Supercatastrophic disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_SUPERCAT allocate(m_frag(nfrag)) From d532a58140bbd92efed516363fe3dc5586f9471d Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 12:42:58 -0400 Subject: [PATCH 006/315] Included NetCDF libraries in the Makefile --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 94dfbceeb..d9350cb39 100644 --- a/Makefile +++ b/Makefile @@ -57,13 +57,13 @@ SWIFTEST_MODULES = swiftest_globals.f90 \ include Makefile.Defines -MODULES = $(SWIFTEST_MODULES) $(USER_MODULES) +MODULES = $(SWIFTEST_MODULES) $(USER_MODULES) .PHONY : all mod lib libdir drivers bin clean force % : %.f90 force - $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include $< -o $@ \ - -L$(SWIFTEST_HOME)/lib -lswiftest + $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include -I$(NETCDF_FORTRAN_HOME)/include $< -o $@ \ + -L$(SWIFTEST_HOME)/lib -lswiftest -L$(NETCDF_FORTRAN_HOME)/lib -lnetcdf -lnetcdff $(INSTALL_PROGRAM) $@ $(SWIFTEST_HOME)/bin rm -f $@ @@ -75,7 +75,7 @@ all: mod: cd $(SWIFTEST_HOME)/src/modules/; \ - $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include -c $(MODULES); \ + $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include -I$(NETCDF_FORTRAN_HOME)/include -c $(MODULES); \ $(AR) rv $(SWIFTEST_HOME)/lib/libswiftest.a *.o; \ $(INSTALL_DATA) *.mod *.smod $(SWIFTEST_HOME)/include; \ rm -f *.o *.mod *.smod @@ -173,7 +173,7 @@ lib: make libdir libdir: - $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include -c *.f90; \ + $(FORTRAN) $(FFLAGS) -I$(SWIFTEST_HOME)/include -I$(NETCDF_FORTRAN_HOME)/include -c *.f90; \ $(AR) rv $(SWIFTEST_HOME)/lib/libswiftest.a *.o *.smod; \ $(INSTALL_DATA) *.smod $(SWIFTEST_HOME)/include; \ rm -f *.o *.smod From f40afa4f17258cd606ee6bd28a5e59a3f4d7b189 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 13:08:06 -0400 Subject: [PATCH 007/315] fixed the indexing of the netcdf array --- src/io/io.f90 | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c00607c94..5f9ea78fd 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1330,7 +1330,7 @@ module subroutine io_write_frame_body(self, iu, param) integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension integer(I4B) :: name_dimid !! NetCDF ID for the particle name dimension - integer(I4B) :: noutput !! Number of output events covering the total simulation time + integer(I4B) :: ioutput !! The current output number integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable @@ -1361,43 +1361,46 @@ module subroutine io_write_frame_body(self, iu, param) associate(n => self%nbody) if (n == 0) return + !! Calculate the output number that we are currently on + ioutput = (param%t / param%dt) / param%istep_out + select case (param%out_form) case (EL) do i = 1, n - call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/self%id, ioutput/)) ) end do case (XV) do i = 1, n - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/self%id, ioutput/)) ) end do end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body do i = 1, n - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/self%id, param%t/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/self%id, param%t/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/self%id, ioutput/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/self%id, ioutput/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/self%id, ioutput/)) ) if (param%lrotation) then - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/self%id, ioutput/)) ) end if if (param%ltides) then - call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/self%id, param%t/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/self%id, param%t/)) ) + call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/self%id, ioutput/)) ) end if end do end select From 68c2a87136101fde3506fffb0b3adce13513b002 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 13:12:39 -0400 Subject: [PATCH 008/315] added in use netcdf to io_write_frame_system --- src/io/io.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 5f9ea78fd..75657e161 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1471,6 +1471,7 @@ module subroutine io_write_frame_system(self, iu, param) !! !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 !! Adapted from Hal Levison's Swift routine io_write_frame.F + use netcdf implicit none ! Arguments class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object From bd5b0ce8fa035877354756ccd1a7ceea593f1572 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 13:28:47 -0400 Subject: [PATCH 009/315] rearranging in io_write_frame_system --- src/io/io.f90 | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 75657e161..9a5f8ed89 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1519,21 +1519,21 @@ module subroutine io_write_frame_system(self, iu, param) allocate(tp, source = self%tp) iu = BINUNIT - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) - end if - if (lfirst) then select case(param%out_stat) case('APPEND') !open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) @@ -1568,8 +1568,8 @@ module subroutine io_write_frame_system(self, iu, param) call check( nf90_def_var(ncid, "vhy", NF90_FLOAT, dimids, vhy_varid) ) call check( nf90_def_var(ncid, "vhz", NF90_FLOAT, dimids, vhz_varid) ) end select - select type(pl => self) - class is (swiftest_pl) + !select type(pl => self) + !class is (swiftest_pl) call check( nf90_def_var(ncid, "Gmass", NF90_FLOAT, dimids, Gmass_varid) ) if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_FLOAT, dimids, rhill_varid) ) if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_FLOAT, dimids, radius_varid) ) @@ -1593,6 +1593,16 @@ module subroutine io_write_frame_system(self, iu, param) !! Close the netCDF file call check( nf90_close(ncid) ) + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + !! Write the first frame of the output call cb%write_frame(iu, param) call pl%write_frame(iu, param) @@ -1606,6 +1616,17 @@ module subroutine io_write_frame_system(self, iu, param) lfirst = .false. else + + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) From 7a3de2fb355185e8c92c53dd6dbc07dbbf7af388 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 13:31:49 -0400 Subject: [PATCH 010/315] more rearranging of io_write_frame_system --- src/io/io.f90 | 75 +++++++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 9a5f8ed89..d42713b6f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1519,21 +1519,21 @@ module subroutine io_write_frame_system(self, iu, param) allocate(tp, source = self%tp) iu = BINUNIT + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + if (lfirst) then select case(param%out_stat) case('APPEND') !open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) - end if - call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) @@ -1568,24 +1568,22 @@ module subroutine io_write_frame_system(self, iu, param) call check( nf90_def_var(ncid, "vhy", NF90_FLOAT, dimids, vhy_varid) ) call check( nf90_def_var(ncid, "vhz", NF90_FLOAT, dimids, vhz_varid) ) end select - !select type(pl => self) - !class is (swiftest_pl) - call check( nf90_def_var(ncid, "Gmass", NF90_FLOAT, dimids, Gmass_varid) ) - if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_FLOAT, dimids, rhill_varid) ) - if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_FLOAT, dimids, radius_varid) ) - if (param%lrotation) then - call check( nf90_def_var(ncid, "Ip1", NF90_FLOAT, dimids, Ip1_varid) ) - call check( nf90_def_var(ncid, "Ip2", NF90_FLOAT, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "Ip3", NF90_FLOAT, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "rotx", NF90_FLOAT, dimids, rotx_varid) ) - call check( nf90_def_var(ncid, "roty", NF90_FLOAT, dimids, roty_varid) ) - call check( nf90_def_var(ncid, "rotz", NF90_FLOAT, dimids, rotz_varid) ) - end if - if (param%ltides) then - call check( nf90_def_var(ncid, "k2", NF90_FLOAT, dimids, k2_varid) ) - call check( nf90_def_var(ncid, "Q", NF90_FLOAT, dimids, Q_varid) ) - end if - end select + + call check( nf90_def_var(ncid, "Gmass", NF90_FLOAT, dimids, Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_FLOAT, dimids, rhill_varid) ) + if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_FLOAT, dimids, radius_varid) ) + if (param%lrotation) then + call check( nf90_def_var(ncid, "Ip1", NF90_FLOAT, dimids, Ip1_varid) ) + call check( nf90_def_var(ncid, "Ip2", NF90_FLOAT, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "Ip3", NF90_FLOAT, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "rotx", NF90_FLOAT, dimids, rotx_varid) ) + call check( nf90_def_var(ncid, "roty", NF90_FLOAT, dimids, roty_varid) ) + call check( nf90_def_var(ncid, "rotz", NF90_FLOAT, dimids, rotz_varid) ) + end if + if (param%ltides) then + call check( nf90_def_var(ncid, "k2", NF90_FLOAT, dimids, k2_varid) ) + call check( nf90_def_var(ncid, "Q", NF90_FLOAT, dimids, Q_varid) ) + end if !! Exit define mode call check( nf90_enddef(ncid) ) @@ -1593,16 +1591,6 @@ module subroutine io_write_frame_system(self, iu, param) !! Close the netCDF file call check( nf90_close(ncid) ) - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) - end if - !! Write the first frame of the output call cb%write_frame(iu, param) call pl%write_frame(iu, param) @@ -1617,19 +1605,10 @@ module subroutine io_write_frame_system(self, iu, param) else - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) - end if - call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) + end if deallocate(cb, pl, tp) From 4daec878c54d6a98c80d8b276458da506824691b Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 13:41:02 -0400 Subject: [PATCH 011/315] reordered dimensions of file so time is 'y' and id is 'x' --- src/io/io.f90 | 52 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index d42713b6f..69c38248b 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1367,40 +1367,40 @@ module subroutine io_write_frame_body(self, iu, param) select case (param%out_form) case (EL) do i = 1, n - call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/ioutput, self%id/)) ) end do case (XV) do i = 1, n - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/ioutput, self%id/)) ) end do end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body do i = 1, n - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/self%id, ioutput/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/self%id, ioutput/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/ioutput, self%id/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/ioutput, self%id/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/ioutput, self%id/)) ) if (param%lrotation) then - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/ioutput, self%id/)) ) end if if (param%ltides) then - call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/self%id, ioutput/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/self%id, ioutput/)) ) + call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/ioutput, self%id/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/ioutput, self%id/)) ) end if end do end select @@ -1547,9 +1547,9 @@ module subroutine io_write_frame_system(self, iu, param) noutput = (param%tstop / param%dt) / param%istep_out !! Define the NetCDF dimensions with particle name as the record dimension - call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) - call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) - dimids = (/ name_dimid, time_dimid /) + call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) !! x dimension + call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) !! y dimension + dimids = (/ time_dimid, name_dimid /) !! Define the variables select case (param%out_form) From e01a0b4d928fff705d5c882c472b2605ccafd437 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:10:02 -0400 Subject: [PATCH 012/315] fixed indexing of body ID in io_write_frame_body --- src/io/io.f90 | 68 ++++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 69c38248b..e0a5d9849 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1325,7 +1325,7 @@ module subroutine io_write_frame_body(self, iu, param) integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - integer(I4B) :: i + integer(I4B) :: i, j integer(I4B) :: ncid !! NetCDF ID for the output file integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension @@ -1366,42 +1366,48 @@ module subroutine io_write_frame_body(self, iu, param) select case (param%out_form) case (EL) - do i = 1, n - call check( nf90_put_var(ncid, a_varid, self%a(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(self%id == i), start=(/ioutput, self%id/)) ) + do j = 1, n + do i = 1, n + call check( nf90_put_var(ncid, a_varid, self%a(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(self%id(i) == j), start=(/ioutput, j/)) ) + end do end do case (XV) - do i = 1, n - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id == i), start=(/ioutput, self%id/)) ) + do j = 1, n + do i = 1, n + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id(i) == j), start=(/ioutput, j/)) ) + end do end do end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - do i = 1, n - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id == i), start=(/ioutput, self%id/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id == i), start=(/ioutput, self%id/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id == i), start=(/ioutput, self%id/)) ) - if (param%lrotation) then - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id == i), start=(/ioutput, self%id/)) ) - end if - if (param%ltides) then - call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id == i), start=(/ioutput, self%id/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id == i), start=(/ioutput, self%id/)) ) - end if + do j = 1, n + do i = 1, n + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id(i) == j), start=(/ioutput, j/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id(i) == j), start=(/ioutput, j/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id(i) == j), start=(/ioutput, j/)) ) + if (param%lrotation) then + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id(i) == j), start=(/ioutput, j/)) ) + end if + if (param%ltides) then + call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id(i) == j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id(i) == j), start=(/ioutput, j/)) ) + end if + end do end do end select end associate From 4426c6b070c140fbd200a47d0d6cb0d473b21323 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:21:51 -0400 Subject: [PATCH 013/315] added if statement to check if ID matches particle number --- src/io/io.f90 | 58 ++++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index e0a5d9849..87ddd570d 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1368,23 +1368,27 @@ module subroutine io_write_frame_body(self, iu, param) case (EL) do j = 1, n do i = 1, n - call check( nf90_put_var(ncid, a_varid, self%a(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(self%id(i) == j), start=(/ioutput, j/)) ) + if (self%id(i) == j) then + call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput, j/)) ) + end if end do end do case (XV) do j = 1, n do i = 1, n - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, self%id(i) == j), start=(/ioutput, j/)) ) + if (self%id(i) == j) then + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput, j/)) ) + end if end do end do end select @@ -1392,20 +1396,22 @@ module subroutine io_write_frame_body(self, iu, param) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body do j = 1, n do i = 1, n - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(self%id(i) == j), start=(/ioutput, j/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(self%id(i) == j), start=(/ioutput, j/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(self%id(i) == j), start=(/ioutput, j/)) ) - if (param%lrotation) then - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, self%id(i) == j), start=(/ioutput, j/)) ) - end if - if (param%ltides) then - call check( nf90_put_var(ncid, k2_varid, pl%k2(self%id(i) == j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(self%id(i) == j), start=(/ioutput, j/)) ) + if (self%id(i) == j) then + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(j), start=(/ioutput, j/)) ) + if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput, j/)) ) + if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput, j/)) ) + if (param%lrotation) then + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, j), start=(/ioutput, j/)) ) + end if + if (param%ltides) then + call check( nf90_put_var(ncid, k2_varid, pl%k2(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(j), start=(/ioutput, j/)) ) + end if end if end do end do From 713f9e05721fc4fc2a7163d25b29723ea9d5eb6c Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:26:30 -0400 Subject: [PATCH 014/315] added status message to netcdf error reporting --- src/io/io.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 87ddd570d..95af2e6f0 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1428,6 +1428,7 @@ subroutine check(status) integer, intent ( in) :: status if(status /= nf90_noerr) then + print *, status print *, trim(nf90_strerror(status)) stop "NetCDF Error: Stopped" end if @@ -1632,6 +1633,7 @@ subroutine check(status) integer, intent ( in) :: status if(status /= nf90_noerr) then + print *, status print *, trim(nf90_strerror(status)) stop "NetCDF Error: Stopped" end if From 5cfab3f00a535994ad8fed6c3a4dcfbf3b9d7b1e Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:40:41 -0400 Subject: [PATCH 015/315] reassigned all variable IDs in io_write_frame_body --- src/io/io.f90 | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 95af2e6f0..5a56e0ea8 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1369,6 +1369,15 @@ module subroutine io_write_frame_body(self, iu, param) do j = 1, n do i = 1, n if (self%id(i) == j) then + + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "a", a_varid)) + call check( nf90_inq_varid(ncid, "e", e_varid)) + call check( nf90_inq_varid(ncid, "inc", inc_varid)) + call check( nf90_inq_varid(ncid, "capom", capom_varid)) + call check( nf90_inq_varid(ncid, "omega", omega_varid)) + call check( nf90_inq_varid(ncid, "capm", capm_varid)) + call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput, j/)) ) @@ -1382,6 +1391,15 @@ module subroutine io_write_frame_body(self, iu, param) do j = 1, n do i = 1, n if (self%id(i) == j) then + + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "xhx", xhx_varid)) + call check( nf90_inq_varid(ncid, "xhy", xhy_varid)) + call check( nf90_inq_varid(ncid, "xhz", xhz_varid)) + call check( nf90_inq_varid(ncid, "vhx", vhx_varid)) + call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) + call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput, j/)) ) @@ -1397,10 +1415,30 @@ module subroutine io_write_frame_body(self, iu, param) do j = 1, n do i = 1, n if (self%id(i) == j) then + + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "Gmass", Gmass_varid)) call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(j), start=(/ioutput, j/)) ) - if (param%lrhill_present) call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput, j/)) ) - if (param%lclose) call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput, j/)) ) + if (param%lrhill_present) then + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "rhill", rhill_varid)) + call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput, j/)) ) + end if + if (param%lclose) then + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "radius", radius_varid)) + call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput, j/)) ) + end if if (param%lrotation) then + + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "Ip1", Ip1_varid)) + call check( nf90_inq_varid(ncid, "Ip2", Ip2_varid)) + call check( nf90_inq_varid(ncid, "Ip3", Ip3_varid)) + call check( nf90_inq_varid(ncid, "rotx", rotx_varid)) + call check( nf90_inq_varid(ncid, "roty", roty_varid)) + call check( nf90_inq_varid(ncid, "rotz", rotz_varid)) + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, j), start=(/ioutput, j/)) ) @@ -1409,6 +1447,11 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, j), start=(/ioutput, j/)) ) end if if (param%ltides) then + + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "k2", k2_varid)) + call check( nf90_inq_varid(ncid, "Q", Q_varid)) + call check( nf90_put_var(ncid, k2_varid, pl%k2(j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, Q_varid, pl%Q(j), start=(/ioutput, j/)) ) end if @@ -1428,7 +1471,6 @@ subroutine check(status) integer, intent ( in) :: status if(status /= nf90_noerr) then - print *, status print *, trim(nf90_strerror(status)) stop "NetCDF Error: Stopped" end if @@ -1633,7 +1675,6 @@ subroutine check(status) integer, intent ( in) :: status if(status /= nf90_noerr) then - print *, status print *, trim(nf90_strerror(status)) stop "NetCDF Error: Stopped" end if From c4603379607fdd3f24130a9d2be9672ce272be5a Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:45:48 -0400 Subject: [PATCH 016/315] debug write statements in io.f90 --- src/io/io.f90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 5a56e0ea8..9cc1f79f5 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1400,6 +1400,9 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) + write(*,*) "ioutput", ioutput + write(*,*) "j", j + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput, j/)) ) call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput, j/)) ) @@ -1600,6 +1603,7 @@ module subroutine io_write_frame_system(self, iu, param) !! Calculate the number of outputs needed to cover the entire simulation time noutput = (param%tstop / param%dt) / param%istep_out + write(*,*) "noutput", noutput !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) !! x dimension From dd38b159350f2661adbdbe44f29ee3398346263b Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 11 Aug 2021 14:50:30 -0400 Subject: [PATCH 017/315] fixed indexing of output file to account for t=0 --- src/io/io.f90 | 52 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 9cc1f79f5..c0f9c33f5 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1378,12 +1378,12 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_inq_varid(ncid, "omega", omega_varid)) call check( nf90_inq_varid(ncid, "capm", capm_varid)) - call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput + 1, j/)) ) end if end do end do @@ -1400,15 +1400,12 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) - write(*,*) "ioutput", ioutput - write(*,*) "j", j - - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput + 1, j/)) ) end if end do end do @@ -1421,16 +1418,16 @@ module subroutine io_write_frame_body(self, iu, param) !! Reassign all variable IDs call check( nf90_inq_varid(ncid, "Gmass", Gmass_varid)) - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(j), start=(/ioutput + 1, j/)) ) if (param%lrhill_present) then !! Reassign all variable IDs call check( nf90_inq_varid(ncid, "rhill", rhill_varid)) - call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput + 1, j/)) ) end if if (param%lclose) then !! Reassign all variable IDs call check( nf90_inq_varid(ncid, "radius", radius_varid)) - call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput + 1, j/)) ) end if if (param%lrotation) then @@ -1442,12 +1439,12 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_inq_varid(ncid, "roty", roty_varid)) call check( nf90_inq_varid(ncid, "rotz", rotz_varid)) - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, roty_varid, pl%rot(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, j), start=(/ioutput + 1, j/)) ) end if if (param%ltides) then @@ -1455,8 +1452,8 @@ module subroutine io_write_frame_body(self, iu, param) call check( nf90_inq_varid(ncid, "k2", k2_varid)) call check( nf90_inq_varid(ncid, "Q", Q_varid)) - call check( nf90_put_var(ncid, k2_varid, pl%k2(j), start=(/ioutput, j/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(j), start=(/ioutput, j/)) ) + call check( nf90_put_var(ncid, k2_varid, pl%k2(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, Q_varid, pl%Q(j), start=(/ioutput + 1, j/)) ) end if end if end do @@ -1602,8 +1599,7 @@ module subroutine io_write_frame_system(self, iu, param) call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time - noutput = (param%tstop / param%dt) / param%istep_out - write(*,*) "noutput", noutput + noutput = ((param%tstop / param%dt) / param%istep_out) + 1 !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) !! x dimension From f6282eba5ae441f82e71da1f94e22017d33ce40b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 15:29:33 -0400 Subject: [PATCH 018/315] Rearranged encounter writing subroutines and moved the original io_write_encounter to RMVS only --- .../8pl_16tp_encounters/init_cond.py | 6 +- .../8pl_16tp_encounters/param.swifter.in | 4 +- .../8pl_16tp_encounters/param.swiftest.in | 8 +- .../8pl_16tp_encounters/pl.in | 48 +- .../8pl_16tp_encounters/pl.swifter.in | 48 +- .../8pl_16tp_encounters/pl.swiftest.in | 48 +- .../8pl_16tp_encounters/tp.in | 64 +-- .../swiftest_vs_swifter.ipynb | 462 ++++++++---------- python/swiftest/swiftest/io.py | 4 +- src/io/io.f90 | 113 +++-- src/kick/kick.f90 | 16 +- src/modules/rmvs_classes.f90 | 8 + src/modules/swiftest_classes.f90 | 24 +- src/rmvs/rmvs_io.f90 | 48 ++ src/rmvs/rmvs_step.f90 | 3 +- src/setup/setup.f90 | 3 + src/symba/symba_io.f90 | 2 + src/util/util_copy.f90 | 1 + src/util/util_spill.f90 | 1 + 19 files changed, 480 insertions(+), 431 deletions(-) create mode 100644 src/rmvs/rmvs_io.f90 diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py index 49d017b86..5ce3cec71 100755 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py @@ -19,12 +19,13 @@ swiftest_cb = "cb.swiftest.in" swiftest_bin = "bin.swiftest.dat" swiftest_enc = "enc.swiftest.dat" +swiftest_disc = "discard.swiftest.out" sim = swiftest.Simulation() sim.param['T0'] = 0.0 sim.param['DT'] = 1.0 -sim.param['TSTOP'] = 365.25e1 +sim.param['TSTOP'] = 365.25e2 sim.param['ISTEP_OUT'] = 10 sim.param['ISTEP_DUMP'] = 10 sim.param['CHK_QMIN_COORD'] = "HELIO" @@ -84,7 +85,7 @@ for i in pl.id: pli = pl.sel(id=i) rstart = 2 * np.double(pli['Radius']) # Start the test particles at a multiple of the planet radius away - vstart = 1.5 * np.sqrt(2 * np.double(pli['Mass']) / rstart) # Start the test particle velocities at a multiple of the escape speed + vstart = 1.5 * np.sqrt(2 * np.double(pli['GMass']) / rstart) # Start the test particle velocities at a multiple of the escape speed xvstart = np.array([rstart / np.sqrt(2.0), rstart / np.sqrt(2.0), 0.0, vstart, 0.0, 0.0]) # The positions and velocities of each pair of test particles will be in reference to a planet plvec = np.array([np.double(pli['px']), @@ -124,6 +125,7 @@ sim.param['CB_IN'] = swiftest_cb sim.param['BIN_OUT'] = swiftest_bin sim.param['ENC_OUT'] = swiftest_enc +sim.param['DISCARD_OUT'] = swiftest_disc sim.save(swiftest_input) sim.param['PL_IN'] = swifter_pl diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in index 36dd2060f..741d5ac99 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in @@ -1,6 +1,6 @@ ! VERSION Swifter parameter file converted from Swiftest T0 0.0 -TSTOP 3652.5 +TSTOP 36525.0 DT 1.0 ISTEP_OUT 10 ISTEP_DUMP 10 @@ -11,13 +11,13 @@ IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.in BIN_OUT bin.swifter.dat -ENC_OUT enc.swifter.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 CHK_EJECT 1000.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swifter.dat EXTRA_FORCE NO BIG_DISCARD NO CHK_CLOSE YES diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in index b08b66850..633613b13 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in @@ -1,6 +1,6 @@ ! VERSION Swiftest parameter input T0 0.0 -TSTOP 3652.5 +TSTOP 36525.0 DT 1.0 ISTEP_OUT 10 ISTEP_DUMP 10 @@ -12,7 +12,6 @@ PL_IN pl.swiftest.in TP_IN tp.in CB_IN cb.swiftest.in BIN_OUT bin.swiftest.dat -ENC_OUT enc.swiftest.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 @@ -22,7 +21,9 @@ CHK_QMIN_RANGE 0.004650467260962157 1000.0 MU2KG 1.988409870698051e+30 TU2S 86400 DU2M 149597870700.0 +ENC_OUT enc.swiftest.dat EXTRA_FORCE NO +DISCARD_OUT discard.swiftest.out BIG_DISCARD NO CHK_CLOSE YES RHILL_PRESENT YES @@ -31,6 +32,3 @@ ROTATION NO TIDES NO ENERGY NO GR NO -YARKOVSKY NO -YORP NO -MTINY 0.0 diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.in index 207dd84f6..e506d4743 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.in @@ -1,33 +1,33 @@ 8 -1 4.9125474498983623693e-11 0.001475124456355905224 +1 4.9125474498983623693e-11 0.0014751244935834097723 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --0.018820805516945871005 -0.023743802865467341506 -0.00021385162925667799668 -2 7.243452483873646905e-10 0.006759069616556246028 +-0.37723213134178928962 0.033583006382262102496 0.037347605390151236704 +-0.008342765357522348782 -0.026815373891535949219 -0.0014259978126226569104 +2 7.243452483873646905e-10 0.006759064884572926305 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -0.012753121506668980284 -0.015678149412530151263 -0.0009510907726656827677 -3 8.9970113821660187435e-10 0.010044908171483009529 +-0.48772324783973242113 -0.53438159383885197595 0.020810210727290629623 +0.014797158412775200664 -0.013730742274988789325 -0.0010423161661001279551 +3 8.9970113821660187435e-10 0.01004492566381686821 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -0.012205130808798069983 0.0117727888369263504476 -6.0385404652521189453e-07 -4 9.549535102761465607e-11 0.0072466797341124641736 +0.75635861236241797023 -0.674672320414933413 2.9482164814591560215e-05 +0.0111724732704936106226 0.0127745538308708106445 -6.4922715710692383536e-07 +4 9.549535102761465607e-11 0.007246661019460395855 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.0027036789764029569086 -0.012421968497550240837 -0.00019400613558421780209 -5 2.825345908631354893e-07 0.35527079166215922855 +-1.6298746849997449715 0.3207423054955682029 0.04670239471945906301 +-0.0021807443711779391643 -0.012535287802970449672 -0.00020920945169970240392 +5 2.825345908631354893e-07 0.3552709189640263194 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -0.0041683967523185880624 0.0065946899141205552256 -0.00012065009272080269359 -6 8.459715183006415395e-08 0.43765832419088212185 +4.173466317007961557 -2.8016935252076420326 -0.081737437087388009616 +0.0041198995131368296857 0.0066275220486694394126 -0.000119701756809504006665 +6 8.459715183006415395e-08 0.43765971211410006393 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -0.0039680130835247464163 0.0035798698934692090544 -0.00022010758050265331019 -7 1.2920249163736673626e-08 0.46960112247450473807 +6.414531809550852337 -7.603234575912382276 -0.12309230194363039723 +0.0039583234912346160553 0.003591394820962775982 -0.00021992254044702681153 +7 1.2920249163736673626e-08 0.4696151691794380732 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.0026297294662822792016 0.0027702756265410048361 4.4212949669357180555e-05 -8 1.5243589003230834323e-08 0.78136567314580814177 +14.779979482167510341 13.088063528768900667 -0.14289732557134240953 +-0.0026326202792006140295 0.002767798188238951903 4.424098699891899271e-05 +8 1.5243589003230834323e-08 0.7813830605782720197 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.00046181040300440859715 0.0031288137434451902125 -7.498349850432879627e-05 +29.57093474400743105 -4.53865809805519671 -0.5880859062837571205 +0.00046012900387533010914 0.0031291067120909890273 -7.4950441013985698475e-05 diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swifter.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swifter.in index 3179473c0..1dbc75e21 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swifter.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swifter.in @@ -2,35 +2,35 @@ 0 0.00029591220819207775568 0.0 0.0 0.0 0.0 0.0 0.0 -1 4.9125474498983623693e-11 0.001475124456355905224 +1 4.9125474498983623693e-11 0.0014751244935834097723 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --0.018820805516945871005 -0.023743802865467341506 -0.00021385162925667799668 -2 7.243452483873646905e-10 0.006759069616556246028 +-0.37723213134178928962 0.033583006382262102496 0.037347605390151236704 +-0.008342765357522348782 -0.026815373891535949219 -0.0014259978126226569104 +2 7.243452483873646905e-10 0.006759064884572926305 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -0.012753121506668980284 -0.015678149412530151263 -0.0009510907726656827677 -3 8.9970113821660187435e-10 0.010044908171483009529 +-0.48772324783973242113 -0.53438159383885197595 0.020810210727290629623 +0.014797158412775200664 -0.013730742274988789325 -0.0010423161661001279551 +3 8.9970113821660187435e-10 0.01004492566381686821 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -0.012205130808798069983 0.0117727888369263504476 -6.0385404652521189453e-07 -4 9.549535102761465607e-11 0.0072466797341124641736 +0.75635861236241797023 -0.674672320414933413 2.9482164814591560215e-05 +0.0111724732704936106226 0.0127745538308708106445 -6.4922715710692383536e-07 +4 9.549535102761465607e-11 0.007246661019460395855 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.0027036789764029569086 -0.012421968497550240837 -0.00019400613558421780209 -5 2.825345908631354893e-07 0.35527079166215922855 +-1.6298746849997449715 0.3207423054955682029 0.04670239471945906301 +-0.0021807443711779391643 -0.012535287802970449672 -0.00020920945169970240392 +5 2.825345908631354893e-07 0.3552709189640263194 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -0.0041683967523185880624 0.0065946899141205552256 -0.00012065009272080269359 -6 8.459715183006415395e-08 0.43765832419088212185 +4.173466317007961557 -2.8016935252076420326 -0.081737437087388009616 +0.0041198995131368296857 0.0066275220486694394126 -0.000119701756809504006665 +6 8.459715183006415395e-08 0.43765971211410006393 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -0.0039680130835247464163 0.0035798698934692090544 -0.00022010758050265331019 -7 1.2920249163736673626e-08 0.46960112247450473807 +6.414531809550852337 -7.603234575912382276 -0.12309230194363039723 +0.0039583234912346160553 0.003591394820962775982 -0.00021992254044702681153 +7 1.2920249163736673626e-08 0.4696151691794380732 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.0026297294662822792016 0.0027702756265410048361 4.4212949669357180555e-05 -8 1.5243589003230834323e-08 0.78136567314580814177 +14.779979482167510341 13.088063528768900667 -0.14289732557134240953 +-0.0026326202792006140295 0.002767798188238951903 4.424098699891899271e-05 +8 1.5243589003230834323e-08 0.7813830605782720197 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.00046181040300440859715 0.0031288137434451902125 -7.498349850432879627e-05 +29.57093474400743105 -4.53865809805519671 -0.5880859062837571205 +0.00046012900387533010914 0.0031291067120909890273 -7.4950441013985698475e-05 diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swiftest.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swiftest.in index 207dd84f6..e506d4743 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swiftest.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -1 4.9125474498983623693e-11 0.001475124456355905224 +1 4.9125474498983623693e-11 0.0014751244935834097723 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --0.018820805516945871005 -0.023743802865467341506 -0.00021385162925667799668 -2 7.243452483873646905e-10 0.006759069616556246028 +-0.37723213134178928962 0.033583006382262102496 0.037347605390151236704 +-0.008342765357522348782 -0.026815373891535949219 -0.0014259978126226569104 +2 7.243452483873646905e-10 0.006759064884572926305 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -0.012753121506668980284 -0.015678149412530151263 -0.0009510907726656827677 -3 8.9970113821660187435e-10 0.010044908171483009529 +-0.48772324783973242113 -0.53438159383885197595 0.020810210727290629623 +0.014797158412775200664 -0.013730742274988789325 -0.0010423161661001279551 +3 8.9970113821660187435e-10 0.01004492566381686821 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -0.012205130808798069983 0.0117727888369263504476 -6.0385404652521189453e-07 -4 9.549535102761465607e-11 0.0072466797341124641736 +0.75635861236241797023 -0.674672320414933413 2.9482164814591560215e-05 +0.0111724732704936106226 0.0127745538308708106445 -6.4922715710692383536e-07 +4 9.549535102761465607e-11 0.007246661019460395855 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.0027036789764029569086 -0.012421968497550240837 -0.00019400613558421780209 -5 2.825345908631354893e-07 0.35527079166215922855 +-1.6298746849997449715 0.3207423054955682029 0.04670239471945906301 +-0.0021807443711779391643 -0.012535287802970449672 -0.00020920945169970240392 +5 2.825345908631354893e-07 0.3552709189640263194 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -0.0041683967523185880624 0.0065946899141205552256 -0.00012065009272080269359 -6 8.459715183006415395e-08 0.43765832419088212185 +4.173466317007961557 -2.8016935252076420326 -0.081737437087388009616 +0.0041198995131368296857 0.0066275220486694394126 -0.000119701756809504006665 +6 8.459715183006415395e-08 0.43765971211410006393 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -0.0039680130835247464163 0.0035798698934692090544 -0.00022010758050265331019 -7 1.2920249163736673626e-08 0.46960112247450473807 +6.414531809550852337 -7.603234575912382276 -0.12309230194363039723 +0.0039583234912346160553 0.003591394820962775982 -0.00021992254044702681153 +7 1.2920249163736673626e-08 0.4696151691794380732 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.0026297294662822792016 0.0027702756265410048361 4.4212949669357180555e-05 -8 1.5243589003230834323e-08 0.78136567314580814177 +14.779979482167510341 13.088063528768900667 -0.14289732557134240953 +-0.0026326202792006140295 0.002767798188238951903 4.424098699891899271e-05 +8 1.5243589003230834323e-08 0.7813830605782720197 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.00046181040300440859715 0.0031288137434451902125 -7.498349850432879627e-05 +29.57093474400743105 -4.53865809805519671 -0.5880859062837571205 +0.00046012900387533010914 0.0031291067120909890273 -7.4950441013985698475e-05 diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/tp.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/tp.in index c1e239467..e8eeff31e 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/tp.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/tp.in @@ -1,49 +1,49 @@ 16 101 --0.30947664140174180325 0.16192347328838543885 0.041620272188990829754 --0.01621725604493672035 -0.023743802865467341506 -0.00021385162925667799668 +-0.37720907063545766613 0.033606067088593753744 0.037347605390151236704 +-0.0057392158855131963913 -0.026815373891535949219 -0.0014259978126226569104 102 --0.30952276281440505024 0.16187735187572213635 0.041620272188990829754 --0.021424354988955021661 -0.023743802865467341506 -0.00021385162925667799668 +-0.37725519204812091312 0.033559945675930451248 0.037347605390151236704 +-0.010946314829531501173 -0.026815373891535949219 -0.0014259978126226569104 103 --0.55665652353468386693 -0.46068452244605162527 0.02580196630219121906 -0.019100355212014374223 -0.015678149412530151263 -0.0009510907726656827677 +-0.48766603754926024505 -0.53432438354837974437 0.020810210727290629623 +0.021144392118120594604 -0.013730742274988789325 -0.0010423161661001279551 104 --0.5567709441156283301 -0.4607989430269959774 0.02580196630219121906 -0.0064058878013235863447 -0.015678149412530151263 -0.0009510907726656827677 +-0.4877804581302045972 -0.53443880412932420754 0.020810210727290629623 +0.008449924707429806725 -0.013730742274988789325 -0.0010423161661001279551 105 -0.6979392465946233637 -0.7360158052852626698 3.261671020506711323e-05 -0.019099571043071944532 0.0117727888369263504476 -6.0385404652521189453e-07 +0.7564188402683574841 -0.6746120925089938991 2.9482164814591560215e-05 +0.018066913504767485171 0.0127745538308708106445 -6.4922715710692383536e-07 106 -0.6978187907827443359 -0.73613626109714169754 3.261671020506711323e-05 -0.005310690574524194567 0.0117727888369263504476 -6.0385404652521189453e-07 +0.75629838445647845635 -0.67473254832087292687 2.9482164814591560215e-05 +0.0042780330362197352065 0.0127745538308708106445 -6.4922715710692383536e-07 107 --1.6176294307533440886 0.38317575049123231423 0.04771055403546069218 -0.00037580012182093606998 -0.012421968497550240837 -0.00019400613558421780209 +-1.6298426425859910971 0.3207743479093220218 0.04670239471945906301 +0.00089873472704595381427 -0.012535287802970449672 -0.00020920945169970240392 108 --1.6176935155808518374 0.38311166566372467646 0.04771055403546069218 --0.005783158074626849887 -0.012421968497550240837 -0.00019400613558421780209 +-1.6299067274134988459 0.32071026308181438402 0.04670239471945906301 +-0.005260223469401832143 -0.012535287802970449672 -0.00020920945169970240392 109 -4.1534063578978459574 -2.834088304936593694 -0.081136554176388195336 -0.041050613953966016978 0.0065946899141205552256 -0.00012065009272080269359 +4.174127216016058739 -2.8010326261995448505 -0.081737437087388009616 +0.041002116714784257734 0.0066275220486694394126 -0.000119701756809504006665 110 -4.152084559881651593 -2.8354101029527880584 -0.081136554176388195336 --0.032713820449328842588 0.0065946899141205552256 -0.00012065009272080269359 +4.1728054179998643747 -2.8023544242157392148 -0.081737437087388009616 +-0.032762317688510601832 0.0066275220486694394126 -0.000119701756809504006665 111 -6.395266446455758924 -7.620612254932671803 -0.121992225877669294154 -0.026081181967058334609 0.0035798698934692090544 -0.00022010758050265331019 +6.415082301905982831 -7.602684083557251782 -0.12309230194363039723 +0.026071492374768204248 0.003591394820962775982 -0.00021992254044702681153 112 -6.394165461745497936 -7.621713239642932791 -0.121992225877669294154 --0.01814515580000884351 0.0035798698934692090544 -0.00022010758050265331019 +6.413981317195721843 -7.60378506826751277 -0.12309230194363039723 +-0.018154845392298973872 0.003591394820962775982 -0.00021992254044702681153 113 -14.793375114914683266 13.074458101351583039 -0.14311846037737518955 -0.0104650340723796142495 0.0027702756265410048361 4.4212949669357180555e-05 +14.780219240154712779 13.088303286756103105 -0.14289732557134240953 +0.010462143259461278988 0.002767798188238951903 4.424098699891899271e-05 114 -14.79289559894027839 13.073978585377178163 -0.14311846037737518955 --0.015724493004944172653 0.0027702756265410048361 4.4212949669357180555e-05 +14.779739724180307903 13.087823770781698229 -0.14289732557134240953 +-0.015727383817862507914 0.002767798188238951903 4.424098699891899271e-05 115 -29.568862657342247502 -4.5540701367497931074 -0.58771107137394917874 -0.0148974462162825404404 0.0031288137434451902125 -7.498349850432879627e-05 +29.571167506453647889 -4.538425335608981648 -0.5880859062837571205 +0.01489576481715346179 0.0031291067120909890273 -7.4950441013985698475e-05 116 -29.568397132449813824 -4.554535661642223232 -0.58771107137394917874 --0.013973825410273721728 0.0031288137434451902125 -7.498349850432879627e-05 +29.570701981561214211 -4.5388908605014117725 -0.5880859062837571205 +-0.013975506809402800379 0.0031291067120909890273 -7.4950441013985698475e-05 diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb index 3a80eebd1..dee66b3b6 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -57,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -75,23 +75,23 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, - "execution_count": 13, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -466,140 +466,140 @@ " fill: currentColor;\n", "}\n", "
<xarray.DataArray 'vx' (time (y): 221)>\n",
-       "array([0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
+       "array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
        "...\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.        , 0.        , 0.        ,\n",
-       "       0.        , 0.        , 0.02101973, 0.02102004, 0.02102057,\n",
-       "       0.0210213 , 0.02102224, 0.02102336, 0.02102465, 0.02102612,\n",
-       "       0.02102774, 0.02102951, 0.02103142, 0.02103346, 0.02103561,\n",
-       "       0.02103787, 0.02104022, 0.02104267, 0.02104519, 0.02104778,\n",
-       "       0.02105043, 0.02105312, 0.02105586, 0.02105862, 0.0210614 ,\n",
-       "       0.02106419])\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
+       "        0.00000000e+00,  3.98117095e-11, -9.46069889e-11, -2.30539143e-10,\n",
+       "       -3.67965214e-10, -5.06869213e-10, -6.47232490e-10, -7.89038168e-10,\n",
+       "       -9.32266708e-10, -1.07690123e-09, -1.22292310e-09, -1.37031364e-09,\n",
+       "       -1.51905422e-09, -1.66912617e-09, -1.82051085e-09, -1.97318961e-09,\n",
+       "       -2.12714202e-09, -2.28234942e-09, -2.43879317e-09, -2.59645283e-09,\n",
+       "       -2.75530976e-09, -2.91534441e-09, -3.07653725e-09, -3.23886606e-09,\n",
+       "       -3.40231310e-09])\n",
        "Coordinates:\n",
        "    id        float64 2.0\n",
-       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      float64
      2.0
      array(2.)
    • time (y)
      (time (y))
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", - "array([0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", + "array([ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", "...\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0.02101973, 0.02102004, 0.02102057,\n", - " 0.0210213 , 0.02102224, 0.02102336, 0.02102465, 0.02102612,\n", - " 0.02102774, 0.02102951, 0.02103142, 0.02103346, 0.02103561,\n", - " 0.02103787, 0.02104022, 0.02104267, 0.02104519, 0.02104778,\n", - " 0.02105043, 0.02105312, 0.02105586, 0.02105862, 0.0210614 ,\n", - " 0.02106419])\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 3.98117095e-11, -9.46069889e-11, -2.30539143e-10,\n", + " -3.67965214e-10, -5.06869213e-10, -6.47232490e-10, -7.89038168e-10,\n", + " -9.32266708e-10, -1.07690123e-09, -1.22292310e-09, -1.37031364e-09,\n", + " -1.51905422e-09, -1.66912617e-09, -1.82051085e-09, -1.97318961e-09,\n", + " -2.12714202e-09, -2.28234942e-09, -2.43879317e-09, -2.59645283e-09,\n", + " -2.75530976e-09, -2.91534441e-09, -3.07653725e-09, -3.23886606e-09,\n", + " -3.40231310e-09])\n", "Coordinates:\n", " id float64 2.0\n", " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" ] }, - "execution_count": 19, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -610,7 +610,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -967,152 +967,80 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'vx' (time: 221)>\n",
    -       "array([ 0.        , -0.02730963, -0.05461883, -0.08192718, -0.10923426,\n",
    -       "       -0.13653965, -0.16384292, -0.19114364, -0.21844141, -0.24573578,\n",
    -       "       -0.27302634, -0.30031266, -0.32759433, -0.35487091, -0.38214199,\n",
    -       "       -0.40940715, -0.43666596, -0.463918  , -0.49116285, -0.51840009,\n",
    -       "       -0.5456293 , -0.57285005, -0.60006193, -0.62726452, -0.6544574 ,\n",
    -       "       -0.68164014, -0.70881234, -0.73597358, -0.76312342, -0.79026147,\n",
    -       "       -0.8173873 , -0.8445005 , -0.87160064, -0.89868733, -0.92576014,\n",
    -       "       -0.95281866, -0.97986247, -1.00689117, -1.03390434, -1.06090158,\n",
    -       "       -1.08788246, -1.11484659, -1.14179356, -1.16872296, -1.19563437,\n",
    -       "       -1.22252741, -1.24940165, -1.27625671, -1.30309216, -1.32990762,\n",
    -       "       -1.35670269, -1.38347696, -1.41023003, -1.43696151, -1.463671  ,\n",
    -       "       -1.4903581 , -1.51702243, -1.54366359, -1.57028119, -1.59687484,\n",
    -       "       -1.62344416, -1.64998874, -1.67650822, -1.70300221, -1.72947032,\n",
    -       "       -1.75591217, -1.78232739, -1.8087156 , -1.83507643, -1.8614095 ,\n",
    -       "       -1.88771444, -1.91399088, -1.94023846, -1.96645681, -1.99264557,\n",
    -       "       -2.01880437, -2.04493287, -2.0710307 , -2.09709752, -2.12313297,\n",
    -       "       -2.1491367 , -2.17510838, -2.20104766, -2.2269542 , -2.25282767,\n",
    -       "       -2.27866774, -2.30447407, -2.33024634, -2.35598424, -2.38168744,\n",
    -       "       -2.40735563, -2.43298851, -2.45858576, -2.48414708, -2.50967219,\n",
    -       "       -2.53516079, -2.56061259, -2.58602731, -2.61140468, -2.63674443,\n",
    -       "...\n",
    -       "       -3.28166908, -3.30592115, -3.33013189, -3.3543014 , -3.37842979,\n",
    -       "       -3.40251722, -3.42656386, -3.45056991, -3.47453562, -3.49846126,\n",
    -       "       -3.52234715, -3.54619364, -3.57000113, -3.59377005, -3.61750092,\n",
    -       "       -3.64119426, -3.66485068, -3.68847086, -3.71205553, -3.73560548,\n",
    -       "       -3.75912161, -3.78260489, -3.80605637, -3.82947723, -3.85286873,\n",
    -       "       -3.87623226, -3.89956936, -3.92288168, -3.94617105, -3.96943947,\n",
    -       "       -3.99268912, -4.01592242, -4.03914199, -4.06235073, -4.08555183,\n",
    -       "       -4.10874879, -4.13194551, -4.15514625, -4.17835577, -4.20157933,\n",
    -       "       -4.2248228 , -4.24809272, -4.2713964 , -4.29474206, -4.31813893,\n",
    -       "       -4.34159746, -4.36512951, -4.38874856, -4.41247007, -4.43631182,\n",
    -       "       -4.46029439, -4.48444172, -4.50878191, -4.53334814, -4.55817998,\n",
    -       "       -4.58332498, -4.60884098, -4.63479915, -4.66128825, -4.68842081,\n",
    -       "       -4.71634199, -4.7452432 , -4.77538326, -4.80712299, -4.84098468,\n",
    -       "       -4.87776098, -4.91873117, -4.96614064, -5.02443531, -5.10428159,\n",
    -       "       -5.24263186, -5.9750488 ,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan])\n",
    +       "
    <xarray.DataArray 'vx' (time (y): 221)>\n",
    +       "array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    +       "        0.,  0., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n",
    +       "       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n",
            "Coordinates:\n",
    -       "    id       float64 100.0\n",
    -       "  * time     (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    " + " id float64 100.0\n", + " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    " ], "text/plain": [ - "\n", - "array([ 0. , -0.02730963, -0.05461883, -0.08192718, -0.10923426,\n", - " -0.13653965, -0.16384292, -0.19114364, -0.21844141, -0.24573578,\n", - " -0.27302634, -0.30031266, -0.32759433, -0.35487091, -0.38214199,\n", - " -0.40940715, -0.43666596, -0.463918 , -0.49116285, -0.51840009,\n", - " -0.5456293 , -0.57285005, -0.60006193, -0.62726452, -0.6544574 ,\n", - " -0.68164014, -0.70881234, -0.73597358, -0.76312342, -0.79026147,\n", - " -0.8173873 , -0.8445005 , -0.87160064, -0.89868733, -0.92576014,\n", - " -0.95281866, -0.97986247, -1.00689117, -1.03390434, -1.06090158,\n", - " -1.08788246, -1.11484659, -1.14179356, -1.16872296, -1.19563437,\n", - " -1.22252741, -1.24940165, -1.27625671, -1.30309216, -1.32990762,\n", - " -1.35670269, -1.38347696, -1.41023003, -1.43696151, -1.463671 ,\n", - " -1.4903581 , -1.51702243, -1.54366359, -1.57028119, -1.59687484,\n", - " -1.62344416, -1.64998874, -1.67650822, -1.70300221, -1.72947032,\n", - " -1.75591217, -1.78232739, -1.8087156 , -1.83507643, -1.8614095 ,\n", - " -1.88771444, -1.91399088, -1.94023846, -1.96645681, -1.99264557,\n", - " -2.01880437, -2.04493287, -2.0710307 , -2.09709752, -2.12313297,\n", - " -2.1491367 , -2.17510838, -2.20104766, -2.2269542 , -2.25282767,\n", - " -2.27866774, -2.30447407, -2.33024634, -2.35598424, -2.38168744,\n", - " -2.40735563, -2.43298851, -2.45858576, -2.48414708, -2.50967219,\n", - " -2.53516079, -2.56061259, -2.58602731, -2.61140468, -2.63674443,\n", - "...\n", - " -3.28166908, -3.30592115, -3.33013189, -3.3543014 , -3.37842979,\n", - " -3.40251722, -3.42656386, -3.45056991, -3.47453562, -3.49846126,\n", - " -3.52234715, -3.54619364, -3.57000113, -3.59377005, -3.61750092,\n", - " -3.64119426, -3.66485068, -3.68847086, -3.71205553, -3.73560548,\n", - " -3.75912161, -3.78260489, -3.80605637, -3.82947723, -3.85286873,\n", - " -3.87623226, -3.89956936, -3.92288168, -3.94617105, -3.96943947,\n", - " -3.99268912, -4.01592242, -4.03914199, -4.06235073, -4.08555183,\n", - " -4.10874879, -4.13194551, -4.15514625, -4.17835577, -4.20157933,\n", - " -4.2248228 , -4.24809272, -4.2713964 , -4.29474206, -4.31813893,\n", - " -4.34159746, -4.36512951, -4.38874856, -4.41247007, -4.43631182,\n", - " -4.46029439, -4.48444172, -4.50878191, -4.53334814, -4.55817998,\n", - " -4.58332498, -4.60884098, -4.63479915, -4.66128825, -4.68842081,\n", - " -4.71634199, -4.7452432 , -4.77538326, -4.80712299, -4.84098468,\n", - " -4.87776098, -4.91873117, -4.96614064, -5.02443531, -5.10428159,\n", - " -5.24263186, -5.9750488 , nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan])\n", + "\n", + "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", + " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n", "Coordinates:\n", - " id float64 100.0\n", - " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" + " id float64 100.0\n", + " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" ] }, - "execution_count": 17, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "swiftestsim.ds.sel(id=100)['vx']" + "swiftdiff.sel(id=100)['vx']" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -1513,7 +1441,7 @@ " nan])\n", "Coordinates:\n", " id int64 100\n", - " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      int64
      100
      array(100)
    • time
      (time)
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", @@ -1603,7 +1531,7 @@ " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" ] }, - "execution_count": 18, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 0492a05f8..4e46ad808 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -285,8 +285,6 @@ def write_labeled_param(param, param_file_name): 'TP_IN', 'CB_IN', 'BIN_OUT', - 'ENC_OUT', - 'DISCARD_OUT', 'CHK_QMIN', 'CHK_RMIN', 'CHK_RMAX', @@ -303,7 +301,7 @@ def write_labeled_param(param, param_file_name): if val is not None: print(f"{key:<16} {val}", file=outfile) # Print the remaining key/value pairs in whatever order for key, val in ptmp.items(): - print(f"{key:<16} {val}", file=outfile) + if val != "": print(f"{key:<16} {val}", file=outfile) outfile.close() return diff --git a/src/io/io.f90 b/src/io/io.f90 index 10267c140..aa89df92a 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -195,6 +195,7 @@ module subroutine io_dump_system(self, param) start = clock_count / (count_rate * 1.0_DP) finish = start lfirst = .false. + if (param%lenergy) call self%conservation_report(param, lterminal=.false.) else allocate(dump_param, source=param) param_file_name = trim(adjustl(DUMP_PARAM_FILE(idx))) @@ -224,7 +225,6 @@ module subroutine io_dump_system(self, param) if (param%lenergy) call self%conservation_report(param, lterminal=.true.) end if - return end subroutine io_dump_system @@ -915,7 +915,7 @@ module subroutine io_read_cb_in(self, param) end subroutine io_read_cb_in - function io_read_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & + function io_read_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & xh1, xh2, vh1, vh2, enc_out, out_type) result(ierr) !! author: David A. Minton !! @@ -925,8 +925,8 @@ function io_read_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & !! Adapted from David E. Kaufmann's Swifter routine: io_read_encounter.f90 implicit none ! Arguments - integer(I4B), intent(out) :: name1, name2 - real(DP), intent(out) :: t, mass1, mass2, radius1, radius2 + integer(I4B), intent(out) :: id1, id2 + real(DP), intent(out) :: t, Gmass1, Gmass2, radius1, radius2 real(DP), dimension(:), intent(out) :: xh1, xh2, vh1, vh2 character(*), intent(in) :: enc_out, out_type ! Result @@ -951,12 +951,12 @@ function io_read_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & return end if - read(iu, iostat = ierr) name1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), vh1(3), mass1, radius1 + read(iu, iostat = ierr) id1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), vh1(3), Gmass1, radius1 if (ierr /= 0) then close(unit = iu, iostat = ierr) return end if - read(iu, iostat = ierr) name2, xh2(2), xh2(2), xh2(3), vh2(2), vh2(2), vh2(3), mass2, radius2 + read(iu, iostat = ierr) id2, xh2(2), xh2(2), xh2(3), vh2(2), vh2(2), vh2(3), Gmass2, radius2 if (ierr /= 0) then close(unit = iu, iostat = ierr) return @@ -1242,6 +1242,8 @@ module subroutine io_write_discard(self, param) character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp + if (param%discard_out == "") return + associate(tp_discards => self%tp_discards, nsp => self%tp_discards%nbody, pl => self%pl, npl => self%pl%nbody) if (nsp == 0) return select case(param%out_stat) @@ -1287,30 +1289,23 @@ module subroutine io_write_discard(self, param) end subroutine io_write_discard - module subroutine io_write_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & - xh1, xh2, vh1, vh2, enc_out, out_type) - !! author: David A. Minton - !! - !! Write close encounter data to output binary files - !! There is no direct file output from this subroutine - !! - !! Adapted from David E. Kaufmann's Swifter routine: io_write_encounter.f90 - !! Adapted from Hal Levison's Swift routine io_write_encounter.f + module subroutine io_write_encounter(self, pl, encbody, param) implicit none ! Arguments - integer(I4B), intent(in) :: name1, name2 - real(DP), intent(in) :: t, mass1, mass2, radius1, radius2 - real(DP), dimension(:), intent(in) :: xh1, xh2, vh1, vh2 - character(*), intent(in) :: enc_out, out_type + class(swiftest_encounter), intent(in) :: self !! Swiftest encounter list object + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + class(swiftest_body), intent(in) :: encbody !! Encountering body - Swiftest generic body object (pl or tp) + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - logical , save :: lfirst = .true. - integer(I4B), parameter :: lun = 30 - integer(I4B) :: ierr - integer(I4B), save :: iu = lun + logical , save :: lfirst = .true. + integer(I4B), parameter :: LUN = 30 + integer(I4B) :: k, ierr - open(unit = iu, file = enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + if (param%enc_out == "") return + + open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) if ((ierr /= 0) .and. lfirst) then - open(unit = iu, file = enc_out, status = 'NEW', form = 'UNFORMATTED', iostat = ierr) + open(unit = LUN, file = param%enc_out, status = 'NEW', form = 'UNFORMATTED', iostat = ierr) end if if (ierr /= 0) then write(*, *) "Swiftest Error:" @@ -1318,21 +1313,36 @@ module subroutine io_write_encounter(t, name1, name2, mass1, mass2, radius1, rad call util_exit(FAILURE) end if lfirst = .false. - write(iu, iostat = ierr) t - if (ierr < 0) then - write(*, *) "Swiftest Error:" - write(*, *) " Unable to write binary file record" - call util_exit(FAILURE) - end if - write(iu) name1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), mass1, radius1 - write(iu) name2, xh2(1), xh2(2), xh2(3), vh2(1), vh2(2), mass2, radius2 - close(unit = iu, iostat = ierr) + + associate(ind1 => self%index1, ind2 => self%index2) + select type(encbody) + class is (swiftest_pl) + do k = 1, self%nenc + call io_write_frame_encounter(LUN, self%t(k), & + pl%id(ind1(k)), encbody%id(ind2(k)), & + pl%Gmass(ind1(k)), encbody%Gmass(ind2(k)), & + pl%radius(ind1(k)), encbody%radius(ind2(k)), & + self%x1(:,k), self%x2(:,k), & + self%v1(:,k), self%v2(:,k)) + end do + class is (swiftest_tp) + do k = 1, self%nenc + call io_write_frame_encounter(LUN, self%t(k), & + pl%id(ind1(k)), encbody%id(ind2(k)), & + pl%Gmass(ind1(k)), 0.0_DP, & + pl%radius(ind1(k)), 0.0_DP, & + self%x1(:,k), self%x2(:,k), & + self%v1(:,k), self%v2(:,k)) + end do + end select + end associate + + close(unit = LUN, iostat = ierr) if (ierr /= 0) then write(*, *) "Swiftest Error:" write(*, *) " Unable to close binary encounter file" call util_exit(FAILURE) end if - return end subroutine io_write_encounter @@ -1433,6 +1443,39 @@ module subroutine io_write_frame_cb(self, iu, param) end subroutine io_write_frame_cb + module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radius1, radius2, xh1, xh2, vh1, vh2) + !! author: David A. Minton + !! + !! Write a single frame of close encounter data to output binary files + !! + !! Adapted from David E. Kaufmann's Swifter routine: io_write_encounter.f90 + !! Adapted from Hal Levison's Swift routine io_write_encounter.f + implicit none + ! Arguments + integer(I4B), intent(in) :: iu !! Open file unit number + real(DP), intent(in) :: t !! Time of encounter + integer(I4B), intent(in) :: id1, id2 !! ids of the two encountering bodies + real(DP), intent(in) :: Gmass1, Gmass2 !! G*mass of the two encountering bodies + real(DP), intent(in) :: radius1, radius2 !! Radii of the two encountering bodies + real(DP), dimension(:), intent(in) :: xh1, xh2 !! Heliocentric position vectors of the two encountering bodies + real(DP), dimension(:), intent(in) :: vh1, vh2 !! Heliocentric velocity vectors of the two encountering bodies + ! Internals + integer(I4B) :: ierr + + write(iu, iostat = ierr) t + write(iu, iostat = ierr) id1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), Gmass1, radius1 + write(iu, iostat = ierr) id2, xh2(1), xh2(2), xh2(3), vh2(1), vh2(2), Gmass2, radius2 + + if (ierr /= 0) then + write(*, *) "Swiftest Error:" + write(*, *) " Unable to write binary file record for encounter" + call util_exit(FAILURE) + end if + + return + end subroutine + + module subroutine io_write_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 3945a91d0..ba3226eb7 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -15,19 +15,25 @@ module pure subroutine kick_getacch_int_pl(self) ! Internals integer(I4B) :: k real(DP) :: rji2, irij3, faci, facj - real(DP), dimension(NDIM) :: dx + real(DP) :: dx, dy, dz associate(pl => self, npl => self%nbody, nplpl => self%nplpl) do k = 1, nplpl associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) if (pl%lmask(i) .and. pl%lmask(j)) then - dx(:) = pl%xh(:, j) - pl%xh(:, i) - rji2 = dot_product(dx(:), dx(:)) + dx = pl%xh(1, j) - pl%xh(1, i) + dy = pl%xh(2, j) - pl%xh(2, i) + dz = pl%xh(3, j) - pl%xh(3, i) + rji2 = dx**2 + dy**2 + dz**2 irij3 = 1.0_DP / (rji2 * sqrt(rji2)) faci = pl%Gmass(i) * irij3 facj = pl%Gmass(j) * irij3 - pl%ah(:, i) = pl%ah(:, i) + facj * dx(:) - pl%ah(:, j) = pl%ah(:, j) - faci * dx(:) + pl%ah(1, i) = pl%ah(1, i) + facj * dx + pl%ah(2, i) = pl%ah(2, i) + facj * dy + pl%ah(3, i) = pl%ah(3, i) + facj * dz + pl%ah(1, j) = pl%ah(1, j) - faci * dx + pl%ah(2, j) = pl%ah(2, j) - faci * dy + pl%ah(3, j) = pl%ah(3, j) - faci * dz end if end associate end do diff --git a/src/modules/rmvs_classes.f90 b/src/modules/rmvs_classes.f90 index 6ffb7ba1b..0b837ec0a 100644 --- a/src/modules/rmvs_classes.f90 +++ b/src/modules/rmvs_classes.f90 @@ -125,6 +125,14 @@ module function rmvs_encounter_check_tp(self, system, dt) result(lencounter) logical :: lencounter !! Returns true if there is at least one close encounter end function rmvs_encounter_check_tp + module subroutine rmvs_io_write_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, xh1, xh2, vh1, vh2, enc_out) + implicit none + integer(I4B), intent(in) :: id1, id2 + real(DP), intent(in) :: t, Gmass1, Gmass2, radius1, radius2 + real(DP), dimension(:), intent(in) :: xh1, xh2, vh1, vh2 + character(*), intent(in) :: enc_out + end subroutine rmvs_io_write_encounter + module subroutine rmvs_kick_getacch_tp(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 2e4bff8a2..96c35675b 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -321,11 +321,13 @@ module swiftest_classes real(DP), dimension(:,:), allocatable :: x2 !! the position of body 2 in the encounter real(DP), dimension(:,:), allocatable :: v1 !! the velocity of body 1 in the encounter real(DP), dimension(:,:), allocatable :: v2 !! the velocity of body 2 in the encounter + real(DP), dimension(:), allocatable :: t !! Time of encounter contains procedure :: setup => setup_encounter !! A constructor that sets the number of encounters and allocates and initializes all arrays procedure :: copy => util_copy_encounter !! Copies elements from the source encounter list into self. procedure :: spill => util_spill_encounter !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) procedure :: resize => util_resize_encounter !! Checks the current size of the encounter list against the required size and extends it by a factor of 2 more than requested if it is too small. + procedure :: write => io_write_encounter !! Write close encounter data to output binary file end type swiftest_encounter abstract interface @@ -656,13 +658,12 @@ module subroutine io_toupper(string) character(*), intent(inout) :: string !! String to make upper case end subroutine io_toupper - module subroutine io_write_encounter(t, name1, name2, mass1, mass2, radius1, radius2, & - xh1, xh2, vh1, vh2, enc_out, out_type) + module subroutine io_write_encounter(self, pl, encbody, param) implicit none - integer(I4B), intent(in) :: name1, name2 - real(DP), intent(in) :: t, mass1, mass2, radius1, radius2 - real(DP), dimension(:), intent(in) :: xh1, xh2, vh1, vh2 - character(*), intent(in) :: enc_out, out_type + class(swiftest_encounter), intent(in) :: self !! Swiftest encounter list object + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + class(swiftest_body), intent(in) :: encbody !! Encountering body - Swiftest generic body object (pl or tp) + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_encounter module subroutine io_write_frame_body(self, iu, param) @@ -679,6 +680,17 @@ module subroutine io_write_frame_cb(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_cb + module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radius1, radius2, xh1, xh2, vh1, vh2) + implicit none + integer(I4B), intent(in) :: iu !! Open file unit number + real(DP), intent(in) :: t !! Time of encounter + integer(I4B), intent(in) :: id1, id2 !! ids of the two encountering bodies + real(DP), intent(in) :: Gmass1, Gmass2 !! G*mass of the two encountering bodies + real(DP), intent(in) :: radius1, radius2 !! Radii of the two encountering bodies + real(DP), dimension(:), intent(in) :: xh1, xh2 !! Heliocentric position vectors of the two encountering bodies + real(DP), dimension(:), intent(in) :: vh1, vh2 !! Heliocentric velocity vectors of the two encountering bodies + end subroutine io_write_frame_encounter + module subroutine io_write_frame_system(self, iu, param) implicit none class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object diff --git a/src/rmvs/rmvs_io.f90 b/src/rmvs/rmvs_io.f90 new file mode 100644 index 000000000..b85ce2202 --- /dev/null +++ b/src/rmvs/rmvs_io.f90 @@ -0,0 +1,48 @@ +submodule (rmvs_classes) s_rmvs_io + use swiftest +contains + + module subroutine rmvs_io_write_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & + xh1, xh2, vh1, vh2, enc_out) + !! author: David A. Minton + !! + !! Write close encounter data from RMVS to output binary files + !! There is no direct file output from this subroutine + !! + !! Adapted from David E. Kaufmann's Swifter routine: io_write_encounter.f90 + !! Adapted from Hal Levison's Swift routine io_write_encounter.f + implicit none + ! Arguments + integer(I4B), intent(in) :: id1, id2 + real(DP), intent(in) :: t, Gmass1, Gmass2, radius1, radius2 + real(DP), dimension(:), intent(in) :: xh1, xh2, vh1, vh2 + character(*), intent(in) :: enc_out + ! Internals + logical , save :: lfirst = .true. + integer(I4B), parameter :: LUN = 30 + integer(I4B) :: ierr + + if (enc_out == "") return + + open(unit = LUN, file = enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + if ((ierr /= 0) .and. lfirst) then + open(unit = LUN, file = enc_out, status = 'NEW', form = 'UNFORMATTED', iostat = ierr) + end if + if (ierr /= 0) then + write(*, *) "Swiftest Error:" + write(*, *) " Unable to open binary encounter file" + call util_exit(FAILURE) + end if + lfirst = .false. + call io_write_frame_encounter(LUN, t, id1, id2, Gmass1, Gmass2, radius1, radius2, xh1, xh2, vh1, vh2) + close(unit = LUN, iostat = ierr) + if (ierr /= 0) then + write(*, *) "Swiftest Error:" + write(*, *) " Unable to close binary encounter file" + call util_exit(FAILURE) + end if + + return + end subroutine rmvs_io_write_encounter + +end submodule s_rmvs_io \ No newline at end of file diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index 0385aeecc..c801ee16f 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -547,8 +547,7 @@ subroutine rmvs_peri_tp(tp, pl, t, dt, lfirst, inner_index, ipleP, param) id2 = tp%id(i) xh2(:) = xpc(:, i) + xh1(:) vh2(:) = xpc(:, i) + vh1(:) - call io_write_encounter(t, id1, id2, mu, 0.0_DP, rpl, 0.0_DP, xh1(:), xh2(:), vh1(:), vh2(:), & - param%enc_out, param%out_type) + call rmvs_io_write_encounter(t, id1, id2, mu, 0.0_DP, rpl, 0.0_DP, xh1(:), xh2(:), vh1(:), vh2(:), param%enc_out) end if if (tp%lperi(i)) then if (peri < tp%peri(i)) then diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 843a48698..726da07fc 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -92,6 +92,7 @@ module subroutine setup_encounter(self, n) if (allocated(self%x2)) deallocate(self%x2) if (allocated(self%v1)) deallocate(self%v1) if (allocated(self%v2)) deallocate(self%v2) + if (allocated(self%t)) deallocate(self%t) allocate(self%lvdotr(n)) allocate(self%status(n)) @@ -101,6 +102,7 @@ module subroutine setup_encounter(self, n) allocate(self%x2(NDIM,n)) allocate(self%v1(NDIM,n)) allocate(self%v2(NDIM,n)) + allocate(self%t(n)) self%lvdotr(:) = .false. self%status(:) = INACTIVE @@ -110,6 +112,7 @@ module subroutine setup_encounter(self, n) self%x2(:,:) = 0.0_DP self%v1(:,:) = 0.0_DP self%v2(:,:) = 0.0_DP + self%t(:) = 0.0_DP return end subroutine setup_encounter diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 97e5798c2..73027c351 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -344,6 +344,8 @@ module subroutine symba_io_write_discard(self, param) character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp + if (param%discard_out == "") return + associate(pl => self%pl, npl => self%pl%nbody, pl_adds => self%pl_adds) if (self%tp_discards%nbody > 0) call io_write_discard(self, param) select type(pl_discards => self%pl_discards) diff --git a/src/util/util_copy.f90 b/src/util/util_copy.f90 index f44777eec..87634a419 100644 --- a/src/util/util_copy.f90 +++ b/src/util/util_copy.f90 @@ -21,6 +21,7 @@ module subroutine util_copy_encounter(self, source) self%x2(:,1:n) = source%x2(:,1:n) self%v1(:,1:n) = source%v1(:,1:n) self%v2(:,1:n) = source%v2(:,1:n) + self%t(1:n) = source%t(1:n) end associate return diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 8039d14b4..a26fbfad7 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -264,6 +264,7 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive call util_spill(keeps%x2, discards%x2, lspill_list, ldestructive) call util_spill(keeps%v1, discards%v1, lspill_list, ldestructive) call util_spill(keeps%v2, discards%v2, lspill_list, ldestructive) + call util_spill(keeps%t, discards%t, lspill_list, ldestructive) ! This is the base class, so will be the last to be called in the cascade. ! Therefore we need to set the nenc values for both the keeps and discareds From eb19ab5adda3d85c123867d14de300ec3cbc4765 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 16:02:24 -0400 Subject: [PATCH 019/315] Enabled encounter recording in SyMBA --- .../param.supercatastrophic_headon.in | 1 + src/io/io.f90 | 2 +- src/symba/symba_collision.f90 | 35 ++++++++++--------- src/symba/symba_discard.f90 | 1 + 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/examples/symba_energy_momentum/param.supercatastrophic_headon.in b/examples/symba_energy_momentum/param.supercatastrophic_headon.in index e9b60e7da..a8ff7cbde 100644 --- a/examples/symba_energy_momentum/param.supercatastrophic_headon.in +++ b/examples/symba_energy_momentum/param.supercatastrophic_headon.in @@ -17,6 +17,7 @@ CHK_RMIN 0.005 CHK_RMAX 1e6 CHK_EJECT -1.0 ! ignore this check CHK_QMIN -1.0 ! ignore this check +DISCARD_OUT discard.supercatastrophic_headon.out ENC_OUT enc.supercatastrophic_headon.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded diff --git a/src/io/io.f90 b/src/io/io.f90 index aa89df92a..ea2b695b0 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1301,7 +1301,7 @@ module subroutine io_write_encounter(self, pl, encbody, param) integer(I4B), parameter :: LUN = 30 integer(I4B) :: k, ierr - if (param%enc_out == "") return + if (param%enc_out == "" .or. self%nenc == 0) return open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) if ((ierr /= 0) .and. lfirst) then diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index f1b023a53..b0e588300 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -66,32 +66,33 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec end do end if - if (any(lcollision(:))) then - do k = 1, nenc - if (.not.lcollision(k)) cycle - self%status(k) = COLLISION - self%x1(:,k) = pl%xh(:,ind1(k)) - self%v1(:,k) = pl%vb(:,ind1(k)) - if (isplpl) then - self%x2(:,k) = pl%xh(:,ind2(k)) - self%v2(:,k) = pl%vb(:,ind2(k)) - + do k = 1, nenc + if (lcollision(k)) self%status(k) = COLLISION + self%t(k) = t + self%x1(:,k) = pl%xh(:,ind1(k)) + self%v1(:,k) = pl%vb(:,ind1(k)) - system%cb%vb(:) + if (isplpl) then + self%x2(:,k) = pl%xh(:,ind2(k)) + self%v2(:,k) = pl%vb(:,ind2(k)) - system%cb%vb(:) + if (lcollision(k)) then ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional family if (pl%lcollision(ind1(k)) .or. pl%lcollision(ind2(k))) call pl%make_family([ind1(k),ind2(k)]) - + ! Set the collision flag for these to bodies to true in case they become involved in another collision later in the step pl%lcollision([ind1(k), ind2(k)]) = .true. pl%ldiscard([ind1(k), ind2(k)]) = .true. pl%status([ind1(k), ind2(k)]) = COLLISION - else - self%x2(:,k) = tp%xh(:,ind2(k)) - self%v2(:,k) = tp%vb(:,ind2(k)) + end if + else + self%x2(:,k) = tp%xh(:,ind2(k)) + self%v2(:,k) = tp%vb(:,ind2(k)) - system%cb%vb(:) + if (lcollision(k)) then tp%status(ind2(k)) = DISCARDED_PLR tp%ldiscard(ind2(k)) = .true. write(*,*) 'Test particle ',tp%id(ind2(k)), ' collided with massive body ',pl%id(ind1(k)), ' at time ',t end if - end do - end if + end if + end do end associate end select end select @@ -326,7 +327,7 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par ! Create a mask that contains only the pl-pl encounters that did not result in a collision, and then discard them lplpl_collision(:) = .false. lplpl_collision(collision_idx(:)) = .true. - call plplenc_list%spill(system%plplcollision_list, lplpl_collision, ldestructive=.false.) ! Extract any encounters that are not collisions from the list. + call plplenc_list%spill(system%plplcollision_list, lplpl_collision, ldestructive=.true.) ! Extract any encounters that are not collisions from the list. end associate end select diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index f003ab9cb..499c527cc 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -299,6 +299,7 @@ module subroutine symba_discard_pl(self, system, param) ! Extract the pl-pl encounter list and return the plplcollision_list call plplenc_list%extract_collisions(system, param) + call plplenc_list%write(pl, pl, param) if ((plplcollision_list%nenc > 0) .and. any(pl%lcollision(:))) then write(*, *) "Collision between massive bodies detected at time t = ",param%t From 00fb68e6f8502a164dc61aee5d92c5ea3a11d68a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 16:04:07 -0400 Subject: [PATCH 020/315] Removed enounter output redirect to /dev/null. Now the code doesn't record encounters if you don't give it a file in ENC_OUT --- examples/symba_mars_disk/param.in | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 08a0979e6..e2be7eece 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -19,7 +19,6 @@ CHK_EJECT 3389500000.0 CHK_QMIN 3389500.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 3389500.0 338950000000.0 -ENC_OUT /dev/null EXTRA_FORCE no BIG_DISCARD no RHILL_PRESENT yes From 873f5d12a517d69516f1492ba3ec06204e987ec4 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 16:58:52 -0400 Subject: [PATCH 021/315] Fixed bug in which bodies with more than one encounter have their accelrations zeroed out between evaluations of each pair --- src/symba/symba_kick.f90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index 8625b3d81..b247a9a7d 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -133,13 +133,13 @@ module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) else irecl = irec end if + if (isplpl) then + pl%ah(:,ind1(1:self%nenc)) = 0.0_DP + pl%ah(:,ind2(1:self%nenc)) = 0.0_DP + else + tp%ah(:,ind2(1:self%nenc)) = 0.0_DP + end if do k = 1, self%nenc - if (isplpl) then - pl%ah(:,ind1(k)) = 0.0_DP - pl%ah(:,ind2(k)) = 0.0_DP - else - tp%ah(:,ind2(k)) = 0.0_DP - end if if (isplpl) then lgoodlevel = (pl%levelg(ind1(k)) >= irm1) .and. (pl%levelg(ind2(k)) >= irm1) else From c231becf874d998ab2239c8f37c581f033e4ceb1 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 17:36:11 -0400 Subject: [PATCH 022/315] Fixed typo in index that was preventing the accelration from being zeroed out at the end of an recursive kick --- src/symba/symba_kick.f90 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index b247a9a7d..7a98c2f69 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -128,17 +128,20 @@ module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) if (tp%nbody > 0) tp%lmask(:) = tp%status(:) /= INACTIVE irm1 = irec - 1 + if (sgn < 0) then irecl = irec - 1 else irecl = irec end if + if (isplpl) then pl%ah(:,ind1(1:self%nenc)) = 0.0_DP pl%ah(:,ind2(1:self%nenc)) = 0.0_DP else tp%ah(:,ind2(1:self%nenc)) = 0.0_DP end if + do k = 1, self%nenc if (isplpl) then lgoodlevel = (pl%levelg(ind1(k)) >= irm1) .and. (pl%levelg(ind2(k)) >= irm1) @@ -182,7 +185,7 @@ module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) pl%vb(:,ind1(k)) = pl%vb(:,ind1(k)) + sgn * dt * pl%ah(:,ind1(k)) pl%vb(:,ind2(k)) = pl%vb(:,ind2(k)) + sgn * dt * pl%ah(:,ind2(k)) pl%ah(:,ind1(k)) = 0.0_DP - pl%ah(:,ind1(k)) = 0.0_DP + pl%ah(:,ind2(k)) = 0.0_DP end do else do k = 1, self%nenc From f033af9edc4eb3bd86c6616ab890ec40de2dac6c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 17:50:41 -0400 Subject: [PATCH 023/315] Fixed issue that was causing hit and run bodies to be removed --- src/symba/symba_fragmentation.f90 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_fragmentation.f90 b/src/symba/symba_fragmentation.f90 index 430b8f81d..335ab9e66 100644 --- a/src/symba/symba_fragmentation.f90 +++ b/src/symba/symba_fragmentation.f90 @@ -179,8 +179,14 @@ module function symba_fragmentation_casehitandrun(system, param, family, x, v, m write(*,'("Generating ",I2.0," fragments")') nfrag end if end if - if (lpure) then + if (lpure) then ! Reset these bodies back to being active so that nothing further is done to them status = ACTIVE + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select else status = HIT_AND_RUN call symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) From f611c5de1832c4dc0a9840fe5582dc81411ee65a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 19:48:07 -0400 Subject: [PATCH 024/315] Fixed append methods with correct array extents --- src/symba/symba_util.f90 | 24 +++++++++++++------- src/util/util_append.f90 | 49 ++++++++++++++++++++++++++-------------- 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 1335272fe..8ee7da8ea 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -12,16 +12,19 @@ module subroutine symba_util_append_arr_info(arr, source, nold, nsrc, lsource_ma type(symba_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine symba_util_append_arr_info @@ -37,16 +40,19 @@ module subroutine symba_util_append_arr_kin(arr, source, nold, nsrc, lsource_mas type(symba_kinship), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine symba_util_append_arr_kin @@ -102,10 +108,12 @@ module subroutine symba_util_append_merger(self, source, lsource_mask) logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to ! Internals integer(I4B), dimension(:), allocatable :: ncomp_tmp !! Temporary placeholder for ncomp incase we are appending a symba_pl object to a symba_merger - integer(I4B) :: nold, nsrc + integer(I4B) :: nold, nsrc, nnew nold = self%nbody nsrc = source%nbody + nnew = count(lsource_mask) + select type(source) class is (symba_merger) call util_append(self%ncomp, source%ncomp, nold, nsrc, lsource_mask) @@ -121,7 +129,7 @@ module subroutine symba_util_append_merger(self, source, lsource_mask) end select ! Save the number of appended bodies - self%ncomp(nold+1:nold+nsrc) = nsrc + self%ncomp(nold+1:nold+nnew) = nnew return end subroutine symba_util_append_merger diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index dc48f9861..979da7a19 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -12,16 +12,19 @@ module subroutine util_append_arr_char_string(arr, source, nold, nsrc, lsource_m character(len=STRMAX), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_char_string @@ -37,16 +40,19 @@ module subroutine util_append_arr_DP(arr, source, nold, nsrc, lsource_mask) real(DP), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_DP @@ -62,18 +68,21 @@ module subroutine util_append_arr_DPvec(arr, source, nold, nsrc, lsource_mask) real(DP), dimension(:,:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(NDIM, nold+nsrc)) + allocate(arr(NDIM,nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(1, nold + 1:nold + nsrc) = pack(source(1,1:nsrc), lsource_mask(1:nsrc)) - arr(2, nold + 1:nold + nsrc) = pack(source(2,1:nsrc), lsource_mask(1:nsrc)) - arr(3, nold + 1:nold + nsrc) = pack(source(3,1:nsrc), lsource_mask(1:nsrc)) + arr(1, nold + 1:nold + nnew) = pack(source(1,1:nsrc), lsource_mask(1:nsrc)) + arr(2, nold + 1:nold + nnew) = pack(source(2,1:nsrc), lsource_mask(1:nsrc)) + arr(3, nold + 1:nold + nnew) = pack(source(3,1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_DPvec @@ -89,16 +98,19 @@ module subroutine util_append_arr_I4B(arr, source, nold, nsrc, lsource_mask) integer(I4B), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_I4B @@ -114,16 +126,19 @@ module subroutine util_append_arr_logical(arr, source, nold, nsrc, lsource_mask) logical, dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew if (.not. allocated(source)) return + nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nsrc)) + allocate(arr(nold+nnew)) else - call util_resize(arr, nold + nsrc) + call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nsrc) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_logical From f13b6c7ed93d90b8a7a4390f7ba16c51faf91100 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 19:49:30 -0400 Subject: [PATCH 025/315] Made updating of nbody in append more consistent --- src/util/util_append.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 979da7a19..cb15fa18c 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -177,10 +177,9 @@ module subroutine util_append_body(self, source, lsource_mask) call util_append(self%capom, source%capom, nold, nsrc, lsource_mask) call util_append(self%omega, source%omega, nold, nsrc, lsource_mask) call util_append(self%capm, source%capm, nold, nsrc, lsource_mask) + self%nbody = nold + count(lsource_mask(:)) end associate - self%nbody = count(self%status(:) /= INACTIVE) - return end subroutine util_append_body From 9d7a741b88ed4c63a450b1613cd4d62449307f31 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 22:38:19 -0400 Subject: [PATCH 026/315] Fixed issue where failed fragmentation event lead to lost particles instead of pure hit and run --- src/symba/symba_fragmentation.f90 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/symba/symba_fragmentation.f90 b/src/symba/symba_fragmentation.f90 index 335ab9e66..5a2d49bd6 100644 --- a/src/symba/symba_fragmentation.f90 +++ b/src/symba/symba_fragmentation.f90 @@ -81,6 +81,12 @@ module function symba_fragmentation_casedisruption(system, param, family, x, v, write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' status = ACTIVE nfrag = 0 + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select else ! Populate the list of new bodies write(*,'("Generating ",I2.0," fragments")') nfrag @@ -360,6 +366,12 @@ module function symba_fragmentation_casesupercatastrophic(system, param, family, write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' status = ACTIVE nfrag = 0 + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select else ! Populate the list of new bodies write(*,'("Generating ",I2.0," fragments")') nfrag From 12dd019e280571e3563d15909e047cdde5c82b6c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 22:46:52 -0400 Subject: [PATCH 027/315] Reduced error tolerance value --- src/fragmentation/fragmentation.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 73cef6240..72fb82d15 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -42,7 +42,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start, r_max_start_old, r_max, f_spin real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) - real(DP), parameter :: Etol = 1e-9_DP + real(DP), parameter :: Etol = 1e-8_DP integer(I4B), parameter :: MAXTRY = 3000 integer(I4B), parameter :: TANTRY = 3 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes From e2adfd01629c4a26ec6b377715f7efb34355c128 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 11 Aug 2021 22:52:21 -0400 Subject: [PATCH 028/315] Fixed bookkeeping term for collision energy --- src/symba/symba_discard.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 499c527cc..3d9be1282 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -320,7 +320,7 @@ module subroutine symba_discard_pl(self, system, param) if (param%lenergy) then call system%get_energy_and_momentum(param) Eorbit_after = system%te - system%Ecollisions = Eorbit_after - Eorbit_before + system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) end if end if From beacca8c8ec39afedad38b80edaac626608307bf Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 12 Aug 2021 08:26:40 -0400 Subject: [PATCH 029/315] extended time dimension by 1 --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 514ada968..2468c9b5f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1669,7 +1669,7 @@ module subroutine io_write_frame_system(self, iu, param) call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time - noutput = ((param%tstop / param%dt) / param%istep_out) + 1 + noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) !! x dimension From 3e06d5d4c6d3dea69d66319f15cb33300a037f55 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 12 Aug 2021 09:10:29 -0400 Subject: [PATCH 030/315] changed name of dimension from "Particle Name" to "Name" --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 2468c9b5f..928782033 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1672,7 +1672,7 @@ module subroutine io_write_frame_system(self, iu, param) noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output !! Define the NetCDF dimensions with particle name as the record dimension - call check( nf90_def_dim(ncid, "Particle Name", NF90_UNLIMITED, name_dimid) ) !! x dimension + call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! x dimension call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) !! y dimension dimids = (/ time_dimid, name_dimid /) From 4339239cc576362df8dfea50c14e29eec77cd336 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 10:30:28 -0400 Subject: [PATCH 031/315] Improved file I/O error handling --- src/fragmentation/fragmentation.f90 | 2 +- src/io/io.f90 | 648 ++++++++++++++-------------- src/modules/swiftest_classes.f90 | 12 +- src/symba/symba_io.f90 | 115 +++-- src/symba/symba_setup.f90 | 2 +- src/whm/whm_setup.f90 | 2 +- 6 files changed, 377 insertions(+), 404 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 72fb82d15..90758048f 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -42,7 +42,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start, r_max_start_old, r_max, f_spin real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) - real(DP), parameter :: Etol = 1e-8_DP + real(DP), parameter :: Etol = 1e-6_DP integer(I4B), parameter :: MAXTRY = 3000 integer(I4B), parameter :: TANTRY = 3 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes diff --git a/src/io/io.f90 b/src/io/io.f90 index ea2b695b0..c34c896a9 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -19,6 +19,7 @@ module subroutine io_conservation_report(self, param, lterminal) real(DP) :: Eorbit_error, Etotal_error, Ecoll_error real(DP) :: Mtot_now, Merror real(DP) :: Lmag_now, Lerror + character(len=STRMAX) :: errmsg character(len=*), parameter :: EGYFMT = '(ES23.16,10(",",ES23.16,:))' ! Format code for all simulation output character(len=*), parameter :: EGYHEADER = '("t,Eorbit,Ecollisions,Lx,Ly,Lz,Mtot")' integer(I4B), parameter :: EGYIU = 72 @@ -33,10 +34,10 @@ module subroutine io_conservation_report(self, param, lterminal) lfirst => param%lfirstenergy) if (param%energy_out /= "") then if (lfirst .and. (param%out_stat /= "OLD")) then - open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "replace", action = "write") + open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "replace", action = "write", err = 667, iomsg = errmsg) else - open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "old", action = "write", position = "append") - write(EGYIU,EGYHEADER) + open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "old", action = "write", position = "append", err = 667, iomsg = errmsg) + write(EGYIU,EGYHEADER, err = 667, iomsg = errmsg) end if end if call pl%h2b(cb) @@ -60,8 +61,8 @@ module subroutine io_conservation_report(self, param, lterminal) end if if (param%energy_out /= "") then - write(EGYIU,EGYFMT) param%t, Eorbit_now, Ecollisions, Ltot_now, Mtot_now - close(EGYIU) + write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, Ecollisions, Ltot_now, Mtot_now + close(EGYIU, err = 667, iomsg = errmsg) end if if (.not.lfirst .and. lterminal) then Lmag_now = norm2(Ltot_now) @@ -87,8 +88,12 @@ module subroutine io_conservation_report(self, param, lterminal) Lspin_last(:) = Lspin_now(:) Ltot_last(:) = Ltot_now(:) end associate + return + 667 continue + write(*,*) "Error writing energy and momentum tracking file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_conservation_report @@ -105,27 +110,22 @@ module subroutine io_dump_param(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of output file - integer(I4B) :: ierr !! Error code - character(STRMAX) :: error_message !! Error message in UDIO procedure - - open(unit = LUN, file = param_file_name, status='replace', form = 'FORMATTED', iostat =ierr) - if (ierr /=0) then - write(*,*) 'Swiftest error.' - write(*,*) ' Could not open dump file: ',trim(adjustl(param_file_name)) - call util_exit(FAILURE) - end if - + character(STRMAX) :: errmsg !! Error message in UDIO procedure + integer(I4B) :: ierr + + open(unit = LUN, file = param_file_name, status='replace', form = 'FORMATTED', err = 667, iomsg = errmsg) !! todo: Currently this procedure does not work in user-defined derived-type input mode !! due to compiler incompatabilities !write(LUN,'(DT)') param - call self%writer(LUN, iotype = "none", v_list = [0], iostat = ierr, iomsg = error_message) - if (ierr /= 0) then - write(*,*) trim(adjustl(error_message)) - call util_exit(FAILURE) + call self%writer(LUN, iotype = "none", v_list = [0], iostat = ierr, iomsg = errmsg) + if (ierr == 0) then + close(LUN, err = 667, iomsg = errmsg) + return end if - close(LUN) - return + 667 continue + write(*,*) "Error opening parameter dump file " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_dump_param @@ -145,6 +145,7 @@ module subroutine io_dump_swiftest(self, param) integer(I4B),parameter :: LUN = 7 !! Unit number for dump file integer(I4B) :: iu = LUN character(len=:), allocatable :: dump_file_name + character(STRMAX) :: errmsg select type(self) class is(swiftest_cb) @@ -154,16 +155,15 @@ module subroutine io_dump_swiftest(self, param) class is (swiftest_tp) dump_file_name = trim(adjustl(param%intpfile)) end select - open(unit = iu, file = dump_file_name, form = "UNFORMATTED", status = 'replace', iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " Unable to open binary dump file " // dump_file_name - call util_exit(FAILURE) - end if + open(unit = iu, file = dump_file_name, form = "UNFORMATTED", status = 'replace', err = 667, iomsg = errmsg) call self%write_frame(iu, param) - close(LUN) + close(LUN, err = 667, iomsg = errmsg) return + + 667 continue + write(*,*) "Error dumping body data to file " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_dump_swiftest @@ -368,11 +368,12 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) character(STRMAX) :: line !! Line of the input file character (len=:), allocatable :: line_trim,param_name, param_value !! Strings used to parse the param file character(*),parameter :: linefmt = '(A)' !! Format code for simple text string + ! Parse the file line by line, extracting tokens then matching them up with known parameters if possible associate(param => self) do - read(unit = unit, fmt = linefmt, iostat = iostat, end = 1) line + read(unit = unit, fmt = linefmt, end = 1, err = 667, iomsg = iomsg) line line_trim = trim(adjustl(line)) ilength = len(line_trim) if ((ilength /= 0)) then @@ -385,13 +386,13 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) param_value = io_get_token(line_trim, ifirst, ilast, iostat) select case (param_name) case ("T0") - read(param_value, *) param%t0 + read(param_value, *, err = 667, iomsg = iomsg) param%t0 t0_set = .true. case ("TSTOP") - read(param_value, *) param%tstop + read(param_value, *, err = 667, iomsg = iomsg) param%tstop tstop_set = .true. case ("DT") - read(param_value, *) param%dt + read(param_value, *, err = 667, iomsg = iomsg) param%dt dt_set = .true. case ("CB_IN") param%incbfile = param_value @@ -421,21 +422,21 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) call io_toupper(param_value) if (param_value == "YES" .or. param_value == 'T') param%lclose = .true. case ("CHK_RMIN") - read(param_value, *) param%rmin + read(param_value, *, err = 667, iomsg = iomsg) param%rmin case ("CHK_RMAX") - read(param_value, *) param%rmax + read(param_value, *, err = 667, iomsg = iomsg) param%rmax case ("CHK_EJECT") - read(param_value, *) param%rmaxu + read(param_value, *, err = 667, iomsg = iomsg) param%rmaxu case ("CHK_QMIN") - read(param_value, *) param%qmin + read(param_value, *, err = 667, iomsg = iomsg) param%qmin case ("CHK_QMIN_COORD") call io_toupper(param_value) param%qmin_coord = param_value case ("CHK_QMIN_RANGE") - read(param_value, *) param%qmin_alo + read(param_value, *, err = 667, iomsg = iomsg) param%qmin_alo ifirst = ilast + 1 param_value = io_get_token(line, ifirst, ilast, iostat) - read(param_value, *) param%qmin_ahi + read(param_value, *, err = 667, iomsg = iomsg) param%qmin_ahi case ("ENC_OUT") param%enc_out = param_value case ("DISCARD_OUT") @@ -452,11 +453,11 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) call io_toupper(param_value) if (param_value == "YES" .or. param_value == 'T' ) param%lrhill_present = .true. case ("MU2KG") - read(param_value, *) param%MU2KG + read(param_value, *, err = 667, iomsg = iomsg) param%MU2KG case ("TU2S") - read(param_value, *) param%TU2S + read(param_value, *, err = 667, iomsg = iomsg) param%TU2S case ("DU2M") - read(param_value, *) param%DU2M + read(param_value, *, err = 667, iomsg = iomsg) param%DU2M case ("ENERGY") call io_toupper(param_value) if (param_value == "YES" .or. param_value == 'T') param%lenergy = .true. @@ -476,44 +477,44 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) call io_toupper(param_value) if (param_value == "NO" .or. param_value == 'F') param%lfirstenergy = .false. case("EORBIT_ORIG") - read(param_value, *) param%Eorbit_orig + read(param_value, *, err = 667, iomsg = iomsg) param%Eorbit_orig case("MTOT_ORIG") - read(param_value, *) param%Mtot_orig + read(param_value, *, err = 667, iomsg = iomsg) param%Mtot_orig case("LTOT_ORIG") - read(param_value, *) param%Ltot_orig(1) + read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(1) do i = 2, NDIM ifirst = ilast + 1 param_value = io_get_token(line, ifirst, ilast, iostat) - read(param_value, *) param%Ltot_orig(i) + read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(i) end do param%Lmag_orig = norm2(param%Ltot_orig(:)) case("LORBIT_ORIG") - read(param_value, *) param%Lorbit_orig(1) + read(param_value, *, err = 667, iomsg = iomsg) param%Lorbit_orig(1) do i = 2, NDIM ifirst = ilast + 1 param_value = io_get_token(line, ifirst, ilast, iostat) - read(param_value, *) param%Lorbit_orig(i) + read(param_value, *, err = 667, iomsg = iomsg) param%Lorbit_orig(i) end do case("LSPIN_ORIG") - read(param_value, *) param%Lspin_orig(1) + read(param_value, *, err = 667, iomsg = iomsg) param%Lspin_orig(1) do i = 2, NDIM ifirst = ilast + 1 param_value = io_get_token(line, ifirst, ilast, iostat) - read(param_value, *) param%Lspin_orig(i) + read(param_value, *, err = 667, iomsg = iomsg) param%Lspin_orig(i) end do case("LESCAPE") - read(param_value, *) param%Lescape(1) + read(param_value, *, err = 667, iomsg = iomsg) param%Lescape(1) do i = 2, NDIM ifirst = ilast + 1 param_value = io_get_token(line, ifirst, ilast, iostat) - read(param_value, *) param%Lescape(i) + read(param_value, *, err = 667, iomsg = iomsg) param%Lescape(i) end do case("MESCAPE") - read(param_value, *) param%Mescape + read(param_value, *, err = 667, iomsg = iomsg) param%Mescape case("ECOLLISIONS") - read(param_value, *) param%Ecollisions + read(param_value, *, err = 667, iomsg = iomsg) param%Ecollisions case("EUNTRACKED") - read(param_value, *) param%Euntracked + read(param_value, *, err = 667, iomsg = iomsg) param%Euntracked case ("NPLMAX", "NTPMAX", "GMTINY", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters case default write(iomsg,*) "Unknown parameter -> ",param_name @@ -674,6 +675,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) iostat = 0 end associate + 667 continue return end subroutine io_param_reader @@ -708,67 +710,67 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) integer(I4B) :: i associate(param => self) - write(param_name, Afmt) "T0"; write(param_value,Rfmt) param%t0; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TSTOP"; write(param_value, Rfmt) param%tstop; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DT"; write(param_value, Rfmt) param%dt; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TP_in"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "T0"; write(param_value,Rfmt) param%t0; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "TSTOP"; write(param_value, Rfmt) param%tstop; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "DT"; write(param_value, Rfmt) param%dt; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "TP_in"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%istep_out > 0) then - write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "BIN_OUT"; write(param_value, Afmt) trim(adjustl(param%outfile)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_TYPE"; write(param_value, Afmt) trim(adjustl(param%out_type)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_FORM"; write(param_value, Afmt) trim(adjustl(param%out_form)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_STAT"; write(param_value, Afmt) "APPEND"; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "BIN_OUT"; write(param_value, Afmt) trim(adjustl(param%outfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "OUT_TYPE"; write(param_value, Afmt) trim(adjustl(param%out_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "OUT_FORM"; write(param_value, Afmt) trim(adjustl(param%out_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "OUT_STAT"; write(param_value, Afmt) "APPEND"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if - write(param_name, Afmt) "ENC_OUT"; write(param_value, Afmt) trim(adjustl(param%enc_out)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ENC_OUT"; write(param_value, Afmt) trim(adjustl(param%enc_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%istep_dump > 0) then - write(param_name, Afmt) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if - write(param_name, Afmt) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_EJECT"; write(param_value, Rfmt) param%rmaxu; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_QMIN"; write(param_value, Rfmt) param%qmin; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_EJECT"; write(param_value, Rfmt) param%rmaxu; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_QMIN"; write(param_value, Rfmt) param%qmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%qmin >= 0.0_DP) then - write(param_name, Afmt) "CHK_QMIN_COORD"; write(param_value, Afmt) trim(adjustl(param%qmin_coord)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_QMIN_COORD"; write(param_value, Afmt) trim(adjustl(param%qmin_coord)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) allocate(param_array(2)) write(param_array(1)%value, Rfmt) param%qmin_alo write(param_array(2)%value, Rfmt) param%qmin_ahi - write(param_name, Afmt) "CHK_QMIN_RANGE"; write(unit, Afmt) adjustl(param_name), adjustl(param_array(1)%value), adjustl(param_array(2)%value) + write(param_name, Afmt) "CHK_QMIN_RANGE"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_array(1)%value), adjustl(param_array(2)%value) end if - write(param_name, Afmt) "MU2KG"; write(param_value, Rfmt) param%MU2KG; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TU2S"; write(param_value, Rfmt) param%TU2S ; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "GR"; write(param_value, Lfmt) param%lgr; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "MU2KG"; write(param_value, Rfmt) param%MU2KG; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "TU2S"; write(param_value, Rfmt) param%TU2S ; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GR"; write(param_value, Lfmt) param%lgr; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%lenergy) then - write(param_name, Afmt) "FIRSTENERGY"; write(param_value, Lfmt) param%lfirstenergy; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EORBIT_ORIG"; write(param_value, Rfmt) param%Eorbit_orig; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "MTOT_ORIG"; write(param_value, Rfmt) param%Mtot_orig; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "FIRSTENERGY"; write(param_value, Lfmt) param%lfirstenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "EORBIT_ORIG"; write(param_value, Rfmt) param%Eorbit_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "MTOT_ORIG"; write(param_value, Rfmt) param%Mtot_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(unit, '("LTOT_ORIG ",3(1X,ES25.17))') param%Ltot_orig(:) write(unit, '("LORBIT_ORIG",3(1X,ES25.17))') param%Lorbit_orig(:) write(unit, '("LSPIN_ORIG ",3(1X,ES25.17))') param%Lspin_orig(:) write(unit, '("LESCAPE ",3(1X,ES25.17))') param%Lescape(:) - write(param_name, Afmt) "MESCAPE"; write(param_value, Rfmt) param%Mescape; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "MESCAPE"; write(param_value, Rfmt) param%Mescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if - write(param_name, Afmt) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - - iostat = 0 iomsg = "UDIO not implemented" end associate + 667 continue + return end subroutine io_param_writer @@ -787,11 +789,12 @@ module subroutine io_read_body_in(self, param) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN - integer(I4B) :: i, ierr, nbody + integer(I4B) :: i, nbody logical :: is_ascii, is_pl character(len=:), allocatable :: infile real(DP) :: t real(QP) :: val + character(STRMAX) :: errmsg ! Select the appropriate polymorphic class (test particle or massive body) select type(self) @@ -803,39 +806,38 @@ module subroutine io_read_body_in(self, param) is_pl = .false. end select - ierr = 0 is_ascii = (param%in_type == 'ASCII') select case(param%in_type) case(ASCII_TYPE) - open(unit = iu, file = infile, status = 'old', form = 'FORMATTED', iostat = ierr) - read(iu, *, iostat = ierr) nbody + open(unit = iu, file = infile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) + read(iu, *, err = 667, iomsg = errmsg) nbody call self%setup(nbody, param) if (nbody > 0) then do i = 1, nbody select type(self) class is (swiftest_pl) if (param%lrhill_present) then - read(iu, *, iostat=ierr, err=100) self%id(i), val, self%rhill(i) + read(iu, *, err = 667, iomsg = errmsg) self%id(i), val, self%rhill(i) else - read(iu, *, iostat=ierr, err=100) self%id(i), val + read(iu, *, err = 667, iomsg = errmsg) self%id(i), val end if self%Gmass(i) = real(val, kind=DP) self%mass(i) = real(val / param%GU, kind=DP) - if (param%lclose) read(iu, *, iostat=ierr, err=100) self%radius(i) + if (param%lclose) read(iu, *, err = 667, iomsg = errmsg) self%radius(i) class is (swiftest_tp) - read(iu, *, iostat=ierr, err=100) self%id(i) + read(iu, *, err = 667, iomsg = errmsg) self%id(i) end select - read(iu, *, iostat=ierr, err=100) self%xh(1, i), self%xh(2, i), self%xh(3, i) - read(iu, *, iostat=ierr, err=100) self%vh(1, i), self%vh(2, i), self%vh(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%xh(1, i), self%xh(2, i), self%xh(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%vh(1, i), self%vh(2, i), self%vh(3, i) select type (self) class is (swiftest_pl) if (param%lrotation) then - read(iu, *, iostat=ierr, err=100) self%Ip(1, i), self%Ip(2, i), self%Ip(3, i) - read(iu, *, iostat=ierr, err=100) self%rot(1, i), self%rot(2, i), self%rot(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%Ip(1, i), self%Ip(2, i), self%Ip(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%rot(1, i), self%rot(2, i), self%rot(3, i) end if if (param%ltides) then - read(iu, *, iostat=ierr, err=100) self%k2(i) - read(iu, *, iostat=ierr, err=100) self%Q(i) + read(iu, *, err = 667, iomsg = errmsg) self%k2(i) + read(iu, *, err = 667, iomsg = errmsg) self%Q(i) end if end select self%status(i) = ACTIVE @@ -843,25 +845,24 @@ module subroutine io_read_body_in(self, param) end do end if case (REAL4_TYPE, REAL8_TYPE) !, SWIFTER_REAL4_TYPE, SWIFTER_REAL8_TYPE) - open(unit=iu, file=infile, status='old', form='UNFORMATTED', iostat=ierr) - read(iu, iostat=ierr, err=100) nbody + open(unit=iu, file=infile, status='old', form='UNFORMATTED', err = 667, iomsg = errmsg) + read(iu, err = 667, iomsg = errmsg) nbody call self%setup(nbody, param) if (nbody > 0) then - call self%read_frame(iu, param, XV, ierr) + call self%read_frame(iu, param, XV) self%status(:) = ACTIVE self%lmask(:) = .true. end if case default - write(*,*) trim(adjustl(param%in_type)) // ' is an unrecognized file type' - ierr = -1 + write(errmsg,*) trim(adjustl(param%in_type)) // ' is an unrecognized file type' + goto 667 end select - close(iu) + close(iu, err = 667, iomsg = errmsg) - 100 if (ierr /= 0 ) then - write(*,*) 'Error reading in initial conditions from ',trim(adjustl(infile)) - call util_exit(FAILURE) - end if + return + 667 continue + write(*,*) 'Error reading in initial conditions file: ',trim(adjustl(errmsg)) return end subroutine io_read_body_in @@ -880,38 +881,34 @@ module subroutine io_read_cb_in(self, param) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN - integer(I4B) :: ierr - logical :: is_ascii - real(DP) :: t - real(QP) :: val - - ierr = 0 - is_ascii = (param%in_type == 'ASCII') - if (is_ascii) then - open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', iostat = ierr) - read(iu, *, iostat = ierr) self%id - read(iu, *, iostat = ierr) val - self%Gmass = real(val, kind=DP) - self%mass = real(val / param%GU, kind=DP) - read(iu, *, iostat = ierr) self%radius - read(iu, *, iostat = ierr) self%j2rp2 - read(iu, *, iostat = ierr) self%j4rp4 + character(len=STRMAX) :: errmsg + + write(*,*) "Reading central body file " // trim(adjustl(param%incbfile)) + if (param%in_type == 'ASCII') then + open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) + read(iu, *, err = 667, iomsg = errmsg) self%id + read(iu, *, err = 667, iomsg = errmsg) self%Gmass + self%mass = real(self%Gmass / param%GU, kind=DP) + read(iu, *, err = 667, iomsg = errmsg) self%radius + read(iu, *, err = 667, iomsg = errmsg) self%j2rp2 + read(iu, *, err = 667, iomsg = errmsg) self%j4rp4 if (param%lrotation) then - read(iu, *, iostat = ierr) self%Ip(1), self%Ip(2), self%Ip(3) - read(iu, *, iostat = ierr) self%rot(1), self%rot(2), self%rot(3) + read(iu, *, err = 667, iomsg = errmsg) self%Ip(1), self%Ip(2), self%Ip(3) + read(iu, *, err = 667, iomsg = errmsg) self%rot(1), self%rot(2), self%rot(3) end if else - open(unit = iu, file = param%incbfile, status = 'old', form = 'UNFORMATTED', iostat = ierr) - call self%read_frame(iu, param, XV, ierr) - end if - close(iu) - if (ierr /= 0) then - write(*,*) 'Error opening massive body initial conditions file ',trim(adjustl(param%incbfile)) - call util_exit(FAILURE) + open(unit = iu, file = param%incbfile, status = 'old', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + call self%read_frame(iu, param, XV) end if + close(iu, err = 667, iomsg = errmsg) + if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. return + + 667 continue + write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_read_cb_in @@ -966,7 +963,7 @@ function io_read_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & end function io_read_encounter - module subroutine io_read_frame_body(self, iu, param, form, ierr) + module subroutine io_read_frame_body(self, iu, param, form) !! author: David A. Minton !! !! Reads a frame of output of either test particle or massive body data from a binary output file @@ -979,11 +976,12 @@ module subroutine io_read_frame_body(self, iu, param, form, ierr) integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code + ! Internals + character(len=STRMAX) :: errmsg associate(n => self%nbody) - read(iu, iostat=ierr, err=100) self%id(:) - !read(iu, iostat=ierr, err=100) self%name(1:n) + read(iu, err = 667, iomsg = errmsg) self%id(:) + !read(iu, err = 667, iomsg = errmsg) self%name(1:n) select case (form) case (EL) if (.not.allocated(self%a)) allocate(self%a(n)) @@ -992,51 +990,50 @@ module subroutine io_read_frame_body(self, iu, param, form, ierr) if (.not.allocated(self%capom)) allocate(self%capom(n)) if (.not.allocated(self%omega)) allocate(self%omega(n)) if (.not.allocated(self%capm)) allocate(self%capm(n)) - read(iu, iostat=ierr, err=100) self%a(:) - read(iu, iostat=ierr, err=100) self%e(:) - read(iu, iostat=ierr, err=100) self%inc(:) - read(iu, iostat=ierr, err=100) self%capom(:) - read(iu, iostat=ierr, err=100) self%omega(:) - read(iu, iostat=ierr, err=100) self%capm(:) + read(iu, err = 667, iomsg = errmsg) self%a(:) + read(iu, err = 667, iomsg = errmsg) self%e(:) + read(iu, err = 667, iomsg = errmsg) self%inc(:) + read(iu, err = 667, iomsg = errmsg) self%capom(:) + read(iu, err = 667, iomsg = errmsg) self%omega(:) + read(iu, err = 667, iomsg = errmsg) self%capm(:) case (XV) - read(iu, iostat=ierr, err=100) self%xh(1, :) - read(iu, iostat=ierr, err=100) self%xh(2, :) - read(iu, iostat=ierr, err=100) self%xh(3, :) - read(iu, iostat=ierr, err=100) self%vh(1, :) - read(iu, iostat=ierr, err=100) self%vh(2, :) - read(iu, iostat=ierr, err=100) self%vh(3, :) + read(iu, err = 667, iomsg = errmsg) self%xh(1, :) + read(iu, err = 667, iomsg = errmsg) self%xh(2, :) + read(iu, err = 667, iomsg = errmsg) self%xh(3, :) + read(iu, err = 667, iomsg = errmsg) self%vh(1, :) + read(iu, err = 667, iomsg = errmsg) self%vh(2, :) + read(iu, err = 667, iomsg = errmsg) self%vh(3, :) end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - read(iu, iostat=ierr, err=100) pl%Gmass(:) + read(iu, err = 667, iomsg = errmsg) pl%Gmass(:) pl%mass(:) = pl%Gmass(:) / param%GU - if (param%lrhill_present) read(iu, iostat=ierr, err=100) pl%rhill(:) - if (param%lclose) read(iu, iostat=ierr, err=100) pl%radius(:) + if (param%lrhill_present) read(iu, err = 667, iomsg = errmsg) pl%rhill(:) + if (param%lclose) read(iu, err = 667, iomsg = errmsg) pl%radius(:) if (param%lrotation) then - read(iu, iostat=ierr, err=100) pl%rot(1, :) - read(iu, iostat=ierr, err=100) pl%rot(2, :) - read(iu, iostat=ierr, err=100) pl%rot(3, :) - read(iu, iostat=ierr, err=100) pl%Ip(1, :) - read(iu, iostat=ierr, err=100) pl%Ip(2, :) - read(iu, iostat=ierr, err=100) pl%Ip(3, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(1, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(2, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(3, :) + read(iu, err = 667, iomsg = errmsg) pl%Ip(1, :) + read(iu, err = 667, iomsg = errmsg) pl%Ip(2, :) + read(iu, err = 667, iomsg = errmsg) pl%Ip(3, :) end if if (param%ltides) then - read(iu, iostat=ierr, err=100) pl%k2(1:n) - read(iu, iostat=ierr, err=100) pl%Q(1:n) + read(iu, err = 667, iomsg = errmsg) pl%k2(1:n) + read(iu, err = 667, iomsg = errmsg) pl%Q(1:n) end if end select end associate - 100 if (ierr /=0) then - write(*,*) 'Error reading Swiftest body data' - call util_exit(FAILURE) - end if - return + + 667 continue + write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param, form, ierr) + module subroutine io_read_frame_cb(self, iu, param, form) !! author: David A. Minton !! !! Reads a frame of output of central body data to the binary output file @@ -1049,33 +1046,33 @@ module subroutine io_read_frame_cb(self, iu, param, form, ierr) integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error cod + ! Internals + character(len=STRMAX) :: errmsg - read(iu, iostat=ierr, err=100) self%id - !read(iu, iostat=ierr, err=100) self%name - read(iu, iostat=ierr, err=100) self%Gmass + read(iu, err = 667, iomsg = errmsg) self%id + !read(iu, err = 667, iomsg = errmsg) self%name + read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU - read(iu, iostat=ierr, err=100) self%radius - read(iu, iostat=ierr, err=100) self%j2rp2 - read(iu, iostat=ierr, err=100) self%j4rp4 + read(iu, err = 667, iomsg = errmsg) self%radius + read(iu, err = 667, iomsg = errmsg) self%j2rp2 + read(iu, err = 667, iomsg = errmsg) self%j4rp4 if (param%lrotation) then - read(iu, iostat=ierr, err=100) self%Ip(:) - read(iu, iostat=ierr, err=100) self%rot(:) + read(iu, err = 667, iomsg = errmsg) self%Ip(:) + read(iu, err = 667, iomsg = errmsg) self%rot(:) end if if (param%ltides) then - read(iu, iostat=ierr, err=100) self%k2 - read(iu, iostat=ierr, err=100) self%Q - end if - 100 if (ierr /=0) then - write(*,*) 'Error reading central body data' - call util_exit(FAILURE) + read(iu, err = 667, iomsg = errmsg) self%k2 + read(iu, err = 667, iomsg = errmsg) self%Q end if - return + + 667 continue + write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param, form, ierr) + module subroutine io_read_frame_system(self, iu, param, form) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Read a frame (header plus records for each massive body and active test particle) from a output binary file @@ -1085,19 +1082,15 @@ module subroutine io_read_frame_system(self, iu, param, form, ierr) integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code ! Internals - logical, save :: lfirst = .true. + logical, save :: lfirst = .true. + character(len=STRMAX) :: errmsg + integer(I4B) :: ierr iu = BINUNIT if (lfirst) then - open(unit = iu, file = param%outfile, status = 'OLD', form = 'UNFORMATTED', iostat = ierr) + open(unit = iu, file = param%outfile, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) lfirst = .false. - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " Binary output file already exists or cannot be accessed" - return - end if end if ierr = io_read_hdr(iu, param%t, self%pl%nbody, self%tp%nbody, param%out_form, param%out_type) if (ierr /= 0) then @@ -1105,13 +1098,15 @@ module subroutine io_read_frame_system(self, iu, param, form, ierr) write(*, *) " Binary output file already exists or cannot be accessed" return end if - call self%cb%read_frame(iu, param, form, ierr) - if (ierr /= 0) return - call self%pl%read_frame(iu, param, form, ierr) - if (ierr /= 0) return - call self%tp%read_frame(iu, param, form, ierr) + call self%cb%read_frame(iu, param, form) + call self%pl%read_frame(iu, param, form) + call self%tp%read_frame(iu, param, form) return + + 667 continue + write(*,*) "Error reading system frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_read_frame_system @@ -1132,24 +1127,30 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) ! Result integer(I4B) :: ierr ! Internals - real(SP) :: ttmp + real(SP) :: ttmp + character(len=STRMAX) :: errmsg select case (out_type) case (REAL4_TYPE, SWIFTER_REAL4_TYPE) - read(iu, iostat = ierr) ttmp, npl, ntp, out_form + read(iu, iostat = ierr, err = 667, iomsg = errmsg) ttmp, npl, ntp, out_form if (ierr /= 0) return t = ttmp case (REAL8_TYPE, SWIFTER_REAL8_TYPE) - read(iu, iostat = ierr) t - read(iu, iostat = ierr) npl - read(iu, iostat = ierr) ntp - read(iu, iostat = ierr) out_form + read(iu, iostat = ierr, err = 667, iomsg = errmsg) t + read(iu, iostat = ierr, err = 667, iomsg = errmsg) npl + read(iu, iostat = ierr, err = 667, iomsg = errmsg) ntp + read(iu, iostat = ierr, err = 667, iomsg = errmsg) out_form case default - write(*,*) trim(adjustl(out_type)) // ' is an unrecognized file type' + write(errmsg,*) trim(adjustl(out_type)) // ' is an unrecognized file type' ierr = -1 end select return + + 667 continue + write(*,*) "Error reading header: " // trim(adjustl(errmsg)) + + return end function io_read_hdr module subroutine io_read_param_in(self, param_file_name) @@ -1166,31 +1167,24 @@ module subroutine io_read_param_in(self, param_file_name) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: ierr = 0 !! Input error code - character(STRMAX) :: error_message !! Error message in UDIO procedure + character(STRMAX) :: errmsg !! Error message in UDIO procedure ! Read in name of parameter file write(*, *) 'Parameter input file is ', trim(adjustl(param_file_name)) write(*, *) ' ' 100 format(A) - open(unit = LUN, file = param_file_name, status = 'old', iostat = ierr) - if (ierr /= 0) then - write(*,*) 'Swiftest error: ', ierr - write(*,*) ' Unable to open file ',trim(adjustl(param_file_name)) - call util_exit(FAILURE) - end if + open(unit = LUN, file = param_file_name, status = 'old', iostat = ierr, err = 667, iomsg = errmsg) !! todo: Currently this procedure does not work in user-defined derived-type input mode !! as the newline characters are ignored in the input file when compiled in ifort. - !read(LUN,'(DT)', iostat= ierr, iomsg = error_message) param - call self%reader(LUN, iotype= "none", v_list = [self%integrator], iostat = ierr, iomsg = error_message) - if (ierr /= 0) then - write(*,*) 'Swiftest error reading ', trim(adjustl(param_file_name)) - write(*,*) ierr,trim(adjustl(error_message)) - call util_exit(FAILURE) - end if + !read(LUN,'(DT)', iostat= ierr, iomsg = errmsg) param + call self%reader(LUN, iotype= "none", v_list = [self%integrator], iostat = ierr, iomsg = errmsg) + if (ierr == 0) return - return + 667 continue + write(*,*) "Error reading parameter file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_read_param_in @@ -1232,7 +1226,7 @@ module subroutine io_write_discard(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals integer(I4B), parameter :: LUN = 40 - integer(I4B) :: i, ierr + integer(I4B) :: i logical, save :: lfirst = .true. real(DP), dimension(:,:), allocatable :: vh character(*), parameter :: HDRFMT = '(E23.16, 1X, I8, 1X, L1)' @@ -1241,6 +1235,7 @@ module subroutine io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp + character(len=STRMAX) :: errmsg if (param%discard_out == "") return @@ -1248,9 +1243,9 @@ module subroutine io_write_discard(self, param) if (nsp == 0) return select case(param%out_stat) case('APPEND') - open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', iostat = ierr) + open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') - open(unit = LUN, file = param%discard_out, status = param%out_stat, form = 'FORMATTED', iostat = ierr) + open(unit = LUN, file = param%discard_out, status = param%out_stat, form = 'FORMATTED', err = 667, iomsg = errmsg) case default write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) call util_exit(FAILURE) @@ -1260,9 +1255,9 @@ module subroutine io_write_discard(self, param) write(LUN, HDRFMT) param%t, nsp, param%lbig_discard do i = 1, nsp - write(LUN, NAMEFMT) SUB, tp_discards%id(i), tp_discards%status(i) - write(LUN, VECFMT) tp_discards%xh(1, i), tp_discards%xh(2, i), tp_discards%xh(3, i) - write(LUN, VECFMT) tp_discards%vh(1, i), tp_discards%vh(2, i), tp_discards%vh(3, i) + write(LUN, NAMEFMT, err = 667, iomsg = errmsg) SUB, tp_discards%id(i), tp_discards%status(i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) tp_discards%xh(1, i), tp_discards%xh(2, i), tp_discards%xh(3, i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) tp_discards%vh(1, i), tp_discards%vh(2, i), tp_discards%vh(3, i) end do if (param%lbig_discard) then if (param%lgr) then @@ -1276,9 +1271,9 @@ module subroutine io_write_discard(self, param) write(LUN, NPLFMT) npl do i = 1, npl - write(LUN, PLNAMEFMT) pl%id(i), pl%Gmass(i), pl%radius(i) - write(LUN, VECFMT) pl%xh(1, i), pl%xh(2, i), pl%xh(3, i) - write(LUN, VECFMT) vh(1, i), vh(2, i), vh(3, i) + write(LUN, PLNAMEFMT, err = 667, iomsg = errmsg) pl%id(i), pl%Gmass(i), pl%radius(i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl%xh(1, i), pl%xh(2, i), pl%xh(3, i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) vh(1, i), vh(2, i), vh(3, i) end do deallocate(vh) end if @@ -1286,6 +1281,10 @@ module subroutine io_write_discard(self, param) end associate return + + 667 continue + write(*,*) "Error writing discard file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_discard @@ -1300,17 +1299,13 @@ module subroutine io_write_encounter(self, pl, encbody, param) logical , save :: lfirst = .true. integer(I4B), parameter :: LUN = 30 integer(I4B) :: k, ierr + character(len=STRMAX) :: errmsg if (param%enc_out == "" .or. self%nenc == 0) return - open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) if ((ierr /= 0) .and. lfirst) then - open(unit = LUN, file = param%enc_out, status = 'NEW', form = 'UNFORMATTED', iostat = ierr) - end if - if (ierr /= 0) then - write(*, *) "Swiftest Error:" - write(*, *) " Unable to open binary encounter file" - call util_exit(FAILURE) + open(unit = LUN, file = param%enc_out, status = 'NEW', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if lfirst = .false. @@ -1337,13 +1332,12 @@ module subroutine io_write_encounter(self, pl, encbody, param) end select end associate - close(unit = LUN, iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest Error:" - write(*, *) " Unable to close binary encounter file" - call util_exit(FAILURE) - end if + close(unit = LUN, err = 667, iomsg = errmsg) + return + 667 continue + write(*,*) "Error writing discard file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_encounter @@ -1360,48 +1354,53 @@ module subroutine io_write_frame_body(self, iu, param) class(swiftest_body), intent(in) :: self !! Swiftest particle object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + character(len=STRMAX) :: errmsg associate(n => self%nbody) if (n == 0) return - write(iu) self%id(1:n) - !write(iu) self%name(1:n) + write(iu, err = 667, iomsg = errmsg) self%id(1:n) + !write(iu, err = 667, iomsg = errmsg) self%name(1:n) select case (param%out_form) case (EL) - write(iu) self%a(1:n) - write(iu) self%e(1:n) - write(iu) self%inc(1:n) - write(iu) self%capom(1:n) - write(iu) self%omega(1:n) - write(iu) self%capm(1:n) + write(iu, err = 667, iomsg = errmsg) self%a(1:n) + write(iu, err = 667, iomsg = errmsg) self%e(1:n) + write(iu, err = 667, iomsg = errmsg) self%inc(1:n) + write(iu, err = 667, iomsg = errmsg) self%capom(1:n) + write(iu, err = 667, iomsg = errmsg) self%omega(1:n) + write(iu, err = 667, iomsg = errmsg) self%capm(1:n) case (XV) - write(iu) self%xh(1, 1:n) - write(iu) self%xh(2, 1:n) - write(iu) self%xh(3, 1:n) - write(iu) self%vh(1, 1:n) - write(iu) self%vh(2, 1:n) - write(iu) self%vh(3, 1:n) + write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) + write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) + write(iu, err = 667, iomsg = errmsg) self%xh(3, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(1, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(2, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(3, 1:n) end select select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - write(iu) pl%Gmass(1:n) - if (param%lrhill_present) write(iu) pl%rhill(1:n) - if (param%lclose) write(iu) pl%radius(1:n) + write(iu, err = 667, iomsg = errmsg) pl%Gmass(1:n) + if (param%lrhill_present) write(iu, err = 667, iomsg = errmsg) pl%rhill(1:n) + if (param%lclose) write(iu, err = 667, iomsg = errmsg) pl%radius(1:n) if (param%lrotation) then - write(iu) pl%Ip(1, 1:n) - write(iu) pl%Ip(2, 1:n) - write(iu) pl%Ip(3, 1:n) - write(iu) pl%rot(1, 1:n) - write(iu) pl%rot(2, 1:n) - write(iu) pl%rot(3, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%Ip(1, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%Ip(2, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%Ip(3, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(1, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(2, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(3, 1:n) end if if (param%ltides) then - write(iu) pl%k2(1:n) - write(iu) pl%Q(1:n) + write(iu, err = 667, iomsg = errmsg) pl%k2(1:n) + write(iu, err = 667, iomsg = errmsg) pl%Q(1:n) end if end select end associate return + 667 continue + write(*,*) "Error writing body frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_frame_body @@ -1417,29 +1416,34 @@ module subroutine io_write_frame_cb(self, iu, param) class(swiftest_cb), intent(in) :: self !! Swiftest central body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + character(len=STRMAX) :: errmsg associate(cb => self) - !write(iu) cb%name - write(iu) cb%id - write(iu) cb%Gmass - write(iu) cb%radius - write(iu) cb%j2rp2 - write(iu) cb%j4rp4 + !write(iu, err = 667, iomsg = errmsg) cb%name + write(iu, err = 667, iomsg = errmsg) cb%id + write(iu, err = 667, iomsg = errmsg) cb%Gmass + write(iu, err = 667, iomsg = errmsg) cb%radius + write(iu, err = 667, iomsg = errmsg) cb%j2rp2 + write(iu, err = 667, iomsg = errmsg) cb%j4rp4 if (param%lrotation) then - write(iu) cb%Ip(1) - write(iu) cb%Ip(2) - write(iu) cb%Ip(3) - write(iu) cb%rot(1) - write(iu) cb%rot(2) - write(iu) cb%rot(3) + write(iu, err = 667, iomsg = errmsg) cb%Ip(1) + write(iu, err = 667, iomsg = errmsg) cb%Ip(2) + write(iu, err = 667, iomsg = errmsg) cb%Ip(3) + write(iu, err = 667, iomsg = errmsg) cb%rot(1) + write(iu, err = 667, iomsg = errmsg) cb%rot(2) + write(iu, err = 667, iomsg = errmsg) cb%rot(3) end if if (param%ltides) then - write(iu) cb%k2 - write(iu) cb%Q + write(iu, err = 667, iomsg = errmsg) cb%k2 + write(iu, err = 667, iomsg = errmsg) cb%Q end if end associate return + 667 continue + write(*,*) "Error writing central body frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_frame_cb @@ -1460,19 +1464,16 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi real(DP), dimension(:), intent(in) :: xh1, xh2 !! Heliocentric position vectors of the two encountering bodies real(DP), dimension(:), intent(in) :: vh1, vh2 !! Heliocentric velocity vectors of the two encountering bodies ! Internals - integer(I4B) :: ierr + character(len=STRMAX) :: errmsg - write(iu, iostat = ierr) t - write(iu, iostat = ierr) id1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), Gmass1, radius1 - write(iu, iostat = ierr) id2, xh2(1), xh2(2), xh2(3), vh2(1), vh2(2), Gmass2, radius2 - - if (ierr /= 0) then - write(*, *) "Swiftest Error:" - write(*, *) " Unable to write binary file record for encounter" - call util_exit(FAILURE) - end if + write(iu, err = 667, iomsg = errmsg) t + write(iu, err = 667, iomsg = errmsg) id1, xh1(1), xh1(2), xh1(3), vh1(1), vh1(2), Gmass1, radius1 + write(iu, err = 667, iomsg = errmsg) id2, xh2(1), xh2(2), xh2(3), vh2(1), vh2(2), Gmass2, radius2 return + 667 continue + write(*,*) "Error writing encounter file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine @@ -1491,11 +1492,10 @@ module subroutine io_write_frame_system(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method - integer(I4B) :: ierr !! I/O error code - class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions + character(len=STRMAX) :: errmsg allocate(cb, source = self%cb) allocate(pl, source = self%pl) @@ -1505,27 +1505,16 @@ module subroutine io_write_frame_system(self, iu, param) if (lfirst) then select case(param%out_stat) case('APPEND') - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') - open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', iostat = ierr) + open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) case default write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) call util_exit(FAILURE) end select - if (ierr /= 0) then - write(*, *) "Swiftest error: io_write_frame_system - first", ierr - write(*, *) " Binary output file " // trim(adjustl(param%outfile)) // " already exists or cannot be accessed" - write(*, *) " OUT_STAT: " // trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end if lfirst = .false. else - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error: io_write_frame_system" - write(*, *) " Unable to open binary output file for APPEND" - call util_exit(FAILURE) - end if + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) @@ -1546,9 +1535,12 @@ module subroutine io_write_frame_system(self, iu, param) deallocate(cb, pl, tp) - close(iu) + close(iu, err = 667, iomsg = errmsg) return + 667 continue + write(*,*) "Error writing system frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_frame_system @@ -1568,29 +1560,23 @@ subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) character(*), intent(in) :: out_form !! Output format type ("EL" or "XV") character(*), intent(in) :: out_type !! Output file format type (REAL4, REAL8 - see swiftest module for symbolic name definitions) ! Internals - integer(I4B) :: ierr !! Error code + character(len=STRMAX) :: errmsg select case (out_type) case (REAL4_TYPE,SWIFTER_REAL4_TYPE) - write(iu, iostat = ierr) real(t, kind=SP) - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " Unable to write binary file header" - call util_exit(FAILURE) - end if + write(iu, err = 667, iomsg = errmsg) real(t, kind=SP) case (REAL8_TYPE,SWIFTER_REAL8_TYPE) - write(iu, iostat = ierr) t - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " Unable to write binary file header" - call util_exit(FAILURE) - end if + write(iu, err = 667, iomsg = errmsg) t end select - write(iu, iostat = ierr) npl - write(iu, iostat = ierr) ntp - write(iu, iostat = ierr) out_form + write(iu, err = 667, iomsg = errmsg) npl + write(iu, err = 667, iomsg = errmsg) ntp + write(iu, err = 667, iomsg = errmsg) out_form return + + 667 continue + write(*,*) "Error writing header: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine io_write_hdr end submodule s_io diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 96c35675b..8949afdfa 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -364,13 +364,12 @@ subroutine abstract_kick_body(self, system, param, t, dt, lbeg) logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. end subroutine abstract_kick_body - subroutine abstract_read_frame(self, iu, param, form, ierr) + subroutine abstract_read_frame(self, iu, param, form) import DP, I4B, swiftest_base, swiftest_parameters class(swiftest_base), intent(inout) :: self !! Swiftest base object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code end subroutine abstract_read_frame subroutine abstract_set_mu(self, cb) @@ -620,31 +619,28 @@ module subroutine io_read_param_in(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) end subroutine io_read_param_in - module subroutine io_read_frame_body(self, iu, param, form, ierr) + module subroutine io_read_frame_body(self, iu, param, form) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code end subroutine io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param, form, ierr) + module subroutine io_read_frame_cb(self, iu, param, form) implicit none class(swiftest_cb), intent(inout) :: self !! Swiftest central body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code end subroutine io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param, form, ierr) + module subroutine io_read_frame_system(self, iu, param, form) implicit none class(swiftest_nbody_system),intent(inout) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code end subroutine io_read_frame_system module subroutine io_write_discard(self, param) diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 73027c351..4bdc5c195 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -17,40 +17,31 @@ module subroutine symba_io_dump_particle_info(system, param, lincludecb, tpidx, ! Internals logical, save :: lfirst = .true. integer(I4B), parameter :: LUN = 22 - integer(I4B) :: i, ierr + integer(I4B) :: i + character(STRMAX) :: errmsg if (lfirst) then select case(param%out_stat) case('APPEND') - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) case('NEW', 'UNKNOWN', 'REPLACE') - open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', iostat = ierr) + open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) case default write(*,*) 'Invalid status code',trim(adjustl(param%out_stat)) call util_exit(FAILURE) end select - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " particle output file already exists or cannot be accessed" - call util_exit(FAILURE) - end if lfirst = .false. else - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " unable to open binary output file for APPEND" - call util_exit(FAILURE) - end if + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if if (present(lincludecb)) then if (lincludecb) then select type(cb => system%cb) class is (symba_cb) - write(LUN) cb%id - write(LUN) cb%info + write(LUN, err = 667, iomsg = errmsg) cb%id + write(LUN, err = 667, iomsg = errmsg) cb%info end select end if end if @@ -59,8 +50,8 @@ module subroutine symba_io_dump_particle_info(system, param, lincludecb, tpidx, select type(pl => system%pl) class is (symba_pl) do i = 1, size(plidx) - write(LUN) pl%id(plidx(i)) - write(LUN) pl%info(plidx(i)) + write(LUN, err = 667, iomsg = errmsg) pl%id(plidx(i)) + write(LUN, err = 667, iomsg = errmsg) pl%info(plidx(i)) end do end select end if @@ -69,20 +60,19 @@ module subroutine symba_io_dump_particle_info(system, param, lincludecb, tpidx, select type(tp => system%tp) class is (symba_tp) do i = 1, size(tpidx) - write(LUN) tp%id(tpidx(i)) - write(LUN) tp%info(tpidx(i)) + write(LUN, err = 667, iomsg = errmsg) tp%id(tpidx(i)) + write(LUN, err = 667, iomsg = errmsg) tp%info(tpidx(i)) end do end select end if - close(unit = LUN, iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " unable to close particle output file" - call util_exit(FAILURE) - end if + close(unit = LUN, err = 667, iomsg = errmsg) return + + 667 continue + write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine symba_io_dump_particle_info @@ -118,7 +108,7 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms allocate(param%seed(nseeds)) rewind(unit) do - read(unit = unit, fmt = linefmt, iostat = iostat, end = 1) line + read(unit = unit, fmt = linefmt, iostat = iostat, end = 1, err = 667, iomsg = iomsg) line line_trim = trim(adjustl(line)) ilength = len(line_trim) if ((ilength /= 0)) then @@ -192,6 +182,7 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms iostat = 0 + 667 continue return end subroutine symba_io_param_reader @@ -230,9 +221,9 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms ! Special handling is required for writing the random number seed array as its size is not known until runtime ! For the "SEED" parameter line, the first value will be the size of the seed array and the rest will be the seed array elements - write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%Gmtiny; write(unit, Afmt) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%Gmtiny; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%lfragmentation) then write(param_name, Afmt) "SEED" if (allocated(param_array)) deallocate(param_array) @@ -241,12 +232,12 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms do i = 1, size(param%seed) write(param_array(i)%value, Ifmt) param%seed(i) end do - write(unit, Afmt, advance='no') adjustl(param_name), adjustl(param_array(0)%value) + write(unit, Afmt, advance='no', err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_array(0)%value) do i = 1, size(param%seed) if (i < size(param%seed)) then - write(unit, Afmt, advance='no') adjustl(param_array(i)%value) + write(unit, Afmt, advance='no', err = 667, iomsg = iomsg) adjustl(param_array(i)%value) else - write(unit, Afmt) adjustl(param_array(i)%value) + write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_array(i)%value) end if end do end if @@ -254,6 +245,7 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms iostat = 0 end associate + 667 continue return end subroutine symba_io_param_writer @@ -268,16 +260,12 @@ module subroutine symba_io_read_particle(system, param) ! Internals integer(I4B), parameter :: LUN = 22 - integer(I4B) :: i, ierr, id, idx + integer(I4B) :: i, id, idx logical :: lmatch type(symba_particle_info) :: tmpinfo + character(STRMAX) :: errmsg - open(unit = LUN, file = param%particle_out, status = 'OLD', form = 'UNFORMATTED', iostat = ierr) - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " unable to open binary particle file for reading" - call util_exit(FAILURE) - end if + open(unit = LUN, file = param%particle_out, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) select type(cb => system%cb) class is (symba_cb) @@ -287,44 +275,42 @@ module subroutine symba_io_read_particle(system, param) class is (symba_tp) do lmatch = .false. - read(LUN, iostat=ierr) id - if (ierr /=0) exit + read(LUN, err = 667, iomsg = errmsg) id if (idx == cb%id) then - read(LUN) cb%info + read(LUN, err = 667, iomsg = errmsg) cb%info lmatch = .true. else if (pl%nbody > 0) then idx = findloc(pl%id(:), id, dim=1) if (idx /= 0) then - read(LUN) pl%info(idx) + read(LUN, err = 667, iomsg = errmsg) pl%info(idx) lmatch = .true. end if end if if (.not.lmatch .and. tp%nbody > 0) then idx = findloc(tp%id(:), id, dim=1) if (idx /= 0) then - read(LUN) tp%info(idx) + read(LUN, err = 667, iomsg = errmsg) tp%info(idx) lmatch = .true. end if end if end if if (.not.lmatch) then write(*,*) 'Particle id ',id,' not found. Skipping' - read(LUN) tmpinfo + read(LUN, err = 667, iomsg = errmsg) tmpinfo end if end do - close(unit = LUN, iostat = ierr) + close(unit = LUN, err = 667, iomsg = errmsg) end select end select end select - if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " unable to close particle output file" - call util_exit(FAILURE) - end if return + + 667 continue + write(*,*) "Error reading particle information file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine symba_io_read_particle @@ -334,7 +320,7 @@ module subroutine symba_io_write_discard(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals integer(I4B), parameter :: LUN = 40 - integer(I4B) :: iadd, isub, j, ierr, nsub, nadd + integer(I4B) :: iadd, isub, j, nsub, nadd logical, save :: lfirst = .true. real(DP), dimension(:,:), allocatable :: vh character(*), parameter :: HDRFMT = '(E23.16, 1X, I8, 1X, L1)' @@ -343,6 +329,7 @@ module subroutine symba_io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp + character(STRMAX) :: errmsg if (param%discard_out == "") return @@ -353,9 +340,9 @@ module subroutine symba_io_write_discard(self, param) if (pl_discards%nbody == 0) return select case(param%out_stat) case('APPEND') - open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', iostat = ierr) + open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') - open(unit = LUN, file = param%discard_out, status = param%out_stat, form = 'FORMATTED', iostat = ierr) + open(unit = LUN, file = param%discard_out, status = param%out_stat, form = 'FORMATTED', err = 667, iomsg = errmsg) case default write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) call util_exit(FAILURE) @@ -366,7 +353,7 @@ module subroutine symba_io_write_discard(self, param) call pl_adds%pv2v(param) end if - write(LUN, HDRFMT) param%t, pl_discards%nbody, param%lbig_discard + write(LUN, HDRFMT, err = 667, iomsg = errmsg) param%t, pl_discards%nbody, param%lbig_discard iadd = 1 isub = 1 do while (iadd <= pl_adds%nbody) @@ -374,9 +361,9 @@ module subroutine symba_io_write_discard(self, param) nsub = pl_discards%ncomp(isub) do j = 1, nadd if (iadd <= pl_adds%nbody) then - write(LUN, NAMEFMT) ADD, pl_adds%id(iadd), pl_adds%status(iadd) - write(LUN, VECFMT) pl_adds%xh(1, iadd), pl_adds%xh(2, iadd), pl_adds%xh(3, iadd) - write(LUN, VECFMT) pl_adds%vh(1, iadd), pl_adds%vh(2, iadd), pl_adds%vh(3, iadd) + write(LUN, NAMEFMT, err = 667, iomsg = errmsg) ADD, pl_adds%id(iadd), pl_adds%status(iadd) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl_adds%xh(1, iadd), pl_adds%xh(2, iadd), pl_adds%xh(3, iadd) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl_adds%vh(1, iadd), pl_adds%vh(2, iadd), pl_adds%vh(3, iadd) else exit end if @@ -384,9 +371,9 @@ module subroutine symba_io_write_discard(self, param) end do do j = 1, nsub if (isub <= pl_discards%nbody) then - write(LUN, NAMEFMT) SUB, pl_discards%id(isub), pl_discards%status(isub) - write(LUN, VECFMT) pl_discards%xh(1, isub), pl_discards%xh(2, isub), pl_discards%xh(3, isub) - write(LUN, VECFMT) pl_discards%vh(1, isub), pl_discards%vh(2, isub), pl_discards%vh(3, isub) + write(LUN, NAMEFMT, err = 667, iomsg = errmsg) SUB, pl_discards%id(isub), pl_discards%status(isub) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl_discards%xh(1, isub), pl_discards%xh(2, isub), pl_discards%xh(3, isub) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl_discards%vh(1, isub), pl_discards%vh(2, isub), pl_discards%vh(3, isub) else exit end if @@ -399,6 +386,10 @@ module subroutine symba_io_write_discard(self, param) end associate return + + 667 continue + write(*,*) "Error writing discard file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) end subroutine symba_io_write_discard end submodule s_symba_io diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index e4644f25e..3fe7c21c5 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -79,7 +79,7 @@ module subroutine symba_setup_initialize_system(self, param) call system%plplcollision_list%setup(0) select type(pl => system%pl) class is (symba_pl) - call pl%sort("mass", ascending=.false.) + !call pl%sort("mass", ascending=.false.) select type(param) class is (symba_parameters) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index eaed16c14..4f9bc6bcf 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -79,7 +79,7 @@ module subroutine whm_setup_initialize_system(self, param) call setup_initialize_system(self, param) ! First we need to make sure that the massive bodies are sorted by heliocentric distance before computing jacobies call util_set_ir3h(self%pl) - call self%pl%sort("ir3h", ascending=.false.) + !call self%pl%sort("ir3h", ascending=.false.) ! Make sure that the discard list gets allocated initially call self%tp_discards%setup(0, param) From e6507f775967afe1e354793dc461f2fdd1b5f454 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 10:31:18 -0400 Subject: [PATCH 032/315] Added Swifter/Swiftest comparison using Jennifer's Mars disk sim (merging only) --- .../symba_swifter_comparison/mars_disk/cb.in | 7 + .../mars_disk/param.swifter.in | 27 + .../mars_disk/param.swiftest.in | 32 + .../mars_disk/pl.swifter.in | 6004 +++++++++++ .../mars_disk/pl.swiftest.in | 9001 +++++++++++++++++ .../symba_swifter_comparison/mars_disk/tp.in | 1 + 6 files changed, 15072 insertions(+) create mode 100644 examples/symba_swifter_comparison/mars_disk/cb.in create mode 100644 examples/symba_swifter_comparison/mars_disk/param.swifter.in create mode 100644 examples/symba_swifter_comparison/mars_disk/param.swiftest.in create mode 100644 examples/symba_swifter_comparison/mars_disk/pl.swifter.in create mode 100644 examples/symba_swifter_comparison/mars_disk/pl.swiftest.in create mode 100644 examples/symba_swifter_comparison/mars_disk/tp.in diff --git a/examples/symba_swifter_comparison/mars_disk/cb.in b/examples/symba_swifter_comparison/mars_disk/cb.in new file mode 100644 index 000000000..c9dafacfd --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/cb.in @@ -0,0 +1,7 @@ +0 ! id +4.28388662e+13 ! G*mass +3389500.0 ! radius +0.0 ! J2 +0.0 ! J4 +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot diff --git a/examples/symba_swifter_comparison/mars_disk/param.swifter.in b/examples/symba_swifter_comparison/mars_disk/param.swifter.in new file mode 100644 index 000000000..f5cbe9a08 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/param.swifter.in @@ -0,0 +1,27 @@ +T0 0.0 +TSTOP 6000.0 +DT 600.0 +PL_IN pl.swifter.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT UNKNOWN +J2 0.0 +J4 0.0 +CHK_CLOSE yes +CHK_RMIN 3389500.0 +CHK_RMAX 3389500000.0 +CHK_EJECT 3389500000.0 +CHK_QMIN 3389500.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 3389500.0 338950000000.0 +ENC_OUT /dev/null +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes +WALLTIME yes +ENERGY yes diff --git a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in new file mode 100644 index 000000000..406344ff0 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in @@ -0,0 +1,32 @@ +!Parameter file for the SyMBA-RINGMOONS test +T0 0.0 +TSTOP 6000.0 +DT 600.0 +PL_IN pl.swiftest.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swiftest.dat +PARTICLE_OUT particle.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT REPLACE +CHK_CLOSE yes +CHK_RMIN 3389500.0 +CHK_RMAX 3389500000.0 +CHK_EJECT 3389500000.0 +CHK_QMIN 3389500.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 3389500.0 338950000000.0 +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes +GMTINY 1000.0 +ENERGY yes +FRAGMENTATION no +ROTATION yes +MU2KG 1.0 +DU2M 1.0 +TU2S 1.0 +SEED 2 3080983 2220830 diff --git a/examples/symba_swifter_comparison/mars_disk/pl.swifter.in b/examples/symba_swifter_comparison/mars_disk/pl.swifter.in new file mode 100644 index 000000000..09a72ef61 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/pl.swifter.in @@ -0,0 +1,6004 @@ +1501 ! Mars System in SI units +1 4.28388662e+13 +.0 .0 .0 ! x y z +.0 .0 .0 !vx vy vz +727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +1.24108926e+04 !particle radius in m +-8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z +9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz +231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +8.87389776e+03 !particle radius in m +-8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z +1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz +2 9.90685589e+04 8.35558297e+03 ! particle number mass Rhill +7.07643092e+03 !particle radius in m +-2.35807426e+06 8.60445552e+06 1.25224401e+04 ! x y z +-2.13373621e+03 -5.91159549e+02 -1.46482980e+00 ! vx vy vz +3 3.17438752e+04 6.69500494e+03 ! particle number mass Rhill +4.84234399e+03 !particle radius in m +-8.01160007e+06 -6.93642997e+06 1.51456130e+04 ! x y z +1.31205897e+03 -1.53256580e+03 -1.41252951e-01 ! vx vy vz +4 3.98556011e+05 1.56022902e+04 ! particle number mass Rhill +1.12546530e+04 !particle radius in m +8.10802666e+05 1.07743901e+07 2.02908991e+04 ! x y z +-1.97583939e+03 1.47020293e+02 2.81847341e-01 ! vx vy vz +5 1.44988335e+05 1.52187807e+04 ! particle number mass Rhill +5.45209420e+03 !particle radius in m +1.19634122e+07 -8.10716246e+06 -5.95532256e+04 ! x y z +9.82512278e+02 1.42576317e+03 8.88854207e+00 ! vx vy vz +6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill +7.50714229e+03 !particle radius in m +-9.39611249e+06 3.86341011e+06 4.12677461e+04 ! x y z +-8.05714130e+02 -1.87378063e+03 1.44571432e+01 ! vx vy vz +7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill +7.78923399e+03 !particle radius in m +-4.75251420e+06 -1.21243281e+07 -4.63584868e+04 ! x y z +1.67483168e+03 -6.72935315e+02 -2.51894419e+00 ! vx vy vz +8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill +9.51941869e+03 !particle radius in m +-1.85450966e+06 -1.34716389e+07 8.25492639e+04 ! x y z +1.75187299e+03 -2.73602528e+02 -3.13786565e+00 ! vx vy vz +9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill +1.02445905e+04 !particle radius in m +1.23514674e+07 2.68920661e+05 1.39262437e+04 ! x y z +-5.46299990e+01 1.85637492e+03 8.88156878e+00 ! vx vy vz +10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill +1.00413666e+04 !particle radius in m +-3.23931710e+06 -9.01689172e+06 -4.12799209e+04 ! x y z +2.01018172e+03 -6.80970287e+02 7.47887585e+00 ! vx vy vz +11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill +9.41021993e+03 !particle radius in m +-8.22383274e+06 6.53912283e+06 -4.14927827e+04 ! x y z +-1.24361728e+03 -1.57101590e+03 1.15408315e+01 ! vx vy vz +12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill +5.66402670e+03 !particle radius in m +1.08162501e+06 1.60434368e+07 -1.90513596e+05 ! x y z +-1.63320995e+03 9.41371249e+01 -1.08583324e+00 ! vx vy vz +13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill +9.68422654e+03 !particle radius in m +8.87638562e+06 -3.42494393e+06 3.77051239e+04 ! x y z +7.17031490e+02 1.98991002e+03 1.65715407e+00 ! vx vy vz +14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill +1.17150625e+04 !particle radius in m +8.43240423e+06 -8.47557599e+06 9.53685695e+04 ! x y z +1.37244856e+03 1.29766742e+03 6.52389482e-01 ! vx vy vz +15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill +1.12329581e+04 !particle radius in m +9.22664947e+06 8.30989011e+06 -5.74831096e+04 ! x y z +-1.25111883e+03 1.34059241e+03 8.55955292e+00 ! vx vy vz +16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill +1.02921516e+04 !particle radius in m +-4.08982641e+06 1.42813091e+07 2.62466604e+04 ! x y z +-1.63050329e+03 -4.70983328e+02 5.42658810e+00 ! vx vy vz +17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill +3.92489041e+03 !particle radius in m +8.28836769e+06 -4.56966319e+06 -1.00925184e+04 ! x y z +1.01075458e+03 1.85603564e+03 9.12767608e-01 ! vx vy vz +18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill +1.30688534e+04 !particle radius in m +-7.36104027e+06 -1.05891946e+07 7.75267384e+04 ! x y z +1.50650168e+03 -1.03626339e+03 6.92830281e+00 ! vx vy vz +19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill +1.08748232e+04 !particle radius in m +-1.16432549e+07 7.04896042e+06 1.31826777e+04 ! x y z +-9.22639859e+02 -1.52066967e+03 -1.15982407e+01 ! vx vy vz +20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill +4.65478777e+03 !particle radius in m +1.54278872e+07 -4.66477914e+06 2.89150511e+04 ! x y z +4.74802657e+02 1.56436208e+03 1.16558658e+00 ! vx vy vz +21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill +6.56131734e+03 !particle radius in m +8.25405514e+06 -3.99894087e+06 -1.03017471e+05 ! x y z +9.55530709e+02 1.91876743e+03 -2.12478228e+01 ! vx vy vz +22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill +7.27184654e+03 !particle radius in m +-1.01048660e+07 -7.25267430e+05 3.72763878e+04 ! x y z +1.50338830e+02 -2.04513843e+03 -6.64737882e+00 ! vx vy vz +23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill +4.60100051e+03 !particle radius in m +1.08085981e+07 8.91343848e+05 -8.59837690e+04 ! x y z +-1.73598988e+02 1.98921090e+03 7.39675166e+00 ! vx vy vz +24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill +1.28174811e+04 !particle radius in m +-1.95760874e+07 2.13874411e+06 9.87141675e+04 ! x y z +-1.78019032e+02 -1.46067517e+03 7.47552271e+00 ! vx vy vz +25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill +1.30658530e+04 !particle radius in m +-5.15587895e+06 1.31093030e+07 2.34999443e+04 ! x y z +-1.60915655e+03 -6.75665775e+02 -1.41401807e-02 ! vx vy vz +26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill +1.03100883e+04 !particle radius in m +-1.04206598e+07 1.04694469e+07 3.71773715e+04 ! x y z +-1.22193412e+03 -1.15184993e+03 -7.42970615e+00 ! vx vy vz +27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill +1.02339628e+04 !particle radius in m +-8.37104048e+06 -7.31013791e+06 1.37822827e+05 ! x y z +1.31083458e+03 -1.50225202e+03 1.24188931e+01 ! vx vy vz +28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill +8.66551286e+03 !particle radius in m +-1.37026179e+07 6.52187486e+06 4.74483726e+04 ! x y z +-7.21171063e+02 -1.51233609e+03 4.06777653e+00 ! vx vy vz +29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill +1.07329828e+04 !particle radius in m +7.27063487e+05 9.63835599e+06 7.97365647e+04 ! x y z +-2.09031891e+03 1.45245810e+02 -8.30488647e+00 ! vx vy vz +30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill +9.57114700e+03 !particle radius in m +7.25596696e+06 -7.23053656e+06 1.87472853e+03 ! x y z +1.43916819e+03 1.45132061e+03 9.58485615e+00 ! vx vy vz +31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill +6.15153311e+03 !particle radius in m +-7.29036745e+06 1.20321492e+07 2.47342157e+04 ! x y z +-1.50263763e+03 -8.87670849e+02 -4.72544240e+00 ! vx vy vz +32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill +1.10887000e+04 !particle radius in m +-4.85214384e+06 9.94913086e+06 -1.36593449e+05 ! x y z +-1.77462439e+03 -8.70796881e+02 -4.04772339e+00 ! vx vy vz +33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill +6.11423561e+03 !particle radius in m +-8.57362843e+06 -5.69257679e+06 -1.86992418e+04 ! x y z +1.16808481e+03 -1.69357760e+03 1.48289207e-01 ! vx vy vz +34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill +4.95430775e+03 !particle radius in m +-1.19543227e+04 1.04662309e+07 -2.75529146e+04 ! x y z +-2.03252516e+03 -1.02408335e+01 -9.64298816e+00 ! vx vy vz +35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill +9.66880578e+03 !particle radius in m +-1.68361528e+06 9.15840339e+06 -9.34661786e+04 ! x y z +-2.10432868e+03 -3.67110160e+02 2.17992849e+01 ! vx vy vz +36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill +8.50653728e+03 !particle radius in m +7.61819019e+06 6.79194080e+06 -4.97100639e+04 ! x y z +-1.37259731e+03 1.51157244e+03 2.28319862e+01 ! vx vy vz +37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill +1.13756647e+04 !particle radius in m +-8.27002578e+05 -1.07584936e+07 -8.18905340e+04 ! x y z +1.98624835e+03 -1.45613526e+02 -2.22634090e+00 ! vx vy vz +38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill +1.23267605e+04 !particle radius in m +8.40661307e+06 -1.79965632e+07 -1.83341147e+05 ! x y z +1.32267980e+03 6.38873327e+02 -4.32228630e+00 ! vx vy vz +39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill +9.43036290e+03 !particle radius in m +7.47325276e+06 7.65731082e+06 2.72651622e+04 ! x y z +-1.39038210e+03 1.40779235e+03 -7.40097961e+00 ! vx vy vz +40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill +7.79381648e+03 !particle radius in m +-9.14822275e+06 5.65579867e+05 1.54779239e+04 ! x y z +-1.53215921e+02 -2.16863876e+03 -1.41098203e+01 ! vx vy vz +41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill +1.16307473e+04 !particle radius in m +-5.60611609e+06 9.45764489e+06 -1.08254759e+05 ! x y z +-1.70147881e+03 -1.00583116e+03 -1.54758662e+01 ! vx vy vz +42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill +1.01814300e+04 !particle radius in m +-1.66612775e+07 5.22172921e+06 -2.86187005e+04 ! x y z +-4.30163112e+02 -1.50298858e+03 1.29664314e+00 ! vx vy vz +43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill +1.24316568e+04 !particle radius in m +3.27505920e+06 -9.55860249e+06 -5.64452508e+04 ! x y z +1.95132421e+03 6.74732817e+02 -1.39202732e+01 ! vx vy vz +44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill +3.90909524e+03 !particle radius in m +1.52951536e+06 -8.90157648e+06 -8.46439916e+04 ! x y z +2.14907459e+03 3.37495875e+02 -8.51148141e+00 ! vx vy vz +45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill +4.54215111e+03 !particle radius in m +8.06820634e+06 -4.23727397e+06 -3.35114261e+04 ! x y z +1.02022988e+03 1.90034431e+03 -4.99905529e+00 ! vx vy vz +46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill +8.53422917e+03 !particle radius in m +-8.77755612e+06 2.67256349e+06 2.67913370e+04 ! x y z +-6.14674972e+02 -2.07327300e+03 8.52604410e+00 ! vx vy vz +47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill +1.10146390e+04 !particle radius in m +2.70600522e+06 -9.90290693e+06 3.76996678e+04 ! x y z +1.96230063e+03 5.74973963e+02 -1.26240524e+01 ! vx vy vz +48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill +6.62124902e+03 !particle radius in m +-6.67312956e+06 6.21207172e+06 -4.02351915e+03 ! x y z +-1.48608180e+03 -1.57249051e+03 1.60424143e+00 ! vx vy vz +49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill +5.42109743e+03 !particle radius in m +-6.18076768e+06 8.34028857e+06 6.32429656e+04 ! x y z +-1.63237248e+03 -1.20222734e+03 4.88968977e+00 ! vx vy vz +50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill +1.13804352e+04 !particle radius in m +5.85188296e+06 1.72848338e+07 9.71123353e+04 ! x y z +-1.44962394e+03 4.67717479e+02 -1.00039018e+01 ! vx vy vz +51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill +5.01581856e+03 !particle radius in m +7.64956565e+06 7.07155375e+06 1.22619349e+05 ! x y z +-1.38177043e+03 1.50469594e+03 5.48084097e+00 ! vx vy vz +52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill +3.91946036e+03 !particle radius in m +8.19731246e+06 5.46984950e+06 3.09134904e+04 ! x y z +-1.14400536e+03 1.75729614e+03 -1.68472307e+01 ! vx vy vz +53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill +5.56718137e+03 !particle radius in m +-7.08694323e+06 6.97654393e+06 1.57444613e+04 ! x y z +-1.43699629e+03 -1.48696944e+03 1.09569025e+01 ! vx vy vz +54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill +1.00450073e+04 !particle radius in m +8.33364079e+06 -4.88517773e+06 7.16288059e+04 ! x y z +1.11170923e+03 1.81264092e+03 6.00546346e-01 ! vx vy vz +55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill +6.58674280e+03 !particle radius in m +-9.33769960e+06 9.14931622e+06 -1.61970964e+04 ! x y z +-1.24590275e+03 -1.29664452e+03 6.60457748e+00 ! vx vy vz +56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill +8.93749433e+03 !particle radius in m +-9.38351744e+06 2.21172448e+06 -6.82548828e+04 ! x y z +-4.82800182e+02 -2.03545597e+03 -5.73581498e+00 ! vx vy vz +57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill +4.35272973e+03 !particle radius in m +1.87895940e+06 -8.56248718e+06 -3.00496615e+04 ! x y z +2.17444079e+03 4.47176832e+02 -1.19261276e+01 ! vx vy vz +58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill +1.11807470e+04 !particle radius in m +8.32914883e+06 6.99509139e+06 3.96475596e+03 ! x y z +-1.25015649e+03 1.51958279e+03 -4.03731794e+00 ! vx vy vz +59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill +5.35230171e+03 !particle radius in m +1.40169380e+07 1.14833336e+06 8.97154952e+04 ! x y z +-1.67134532e+02 1.72504621e+03 -4.99628204e+00 ! vx vy vz +60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill +9.94627977e+03 !particle radius in m +6.25929466e+06 6.41436879e+06 2.03611835e+04 ! x y z +-1.56963361e+03 1.52043093e+03 1.04032604e+01 ! vx vy vz +61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill +1.29906317e+04 !particle radius in m +6.59380692e+06 6.26136699e+06 5.26920752e+02 ! x y z +-1.52860150e+03 1.56995044e+03 -5.04992194e+00 ! vx vy vz +62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill +5.50619929e+03 !particle radius in m +-3.18458810e+06 8.95887994e+06 6.14079574e+04 ! x y z +-1.98254651e+03 -6.98894893e+02 -6.28253660e-01 ! vx vy vz +63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill +9.81501110e+03 !particle radius in m +3.21556801e+06 8.85736420e+06 1.68758030e+04 ! x y z +-2.01862696e+03 7.01940495e+02 -7.77962553e+00 ! vx vy vz +64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill +7.23368562e+03 !particle radius in m +6.87944610e+06 1.31239767e+07 8.47895296e+04 ! x y z +-1.52033935e+03 7.81668854e+02 8.53929151e+00 ! vx vy vz +65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill +4.38175744e+03 !particle radius in m +-7.12317437e+06 7.79679451e+06 1.14295538e+05 ! x y z +-1.45772671e+03 -1.35257658e+03 -8.92909999e+00 ! vx vy vz +66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill +6.45312806e+03 !particle radius in m +-7.50346488e+06 4.59614758e+06 -1.78561776e+04 ! x y z +-1.17484683e+03 -1.88471092e+03 2.06051741e+00 ! vx vy vz +67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill +5.04443190e+03 !particle radius in m +-9.72849273e+06 -4.49090647e+06 9.42367849e+04 ! x y z +8.55743475e+02 -1.81695360e+03 -2.08602456e+00 ! vx vy vz +68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill +1.24464529e+04 !particle radius in m +-9.38461254e+06 6.94991468e+06 -5.96507119e+04 ! x y z +-1.15295098e+03 -1.53950357e+03 3.51558529e+00 ! vx vy vz +69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill +1.25735358e+04 !particle radius in m +-7.41691843e+05 -1.00833740e+07 -5.60539800e+04 ! x y z +2.04132497e+03 -1.60740204e+02 -2.66722707e+00 ! vx vy vz +70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill +8.72818623e+03 !particle radius in m +-1.55585013e+07 -7.11561291e+06 3.93194543e+03 ! x y z +6.65437196e+02 -1.43702009e+03 -7.23293961e+00 ! vx vy vz +71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill +8.08736691e+03 !particle radius in m +-3.34597213e+06 -8.19414991e+06 6.06177774e+04 ! x y z +2.03861032e+03 -8.50240184e+02 5.81078899e+00 ! vx vy vz +72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill +1.15287399e+04 !particle radius in m +1.97016279e+06 -9.71556312e+06 -9.30987397e+03 ! x y z +2.03815672e+03 3.86141142e+02 -6.70148607e+00 ! vx vy vz +73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill +9.70989454e+03 !particle radius in m +-1.23610305e+07 -1.14674155e+07 1.26044785e+04 ! x y z +1.08318223e+03 -1.17487397e+03 -3.70767753e+00 ! vx vy vz +74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill +4.86667460e+03 !particle radius in m +6.60995348e+06 1.33054967e+07 -1.05591305e+03 ! x y z +-1.53012251e+03 7.44076876e+02 -1.33826451e+00 ! vx vy vz +75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill +1.01917171e+04 !particle radius in m +7.08025559e+06 6.63712140e+06 8.28590703e+04 ! x y z +-1.43411418e+03 1.51197736e+03 -1.05467488e+01 ! vx vy vz +76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill +8.99162185e+03 !particle radius in m +-7.28273678e+06 -7.57343022e+06 -3.32239292e+04 ! x y z +1.43763945e+03 -1.39069870e+03 1.98407302e+01 ! vx vy vz +77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill +1.03376021e+04 !particle radius in m +9.90338765e+05 -9.02823668e+06 -1.20306983e+04 ! x y z +2.16293198e+03 2.29403632e+02 1.02563280e+00 ! vx vy vz +78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill +1.14607582e+04 !particle radius in m +7.24980777e+06 6.13973485e+06 4.31080507e+04 ! x y z +-1.36304394e+03 1.62331327e+03 -1.35525280e+01 ! vx vy vz +79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill +5.60647602e+03 !particle radius in m +1.67269227e+07 2.38546079e+06 3.97527319e+04 ! x y z +-2.22376967e+02 1.58567381e+03 -8.67277559e-01 ! vx vy vz +80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill +5.23039108e+03 !particle radius in m +1.04063991e+07 -2.47414364e+06 2.55875518e+04 ! x y z +4.41751921e+02 1.96103152e+03 -4.73452379e+00 ! vx vy vz +81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill +9.83393818e+03 !particle radius in m +6.53964743e+06 -9.91913737e+06 9.96407478e+04 ! x y z +1.55366935e+03 1.06687009e+03 -2.02851694e+01 ! vx vy vz +82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill +6.73293314e+03 !particle radius in m +7.88901212e+06 4.39968813e+06 4.59555939e+04 ! x y z +-1.07086350e+03 1.89616918e+03 7.27266270e-01 ! vx vy vz +83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill +1.22637545e+04 !particle radius in m +-3.20114591e+05 9.47888835e+06 9.88766449e+03 ! x y z +-2.12931637e+03 -7.10990071e+01 1.07017003e+01 ! vx vy vz +84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill +6.90749219e+03 !particle radius in m +9.14219160e+06 8.75278019e+06 -4.92172540e+04 ! x y z +-1.29548970e+03 1.30726587e+03 -1.50278883e+01 ! vx vy vz +85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill +8.47614716e+03 !particle radius in m +-1.38612397e+07 6.86502447e+06 -1.61982632e+04 ! x y z +-7.48338598e+02 -1.49504839e+03 1.44565317e-01 ! vx vy vz +86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill +5.74019158e+03 !particle radius in m +1.25478256e+07 -2.77052958e+05 1.12717341e+03 ! x y z +4.85806635e+01 1.82811230e+03 -1.79057921e+01 ! vx vy vz +87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill +5.29092447e+03 !particle radius in m +1.40993545e+06 1.16245820e+07 -3.61782966e+04 ! x y z +-1.89457813e+03 2.30174579e+02 1.28253693e+00 ! vx vy vz +88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill +9.92395993e+03 !particle radius in m +1.00651315e+07 -8.63755855e+06 -2.94583233e+04 ! x y z +1.16408014e+03 1.36020820e+03 -5.13543123e+00 ! vx vy vz +89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill +1.20526803e+04 !particle radius in m +2.98890445e+06 1.22541433e+07 2.56056735e+04 ! x y z +-1.78538758e+03 4.40494099e+02 -2.21749367e+00 ! vx vy vz +90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill +4.35975582e+03 !particle radius in m +5.19540663e+06 -9.11850659e+06 6.55061213e+04 ! x y z +1.75856318e+03 9.95618038e+02 1.03697665e+01 ! vx vy vz +91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill +5.41642563e+03 !particle radius in m +4.97139511e+06 -1.11941305e+07 -1.40627719e+05 ! x y z +1.71256583e+03 7.58315920e+02 -4.27199322e+00 ! vx vy vz +92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill +6.88890644e+03 !particle radius in m +1.25156536e+07 -1.83009831e+06 -1.83401376e+04 ! x y z +2.71538728e+02 1.82389745e+03 -1.16128548e+01 ! vx vy vz +93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill +4.92766241e+03 !particle radius in m +-4.24848440e+06 -1.14141124e+07 -3.56440379e+04 ! x y z +1.77145707e+03 -6.72445172e+02 -1.27477365e+01 ! vx vy vz +94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill +5.12796820e+03 !particle radius in m +-2.67257221e+06 8.24864699e+06 -3.60351703e+04 ! x y z +-2.13740103e+03 -6.84795253e+02 -6.19432137e+00 ! vx vy vz +95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill +3.97477538e+03 !particle radius in m +3.38794467e+06 -1.65102444e+07 1.31352407e+05 ! x y z +1.55800648e+03 3.20903339e+02 1.95779030e-01 ! vx vy vz +96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill +5.60787672e+03 !particle radius in m +3.25966423e+06 9.75900867e+06 3.76712868e+04 ! x y z +-1.92824453e+03 6.78004645e+02 2.13894611e+01 ! vx vy vz +97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill +5.02914497e+03 !particle radius in m +-8.82496169e+06 1.17570086e+06 -2.77994253e+03 ! x y z +-3.06986654e+02 -2.17589269e+03 -3.00417185e+00 ! vx vy vz +98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill +1.26054254e+04 !particle radius in m +-8.96181392e+06 -8.08537511e+06 -9.49567974e+03 ! x y z +1.24755669e+03 -1.37614946e+03 4.00147116e+00 ! vx vy vz +99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill +3.83342071e+03 !particle radius in m +1.05138352e+07 -2.53028835e+06 -2.47118873e+04 ! x y z +4.70010064e+02 1.92569661e+03 -1.14250111e+01 ! vx vy vz +100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill +1.23894990e+04 !particle radius in m +-8.86717935e+06 -3.01884801e+06 5.43577921e+03 ! x y z +6.99055272e+02 -2.04010264e+03 8.96596820e+00 ! vx vy vz +101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill +8.04335643e+03 !particle radius in m +1.42373839e+07 3.02611132e+06 -1.43164181e+04 ! x y z +-4.03733107e+02 1.68169148e+03 7.10932541e+00 ! vx vy vz +102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill +9.07798396e+03 !particle radius in m +-6.09504895e+06 8.50655715e+06 -5.34991934e+04 ! x y z +-1.62687481e+03 -1.19574157e+03 5.21976127e+00 ! vx vy vz +103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill +3.95640633e+03 !particle radius in m +3.72306724e+06 9.02743458e+06 4.19786502e+04 ! x y z +-1.94834474e+03 7.84745897e+02 -7.86691937e+00 ! vx vy vz +104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill +1.06463568e+04 !particle radius in m +5.64202715e+06 -8.82003156e+06 9.37432782e+03 ! x y z +1.69914027e+03 1.09005087e+03 8.81006839e+00 ! vx vy vz +105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill +5.68865819e+03 !particle radius in m +-1.08304546e+07 -5.16566260e+06 -4.58380354e+04 ! x y z +8.08725156e+02 -1.70426515e+03 -1.40809084e+01 ! vx vy vz +106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill +1.06640002e+04 !particle radius in m +9.97312286e+06 -1.70160094e+06 4.10359397e+04 ! x y z +3.34859938e+02 2.01251950e+03 -1.05202781e+00 ! vx vy vz +107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill +7.85135736e+03 !particle radius in m +7.03958663e+06 7.71716479e+06 -8.94733922e+03 ! x y z +-1.49839830e+03 1.36772144e+03 -1.09915777e+00 ! vx vy vz +108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill +3.80442303e+03 !particle radius in m +1.15617458e+07 -4.37264141e+06 4.98550747e+04 ! x y z +6.45606485e+02 1.75989881e+03 1.00504151e+00 ! vx vy vz +109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill +7.55084889e+03 !particle radius in m +6.33009492e+06 8.26456632e+06 4.39267321e+04 ! x y z +-1.63555236e+03 1.22749817e+03 -2.79591207e+00 ! vx vy vz +110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill +5.24028103e+03 !particle radius in m +-1.23116789e+06 -1.76328069e+07 4.15688915e+04 ! x y z +1.54978172e+03 -1.14789962e+02 3.52623567e+00 ! vx vy vz +111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill +1.09298010e+04 !particle radius in m +5.03800785e+06 7.38464714e+06 6.56936601e+04 ! x y z +-1.79789878e+03 1.24241563e+03 -1.87814487e+00 ! vx vy vz +112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill +4.24258369e+03 !particle radius in m +-1.16819556e+07 2.21702225e+06 -1.76770966e+03 ! x y z +-3.36108070e+02 -1.84613620e+03 1.27905806e+01 ! vx vy vz +113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill +1.04890693e+04 !particle radius in m +1.00037167e+07 3.61161669e+06 -5.98746596e+04 ! x y z +-7.04121449e+02 1.87165808e+03 1.87226479e-01 ! vx vy vz +114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill +6.72997694e+03 !particle radius in m +-8.02245740e+06 -4.15017483e+06 1.94427373e+04 ! x y z +9.95701473e+02 -1.91465293e+03 9.55414968e+00 ! vx vy vz +115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill +4.37893861e+03 !particle radius in m +-4.99256633e+06 7.35143538e+06 -6.25201967e+04 ! x y z +-1.82686822e+03 -1.23953720e+03 -3.37208923e+00 ! vx vy vz +116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill +9.76924055e+03 !particle radius in m +-2.12824530e+06 9.48297181e+06 4.56720468e+03 ! x y z +-2.04325211e+03 -4.78944866e+02 1.39609484e+01 ! vx vy vz +117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill +4.12337692e+03 !particle radius in m +-1.42745447e+07 -5.79867689e+06 -1.70313904e+04 ! x y z +6.32626042e+02 -1.53908540e+03 1.67461109e+01 ! vx vy vz +118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill +8.79476284e+03 !particle radius in m +3.38987773e+06 1.01890371e+07 3.97150856e+04 ! x y z +-1.89204657e+03 6.21657437e+02 -2.83215087e+01 ! vx vy vz +119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill +4.83385440e+03 !particle radius in m +1.36440026e+07 -9.23862046e+06 -5.31108803e+04 ! x y z +9.02323684e+02 1.33920162e+03 1.66233464e+00 ! vx vy vz +120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill +8.13388768e+03 !particle radius in m +-3.69977113e+06 -1.52467920e+07 -1.34829610e+05 ! x y z +1.61925599e+03 -3.72623284e+02 7.50289619e+00 ! vx vy vz +121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill +9.36399150e+03 !particle radius in m +1.82794011e+07 6.84958710e+06 1.41781869e+04 ! x y z +-5.47821288e+02 1.37308430e+03 -7.00506636e+00 ! vx vy vz +122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill +4.56803304e+03 !particle radius in m +1.18968647e+07 1.33707826e+07 -1.11221176e+05 ! x y z +-1.16553280e+03 1.03288779e+03 1.42253495e+01 ! vx vy vz +123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill +4.67906973e+03 !particle radius in m +-1.96455999e+07 -2.60429318e+06 -9.25749294e+04 ! x y z +1.97567654e+02 -1.46047680e+03 3.96763228e+00 ! vx vy vz +124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill +7.05460271e+03 !particle radius in m +-2.68241356e+06 9.67860718e+06 -3.52723705e+04 ! x y z +-1.98385491e+03 -5.75973374e+02 4.82531781e+00 ! vx vy vz +125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill +7.35090499e+03 !particle radius in m +-1.66338998e+06 1.06654130e+07 -1.15436526e+05 ! x y z +-1.97394994e+03 -3.24337570e+02 1.49148403e+00 ! vx vy vz +126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill +1.15778235e+04 !particle radius in m +5.73133232e+06 -6.88742280e+06 -9.91791004e+03 ! x y z +1.69108314e+03 1.40100447e+03 8.39576992e+00 ! vx vy vz +127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill +9.74792278e+03 !particle radius in m +1.16505540e+07 1.24190497e+07 3.29845083e+04 ! x y z +-1.14848373e+03 1.08164128e+03 1.94732937e-01 ! vx vy vz +128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill +5.57197333e+03 !particle radius in m +-9.45920013e+06 -1.21129886e+06 4.53752885e+04 ! x y z +2.60756743e+02 -2.09880469e+03 -1.84679906e+01 ! vx vy vz +129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill +1.29160713e+04 !particle radius in m +8.30827394e+06 4.94291767e+06 9.57082698e+03 ! x y z +-1.06905700e+03 1.81887550e+03 -1.59783959e+01 ! vx vy vz +130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill +6.28724063e+03 !particle radius in m +9.92654375e+06 -1.39802998e+06 4.49817877e+02 ! x y z +2.59014431e+02 2.03619473e+03 -1.49038139e+01 ! vx vy vz +131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill +3.98022020e+03 !particle radius in m +2.81061041e+06 9.89835484e+06 -9.78582159e+04 ! x y z +-1.95518409e+03 5.78271402e+02 1.18622238e+01 ! vx vy vz +132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill +5.77530198e+03 !particle radius in m +-5.58547024e+06 -9.86469957e+06 6.83294173e+04 ! x y z +1.69539459e+03 -9.41024851e+02 -1.14165406e+01 ! vx vy vz +133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill +6.26805874e+03 !particle radius in m +8.08999866e+06 6.84273025e+06 1.04867849e+03 ! x y z +-1.27946500e+03 1.55545684e+03 8.91891880e+00 ! vx vy vz +134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill +9.74422649e+03 !particle radius in m +9.18575665e+06 -5.49644544e+06 -5.52894905e+03 ! x y z +1.01968981e+03 1.71970787e+03 -3.39617822e-01 ! vx vy vz +135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill +4.33654694e+03 !particle radius in m +1.80833036e+06 -9.23065450e+06 4.90226701e+04 ! x y z +2.08275022e+03 4.17014758e+02 6.63087350e+00 ! vx vy vz +136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill +6.60858198e+03 !particle radius in m +1.18507627e+07 2.26553726e+06 2.21133096e+03 ! x y z +-3.50610095e+02 1.84373395e+03 -2.60885445e-01 ! vx vy vz +137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill +7.13226721e+03 !particle radius in m +2.21659927e+07 -6.92493598e+06 -4.28421451e+04 ! x y z +4.19436458e+02 1.29376942e+03 -6.14053149e+00 ! vx vy vz +138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill +8.09831906e+03 !particle radius in m +-6.92437867e+06 -6.69629009e+06 -5.72228921e+04 ! x y z +1.49689718e+03 -1.48846576e+03 -1.37808252e+01 ! vx vy vz +139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill +1.01750117e+04 !particle radius in m +-6.66985595e+06 -7.23797041e+06 -1.53286702e+04 ! x y z +1.53320998e+03 -1.42766264e+03 2.90451170e+00 ! vx vy vz +140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill +1.25638046e+04 !particle radius in m +-8.86868024e+06 7.20105731e+05 -2.22950048e+03 ! x y z +-1.95841451e+02 -2.19258513e+03 -3.67523850e-01 ! vx vy vz +141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill +1.20137567e+04 !particle radius in m +5.67690574e+06 -1.03162373e+07 -9.41350622e+04 ! x y z +1.67246075e+03 9.20785969e+02 -1.99251255e+01 ! vx vy vz +142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill +5.23260806e+03 !particle radius in m +5.50551593e+06 -1.45584653e+07 5.27718687e+04 ! x y z +1.54616130e+03 5.79954533e+02 7.51811204e+00 ! vx vy vz +143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill +1.20845494e+04 !particle radius in m +-3.47796098e+06 -8.90927004e+06 9.65028764e+03 ! x y z +1.97386652e+03 -7.53987246e+02 -3.28779531e+00 ! vx vy vz +144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill +7.74350141e+03 !particle radius in m +7.74574172e+06 5.95714791e+06 -1.05471596e+04 ! x y z +-1.25035431e+03 1.67733844e+03 -1.65757527e+00 ! vx vy vz +145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill +4.08711498e+03 !particle radius in m +-1.98199827e+07 7.29300766e+06 -1.29061581e+05 ! x y z +-4.89201522e+02 -1.32406236e+03 8.40261667e+00 ! vx vy vz +146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill +9.69135174e+03 !particle radius in m +1.13588614e+07 1.27104515e+07 1.21608339e+05 ! x y z +-1.17212059e+03 1.06703576e+03 1.25962854e+01 ! vx vy vz +147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill +1.07960507e+04 !particle radius in m +-6.88558621e+06 6.34193128e+06 -5.71723545e+04 ! x y z +-1.41834644e+03 -1.59442296e+03 3.00905420e+00 ! vx vy vz +148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill +5.95367439e+03 !particle radius in m +2.58947797e+06 1.59613455e+07 1.59042158e+05 ! x y z +-1.60287570e+03 2.41814174e+02 -1.67580989e+00 ! vx vy vz +149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill +5.64691333e+03 !particle radius in m +1.27274825e+07 3.00655471e+06 8.98397391e+03 ! x y z +-4.31699175e+02 1.77274933e+03 -1.26354778e+01 ! vx vy vz +150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill +5.08343859e+03 !particle radius in m +-7.10630600e+06 -7.28840877e+06 -2.23411110e+03 ! x y z +1.47897945e+03 -1.43505611e+03 -2.71839174e+00 ! vx vy vz +151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill +4.64223699e+03 !particle radius in m +6.38222762e+06 -6.74069777e+06 8.75842881e+04 ! x y z +1.60375261e+03 1.44358800e+03 -9.05519600e-01 ! vx vy vz +152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill +8.12086478e+03 !particle radius in m +-1.56702566e+07 4.26618807e+06 5.21823445e+04 ! x y z +-4.05029139e+02 -1.57894139e+03 2.53582968e+00 ! vx vy vz +153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill +9.30546634e+03 !particle radius in m +-8.73094270e+06 5.67791265e+06 2.17614432e+04 ! x y z +-1.10821669e+03 -1.70422433e+03 2.11567045e+01 ! vx vy vz +154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill +5.54672703e+03 !particle radius in m +-1.01683371e+07 1.10819821e+06 1.64139763e+04 ! x y z +-2.62188936e+02 -2.02918021e+03 8.77276633e+00 ! vx vy vz +155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill +4.01652823e+03 !particle radius in m +4.35525820e+06 1.08005096e+07 7.15657051e+04 ! x y z +-1.78452573e+03 7.14211418e+02 1.85217607e+01 ! vx vy vz +156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill +8.23178885e+03 !particle radius in m +1.33640503e+06 -1.35991318e+07 1.26981224e+05 ! x y z +1.75325272e+03 1.99801637e+02 9.12185103e+00 ! vx vy vz +157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill +7.10947055e+03 !particle radius in m +-6.82381137e+06 5.53567185e+06 7.84751624e+03 ! x y z +-1.38395700e+03 -1.73645326e+03 7.57405795e+00 ! vx vy vz +158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill +4.80346108e+03 !particle radius in m +3.89840794e+06 1.10854924e+07 3.76242516e+03 ! x y z +-1.80675419e+03 6.21051875e+02 -1.71817477e+01 ! vx vy vz +159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill +6.55725922e+03 !particle radius in m +-1.97874775e+06 -8.77567582e+06 -2.75052193e+03 ! x y z +2.14929146e+03 -4.63042632e+02 1.42528242e+01 ! vx vy vz +160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill +1.04379733e+04 !particle radius in m +-3.69568353e+06 8.70958011e+06 1.23991773e+02 ! x y z +-1.95889951e+03 -8.30413409e+02 3.23324109e+00 ! vx vy vz +161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill +4.12198879e+03 !particle radius in m +-7.46635757e+06 8.75996756e+06 -3.38546703e+04 ! x y z +-1.47538097e+03 -1.25605788e+03 1.14970804e+01 ! vx vy vz +162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill +7.66776863e+03 !particle radius in m +5.08163706e+06 1.05043562e+07 -2.49011889e+04 ! x y z +-1.73355443e+03 8.04079694e+02 -1.88007028e+00 ! vx vy vz +163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill +4.64199906e+03 !particle radius in m +4.39449717e+06 -7.93852417e+06 4.36583437e+04 ! x y z +1.88869963e+03 1.05420912e+03 5.50586344e+00 ! vx vy vz +164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill +1.07424793e+04 !particle radius in m +8.63623502e+06 -7.74644884e+06 1.85384542e+04 ! x y z +1.26494539e+03 1.43300151e+03 7.04221650e+00 ! vx vy vz +165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill +9.85657615e+03 !particle radius in m +-6.15368525e+05 1.49121598e+07 -4.67932565e+04 ! x y z +-1.68745762e+03 -4.92212694e+01 -1.94039771e+00 ! vx vy vz +166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill +6.99747229e+03 !particle radius in m +8.64904319e+06 5.91192747e+06 -6.14206652e+04 ! x y z +-1.13126693e+03 1.64851790e+03 -1.89192778e+01 ! vx vy vz +167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill +8.71931949e+03 !particle radius in m +-7.78414392e+06 4.96208659e+06 -1.63838108e+04 ! x y z +-1.12672930e+03 -1.82241793e+03 -5.96425105e+00 ! vx vy vz +168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill +4.23710232e+03 !particle radius in m +9.85857087e+06 -4.25461587e+05 -7.76455058e+04 ! x y z +8.06687493e+01 2.07960003e+03 3.28242575e+00 ! vx vy vz +169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill +1.00719866e+04 !particle radius in m +-3.92871528e+06 -2.24319020e+07 2.77551401e+04 ! x y z +1.34770576e+03 -2.35192176e+02 -6.19147736e+00 ! vx vy vz +170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill +7.23647883e+03 !particle radius in m +-9.85059665e+06 -8.52205655e+06 -5.48573039e+04 ! x y z +1.18464366e+03 -1.37030272e+03 9.99031014e-01 ! vx vy vz +171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill +9.97940619e+03 !particle radius in m +-1.95744716e+06 -1.40658438e+07 -8.96628033e+04 ! x y z +1.72553028e+03 -2.22255484e+02 -2.68715792e+00 ! vx vy vz +172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill +9.75068673e+03 !particle radius in m +-1.83887109e+07 -4.94937710e+06 4.13740137e+04 ! x y z +4.02207087e+02 -1.44472494e+03 7.82771281e+00 ! vx vy vz +173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill +1.18333139e+04 !particle radius in m +6.28107583e+06 -7.96489519e+06 1.00181104e+05 ! x y z +1.61474462e+03 1.25899281e+03 3.25360113e+00 ! vx vy vz +174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill +6.66516052e+03 !particle radius in m +8.57815199e+06 2.93408991e+06 1.00482256e+04 ! x y z +-7.00269987e+02 2.05582007e+03 1.47496098e+00 ! vx vy vz +175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill +7.54796479e+03 !particle radius in m +3.89386447e+06 -1.18916453e+07 4.75801024e+03 ! x y z +1.79017897e+03 5.72333272e+02 1.35429336e+01 ! vx vy vz +176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill +5.87384040e+03 !particle radius in m +-1.12819097e+07 -2.03828249e+07 -4.17849171e+04 ! x y z +1.20129982e+03 -6.40831904e+02 -7.21062138e+00 ! vx vy vz +177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill +9.04694786e+03 !particle radius in m +-3.48844270e+06 -1.39807096e+07 -9.80376409e+04 ! x y z +1.67545999e+03 -4.23493775e+02 9.57144799e+00 ! vx vy vz +178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill +5.80834687e+03 !particle radius in m +-6.99241637e+06 -6.97891492e+06 1.17078416e+04 ! x y z +1.45466387e+03 -1.49110516e+03 -7.97644872e+00 ! vx vy vz +179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill +7.27807466e+03 !particle radius in m +2.29671869e+07 -4.77992661e+06 -2.29056888e+05 ! x y z +2.66633595e+02 1.31300250e+03 8.11268595e+00 ! vx vy vz +180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill +7.37859561e+03 !particle radius in m +1.12799199e+07 -5.64371881e+06 -4.86158248e+04 ! x y z +8.25574521e+02 1.64707498e+03 1.79426055e+01 ! vx vy vz +181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill +4.55114695e+03 !particle radius in m +-8.97901930e+06 1.40018499e+06 -1.17315967e+04 ! x y z +-3.50813576e+02 -2.14111191e+03 1.58430709e+00 ! vx vy vz +182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill +9.69448137e+03 !particle radius in m +-1.27934972e+07 5.80764481e+05 -6.60656959e+04 ! x y z +-8.73661010e+01 -1.83147573e+03 9.29252102e+00 ! vx vy vz +183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill +1.23062037e+04 !particle radius in m +-6.51355993e+06 -1.80095300e+07 -1.28499713e+05 ! x y z +1.42185635e+03 -5.15444029e+02 4.71976246e+00 ! vx vy vz +184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill +1.23109627e+04 !particle radius in m +-1.35063597e+06 1.04263703e+07 -1.65523047e+04 ! x y z +-1.99638943e+03 -2.63418025e+02 -1.41194780e+01 ! vx vy vz +185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill +3.71369106e+03 !particle radius in m +-9.22486496e+06 2.96866634e+06 -1.89865927e+03 ! x y z +-6.64441635e+02 -2.00340641e+03 -1.17076646e+01 ! vx vy vz +186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill +6.29750468e+03 !particle radius in m +7.10721350e+06 7.67585026e+06 -3.24513481e+03 ! x y z +-1.50133478e+03 1.36725034e+03 -1.87929113e+01 ! vx vy vz +187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill +8.63385286e+03 !particle radius in m +-3.50855266e+06 -8.47958104e+06 5.43121964e+04 ! x y z +2.01378047e+03 -8.30225015e+02 -6.42928682e+00 ! vx vy vz +188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill +5.95402041e+03 !particle radius in m +-1.71845688e+07 2.92835680e+06 1.80160654e+04 ! x y z +-2.68908847e+02 -1.54460993e+03 5.60740384e+00 ! vx vy vz +189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill +9.54950570e+03 !particle radius in m +-9.06623165e+06 -4.20136967e+06 -2.06364196e+04 ! x y z +8.54458713e+02 -1.90544528e+03 6.22285906e+00 ! vx vy vz +190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill +1.19619247e+04 !particle radius in m +5.25849667e+06 8.80426419e+06 1.08815572e+04 ! x y z +-1.77864099e+03 1.00939651e+03 -2.77090468e+00 ! vx vy vz +191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill +6.74935610e+03 !particle radius in m +4.62808704e+06 1.40254648e+07 2.62029474e+04 ! x y z +-1.61136420e+03 5.34010697e+02 -6.77858294e-01 ! vx vy vz +192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill +5.20619396e+03 !particle radius in m +2.01424278e+07 3.41792942e+05 1.94882104e+05 ! x y z +-2.93420884e+01 1.45364435e+03 -7.07412419e-01 ! vx vy vz +193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill +1.06486075e+04 !particle radius in m +8.37083337e+06 -1.79540915e+07 -5.91009347e+04 ! x y z +1.33428010e+03 6.17563374e+02 2.42512024e+00 ! vx vy vz +194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill +5.04887899e+03 !particle radius in m +9.18834937e+06 4.09046541e+05 5.54581813e+03 ! x y z +-7.23751549e+01 2.15950913e+03 6.85354866e-01 ! vx vy vz +195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill +6.36561457e+03 !particle radius in m +2.40599869e+06 -1.36259877e+07 7.24745280e+03 ! x y z +1.74094787e+03 3.07239990e+02 8.10516402e+00 ! vx vy vz +196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill +3.87967973e+03 !particle radius in m +-1.16034100e+07 -1.77480486e+06 -1.62127720e+04 ! x y z +2.83834839e+02 -1.87461386e+03 5.96638672e-01 ! vx vy vz +197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill +6.85511860e+03 !particle radius in m +1.47515573e+07 -2.57581761e+05 -5.23662055e+04 ! x y z +1.10532093e+01 1.70024862e+03 8.28609927e-01 ! vx vy vz +198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill +1.23039299e+04 !particle radius in m +1.13163190e+07 -7.84357347e+06 1.03407930e+04 ! x y z +1.01120595e+03 1.44577732e+03 -5.19143023e+00 ! vx vy vz +199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill +5.75530148e+03 !particle radius in m +-3.32812125e+06 -9.44533791e+06 -4.90376566e+04 ! x y z +1.95676637e+03 -6.51606826e+02 -5.70434278e+00 ! vx vy vz +200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill +1.24729785e+04 !particle radius in m +1.06811374e+07 -4.93512180e+06 -2.54549899e+04 ! x y z +7.94618978e+02 1.74255873e+03 -9.79841366e+00 ! vx vy vz +201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill +1.17522845e+04 !particle radius in m +1.08275316e+07 3.16975354e+06 -1.83616872e+04 ! x y z +-5.71210349e+02 1.85480914e+03 -5.53165520e+00 ! vx vy vz +202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill +1.19662231e+04 !particle radius in m +-8.93938095e+06 -1.07672320e+06 2.20211931e+02 ! x y z +2.21513596e+02 -2.17140814e+03 -5.31579057e+00 ! vx vy vz +203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill +6.94294309e+03 !particle radius in m +-1.11274091e+07 6.99042019e+06 4.20463158e+03 ! x y z +-9.73175474e+02 -1.52053333e+03 -7.28310775e+00 ! vx vy vz +204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill +9.44639204e+03 !particle radius in m +4.40522655e+06 -1.23917208e+07 -1.61713907e+04 ! x y z +1.70009079e+03 6.02493125e+02 -3.82502681e+00 ! vx vy vz +205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill +6.43759473e+03 !particle radius in m +8.84972010e+06 5.65746303e+06 4.89598915e+04 ! x y z +-1.07695732e+03 1.71417278e+03 -2.68488868e+00 ! vx vy vz +206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill +5.88752122e+03 !particle radius in m +-5.79952078e+06 8.88645462e+06 -2.44580541e+04 ! x y z +-1.68074658e+03 -1.10169885e+03 -6.29194406e-01 ! vx vy vz +207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill +1.25432938e+04 !particle radius in m +-8.14410389e+06 -3.97016042e+06 -9.88813618e+04 ! x y z +9.01368103e+02 -1.96430805e+03 -4.40735560e+00 ! vx vy vz +208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill +1.04148028e+04 !particle radius in m +7.46448044e+06 -4.58544507e+06 1.76340315e+04 ! x y z +1.15401750e+03 1.90545254e+03 -7.27693077e+00 ! vx vy vz +209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill +1.12804852e+04 !particle radius in m +-2.08884933e+06 -1.02835429e+07 6.42079933e+03 ! x y z +1.99534972e+03 -4.16589585e+02 -4.18338876e+00 ! vx vy vz +210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill +7.47765824e+03 !particle radius in m +3.36937988e+06 -9.91809680e+06 5.89060808e+04 ! x y z +1.88421155e+03 6.84396854e+02 -2.08220150e+00 ! vx vy vz +211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill +9.05273758e+03 !particle radius in m +-7.24117471e+06 -9.21469921e+06 -3.61410851e+04 ! x y z +1.49902224e+03 -1.18897591e+03 9.80133706e-01 ! vx vy vz +212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill +1.25609127e+04 !particle radius in m +-3.74450435e+06 -8.15891931e+06 2.77691948e+04 ! x y z +1.97501199e+03 -9.06036575e+02 -2.45381289e-01 ! vx vy vz +213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill +8.46042215e+03 !particle radius in m +7.14052519e+06 1.53102112e+07 1.62981971e+05 ! x y z +-1.44016584e+03 6.81333291e+02 -1.60906032e+00 ! vx vy vz +214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill +1.30715050e+04 !particle radius in m +-1.03399269e+07 2.85213950e+05 -3.22137865e+04 ! x y z +-5.00043408e+01 -2.01781826e+03 1.16086899e+01 ! vx vy vz +215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill +1.28466493e+04 !particle radius in m +4.61126913e+06 7.68167619e+06 3.21015460e+03 ! x y z +-1.87745924e+03 1.11654918e+03 8.74586750e+00 ! vx vy vz +216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill +1.00516869e+04 !particle radius in m +-7.63901209e+05 9.38473527e+06 2.09296480e+04 ! x y z +-2.13149182e+03 -1.53874003e+02 1.07619871e+00 ! vx vy vz +217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill +4.49233328e+03 !particle radius in m +-3.50142507e+06 1.29584846e+07 4.99036110e+03 ! x y z +-1.71988301e+03 -4.67120020e+02 -1.52874482e+00 ! vx vy vz +218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill +3.93575293e+03 !particle radius in m +2.89549121e+05 9.73817170e+06 7.30475924e+03 ! x y z +-2.10637979e+03 6.28009545e+01 2.73575242e+01 ! vx vy vz +219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill +5.55621969e+03 !particle radius in m +-8.69236370e+06 2.60571730e+06 1.87543471e+04 ! x y z +-6.41047725e+02 -2.08196126e+03 -9.78180600e+00 ! vx vy vz +220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill +1.17336811e+04 !particle radius in m +1.16999055e+07 -8.45214750e+05 -1.23088793e+04 ! x y z +1.51868140e+02 1.88990987e+03 5.91582506e+00 ! vx vy vz +221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill +1.23451688e+04 !particle radius in m +1.04932440e+07 6.34593749e+06 -5.14735307e+04 ! x y z +-9.55788059e+02 1.61305183e+03 7.38311147e+00 ! vx vy vz +222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill +9.05651521e+03 !particle radius in m +-1.00872411e+07 -7.19383413e+06 1.02683109e+05 ! x y z +1.09632503e+03 -1.47708699e+03 2.53571970e+00 ! vx vy vz +223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill +8.39272259e+03 !particle radius in m +-1.29868607e+07 9.20702284e+06 -1.02202794e+05 ! x y z +-9.58764873e+02 -1.33478274e+03 7.40636311e+00 ! vx vy vz +224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill +1.03677203e+04 !particle radius in m +2.69271095e+06 9.12085234e+06 -6.31280178e+04 ! x y z +-2.04468399e+03 6.49763127e+02 -6.41633267e+00 ! vx vy vz +225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill +9.48618629e+03 !particle radius in m +-1.04843536e+07 -2.82530322e+06 -6.63351271e+03 ! x y z +5.35179489e+02 -1.90917831e+03 -8.89095603e+00 ! vx vy vz +226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill +1.16195447e+04 !particle radius in m +8.55294018e+06 -2.42617769e+06 2.52020611e+04 ! x y z +6.43758212e+02 2.11770030e+03 -2.00995235e+00 ! vx vy vz +227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill +1.23569961e+04 !particle radius in m +9.56160063e+06 2.03876951e+05 -1.15187717e+04 ! x y z +-2.08727307e+01 2.13182274e+03 -6.37368295e+00 ! vx vy vz +228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill +3.80903228e+03 !particle radius in m +8.39735110e+06 -4.64919497e+06 -4.03636604e+04 ! x y z +1.02402689e+03 1.86350550e+03 3.48961376e+00 ! vx vy vz +229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill +7.62073270e+03 !particle radius in m +1.14766676e+07 -2.46673442e+06 -6.18541161e+03 ! x y z +3.81520272e+02 1.87089502e+03 -6.28495237e+00 ! vx vy vz +230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill +4.79251234e+03 !particle radius in m +7.65927810e+06 5.58691775e+06 6.38708550e+04 ! x y z +-1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz +232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill +4.85987440e+03 !particle radius in m +1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z +-2.71027694e+02 1.59383670e+03 4.71948132e+00 ! vx vy vz +233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill +7.30665510e+03 !particle radius in m +-2.08216759e+06 -9.23350326e+06 -8.76611629e+04 ! x y z +2.08240223e+03 -4.40249465e+02 -1.27767388e+01 ! vx vy vz +234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill +5.32422025e+03 !particle radius in m +8.73066827e+06 -2.21328634e+05 -3.34004359e+04 ! x y z +4.79166308e+01 2.23450529e+03 -9.11532147e+00 ! vx vy vz +235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill +1.18628272e+04 !particle radius in m +1.62631471e+07 4.67259161e+06 2.64032894e+04 ! x y z +-4.50841052e+02 1.52122597e+03 1.13312253e+01 ! vx vy vz +236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill +7.00538757e+03 !particle radius in m +5.98003979e+05 -1.57345854e+07 -2.89481346e+04 ! x y z +1.64606847e+03 7.79210619e+01 -6.19029962e+00 ! vx vy vz +237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill +7.47416865e+03 !particle radius in m +-8.48106759e+06 4.91431093e+06 -8.66403288e+04 ! x y z +-1.03310578e+03 -1.80626108e+03 1.07091841e+01 ! vx vy vz +238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill +1.21404101e+04 !particle radius in m +-1.84578837e+07 9.47798697e+05 -1.11240327e+05 ! x y z +-8.38856040e+01 -1.52441650e+03 -4.87143776e+00 ! vx vy vz +239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill +1.17785087e+04 !particle radius in m +-5.76687798e+06 9.89435129e+06 4.39168015e+04 ! x y z +-1.66547278e+03 -9.63693666e+02 4.18572107e+00 ! vx vy vz +240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill +5.60953779e+03 !particle radius in m +-1.82862969e+06 8.61926907e+06 -1.75357465e+04 ! x y z +-2.15498233e+03 -4.93004829e+02 7.64196538e+00 ! vx vy vz +241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill +7.71421647e+03 !particle radius in m +3.76525777e+06 -1.03931378e+07 -7.52318459e+04 ! x y z +1.83850823e+03 6.78500036e+02 -6.89947122e+00 ! vx vy vz +242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill +8.65284640e+03 !particle radius in m +-6.33335198e+06 -5.98167685e+06 -3.08011537e+04 ! x y z +1.53763163e+03 -1.62109001e+03 -2.47037358e+00 ! vx vy vz +243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill +6.23522281e+03 !particle radius in m +9.90333087e+06 -4.01192277e+06 6.04079611e+04 ! x y z +7.43355257e+02 1.83366572e+03 -1.58715640e+00 ! vx vy vz +244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill +1.30331280e+04 !particle radius in m +-5.98502411e+06 1.07946936e+07 4.97027123e+03 ! x y z +-1.61657634e+03 -8.93801164e+02 -1.07876442e+01 ! vx vy vz +245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill +9.63310475e+03 !particle radius in m +-6.59615203e+06 -1.12304386e+07 9.72528165e+04 ! x y z +1.57957874e+03 -9.09183472e+02 3.54133115e-01 ! vx vy vz +246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill +6.79194010e+03 !particle radius in m +8.96651461e+06 1.05824022e+06 -2.00386304e+04 ! x y z +-2.80453416e+02 2.17973889e+03 1.20973693e+00 ! vx vy vz +247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill +9.18776116e+03 !particle radius in m +1.47368687e+06 1.52540290e+07 1.91344142e+05 ! x y z +-1.67085873e+03 1.59690705e+02 -2.30924434e+00 ! vx vy vz +248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill +9.24689597e+03 !particle radius in m +-1.31122397e+06 1.35322324e+07 5.51107975e+04 ! x y z +-1.76733822e+03 -1.66895030e+02 1.40149353e+01 ! vx vy vz +249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill +8.25926956e+03 !particle radius in m +6.67718106e+06 -6.31157792e+06 2.26609344e+04 ! x y z +1.50456951e+03 1.52943679e+03 8.18042830e+00 ! vx vy vz +250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill +1.06839624e+04 !particle radius in m +-9.16360265e+06 6.32922451e+06 2.58199480e+03 ! x y z +-1.14874981e+03 -1.60466496e+03 1.97944632e+01 ! vx vy vz +251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill +6.68610634e+03 !particle radius in m +-1.15940056e+07 4.46540148e+06 -5.91615241e+04 ! x y z +-6.61054922e+02 -1.74552414e+03 3.85473780e+00 ! vx vy vz +252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill +5.97652691e+03 !particle radius in m +7.27954173e+05 8.98873006e+06 3.22170920e+04 ! x y z +-2.16869199e+03 1.52559195e+02 -7.62441611e+00 ! vx vy vz +253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill +9.95113166e+03 !particle radius in m +-7.91834556e+06 1.12541780e+07 -7.01445845e+04 ! x y z +-1.45888232e+03 -1.02209811e+03 -1.64204126e+01 ! vx vy vz +254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill +5.79684738e+03 !particle radius in m +-1.33826547e+07 -7.97098248e+06 5.10482753e+03 ! x y z +8.38898161e+02 -1.43447217e+03 1.26393376e+00 ! vx vy vz +255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill +6.55636334e+03 !particle radius in m +1.00439607e+07 -4.85348750e+06 1.01261466e+05 ! x y z +8.20741840e+02 1.77276708e+03 -5.85913488e-01 ! vx vy vz +256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill +6.70339268e+03 !particle radius in m +2.04930949e+06 -9.32239452e+06 -2.24373576e+04 ! x y z +2.07456592e+03 4.98065963e+02 1.20751769e-02 ! vx vy vz +257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill +6.51070352e+03 !particle radius in m +-2.17215478e+07 -8.78835015e+06 -4.01495560e+04 ! x y z +5.14278406e+02 -1.24501793e+03 7.48973214e+00 ! vx vy vz +258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill +1.11459543e+04 !particle radius in m +1.20260148e+07 1.50890452e+06 -8.61170776e+04 ! x y z +-2.28727670e+02 1.85884268e+03 1.03561533e+01 ! vx vy vz +259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill +8.95337335e+03 !particle radius in m +6.77964628e+06 6.80088173e+06 3.59640048e+04 ! x y z +-1.51037716e+03 1.46534327e+03 4.36610744e+00 ! vx vy vz +260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill +7.26477146e+03 !particle radius in m +1.93741347e+07 4.35856951e+06 -7.05507935e+02 ! x y z +-2.95958141e+02 1.44257652e+03 3.98161720e+00 ! vx vy vz +261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill +1.17954044e+04 !particle radius in m +-1.36515521e+07 5.47808328e+06 2.30862197e+04 ! x y z +-6.21116352e+02 -1.59076755e+03 -4.14797264e+00 ! vx vy vz +262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill +1.01304435e+04 !particle radius in m +1.29557484e+07 -3.33144253e+06 5.90527945e+04 ! x y z +4.53468556e+02 1.72544679e+03 8.55651480e+00 ! vx vy vz +263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill +4.29537029e+03 !particle radius in m +1.22881970e+07 4.73181161e+06 8.31929270e+04 ! x y z +-6.58468588e+02 1.69384960e+03 -1.28940832e+01 ! vx vy vz +264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill +5.31616352e+03 !particle radius in m +1.42705581e+07 -5.59919890e+06 -1.20173006e+04 ! x y z +6.15518752e+02 1.56633732e+03 -3.00095341e+00 ! vx vy vz +265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill +1.30497175e+04 !particle radius in m +1.22157187e+07 1.21158385e+07 -1.89187958e+04 ! x y z +-1.13185306e+03 1.10567360e+03 -1.20248978e+01 ! vx vy vz +266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill +5.38815059e+03 !particle radius in m +3.95878049e+06 -8.23148660e+06 5.75314545e+04 ! x y z +1.96980210e+03 9.25868395e+02 1.73432582e+01 ! vx vy vz +267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill +1.17101897e+04 !particle radius in m +-3.77919432e+06 1.07609723e+07 -5.23499337e+04 ! x y z +-1.82204789e+03 -6.43288095e+02 1.18800083e+01 ! vx vy vz +268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill +6.69695574e+03 !particle radius in m +-1.05319563e+07 9.02628865e+06 7.76373874e+04 ! x y z +-1.14418489e+03 -1.35282145e+03 -8.67554957e-01 ! vx vy vz +269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill +4.25091189e+03 !particle radius in m +1.11472461e+07 3.88496928e+06 2.24744875e+04 ! x y z +-6.24929449e+02 1.77558367e+03 1.82397206e+01 ! vx vy vz +270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill +9.99413848e+03 !particle radius in m +7.13225296e+06 7.84741088e+06 7.08528372e+04 ! x y z +-1.47773160e+03 1.36033625e+03 -6.05338364e+00 ! vx vy vz +271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill +4.41976293e+03 !particle radius in m +1.57340361e+07 -9.25306632e+06 1.05005348e+05 ! x y z +7.63951994e+02 1.32212390e+03 -5.72592279e+00 ! vx vy vz +272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill +7.48688169e+03 !particle radius in m +1.78996895e+07 -3.23122702e+06 -8.50474408e+04 ! x y z +2.79448983e+02 1.51858349e+03 1.07776473e+01 ! vx vy vz +273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill +9.82017615e+03 !particle radius in m +-1.25291109e+06 8.92261901e+06 6.19393261e+04 ! x y z +-2.15215968e+03 -3.42916287e+02 5.69467556e+00 ! vx vy vz +274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill +6.92499799e+03 !particle radius in m +3.17829891e+06 -1.10142305e+07 -2.69804501e+04 ! x y z +1.85575994e+03 5.54347759e+02 -8.57029148e-01 ! vx vy vz +275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill +7.71454664e+03 !particle radius in m +-1.52137099e+06 1.03039110e+07 -2.28129443e+04 ! x y z +-2.01239392e+03 -3.00583105e+02 1.82997128e+01 ! vx vy vz +276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill +1.24308761e+04 !particle radius in m +7.58255782e+06 -6.89244058e+06 -4.22200409e+04 ! x y z +1.36574672e+03 1.52351062e+03 -3.42663337e+00 ! vx vy vz +277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill +1.25439096e+04 !particle radius in m +-8.20564828e+06 8.24671241e+06 -1.78987991e+05 ! x y z +-1.37211179e+03 -1.35613094e+03 5.81977986e-01 ! vx vy vz +278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill +9.84359343e+03 !particle radius in m +8.14883976e+06 -1.20311130e+07 2.81646262e+04 ! x y z +1.42418230e+03 9.71290645e+02 -1.65557105e+01 ! vx vy vz +279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill +1.23336592e+04 !particle radius in m +2.74582126e+06 -8.71763630e+06 6.44092995e+04 ! x y z +2.06453659e+03 6.75538119e+02 -1.84554482e+01 ! vx vy vz +280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill +1.06035211e+04 !particle radius in m +7.67980194e+06 -6.41178879e+06 9.39794316e+04 ! x y z +1.32508200e+03 1.58960541e+03 -1.68646923e+00 ! vx vy vz +281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill +1.01232471e+04 !particle radius in m +1.08862914e+07 -1.69171267e+06 1.06890002e+04 ! x y z +2.66940523e+02 1.93825037e+03 -3.17829482e+00 ! vx vy vz +282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill +9.07368751e+03 !particle radius in m +-2.12855771e+07 -6.22047593e+06 4.09709267e+04 ! x y z +3.86441604e+02 -1.32836590e+03 2.12243761e-02 ! vx vy vz +283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill +1.06903372e+04 !particle radius in m +1.19425206e+06 -8.91233794e+06 3.55973631e+04 ! x y z +2.17359618e+03 2.49148190e+02 5.23202275e-01 ! vx vy vz +284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill +3.74060212e+03 !particle radius in m +9.56786350e+06 4.49949446e+05 3.82232625e+04 ! x y z +-9.15404876e+01 2.12884256e+03 -8.93875847e+00 ! vx vy vz +285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill +7.94450563e+03 !particle radius in m +2.52449139e+06 -8.63435263e+06 3.47588448e+03 ! x y z +2.08621300e+03 5.91911411e+02 -3.57309299e+00 ! vx vy vz +286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill +4.91211126e+03 !particle radius in m +1.30335501e+07 -9.18110749e+05 -5.93800312e+04 ! x y z +1.10189733e+02 1.82033941e+03 -1.02966654e+01 ! vx vy vz +287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill +1.07411202e+04 !particle radius in m +-8.43406318e+06 -5.93404434e+06 2.36715133e+04 ! x y z +1.16500133e+03 -1.67478526e+03 9.48734166e+00 ! vx vy vz +288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill +5.59848141e+03 !particle radius in m +1.45797657e+06 -1.20421345e+07 -3.75037404e+04 ! x y z +1.87575411e+03 2.26832585e+02 1.21113356e+01 ! vx vy vz +289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill +9.61704013e+03 !particle radius in m +7.82736208e+06 -4.81216442e+06 6.09982286e+04 ! x y z +1.09482209e+03 1.86309298e+03 2.82110626e+01 ! vx vy vz +290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill +1.26459448e+04 !particle radius in m +-1.04983951e+07 -9.78210039e+06 4.04999757e+04 ! x y z +1.16976801e+03 -1.28733444e+03 3.36107675e+00 ! vx vy vz +291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill +8.00145320e+03 !particle radius in m +-8.88059070e+06 -1.48350388e+06 -3.65798996e+04 ! x y z +3.63914783e+02 -2.15370844e+03 -4.03870858e+00 ! vx vy vz +292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill +4.34941489e+03 !particle radius in m +1.71799482e+06 -1.11150786e+07 -1.11600323e+04 ! x y z +1.89156931e+03 3.37161187e+02 -5.00763335e+00 ! vx vy vz +293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill +4.29486797e+03 !particle radius in m +1.22676746e+07 -7.93082840e+06 -7.55901444e+04 ! x y z +9.10780310e+02 1.43519257e+03 -9.59182854e+00 ! vx vy vz +294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill +1.10726580e+04 !particle radius in m +6.08378238e+06 -7.87148142e+06 -2.39812665e+04 ! x y z +1.65441655e+03 1.27707568e+03 -1.18584893e+01 ! vx vy vz +295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill +1.15859081e+04 !particle radius in m +5.05198031e+06 1.16964703e+07 1.98330665e+04 ! x y z +-1.69333923e+03 7.02450436e+02 2.04857518e+01 ! vx vy vz +296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill +8.69558011e+03 !particle radius in m +-2.23024582e+06 1.75885326e+07 3.84168836e+04 ! x y z +-1.54534740e+03 -1.88777263e+02 1.39357869e+01 ! vx vy vz +297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill +6.71590808e+03 !particle radius in m +1.11164532e+07 8.01001814e+06 1.06625699e+05 ! x y z +-1.04365443e+03 1.44565605e+03 2.11662748e+01 ! vx vy vz +298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill +1.11542662e+04 !particle radius in m +-1.17258082e+06 -1.22657889e+07 4.54924052e+04 ! x y z +1.84907037e+03 -1.95731556e+02 1.04424396e+01 ! vx vy vz +299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill +5.76789746e+03 !particle radius in m +8.87472318e+06 -1.41477847e+06 9.96850714e+03 ! x y z +3.48170496e+02 2.16686116e+03 6.86996341e+00 ! vx vy vz +300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill +9.35014220e+03 !particle radius in m +-1.06755868e+07 -2.26215221e+06 -1.03098190e+04 ! x y z +4.22938170e+02 -1.92356457e+03 -6.44322506e+00 ! vx vy vz +301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill +6.35246381e+03 !particle radius in m +-1.15286614e+07 6.85922305e+05 -2.50421030e+03 ! x y z +-1.47622259e+02 -1.91263388e+03 -2.66811177e+00 ! vx vy vz +302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill +7.25614557e+03 !particle radius in m +-1.14907610e+07 3.12025122e+06 -5.05043492e+04 ! x y z +-4.96419350e+02 -1.84148364e+03 1.23574710e+01 ! vx vy vz +303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill +1.02673671e+04 !particle radius in m +3.52540674e+06 1.12335432e+07 5.00575123e+04 ! x y z +-1.81448873e+03 5.96787301e+02 1.05390435e+00 ! vx vy vz +304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill +7.63921866e+03 !particle radius in m +-1.63903863e+07 9.01968445e+06 -1.03768934e+05 ! x y z +-7.30657688e+02 -1.32744569e+03 -3.28089387e+00 ! vx vy vz +305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill +1.06009616e+04 !particle radius in m +1.01396523e+07 -4.81960415e+06 4.30193977e+03 ! x y z +8.23199841e+02 1.75908251e+03 4.33811421e+00 ! vx vy vz +306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill +1.05483834e+04 !particle radius in m +1.06454895e+07 5.05879867e+06 5.08283132e+04 ! x y z +-8.22304047e+02 1.73567086e+03 1.93532669e+00 ! vx vy vz +307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill +7.81533428e+03 !particle radius in m +-1.60755914e+07 -7.66558706e+05 1.42941147e+04 ! x y z +6.22982075e+01 -1.61863536e+03 -1.60725073e+00 ! vx vy vz +308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill +1.15883574e+04 !particle radius in m +-1.46060477e+06 -8.99385191e+06 -3.08209444e+04 ! x y z +2.13011898e+03 -3.25298595e+02 2.80216541e+00 ! vx vy vz +309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill +1.12624422e+04 !particle radius in m +-1.41660966e+06 8.99035717e+06 1.40528615e+04 ! x y z +-2.12617696e+03 -3.75024767e+02 -9.07028597e+00 ! vx vy vz +310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill +1.21525746e+04 !particle radius in m +8.84712919e+06 3.96421798e+06 1.13803740e+04 ! x y z +-8.83218100e+02 1.91945493e+03 3.31259998e+00 ! vx vy vz +311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill +5.67364039e+03 !particle radius in m +6.88657663e+06 -1.05966202e+07 1.71451160e+03 ! x y z +1.56481452e+03 9.63079720e+02 1.94534764e+01 ! vx vy vz +312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill +7.43259427e+03 !particle radius in m +-8.85269678e+06 5.44905716e+06 -5.60825695e+04 ! x y z +-1.07596431e+03 -1.72186966e+03 1.77805310e+01 ! vx vy vz +313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill +1.19513059e+04 !particle radius in m +3.11450797e+06 -1.37495078e+07 -3.57099214e+04 ! x y z +1.70202965e+03 3.85543507e+02 -4.49001111e+00 ! vx vy vz +314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill +1.10220195e+04 !particle radius in m +-9.00924085e+06 4.66367866e+06 1.26574464e+04 ! x y z +-9.50214730e+02 -1.81339232e+03 -1.20100516e-01 ! vx vy vz +315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill +5.04841672e+03 !particle radius in m +-1.08865724e+07 1.89436312e+06 -5.35372336e+04 ! x y z +-3.54360414e+02 -1.92451382e+03 8.24540973e-02 ! vx vy vz +316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill +4.15403541e+03 !particle radius in m +1.55751438e+07 6.03420204e+06 -2.57378814e+04 ! x y z +-5.81737732e+02 1.49479237e+03 -7.62983212e+00 ! vx vy vz +317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill +1.15117238e+04 !particle radius in m +1.06056911e+07 8.74976261e+04 -1.72290821e+03 ! x y z +-1.77150357e+01 2.02140459e+03 -2.31012980e+01 ! vx vy vz +318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill +1.11945004e+04 !particle radius in m +-6.72042968e+06 -1.07531738e+07 5.09281015e+04 ! x y z +1.56397473e+03 -9.57368328e+02 -1.25364327e+01 ! vx vy vz +319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill +7.53816353e+03 !particle radius in m +4.10458407e+06 -1.13623664e+07 -9.48469623e+04 ! x y z +1.78215300e+03 6.13680096e+02 -7.93502985e+00 ! vx vy vz +320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill +7.54041364e+03 !particle radius in m +8.42747503e+06 -6.97349936e+06 -2.15671129e+04 ! x y z +1.26552336e+03 1.51523836e+03 2.12892191e+00 ! vx vy vz +321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill +6.76488745e+03 !particle radius in m +-1.31213742e+07 -4.58561120e+06 1.53600301e+04 ! x y z +5.82359194e+02 -1.66882713e+03 1.14079207e+01 ! vx vy vz +322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill +6.58324849e+03 !particle radius in m +-7.56393159e+06 7.09659926e+06 -4.65315976e+04 ! x y z +-1.36862256e+03 -1.51081343e+03 1.13488899e+01 ! vx vy vz +323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill +8.49453445e+03 !particle radius in m +4.46247777e+06 -8.10645059e+06 1.43618351e+04 ! x y z +1.90934802e+03 1.00293881e+03 8.21819949e+00 ! vx vy vz +324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill +6.81841660e+03 !particle radius in m +-9.96034566e+06 4.35537723e+06 -1.20286093e+04 ! x y z +-7.67471215e+02 -1.83079175e+03 -1.31980560e+01 ! vx vy vz +325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill +1.08946542e+04 !particle radius in m +-1.14760721e+07 3.70943531e+06 -9.49844421e+04 ! x y z +-5.95286906e+02 -1.76496467e+03 3.00728950e+00 ! vx vy vz +326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill +1.25068862e+04 !particle radius in m +-1.57425262e+07 -1.71485068e+06 5.83418789e+04 ! x y z +1.83396886e+02 -1.64215306e+03 1.76834645e+01 ! vx vy vz +327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill +1.14129344e+04 !particle radius in m +-5.50533612e+06 -7.29539312e+06 -4.19582765e+04 ! x y z +1.70576164e+03 -1.34793657e+03 3.36918899e+00 ! vx vy vz +328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill +7.58200769e+03 !particle radius in m +-1.84334893e+06 9.13437442e+06 -6.98626074e+03 ! x y z +-2.09435634e+03 -4.13549777e+02 1.31091798e+01 ! vx vy vz +329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill +1.16362363e+04 !particle radius in m +-8.24556722e+05 1.30406598e+07 9.22800110e+04 ! x y z +-1.80291385e+03 -1.14208577e+02 5.06777815e+00 ! vx vy vz +330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill +8.28218455e+03 !particle radius in m +-9.92787386e+06 7.89436638e+06 5.47155159e+04 ! x y z +-1.15186100e+03 -1.44221325e+03 -1.43299470e+01 ! vx vy vz +331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill +5.69676070e+03 !particle radius in m +-1.72820033e+07 -1.54859445e+07 -1.76600870e+05 ! x y z +9.00952544e+02 -1.00938815e+03 5.52976287e+00 ! vx vy vz +332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill +1.17273100e+04 !particle radius in m +7.54874149e+06 -7.34865635e+06 1.58691383e+04 ! x y z +1.40447688e+03 1.44745232e+03 -1.19902506e+00 ! vx vy vz +333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill +7.57115197e+03 !particle radius in m +6.70925482e+06 1.02233476e+07 -8.94168570e+04 ! x y z +-1.57673538e+03 1.00346927e+03 -1.54449677e+01 ! vx vy vz +334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill +1.07187619e+04 !particle radius in m +-9.38875782e+06 -1.03278172e+06 4.07424683e+04 ! x y z +2.57699240e+02 -2.12423408e+03 -1.75552004e+00 ! vx vy vz +335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill +7.85184231e+03 !particle radius in m +9.27514180e+06 3.60605892e+06 -8.97298126e+03 ! x y z +-7.45316219e+02 1.94032830e+03 2.50725751e+01 ! vx vy vz +336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill +5.81259090e+03 !particle radius in m +2.84715606e+05 -8.96387040e+06 -7.61793089e+04 ! x y z +2.17642987e+03 7.44775849e+01 5.43474351e+00 ! vx vy vz +337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill +1.05845019e+04 !particle radius in m +4.23618089e+06 8.82455069e+06 -3.58009197e+04 ! x y z +-1.88592236e+03 9.06205367e+02 -1.32060735e+01 ! vx vy vz +338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill +9.03321920e+03 !particle radius in m +8.99412766e+06 -6.25093595e+06 5.78854309e+04 ! x y z +1.13268666e+03 1.63171487e+03 -3.80887879e+00 ! vx vy vz +339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill +1.06850859e+04 !particle radius in m +8.95756676e+06 -5.04120234e+06 4.46604404e+04 ! x y z +9.97476295e+02 1.78291720e+03 1.83929026e+01 ! vx vy vz +340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill +1.09897543e+04 !particle radius in m +-6.88398435e+06 -9.59185877e+06 5.44110030e+04 ! x y z +1.53704986e+03 -1.12804795e+03 1.33934445e+01 ! vx vy vz +341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill +6.75416723e+03 !particle radius in m +4.06115845e+06 9.20664592e+06 1.44995295e+04 ! x y z +-1.87321421e+03 8.55264917e+02 4.54558328e+00 ! vx vy vz +342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill +4.24346826e+03 !particle radius in m +5.83709056e+06 1.18773019e+07 -1.78313453e+04 ! x y z +-1.60438748e+03 8.04911839e+02 7.87147192e-01 ! vx vy vz +343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill +1.27557328e+04 !particle radius in m +-9.82331264e+06 -1.72475014e+06 -4.50474397e+04 ! x y z +3.80035552e+02 -2.02006276e+03 1.41607704e+01 ! vx vy vz +344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill +6.59694858e+03 !particle radius in m +-9.75150606e+06 1.14173962e+06 1.90738112e+04 ! x y z +-2.44986733e+02 -2.07228361e+03 4.28819137e-01 ! vx vy vz +345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill +1.25314767e+04 !particle radius in m +8.89271698e+06 -2.80889036e+06 -9.05088712e+04 ! x y z +6.43083392e+02 2.05152117e+03 5.84263642e+00 ! vx vy vz +346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill +5.48083372e+03 !particle radius in m +5.55138431e+05 8.96699891e+06 -2.02907914e+03 ! x y z +-2.16543193e+03 1.17824020e+02 1.89028293e+01 ! vx vy vz +347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill +1.01136344e+04 !particle radius in m +1.08689498e+07 6.77891019e+06 -1.57957399e+05 ! x y z +-9.58257682e+02 1.54874788e+03 -4.38996175e+00 ! vx vy vz +348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill +1.19617045e+04 !particle radius in m +-3.46641057e+06 1.06366697e+07 -4.89091419e+04 ! x y z +-1.87369781e+03 -5.85557096e+02 2.64347289e+00 ! vx vy vz +349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill +1.29314335e+04 !particle radius in m +7.28383532e+06 5.25991927e+06 -2.74032882e+04 ! x y z +-1.28268765e+03 1.77447224e+03 6.54106986e+00 ! vx vy vz +350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill +5.50052892e+03 !particle radius in m +-4.06177152e+06 -1.52948510e+07 1.69121808e+05 ! x y z +1.57226331e+03 -4.40552105e+02 -4.07139830e+00 ! vx vy vz +351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill +4.79923872e+03 !particle radius in m +-9.47543528e+06 -9.79695598e+05 -1.53056931e+04 ! x y z +2.01324530e+02 -2.10617058e+03 -1.48150840e+00 ! vx vy vz +352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill +8.40797283e+03 !particle radius in m +-1.79473215e+07 9.78097521e+05 5.91571461e+04 ! x y z +-1.10933113e+02 -1.54125298e+03 1.80243489e+01 ! vx vy vz +353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill +8.72299905e+03 !particle radius in m +-4.10705239e+06 2.02615072e+07 8.49438827e+04 ! x y z +-1.41774938e+03 -2.76831824e+02 -8.09634112e+00 ! vx vy vz +354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill +4.25918528e+03 !particle radius in m +9.20347813e+05 1.11635810e+07 4.32283845e+04 ! x y z +-1.94746867e+03 1.65365528e+02 5.45495799e+00 ! vx vy vz +355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill +1.11681152e+04 !particle radius in m +1.02476212e+07 1.57307556e+06 1.24769819e+04 ! x y z +-3.20593926e+02 2.01506970e+03 6.12888669e+00 ! vx vy vz +356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill +9.67932473e+03 !particle radius in m +-9.41529174e+06 -1.45196651e+06 -3.72716178e+03 ! x y z +3.30034223e+02 -2.10697891e+03 -9.10557070e+00 ! vx vy vz +357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill +7.16468942e+03 !particle radius in m +9.63405331e+06 9.48657460e+06 -1.16765431e+05 ! x y z +-1.25212013e+03 1.25762974e+03 -8.79471164e+00 ! vx vy vz +358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill +6.23859022e+03 !particle radius in m +1.28395429e+07 1.67358191e+05 3.52526511e+04 ! x y z +-4.79000239e+01 1.82109236e+03 -7.08024284e+00 ! vx vy vz +359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill +1.05194783e+04 !particle radius in m +1.69906243e+05 1.31567065e+07 -2.83802597e+04 ! x y z +-1.79852464e+03 -2.60855891e+01 1.09479469e+01 ! vx vy vz +360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill +1.30502985e+04 !particle radius in m +-8.71409354e+06 -5.07378044e+06 -2.89973508e+04 ! x y z +1.01955016e+03 -1.80816198e+03 1.72703995e+01 ! vx vy vz +361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill +1.10169094e+04 !particle radius in m +-1.32773676e+07 9.58326159e+06 1.68929446e+04 ! x y z +-9.40100121e+02 -1.31837280e+03 -1.11767857e+00 ! vx vy vz +362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill +9.57459397e+03 !particle radius in m +-8.40811158e+06 5.08930784e+06 5.82263133e+04 ! x y z +-1.10041478e+03 -1.79532449e+03 1.45771724e+00 ! vx vy vz +363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill +3.98308125e+03 !particle radius in m +1.04113372e+07 -6.20697428e+06 -4.84867208e+03 ! x y z +9.45840262e+02 1.61620978e+03 2.47832189e-01 ! vx vy vz +364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill +9.15799677e+03 !particle radius in m +-8.01518815e+06 -5.01852324e+06 5.17503273e+04 ! x y z +1.12426091e+03 -1.82440187e+03 2.07206048e-02 ! vx vy vz +365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill +7.21107035e+03 !particle radius in m +2.07944449e+06 8.94904149e+06 4.13797547e+04 ! x y z +-2.09851241e+03 4.60858305e+02 2.54918811e+01 ! vx vy vz +366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill +7.12123600e+03 !particle radius in m +9.71543544e+06 -3.75196256e+06 7.97368753e+04 ! x y z +7.42718545e+02 1.90076456e+03 1.83014984e+00 ! vx vy vz +367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill +8.68766895e+03 !particle radius in m +1.76238307e+07 7.35273671e+06 8.70758386e+04 ! x y z +-5.77591306e+02 1.37259271e+03 3.08504041e+00 ! vx vy vz +368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill +1.18860727e+04 !particle radius in m +1.05252406e+07 1.01023349e+07 1.18854193e+04 ! x y z +-1.19069656e+03 1.22779101e+03 7.21918511e+00 ! vx vy vz +369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill +1.05401406e+04 !particle radius in m +-2.44589262e+06 9.98155585e+06 -7.16098465e+04 ! x y z +-2.01199959e+03 -4.94158200e+02 1.76332595e+01 ! vx vy vz +370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill +1.14368147e+04 !particle radius in m +-1.71313810e+07 1.65684524e+05 7.09374774e+04 ! x y z +-1.73247831e+01 -1.58285349e+03 5.23281867e+00 ! vx vy vz +371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill +1.10288797e+04 !particle radius in m +5.96055313e+06 8.26822848e+06 -6.95116782e+04 ! x y z +-1.67280349e+03 1.20494456e+03 -5.49043884e+00 ! vx vy vz +372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill +4.32451704e+03 !particle radius in m +-4.58351543e+06 8.68653626e+06 -2.19181580e+04 ! x y z +-1.82145003e+03 -9.87506692e+02 -1.02913863e+01 ! vx vy vz +373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill +5.91337055e+03 !particle radius in m +1.46092641e+06 1.62085257e+07 9.35785200e+04 ! x y z +-1.61693894e+03 1.23715914e+02 1.88035614e+01 ! vx vy vz +374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill +6.91398214e+03 !particle radius in m +8.37967759e+06 2.86987872e+06 4.97540416e+02 ! x y z +-6.79497178e+02 2.09457077e+03 -7.48586459e+00 ! vx vy vz +375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill +7.72793689e+03 !particle radius in m +1.00544998e+07 -4.23649556e+06 1.69842871e+04 ! x y z +7.79559289e+02 1.80935311e+03 -9.45690780e-01 ! vx vy vz +376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill +5.52345548e+03 !particle radius in m +4.97012699e+06 7.77763306e+06 -1.08049137e+05 ! x y z +-1.81754065e+03 1.16817211e+03 7.93709072e+00 ! vx vy vz +377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill +1.16622408e+04 !particle radius in m +-8.56556120e+06 -3.00745478e+06 2.68959103e+04 ! x y z +7.41957227e+02 -2.02442760e+03 5.97293652e+00 ! vx vy vz +378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill +3.85423811e+03 !particle radius in m +-9.89914954e+06 1.64381375e+06 1.86441037e+04 ! x y z +-3.29902217e+02 -2.03621690e+03 -1.49125925e+01 ! vx vy vz +379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill +9.71972363e+03 !particle radius in m +-1.33296527e+07 -1.79984260e+07 -6.91244815e+03 ! x y z +1.12052368e+03 -8.18620884e+02 -1.17030012e+00 ! vx vy vz +380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill +8.10053368e+03 !particle radius in m +2.47744290e+05 1.08515872e+07 8.05332988e+04 ! x y z +-1.98242921e+03 4.60702324e+01 -8.10883988e+00 ! vx vy vz +381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill +9.01222011e+03 !particle radius in m +-1.04485761e+07 -3.19315171e+06 -6.87163868e+04 ! x y z +5.84305730e+02 -1.88680612e+03 1.24994521e+01 ! vx vy vz +382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill +7.38646156e+03 !particle radius in m +-4.30915405e+06 1.13988191e+07 -1.87898899e+03 ! x y z +-1.74153886e+03 -6.58302615e+02 5.64269794e+00 ! vx vy vz +383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill +4.00465955e+03 !particle radius in m +1.07629692e+07 1.37789153e+07 5.87066489e+04 ! x y z +-1.23476438e+03 9.58354279e+02 -1.51457433e+01 ! vx vy vz +384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill +8.23094873e+03 !particle radius in m +-2.26919155e+06 -2.23065641e+07 1.71429522e+05 ! x y z +1.36729685e+03 -1.26785143e+02 1.53512073e+00 ! vx vy vz +385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill +4.90670043e+03 !particle radius in m +-8.76057602e+06 -2.98488729e+06 3.16441575e+04 ! x y z +7.01564230e+02 -2.04784374e+03 6.54428080e+00 ! vx vy vz +386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill +1.18338596e+04 !particle radius in m +7.33432561e+06 1.58195231e+07 -1.25526941e+05 ! x y z +-1.41716350e+03 6.50084435e+02 1.99363998e+00 ! vx vy vz +387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill +5.31334038e+03 !particle radius in m +9.67909368e+06 -3.14679172e+06 1.01149877e+04 ! x y z +6.30534017e+02 1.94451859e+03 1.40841719e-01 ! vx vy vz +388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill +6.60251226e+03 !particle radius in m +3.58575623e+06 -8.28340933e+06 2.06786831e+04 ! x y z +2.01251169e+03 8.71048387e+02 4.13835680e+00 ! vx vy vz +389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill +8.17577418e+03 !particle radius in m +-1.59444867e+07 -9.43202143e+06 -1.03432964e+05 ! x y z +7.76368044e+02 -1.31648260e+03 -1.97011404e+00 ! vx vy vz +390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill +3.92504366e+03 !particle radius in m +8.15294773e+06 -4.83168922e+06 -2.23196035e+04 ! x y z +1.12438877e+03 1.80730928e+03 -9.96110137e+00 ! vx vy vz +391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill +5.55020210e+03 !particle radius in m +1.15608807e+07 -1.72289132e+06 8.78681619e+04 ! x y z +2.64558251e+02 1.88351104e+03 -1.22676546e+00 ! vx vy vz +392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill +7.45917792e+03 !particle radius in m +5.94153104e+05 1.04675287e+07 -7.76838952e+04 ! x y z +-2.01022149e+03 1.00791259e+02 2.73869669e+00 ! vx vy vz +393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill +6.80580498e+03 !particle radius in m +9.10704389e+06 5.66556444e+06 -1.21395685e+05 ! x y z +-1.06310456e+03 1.70305461e+03 1.52195271e+01 ! vx vy vz +394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill +7.63395485e+03 !particle radius in m +-6.14994249e+06 -1.27900562e+07 -1.88907757e+04 ! x y z +1.55814359e+03 -7.78224426e+02 2.73440877e-01 ! vx vy vz +395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill +7.02952878e+03 !particle radius in m +-8.80385560e+06 3.77151207e+06 -1.21818940e+05 ! x y z +-8.47944944e+02 -1.95313347e+03 -1.70763192e+01 ! vx vy vz +396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill +1.20172005e+04 !particle radius in m +1.08664166e+07 5.36923937e+06 -8.13196573e+04 ! x y z +-8.16624638e+02 1.69027839e+03 8.34673628e+00 ! vx vy vz +397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill +6.38540043e+03 !particle radius in m +-5.47268707e+06 7.90131264e+06 3.38529547e+04 ! x y z +-1.73122732e+03 -1.20437649e+03 1.62011748e+00 ! vx vy vz +398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill +1.16499575e+04 !particle radius in m +1.10121047e+07 -6.14561995e+06 5.51425169e+04 ! x y z +8.91208138e+02 1.62668641e+03 -4.00812310e+00 ! vx vy vz +399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill +5.79050854e+03 !particle radius in m +-3.82515764e+06 1.42902315e+07 -2.47878060e+04 ! x y z +-1.63598310e+03 -4.85341065e+02 -2.82331478e+00 ! vx vy vz +400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill +1.20288397e+04 !particle radius in m +-1.84053839e+06 9.22666914e+06 -1.87382012e+04 ! x y z +-2.10070573e+03 -4.25824187e+02 -2.45200413e+00 ! vx vy vz +401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill +6.14242713e+03 !particle radius in m +-7.35737221e+06 -9.68920345e+06 5.93390680e+04 ! x y z +1.50053722e+03 -1.12338599e+03 -1.30933156e+01 ! vx vy vz +402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill +9.83970306e+03 !particle radius in m +-8.70682368e+06 5.56356570e+06 -6.56478138e+04 ! x y z +-1.11346390e+03 -1.70326053e+03 1.28466204e+00 ! vx vy vz +403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill +5.96724810e+03 !particle radius in m +7.02500514e+06 -1.38238984e+07 6.74566304e+04 ! x y z +1.48675948e+03 7.65020748e+02 8.19788003e+00 ! vx vy vz +404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill +1.17076027e+04 !particle radius in m +-9.79856030e+06 2.12372760e+06 1.89480336e+04 ! x y z +-4.48830087e+02 -2.02736841e+03 -1.23694959e+01 ! vx vy vz +405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill +8.52806763e+03 !particle radius in m +-1.01558817e+07 -2.10873547e+07 -2.03636345e+05 ! x y z +1.20616652e+03 -5.87121724e+02 -4.30533916e+00 ! vx vy vz +406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill +8.67447176e+03 !particle radius in m +1.10980559e+07 1.19228306e+07 -2.89204661e+04 ! x y z +-1.18553044e+03 1.09632262e+03 8.12769922e+00 ! vx vy vz +407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill +6.48784045e+03 !particle radius in m +1.00683282e+07 -1.06678967e+05 -7.08192900e+04 ! x y z +7.59653606e-01 2.03836538e+03 -2.00978691e+01 ! vx vy vz +408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill +9.86938263e+03 !particle radius in m +8.35393830e+06 3.60269502e+06 -6.29338444e+04 ! x y z +-8.43508227e+02 1.99248181e+03 2.35695291e+01 ! vx vy vz +409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill +9.08852133e+03 !particle radius in m +7.15716844e+06 2.23969109e+07 -2.43128655e+05 ! x y z +-1.28744111e+03 4.04784490e+02 -9.98522887e+00 ! vx vy vz +410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill +7.97538482e+03 !particle radius in m +9.79101038e+06 -7.57582171e+06 -6.16544234e+03 ! x y z +1.14324704e+03 1.46779509e+03 -4.09524183e-01 ! vx vy vz +411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill +1.21026921e+04 !particle radius in m +1.92900217e+07 -9.92716086e+06 -8.71066703e+04 ! x y z +6.46615886e+02 1.23877023e+03 -8.06944804e+00 ! vx vy vz +412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill +1.12884701e+04 !particle radius in m +7.63578761e+05 -1.05163176e+07 -1.40125740e+03 ! x y z +1.99506811e+03 1.28492643e+02 -1.21964426e+00 ! vx vy vz +413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill +1.09158716e+04 !particle radius in m +6.16240208e+05 1.16898273e+07 -2.31871163e+03 ! x y z +-1.92072024e+03 1.14544858e+02 -1.24842975e+01 ! vx vy vz +414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill +4.93459624e+03 !particle radius in m +1.03595473e+07 -4.35809471e+06 -5.55598025e+04 ! x y z +7.59957188e+02 1.81039627e+03 -9.27171494e+00 ! vx vy vz +415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill +9.30593115e+03 !particle radius in m +-8.58951099e+05 1.20741593e+07 8.58096722e+03 ! x y z +-1.85656009e+03 -1.31659982e+02 -7.07088670e-01 ! vx vy vz +416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill +7.71593034e+03 !particle radius in m +1.34936412e+07 9.22411406e+05 -1.28097766e+05 ! x y z +-1.21347788e+02 1.77352752e+03 6.09816980e+00 ! vx vy vz +417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill +4.06146670e+03 !particle radius in m +8.93667242e+06 -4.37387871e+06 4.75249766e+04 ! x y z +9.07116732e+02 1.86034352e+03 -2.16160032e+01 ! vx vy vz +418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill +5.10279049e+03 !particle radius in m +2.97443729e+06 1.12987732e+07 -7.15478904e+04 ! x y z +-1.84937662e+03 4.88975049e+02 -1.62129744e+01 ! vx vy vz +419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill +9.84038492e+03 !particle radius in m +-1.20782110e+07 5.42799080e+06 -2.14298463e+04 ! x y z +-7.60124760e+02 -1.64210069e+03 1.17910321e+00 ! vx vy vz +420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill +8.19645631e+03 !particle radius in m +-1.66687778e+07 3.40131310e+06 -8.13780785e+04 ! x y z +-3.27574668e+02 -1.54958699e+03 7.60005752e+00 ! vx vy vz +421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill +1.10674500e+04 !particle radius in m +8.04465463e+06 7.94262975e+06 3.50880055e+04 ! x y z +-1.38047284e+03 1.36038061e+03 9.60840796e+00 ! vx vy vz +422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill +9.32873342e+03 !particle radius in m +8.72948534e+06 2.25552201e+06 -6.67651980e+03 ! x y z +-5.17110071e+02 2.09745799e+03 -1.26305103e+01 ! vx vy vz +423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill +3.97264243e+03 !particle radius in m +1.59911238e+07 -5.78123234e+06 -4.96452199e+04 ! x y z +5.52053054e+02 1.48435519e+03 -7.76218367e-02 ! vx vy vz +424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill +9.94269530e+03 !particle radius in m +-7.16058601e+06 5.68697632e+06 2.50735615e+04 ! x y z +-1.32041167e+03 -1.70209713e+03 -5.51776816e+00 ! vx vy vz +425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill +1.05009525e+04 !particle radius in m +-1.96591682e+06 -9.56765462e+06 -5.49582524e+04 ! x y z +2.05754068e+03 -4.30221705e+02 -6.52205972e+00 ! vx vy vz +426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill +8.22033835e+03 !particle radius in m +-1.32036875e+07 -6.42805082e+06 -2.13137156e+04 ! x y z +7.40576713e+02 -1.53667373e+03 -1.66122663e+00 ! vx vy vz +427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill +1.28408960e+04 !particle radius in m +7.26511252e+06 1.02544271e+07 -1.28126970e+04 ! x y z +-1.50567288e+03 1.06151555e+03 -1.91621752e+00 ! vx vy vz +428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill +5.50382909e+03 !particle radius in m +-9.70398421e+06 5.43301598e+06 -7.10765156e+04 ! x y z +-9.66770489e+02 -1.69237365e+03 -3.28188506e+00 ! vx vy vz +429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill +1.28572603e+04 !particle radius in m +2.96216400e+05 -9.44659905e+06 6.39430618e+04 ! x y z +2.13334160e+03 5.10827881e+01 -3.06567932e+00 ! vx vy vz +430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill +3.72381283e+03 !particle radius in m +-7.59639515e+06 5.48032752e+06 -2.40679326e+03 ! x y z +-1.21575451e+03 -1.75481888e+03 -1.69366205e+01 ! vx vy vz +431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill +6.21604216e+03 !particle radius in m +4.26014597e+06 8.47244148e+06 -4.52841666e+04 ! x y z +-1.89773381e+03 9.86947142e+02 2.27005651e+00 ! vx vy vz +432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill +7.04464148e+03 !particle radius in m +5.86869928e+06 6.95435059e+06 -3.04780435e+04 ! x y z +-1.65434811e+03 1.39969038e+03 3.34387968e+00 ! vx vy vz +433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill +1.15473588e+04 !particle radius in m +-8.24315322e+06 -5.69586696e+06 2.20302861e+04 ! x y z +1.15852208e+03 -1.69773981e+03 2.26551767e+01 ! vx vy vz +434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill +4.57262149e+03 !particle radius in m +-2.90925512e+06 8.79933915e+06 6.42165783e+04 ! x y z +-2.03971713e+03 -6.70860975e+02 7.91657343e+00 ! vx vy vz +435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill +1.29780877e+04 !particle radius in m +9.24506088e+06 5.42020869e+06 3.55011834e+04 ! x y z +-9.90032731e+02 1.74244918e+03 -6.84359361e+00 ! vx vy vz +436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill +3.72768740e+03 !particle radius in m +1.49390033e+07 5.03002569e+06 -6.08660675e+04 ! x y z +-5.02338251e+02 1.56332178e+03 -1.67781569e+01 ! vx vy vz +437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill +1.05170553e+04 !particle radius in m +1.23161243e+07 1.68843020e+06 2.12877558e+04 ! x y z +-2.39425053e+02 1.84057327e+03 1.32413609e+01 ! vx vy vz +438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill +1.27277329e+04 !particle radius in m +8.91889708e+06 -5.54747107e+05 4.66922419e+04 ! x y z +1.62589921e+02 2.18077019e+03 -1.86548050e+01 ! vx vy vz +439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill +8.96414991e+03 !particle radius in m +-5.82188250e+06 -6.93015474e+06 8.83731418e+03 ! x y z +1.65500621e+03 -1.40856285e+03 -4.08918572e+01 ! vx vy vz +440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill +1.03907754e+04 !particle radius in m +-7.35080590e+06 -7.29055125e+06 -1.20861111e+03 ! x y z +1.39392385e+03 -1.47392682e+03 -1.29937331e+01 ! vx vy vz +441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill +4.93452768e+03 !particle radius in m +-1.22300071e+07 4.00505750e+06 -4.82429747e+04 ! x y z +-5.99234873e+02 -1.71878148e+03 -9.59996458e+00 ! vx vy vz +442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill +5.23080275e+03 !particle radius in m +1.90445756e+06 1.53190995e+07 1.28393938e+05 ! x y z +-1.65070889e+03 1.86078304e+02 1.21713635e+00 ! vx vy vz +443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill +3.95409460e+03 !particle radius in m +1.16512710e+06 9.58806430e+06 6.00184281e+03 ! x y z +-2.08431325e+03 2.50023373e+02 -4.86726355e+00 ! vx vy vz +444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill +5.07066194e+03 !particle radius in m +2.90940058e+06 8.85967621e+06 -3.67911262e+04 ! x y z +-2.05184488e+03 6.57972025e+02 3.77722174e+00 ! vx vy vz +445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill +1.02592460e+04 !particle radius in m +1.02030674e+07 -2.25656251e+06 -2.42931768e+04 ! x y z +4.02033391e+02 1.97779610e+03 -4.56432654e+00 ! vx vy vz +446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill +4.30171134e+03 !particle radius in m +-2.21966207e+06 -8.53462824e+06 5.98951302e+03 ! x y z +2.13957370e+03 -5.72879766e+02 -9.73511724e+00 ! vx vy vz +447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill +9.83577325e+03 !particle radius in m +-5.82677409e+06 -8.25640044e+06 -1.85310721e+04 ! x y z +1.68912824e+03 -1.20023426e+03 -1.46688747e+01 ! vx vy vz +448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill +9.39909127e+03 !particle radius in m +-4.15446158e+05 -1.04064911e+07 -6.01445752e+04 ! x y z +2.04307655e+03 -9.44888304e+01 -1.29270899e+01 ! vx vy vz +449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill +5.23703394e+03 !particle radius in m +1.44949245e+06 -1.38726585e+07 1.28983420e+04 ! x y z +1.74524417e+03 1.89418829e+02 -1.27510818e+00 ! vx vy vz +450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill +6.74226629e+03 !particle radius in m +-1.02673257e+07 5.51832525e+06 7.68510549e+04 ! x y z +-9.09826047e+02 -1.68325012e+03 -9.74521738e+00 ! vx vy vz +451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill +1.14295731e+04 !particle radius in m +9.99103043e+06 1.06885708e+07 7.94231343e+04 ! x y z +-1.28100100e+03 1.14298665e+03 7.74179187e+00 ! vx vy vz +452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill +1.13206181e+04 !particle radius in m +4.41133703e+06 8.86113052e+06 -4.90493478e+04 ! x y z +-1.86573176e+03 9.32322270e+02 -1.20417460e+01 ! vx vy vz +453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill +7.33201534e+03 !particle radius in m +-1.05312274e+07 1.06309083e+06 -3.40508748e+04 ! x y z +-2.12025256e+02 -1.99070933e+03 2.76988985e+00 ! vx vy vz +454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill +6.76474935e+03 !particle radius in m +-9.13190511e+06 -9.87045448e+05 4.65363249e+04 ! x y z +2.72813658e+02 -2.14939314e+03 -6.89232508e+00 ! vx vy vz +455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill +8.56661866e+03 !particle radius in m +-9.55165901e+06 3.32037562e+06 -5.74639097e+04 ! x y z +-7.05014643e+02 -1.94468153e+03 -9.68692941e+00 ! vx vy vz +456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill +8.48722461e+03 !particle radius in m +-2.79080237e+06 -1.49534280e+07 6.61250908e+04 ! x y z +1.66874204e+03 -2.93565278e+02 -6.04868304e+00 ! vx vy vz +457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill +6.82030227e+03 !particle radius in m +1.76076614e+06 -8.89107995e+06 4.77043786e+04 ! x y z +2.14748256e+03 4.04932388e+02 -1.26152318e+01 ! vx vy vz +458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill +1.02690639e+04 !particle radius in m +8.52637393e+06 2.63618253e+06 -5.22911736e+04 ! x y z +-6.60976767e+02 2.09577153e+03 3.42675226e+00 ! vx vy vz +459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill +5.35754408e+03 !particle radius in m +1.08528417e+07 5.02794391e+05 -2.76918530e+04 ! x y z +-1.27726381e+02 1.98516729e+03 -1.12360782e+01 ! vx vy vz +460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill +1.18534842e+04 !particle radius in m +-7.11955030e+06 6.48411163e+06 -1.64876744e+04 ! x y z +-1.43123341e+03 -1.55444238e+03 -1.21086898e+01 ! vx vy vz +461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill +9.10252919e+03 !particle radius in m +7.73539416e+06 4.91837100e+06 3.79759434e+04 ! x y z +-1.16029500e+03 1.85248711e+03 2.31086993e+00 ! vx vy vz +462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill +1.02339004e+04 !particle radius in m +8.76407090e+06 -2.02266717e+06 -1.17355053e+04 ! x y z +4.87045225e+02 2.14976445e+03 -1.12592644e+01 ! vx vy vz +463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill +1.16832115e+04 !particle radius in m +-5.85624077e+06 -7.65100688e+06 -6.81073848e+04 ! x y z +1.69101430e+03 -1.25110313e+03 -1.69620610e+01 ! vx vy vz +464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill +4.63065609e+03 !particle radius in m +-4.73064294e+06 1.23174391e+07 -1.15616945e+05 ! x y z +-1.67622870e+03 -6.40214154e+02 -2.40259531e+00 ! vx vy vz +465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill +6.75204041e+03 !particle radius in m +1.21865621e+07 4.96824670e+06 1.38201935e+04 ! x y z +-6.90512507e+02 1.66991832e+03 1.81886433e+00 ! vx vy vz +466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill +9.95606737e+03 !particle radius in m +1.16681691e+07 6.27755146e+06 -9.89757611e+04 ! x y z +-8.82483897e+02 1.58231102e+03 -7.45315405e-01 ! vx vy vz +467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill +5.99441701e+03 !particle radius in m +-9.82574233e+06 -6.12952303e+06 1.96949177e+04 ! x y z +1.01952580e+03 -1.64506613e+03 1.17311172e+01 ! vx vy vz +468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill +1.16562377e+04 !particle radius in m +-7.66867450e+06 -6.71467472e+06 1.82936899e+04 ! x y z +1.37697709e+03 -1.54141508e+03 -1.04916179e+01 ! vx vy vz +469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill +7.22008053e+03 !particle radius in m +6.68731996e+06 1.21566043e+07 -5.02348380e+04 ! x y z +-1.55626881e+03 8.62955881e+02 7.13319505e+00 ! vx vy vz +470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill +4.52448294e+03 !particle radius in m +5.58226973e+05 -1.33893338e+07 3.23944444e+04 ! x y z +1.78341617e+03 5.70175526e+01 2.01164673e+01 ! vx vy vz +471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill +8.03922694e+03 !particle radius in m +2.69184570e+06 8.96128856e+06 -1.43912663e+04 ! x y z +-2.03943626e+03 6.16982327e+02 1.53458951e+01 ! vx vy vz +472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill +1.09006261e+04 !particle radius in m +-1.76847286e+07 -6.05601018e+05 1.06870104e+04 ! x y z +8.13556990e+01 -1.55405464e+03 1.07736989e+01 ! vx vy vz +473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill +5.96239346e+03 !particle radius in m +-4.46692197e+06 -8.22773588e+06 -3.36712950e+04 ! x y z +1.90929541e+03 -1.00567083e+03 1.30091738e+01 ! vx vy vz +474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill +3.86203494e+03 !particle radius in m +1.09873618e+07 1.89353789e+07 1.37058307e+05 ! x y z +-1.20089709e+03 6.97166990e+02 -1.15971142e+00 ! vx vy vz +475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill +1.20678989e+04 !particle radius in m +8.92466133e+06 -1.21792450e+06 3.61100410e+04 ! x y z +3.10051974e+02 2.14937296e+03 -1.41043166e+01 ! vx vy vz +476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill +8.91193791e+03 !particle radius in m +-5.85289838e+05 1.08674619e+07 3.13865857e+04 ! x y z +-1.97212405e+03 -1.17677554e+02 -3.37938196e+00 ! vx vy vz +477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill +6.40717392e+03 !particle radius in m +2.71862051e+06 -9.05514497e+06 -5.54339403e+02 ! x y z +2.04451063e+03 5.93924832e+02 -2.26401878e+01 ! vx vy vz +478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill +1.01917795e+04 !particle radius in m +-4.06364003e+06 8.41274452e+06 3.61206264e+04 ! x y z +-1.92276154e+03 -9.27433732e+02 1.11784546e+01 ! vx vy vz +479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill +7.03132016e+03 !particle radius in m +-1.19933178e+07 -3.73131347e+06 1.49826992e+03 ! x y z +5.46200488e+02 -1.75445228e+03 -4.43292318e-01 ! vx vy vz +480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill +4.01835133e+03 !particle radius in m +-2.24454214e+07 -7.37433557e+06 5.58803594e+04 ! x y z +4.48331646e+02 -1.26886747e+03 -5.97172099e+00 ! vx vy vz +481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill +4.48393645e+03 !particle radius in m +-1.00569236e+07 1.52027585e+06 5.50467478e+04 ! x y z +-2.73653938e+02 -2.04195337e+03 2.77105641e+00 ! vx vy vz +482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill +4.73706563e+03 !particle radius in m +1.42492815e+06 -9.15917062e+06 -2.25858696e+04 ! x y z +2.12298306e+03 3.34049377e+02 1.00298878e+01 ! vx vy vz +483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill +5.32956636e+03 !particle radius in m +-7.74886856e+06 6.98419572e+06 4.81094824e+02 ! x y z +-1.36287826e+03 -1.51437942e+03 -1.68752883e+01 ! vx vy vz +484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill +8.98855782e+03 !particle radius in m +-9.13222067e+06 7.31343022e+06 -3.08093425e+04 ! x y z +-1.21046156e+03 -1.49256909e+03 -3.15355485e-01 ! vx vy vz +485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill +6.01378842e+03 !particle radius in m +6.06087158e+06 -9.69417839e+06 6.23119551e+04 ! x y z +1.63826093e+03 1.03252872e+03 -8.91138112e+00 ! vx vy vz +486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill +4.62821986e+03 !particle radius in m +1.42036863e+07 3.21005959e+05 -1.52147935e+05 ! x y z +-2.29346938e+01 1.73911536e+03 2.41934076e+00 ! vx vy vz +487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill +1.02114099e+04 !particle radius in m +2.47060933e+06 -8.49038937e+06 -1.64092125e+04 ! x y z +2.11333925e+03 6.27764025e+02 3.26978709e+00 ! vx vy vz +488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill +1.22853727e+04 !particle radius in m +-1.70653039e+07 2.72173559e+06 1.07972032e+05 ! x y z +-2.36876536e+02 -1.54619144e+03 -7.91920171e+00 ! vx vy vz +489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill +7.87339511e+03 !particle radius in m +9.29964742e+06 2.61866241e+06 1.18151327e+04 ! x y z +-6.01432781e+02 2.01893065e+03 -9.18340859e-01 ! vx vy vz +490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill +1.05061229e+04 !particle radius in m +5.46329309e+06 -8.17615351e+06 3.23278517e+03 ! x y z +1.73194521e+03 1.16682128e+03 -2.32849453e+00 ! vx vy vz +491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill +4.20213010e+03 !particle radius in m +-9.38612532e+06 8.96174000e+06 1.24251608e+04 ! x y z +-1.26134064e+03 -1.32562137e+03 -9.16926524e+00 ! vx vy vz +492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill +5.49869230e+03 !particle radius in m +1.34404207e+06 -1.34982267e+07 -9.98145158e+04 ! x y z +1.77251874e+03 1.58186229e+02 -1.18233653e+01 ! vx vy vz +493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill +5.34935064e+03 !particle radius in m +1.59657590e+07 -1.84107184e+06 7.91634963e+04 ! x y z +1.77740752e+02 1.61004155e+03 -8.76452331e-01 ! vx vy vz +494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill +3.81807480e+03 !particle radius in m +-1.95422324e+07 4.27225532e+06 -1.15437134e+04 ! x y z +-3.47390066e+02 -1.42742043e+03 -9.37392480e+00 ! vx vy vz +495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill +7.27427657e+03 !particle radius in m +-8.32827018e+06 6.50246828e+06 1.07863935e+04 ! x y z +-1.19572995e+03 -1.60254308e+03 1.23423582e+00 ! vx vy vz +496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill +8.73601721e+03 !particle radius in m +-1.07074688e+07 2.34621575e+06 5.93641138e+04 ! x y z +-4.22982902e+02 -1.94965020e+03 -1.96471998e+01 ! vx vy vz +497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill +1.15512484e+04 !particle radius in m +4.51979494e+06 1.22520862e+07 -1.38847489e+04 ! x y z +-1.72593078e+03 6.48260700e+02 -7.40684356e+00 ! vx vy vz +498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill +6.64309194e+03 !particle radius in m +2.92552013e+06 -1.35219163e+07 -7.24169872e+04 ! x y z +1.71212479e+03 3.82693746e+02 1.13508153e+01 ! vx vy vz +499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill +1.01949726e+04 !particle radius in m +8.44057923e+05 -1.07213279e+07 5.42825433e+04 ! x y z +1.98524585e+03 1.59641509e+02 -2.17308444e+00 ! vx vy vz +500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill +1.24273391e+04 !particle radius in m +-5.70564751e+06 -1.28061077e+07 7.89815585e+04 ! x y z +1.59615438e+03 -7.17950030e+02 -1.60355758e+01 ! vx vy vz +501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill +9.91174230e+03 !particle radius in m +6.42542385e+06 -6.26831304e+06 -8.52096344e+03 ! x y z +1.51047048e+03 1.57585291e+03 1.26849618e+01 ! vx vy vz +502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill +7.61642321e+03 !particle radius in m +-1.26986567e+07 2.05439645e+06 4.23816010e+04 ! x y z +-3.17593598e+02 -1.80836332e+03 1.37317505e+01 ! vx vy vz +503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill +5.85403069e+03 !particle radius in m +3.89723404e+06 -8.71939773e+06 -1.59555101e+04 ! x y z +1.92484978e+03 8.78585634e+02 3.76576757e+00 ! vx vy vz +504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill +9.68335876e+03 !particle radius in m +9.58403819e+06 -1.00242938e+06 4.12991678e+04 ! x y z +2.21630062e+02 2.09275016e+03 1.75085392e+01 ! vx vy vz +505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill +1.02097944e+04 !particle radius in m +-2.44297176e+05 1.26729604e+07 2.03607439e+04 ! x y z +-1.84680295e+03 -1.82730822e+01 -2.91252739e+00 ! vx vy vz +506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill +5.49842989e+03 !particle radius in m +-8.96004039e+06 4.09560494e+05 -3.60456167e+04 ! x y z +-1.02191608e+02 -2.20756190e+03 -2.24493109e+00 ! vx vy vz +507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill +1.27138008e+04 !particle radius in m +-6.81541514e+06 -7.94063477e+06 -7.18748605e+04 ! x y z +1.54316120e+03 -1.31237150e+03 -1.15079245e+01 ! vx vy vz +508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill +8.78402686e+03 !particle radius in m +-9.08822325e+06 1.13954530e+07 -2.08875223e+04 ! x y z +-1.34302030e+03 -1.07504367e+03 -1.24686872e+01 ! vx vy vz +509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill +1.15175985e+04 !particle radius in m +-1.06157252e+07 1.57779393e+06 -6.65867787e+03 ! x y z +-2.87369206e+02 -1.99101003e+03 7.20690801e-01 ! vx vy vz +510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill +9.04716508e+03 !particle radius in m +7.17906044e+06 8.87425909e+06 -3.25181785e+04 ! x y z +-1.49406264e+03 1.20724214e+03 6.21002078e+00 ! vx vy vz +511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill +5.48112664e+03 !particle radius in m +-1.21003843e+06 -1.29422942e+07 -7.40239219e+04 ! x y z +1.81002624e+03 -1.79331834e+02 1.25932266e+01 ! vx vy vz +512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill +8.48753771e+03 !particle radius in m +-6.99463389e+06 -6.47905900e+06 9.60433255e+04 ! x y z +1.43760545e+03 -1.52260892e+03 -8.56316812e+00 ! vx vy vz +513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill +1.26571613e+04 !particle radius in m +6.31211278e+06 1.15740500e+07 2.93359231e+04 ! x y z +-1.56035950e+03 8.72608400e+02 2.02164700e+01 ! vx vy vz +514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill +4.22293872e+03 !particle radius in m +-1.14209193e+07 -1.19005899e+07 4.72825184e+04 ! x y z +1.16096797e+03 -1.10215252e+03 -1.73463799e+00 ! vx vy vz +515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill +9.19239764e+03 !particle radius in m +-1.91436849e+06 -8.75500915e+06 -5.63789360e+04 ! x y z +2.13513923e+03 -5.15505302e+02 8.14672797e+00 ! vx vy vz +516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill +6.39431287e+03 !particle radius in m +-7.76033426e+06 5.83903373e+06 1.45914082e+04 ! x y z +-1.24659220e+03 -1.65602207e+03 2.58792993e+00 ! vx vy vz +517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill +7.06047440e+03 !particle radius in m +6.04175168e+06 -1.13300829e+07 -2.21833258e+04 ! x y z +1.60126812e+03 8.64183750e+02 2.07897641e+00 ! vx vy vz +518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill +5.98026121e+03 !particle radius in m +7.56777600e+06 -5.38164192e+06 4.82260182e+04 ! x y z +1.23384783e+03 1.75131178e+03 1.39050720e+00 ! vx vy vz +519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill +5.89215810e+03 !particle radius in m +2.24109885e+06 -1.09795024e+07 -3.90720695e+03 ! x y z +1.91472479e+03 3.97948512e+02 1.96668988e+01 ! vx vy vz +520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill +1.18470246e+04 !particle radius in m +-1.60346956e+06 8.94982575e+06 -4.55491048e+04 ! x y z +-2.13610180e+03 -3.93853083e+02 6.45999458e+00 ! vx vy vz +521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill +1.07963370e+04 !particle radius in m +1.33407792e+07 -9.60353157e+06 -4.36975900e+04 ! x y z +9.42437149e+02 1.32281900e+03 -2.80741977e+00 ! vx vy vz +522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill +9.49477387e+03 !particle radius in m +5.43228414e+06 -7.41736135e+06 -2.66812088e+04 ! x y z +1.72722717e+03 1.31007512e+03 -7.34912008e+00 ! vx vy vz +523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill +3.79681841e+03 !particle radius in m +1.54005009e+06 1.28774959e+07 5.16246471e+04 ! x y z +-1.81371335e+03 2.12824688e+02 -9.20646953e-01 ! vx vy vz +524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill +1.11863238e+04 !particle radius in m +1.67931493e+06 1.31306619e+07 -2.70431013e+03 ! x y z +-1.76941688e+03 1.91845464e+02 5.05532665e+00 ! vx vy vz +525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill +1.05995433e+04 !particle radius in m +-1.32214307e+07 4.59727104e+06 -3.96485583e+04 ! x y z +-5.86090985e+02 -1.64093893e+03 -8.60481037e+00 ! vx vy vz +526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill +7.92726804e+03 !particle radius in m +-1.18927692e+07 -9.15865717e+05 -4.39369369e+04 ! x y z +1.82263225e+02 -1.88987287e+03 9.03561914e+00 ! vx vy vz +527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill +1.02364827e+04 !particle radius in m +-9.62033211e+06 8.56620033e+06 -2.00428889e+04 ! x y z +-1.21101074e+03 -1.36584173e+03 3.97879960e+00 ! vx vy vz +528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill +4.20273952e+03 !particle radius in m +9.89301751e+06 1.68175777e+07 -1.13308431e+05 ! x y z +-1.27501202e+03 7.61202373e+02 3.42051019e+00 ! vx vy vz +529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill +5.97559270e+03 !particle radius in m +5.37606728e+06 1.01483084e+07 -2.42832542e+04 ! x y z +-1.69155568e+03 9.33567602e+02 8.03539638e+00 ! vx vy vz +530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill +8.92979367e+03 !particle radius in m +1.14205826e+06 -8.87516936e+06 2.93174632e+04 ! x y z +2.16370189e+03 2.71790476e+02 -6.44072560e-04 ! vx vy vz +531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill +1.28055687e+04 !particle radius in m +1.43504952e+07 -1.05282252e+07 1.08842756e+04 ! x y z +8.96217918e+02 1.25350160e+03 -1.10361539e+01 ! vx vy vz +532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill +4.45062026e+03 !particle radius in m +-1.23862731e+07 -4.56645846e+06 6.19786286e+04 ! x y z +6.35830463e+02 -1.69613094e+03 6.10556298e-01 ! vx vy vz +533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill +1.10810345e+04 !particle radius in m +-9.06340320e+06 2.47989940e+06 5.29566882e+03 ! x y z +-6.09939224e+02 -2.04449772e+03 -8.32106226e+00 ! vx vy vz +534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill +1.24194426e+04 !particle radius in m +4.49134220e+06 -8.88004412e+06 6.17280318e+04 ! x y z +1.84761935e+03 9.49659970e+02 -1.91054187e+01 ! vx vy vz +535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill +7.49678363e+03 !particle radius in m +-8.88023220e+06 1.94417194e+06 -7.43854396e+03 ! x y z +-4.59587086e+02 -2.12797895e+03 1.62261707e+01 ! vx vy vz +536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill +1.18105148e+04 !particle radius in m +-6.23830061e+06 1.01163011e+07 8.19444776e+04 ! x y z +-1.60793851e+03 -1.00726817e+03 7.79908055e+00 ! vx vy vz +537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill +8.96106511e+03 !particle radius in m +1.33415164e+07 1.42367071e+07 9.29022826e+04 ! x y z +-1.09778034e+03 9.88101471e+02 9.22779390e+00 ! vx vy vz +538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill +6.30269894e+03 !particle radius in m +6.77890172e+06 -6.80689243e+06 -5.36873514e+04 ! x y z +1.47893463e+03 1.49784044e+03 1.58118524e+01 ! vx vy vz +539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill +1.02501735e+04 !particle radius in m +8.06725141e+06 -3.62262126e+06 -3.66507377e+04 ! x y z +8.67780530e+02 2.02709545e+03 1.28504792e+01 ! vx vy vz +540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill +1.06080961e+04 !particle radius in m +-1.02130792e+07 -1.98178118e+06 -1.09127341e+03 ! x y z +3.87020460e+02 -1.99318523e+03 -1.70944891e+01 ! vx vy vz +541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill +8.45856229e+03 !particle radius in m +-2.71890650e+06 -1.56230331e+07 9.11371828e+04 ! x y z +1.62029295e+03 -2.93846410e+02 -2.71565573e+00 ! vx vy vz +542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill +7.70013366e+03 !particle radius in m +4.47583128e+06 -1.06559052e+07 4.54196507e+04 ! x y z +1.76732893e+03 7.56289214e+02 -9.51753793e+00 ! vx vy vz +543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill +5.32063382e+03 !particle radius in m +-2.17375021e+06 -1.18877181e+07 -8.95951928e+04 ! x y z +1.85620755e+03 -3.25350325e+02 -7.40810642e+00 ! vx vy vz +544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill +7.86933046e+03 !particle radius in m +-1.01016093e+07 1.38884267e+06 9.80998719e+04 ! x y z +-2.82476358e+02 -2.04196683e+03 -1.00530560e+01 ! vx vy vz +545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill +1.24937177e+04 !particle radius in m +1.39598489e+07 -8.85744354e+06 2.03839682e+05 ! x y z +8.43657382e+02 1.36375070e+03 -3.55497456e+00 ! vx vy vz +546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill +5.56213757e+03 !particle radius in m +-1.43847009e+07 -4.33966476e+06 1.92096630e+04 ! x y z +4.81764822e+02 -1.62800637e+03 4.41101277e-01 ! vx vy vz +547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill +6.85570252e+03 !particle radius in m +1.40885725e+06 -1.39890777e+07 -6.21160422e+04 ! x y z +1.73532137e+03 1.58882387e+02 -4.19228752e+00 ! vx vy vz +548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill +6.45517829e+03 !particle radius in m +-6.30237830e+06 -7.45548810e+06 1.19792411e+04 ! x y z +1.58465709e+03 -1.33550387e+03 2.64893502e+01 ! vx vy vz +549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill +6.79823242e+03 !particle radius in m +1.78118521e+07 -1.09119093e+07 2.70244768e+04 ! x y z +7.41554271e+02 1.21779793e+03 9.15237602e+00 ! vx vy vz +550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill +9.50257381e+03 !particle radius in m +-2.89743663e+06 8.86128251e+06 -6.58120111e+04 ! x y z +-2.02979747e+03 -6.82073189e+02 -2.28176534e+01 ! vx vy vz +551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill +8.69947568e+03 !particle radius in m +8.83702217e+06 -2.90376077e+06 7.27788768e+04 ! x y z +6.85075467e+02 2.02703778e+03 7.97245500e+00 ! vx vy vz +552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill +7.86151243e+03 !particle radius in m +-1.21931564e+07 4.86524046e+06 -2.08324531e+04 ! x y z +-6.82318390e+02 -1.65856508e+03 -6.74090912e+00 ! vx vy vz +553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill +5.46688367e+03 !particle radius in m +-1.05680658e+07 -7.72400524e+05 -4.19566380e+03 ! x y z +1.61680595e+02 -2.00721546e+03 9.15915016e+00 ! vx vy vz +554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill +8.97559000e+03 !particle radius in m +4.91698619e+06 9.43759555e+06 8.61311530e+04 ! x y z +-1.79363820e+03 8.94192612e+02 3.28487627e+00 ! vx vy vz +555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill +9.89587154e+03 !particle radius in m +5.50899609e+06 1.48985993e+07 2.75915152e+04 ! x y z +-1.53604421e+03 5.70661142e+02 -8.63285634e+00 ! vx vy vz +556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill +1.29624899e+04 !particle radius in m +3.19801044e+06 -1.13772802e+07 7.80535196e+04 ! x y z +1.85228574e+03 4.55890151e+02 8.36932683e+00 ! vx vy vz +557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill +1.07068623e+04 !particle radius in m +-2.15573271e+06 -1.00993578e+07 2.69595119e+04 ! x y z +1.97403251e+03 -4.33189618e+02 1.83241184e+01 ! vx vy vz +558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill +6.01449701e+03 !particle radius in m +-9.90249159e+06 1.50849384e+06 7.56908853e+04 ! x y z +-3.34511747e+02 -2.03461346e+03 1.09006280e+01 ! vx vy vz +559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill +8.41928754e+03 !particle radius in m +-8.12226421e+06 -4.86915559e+06 1.48785398e+04 ! x y z +1.08601808e+03 -1.81594814e+03 -1.05069846e+01 ! vx vy vz +560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill +4.93662404e+03 !particle radius in m +1.04182881e+07 7.90957341e+06 -2.69933355e+04 ! x y z +-1.12996754e+03 1.41480511e+03 -6.50919824e+00 ! vx vy vz +561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill +8.64688797e+03 !particle radius in m +-8.48425655e+06 7.30611767e+06 -2.97358583e+04 ! x y z +-1.27983291e+03 -1.45019242e+03 -1.41707765e+01 ! vx vy vz +562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill +1.16198415e+04 !particle radius in m +-8.65184164e+06 6.24864145e+06 -3.92875079e+04 ! x y z +-1.16032314e+03 -1.63406999e+03 1.01313500e+01 ! vx vy vz +563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill +9.93353704e+03 !particle radius in m +8.34883939e+06 5.63589901e+06 -3.07212153e+04 ! x y z +-1.13165810e+03 1.72056724e+03 2.87270046e+01 ! vx vy vz +564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill +7.43690165e+03 !particle radius in m +9.21633433e+06 -1.93093666e+07 -2.54318164e+04 ! x y z +1.26419057e+03 6.27050448e+02 3.30035390e+00 ! vx vy vz +565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill +7.68112210e+03 !particle radius in m +3.80685718e+06 -7.94695887e+06 -6.90041243e+04 ! x y z +2.01235665e+03 9.27723235e+02 1.23111874e+01 ! vx vy vz +566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill +1.18083853e+04 !particle radius in m +-1.32805505e+07 -9.89987589e+06 1.89561964e+05 ! x y z +9.51950860e+02 -1.30762258e+03 -3.09155476e+00 ! vx vy vz +567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill +5.94515785e+03 !particle radius in m +7.49508147e+05 9.39060182e+06 -2.98793685e+03 ! x y z +-2.12842500e+03 1.60409656e+02 -2.35936034e+00 ! vx vy vz +568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill +9.18211562e+03 !particle radius in m +1.66945874e+06 -9.11271704e+06 -1.05228493e+04 ! x y z +2.11017159e+03 4.07672310e+02 4.86502364e+00 ! vx vy vz +569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill +5.50583603e+03 !particle radius in m +-4.36738498e+06 -8.73103534e+06 3.44651531e+03 ! x y z +1.86828307e+03 -9.77585967e+02 3.81224965e+00 ! vx vy vz +570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill +4.08758743e+03 !particle radius in m +-1.94040314e+07 1.29480928e+07 -6.30516410e+04 ! x y z +-7.60734575e+02 -1.12192654e+03 2.15504297e+00 ! vx vy vz +571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill +1.25006754e+04 !particle radius in m +-2.30041587e+06 -9.09389672e+06 2.95714152e+04 ! x y z +2.09036388e+03 -5.21147635e+02 -8.12618749e+00 ! vx vy vz +572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill +6.56718935e+03 !particle radius in m +-8.45167174e+06 3.53866282e+06 8.15293748e+03 ! x y z +-8.17977533e+02 -1.97338441e+03 3.10707851e+01 ! vx vy vz +573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill +1.08461254e+04 !particle radius in m +-1.10837839e+05 -1.22760495e+07 9.98243029e+04 ! x y z +1.86849744e+03 1.94461008e+01 1.19094336e+01 ! vx vy vz +574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill +1.24276204e+04 !particle radius in m +-2.16572849e+06 -1.29271292e+07 8.07671116e+04 ! x y z +1.79349978e+03 -2.38674951e+02 -1.98965270e+00 ! vx vy vz +575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill +1.29170951e+04 !particle radius in m +-2.12394299e+06 8.55999084e+06 1.53741130e+04 ! x y z +-2.16066071e+03 -5.04790442e+02 1.96131475e+01 ! vx vy vz +576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill +8.85954838e+03 !particle radius in m +1.01810115e+07 -3.37487969e+05 -2.68884911e+04 ! x y z +8.19073631e+01 2.05446062e+03 -7.35333556e+00 ! vx vy vz +577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill +9.25127176e+03 !particle radius in m +-4.23808016e+06 1.06041798e+07 1.34318994e+05 ! x y z +-1.79220969e+03 -7.00369186e+02 1.28815476e+00 ! vx vy vz +578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill +5.87236346e+03 !particle radius in m +-7.46862356e+06 5.99931350e+06 -2.30141523e+03 ! x y z +-1.36280521e+03 -1.60905358e+03 6.63931385e+00 ! vx vy vz +579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill +5.05714772e+03 !particle radius in m +-1.11448733e+07 5.00947275e+06 -4.68801561e+04 ! x y z +-7.74415285e+02 -1.70766691e+03 -3.61919201e+00 ! vx vy vz +580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill +6.10352459e+03 !particle radius in m +-3.19024158e+06 9.81483389e+06 5.84486975e+04 ! x y z +-1.93912156e+03 -6.23690422e+02 1.23117054e+01 ! vx vy vz +581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill +1.16189063e+04 !particle radius in m +-2.24603747e+07 6.26030145e+06 -3.01506892e+04 ! x y z +-3.65393394e+02 -1.30811994e+03 1.11405519e+01 ! vx vy vz +582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill +1.05019921e+04 !particle radius in m +-1.12701774e+07 -7.80948644e+06 -6.84666678e+04 ! x y z +9.99713905e+02 -1.47048211e+03 2.44750306e+01 ! vx vy vz +583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill +6.56830775e+03 !particle radius in m +-1.36712830e+06 9.67813820e+06 -6.74480903e+04 ! x y z +-2.06604712e+03 -2.98384524e+02 -5.50167062e+00 ! vx vy vz +584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill +1.19207925e+04 !particle radius in m +7.73867408e+06 1.33759604e+07 3.56063208e+04 ! x y z +-1.44506269e+03 8.28074701e+02 1.84054191e+00 ! vx vy vz +585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill +8.49992876e+03 !particle radius in m +-7.77453358e+06 -5.02677399e+06 3.78389790e+04 ! x y z +1.16536090e+03 -1.82463232e+03 -7.04505898e+00 ! vx vy vz +586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill +7.38049260e+03 !particle radius in m +7.38262528e+06 7.34984552e+06 -2.24885801e+04 ! x y z +-1.42099662e+03 1.43499436e+03 1.07378124e+01 ! vx vy vz +587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill +1.08707623e+04 !particle radius in m +-1.19920742e+07 -2.80217215e+06 -5.59313271e+04 ! x y z +4.17941960e+02 -1.81181182e+03 1.45497492e+01 ! vx vy vz +588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill +6.01682391e+03 !particle radius in m +-9.55988426e+06 -7.31862699e+06 -2.64957060e+04 ! x y z +1.16610080e+03 -1.48362062e+03 -6.94255903e+00 ! vx vy vz +589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill +5.36421948e+03 !particle radius in m +1.02276231e+07 -1.62862349e+07 -9.70147988e+04 ! x y z +1.26937242e+03 7.76347306e+02 4.03225256e+00 ! vx vy vz +590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill +5.71926483e+03 !particle radius in m +-5.16420660e+06 -7.78596130e+06 4.36962776e+04 ! x y z +1.78489031e+03 -1.16625555e+03 -2.90708635e+00 ! vx vy vz +591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill +8.90706847e+03 !particle radius in m +-7.45989489e+06 7.86823113e+06 2.30718801e+04 ! x y z +-1.45305114e+03 -1.35662728e+03 1.14450554e+01 ! vx vy vz +592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill +1.14097740e+04 !particle radius in m +-7.21533013e+06 1.04550999e+07 5.75058243e+04 ! x y z +-1.49719620e+03 -1.06522065e+03 9.45819576e+00 ! vx vy vz +593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill +6.87676601e+03 !particle radius in m +6.25358173e+06 -8.48267668e+06 1.86642486e+04 ! x y z +1.59879201e+03 1.18862345e+03 -8.19507037e+00 ! vx vy vz +594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill +5.09063352e+03 !particle radius in m +-7.19321718e+06 -9.25718484e+06 1.26289010e+05 ! x y z +1.51012765e+03 -1.19137905e+03 -2.08075301e+01 ! vx vy vz +595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill +1.15343262e+04 !particle radius in m +9.77355514e+06 -3.06014377e+06 -1.91679922e+04 ! x y z +6.16624498e+02 1.95214553e+03 8.76866120e+00 ! vx vy vz +596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill +1.23165581e+04 !particle radius in m +9.85520768e+06 5.11039151e+06 2.67592384e+04 ! x y z +-9.36821649e+02 1.72971850e+03 9.58489099e+00 ! vx vy vz +597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill +1.01978639e+04 !particle radius in m +2.25000304e+07 2.97587658e+06 1.11207983e+05 ! x y z +-2.07470373e+02 1.34869606e+03 9.35124053e+00 ! vx vy vz +598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill +3.82259987e+03 !particle radius in m +9.72912370e+06 4.89272799e+06 4.72049901e+04 ! x y z +-8.59138858e+02 1.80693327e+03 1.59854908e+00 ! vx vy vz +599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill +1.29945434e+04 !particle radius in m +8.58212362e+06 2.09155798e+07 -8.24274997e+04 ! x y z +-1.27328941e+03 5.22122914e+02 2.97251817e+00 ! vx vy vz +600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill +5.07359536e+03 !particle radius in m +1.25914809e+07 -1.54064226e+06 -2.42309046e+04 ! x y z +2.41941616e+02 1.80407714e+03 -4.95095821e+00 ! vx vy vz +601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill +9.63008210e+03 !particle radius in m +-9.08598960e+06 5.01876430e+05 -5.56896042e+04 ! x y z +-1.04300102e+02 -2.16453693e+03 -3.87670808e+00 ! vx vy vz +602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill +4.74458362e+03 !particle radius in m +8.60778725e+06 4.52935761e+06 2.36936302e+04 ! x y z +-9.88264993e+02 1.85248346e+03 -3.75174148e+00 ! vx vy vz +603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill +4.82484424e+03 !particle radius in m +-8.51705861e+06 -3.00987013e+06 -6.10335808e+04 ! x y z +7.24297619e+02 -2.04790563e+03 -9.17975560e+00 ! vx vy vz +604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill +1.18981571e+04 !particle radius in m +-2.02348638e+07 -1.68672863e+06 -1.06729108e+05 ! x y z +1.27546784e+02 -1.44981480e+03 -2.13046543e+00 ! vx vy vz +605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill +4.79608176e+03 !particle radius in m +9.64800303e+06 8.51584872e+06 1.81571159e+04 ! x y z +-1.21061246e+03 1.38578498e+03 -1.32836513e+01 ! vx vy vz +606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill +4.90789744e+03 !particle radius in m +9.13818695e+06 -7.70452976e+06 2.69452399e+04 ! x y z +1.22812984e+03 1.45658692e+03 -6.73843496e+00 ! vx vy vz +607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill +9.14114041e+03 !particle radius in m +-1.09145671e+06 9.34973420e+06 5.18642883e+03 ! x y z +-2.11998407e+03 -2.42766889e+02 -9.89092405e-01 ! vx vy vz +608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill +8.28071491e+03 !particle radius in m +1.92010196e+07 1.03149047e+07 5.09869779e+04 ! x y z +-6.74338417e+02 1.23568504e+03 -2.88434162e+00 ! vx vy vz +609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill +8.15446281e+03 !particle radius in m +9.58051429e+06 -4.62318632e+05 6.35849025e+04 ! x y z +9.06335255e+01 2.09825906e+03 -7.35742647e+00 ! vx vy vz +610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill +1.09232871e+04 !particle radius in m +-1.30847754e+07 -1.20838009e+05 2.79768532e+04 ! x y z +3.82034000e+01 -1.80937386e+03 2.83422576e+00 ! vx vy vz +611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill +9.45383905e+03 !particle radius in m +-5.32926260e+06 1.08809045e+07 2.85451712e+04 ! x y z +-1.71920333e+03 -8.10618635e+02 -1.48118539e+01 ! vx vy vz +612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill +8.18339867e+03 !particle radius in m +1.07932378e+07 -2.40071483e+06 1.38428017e+04 ! x y z +4.19588126e+02 1.91854962e+03 1.35266288e+01 ! vx vy vz +613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill +9.16228488e+03 !particle radius in m +-6.86193518e+06 -9.36770363e+06 8.70674895e+04 ! x y z +1.55612467e+03 -1.13081122e+03 -1.76373653e+01 ! vx vy vz +614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill +7.36353909e+03 !particle radius in m +5.38169569e+06 -8.48107525e+06 -8.38982677e+03 ! x y z +1.73578647e+03 1.09143169e+03 9.09587252e-01 ! vx vy vz +615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill +8.14917269e+03 !particle radius in m +7.81574277e+06 4.66176951e+06 -2.35259182e+04 ! x y z +-1.08169242e+03 1.85148012e+03 8.40529015e+00 ! vx vy vz +616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill +1.22698790e+04 !particle radius in m +6.77476212e+06 6.99394577e+06 -8.71906448e+03 ! x y z +-1.48799386e+03 1.46547457e+03 -6.43335853e-01 ! vx vy vz +617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill +4.72508108e+03 !particle radius in m +-2.14192792e+06 -8.68107380e+06 -3.97684760e+04 ! x y z +2.13766548e+03 -4.81639501e+02 9.54765001e+00 ! vx vy vz +618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill +5.71050016e+03 !particle radius in m +9.36808365e+06 1.90217107e+06 2.99198598e+04 ! x y z +-4.46020774e+02 2.07539296e+03 -7.66300380e+00 ! vx vy vz +619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill +7.33684298e+03 !particle radius in m +7.27614119e+06 5.72024594e+06 2.49831464e+04 ! x y z +-1.34304944e+03 1.66116310e+03 2.15485187e+00 ! vx vy vz +620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill +4.75982712e+03 !particle radius in m +9.58921336e+06 -1.24222677e+07 -1.97472656e+05 ! x y z +1.32022081e+03 9.87424842e+02 4.32249357e+00 ! vx vy vz +621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill +1.08873520e+04 !particle radius in m +-7.88989019e+06 -1.13885470e+07 -2.56937402e+04 ! x y z +1.46586529e+03 -9.71985942e+02 -3.51396551e+00 ! vx vy vz +622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill +3.99854533e+03 !particle radius in m +3.87292376e+06 9.21006941e+06 -6.39624708e+04 ! x y z +-1.89793804e+03 8.09142969e+02 -6.59781953e+00 ! vx vy vz +623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill +5.83040726e+03 !particle radius in m +7.50695786e+06 -4.65362052e+06 -7.10126403e+03 ! x y z +1.18139098e+03 1.86471888e+03 -3.95167658e+00 ! vx vy vz +624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill +4.48202152e+03 !particle radius in m +-1.39144844e+07 5.81363011e+06 3.85998049e+04 ! x y z +-6.70071502e+02 -1.54974548e+03 4.74922131e+00 ! vx vy vz +625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill +1.21311502e+04 !particle radius in m +9.87837438e+06 2.55551323e+06 -1.36596041e+03 ! x y z +-4.90308025e+02 1.98176510e+03 -1.01037674e+01 ! vx vy vz +626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill +9.09180370e+03 !particle radius in m +1.45341700e+07 -4.27619608e+06 5.93941868e+04 ! x y z +4.77328962e+02 1.60335894e+03 -4.97370028e+00 ! vx vy vz +627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill +1.16574183e+04 !particle radius in m +2.05268573e+06 -1.13741606e+07 4.03903250e+04 ! x y z +1.88573928e+03 3.30474062e+02 -1.50298053e+01 ! vx vy vz +628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill +7.34881070e+03 !particle radius in m +-1.02805752e+07 -3.59154998e+06 7.79568952e+04 ! x y z +6.27919253e+02 -1.86780226e+03 9.15877947e+00 ! vx vy vz +629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill +9.64045416e+03 !particle radius in m +1.00209373e+07 1.06957570e+06 -9.24601092e+04 ! x y z +-1.95870916e+02 2.03366838e+03 -1.10087708e-01 ! vx vy vz +630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill +3.97219150e+03 !particle radius in m +-1.39517485e+07 8.21883388e+06 7.67623281e+03 ! x y z +-8.12327248e+02 -1.40338294e+03 4.18222867e+00 ! vx vy vz +631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill +6.71584845e+03 !particle radius in m +1.02605370e+07 -6.40538450e+06 2.46021664e+04 ! x y z +9.77968382e+02 1.60990669e+03 -4.31601474e+00 ! vx vy vz +632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill +8.75727541e+03 !particle radius in m +1.06053206e+07 3.44385915e+06 5.77152912e+04 ! x y z +-5.52774107e+02 1.87621696e+03 -1.29609706e+01 ! vx vy vz +633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill +5.98053661e+03 !particle radius in m +-9.64301945e+06 6.86746863e+06 -1.42533659e+05 ! x y z +-1.09942559e+03 -1.55528445e+03 -9.72595405e+00 ! vx vy vz +634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill +1.29126696e+04 !particle radius in m +1.05754125e+06 -1.47420174e+07 -1.54880877e+04 ! x y z +1.69143054e+03 1.16386287e+02 -1.26829716e+01 ! vx vy vz +635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill +5.04640834e+03 !particle radius in m +-3.03537890e+06 9.53552265e+06 9.73685659e+03 ! x y z +-1.96823062e+03 -6.23463481e+02 -1.63952204e+01 ! vx vy vz +636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill +4.60035801e+03 !particle radius in m +-9.98694456e+06 -1.23492362e+06 -1.80480653e+04 ! x y z +2.38207036e+02 -2.05532674e+03 1.79734911e+01 ! vx vy vz +637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill +1.19900755e+04 !particle radius in m +-3.74835489e+06 9.22336598e+06 -1.11560816e+05 ! x y z +-1.91843216e+03 -7.98271594e+02 2.02049490e+01 ! vx vy vz +638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill +1.24780025e+04 !particle radius in m +-6.68794780e+06 -7.54430362e+06 8.73782978e+03 ! x y z +1.55324620e+03 -1.34364314e+03 -6.31744671e+00 ! vx vy vz +639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill +1.25403278e+04 !particle radius in m +-1.03958383e+07 8.06724680e+05 2.41594570e+04 ! x y z +-1.55899964e+02 -2.01914147e+03 9.33842265e-01 ! vx vy vz +640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill +4.12066331e+03 !particle radius in m +9.33960040e+06 5.20047646e+06 3.07184995e+03 ! x y z +-9.59952400e+02 1.75350496e+03 -9.51510094e+00 ! vx vy vz +641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill +1.14051155e+04 !particle radius in m +-4.55852771e+05 1.12982302e+07 1.97139798e+04 ! x y z +-1.93821973e+03 -6.36299001e+01 1.52707202e+00 ! vx vy vz +642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill +9.00330067e+03 !particle radius in m +-9.39243710e+06 -4.13852649e+05 -1.20016794e+05 ! x y z +7.29189904e+01 -2.15146169e+03 7.46416116e+00 ! vx vy vz +643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill +6.75031451e+03 !particle radius in m +1.55420118e+07 -1.56324574e+07 1.17450688e+05 ! x y z +9.80482478e+02 9.89380982e+02 -2.43164132e+00 ! vx vy vz +644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill +1.14409114e+04 !particle radius in m +1.02533186e+07 8.01360601e+05 -1.49055635e+04 ! x y z +-1.71963144e+02 2.04211236e+03 -5.41798226e+00 ! vx vy vz +645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill +7.63377033e+03 !particle radius in m +1.42914142e+06 9.84981684e+06 2.93564167e+04 ! x y z +-2.05268655e+03 3.05405042e+02 3.66863343e+00 ! vx vy vz +646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill +7.37523479e+03 !particle radius in m +8.46677243e+06 -3.56936745e+06 -1.01092855e+05 ! x y z +8.46329328e+02 1.98233396e+03 -1.20626919e+01 ! vx vy vz +647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill +8.75022177e+03 !particle radius in m +-5.51541812e+06 -9.33328186e+06 -7.53076104e+04 ! x y z +1.69850130e+03 -1.02466912e+03 -1.16108091e+01 ! vx vy vz +648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill +9.93898678e+03 !particle radius in m +7.91261034e+06 6.82977302e+06 4.78744592e+04 ! x y z +-1.31937664e+03 1.53446068e+03 9.71586209e+00 ! vx vy vz +649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill +1.06583427e+04 !particle radius in m +9.51054870e+06 7.22147752e+06 -1.16155344e+05 ! x y z +-1.13247642e+03 1.51634128e+03 7.95619932e+00 ! vx vy vz +650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill +7.85060242e+03 !particle radius in m +7.56958002e+06 8.18907830e+06 2.90934189e+04 ! x y z +-1.41713137e+03 1.33985142e+03 -1.12168107e+00 ! vx vy vz +651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill +6.15974600e+03 !particle radius in m +-6.13341164e+06 7.98589804e+06 -2.27618169e+04 ! x y z +-1.62649363e+03 -1.24985675e+03 2.06508812e+00 ! vx vy vz +652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill +5.24703584e+03 !particle radius in m +6.47073981e+06 -9.41271204e+06 -2.22310124e+04 ! x y z +1.59958848e+03 1.08093374e+03 -3.51035905e+00 ! vx vy vz +653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill +5.28953293e+03 !particle radius in m +7.87952728e+06 -7.74021482e+06 2.62244560e+04 ! x y z +1.39190993e+03 1.39669667e+03 7.19439783e+00 ! vx vy vz +654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill +8.72569980e+03 !particle radius in m +-7.78608816e+06 6.02791398e+06 3.71436614e+04 ! x y z +-1.25856718e+03 -1.69668386e+03 -1.29605210e+01 ! vx vy vz +655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill +5.53985567e+03 !particle radius in m +-6.32210122e+06 -1.01415155e+07 4.88655736e+04 ! x y z +1.63018229e+03 -9.50923090e+02 9.77870783e+00 ! vx vy vz +656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill +4.55779408e+03 !particle radius in m +-6.23576444e+06 6.51367852e+06 -3.41989237e+04 ! x y z +-1.58628947e+03 -1.49318367e+03 1.23405417e+01 ! vx vy vz +657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill +1.10244216e+04 !particle radius in m +-1.35500086e+07 -2.26040006e+06 1.32350391e+05 ! x y z +2.64719358e+02 -1.74789986e+03 -5.31947479e+00 ! vx vy vz +658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill +1.22251778e+04 !particle radius in m +5.77929553e+06 -1.19535178e+07 -7.82666736e+04 ! x y z +1.59619208e+03 7.97360418e+02 -1.29583152e+01 ! vx vy vz +659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill +4.89435521e+03 !particle radius in m +-8.33458476e+06 1.42735479e+07 -3.35627654e+04 ! x y z +-1.40045628e+03 -8.13740040e+02 1.03574303e+01 ! vx vy vz +660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill +1.12836524e+04 !particle radius in m +-1.47864055e+06 -9.12632464e+06 1.03294618e+05 ! x y z +2.12785802e+03 -3.89541043e+02 1.51865579e+01 ! vx vy vz +661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill +1.14482340e+04 !particle radius in m +5.45407329e+06 9.28416293e+06 -1.51509372e+04 ! x y z +-1.71334604e+03 1.02205340e+03 -7.65932607e+00 ! vx vy vz +662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill +1.15163962e+04 !particle radius in m +-1.39013045e+07 6.50213463e+06 -1.39734670e+05 ! x y z +-7.22290359e+02 -1.50945570e+03 -8.90498950e+00 ! vx vy vz +663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill +1.27900613e+04 !particle radius in m +-9.89641528e+06 -1.11416999e+07 3.81985165e+04 ! x y z +1.26154170e+03 -1.13757778e+03 1.92574173e+00 ! vx vy vz +664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill +3.74540728e+03 !particle radius in m +-3.16815028e+06 1.11329600e+07 6.51690516e+03 ! x y z +-1.85087911e+03 -4.88202334e+02 -1.01794725e+01 ! vx vy vz +665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill +3.72235677e+03 !particle radius in m +1.00049376e+07 4.66630545e+06 -9.44413909e+04 ! x y z +-7.94024833e+02 1.77983677e+03 -9.21818189e+00 ! vx vy vz +666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill +3.81573804e+03 !particle radius in m +-1.63493537e+07 6.57692006e+06 6.46813001e+04 ! x y z +-5.79515939e+02 -1.44477767e+03 3.27352582e+00 ! vx vy vz +667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill +7.37167696e+03 !particle radius in m +1.18807783e+07 1.34251951e+07 1.86898768e+05 ! x y z +-1.17463975e+03 1.00294171e+03 -4.22564791e+00 ! vx vy vz +668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill +9.01289765e+03 !particle radius in m +1.11171931e+07 2.90403753e+06 -9.01017188e+04 ! x y z +-4.88090453e+02 1.87530119e+03 -9.57682232e-01 ! vx vy vz +669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill +4.52652522e+03 !particle radius in m +9.73106602e+06 3.61005057e+04 5.94605185e+04 ! x y z +-7.45471281e+01 2.10678631e+03 -2.14191842e+00 ! vx vy vz +670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill +1.16673660e+04 !particle radius in m +-2.74202504e+06 -1.01140650e+07 -7.39918641e+04 ! x y z +1.96547738e+03 -5.21963358e+02 1.77687487e+01 ! vx vy vz +671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill +1.20422311e+04 !particle radius in m +8.00394990e+06 5.03858815e+06 -4.02327990e+04 ! x y z +-1.10710067e+03 1.81715883e+03 -6.62734475e+00 ! vx vy vz +672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill +4.82177442e+03 !particle radius in m +5.34986811e+06 9.22950468e+06 4.90186732e+04 ! x y z +-1.74088881e+03 9.82932786e+02 -1.91216218e+01 ! vx vy vz +673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill +1.08639605e+04 !particle radius in m +-8.64795237e+06 5.41831010e+06 1.55017414e+04 ! x y z +-1.07745389e+03 -1.74276883e+03 -5.97570489e-01 ! vx vy vz +674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill +1.14293347e+04 !particle radius in m +-1.11663224e+07 -4.36971602e+05 9.93397534e+04 ! x y z +6.60642469e+01 -1.97245979e+03 1.63719711e+01 ! vx vy vz +675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill +1.23198504e+04 !particle radius in m +-8.94315217e+06 -6.59985744e+06 1.41574538e+04 ! x y z +1.12488382e+03 -1.60471763e+03 9.42200485e+00 ! vx vy vz +676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill +1.01033638e+04 !particle radius in m +1.92430034e+07 -3.89888242e+06 -5.57809830e+04 ! x y z +2.98708757e+02 1.44758503e+03 -4.72165311e+00 ! vx vy vz +677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill +1.27245467e+04 !particle radius in m +8.73120403e+06 5.22305398e+06 7.59670115e+04 ! x y z +-1.07719201e+03 1.76393373e+03 -6.61792923e+00 ! vx vy vz +678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill +1.26946618e+04 !particle radius in m +1.09108942e+07 -4.65832942e+06 -4.02366251e+03 ! x y z +7.47562985e+02 1.75464824e+03 8.16488922e+00 ! vx vy vz +679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill +8.38895796e+03 !particle radius in m +5.82034293e+06 1.07112512e+07 7.55785697e+03 ! x y z +-1.63892001e+03 9.00112405e+02 -1.94858021e+00 ! vx vy vz +680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill +9.71711751e+03 !particle radius in m +6.68559809e+06 9.37557356e+06 -1.92332279e+03 ! x y z +-1.58295492e+03 1.11037420e+03 1.83307218e+00 ! vx vy vz +681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill +1.06624826e+04 !particle radius in m +-3.28943607e+06 9.87837716e+06 6.05814516e+04 ! x y z +-1.92629942e+03 -6.22180329e+02 4.50728559e+00 ! vx vy vz +682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill +9.27733226e+03 !particle radius in m +-6.01449513e+06 1.14226051e+07 3.09092202e+04 ! x y z +-1.62789379e+03 -8.28450934e+02 6.54251208e+00 ! vx vy vz +683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill +1.13339954e+04 !particle radius in m +1.46501935e+07 3.52597046e+06 -1.53479325e+05 ! x y z +-3.94464542e+02 1.63555361e+03 -6.95224479e-01 ! vx vy vz +684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill +1.29748793e+04 !particle radius in m +7.30587232e+06 5.82342150e+06 -1.66262680e+04 ! x y z +-1.33758368e+03 1.67374780e+03 1.03808342e+01 ! vx vy vz +685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill +5.72852320e+03 !particle radius in m +-8.28665070e+06 -1.08630233e+07 1.59771667e+04 ! x y z +1.42279548e+03 -1.06221837e+03 -1.00287654e+01 ! vx vy vz +686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill +1.20552459e+04 !particle radius in m +-8.85367709e+06 1.92824073e+06 -5.71899980e+04 ! x y z +-4.56904898e+02 -2.11490226e+03 1.50573635e+00 ! vx vy vz +687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill +1.23258503e+04 !particle radius in m +-6.98192323e+06 -1.72685946e+07 7.38110386e+04 ! x y z +1.40350544e+03 -5.84590529e+02 -9.01131651e+00 ! vx vy vz +688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill +6.14344779e+03 !particle radius in m +1.43686835e+07 2.23609646e+06 2.55670087e+04 ! x y z +-2.46269150e+02 1.69322706e+03 -3.07491540e+00 ! vx vy vz +689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill +7.50131728e+03 !particle radius in m +7.08335501e+06 1.12432588e+07 -7.04507229e+04 ! x y z +-1.52929946e+03 9.66536263e+02 -2.79918979e+00 ! vx vy vz +690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill +8.70300381e+03 !particle radius in m +-4.60069395e+06 1.05653500e+07 1.04296802e+05 ! x y z +-1.76684768e+03 -7.81938520e+02 -2.29915803e+00 ! vx vy vz +691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill +8.40614880e+03 !particle radius in m +8.19262513e+06 -3.58191579e+06 -3.30652024e+04 ! x y z +8.70670545e+02 2.01088754e+03 -5.27792880e-01 ! vx vy vz +692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill +1.23024549e+04 !particle radius in m +3.89494213e+06 9.08725205e+06 -2.39743102e+04 ! x y z +-1.90805368e+03 7.88330663e+02 -9.72060594e+00 ! vx vy vz +693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill +6.75337616e+03 !particle radius in m +2.21339346e+06 9.86538825e+06 -8.87149741e+04 ! x y z +-2.00534067e+03 4.38594263e+02 1.01837964e+01 ! vx vy vz +694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill +1.20886232e+04 !particle radius in m +4.10968486e+06 1.23907663e+07 5.33325146e+04 ! x y z +-1.71807002e+03 5.39202987e+02 -6.19076268e+00 ! vx vy vz +695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill +1.09493990e+04 !particle radius in m +1.04073429e+07 2.67129136e+06 9.54333931e+04 ! x y z +-5.09495924e+02 1.93427487e+03 8.54877840e+00 ! vx vy vz +696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill +3.97566200e+03 !particle radius in m +-4.09255175e+06 -9.53753075e+06 -7.50959611e+04 ! x y z +1.86269642e+03 -8.02231358e+02 -1.43161769e+00 ! vx vy vz +697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill +4.59855003e+03 !particle radius in m +4.36723976e+06 -9.66553779e+06 -1.64558916e+04 ! x y z +1.84776304e+03 7.98021641e+02 5.78355557e+00 ! vx vy vz +698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill +9.21904680e+03 !particle radius in m +8.53951718e+06 -2.54525107e+06 -7.04047773e+04 ! x y z +6.28921216e+02 2.09901050e+03 1.15726955e+01 ! vx vy vz +699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill +8.71525146e+03 !particle radius in m +7.32788955e+06 -5.94137181e+06 -9.04304047e+04 ! x y z +1.34115379e+03 1.65561581e+03 7.08036612e+00 ! vx vy vz +700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill +1.22524569e+04 !particle radius in m +6.71737923e+06 9.71600170e+06 5.06660922e+04 ! x y z +-1.56559808e+03 1.08107605e+03 -6.49532539e-03 ! vx vy vz +701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill +5.41816288e+03 !particle radius in m +-7.03605741e+06 6.85389332e+06 -2.57563829e+04 ! x y z +-1.44734013e+03 -1.50933987e+03 1.28526631e+01 ! vx vy vz +702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill +6.43059110e+03 !particle radius in m +1.83405474e+07 1.00792626e+07 -9.20229382e+04 ! x y z +-7.18799940e+02 1.23921438e+03 2.48945179e+00 ! vx vy vz +703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill +7.67198789e+03 !particle radius in m +5.23940562e+06 1.75022888e+07 -5.98430417e+04 ! x y z +-1.46565915e+03 4.46482377e+02 2.11785409e+01 ! vx vy vz +704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill +9.33516932e+03 !particle radius in m +1.19175118e+07 -1.16543017e+07 5.30530426e+04 ! x y z +1.10958275e+03 1.15270442e+03 5.72450113e+00 ! vx vy vz +705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill +7.83793078e+03 !particle radius in m +-8.96838687e+06 2.63897043e+06 -2.17897557e+04 ! x y z +-6.07622874e+02 -2.06310065e+03 -4.59651947e+00 ! vx vy vz +706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill +6.66863210e+03 !particle radius in m +-6.04898231e+06 -6.86358884e+06 5.57406610e+04 ! x y z +1.61956515e+03 -1.43598669e+03 -4.59300568e+00 ! vx vy vz +707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill +1.20949508e+04 !particle radius in m +7.90216623e+06 -1.09814809e+07 5.19189450e+04 ! x y z +1.45343692e+03 1.03872925e+03 -2.28298311e+00 ! vx vy vz +708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill +1.26037782e+04 !particle radius in m +9.57669296e+05 -1.30387879e+07 7.61951879e+04 ! x y z +1.80738232e+03 1.29379874e+02 -1.14266147e+01 ! vx vy vz +709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill +9.39937703e+03 !particle radius in m +-2.70230310e+06 8.62076168e+06 -2.22406079e+04 ! x y z +-2.07446913e+03 -6.54424485e+02 -1.11116533e+01 ! vx vy vz +710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill +9.83695076e+03 !particle radius in m +-3.80463073e+06 -1.65753622e+07 1.47762416e+04 ! x y z +1.54780534e+03 -3.56129540e+02 4.67798248e+00 ! vx vy vz +711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill +1.25677546e+04 !particle radius in m +1.97818140e+07 7.24503831e+06 4.34973562e+04 ! x y z +-5.06413028e+02 1.32512350e+03 5.73956860e+00 ! vx vy vz +712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill +4.63734443e+03 !particle radius in m +-2.79050068e+06 -1.34910639e+07 4.33089266e+04 ! x y z +1.72889764e+03 -3.49089932e+02 -1.94775120e+01 ! vx vy vz +713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill +1.05934634e+04 !particle radius in m +1.07844804e+07 1.29386712e+07 2.64893081e+04 ! x y z +-1.21296556e+03 1.03104861e+03 -8.93637679e+00 ! vx vy vz +714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill +7.74266422e+03 !particle radius in m +-1.47784670e+07 -2.60738447e+06 1.11630430e+05 ! x y z +3.23911460e+02 -1.65880207e+03 4.54571842e+00 ! vx vy vz +715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill +3.95912515e+03 !particle radius in m +5.07682372e+05 -1.30372405e+07 -1.85229557e+04 ! x y z +1.82615720e+03 7.82099311e+01 -4.18927265e+00 ! vx vy vz +716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill +7.09905909e+03 !particle radius in m +-1.18244362e+07 -4.31687046e+06 -7.18542331e+04 ! x y z +6.12658121e+02 -1.74672302e+03 1.21397025e-01 ! vx vy vz +717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill +4.26156427e+03 !particle radius in m +-3.54824820e+06 -8.30536307e+06 -8.90981624e+03 ! x y z +1.97998336e+03 -8.85057403e+02 -2.11344381e+01 ! vx vy vz +718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill +1.08792174e+04 !particle radius in m +1.62346436e+06 -8.92811589e+06 -3.60195557e+03 ! x y z +2.15086991e+03 3.98636159e+02 2.48432648e+01 ! vx vy vz +719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill +5.87800644e+03 !particle radius in m +-1.15733556e+07 -1.25115260e+07 1.46624511e+04 ! x y z +1.15579598e+03 -1.08828537e+03 -2.12261933e-01 ! vx vy vz +720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill +4.14296182e+03 !particle radius in m +-1.08417724e+07 1.69081263e+06 7.24119490e+04 ! x y z +-3.09034576e+02 -1.94519167e+03 -3.85658993e+00 ! vx vy vz +721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill +4.79422292e+03 !particle radius in m +3.49544878e+05 1.19517692e+07 2.11344945e+04 ! x y z +-1.87363529e+03 3.53402969e+01 5.71853498e+00 ! vx vy vz +722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill +9.96836855e+03 !particle radius in m +-6.32504194e+06 7.74988563e+06 -3.04663654e+04 ! x y z +-1.60640404e+03 -1.28494821e+03 3.03961828e+01 ! vx vy vz +723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill +8.46501102e+03 !particle radius in m +-1.24177769e+07 -1.38486640e+07 -1.01520582e+04 ! x y z +1.15690921e+03 -9.88251041e+02 4.69156127e+00 ! vx vy vz +724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill +1.21273232e+04 !particle radius in m +1.03771542e+07 -3.70291911e+06 1.08877147e+04 ! x y z +6.25781397e+02 1.86199758e+03 -8.89718339e+00 ! vx vy vz +725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill +5.14868362e+03 !particle radius in m +-4.66823976e+06 -8.26435407e+06 2.26583539e+04 ! x y z +1.84983887e+03 -1.05552707e+03 1.56706480e+01 ! vx vy vz +726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill +4.55784078e+03 !particle radius in m +4.62468583e+06 7.54223542e+06 -1.61944374e+04 ! x y z +-1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz +728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill +9.45460600e+03 !particle radius in m +-2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z +-1.35813181e+03 9.03958337e+00 -3.15567273e+00 ! vx vy vz +729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill +9.76786728e+03 !particle radius in m +-6.52967648e+06 8.82305239e+06 -1.26732573e+04 ! x y z +-1.57282686e+03 -1.17622288e+03 1.39580799e+00 ! vx vy vz +730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill +1.06030438e+04 !particle radius in m +1.77913234e+06 9.53045041e+06 3.10075017e+04 ! x y z +-2.05302630e+03 3.75004563e+02 1.58931971e+01 ! vx vy vz +731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill +1.25260587e+04 !particle radius in m +3.58717818e+06 9.36647195e+06 -1.97615013e+04 ! x y z +-1.96178925e+03 7.11373199e+02 -1.26706515e+01 ! vx vy vz +732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill +7.95288174e+03 !particle radius in m +-2.59234296e+06 -1.50157233e+07 4.00646737e+04 ! x y z +1.65438833e+03 -2.60173941e+02 1.23164306e+01 ! vx vy vz +733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill +7.17351953e+03 !particle radius in m +9.06239327e+06 9.91334627e+05 -4.75445475e+03 ! x y z +-2.74588769e+02 2.14560267e+03 -4.58665348e+00 ! vx vy vz +734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill +1.29999162e+04 !particle radius in m +-1.32275910e+06 1.11815578e+07 -3.52932928e+04 ! x y z +-1.92926562e+03 -2.26736828e+02 1.12692641e+01 ! vx vy vz +735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill +1.02371836e+04 !particle radius in m +-1.18507495e+07 5.08791326e+05 -4.16400253e+03 ! x y z +-1.21704217e+02 -1.88175671e+03 1.06233149e+00 ! vx vy vz +736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill +1.14563699e+04 !particle radius in m +9.66851157e+06 -1.73226908e+06 -1.69082214e+04 ! x y z +3.88627413e+02 2.04608590e+03 -8.98008156e-01 ! vx vy vz +737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill +8.65882148e+03 !particle radius in m +-2.00783480e+06 -9.30718645e+06 -7.65374580e+04 ! x y z +2.06366212e+03 -4.61769702e+02 1.50556810e+01 ! vx vy vz +738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill +1.29137852e+04 !particle radius in m +5.63016627e+05 1.37971202e+07 -5.96323274e+04 ! x y z +-1.75809500e+03 5.38503245e+01 5.31257797e-01 ! vx vy vz +739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill +1.24695778e+04 !particle radius in m +9.16922325e+06 -9.63000174e+05 -3.41255650e+02 ! x y z +2.26283177e+02 2.14046849e+03 -4.83048073e+00 ! vx vy vz +740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill +4.63464147e+03 !particle radius in m +-8.86805151e+06 1.17556708e+06 5.29953219e+04 ! x y z +-2.96347767e+02 -2.18707052e+03 -3.03941376e+00 ! vx vy vz +741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill +9.03459031e+03 !particle radius in m +9.02199722e+06 -3.39632005e+06 -7.08544393e+04 ! x y z +7.55874214e+02 1.97860482e+03 5.10133054e+00 ! vx vy vz +742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill +6.79554835e+03 !particle radius in m +-3.33406678e+06 -1.03746123e+07 -4.13492713e+04 ! x y z +1.88884845e+03 -5.81374899e+02 2.44002419e+01 ! vx vy vz +743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill +4.33964341e+03 !particle radius in m +8.47272017e+06 -3.29574857e+06 4.59089313e+04 ! x y z +8.07908043e+02 2.00285924e+03 2.30278431e+01 ! vx vy vz +744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill +6.96963100e+03 !particle radius in m +-1.10174017e+07 -1.65843431e+07 -7.81778692e+04 ! x y z +1.22711770e+03 -7.92668746e+02 1.28964786e+00 ! vx vy vz +745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill +4.87663009e+03 !particle radius in m +-6.99704994e+06 -1.88546711e+07 -8.81519961e+04 ! x y z +1.37622550e+03 -5.05609550e+02 1.32065962e+00 ! vx vy vz +746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill +8.85565460e+03 !particle radius in m +3.37171440e+06 -1.03724491e+07 -2.05908462e+04 ! x y z +1.89249257e+03 5.96290076e+02 -1.16901986e+01 ! vx vy vz +747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill +9.70303009e+03 !particle radius in m +8.68817648e+05 -9.37137391e+06 -9.78603362e+04 ! x y z +2.13443213e+03 1.77136355e+02 -1.05898656e+01 ! vx vy vz +748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill +1.02227553e+04 !particle radius in m +-8.20639456e+06 4.88393438e+06 3.93769452e+04 ! x y z +-1.09602043e+03 -1.80139112e+03 -5.09189684e+00 ! vx vy vz +749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill +1.19572346e+04 !particle radius in m +-2.98729202e+06 -1.69982812e+07 -1.00361471e+02 ! x y z +1.54074333e+03 -2.84642833e+02 -7.12483576e+00 ! vx vy vz +750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill +1.10694715e+04 !particle radius in m +-1.87997669e+07 -2.87235850e+06 6.06981762e+04 ! x y z +2.30253048e+02 -1.48355775e+03 -3.20628055e+00 ! vx vy vz +751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill +1.17140974e+04 !particle radius in m +-1.67195966e+06 1.53840879e+07 1.17823799e+05 ! x y z +-1.66924292e+03 -1.76106009e+02 2.19585908e+00 ! vx vy vz +752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill +1.26586599e+04 !particle radius in m +7.45254418e+06 4.82823148e+06 -5.06675552e+03 ! x y z +-1.22839592e+03 1.82946634e+03 -1.27029622e+01 ! vx vy vz +753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill +6.99494374e+03 !particle radius in m +5.13959627e+06 7.44700588e+06 5.03758086e+04 ! x y z +-1.79330931e+03 1.22535892e+03 -1.02427731e+01 ! vx vy vz +754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill +7.21229000e+03 !particle radius in m +9.58649389e+06 5.81253530e+06 -4.39352546e+04 ! x y z +-9.88086375e+02 1.68843459e+03 -9.34405959e+00 ! vx vy vz +755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill +1.06209501e+04 !particle radius in m +5.07070035e+06 7.32312120e+06 7.18562589e+04 ! x y z +-1.79677644e+03 1.25238618e+03 1.64235819e+00 ! vx vy vz +756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill +7.60936749e+03 !particle radius in m +1.19404056e+06 1.08877947e+07 5.88658821e+03 ! x y z +-1.96662575e+03 2.29281553e+02 -1.48568063e+01 ! vx vy vz +757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill +1.21305775e+04 !particle radius in m +-9.84021278e+06 -3.40002026e+06 -6.17065432e+04 ! x y z +7.02356760e+02 -1.91960378e+03 8.28806476e+00 ! vx vy vz +758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill +5.64173558e+03 !particle radius in m +8.38364229e+06 -1.08052974e+07 -1.14971163e+05 ! x y z +1.41362762e+03 1.05030477e+03 1.33062848e-02 ! vx vy vz +759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill +4.21249068e+03 !particle radius in m +4.30913199e+06 8.44003978e+06 1.98375727e+04 ! x y z +-1.87920775e+03 9.70144357e+02 7.68922870e-02 ! vx vy vz +760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill +8.36735565e+03 !particle radius in m +9.34254133e+06 -6.72471094e+06 3.04479801e+03 ! x y z +1.13048626e+03 1.56587434e+03 1.26328276e-01 ! vx vy vz +761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill +6.82609072e+03 !particle radius in m +-3.94216440e+06 -8.13811187e+06 -2.32415480e+03 ! x y z +1.94483188e+03 -9.74054123e+02 6.56681455e+00 ! vx vy vz +762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill +9.70708677e+03 !particle radius in m +5.41429391e+06 -7.20522578e+06 5.41382285e+04 ! x y z +1.73021941e+03 1.33390146e+03 1.43673569e+00 ! vx vy vz +763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill +1.08215064e+04 !particle radius in m +-3.58069142e+06 -1.18639900e+07 -2.98112201e+04 ! x y z +1.80063833e+03 -4.84660340e+02 -1.10025267e+01 ! vx vy vz +764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill +7.07029058e+03 !particle radius in m +5.06214806e+06 -8.79684921e+06 -6.69408163e+03 ! x y z +1.77899792e+03 1.03185242e+03 -6.99222338e+00 ! vx vy vz +765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill +6.25131279e+03 !particle radius in m +2.20528884e+06 -1.13497157e+07 1.23709451e+05 ! x y z +1.88518956e+03 4.07847130e+02 -1.21144069e+01 ! vx vy vz +766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill +7.02206200e+03 !particle radius in m +5.73341973e+06 -8.10327163e+06 -2.40301967e+04 ! x y z +1.67706223e+03 1.24499901e+03 -1.26631178e+01 ! vx vy vz +767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill +9.46615418e+03 !particle radius in m +-4.07741467e+06 -8.18369428e+06 -3.25211280e+04 ! x y z +1.94858682e+03 -9.33976298e+02 3.19344234e+00 ! vx vy vz +768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill +1.08696854e+04 !particle radius in m +6.06888001e+06 6.98255626e+06 -6.90089903e+03 ! x y z +-1.60191111e+03 1.44385639e+03 1.12490936e+00 ! vx vy vz +769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill +7.40682734e+03 !particle radius in m +-1.97618366e+06 8.86960314e+06 4.14824140e+04 ! x y z +-2.09949361e+03 -4.69720145e+02 1.43384661e+01 ! vx vy vz +770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill +1.02086703e+04 !particle radius in m +-6.96997724e+05 1.14525501e+07 -2.14282591e+04 ! x y z +-1.94508975e+03 -1.20495540e+02 -1.27425570e+01 ! vx vy vz +771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill +1.08099817e+04 !particle radius in m +9.38021683e+06 3.42327658e+04 2.00501873e+04 ! x y z +-3.65841924e+01 2.11334523e+03 -1.86694989e+01 ! vx vy vz +772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill +6.31519566e+03 !particle radius in m +9.77614427e+06 2.18126141e+06 4.93063169e+04 ! x y z +-4.63942946e+02 2.03097699e+03 3.68237367e+00 ! vx vy vz +773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill +6.36286244e+03 !particle radius in m +1.03665232e+06 8.86346829e+06 1.05688800e+05 ! x y z +-2.16165047e+03 3.02954637e+02 -2.55519521e+01 ! vx vy vz +774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill +7.01416117e+03 !particle radius in m +1.03495591e+07 -4.25164616e+06 3.58740907e+04 ! x y z +7.33662495e+02 1.82348291e+03 -6.28887722e-01 ! vx vy vz +775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill +9.03178903e+03 !particle radius in m +-2.38406558e+06 9.62250108e+06 1.02937972e+05 ! x y z +-2.01173579e+03 -4.55947194e+02 5.72154417e+00 ! vx vy vz +776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill +8.64887224e+03 !particle radius in m +-1.07734704e+07 -1.45075387e+06 -2.66041480e+04 ! x y z +2.65092409e+02 -1.95941508e+03 3.83593904e+00 ! vx vy vz +777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill +4.59186701e+03 !particle radius in m +4.74101076e+06 -1.21984912e+07 3.79772198e+04 ! x y z +1.69258599e+03 6.30621386e+02 2.06381502e+00 ! vx vy vz +778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill +1.07150758e+04 !particle radius in m +7.43989020e+06 -5.63873599e+06 -5.85929699e+04 ! x y z +1.31667387e+03 1.70317955e+03 9.52560643e+00 ! vx vy vz +779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill +1.28849886e+04 !particle radius in m +-5.38823915e+06 1.48268009e+07 -2.14296811e+04 ! x y z +-1.54283155e+03 -5.57159624e+02 5.54783358e+00 ! vx vy vz +780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill +8.11825531e+03 !particle radius in m +2.66724929e+06 -8.66471427e+06 1.00760731e+04 ! x y z +2.07447879e+03 6.47409518e+02 2.06301461e+01 ! vx vy vz +781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill +6.32533652e+03 !particle radius in m +-9.34887042e+06 -7.71203345e+05 -2.80106217e+04 ! x y z +1.56382920e+02 -2.13449580e+03 1.77972684e+01 ! vx vy vz +782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill +6.47451347e+03 !particle radius in m +2.11853462e+06 2.14346842e+07 -1.31619878e+05 ! x y z +-1.40220812e+03 1.23003628e+02 1.01803056e+01 ! vx vy vz +783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill +9.73096804e+03 !particle radius in m +8.93418422e+06 -1.26163769e+06 -6.14650218e+03 ! x y z +2.70831749e+02 2.17084302e+03 -6.49066157e+00 ! vx vy vz +784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill +1.21985861e+04 !particle radius in m +-3.36304606e+06 -8.68475569e+06 4.22905473e+04 ! x y z +2.01382441e+03 -7.30247568e+02 -1.59257408e+01 ! vx vy vz +785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill +1.18904701e+04 !particle radius in m +8.81465687e+06 -2.36248215e+06 6.67259873e+04 ! x y z +5.93111329e+02 2.09930862e+03 3.04112228e+00 ! vx vy vz +786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill +1.15252633e+04 !particle radius in m +-4.21295680e+06 -8.25900507e+06 -3.19234838e+03 ! x y z +1.92170180e+03 -9.79177619e+02 -8.10728388e+00 ! vx vy vz +787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill +8.60360757e+03 !particle radius in m +9.93364443e+06 8.45966410e+06 -7.67940035e+04 ! x y z +-1.17931717e+03 1.37394453e+03 -8.05856772e+00 ! vx vy vz +788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill +1.16460986e+04 !particle radius in m +1.04612906e+06 1.07823989e+07 -7.20248309e+04 ! x y z +-1.97918359e+03 1.84768969e+02 3.98691690e+00 ! vx vy vz +789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill +7.05875544e+03 !particle radius in m +-1.20383776e+07 -1.30487787e+07 -1.17822971e+05 ! x y z +1.15323425e+03 -1.04821079e+03 -2.09214306e+01 ! vx vy vz +790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill +1.22523351e+04 !particle radius in m +-6.25721631e+06 -7.48338074e+06 6.58872777e+04 ! x y z +1.60724089e+03 -1.35523949e+03 1.79073191e+01 ! vx vy vz +791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill +9.90119508e+03 !particle radius in m +-1.98852887e+06 -1.16234208e+07 3.45760659e+04 ! x y z +1.87230049e+03 -3.33072319e+02 1.96763510e+00 ! vx vy vz +792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill +6.39775874e+03 !particle radius in m +-1.83445389e+06 -1.01663777e+07 -2.16218566e+04 ! x y z +1.99731190e+03 -3.10283279e+02 -1.07270295e+01 ! vx vy vz +793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill +1.28561305e+04 !particle radius in m +-6.68458169e+06 -1.03038987e+07 1.06554338e+05 ! x y z +1.55802844e+03 -1.01074571e+03 -1.53515092e+00 ! vx vy vz +794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill +6.64439416e+03 !particle radius in m +-9.54428205e+06 -1.77688297e+06 -2.10926647e+04 ! x y z +3.75374809e+02 -2.06650760e+03 -1.22766897e+00 ! vx vy vz +795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill +4.45221314e+03 !particle radius in m +3.13901663e+06 1.32731582e+07 -8.32687929e+04 ! x y z +-1.71730983e+03 4.23145043e+02 4.63891808e+00 ! vx vy vz +796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill +8.94314414e+03 !particle radius in m +-2.33540859e+06 9.13065765e+06 7.06589924e+03 ! x y z +-2.06497311e+03 -5.14043891e+02 1.51818535e+01 ! vx vy vz +797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill +9.79534618e+03 !particle radius in m +1.36994576e+07 -4.67366094e+06 7.44829731e+04 ! x y z +5.44944889e+02 1.63399910e+03 -4.32898441e+00 ! vx vy vz +798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill +3.76668925e+03 !particle radius in m +-7.37395287e+06 5.09151414e+06 2.55133554e+04 ! x y z +-1.23099773e+03 -1.81388400e+03 -6.90022105e+00 ! vx vy vz +799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill +1.06439337e+04 !particle radius in m +-4.36095303e+06 9.17263674e+06 5.77572160e+04 ! x y z +-1.86099387e+03 -8.92089911e+02 1.33050454e+01 ! vx vy vz +800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill +1.01319198e+04 !particle radius in m +6.09028041e+05 -9.05678858e+06 -3.59192636e+04 ! x y z +2.16064013e+03 1.12524119e+02 -1.28041635e+01 ! vx vy vz +801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill +4.11065306e+03 !particle radius in m +8.74913197e+06 -1.47341693e+06 -9.62438055e+04 ! x y z +3.78746478e+02 2.16207809e+03 -2.44021093e+01 ! vx vy vz +802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill +1.30483609e+04 !particle radius in m +-8.58911286e+06 2.87403478e+06 1.58823639e+02 ! x y z +-7.16776888e+02 -2.04412274e+03 5.09362192e-01 ! vx vy vz +803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill +1.07178069e+04 !particle radius in m +8.48527058e+06 -9.20798638e+06 -1.02188880e+05 ! x y z +1.36994712e+03 1.25405390e+03 1.06840389e+01 ! vx vy vz +804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill +1.12118643e+04 !particle radius in m +-5.30902937e+06 7.21606500e+06 6.02327354e+04 ! x y z +-1.77499753e+03 -1.28053606e+03 -3.40605365e+00 ! vx vy vz +805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill +4.96028208e+03 !particle radius in m +-1.77739170e+07 5.38979777e+06 1.55930024e+05 ! x y z +-4.43393580e+02 -1.45455644e+03 -2.70314341e-01 ! vx vy vz +806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill +5.28698448e+03 !particle radius in m +-8.43967863e+06 -7.92404795e+06 -2.34275469e+04 ! x y z +1.33453164e+03 -1.37751924e+03 -2.53751841e+00 ! vx vy vz +807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill +1.00412476e+04 !particle radius in m +4.71451819e+06 -7.46352121e+06 1.62287314e+03 ! x y z +1.84921224e+03 1.19850662e+03 1.99232615e+01 ! vx vy vz +808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill +5.43374958e+03 !particle radius in m +1.87652013e+06 -1.11420807e+07 1.38944441e+05 ! x y z +1.93560918e+03 3.25150073e+02 2.51765258e+00 ! vx vy vz +809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill +1.25612659e+04 !particle radius in m +-9.29220692e+06 2.16599787e+06 -4.38900389e+04 ! x y z +-4.87620074e+02 -2.05624014e+03 4.85721843e-01 ! vx vy vz +810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill +8.29428788e+03 !particle radius in m +1.39531950e+06 1.01422470e+07 -9.71755919e+04 ! x y z +-2.02592294e+03 3.03255899e+02 5.57961818e+00 ! vx vy vz +811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill +7.18660555e+03 !particle radius in m +1.17947013e+07 7.40001699e+05 2.51672426e+04 ! x y z +-1.17060805e+02 1.90660700e+03 5.44656130e+00 ! vx vy vz +812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill +1.12581502e+04 !particle radius in m +-7.90433536e+06 6.73266024e+06 -3.50969312e+04 ! x y z +-1.30204874e+03 -1.55681461e+03 5.35229797e+00 ! vx vy vz +813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill +5.64021687e+03 !particle radius in m +1.20372535e+07 -7.49092702e+06 6.74822230e+04 ! x y z +8.91458581e+02 1.47943776e+03 -9.74770857e+00 ! vx vy vz +814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill +6.98217592e+03 !particle radius in m +6.85752801e+06 6.02181411e+06 3.38939759e+03 ! x y z +-1.45444163e+03 1.59683746e+03 2.15463449e+00 ! vx vy vz +815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill +9.64610498e+03 !particle radius in m +1.65844804e+07 4.81034890e+06 4.61229376e+04 ! x y z +-4.20560106e+02 1.53234812e+03 -2.07164443e+00 ! vx vy vz +816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill +9.97612135e+03 !particle radius in m +-1.11130797e+07 -3.78359570e+06 -1.84960756e+03 ! x y z +5.85052492e+02 -1.82483094e+03 -5.22659903e+00 ! vx vy vz +817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill +7.74203039e+03 !particle radius in m +4.58513442e+06 1.02699278e+07 -3.18341648e+04 ! x y z +-1.77353935e+03 8.15172006e+02 -3.48615440e+00 ! vx vy vz +818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill +9.54525817e+03 !particle radius in m +7.69154925e+06 -4.52108417e+06 1.90521640e+04 ! x y z +1.13843297e+03 1.87858469e+03 1.37511342e+00 ! vx vy vz +819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill +6.87114114e+03 !particle radius in m +-1.15969434e+07 3.52559239e+06 5.16907637e+04 ! x y z +-5.69477663e+02 -1.78769915e+03 -1.33023745e+01 ! vx vy vz +820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill +1.00913836e+04 !particle radius in m +5.95447776e+06 -7.82496208e+06 3.09991808e+04 ! x y z +1.65084498e+03 1.22028250e+03 -2.33382836e+00 ! vx vy vz +821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill +6.05977746e+03 !particle radius in m +-3.93089529e+06 1.17766068e+07 -6.72321552e+03 ! x y z +-1.75059713e+03 -6.17947765e+02 -1.16753307e+01 ! vx vy vz +822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill +1.27297027e+04 !particle radius in m +-9.38145643e+06 5.61032393e+05 -2.62604457e+04 ! x y z +-1.66051140e+02 -2.13147141e+03 -1.91808715e+01 ! vx vy vz +823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill +1.07838641e+04 !particle radius in m +-3.46243172e+06 -9.75229088e+06 -6.99128436e+04 ! x y z +1.92977079e+03 -6.78308349e+02 -2.04030914e-01 ! vx vy vz +824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill +7.49949684e+03 !particle radius in m +2.14173079e+06 -1.00855853e+07 1.33615118e+04 ! x y z +2.00549502e+03 4.10286548e+02 1.33463171e+01 ! vx vy vz +825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill +4.66653709e+03 !particle radius in m +2.97083227e+06 8.61004661e+06 -5.77896258e+04 ! x y z +-2.03526397e+03 6.94270314e+02 -2.15105297e+00 ! vx vy vz +826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill +5.95586641e+03 !particle radius in m +-1.12041316e+07 8.43574386e+06 6.88522376e+04 ! x y z +-1.04307644e+03 -1.40491020e+03 6.49036289e+00 ! vx vy vz +827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill +7.11632779e+03 !particle radius in m +-4.35495075e+06 9.47025259e+06 -5.09915025e+04 ! x y z +-1.85819690e+03 -8.15466077e+02 4.09008068e+00 ! vx vy vz +828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill +5.57206216e+03 !particle radius in m +4.78116976e+06 -1.59784331e+07 -5.36968327e+04 ! x y z +1.53329565e+03 4.46997350e+02 4.63714714e+00 ! vx vy vz +829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill +8.50997184e+03 !particle radius in m +8.23993793e+06 -5.31139465e+06 6.29574603e+04 ! x y z +1.13278257e+03 1.76205209e+03 -8.47937534e-01 ! vx vy vz +830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill +1.26036743e+04 !particle radius in m +-9.63212471e+06 3.36590765e+06 -1.07062454e+04 ! x y z +-6.84552644e+02 -1.94265665e+03 2.94400282e+00 ! vx vy vz +831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill +4.86272166e+03 !particle radius in m +9.83116842e+06 6.61447762e+06 -5.12468956e+04 ! x y z +-1.03243293e+03 1.62443233e+03 2.38757589e+00 ! vx vy vz +832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill +5.75359413e+03 !particle radius in m +9.79171021e+06 -2.73890246e+06 8.20795285e+04 ! x y z +5.70999291e+02 1.96925843e+03 2.38407769e+00 ! vx vy vz +833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill +8.31975532e+03 !particle radius in m +-3.31575865e+06 9.74773076e+06 -6.68906771e+04 ! x y z +-1.91945157e+03 -6.80055572e+02 7.05071034e-01 ! vx vy vz +834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill +1.11561412e+04 !particle radius in m +2.59402712e+06 1.41195960e+07 7.65317352e+04 ! x y z +-1.69390135e+03 3.03445651e+02 1.51567072e+01 ! vx vy vz +835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill +7.06120023e+03 !particle radius in m +-2.50324523e+06 1.33583355e+07 -1.06069614e+05 ! x y z +-1.73502096e+03 -3.33244830e+02 -4.27813580e+00 ! vx vy vz +836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill +1.08855562e+04 !particle radius in m +-4.06673848e+06 -1.16023946e+07 4.08896853e+04 ! x y z +1.75606757e+03 -6.22462152e+02 1.70339271e+01 ! vx vy vz +837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill +8.51827363e+03 !particle radius in m +4.61087222e+06 -8.97079451e+06 -2.30678380e+04 ! x y z +1.81563298e+03 9.45814603e+02 2.66915276e+01 ! vx vy vz +838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill +9.98376791e+03 !particle radius in m +9.96934676e+06 5.38891014e+06 9.88781435e+04 ! x y z +-9.81582718e+02 1.71074828e+03 -3.99838208e+00 ! vx vy vz +839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill +6.46366364e+03 !particle radius in m +4.99758772e+06 -7.50759705e+06 -5.25299733e+04 ! x y z +1.80703397e+03 1.21678053e+03 1.90540898e+01 ! vx vy vz +840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill +8.47913036e+03 !particle radius in m +-6.69441800e+06 -8.86176278e+06 2.53388174e+04 ! x y z +1.56709902e+03 -1.16434302e+03 -9.30903825e+00 ! vx vy vz +841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill +6.33780436e+03 !particle radius in m +-4.38549443e+06 -8.30442031e+06 2.47931467e+04 ! x y z +1.89780640e+03 -1.00273544e+03 3.24648282e-01 ! vx vy vz +842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill +4.58059717e+03 !particle radius in m +9.52295494e+06 -1.31453589e+07 -2.84882159e+04 ! x y z +1.32429236e+03 9.32305231e+02 -7.78758641e+00 ! vx vy vz +843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill +4.96572933e+03 !particle radius in m +8.16032081e+06 -3.83914183e+06 -4.53668688e+04 ! x y z +9.48405336e+02 1.95482944e+03 -1.90024465e+01 ! vx vy vz +844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill +1.18058616e+04 !particle radius in m +8.84185924e+06 4.91012210e+06 -4.89421191e+04 ! x y z +-9.91478880e+02 1.77538667e+03 -7.79856416e+00 ! vx vy vz +845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill +4.55512603e+03 !particle radius in m +1.32256008e+07 4.60711564e+06 3.20195320e+04 ! x y z +-5.72824835e+02 1.63498483e+03 -8.94623266e+00 ! vx vy vz +846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill +9.31206622e+03 !particle radius in m +1.83600084e+07 -3.67172737e+06 -1.03387529e+05 ! x y z +2.82478801e+02 1.48749998e+03 -3.61587063e+00 ! vx vy vz +847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill +1.08121011e+04 !particle radius in m +5.50505051e+06 7.32332854e+06 3.97380095e+04 ! x y z +-1.73540458e+03 1.27934877e+03 1.31767249e+00 ! vx vy vz +848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill +1.19792790e+04 !particle radius in m +-7.13326386e+06 1.32178302e+07 5.30241465e+04 ! x y z +-1.47659146e+03 -7.82263656e+02 -2.09914908e+01 ! vx vy vz +849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill +4.27383343e+03 !particle radius in m +-4.61218845e+06 1.05730170e+07 -6.60200193e+04 ! x y z +-1.78205321e+03 -7.56922993e+02 8.78119173e+00 ! vx vy vz +850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill +1.14640744e+04 !particle radius in m +-4.56090890e+06 1.14927598e+07 1.08391052e+05 ! x y z +-1.73824893e+03 -6.90093039e+02 -9.72090948e+00 ! vx vy vz +851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill +5.67210117e+03 !particle radius in m +-1.26164008e+07 8.37507124e+06 -9.30825805e+04 ! x y z +-9.25052993e+02 -1.39347287e+03 7.98354596e+00 ! vx vy vz +852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill +6.97236746e+03 !particle radius in m +6.53000802e+05 -9.25877071e+06 7.96919181e+03 ! x y z +2.13254376e+03 1.58194267e+02 -3.04691883e+00 ! vx vy vz +853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill +1.00860395e+04 !particle radius in m +7.29493071e+06 -5.15859210e+06 -4.34667082e+04 ! x y z +1.28346456e+03 1.77485302e+03 1.13165377e+01 ! vx vy vz +854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill +3.79587448e+03 !particle radius in m +-3.19192697e+06 -8.59789141e+06 9.38867695e+04 ! x y z +2.03734470e+03 -7.26452634e+02 -1.17305762e+00 ! vx vy vz +855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill +9.54848620e+03 !particle radius in m +9.47082398e+06 -1.09607932e+06 4.83920593e+04 ! x y z +2.14821600e+02 2.11542107e+03 1.20322954e+00 ! vx vy vz +856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill +9.67403073e+03 !particle radius in m +-6.95192799e+06 -5.46206006e+06 2.82885807e+04 ! x y z +1.36201469e+03 -1.74685442e+03 2.47593903e+01 ! vx vy vz +857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill +6.47356387e+03 !particle radius in m +-3.08185810e+06 9.58349756e+06 6.94451226e+03 ! x y z +-1.96338979e+03 -6.65837368e+02 -2.04503843e+01 ! vx vy vz +858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill +1.23980946e+04 !particle radius in m +1.65978586e+07 7.58110647e+06 -7.73180642e+04 ! x y z +-6.28856477e+02 1.39136938e+03 1.44879781e+01 ! vx vy vz +859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill +1.11769229e+04 !particle radius in m +-6.68285720e+06 6.69572721e+06 -2.14964381e+03 ! x y z +-1.53479675e+03 -1.49178194e+03 -5.71100381e+00 ! vx vy vz +860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill +5.41215219e+03 !particle radius in m +-4.42591408e+06 -1.21925806e+07 -3.63637070e+04 ! x y z +1.69944504e+03 -6.60923085e+02 -1.17185754e+00 ! vx vy vz +861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill +9.40989476e+03 !particle radius in m +9.48116594e+06 -3.86455243e+05 -1.03947327e+05 ! x y z +6.54406678e+01 2.14729925e+03 -2.03989342e+01 ! vx vy vz +862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill +9.76055838e+03 !particle radius in m +9.75283383e+06 -3.26934404e+06 -6.67089834e+03 ! x y z +6.55184968e+02 1.92454684e+03 -2.06876177e+00 ! vx vy vz +863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill +9.82795810e+03 !particle radius in m +7.92293154e+06 -5.92949642e+06 8.08421712e+04 ! x y z +1.22209539e+03 1.67954941e+03 6.77640716e+00 ! vx vy vz +864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill +1.10112267e+04 !particle radius in m +-9.44726757e+06 -1.72479642e+06 -5.06771776e+04 ! x y z +3.57081323e+02 -2.08684682e+03 -1.01697089e+00 ! vx vy vz +865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill +8.85599534e+03 !particle radius in m +-6.23129670e+06 7.19526623e+06 1.83941420e+04 ! x y z +-1.59813509e+03 -1.40609078e+03 1.94595479e+01 ! vx vy vz +866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill +1.13935271e+04 !particle radius in m +-5.60132388e+06 -7.32299736e+06 -1.77571471e+04 ! x y z +1.71338179e+03 -1.30416800e+03 7.07200448e+00 ! vx vy vz +867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill +9.21714362e+03 !particle radius in m +1.94866969e+07 6.41556967e+06 -8.78618223e+04 ! x y z +-4.47022162e+02 1.36561417e+03 1.23555791e+00 ! vx vy vz +868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill +9.19760498e+03 !particle radius in m +1.24313845e+07 -1.03009928e+07 2.91007895e+04 ! x y z +1.03299438e+03 1.26303931e+03 1.43272483e+01 ! vx vy vz +869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill +6.15328661e+03 !particle radius in m +-1.88463700e+07 3.02324922e+06 -1.45896688e+05 ! x y z +-2.31662436e+02 -1.48292769e+03 2.63168505e+00 ! vx vy vz +870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill +7.76210648e+03 !particle radius in m +1.40546567e+07 -3.88347486e+06 6.81896661e+04 ! x y z +4.43567006e+02 1.65056081e+03 4.01577354e+00 ! vx vy vz +871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill +4.21738363e+03 !particle radius in m +1.78412490e+06 -1.05393977e+07 -1.79940495e+04 ! x y z +1.97327292e+03 3.39702264e+02 -1.56396341e+01 ! vx vy vz +872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill +1.24124221e+04 !particle radius in m +3.48276485e+06 1.24683799e+07 5.71803206e+04 ! x y z +-1.74011773e+03 4.74503606e+02 9.70062988e+00 ! vx vy vz +873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill +6.19423818e+03 !particle radius in m +9.54521899e+06 -4.27421825e+06 -7.89921579e+04 ! x y z +8.34463883e+02 1.83314396e+03 -1.96687832e+01 ! vx vy vz +874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill +1.07595049e+04 !particle radius in m +-2.90897541e+06 -9.97345628e+06 4.60433948e+04 ! x y z +1.93634809e+03 -5.84664071e+02 -6.64958448e-01 ! vx vy vz +875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill +1.22230660e+04 !particle radius in m +4.25415099e+06 -1.14325644e+07 5.00958816e+04 ! x y z +1.75951768e+03 6.44587122e+02 6.30692655e+00 ! vx vy vz +876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill +7.10923390e+03 !particle radius in m +-1.58007262e+07 -7.45105168e+06 -3.06690137e+04 ! x y z +6.82944765e+02 -1.41301363e+03 1.04453850e+01 ! vx vy vz +877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill +6.57693777e+03 !particle radius in m +8.25741284e+06 4.39411348e+06 3.78949633e+04 ! x y z +-9.99781284e+02 1.87441904e+03 -3.21699586e+00 ! vx vy vz +878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill +6.56801971e+03 !particle radius in m +2.42332014e+06 2.17054415e+07 -5.36680055e+04 ! x y z +-1.40455533e+03 1.37752686e+02 -3.67471579e+00 ! vx vy vz +879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill +7.16699767e+03 !particle radius in m +-1.11338384e+07 -2.20174819e+06 -5.08310388e+04 ! x y z +3.88427106e+02 -1.90213725e+03 -1.60447088e+01 ! vx vy vz +880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill +1.08784389e+04 !particle radius in m +-1.83729146e+07 1.19076985e+06 -1.72335144e+04 ! x y z +-9.88243619e+01 -1.51803622e+03 2.27806536e+01 ! vx vy vz +881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill +1.04495767e+04 !particle radius in m +-6.50873442e+06 -1.07127054e+07 -3.34128129e+03 ! x y z +1.57607258e+03 -9.74525706e+02 1.08233475e+01 ! vx vy vz +882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill +1.07365873e+04 !particle radius in m +-2.66932388e+06 -1.08052729e+07 -7.29995052e+04 ! x y z +1.89275637e+03 -5.06517897e+02 -3.33939112e+00 ! vx vy vz +883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill +1.11350375e+04 !particle radius in m +-8.68309984e+06 8.73295385e+06 2.12890448e+04 ! x y z +-1.33510513e+03 -1.35075217e+03 2.94732064e+00 ! vx vy vz +884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill +4.15634119e+03 !particle radius in m +-9.01680783e+06 -6.03891596e+06 -1.83491289e+04 ! x y z +1.08610553e+03 -1.66661637e+03 5.40990322e+00 ! vx vy vz +885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill +8.40905991e+03 !particle radius in m +8.73703169e+06 -2.34962014e+06 8.87466208e+03 ! x y z +5.81838269e+02 2.10387535e+03 1.59910498e+01 ! vx vy vz +886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill +1.06013311e+04 !particle radius in m +-5.56657026e+06 -7.79387621e+06 -2.42457443e+04 ! x y z +1.72811494e+03 -1.19163725e+03 7.49315478e+00 ! vx vy vz +887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill +8.97396819e+03 !particle radius in m +-1.39814291e+07 5.67086599e+06 7.10670472e+04 ! x y z +-6.38825478e+02 -1.55959492e+03 1.37992185e+01 ! vx vy vz +888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill +9.23650109e+03 !particle radius in m +-6.68069155e+05 -1.06256314e+07 1.03366197e+04 ! x y z +1.99524677e+03 -1.14341573e+02 7.10647594e+00 ! vx vy vz +889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill +1.26639344e+04 !particle radius in m +4.44131372e+06 1.05243943e+07 -4.93210722e+04 ! x y z +-1.78877447e+03 7.65306939e+02 -2.91348510e-01 ! vx vy vz +890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill +3.72440519e+03 !particle radius in m +4.74513540e+06 -1.11521571e+07 1.99020178e+04 ! x y z +1.74857282e+03 7.32287072e+02 8.22196426e+00 ! vx vy vz +891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill +6.65808168e+03 !particle radius in m +3.69231178e+06 8.07781861e+06 -4.84025537e+04 ! x y z +-1.99534439e+03 9.00711444e+02 -7.96406279e+00 ! vx vy vz +892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill +9.76097367e+03 !particle radius in m +7.96779900e+06 5.28681997e+06 4.51459562e+04 ! x y z +-1.15797841e+03 1.77999708e+03 -1.86173466e+01 ! vx vy vz +893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill +1.23309244e+04 !particle radius in m +-4.76453798e+06 -8.80906879e+06 -7.02042625e+03 ! x y z +1.84339352e+03 -9.61915676e+02 -9.22717545e-02 ! vx vy vz +894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill +7.89494909e+03 !particle radius in m +-1.01354200e+07 1.79029021e+06 5.81214752e+04 ! x y z +-3.69721169e+02 -2.02078532e+03 -1.89093419e+00 ! vx vy vz +895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill +9.77391088e+03 !particle radius in m +6.33480475e+06 -5.91857236e+06 -4.57999278e+04 ! x y z +1.55086475e+03 1.62084415e+03 -1.77397628e+01 ! vx vy vz +896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill +7.38931640e+03 !particle radius in m +-1.06493767e+07 7.82814577e+06 2.86358415e+04 ! x y z +-1.05832791e+03 -1.46150005e+03 -5.49731072e+00 ! vx vy vz +897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill +1.26273646e+04 !particle radius in m +7.65076109e+06 -1.70352283e+07 1.51301396e+04 ! x y z +1.39901314e+03 6.06223441e+02 4.14064364e+00 ! vx vy vz +898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill +1.16848854e+04 !particle radius in m +-6.95564135e+06 7.65404475e+06 -2.72421907e+04 ! x y z +-1.52099853e+03 -1.35598646e+03 -9.21577263e+00 ! vx vy vz +899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill +5.54558146e+03 !particle radius in m +-5.49140677e+04 1.54446317e+07 -1.73043597e+04 ! x y z +-1.66030895e+03 -1.12967723e+01 -2.73734027e+00 ! vx vy vz +900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill +4.63830089e+03 !particle radius in m +5.28463967e+06 -1.36432294e+07 1.50949984e+05 ! x y z +1.58056809e+03 6.18784193e+02 2.19476691e+00 ! vx vy vz +901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill +1.16861089e+04 !particle radius in m +-6.87024799e+06 -8.49204530e+06 6.90721153e+04 ! x y z +1.52959279e+03 -1.25803812e+03 2.67976166e+00 ! vx vy vz +902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill +8.06813127e+03 !particle radius in m +-5.81437057e+06 -7.46625959e+06 3.98273573e+04 ! x y z +1.67686329e+03 -1.30572183e+03 -1.17212431e+01 ! vx vy vz +903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill +4.37989422e+03 !particle radius in m +-2.38298847e+06 -1.53195500e+07 2.60001847e+03 ! x y z +1.63293505e+03 -2.84649559e+02 -1.48524125e+01 ! vx vy vz +904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill +1.03479629e+04 !particle radius in m +8.39690801e+06 9.44600671e+06 -3.53959311e+04 ! x y z +-1.39463544e+03 1.20681438e+03 -1.20628234e+01 ! vx vy vz +905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill +5.82874810e+03 !particle radius in m +1.01396678e+07 -1.41312986e+07 5.56406543e+04 ! x y z +1.26355281e+03 9.21806042e+02 1.06940044e+01 ! vx vy vz +906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill +5.42963650e+03 !particle radius in m +-5.21396669e+05 9.14782087e+06 -7.71915905e+03 ! x y z +-2.15141308e+03 -1.66257020e+02 2.07412147e+00 ! vx vy vz +907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill +1.27728576e+04 !particle radius in m +-3.61884147e+05 9.58012066e+06 -6.32163221e+04 ! x y z +-2.11988696e+03 -7.34599885e+01 -6.66237019e+00 ! vx vy vz +908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill +1.25591089e+04 !particle radius in m +-1.53596824e+07 6.40708086e+06 -1.04989342e+05 ! x y z +-6.14876376e+02 -1.48301382e+03 1.26290046e+01 ! vx vy vz +909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill +1.09785515e+04 !particle radius in m +-6.50197885e+06 -1.10181249e+07 -6.62877770e+04 ! x y z +1.58080387e+03 -9.02970180e+02 -1.68313909e+00 ! vx vy vz +910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill +8.81164464e+03 !particle radius in m +9.75396219e+06 -9.13807405e+05 -7.87078491e+04 ! x y z +2.02298152e+02 2.08890085e+03 -1.56193445e+01 ! vx vy vz +911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill +6.34730173e+03 !particle radius in m +1.22059111e+07 -4.11569584e+06 4.51136993e+04 ! x y z +6.18155979e+02 1.71784899e+03 -1.45608490e+01 ! vx vy vz +912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill +8.22504486e+03 !particle radius in m +-1.39589249e+07 4.22706952e+06 1.42629172e+04 ! x y z +-4.79490807e+02 -1.64034272e+03 -9.80150049e+00 ! vx vy vz +913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill +8.68255953e+03 !particle radius in m +-8.72337367e+06 7.89855612e+06 -1.46432428e+04 ! x y z +-1.27359213e+03 -1.41072675e+03 -9.09643338e+00 ! vx vy vz +914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill +6.55170538e+03 !particle radius in m +-5.98689124e+06 -1.08278571e+07 -7.13966053e+04 ! x y z +1.61204187e+03 -9.04138146e+02 6.38760222e+00 ! vx vy vz +915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill +6.76452340e+03 !particle radius in m +-1.07210273e+07 4.87007409e+06 5.61861647e+04 ! x y z +-7.65098099e+02 -1.73800332e+03 -1.14385352e+01 ! vx vy vz +916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill +8.51193471e+03 !particle radius in m +2.68858721e+06 -1.40830147e+07 -6.98869515e+04 ! x y z +1.69547510e+03 3.28640998e+02 9.31981924e-01 ! vx vy vz +917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill +1.29562429e+04 !particle radius in m +-1.30260417e+07 3.41761257e+06 -7.30560375e+04 ! x y z +-4.58021484e+02 -1.72002575e+03 5.01502204e+00 ! vx vy vz +918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill +1.19720742e+04 !particle radius in m +-4.79303948e+06 8.20836672e+06 6.12546656e+03 ! x y z +-1.84411142e+03 -1.07059828e+03 4.85115120e+00 ! vx vy vz +919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill +1.10248119e+04 !particle radius in m +7.16020189e+06 -5.20913143e+06 7.41222240e+04 ! x y z +1.31083472e+03 1.77863703e+03 -1.14709109e+01 ! vx vy vz +920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill +5.80902907e+03 !particle radius in m +8.99285148e+05 9.31741571e+06 -4.43761911e+04 ! x y z +-2.12986907e+03 1.90203427e+02 1.15661198e+01 ! vx vy vz +921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill +1.20390163e+04 !particle radius in m +1.03624859e+07 4.00217371e+06 -3.33921276e+04 ! x y z +-7.29889411e+02 1.83209523e+03 -3.12704990e+00 ! vx vy vz +922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill +1.05735757e+04 !particle radius in m +9.54531799e+06 -3.82777787e+06 -3.08506232e+03 ! x y z +7.65760228e+02 1.88710727e+03 1.54248284e+01 ! vx vy vz +923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill +6.19228768e+03 !particle radius in m +-1.26508821e+07 -4.96817255e+06 -7.46581466e+04 ! x y z +6.38137580e+02 -1.65998064e+03 -1.05229703e+01 ! vx vy vz +924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill +7.10814791e+03 !particle radius in m +6.65714202e+06 8.41817806e+06 5.11373555e+04 ! x y z +-1.58896209e+03 1.22956179e+03 -1.67191084e+01 ! vx vy vz +925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill +8.69325608e+03 !particle radius in m +-1.30432977e+07 2.41169295e+06 9.46191119e+04 ! x y z +-3.33638402e+02 -1.76051970e+03 1.16209842e+01 ! vx vy vz +926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill +3.75974028e+03 !particle radius in m +1.62111278e+07 2.59399704e+06 1.61282577e+05 ! x y z +-2.71405873e+02 1.59773598e+03 -5.81005218e+00 ! vx vy vz +927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill +7.38892108e+03 !particle radius in m +2.06345127e+06 9.22023526e+06 -7.22571528e+03 ! x y z +-2.09005362e+03 4.30799852e+02 -1.90823955e+01 ! vx vy vz +928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill +9.19272993e+03 !particle radius in m +-1.13721993e+07 -1.13987875e+07 8.83921800e+04 ! x y z +1.16224359e+03 -1.15160239e+03 -1.45306478e+01 ! vx vy vz +929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill +1.16650334e+04 !particle radius in m +2.77942362e+06 -9.01437717e+06 -5.67717467e+04 ! x y z +2.03984238e+03 6.54242641e+02 1.85000009e+01 ! vx vy vz +930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill +9.29804930e+03 !particle radius in m +-1.18629177e+07 -4.45829589e+05 7.85442143e+04 ! x y z +1.01652144e+02 -1.91537773e+03 4.05611152e+00 ! vx vy vz +931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill +1.18263271e+04 !particle radius in m +8.95238380e+06 6.51302794e+06 3.45161345e+04 ! x y z +-1.14800130e+03 1.59335172e+03 -7.03295250e+00 ! vx vy vz +932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill +5.75041368e+03 !particle radius in m +6.69475580e+06 -9.28551107e+06 -4.91541805e+04 ! x y z +1.59233658e+03 1.14243210e+03 1.78210731e+00 ! vx vy vz +933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill +1.20518923e+04 !particle radius in m +1.12760016e+07 1.84611316e+06 -7.48490699e+04 ! x y z +-2.79591330e+02 1.91267253e+03 -1.78025369e+00 ! vx vy vz +934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill +9.68470759e+03 !particle radius in m +-6.71328804e+03 9.68278345e+06 -5.52334404e+04 ! x y z +-2.08432418e+03 -8.54871802e+00 1.66064441e+01 ! vx vy vz +935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill +4.70574813e+03 !particle radius in m +-6.96627774e+06 9.23026738e+06 -2.87240918e+04 ! x y z +-1.52286258e+03 -1.17748048e+03 -3.95814303e+00 ! vx vy vz +936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill +4.67812785e+03 !particle radius in m +1.23905483e+05 -1.09739869e+07 1.36396267e+04 ! x y z +1.98817193e+03 2.04705438e+01 -2.01972620e+01 ! vx vy vz +937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill +6.51530333e+03 !particle radius in m +-6.63943360e+06 7.91940404e+06 6.09014325e+04 ! x y z +-1.56332740e+03 -1.31647658e+03 2.73931815e+01 ! vx vy vz +938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill +1.08866518e+04 !particle radius in m +5.51288052e+06 -8.48543006e+06 3.44011201e+04 ! x y z +1.72675322e+03 1.14606699e+03 -1.64108886e+00 ! vx vy vz +939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill +7.57891828e+03 !particle radius in m +-6.54081328e+06 -9.90968551e+06 -8.75124119e+02 ! x y z +1.59735811e+03 -1.02533687e+03 2.87435690e+01 ! vx vy vz +940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill +5.44560895e+03 !particle radius in m +-6.45935547e+06 -6.74639603e+06 -1.43260248e+04 ! x y z +1.55668948e+03 -1.48434496e+03 1.71287847e+00 ! vx vy vz +941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill +5.10514110e+03 !particle radius in m +6.10089271e+06 -7.18245737e+06 -1.54248190e+04 ! x y z +1.63416125e+03 1.39276630e+03 2.48510957e+00 ! vx vy vz +942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill +5.36280409e+03 !particle radius in m +4.82602306e+06 -8.03439545e+06 -7.67679872e+02 ! x y z +1.85073484e+03 1.06188550e+03 8.12750484e-01 ! vx vy vz +943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill +1.15239690e+04 !particle radius in m +4.44437862e+06 -9.91763988e+06 4.31307866e+04 ! x y z +1.80875755e+03 8.27020553e+02 -1.01329362e+01 ! vx vy vz +944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill +1.25055498e+04 !particle radius in m +-1.14222033e+07 -6.06408313e+06 4.03399165e+03 ! x y z +8.56095542e+02 -1.61207885e+03 -3.63239850e+00 ! vx vy vz +945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill +6.21936950e+03 !particle radius in m +7.76499151e+06 5.91861320e+06 3.34591110e+04 ! x y z +-1.26430519e+03 1.67125233e+03 9.81409163e+00 ! vx vy vz +946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill +6.76191251e+03 !particle radius in m +6.41969262e+05 9.07081567e+06 -7.35294633e+03 ! x y z +-2.17769789e+03 1.33895254e+02 1.52672754e+01 ! vx vy vz +947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill +3.91378509e+03 !particle radius in m +-1.06528591e+07 8.93880305e+06 -5.72463584e+04 ! x y z +-1.12548728e+03 -1.34323474e+03 6.06469294e+00 ! vx vy vz +948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill +7.48444340e+03 !particle radius in m +-3.19955637e+06 2.16099834e+07 -4.14759774e+03 ! x y z +-1.38306232e+03 -1.85981613e+02 8.81754791e+00 ! vx vy vz +949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill +6.88290450e+03 !particle radius in m +-1.10508713e+07 7.71301153e+06 -1.18282672e+05 ! x y z +-1.00552378e+03 -1.48763887e+03 9.37513940e+00 ! vx vy vz +950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill +8.01051874e+03 !particle radius in m +-6.84568402e+06 6.93126559e+06 -8.44628949e+04 ! x y z +-1.48797188e+03 -1.48762515e+03 1.55236862e+00 ! vx vy vz +951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill +1.12177675e+04 !particle radius in m +-4.99810043e+06 1.03574496e+07 4.97035769e+03 ! x y z +-1.74218913e+03 -8.42934517e+02 -8.95086256e+00 ! vx vy vz +952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill +1.23130257e+04 !particle radius in m +-5.22893040e+06 -8.08300727e+06 -6.54096012e+04 ! x y z +1.73636332e+03 -1.16550147e+03 -7.26670162e+00 ! vx vy vz +953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill +9.61558846e+03 !particle radius in m +8.48788962e+06 5.61313541e+06 -3.97847978e+04 ! x y z +-1.16430859e+03 1.69033461e+03 -1.63966122e+00 ! vx vy vz +954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill +6.71734597e+03 !particle radius in m +-8.10346206e+06 8.11251976e+06 -2.39530194e+04 ! x y z +-1.39528138e+03 -1.34141849e+03 -1.46583663e+01 ! vx vy vz +955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill +9.18590040e+03 !particle radius in m +1.01379295e+07 1.27148009e+07 1.28683748e+05 ! x y z +-1.25755832e+03 1.02459820e+03 2.79221586e+00 ! vx vy vz +956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill +4.34121509e+03 !particle radius in m +-3.34906408e+06 -1.45007656e+07 3.06724892e+04 ! x y z +1.65986723e+03 -3.87189481e+02 -1.20093781e+01 ! vx vy vz +957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill +7.35249155e+03 !particle radius in m +9.72284422e+06 5.24694587e+05 -2.03401805e+04 ! x y z +-1.64711568e+02 2.09599540e+03 2.03343245e+00 ! vx vy vz +958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill +1.24155280e+04 !particle radius in m +8.48073237e+06 4.51058486e+06 2.53523368e+04 ! x y z +-9.87084405e+02 1.87149600e+03 2.30788388e+01 ! vx vy vz +959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill +5.50275953e+03 !particle radius in m +6.45455163e+06 -7.63351792e+06 -1.42285814e+05 ! x y z +1.59381455e+03 1.33155701e+03 -4.40247600e+00 ! vx vy vz +960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill +6.51937434e+03 !particle radius in m +-8.78159278e+06 5.76426176e+06 9.09624378e+04 ! x y z +-1.08134022e+03 -1.71795196e+03 -8.73857909e-01 ! vx vy vz +961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill +6.21567016e+03 !particle radius in m +9.52925894e+06 6.10621713e+06 8.38784066e+04 ! x y z +-1.05186401e+03 1.64327133e+03 8.87777455e+00 ! vx vy vz +962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill +8.89237350e+03 !particle radius in m +1.01892854e+07 -1.36265120e+06 -1.12357324e+04 ! x y z +2.44094973e+02 2.01912416e+03 -1.23871747e+01 ! vx vy vz +963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill +1.22676172e+04 !particle radius in m +-9.44952303e+06 6.64794032e+05 2.66575883e+04 ! x y z +-1.65527486e+02 -2.12001832e+03 -2.00449290e+01 ! vx vy vz +964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill +5.92221816e+03 !particle radius in m +1.83154773e+05 -1.22553647e+07 8.81712635e+04 ! x y z +1.88138741e+03 4.37026901e+01 -1.09775010e+01 ! vx vy vz +965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill +1.05931042e+04 !particle radius in m +-7.97487196e+06 -9.77747428e+06 2.72278643e+04 ! x y z +1.43311159e+03 -1.15357841e+03 -9.89419786e+00 ! vx vy vz +966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill +1.20876047e+04 !particle radius in m +1.94057310e+06 1.10640858e+07 -6.67098464e+04 ! x y z +-1.92090005e+03 3.39961177e+02 9.93411747e+00 ! vx vy vz +967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill +9.86315310e+03 !particle radius in m +-4.65532155e+06 1.00459520e+07 1.92148265e+04 ! x y z +-1.79352379e+03 -7.96705869e+02 7.04140623e-01 ! vx vy vz +968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill +5.60495536e+03 !particle radius in m +-7.15394211e+06 8.89862789e+06 -1.32380207e+04 ! x y z +-1.51757568e+03 -1.20615223e+03 1.35463888e+01 ! vx vy vz +969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill +4.23356519e+03 !particle radius in m +-9.43261369e+06 7.11601450e+06 5.44346690e+03 ! x y z +-1.15890933e+03 -1.51651908e+03 -4.86353449e+00 ! vx vy vz +970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill +7.16866817e+03 !particle radius in m +4.46987922e+06 -7.54136153e+06 -1.75706858e+03 ! x y z +1.91337212e+03 1.12893149e+03 -4.46774330e+00 ! vx vy vz +971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill +4.90246515e+03 !particle radius in m +-1.19950136e+07 8.16218853e+05 1.95819347e+04 ! x y z +-1.42817655e+02 -1.87495301e+03 1.71449405e+00 ! vx vy vz +972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill +9.70236728e+03 !particle radius in m +-7.49210830e+06 -1.17675041e+07 3.09999690e+03 ! x y z +1.49945194e+03 -9.16839153e+02 1.04827746e+01 ! vx vy vz +973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill +7.89739710e+03 !particle radius in m +1.05050579e+07 -3.74118158e+06 2.63300605e+04 ! x y z +6.73610054e+02 1.82488852e+03 9.07423039e+00 ! vx vy vz +974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill +1.03228429e+04 !particle radius in m +4.89752221e+06 -8.85494139e+06 -6.75229080e+04 ! x y z +1.83164749e+03 9.48103081e+02 -1.57990456e+01 ! vx vy vz +975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill +4.82114680e+03 !particle radius in m +-4.94662921e+06 -8.78447645e+06 -1.52590989e+04 ! x y z +1.78359269e+03 -1.02161338e+03 3.01217587e+00 ! vx vy vz +976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill +8.51914826e+03 !particle radius in m +-2.76648508e+06 1.00209975e+07 1.12220539e+04 ! x y z +-1.94324711e+03 -5.66151040e+02 8.07071042e+00 ! vx vy vz +977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill +1.24634921e+04 !particle radius in m +8.29729830e+05 -9.56636031e+06 7.03935010e+04 ! x y z +2.11653601e+03 1.88209489e+02 4.94852919e+00 ! vx vy vz +978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill +3.80446929e+03 !particle radius in m +-9.93606780e+06 -1.91150532e+06 -4.47495052e+04 ! x y z +3.80453971e+02 -2.01867650e+03 -1.85403349e+01 ! vx vy vz +979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill +3.89556870e+03 !particle radius in m +-8.01896356e+06 1.37141963e+07 -5.15166167e+03 ! x y z +-1.39036186e+03 -8.35965747e+02 -1.59320152e+00 ! vx vy vz +980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill +5.72363723e+03 !particle radius in m +-1.85002148e+06 -8.80679540e+06 1.35544509e+04 ! x y z +2.13508260e+03 -4.62001715e+02 -1.42665412e+01 ! vx vy vz +981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill +4.75733808e+03 !particle radius in m +4.27594078e+06 -2.26843001e+07 -1.55793996e+05 ! x y z +1.32907578e+03 2.52657022e+02 -1.02801831e+01 ! vx vy vz +982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill +8.12492435e+03 !particle radius in m +-5.68991814e+06 -1.12264560e+07 -5.21915423e+04 ! x y z +1.65234255e+03 -8.32199277e+02 -1.84232859e+01 ! vx vy vz +983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill +9.27317292e+03 !particle radius in m +5.57078844e+06 -1.29122392e+07 2.98061387e+04 ! x y z +1.60978124e+03 6.76666256e+02 -1.81556760e+01 ! vx vy vz +984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill +1.20657022e+04 !particle radius in m +-9.23646620e+06 -3.48333300e+06 -5.66153126e+04 ! x y z +7.62840282e+02 -1.92758119e+03 -1.42885719e+01 ! vx vy vz +985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill +4.77169909e+03 !particle radius in m +-1.33386904e+07 -7.03492878e+06 5.22429887e+04 ! x y z +7.86090473e+02 -1.49627525e+03 -5.64598667e-01 ! vx vy vz +986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill +4.40136307e+03 !particle radius in m +-4.47610210e+06 -7.77281547e+06 -5.58878589e+04 ! x y z +1.89664270e+03 -1.07211196e+03 -5.72288054e+00 ! vx vy vz +987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill +8.44186160e+03 !particle radius in m +-9.07004249e+06 -3.73002016e+06 4.79325609e+04 ! x y z +7.83046085e+02 -1.94541887e+03 -4.25596103e-01 ! vx vy vz +988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill +1.17916085e+04 !particle radius in m +4.77535808e+06 2.28272957e+07 -1.30485185e+05 ! x y z +-1.33059311e+03 2.72226813e+02 1.17199136e+00 ! vx vy vz +989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill +9.56876735e+03 !particle radius in m +-6.57222396e+06 -6.18414714e+06 5.03770860e+03 ! x y z +1.49882331e+03 -1.57253167e+03 6.35917239e-01 ! vx vy vz +990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill +1.00365688e+04 !particle radius in m +1.29779524e+07 -6.46401216e+06 3.48941370e+04 ! x y z +7.80281531e+02 1.52896125e+03 1.61899666e+01 ! vx vy vz +991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill +1.08721841e+04 !particle radius in m +8.92019709e+06 1.13125647e+07 2.46536424e+04 ! x y z +-1.35073430e+03 1.07341543e+03 -2.21311295e+00 ! vx vy vz +992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill +6.20328692e+03 !particle radius in m +1.07245478e+07 -8.18329560e+06 2.13161879e+04 ! x y z +1.05166921e+03 1.44439805e+03 3.54109421e-01 ! vx vy vz +993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill +1.29798746e+04 !particle radius in m +-9.30550358e+06 8.66046042e+05 5.81017139e+04 ! x y z +-2.29894248e+02 -2.12058022e+03 1.24228458e+00 ! vx vy vz +994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill +1.16779401e+04 !particle radius in m +7.60186730e+06 8.86968517e+06 -2.74017031e+04 ! x y z +-1.43991356e+03 1.26760065e+03 4.33685357e+00 ! vx vy vz +995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill +1.17455396e+04 !particle radius in m +7.15301504e+06 -1.14025302e+07 6.70488022e+04 ! x y z +1.51419253e+03 9.18252451e+02 1.10269853e+01 ! vx vy vz +996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill +7.49470061e+03 !particle radius in m +1.23698701e+06 9.47565448e+06 3.23875154e+04 ! x y z +-2.10148424e+03 2.50074394e+02 -1.91619258e+01 ! vx vy vz +997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill +1.17682821e+04 !particle radius in m +-2.19991014e+06 -1.20488900e+07 1.28489104e+05 ! x y z +1.85062965e+03 -3.21678958e+02 -6.16390717e+00 ! vx vy vz +998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill +8.96400751e+03 !particle radius in m +-9.49865812e+06 -3.70460583e+06 1.09215654e+05 ! x y z +7.34938455e+02 -1.90450100e+03 -1.30332251e+00 ! vx vy vz +999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill +1.09312475e+04 !particle radius in m +1.16226476e+07 1.38150369e+06 -1.92583058e+04 ! x y z +-2.26381104e+02 1.88932307e+03 9.55895676e+00 ! vx vy vz +1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill +1.03367318e+04 !particle radius in m +2.15229887e+06 9.00160460e+06 -1.92923892e+04 ! x y z +-2.09656754e+03 4.96075668e+02 -1.16719539e+01 ! vx vy vz +1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill +9.04899661e+03 !particle radius in m +1.06770435e+06 1.09358139e+07 4.20062155e+03 ! x y z +-1.96462815e+03 1.83747788e+02 1.48559298e+00 ! vx vy vz +1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill +6.41462061e+03 !particle radius in m +-6.42789916e+06 -5.88137546e+06 5.96791682e+04 ! x y z +1.50006484e+03 -1.65201659e+03 -1.22137321e+01 ! vx vy vz +1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill +7.74973359e+03 !particle radius in m +-6.05164524e+06 -8.28607289e+06 -1.65389595e+03 ! x y z +1.67689384e+03 -1.17484360e+03 -6.18688546e+00 ! vx vy vz +1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill +9.34847201e+03 !particle radius in m +1.21489394e+07 1.95514302e+06 1.23709104e+05 ! x y z +-3.04295890e+02 1.85437159e+03 3.05804994e+00 ! vx vy vz +1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill +9.23516856e+03 !particle radius in m +7.58308846e+06 8.14384020e+06 6.98191668e+04 ! x y z +-1.44939292e+03 1.32522723e+03 3.40820153e+00 ! vx vy vz +1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill +8.37521886e+03 !particle radius in m +2.35699353e+06 8.90977821e+06 -1.38321436e+04 ! x y z +-2.07425100e+03 5.54407039e+02 3.21999470e+00 ! vx vy vz +1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill +9.56158017e+03 !particle radius in m +-6.64360612e+06 -9.33976004e+06 -1.15941594e+05 ! x y z +1.59144044e+03 -1.09353179e+03 -2.96304740e-01 ! vx vy vz +1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill +4.59864210e+03 !particle radius in m +1.19168220e+07 -3.45563255e+06 1.11394399e+04 ! x y z +5.17861579e+02 1.76812064e+03 1.39033798e+00 ! vx vy vz +1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill +3.98028346e+03 !particle radius in m +-9.71007247e+06 7.35807090e+06 -1.31989891e+05 ! x y z +-1.16325288e+03 -1.47233955e+03 8.07759554e+00 ! vx vy vz +1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill +1.21124859e+04 !particle radius in m +1.41799542e+06 -9.13902699e+06 4.24742676e+04 ! x y z +2.10898023e+03 3.21322532e+02 -1.26636042e+01 ! vx vy vz +1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill +8.98485858e+03 !particle radius in m +-1.08957227e+07 -1.70176619e+07 1.40648070e+05 ! x y z +1.21605254e+03 -8.04289078e+02 5.08636985e+00 ! vx vy vz +1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill +1.16900526e+04 !particle radius in m +-5.98329541e+06 8.30801044e+06 9.09812707e+03 ! x y z +-1.64846384e+03 -1.22236838e+03 2.54695878e+01 ! vx vy vz +1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill +8.45138479e+03 !particle radius in m +-4.65472167e+06 -7.85395586e+06 -5.30698954e+03 ! x y z +1.85738188e+03 -1.11675155e+03 9.77147330e+00 ! vx vy vz +1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill +1.04153730e+04 !particle radius in m +1.69188525e+07 8.47840581e+06 -4.67327616e+04 ! x y z +-6.66379185e+02 1.35677843e+03 1.32594121e+01 ! vx vy vz +1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill +1.12810669e+04 !particle radius in m +-7.04671066e+06 7.15586671e+06 -3.56479637e+04 ! x y z +-1.47400909e+03 -1.45932821e+03 -9.67794404e+00 ! vx vy vz +1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill +6.72689473e+03 !particle radius in m +7.33791533e+06 -9.58517692e+06 3.03846079e+04 ! x y z +1.49051721e+03 1.17984608e+03 -1.97955637e+01 ! vx vy vz +1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill +4.42153023e+03 !particle radius in m +1.21152578e+07 2.07326034e+05 4.57151931e+03 ! x y z +-2.18290977e+01 1.86989325e+03 -1.30418260e+01 ! vx vy vz +1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill +1.02802232e+04 !particle radius in m +-1.78690734e+06 9.20811486e+06 6.52613267e+03 ! x y z +-2.08865445e+03 -3.88689300e+02 7.21544338e+00 ! vx vy vz +1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill +5.50911894e+03 !particle radius in m +-6.29895686e+06 8.71900726e+06 -7.33711540e+03 ! x y z +-1.63469757e+03 -1.16304985e+03 4.84189753e+00 ! vx vy vz +1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill +1.25910224e+04 !particle radius in m +9.10086700e+06 -7.03219894e+06 -7.28785098e+04 ! x y z +1.17345937e+03 1.50811083e+03 -6.68343594e+00 ! vx vy vz +1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill +7.83571609e+03 !particle radius in m +-4.28807654e+06 -7.85915508e+06 2.65183664e+04 ! x y z +1.92700749e+03 -1.07363344e+03 6.86417879e+00 ! vx vy vz +1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill +6.08850399e+03 !particle radius in m +6.47343353e+06 8.23566063e+06 3.01013545e+04 ! x y z +-1.59000120e+03 1.26250583e+03 -1.25792680e+01 ! vx vy vz +1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill +1.24257689e+04 !particle radius in m +-8.70674127e+06 -2.94645030e+06 -2.92623754e+04 ! x y z +7.11914106e+02 -2.04951615e+03 1.66637378e+01 ! vx vy vz +1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill +1.07981562e+04 !particle radius in m +-1.75476786e+07 -1.12768402e+07 1.80639637e+05 ! x y z +7.59106783e+02 -1.22286396e+03 1.20937631e+00 ! vx vy vz +1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill +1.27803239e+04 !particle radius in m +7.04696388e+06 -1.10885823e+07 -6.17953039e+04 ! x y z +1.50498521e+03 9.91641405e+02 -4.14259212e-01 ! vx vy vz +1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill +6.26842061e+03 !particle radius in m +9.08053413e+06 1.73092917e+06 9.84209268e+03 ! x y z +-4.33130368e+02 2.10086011e+03 -1.06621334e+01 ! vx vy vz +1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill +1.20378926e+04 !particle radius in m +-3.00902975e+06 -1.32946373e+07 -5.90702502e+03 ! x y z +1.71319262e+03 -4.00878759e+02 -9.96066412e+00 ! vx vy vz +1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill +7.48414588e+03 !particle radius in m +-4.04201967e+06 -8.29248316e+06 -4.12753129e+03 ! x y z +1.92318448e+03 -9.71522928e+02 1.76717922e+01 ! vx vy vz +1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill +7.72799953e+03 !particle radius in m +1.75193620e+07 -2.65169374e+06 1.13236551e+05 ! x y z +2.30440171e+02 1.53861792e+03 6.99701915e+00 ! vx vy vz +1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill +9.98153536e+03 !particle radius in m +3.43641275e+06 -8.93033322e+06 -2.09644587e+04 ! x y z +1.99449709e+03 7.67681042e+02 -1.69978122e+00 ! vx vy vz +1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill +6.52068720e+03 !particle radius in m +-8.94110733e+06 -6.35904272e+06 -5.39789507e+04 ! x y z +1.10919784e+03 -1.62340625e+03 -3.28674782e+00 ! vx vy vz +1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill +5.81525514e+03 !particle radius in m +-1.30741810e+07 8.57418735e+06 -1.19905050e+03 ! x y z +-9.25024677e+02 -1.37017223e+03 4.97519787e+00 ! vx vy vz +1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill +1.29022874e+04 !particle radius in m +-2.54473466e+06 1.02641366e+07 -6.03109093e+04 ! x y z +-1.94287173e+03 -5.03549968e+02 -1.40714774e+00 ! vx vy vz +1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill +3.75520420e+03 !particle radius in m +-2.05229123e+06 1.07524321e+07 -3.91281600e+04 ! x y z +-1.94369561e+03 -3.72923016e+02 -4.66840760e+00 ! vx vy vz +1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill +8.49458734e+03 !particle radius in m +9.81310678e+06 -6.45686284e+06 -8.14126007e+04 ! x y z +1.04337462e+03 1.60488987e+03 -6.74659876e+00 ! vx vy vz +1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill +1.19130613e+04 !particle radius in m +6.87800371e+06 5.51073017e+06 -5.46411638e+04 ! x y z +-1.36034802e+03 1.74332100e+03 4.94690697e+00 ! vx vy vz +1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill +6.07042423e+03 !particle radius in m +-1.07553881e+07 -9.12112446e+05 -4.34386235e+04 ! x y z +1.54461489e+02 -1.98147483e+03 -1.70607618e+01 ! vx vy vz +1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill +4.61293151e+03 !particle radius in m +1.27377380e+07 -1.09778054e+05 -6.19904167e+04 ! x y z +-1.25732694e+00 1.84331966e+03 -2.21143255e+00 ! vx vy vz +1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill +1.04833644e+04 !particle radius in m +-5.13284511e+05 -1.67637883e+07 -2.82433912e+03 ! x y z +1.59521599e+03 -5.35780376e+01 1.00615428e+01 ! vx vy vz +1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill +4.48908069e+03 !particle radius in m +-1.26602775e+07 4.02918646e+05 1.71412707e+04 ! x y z +-5.95275114e+01 -1.83478145e+03 -6.71275300e+00 ! vx vy vz +1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill +6.14880277e+03 !particle radius in m +6.61475732e+05 1.19251089e+07 4.99716805e+03 ! x y z +-1.89472956e+03 8.25618952e+01 -1.61809802e-01 ! vx vy vz +1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill +3.82885081e+03 !particle radius in m +8.80868758e+06 9.32656348e+05 -4.18862348e+04 ! x y z +-2.17867324e+02 2.19123384e+03 -1.17898705e+01 ! vx vy vz +1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill +5.19573642e+03 !particle radius in m +1.00480766e+07 1.10334466e+05 4.24190753e+04 ! x y z +-1.56774101e+01 2.05584808e+03 1.80904032e+01 ! vx vy vz +1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill +5.90842447e+03 !particle radius in m +-2.68410660e+06 -8.45093049e+06 -2.25369168e+04 ! x y z +2.08071561e+03 -7.11201230e+02 1.07896227e+01 ! vx vy vz +1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill +7.70557245e+03 !particle radius in m +-2.49395661e+06 -1.01785537e+07 4.67622537e+04 ! x y z +1.97783372e+03 -4.46467141e+02 1.43639227e+01 ! vx vy vz +1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill +1.14515690e+04 !particle radius in m +-5.37771504e+06 7.44714074e+06 -6.06003060e+03 ! x y z +-1.75372901e+03 -1.25777673e+03 1.33051245e+01 ! vx vy vz +1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill +7.93728841e+03 !particle radius in m +1.43736621e+07 3.27074646e+06 -1.17711231e+05 ! x y z +-3.95229369e+02 1.65048180e+03 -2.09427051e+00 ! vx vy vz +1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill +9.36932395e+03 !particle radius in m +-8.93375487e+06 -9.23297021e+05 -5.56404103e+04 ! x y z +2.58345498e+02 -2.18331951e+03 -1.86368551e+01 ! vx vy vz +1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill +9.07144821e+03 !particle radius in m +-1.28280097e+07 8.91411489e+06 -1.59387089e+04 ! x y z +-9.55988990e+02 -1.37339914e+03 -9.51566283e-01 ! vx vy vz +1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill +9.91610503e+03 !particle radius in m +-1.22031914e+07 8.75617467e+06 1.35904643e+05 ! x y z +-1.01713019e+03 -1.34842008e+03 -1.53941683e+00 ! vx vy vz +1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill +7.60958719e+03 !particle radius in m +-1.81887078e+05 1.09247030e+07 -4.35726533e+04 ! x y z +-1.97588122e+03 -8.11807516e+00 -3.92064501e+00 ! vx vy vz +1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill +4.74157034e+03 !particle radius in m +2.83878155e+06 1.44744864e+07 5.43842125e+04 ! x y z +-1.65421841e+03 3.29251794e+02 -6.23680908e+00 ! vx vy vz +1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill +8.45889329e+03 !particle radius in m +1.06135506e+07 -4.48083559e+05 1.72504569e+04 ! x y z +9.44982902e+01 2.00633631e+03 9.90801265e-01 ! vx vy vz +1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill +1.07608492e+04 !particle radius in m +8.75139394e+06 -2.04107097e+07 -1.06034326e+05 ! x y z +1.29371288e+03 5.52007802e+02 5.05180489e-01 ! vx vy vz +1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill +6.96494702e+03 !particle radius in m +1.42098400e+07 1.83559068e+06 -6.61680518e+04 ! x y z +-2.13356829e+02 1.72148688e+03 1.01500659e+01 ! vx vy vz +1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill +8.53818219e+03 !particle radius in m +1.55907651e+07 5.91768331e+06 -8.22551540e+04 ! x y z +-5.54998648e+02 1.51448714e+03 -1.24785663e+01 ! vx vy vz +1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill +9.64323129e+03 !particle radius in m +7.38866883e+06 1.67469371e+07 -5.52080317e+04 ! x y z +-1.39370270e+03 6.17614086e+02 4.21088917e+00 ! vx vy vz +1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill +9.69401392e+03 !particle radius in m +-5.32551208e+06 -7.90474847e+06 -3.86152280e+04 ! x y z +1.76379265e+03 -1.19032254e+03 1.04687204e+01 ! vx vy vz +1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill +8.64149686e+03 !particle radius in m +1.09164841e+07 -7.03739746e+06 2.56807871e+04 ! x y z +9.98839941e+02 1.51559226e+03 -2.93169292e+00 ! vx vy vz +1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill +1.08320270e+04 !particle radius in m +-6.83243259e+06 -5.66828831e+06 -1.72900877e+04 ! x y z +1.43365173e+03 -1.68974702e+03 2.09850405e+00 ! vx vy vz +1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill +7.82246015e+03 !particle radius in m +6.82803774e+06 -5.76411607e+06 5.47258325e+04 ! x y z +1.40722674e+03 1.66603602e+03 1.74552894e+01 ! vx vy vz +1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill +6.65894479e+03 !particle radius in m +9.35446321e+06 4.27959887e+06 1.44633990e+04 ! x y z +-8.44145057e+02 1.86728709e+03 8.45220846e+00 ! vx vy vz +1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill +9.04919131e+03 !particle radius in m +-8.81635825e+06 6.95372208e+06 5.99171831e+04 ! x y z +-1.18658772e+03 -1.54806956e+03 -4.34306118e-01 ! vx vy vz +1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill +9.36295974e+03 !particle radius in m +3.76533406e+06 -1.36831259e+07 -4.52559471e+04 ! x y z +1.65006231e+03 5.02310012e+02 -7.82371716e+00 ! vx vy vz +1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill +8.43279516e+03 !particle radius in m +8.66363031e+06 -3.01551364e+06 1.87644792e+04 ! x y z +6.94997160e+02 2.04127247e+03 4.50266436e+00 ! vx vy vz +1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill +1.26327938e+04 !particle radius in m +-1.81171981e+06 1.18614317e+07 -9.45077050e+04 ! x y z +-1.85854649e+03 -2.65883958e+02 1.03797168e+01 ! vx vy vz +1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill +1.27711174e+04 !particle radius in m +-5.75108647e+06 -9.00212328e+06 2.40243267e+04 ! x y z +1.69440892e+03 -1.07016945e+03 -1.54605015e+01 ! vx vy vz +1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill +7.77084017e+03 !particle radius in m +1.89490021e+06 8.84022962e+06 2.80656936e+04 ! x y z +-2.12712367e+03 4.54322162e+02 -6.09085901e+00 ! vx vy vz +1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill +7.50283352e+03 !particle radius in m +-2.84338801e+06 -8.43577004e+06 -3.58252007e+04 ! x y z +2.07616764e+03 -6.90414631e+02 7.86561001e+00 ! vx vy vz +1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill +1.03379039e+04 !particle radius in m +7.23228604e+06 8.21987628e+06 -1.12362711e+05 ! x y z +-1.50075767e+03 1.29503859e+03 -4.22019044e+00 ! vx vy vz +1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill +1.21350477e+04 !particle radius in m +9.59011374e+06 -1.47240572e+06 -1.17481033e+04 ! x y z +3.06970553e+02 2.09485379e+03 2.11775305e+00 ! vx vy vz +1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill +4.53610253e+03 !particle radius in m +1.68353028e+07 -5.98357187e+06 1.37705248e+04 ! x y z +4.97655007e+02 1.46172367e+03 -1.17361347e+01 ! vx vy vz +1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill +9.63170656e+03 !particle radius in m +-1.80713745e+07 3.81143072e+06 1.47991860e+05 ! x y z +-3.34463620e+02 -1.47042095e+03 -2.39441838e+00 ! vx vy vz +1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill +1.30247028e+04 !particle radius in m +8.12437675e+06 -7.89692091e+06 8.58861149e+04 ! x y z +1.36700546e+03 1.38057019e+03 -5.74921289e+00 ! vx vy vz +1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill +5.43842039e+03 !particle radius in m +6.94978876e+06 -5.59183335e+06 2.41251511e+04 ! x y z +1.34132445e+03 1.72532099e+03 1.12041963e+00 ! vx vy vz +1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill +6.59671726e+03 !particle radius in m +-1.18687337e+07 -8.19186254e+06 -8.44898067e+04 ! x y z +9.75684146e+02 -1.41995661e+03 -1.13753956e+00 ! vx vy vz +1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill +1.23341623e+04 !particle radius in m +-1.89628928e+06 -9.50227023e+06 -4.05755726e+04 ! x y z +2.07857991e+03 -4.30149853e+02 -4.45053647e+00 ! vx vy vz +1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill +6.80723430e+03 !particle radius in m +1.01428084e+07 1.53976563e+06 -1.56033963e+05 ! x y z +-3.05629291e+02 2.00359721e+03 3.06409701e-02 ! vx vy vz +1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill +7.05013076e+03 !particle radius in m +3.99603404e+06 7.86593577e+06 5.11268274e+04 ! x y z +-1.97467205e+03 9.78734350e+02 8.42153677e+00 ! vx vy vz +1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill +8.61895511e+03 !particle radius in m +6.54388805e+06 -6.77023287e+06 -4.59748352e+03 ! x y z +1.54444266e+03 1.46455300e+03 -1.04095061e+01 ! vx vy vz +1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill +7.06396397e+03 !particle radius in m +6.04468294e+06 8.82617315e+06 -1.42181890e+05 ! x y z +-1.63233809e+03 1.16910466e+03 -1.88213215e+00 ! vx vy vz +1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill +9.70947993e+03 !particle radius in m +-1.11170150e+07 6.16749342e+06 -3.82809291e+04 ! x y z +-8.98686306e+02 -1.59525493e+03 2.55769594e+00 ! vx vy vz +1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill +1.25718686e+04 !particle radius in m +1.25437094e+06 -1.67969561e+07 -1.36312584e+04 ! x y z +1.58470452e+03 1.21111055e+02 3.59330822e+00 ! vx vy vz +1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill +8.05778982e+03 !particle radius in m +8.43800086e+06 5.71987949e+06 -3.20922412e+04 ! x y z +-1.14330692e+03 1.67937737e+03 -4.35374922e+00 ! vx vy vz +1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill +6.21936681e+03 !particle radius in m +-8.36235204e+06 -4.06735446e+06 1.77837069e+04 ! x y z +9.27393629e+02 -1.94041308e+03 2.61389295e+00 ! vx vy vz +1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill +1.02373037e+04 !particle radius in m +-2.57151201e+06 -1.54968676e+07 -9.11168853e+04 ! x y z +1.63776183e+03 -2.76257315e+02 2.80266971e-01 ! vx vy vz +1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill +8.30015495e+03 !particle radius in m +8.66211969e+06 2.20644842e+06 5.69512514e+03 ! x y z +-5.34166852e+02 2.11025355e+03 7.04563819e+00 ! vx vy vz +1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill +1.24143522e+04 !particle radius in m +2.50735051e+06 -9.08802531e+06 1.47619891e+03 ! x y z +2.03247718e+03 5.95768658e+02 -1.11711400e+01 ! vx vy vz +1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill +1.10252975e+04 !particle radius in m +-5.08664524e+06 8.37497108e+06 -9.90101269e+04 ! x y z +-1.78382195e+03 -1.07772723e+03 -8.86422219e+00 ! vx vy vz +1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill +6.11794676e+03 !particle radius in m +-1.16840844e+07 -1.15084512e+07 8.57597825e+04 ! x y z +1.14349612e+03 -1.15014615e+03 -1.13350767e+01 ! vx vy vz +1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill +9.88813712e+03 !particle radius in m +1.06943121e+06 -9.45008765e+06 3.56309722e+04 ! x y z +2.11041887e+03 2.12664792e+02 3.02388980e-01 ! vx vy vz +1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill +1.08983650e+04 !particle radius in m +5.08433832e+06 -9.29067904e+06 4.27842439e+04 ! x y z +1.77269334e+03 9.63287806e+02 7.20636543e-01 ! vx vy vz +1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill +1.27437222e+04 !particle radius in m +2.28470278e+06 -8.96024162e+06 4.66696872e+04 ! x y z +2.09182568e+03 5.58957357e+02 -1.60064381e+01 ! vx vy vz +1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill +5.15400237e+03 !particle radius in m +5.02334401e+06 7.15122722e+06 -2.56747414e+04 ! x y z +-1.82437670e+03 1.28647622e+03 -2.33583185e+00 ! vx vy vz +1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill +7.51992756e+03 !particle radius in m +8.03755250e+06 -5.51691122e+06 -2.97535232e+04 ! x y z +1.18216983e+03 1.74141617e+03 -1.17374833e+01 ! vx vy vz +1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill +1.26569454e+04 !particle radius in m +-3.07464536e+06 -8.53282891e+06 -1.60914047e+04 ! x y z +2.04872286e+03 -7.58617715e+02 -1.15594518e+01 ! vx vy vz +1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill +6.15739547e+03 !particle radius in m +-5.04841460e+06 7.90245442e+06 -3.74769403e+03 ! x y z +-1.79658551e+03 -1.15333901e+03 -1.03989828e+01 ! vx vy vz +1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill +9.40452184e+03 !particle radius in m +-4.42483219e+06 7.92889737e+06 4.84429526e+03 ! x y z +-1.90157556e+03 -1.02851509e+03 3.04297458e+00 ! vx vy vz +1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill +1.03819185e+04 !particle radius in m +-8.11772737e+06 5.17820457e+06 6.33191218e+04 ! x y z +-1.16398577e+03 -1.76329084e+03 -1.46526563e+01 ! vx vy vz +1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill +1.21420799e+04 !particle radius in m +-2.42335217e+06 -1.21748818e+07 5.34958561e+04 ! x y z +1.82657196e+03 -3.58482164e+02 2.17635181e+00 ! vx vy vz +1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill +9.74673448e+03 !particle radius in m +-8.93954505e+06 -4.45366726e+06 9.09497729e+03 ! x y z +9.19578118e+02 -1.84128399e+03 1.10716364e+01 ! vx vy vz +1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill +7.59675917e+03 !particle radius in m +-1.18899005e+07 -1.11121035e+07 7.33607503e+03 ! x y z +1.10060063e+03 -1.20094721e+03 -1.56817575e+01 ! vx vy vz +1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill +8.13412353e+03 !particle radius in m +-1.65295735e+07 6.07637672e+06 3.45373521e+04 ! x y z +-5.42846771e+02 -1.47237923e+03 2.24703732e+00 ! vx vy vz +1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill +7.24844729e+03 !particle radius in m +8.55996783e+06 -1.26469693e+07 -1.46558216e+05 ! x y z +1.40714271e+03 9.26431770e+02 -1.15490272e+01 ! vx vy vz +1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill +1.10917006e+04 !particle radius in m +5.19156391e+06 -2.05131401e+07 3.01682271e+04 ! x y z +1.38483992e+03 3.58833296e+02 7.82967392e-02 ! vx vy vz +1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill +8.62523974e+03 !particle radius in m +-1.04637869e+07 -1.51846657e+06 -3.27030757e+04 ! x y z +3.09759590e+02 -1.99538112e+03 5.67233805e+00 ! vx vy vz +1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill +4.97611563e+03 !particle radius in m +1.03065892e+07 -6.00329704e+05 -2.32121119e+04 ! x y z +1.34736424e+02 2.02883986e+03 3.23964316e+00 ! vx vy vz +1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill +5.60741952e+03 !particle radius in m +-1.14276246e+07 -1.75001038e+06 -9.86471787e+04 ! x y z +2.92929450e+02 -1.89771028e+03 5.40774568e-01 ! vx vy vz +1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill +6.34126039e+03 !particle radius in m +1.88192745e+07 7.35750851e+06 -3.59880986e+04 ! x y z +-5.35957066e+02 1.35808817e+03 -5.10111289e+00 ! vx vy vz +1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill +1.01601058e+04 !particle radius in m +1.11584259e+07 -4.47796771e+06 1.03803467e+04 ! x y z +7.28310338e+02 1.76604469e+03 1.45396412e+01 ! vx vy vz +1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill +6.11251206e+03 !particle radius in m +3.38442251e+06 -9.82784424e+06 -1.36230396e+05 ! x y z +1.90939863e+03 7.30865853e+02 1.53565819e+01 ! vx vy vz +1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill +5.52931152e+03 !particle radius in m +-1.26252231e+07 -6.33455275e+05 -1.30864139e+05 ! x y z +9.33992929e+01 -1.83668276e+03 1.68626587e+00 ! vx vy vz +1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill +3.95688360e+03 !particle radius in m +-1.20379515e+07 7.22168436e+05 8.94591753e+04 ! x y z +-1.09103316e+02 -1.88101208e+03 -4.79548889e-01 ! vx vy vz +1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill +5.97839539e+03 !particle radius in m +9.86523103e+06 -1.83199282e+06 -1.01434913e+05 ! x y z +3.62371838e+02 2.01111356e+03 -2.79275007e+00 ! vx vy vz +1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill +6.83551180e+03 !particle radius in m +-6.51672994e+06 8.58292997e+06 -5.02195539e+04 ! x y z +-1.57720017e+03 -1.21482386e+03 -6.46438464e+00 ! vx vy vz +1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill +1.06723682e+04 !particle radius in m +-6.45748170e+06 -6.60771754e+06 -2.88111990e+04 ! x y z +1.51807464e+03 -1.53717383e+03 -6.96952587e+00 ! vx vy vz +1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill +4.01775686e+03 !particle radius in m +-1.05725448e+07 -5.16101098e+06 -7.22185112e+04 ! x y z +8.09611157e+02 -1.71812375e+03 -2.92698073e+00 ! vx vy vz +1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill +4.77864994e+03 !particle radius in m +1.47903230e+07 -3.70476681e+06 8.67755187e+04 ! x y z +3.95094726e+02 1.62426955e+03 3.16826057e+00 ! vx vy vz +1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill +8.07383748e+03 !particle radius in m +-4.36058679e+05 -9.44156206e+06 -4.16955929e+04 ! x y z +2.12091782e+03 -1.37012120e+02 1.39491466e+01 ! vx vy vz +1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill +1.18046777e+04 !particle radius in m +-1.46392393e+07 1.63813686e+07 8.12078291e+03 ! x y z +-1.02836410e+03 -9.42723860e+02 -1.38765972e+01 ! vx vy vz +1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill +9.27790681e+03 !particle radius in m +9.24634424e+06 -1.31047137e+06 -7.09194003e+04 ! x y z +3.02062155e+02 2.11565604e+03 -9.58265694e+00 ! vx vy vz +1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill +1.26875944e+04 !particle radius in m +-7.40684320e+06 6.13173465e+06 -3.12795630e+04 ! x y z +-1.33749169e+03 -1.62866413e+03 1.56290098e+01 ! vx vy vz +1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill +9.65761978e+03 !particle radius in m +9.78515626e+06 -5.26138525e+05 -7.59982349e+03 ! x y z +1.11181620e+02 2.08934488e+03 -1.89984631e+00 ! vx vy vz +1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill +8.79721090e+03 !particle radius in m +-2.42960077e+06 1.02657010e+07 6.86680195e+04 ! x y z +-1.96613992e+03 -4.70552640e+02 -5.76191698e+00 ! vx vy vz +1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill +1.29531974e+04 !particle radius in m +-2.99090493e+06 -9.38394150e+06 1.22754087e+04 ! x y z +1.96346362e+03 -6.64206351e+02 -1.04286573e+01 ! vx vy vz +1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill +7.34663539e+03 !particle radius in m +-9.16858859e+06 3.17229706e+06 4.94776739e+02 ! x y z +-6.65048356e+02 -2.00655681e+03 -1.69698250e+01 ! vx vy vz +1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill +4.49675212e+03 !particle radius in m +1.02698965e+07 8.30732914e+06 1.14137300e+05 ! x y z +-1.13322876e+03 1.37969911e+03 -4.16855749e+00 ! vx vy vz +1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill +4.62423780e+03 !particle radius in m +-6.04360154e+06 -8.98719524e+06 -6.31025271e+04 ! x y z +1.63921724e+03 -1.11262949e+03 4.86167037e+00 ! vx vy vz +1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill +1.03148143e+04 !particle radius in m +-9.35912101e+06 -1.03642068e+07 -2.18384299e+03 ! x y z +1.30072422e+03 -1.17573948e+03 1.88668155e+00 ! vx vy vz +1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill +1.30814562e+04 !particle radius in m +1.04675718e+07 3.39520028e+06 2.70864639e+04 ! x y z +-5.97065438e+02 1.88145152e+03 -6.95974089e+00 ! vx vy vz +1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill +4.86540530e+03 !particle radius in m +-6.73236505e+06 6.13242839e+06 -2.94703322e+04 ! x y z +-1.45294617e+03 -1.61318512e+03 -5.68499388e+00 ! vx vy vz +1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill +7.59556962e+03 !particle radius in m +4.89468690e+06 -1.07083932e+07 7.90151606e+04 ! x y z +1.76528528e+03 7.71676536e+02 -3.89405176e+00 ! vx vy vz +1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill +1.12715321e+04 !particle radius in m +-1.37917712e+07 -7.88960798e+06 -6.85787993e+04 ! x y z +8.27177105e+02 -1.42633285e+03 -6.22498397e+00 ! vx vy vz +1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill +1.18793884e+04 !particle radius in m +-7.34584547e+06 1.44613839e+07 -9.00207198e+04 ! x y z +-1.43737968e+03 -7.51623709e+02 1.07613671e+01 ! vx vy vz +1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill +1.17356962e+04 !particle radius in m +-2.70350276e+05 -9.01638261e+06 4.48528244e+04 ! x y z +2.19935586e+03 -5.92167058e+01 -1.37345562e+00 ! vx vy vz +1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill +1.20336065e+04 !particle radius in m +-7.93634451e+06 -1.07127629e+07 7.42071719e+04 ! x y z +1.44011604e+03 -1.07152360e+03 -9.74704513e-01 ! vx vy vz +1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill +5.53448930e+03 !particle radius in m +-3.42691664e+06 -9.05425003e+06 -2.11677870e+04 ! x y z +1.93479037e+03 -7.69981245e+02 1.10419971e+01 ! vx vy vz +1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill +6.64595045e+03 !particle radius in m +-9.89233738e+06 -6.27568084e+05 6.18194671e+03 ! x y z +1.37071969e+02 -2.08621493e+03 4.72062753e+00 ! vx vy vz +1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill +5.93131938e+03 !particle radius in m +7.46340614e+06 9.67912332e+06 1.17459472e+04 ! x y z +-1.47885193e+03 1.13911499e+03 4.40806749e+00 ! vx vy vz +1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill +1.22283672e+04 !particle radius in m +6.85478382e+06 1.15701707e+07 7.95650274e+04 ! x y z +-1.53423752e+03 9.32610677e+02 -3.67365305e+00 ! vx vy vz +1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill +4.46580449e+03 !particle radius in m +-4.56370068e+06 1.10908559e+07 1.08265365e+04 ! x y z +-1.75802463e+03 -7.02357275e+02 1.04220113e+01 ! vx vy vz +1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill +5.09070290e+03 !particle radius in m +-1.13385925e+07 2.97597054e+06 -4.72391617e+04 ! x y z +-5.04596574e+02 -1.84477964e+03 1.31785708e-01 ! vx vy vz +1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill +1.10285723e+04 !particle radius in m +-9.23261955e+06 -2.89252814e+05 -5.44687237e+04 ! x y z +6.51671796e+01 -2.14992673e+03 -1.81624856e+00 ! vx vy vz +1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill +6.13224460e+03 !particle radius in m +1.09075289e+06 1.05119561e+07 -3.25858255e+04 ! x y z +-1.99773044e+03 1.99785681e+02 4.03938771e+00 ! vx vy vz +1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill +5.39522124e+03 !particle radius in m +5.52516207e+06 8.11277010e+06 -1.90841913e+04 ! x y z +-1.72426706e+03 1.18446430e+03 1.21936026e+01 ! vx vy vz +1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill +9.52144317e+03 !particle radius in m +-4.65951061e+05 1.02295404e+07 5.94558150e+04 ! x y z +-2.05121750e+03 -9.71822097e+01 -1.16001667e+01 ! vx vy vz +1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill +1.28507675e+04 !particle radius in m +1.19722664e+07 -1.64049398e+06 8.58821045e+04 ! x y z +2.34549789e+02 1.85980680e+03 1.09499792e+01 ! vx vy vz +1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill +6.87517236e+03 !particle radius in m +-1.08162591e+06 1.14927584e+07 -9.76059282e+04 ! x y z +-1.93051044e+03 -1.62077695e+02 -7.14665732e+00 ! vx vy vz +1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill +1.14550311e+04 !particle radius in m +-1.95233176e+06 1.02927697e+07 -2.00724108e+04 ! x y z +-1.97843014e+03 -3.85350221e+02 1.08497627e+01 ! vx vy vz +1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill +1.02022521e+04 !particle radius in m +6.15222182e+06 -9.75312655e+06 1.28837233e+04 ! x y z +1.61895964e+03 1.04728187e+03 -1.26702028e+01 ! vx vy vz +1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill +3.81889352e+03 !particle radius in m +1.70431842e+07 -2.72492428e+06 -3.86028806e+04 ! x y z +2.83672553e+02 1.54910187e+03 2.07904021e+01 ! vx vy vz +1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill +6.24153051e+03 !particle radius in m +8.01774299e+06 8.09902023e+06 -2.62747132e+04 ! x y z +-1.35353621e+03 1.36013542e+03 7.64569924e+00 ! vx vy vz +1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill +9.14684621e+03 !particle radius in m +3.29923819e+06 8.68923966e+06 -8.36350791e+03 ! x y z +-2.01828563e+03 7.65043187e+02 -1.46373885e+01 ! vx vy vz +1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill +1.21866490e+04 !particle radius in m +9.48630114e+06 1.31203942e+07 7.51325437e+04 ! x y z +-1.33995755e+03 9.53539277e+02 6.46323587e+00 ! vx vy vz +1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill +5.43931264e+03 !particle radius in m +9.01020062e+06 -9.02772630e+05 1.38704984e+04 ! x y z +2.41367313e+02 2.16126190e+03 7.68455544e+00 ! vx vy vz +1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill +1.23597622e+04 !particle radius in m +-8.09665807e+06 -7.58547860e+06 3.14674691e+04 ! x y z +1.35669172e+03 -1.43426598e+03 7.37210686e+00 ! vx vy vz +1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill +6.63452075e+03 !particle radius in m +4.28160432e+06 -1.65281080e+07 -8.26509117e+03 ! x y z +1.53190957e+03 3.88184614e+02 1.24754943e+01 ! vx vy vz +1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill +8.88282855e+03 !particle radius in m +6.49256441e+05 9.31973535e+06 4.08167273e+04 ! x y z +-2.15470427e+03 1.51716056e+02 1.89189290e+01 ! vx vy vz +1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill +1.19572707e+04 !particle radius in m +-9.20065102e+05 -9.43874908e+06 -2.04752392e+04 ! x y z +2.12475295e+03 -2.35100552e+02 7.76090899e+00 ! vx vy vz +1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill +4.99450465e+03 !particle radius in m +4.31072822e+06 9.13284291e+06 4.14102022e+04 ! x y z +-1.85476950e+03 9.03328979e+02 -1.46829604e+00 ! vx vy vz +1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill +4.68119614e+03 !particle radius in m +-6.79093976e+06 8.03119054e+06 -7.05744289e+04 ! x y z +-1.52734163e+03 -1.29554248e+03 1.30181520e+01 ! vx vy vz +1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill +1.02582029e+04 !particle radius in m +-1.04804105e+07 -1.20577935e+06 3.31638534e+04 ! x y z +2.13664871e+02 -2.01046058e+03 -7.98031732e+00 ! vx vy vz +1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill +1.10767611e+04 !particle radius in m +-7.18067628e+06 -6.29465669e+06 -5.18935266e+04 ! x y z +1.39765048e+03 -1.60192161e+03 7.92302858e+00 ! vx vy vz +1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill +1.22495029e+04 !particle radius in m +-8.66772744e+06 -7.93918786e+06 3.66255031e+04 ! x y z +1.28753321e+03 -1.40570993e+03 1.04442422e+01 ! vx vy vz +1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill +5.77278675e+03 !particle radius in m +-4.13157626e+06 -2.06445199e+07 1.15039089e+05 ! x y z +1.39928757e+03 -2.67584358e+02 -6.80453610e-01 ! vx vy vz +1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill +1.24869874e+04 !particle radius in m +2.86527664e+04 -1.30135384e+07 9.46703562e+04 ! x y z +1.82137923e+03 3.52269823e+01 6.17347097e+00 ! vx vy vz +1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill +8.27206772e+03 !particle radius in m +9.61204633e+06 2.11550317e+06 -1.01612254e+05 ! x y z +-4.54369173e+02 2.03897871e+03 -3.85711771e-01 ! vx vy vz +1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill +4.77668965e+03 !particle radius in m +8.56305753e+06 3.83573915e+06 2.26223304e+04 ! x y z +-8.87660780e+02 1.95010957e+03 -6.47697797e+00 ! vx vy vz +1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill +7.71689197e+03 !particle radius in m +7.06863637e+05 1.69810271e+07 1.26105980e+05 ! x y z +-1.58048060e+03 4.41879800e+01 4.04119984e+00 ! vx vy vz +1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill +5.87643861e+03 !particle radius in m +-5.44027365e+06 8.90923003e+06 -1.91872642e+02 ! x y z +-1.72578284e+03 -1.05328021e+03 2.75794079e+00 ! vx vy vz +1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill +7.82919405e+03 !particle radius in m +-3.84222450e+06 8.52500722e+06 5.13399679e+04 ! x y z +-1.95749070e+03 -8.88579162e+02 4.05131851e+00 ! vx vy vz +1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill +6.45958637e+03 !particle radius in m +-1.04764717e+07 1.11206338e+07 -1.83995722e+05 ! x y z +-1.21578555e+03 -1.15954535e+03 1.26396174e+00 ! vx vy vz +1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill +1.04808440e+04 !particle radius in m +9.91080561e+06 7.33219213e+06 -1.96182672e+04 ! x y z +-1.10289136e+03 1.51166868e+03 8.55255590e-01 ! vx vy vz +1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill +4.63255599e+03 !particle radius in m +-6.34641421e+06 1.11675051e+07 -1.12534756e+05 ! x y z +-1.58363204e+03 -9.07829510e+02 -3.73545248e+00 ! vx vy vz +1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill +8.31806943e+03 !particle radius in m +-9.60844812e+06 -1.70444496e+07 1.09767306e+04 ! x y z +1.30061497e+03 -7.22601223e+02 5.04626944e+00 ! vx vy vz +1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill +6.70205230e+03 !particle radius in m +3.30176954e+06 8.21216858e+06 2.33957768e+04 ! x y z +-2.06647672e+03 8.14303416e+02 -3.27813568e-01 ! vx vy vz +1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill +6.98637011e+03 !particle radius in m +-3.56455427e+06 1.04513814e+07 9.13561134e+04 ! x y z +-1.86227880e+03 -6.46156347e+02 -1.84370397e+01 ! vx vy vz +1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill +1.22955075e+04 !particle radius in m +1.01719252e+07 6.26688339e+05 3.49609062e+04 ! x y z +-1.13334526e+02 2.03525342e+03 3.73100714e+00 ! vx vy vz +1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill +1.15884099e+04 !particle radius in m +6.79475129e+06 -6.15725925e+06 -4.34005132e+04 ! x y z +1.43607392e+03 1.60794893e+03 9.89854216e+00 ! vx vy vz +1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill +1.13200016e+04 !particle radius in m +3.31203426e+06 1.26977181e+07 1.61925621e+04 ! x y z +-1.75290457e+03 4.51047834e+02 -6.90112778e+00 ! vx vy vz +1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill +4.85825960e+03 !particle radius in m +-5.28465980e+06 9.08656562e+06 5.60870045e+04 ! x y z +-1.73422854e+03 -1.05901334e+03 1.51078632e+01 ! vx vy vz +1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill +1.03155828e+04 !particle radius in m +-4.41381530e+06 -1.31465095e+07 1.23851466e+05 ! x y z +1.64911245e+03 -5.92288633e+02 -5.00592030e+00 ! vx vy vz +1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill +4.71217038e+03 !particle radius in m +1.58308263e+07 -4.73628624e+05 -2.19545030e+04 ! x y z +5.84709400e+01 1.64641342e+03 -6.62703110e+00 ! vx vy vz +1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill +1.19920145e+04 !particle radius in m +9.12968341e+06 9.11733516e+04 1.78969232e+04 ! x y z +-5.65016782e+01 2.18069451e+03 -3.98571279e+00 ! vx vy vz +1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill +9.93248268e+03 !particle radius in m +8.78149411e+06 -3.19216182e+06 -1.60141388e+04 ! x y z +7.37216338e+02 1.99835772e+03 -1.41820401e+01 ! vx vy vz +1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill +4.85898712e+03 !particle radius in m +1.29860619e+07 -8.19871711e+06 9.27457802e+04 ! x y z +8.67118976e+02 1.40272209e+03 6.07478118e+00 ! vx vy vz +1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill +8.57284899e+03 !particle radius in m +6.74596853e+06 7.83340922e+06 1.66421965e+04 ! x y z +-1.53458492e+03 1.36487940e+03 -3.08963768e+00 ! vx vy vz +1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill +1.02996416e+04 !particle radius in m +9.97004957e+06 -4.03326891e+06 1.22229820e+04 ! x y z +7.36970819e+02 1.85756062e+03 1.86046036e+00 ! vx vy vz +1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill +1.07775819e+04 !particle radius in m +1.48289776e+07 -3.18422896e+06 -1.95106854e+04 ! x y z +3.65562411e+02 1.64235740e+03 -1.78622262e+00 ! vx vy vz +1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill +7.78250193e+03 !particle radius in m +-1.82004676e+07 -4.58264120e+06 -8.80114368e+04 ! x y z +3.67043849e+02 -1.45746561e+03 3.81482960e+00 ! vx vy vz +1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill +7.70585221e+03 !particle radius in m +9.71830285e+06 -2.79239080e+06 -1.21765919e+05 ! x y z +5.86439180e+02 1.97016309e+03 1.41983570e+00 ! vx vy vz +1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill +9.21105533e+03 !particle radius in m +-6.87422066e+06 -1.61812284e+07 3.33849657e+04 ! x y z +1.44453834e+03 -6.12213456e+02 5.14798988e-01 ! vx vy vz +1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill +7.91069782e+03 !particle radius in m +-4.40453318e+05 -9.00359396e+06 2.55701381e+04 ! x y z +2.18504558e+03 -1.66090270e+02 -5.38264979e+00 ! vx vy vz +1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill +7.17158897e+03 !particle radius in m +2.19604188e+07 6.04779191e+06 -2.54791200e+04 ! x y z +-3.65663685e+02 1.33014017e+03 -8.36197344e+00 ! vx vy vz +1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill +8.95226931e+03 !particle radius in m +6.76787299e+06 -6.88896584e+06 -7.92738002e+04 ! x y z +1.51846448e+03 1.48693289e+03 -8.03074046e+00 ! vx vy vz +1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill +4.42181219e+03 !particle radius in m +-6.18157795e+06 9.50909765e+06 -6.31347661e+04 ! x y z +-1.61918243e+03 -1.05906497e+03 6.51625165e+00 ! vx vy vz +1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill +7.65074804e+03 !particle radius in m +1.22370591e+07 -7.52313059e+06 -3.37590788e+04 ! x y z +9.11513184e+02 1.46224236e+03 1.38515615e-01 ! vx vy vz +1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill +1.21795436e+04 !particle radius in m +7.05236290e+06 -8.64870991e+06 -6.91330978e+04 ! x y z +1.52616946e+03 1.23310907e+03 1.29403411e+01 ! vx vy vz +1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill +8.43083433e+03 !particle radius in m +7.80864005e+06 -4.26482545e+06 -2.18013868e+04 ! x y z +1.03496940e+03 1.94204946e+03 1.21677642e+00 ! vx vy vz +1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill +7.82381744e+03 !particle radius in m +5.75136921e+06 -6.66165297e+06 -1.60013139e+04 ! x y z +1.66229394e+03 1.46936203e+03 -7.73684722e+00 ! vx vy vz +1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill +6.87941995e+03 !particle radius in m +-1.22562478e+06 9.13823949e+06 -4.37327451e+04 ! x y z +-2.12169150e+03 -2.88517939e+02 -1.49392473e+00 ! vx vy vz +1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill +1.30453064e+04 !particle radius in m +7.69914612e+06 -9.13021219e+06 -4.57648993e+04 ! x y z +1.43992781e+03 1.22291153e+03 -3.96856343e+00 ! vx vy vz +1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill +5.45572052e+03 !particle radius in m +-1.04553344e+07 2.52527420e+06 -1.08628658e+05 ! x y z +-4.86679714e+02 -1.92107394e+03 9.45357951e+00 ! vx vy vz +1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill +9.00870821e+03 !particle radius in m +1.39140966e+07 -6.41849608e+05 1.71228409e+05 ! x y z +6.24928406e+01 1.73760043e+03 1.32646652e+01 ! vx vy vz +1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill +9.61198288e+03 !particle radius in m +-4.68891691e+06 -8.65727522e+06 1.38785454e+05 ! x y z +1.83563800e+03 -9.88706825e+02 -2.51608816e+00 ! vx vy vz +1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill +1.30631485e+04 !particle radius in m +2.13007974e+05 9.18824852e+06 -3.80121317e+04 ! x y z +-2.12834457e+03 7.70592587e+01 -1.61308426e+01 ! vx vy vz +1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill +5.90853066e+03 !particle radius in m +-1.00652683e+07 -2.07792286e+06 6.26672177e+04 ! x y z +4.27478087e+02 -2.00526834e+03 1.11714666e+01 ! vx vy vz +1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill +9.50477579e+03 !particle radius in m +-9.25272310e+06 4.61553055e+05 2.28064653e+03 ! x y z +-1.21224875e+02 -2.16490532e+03 1.16467209e+01 ! vx vy vz +1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill +4.31241077e+03 !particle radius in m +5.99768112e+06 7.18836176e+06 1.30862988e+04 ! x y z +-1.63913963e+03 1.36776567e+03 -1.13032580e+01 ! vx vy vz +1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill +4.53858074e+03 !particle radius in m +2.69549465e+06 -2.13775506e+07 -2.70977944e+04 ! x y z +1.39480467e+03 1.95781010e+02 -1.22454588e+01 ! vx vy vz +1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill +4.43620698e+03 !particle radius in m +-3.14237843e+06 -9.60218811e+06 -6.89227352e+04 ! x y z +1.95665546e+03 -6.62178945e+02 -9.36372693e+00 ! vx vy vz +1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill +5.44928691e+03 !particle radius in m +3.78692528e+06 8.59540985e+06 -3.20061356e+04 ! x y z +-1.96752618e+03 8.51121277e+02 -1.51485463e+00 ! vx vy vz +1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill +4.33163678e+03 !particle radius in m +-9.00146283e+06 -6.41911956e+06 6.65091457e+04 ! x y z +1.12404780e+03 -1.59135698e+03 -9.77302741e-01 ! vx vy vz +1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill +4.59668490e+03 !particle radius in m +8.54824866e+06 -3.66634423e+06 -4.89483929e+04 ! x y z +8.47956516e+02 1.98291118e+03 3.60869553e+00 ! vx vy vz +1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill +1.27155989e+04 !particle radius in m +1.95697614e+07 6.28199416e+06 9.65119660e+04 ! x y z +-4.43211708e+02 1.34690163e+03 -9.62234736e+00 ! vx vy vz +1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill +3.84628408e+03 !particle radius in m +-1.58193926e+07 -1.35536390e+07 8.45439846e+04 ! x y z +9.33923428e+02 -1.08590633e+03 1.18308309e+01 ! vx vy vz +1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill +1.22978804e+04 !particle radius in m +1.57128973e+07 -6.39323202e+05 1.78188715e+04 ! x y z +6.88318620e+01 1.65105864e+03 3.96550811e+00 ! vx vy vz +1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill +7.42478017e+03 !particle radius in m +4.15871481e+06 9.23348984e+06 -2.00218047e+04 ! x y z +-1.86711988e+03 8.27796037e+02 -1.71003540e+00 ! vx vy vz +1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill +8.20734629e+03 !particle radius in m +1.01202151e+06 -9.34669057e+06 -3.05255233e+04 ! x y z +2.12896558e+03 2.37084406e+02 2.06490854e+00 ! vx vy vz +1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill +1.30090572e+04 !particle radius in m +-1.21933337e+07 -1.85215644e+04 -9.08532291e+04 ! x y z +3.99379627e+00 -1.85775511e+03 -5.11110124e+00 ! vx vy vz +1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill +1.19406098e+04 !particle radius in m +-3.43283359e+06 -8.55413032e+06 1.39837760e+04 ! x y z +2.01077915e+03 -7.56017909e+02 1.02863591e+01 ! vx vy vz +1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill +1.18773237e+04 !particle radius in m +-1.54011563e+06 -1.27126780e+07 7.48528448e+04 ! x y z +1.83173381e+03 -2.00582211e+02 -5.46653115e+00 ! vx vy vz +1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill +6.87480407e+03 !particle radius in m +1.51139781e+07 1.12076930e+06 -2.10697882e+04 ! x y z +-1.50737141e+02 1.67679110e+03 1.30972258e+01 ! vx vy vz +1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill +7.91455193e+03 !particle radius in m +4.75991835e+06 1.10017280e+07 2.88714064e+04 ! x y z +-1.75624695e+03 7.27843788e+02 7.23217325e+00 ! vx vy vz +1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill +4.72944737e+03 !particle radius in m +-7.70162983e+06 -4.41409406e+06 2.58165729e+04 ! x y z +1.05981797e+03 -1.92161597e+03 -1.53504172e+01 ! vx vy vz +1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill +7.84581210e+03 !particle radius in m +8.79063205e+06 8.04366554e+06 -1.54947665e+04 ! x y z +-1.27701177e+03 1.39840130e+03 -2.40220571e+01 ! vx vy vz +1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill +6.12239510e+03 !particle radius in m +8.04074117e+06 9.64104753e+06 -4.45617960e+04 ! x y z +-1.39128132e+03 1.17398843e+03 -6.62327287e+00 ! vx vy vz +1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill +7.10064233e+03 !particle radius in m +-6.66261606e+06 6.71220967e+06 -3.99553759e+04 ! x y z +-1.50278601e+03 -1.49037570e+03 1.28507761e+01 ! vx vy vz +1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill +5.53673908e+03 !particle radius in m +7.85675354e+06 -1.09086703e+07 6.52437187e+03 ! x y z +1.47253647e+03 1.04716710e+03 -2.78745894e+00 ! vx vy vz +1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill +7.61773407e+03 !particle radius in m +1.20372202e+06 -1.12995198e+07 -7.66376724e+04 ! x y z +1.92159252e+03 2.10022167e+02 1.77035004e+01 ! vx vy vz +1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill +6.31351866e+03 !particle radius in m +1.34520987e+06 -1.14199869e+07 -1.06162090e+05 ! x y z +1.91854210e+03 2.27440517e+02 -2.86612981e+00 ! vx vy vz +1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill +4.47493492e+03 !particle radius in m +-7.81637690e+06 6.77408689e+06 -7.41358369e+04 ! x y z +-1.33330305e+03 -1.52276964e+03 -6.38372634e+00 ! vx vy vz +1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill +1.28727553e+04 !particle radius in m +-9.27394458e+06 2.25024078e+06 5.28422677e+04 ! x y z +-5.05715454e+02 -2.06066723e+03 1.34558284e+01 ! vx vy vz +1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill +3.80089688e+03 !particle radius in m +7.39246396e+06 7.02828616e+06 -5.45617263e+04 ! x y z +-1.39190312e+03 1.48134140e+03 -3.43671966e-01 ! vx vy vz +1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill +7.97343121e+03 !particle radius in m +1.36549158e+07 -1.27792544e+07 5.75773322e+03 ! x y z +1.01857297e+03 1.11983894e+03 2.42317366e+00 ! vx vy vz +1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill +6.07807803e+03 !particle radius in m +8.51250762e+06 3.74715124e+06 -3.66793926e+04 ! x y z +-9.06822201e+02 1.95546956e+03 -1.35124063e+01 ! vx vy vz +1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill +7.54934486e+03 !particle radius in m +1.11622021e+07 6.11280266e+06 1.12048087e+05 ! x y z +-8.90669182e+02 1.59847160e+03 8.83220737e+00 ! vx vy vz +1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill +8.11442267e+03 !particle radius in m +-3.59837711e+06 8.94095859e+06 9.64175823e+04 ! x y z +-1.96856779e+03 -7.62947641e+02 3.79489804e+00 ! vx vy vz +1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill +9.83267321e+03 !particle radius in m +1.29422873e+06 -9.18423777e+06 1.13052561e+04 ! x y z +2.13217255e+03 3.09173468e+02 -6.46064530e+00 ! vx vy vz +1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill +1.00567087e+04 !particle radius in m +7.55024995e+06 5.55902389e+06 2.47186332e+04 ! x y z +-1.28842830e+03 1.68728817e+03 -8.10804757e+00 ! vx vy vz +1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill +9.21408381e+03 !particle radius in m +1.88151667e+07 3.33001002e+06 3.73324839e+04 ! x y z +-2.30107887e+02 1.46487898e+03 2.65739699e+00 ! vx vy vz +1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill +1.11735897e+04 !particle radius in m +5.44170973e+06 -7.58711950e+06 -1.68342575e+04 ! x y z +1.71954001e+03 1.27240084e+03 9.88806581e+00 ! vx vy vz +1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill +1.06695963e+04 !particle radius in m +-8.65530733e+06 -7.08569033e+06 -2.23265845e+04 ! x y z +1.25758504e+03 -1.50248441e+03 -3.62008173e-01 ! vx vy vz +1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill +1.19525480e+04 !particle radius in m +-5.77529746e+06 -7.17376952e+06 -5.18219866e+04 ! x y z +1.69375434e+03 -1.34010802e+03 -1.50223596e+01 ! vx vy vz +1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill +6.04226309e+03 !particle radius in m +-1.06219205e+07 -3.45583164e+06 7.57878163e+04 ! x y z +6.00669506e+02 -1.87043192e+03 1.96458906e+01 ! vx vy vz +1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill +6.87550328e+03 !particle radius in m +6.08800715e+06 7.31025693e+06 2.11892900e+04 ! x y z +-1.62733880e+03 1.34749417e+03 4.48661776e+00 ! vx vy vz +1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill +6.87815602e+03 !particle radius in m +1.11973713e+07 -6.89047737e+06 8.77501535e+04 ! x y z +9.27451132e+02 1.53222806e+03 7.89688850e+00 ! vx vy vz +1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill +4.09618861e+03 !particle radius in m +-7.43211722e+06 -5.81999467e+06 -9.65323707e+03 ! x y z +1.33310134e+03 -1.66490648e+03 -3.67453264e+00 ! vx vy vz +1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill +1.07852562e+04 !particle radius in m +-1.08902550e+07 -5.66422797e+06 1.03662075e+04 ! x y z +8.63087680e+02 -1.66058015e+03 -2.16763143e+00 ! vx vy vz +1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill +8.90430770e+03 !particle radius in m +5.12124924e+06 1.04057141e+07 -2.37917852e+04 ! x y z +-1.74067826e+03 8.20317248e+02 -1.61468664e+01 ! vx vy vz +1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill +6.04914386e+03 !particle radius in m +-1.68906115e+06 -1.36100786e+07 1.12141407e+05 ! x y z +1.74322371e+03 -2.27430898e+02 1.33662045e+01 ! vx vy vz +1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill +8.10517587e+03 !particle radius in m +1.55662567e+07 4.00286637e+06 -1.79247131e+05 ! x y z +-4.13259864e+02 1.59216194e+03 8.36151351e+00 ! vx vy vz +1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill +1.03417203e+04 !particle radius in m +-1.88242941e+07 1.06236844e+07 -6.10248603e+04 ! x y z +-7.07744890e+02 -1.22126213e+03 4.18101860e+00 ! vx vy vz +1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill +1.03781744e+04 !particle radius in m +6.54563477e+06 9.67513797e+06 -6.81578535e+04 ! x y z +-1.58341801e+03 1.07058771e+03 -6.04814628e-01 ! vx vy vz +1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill +8.82174250e+03 !particle radius in m +1.04054207e+07 -4.16069278e+06 2.73610807e+04 ! x y z +7.03766909e+02 1.81842161e+03 8.81427302e+00 ! vx vy vz +1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill +4.98765792e+03 !particle radius in m +3.08072328e+06 -1.16153087e+07 4.07709281e+04 ! x y z +1.83456791e+03 4.73999302e+02 7.43116200e+00 ! vx vy vz +1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill +5.46929730e+03 !particle radius in m +6.34509950e+06 -8.39632633e+06 3.00680333e+04 ! x y z +1.60571507e+03 1.18326876e+03 -2.08403941e+00 ! vx vy vz +1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill +5.04330099e+03 !particle radius in m +1.11214656e+07 1.24533693e+06 -1.06574136e+05 ! x y z +-2.16829963e+02 1.93905765e+03 1.21579926e+01 ! vx vy vz +1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill +1.13066823e+04 !particle radius in m +-8.88143306e+06 -3.59836181e+06 5.33136699e+04 ! x y z +8.14785566e+02 -1.96550951e+03 6.43084310e+00 ! vx vy vz +1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill +7.00888103e+03 !particle radius in m +-8.26948189e+06 -7.55777650e+06 1.90589282e+04 ! x y z +1.31251337e+03 -1.45641325e+03 -2.75253497e+00 ! vx vy vz +1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill +3.99006780e+03 !particle radius in m +-8.76369433e+06 5.12820302e+06 4.83723083e+04 ! x y z +-1.02986001e+03 -1.78262989e+03 -1.16887378e+01 ! vx vy vz +1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill +1.07181325e+04 !particle radius in m +8.77351236e+06 5.86805867e+06 7.03132721e+04 ! x y z +-1.14557695e+03 1.66192575e+03 2.25245099e+00 ! vx vy vz +1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill +6.45209798e+03 !particle radius in m +2.81170524e+06 9.19584888e+06 4.45600518e+04 ! x y z +-2.01744512e+03 6.24046260e+02 -9.89046691e+00 ! vx vy vz +1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill +6.24242232e+03 !particle radius in m +-9.87293199e+06 -1.42461669e+06 -2.08948330e+04 ! x y z +2.77302880e+02 -2.05434640e+03 1.23835967e+01 ! vx vy vz +1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill +1.13006727e+04 !particle radius in m +-3.58991165e+06 -1.30771532e+07 4.60336444e+04 ! x y z +1.69912089e+03 -4.85176809e+02 -8.42271300e+00 ! vx vy vz +1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill +1.08072599e+04 !particle radius in m +-9.30543267e+06 -1.69593678e+06 7.96573126e+04 ! x y z +3.79186148e+02 -2.10571304e+03 -2.17512876e+01 ! vx vy vz +1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill +6.19269515e+03 !particle radius in m +-3.38260922e+06 8.95675600e+06 -9.15710109e+04 ! x y z +-1.98063128e+03 -7.58924908e+02 1.62762983e+01 ! vx vy vz +1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill +7.59089850e+03 !particle radius in m +9.06470291e+06 3.39698455e+06 -1.93072359e+04 ! x y z +-7.42646003e+02 1.96423004e+03 3.04319746e+00 ! vx vy vz +1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill +7.10464881e+03 !particle radius in m +-8.28344816e+06 -4.56542130e+06 -3.98741155e+04 ! x y z +9.81538136e+02 -1.88759078e+03 8.61570104e+00 ! vx vy vz +1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill +8.45143607e+03 !particle radius in m +9.83373151e+06 4.43940145e+06 2.01558777e+04 ! x y z +-8.55397447e+02 1.79285028e+03 -1.01803709e+01 ! vx vy vz +1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill +1.26098721e+04 !particle radius in m +6.20736435e+06 7.70565657e+06 2.01353242e+04 ! x y z +-1.62930967e+03 1.30802298e+03 1.80300563e+01 ! vx vy vz +1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill +9.28294621e+03 !particle radius in m +-1.21242621e+07 -1.29944427e+07 9.45840193e+03 ! x y z +1.14488121e+03 -1.06447129e+03 8.51817054e-01 ! vx vy vz +1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill +1.05091333e+04 !particle radius in m +-9.34416446e+04 9.14288304e+06 8.29702341e+03 ! x y z +-2.15581546e+03 -1.85313701e+01 1.24100830e+00 ! vx vy vz +1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill +1.14602223e+04 !particle radius in m +-8.56201175e+06 -4.77007031e+06 6.27239711e+04 ! x y z +1.04809893e+03 -1.81527422e+03 -2.35300971e+00 ! vx vy vz +1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill +8.74246630e+03 !particle radius in m +9.33774261e+06 -3.80575834e+06 3.61612768e+04 ! x y z +7.89084549e+02 1.90660726e+03 1.55750455e+01 ! vx vy vz +1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill +9.51991482e+03 !particle radius in m +1.44814086e+05 -9.02785011e+06 -7.62099316e+03 ! x y z +2.17482769e+03 2.31217788e+01 4.51562127e+00 ! vx vy vz +1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill +4.21772425e+03 !particle radius in m +2.68337698e+06 1.12799171e+07 -1.92110080e+04 ! x y z +-1.86815076e+03 4.16102947e+02 -8.29271140e-01 ! vx vy vz +1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill +1.07390093e+04 !particle radius in m +-8.56711815e+06 -3.15713404e+06 3.97972006e+03 ! x y z +7.43604689e+02 -2.02339459e+03 6.66994916e+00 ! vx vy vz +1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill +7.77378347e+03 !particle radius in m +2.18747509e+06 8.65395918e+06 -2.06536040e+04 ! x y z +-2.15725804e+03 5.30856591e+02 2.37348618e+00 ! vx vy vz +1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill +1.11701303e+04 !particle radius in m +7.66628600e+06 -1.17727557e+07 -1.47420679e+04 ! x y z +1.47098208e+03 9.52353449e+02 1.59639874e+01 ! vx vy vz +1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill +1.11391918e+04 !particle radius in m +1.04264792e+07 -2.74372425e+06 3.12865429e+04 ! x y z +5.41650708e+02 1.91683777e+03 -8.25764712e-01 ! vx vy vz +1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill +8.61034631e+03 !particle radius in m +-3.55923980e+06 -8.64968069e+06 1.79106442e+03 ! x y z +1.99649530e+03 -7.67245271e+02 -5.93442801e+00 ! vx vy vz +1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill +8.34427553e+03 !particle radius in m +9.42893053e+06 2.45878278e+05 -4.57214896e+04 ! x y z +-6.01176022e+01 2.13776727e+03 1.81291767e+01 ! vx vy vz +1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill +5.41136566e+03 !particle radius in m +9.07031967e+06 -2.25767487e+06 5.83955838e+03 ! x y z +5.13475058e+02 2.05838222e+03 2.17889632e+00 ! vx vy vz +1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill +5.96520618e+03 !particle radius in m +-7.87040592e+06 9.69728016e+06 -1.66849672e+03 ! x y z +-1.42992939e+03 -1.17418658e+03 -3.60129869e+00 ! vx vy vz +1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill +6.04352860e+03 !particle radius in m +1.32660339e+07 5.77686809e+06 1.35800303e+05 ! x y z +-6.62231218e+02 1.59103506e+03 -3.43945323e+00 ! vx vy vz +1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill +9.11948377e+03 !particle radius in m +-1.01101796e+07 -4.73633978e+06 1.92223885e+04 ! x y z +8.16987783e+02 -1.78318056e+03 8.86814927e+00 ! vx vy vz +1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill +7.17970170e+03 !particle radius in m +-1.00157479e+07 1.12142854e+07 -2.29871580e+04 ! x y z +-1.26146743e+03 -1.12281660e+03 -9.84657732e+00 ! vx vy vz +1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill +1.27922430e+04 !particle radius in m +-8.01070020e+06 -7.68441073e+06 -7.44586443e+03 ! x y z +1.37227167e+03 -1.42837223e+03 -3.04293724e+00 ! vx vy vz +1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill +6.59903940e+03 !particle radius in m +5.94423414e+06 -6.60015867e+06 3.79489917e+04 ! x y z +1.64871713e+03 1.48917509e+03 4.06312752e+00 ! vx vy vz +1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill +1.26263329e+04 !particle radius in m +-3.52967631e+06 8.16512241e+06 -2.51085986e+04 ! x y z +-2.00672046e+03 -8.99089812e+02 1.47195859e+01 ! vx vy vz +1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill +5.15573627e+03 !particle radius in m +8.67857522e+06 6.03654833e+06 6.58011140e+03 ! x y z +-1.13872966e+03 1.66817442e+03 2.18662162e+01 ! vx vy vz +1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill +9.80349206e+03 !particle radius in m +-4.55569332e+06 1.00472663e+07 8.70354064e+03 ! x y z +-1.80149559e+03 -7.99810234e+02 3.42249675e-01 ! vx vy vz +1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill +9.92677698e+03 !particle radius in m +9.14438839e+06 8.39253082e+06 -8.86556588e+04 ! x y z +-1.26689180e+03 1.34538142e+03 -8.40350285e+00 ! vx vy vz +1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill +6.84228595e+03 !particle radius in m +7.97751328e+06 8.67584783e+06 5.30436727e+04 ! x y z +-1.38366127e+03 1.29303381e+03 -8.41467876e+00 ! vx vy vz +1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill +7.72425527e+03 !particle radius in m +-5.79048975e+06 6.93664576e+06 1.29124985e+04 ! x y z +-1.68001209e+03 -1.40612278e+03 -3.61171376e+00 ! vx vy vz +1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill +1.26029852e+04 !particle radius in m +-5.16609529e+06 9.03539760e+06 5.58960613e+04 ! x y z +-1.76517041e+03 -1.00560177e+03 -5.00965832e+00 ! vx vy vz +1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill +6.09788969e+03 !particle radius in m +1.46424048e+07 -1.15689038e+07 3.27414078e+04 ! x y z +9.47675088e+02 1.20085208e+03 1.06976469e+01 ! vx vy vz +1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill +6.73063203e+03 !particle radius in m +1.01236173e+07 1.45579667e+06 5.15839678e+04 ! x y z +-2.87224826e+02 2.02832432e+03 -4.14184381e+00 ! vx vy vz +1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill +3.85889430e+03 !particle radius in m +7.23258453e+06 4.97813060e+06 -4.38592192e+03 ! x y z +-1.24479041e+03 1.83714641e+03 -1.95822638e+01 ! vx vy vz +1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill +4.23020736e+03 !particle radius in m +8.93601994e+06 -6.94569357e+05 -6.12210199e+02 ! x y z +2.19917996e+02 2.16082384e+03 -1.54527155e+01 ! vx vy vz +1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill +1.29822323e+04 !particle radius in m +8.82738308e+06 -7.76404080e+06 8.11338370e+04 ! x y z +1.26378234e+03 1.44510358e+03 2.18294651e+00 ! vx vy vz +1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill +8.40166656e+03 !particle radius in m +-1.07812933e+07 -9.62734933e+06 -5.03390757e+03 ! x y z +1.12256505e+03 -1.29339213e+03 -5.66212341e+00 ! vx vy vz +1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill +8.02864474e+03 !particle radius in m +-6.42251747e+06 -6.74488620e+06 7.04602772e+04 ! x y z +1.54144883e+03 -1.48324937e+03 1.60342159e+01 ! vx vy vz +1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill +6.62929998e+03 !particle radius in m +9.47929213e+06 -2.19579661e+06 -3.25100566e+04 ! x y z +4.68213030e+02 2.04336200e+03 2.65890903e+00 ! vx vy vz +1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill +1.16296336e+04 !particle radius in m +-1.05077611e+07 -1.31085244e+06 7.30464724e+04 ! x y z +2.82650675e+02 -1.98548135e+03 -1.05658937e+01 ! vx vy vz +1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill +4.30356095e+03 !particle radius in m +-9.66162364e+06 4.23926500e+05 -1.22905037e+04 ! x y z +-9.71624638e+01 -2.08984070e+03 2.75014649e+00 ! vx vy vz +1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill +8.17962300e+03 !particle radius in m +9.30519559e+06 1.02777991e+07 -1.35151955e+04 ! x y z +-1.30832060e+03 1.17931837e+03 4.96678180e+00 ! vx vy vz +1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill +8.60393924e+03 !particle radius in m +-5.38712062e+06 -9.43582755e+06 -1.42962613e+04 ! x y z +1.72402431e+03 -9.72573668e+02 -5.35637349e-01 ! vx vy vz +1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill +3.77403501e+03 !particle radius in m +-7.15437615e+06 -1.57030040e+07 1.86249551e+05 ! x y z +1.42003546e+03 -6.56667148e+02 -3.41426138e+00 ! vx vy vz +1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill +6.75023558e+03 !particle radius in m +5.41844043e+06 -7.25472299e+06 -9.37968266e+03 ! x y z +1.74397758e+03 1.29517496e+03 1.90126636e-01 ! vx vy vz +1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill +1.22359443e+04 !particle radius in m +1.22229448e+07 -6.93664382e+06 -3.73566212e+04 ! x y z +8.86957021e+02 1.49812000e+03 2.93544144e+00 ! vx vy vz +1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill +5.69849680e+03 !particle radius in m +4.97534313e+05 1.12973925e+07 -2.47714549e+04 ! x y z +-1.93747095e+03 6.82256092e+01 4.50885373e+00 ! vx vy vz +1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill +6.63911222e+03 !particle radius in m +6.27007593e+06 1.03894624e+07 -7.16417007e+03 ! x y z +-1.60760769e+03 9.75456582e+02 -4.84946763e+00 ! vx vy vz +1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill +1.05008774e+04 !particle radius in m +4.20395564e+06 7.76433301e+06 8.41688618e+04 ! x y z +-1.94265714e+03 1.06320178e+03 6.22424610e-01 ! vx vy vz +1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill +4.41111088e+03 !particle radius in m +6.37276437e+06 -6.42184183e+06 6.41580563e+04 ! x y z +1.58319090e+03 1.53287002e+03 -1.33788595e+00 ! vx vy vz +1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill +1.28209983e+04 !particle radius in m +-7.71353791e+06 4.23425293e+06 1.25697535e+04 ! x y z +-1.04844519e+03 -1.95403749e+03 -9.90990915e+00 ! vx vy vz +1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill +3.90104672e+03 !particle radius in m +-7.40633695e+06 5.93955618e+06 -5.19978226e+04 ! x y z +-1.31908110e+03 -1.66222684e+03 -1.03799917e+01 ! vx vy vz +1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill +1.24306993e+04 !particle radius in m +1.85739893e+06 -1.16268582e+07 -8.21342836e+03 ! x y z +1.89473415e+03 2.92048965e+02 -8.56627398e+00 ! vx vy vz +1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill +8.83648205e+03 !particle radius in m +3.72582096e+06 7.91120697e+06 -5.23905881e+04 ! x y z +-2.02715857e+03 9.13111080e+02 2.50053811e+00 ! vx vy vz +1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill +1.08564549e+04 !particle radius in m +5.09385670e+05 -1.04637690e+07 -6.20563116e+04 ! x y z +2.02501696e+03 7.65309669e+01 -1.01351101e+00 ! vx vy vz +1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill +6.66176154e+03 !particle radius in m +-3.29144876e+06 8.15112104e+06 8.11267893e+04 ! x y z +-2.05815351e+03 -8.34364146e+02 -5.14984629e+00 ! vx vy vz +1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill +5.47716901e+03 !particle radius in m +-1.05633758e+07 -2.07935484e+06 1.56201239e+04 ! x y z +3.80416672e+02 -1.96300156e+03 -6.47463330e+00 ! vx vy vz +1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill +3.82196266e+03 !particle radius in m +-8.96632975e+06 -4.86195335e+05 -1.06964367e+05 ! x y z +1.34820268e+02 -2.22107483e+03 1.19634049e+01 ! vx vy vz +1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill +9.16335366e+03 !particle radius in m +-7.48232762e+06 4.92380808e+06 2.29127905e+04 ! x y z +-1.22302901e+03 -1.81943768e+03 2.38496332e-01 ! vx vy vz +1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill +1.30705504e+04 !particle radius in m +-5.03707716e+05 -9.29849125e+06 -1.11404007e+04 ! x y z +2.13355604e+03 -1.25957885e+02 3.59182325e+00 ! vx vy vz +1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill +3.74836657e+03 !particle radius in m +2.17225066e+07 1.26121705e+06 -8.44855246e+04 ! x y z +-9.80183609e+01 1.39255713e+03 -2.45394775e-01 ! vx vy vz +1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill +7.17226488e+03 !particle radius in m +-3.31559823e+06 1.24035988e+07 -2.07947532e+04 ! x y z +-1.76007958e+03 -4.72548604e+02 9.49057096e-01 ! vx vy vz +1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill +9.59062845e+03 !particle radius in m +1.21445680e+07 2.59228119e+06 -3.02162959e+04 ! x y z +-3.98075492e+02 1.82853529e+03 6.91989022e+00 ! vx vy vz +1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill +7.61080504e+03 !particle radius in m +-1.13326598e+06 -1.29825734e+07 6.69579485e+03 ! x y z +1.80475746e+03 -1.76133915e+02 -5.83190587e+00 ! vx vy vz +1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill +7.60494634e+03 !particle radius in m +-4.79738768e+06 1.05660072e+07 -1.20703674e+04 ! x y z +-1.76872416e+03 -7.96773745e+02 -7.48094782e+00 ! vx vy vz +1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill +1.12850870e+04 !particle radius in m +2.19019020e+07 2.63899527e+06 3.37827752e+04 ! x y z +-1.61269975e+02 1.38753575e+03 3.39443977e+00 ! vx vy vz +1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill +1.04047308e+04 !particle radius in m +-1.21105762e+07 -5.24541367e+05 -2.70555025e+04 ! x y z +6.19806533e+01 -1.85471109e+03 -1.08022259e+01 ! vx vy vz +1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill +5.18632661e+03 !particle radius in m +6.24492290e+06 9.69571067e+06 -1.68199218e+04 ! x y z +-1.63521643e+03 1.03697361e+03 9.03169661e+00 ! vx vy vz +1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill +6.56052039e+03 !particle radius in m +-9.25769957e+06 2.29292734e+06 -1.14919079e+04 ! x y z +-5.12974483e+02 -2.05331332e+03 2.34930072e+01 ! vx vy vz +1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill +8.62886853e+03 !particle radius in m +-7.09412869e+06 -8.06275271e+06 -7.38498407e+04 ! x y z +1.50307169e+03 -1.31876348e+03 -1.74679708e+01 ! vx vy vz +1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill +1.10297026e+04 !particle radius in m +-1.83827850e+07 6.94620255e+06 -2.99390580e+04 ! x y z +-5.38167682e+02 -1.38025174e+03 8.14592781e+00 ! vx vy vz +1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill +3.93151662e+03 !particle radius in m +1.28440178e+07 6.15520582e+06 5.37944446e+04 ! x y z +-7.49642103e+02 1.56926042e+03 -4.14121777e+00 ! vx vy vz +1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill +4.84125149e+03 !particle radius in m +-1.37958464e+07 -9.01984290e+06 9.37503357e+03 ! x y z +8.63514338e+02 -1.36928306e+03 -4.92726033e+00 ! vx vy vz +1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill +6.38228557e+03 !particle radius in m +5.94552238e+06 -1.37356259e+07 -3.12464640e+04 ! x y z +1.54132538e+03 6.86924077e+02 4.95166504e+00 ! vx vy vz +1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill +1.26046169e+04 !particle radius in m +-8.47051395e+06 -4.33049723e+06 8.99388095e+03 ! x y z +1.01895175e+03 -1.86853627e+03 6.25752144e+00 ! vx vy vz +1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill +1.05056822e+04 !particle radius in m +-7.25230880e+06 -1.91074290e+07 -8.70931708e+04 ! x y z +1.36155621e+03 -5.02831587e+02 -8.24983528e+00 ! vx vy vz +1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill +1.06118054e+04 !particle radius in m +4.25302051e+06 -8.61174101e+06 -1.08068198e+04 ! x y z +1.88839849e+03 9.49718679e+02 1.00715649e+01 ! vx vy vz +1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill +6.54239543e+03 !particle radius in m +2.64852472e+06 1.60749418e+07 5.58768351e+04 ! x y z +-1.60049117e+03 2.61947391e+02 -1.05513072e+01 ! vx vy vz +1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill +4.46410737e+03 !particle radius in m +6.85901436e+06 5.92668091e+06 5.88024522e+03 ! x y z +-1.42967304e+03 1.64782988e+03 3.76673216e+00 ! vx vy vz +1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill +1.02396523e+04 !particle radius in m +1.65616231e+07 1.66028360e+07 -5.29304371e+04 ! x y z +-9.28645255e+02 9.80527992e+02 5.80916438e+00 ! vx vy vz +1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill +1.03672601e+04 !particle radius in m +-7.26003067e+05 9.56806531e+06 9.83311273e+04 ! x y z +-2.10111468e+03 -1.57355588e+02 7.65120270e+00 ! vx vy vz +1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill +8.48891637e+03 !particle radius in m +-3.13308835e+06 1.20377491e+07 -1.96893006e+04 ! x y z +-1.80038683e+03 -4.46661696e+02 -1.05229342e+01 ! vx vy vz +1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill +5.71491865e+03 !particle radius in m +3.61039948e+06 -8.94670524e+06 -6.45909208e+04 ! x y z +1.94572548e+03 7.94221249e+02 2.27282153e+00 ! vx vy vz +1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill +6.18678578e+03 !particle radius in m +1.23051248e+07 -2.76310551e+06 1.16872533e+05 ! x y z +4.31851334e+02 1.79778427e+03 -3.52355374e+00 ! vx vy vz +1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill +7.97466982e+03 !particle radius in m +1.37198938e+07 -1.77790003e+06 -1.13538998e+05 ! x y z +2.34248090e+02 1.75094064e+03 -4.43647357e+00 ! vx vy vz +1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill +8.81590001e+03 !particle radius in m +7.46219447e+06 -5.55061844e+06 3.02223367e+04 ! x y z +1.30415331e+03 1.69020434e+03 -2.84026488e+01 ! vx vy vz +1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill +9.65607124e+03 !particle radius in m +1.79117779e+06 -9.28064516e+06 2.29081417e+03 ! x y z +2.10478434e+03 3.74607623e+02 2.08339038e+01 ! vx vy vz +1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill +1.05558666e+04 !particle radius in m +7.62366140e+06 -4.73786634e+06 -3.67690119e+04 ! x y z +1.17730042e+03 1.83367733e+03 -1.18403024e+01 ! vx vy vz +1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill +1.19589725e+04 !particle radius in m +-1.01261545e+07 2.81055834e+05 -8.19414070e+03 ! x y z +-6.18154480e+01 -2.06712328e+03 -2.24522121e+01 ! vx vy vz +1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill +1.00505792e+04 !particle radius in m +6.29538118e+06 7.15708897e+06 4.07031267e+04 ! x y z +-1.60705715e+03 1.38487957e+03 -1.00848425e+01 ! vx vy vz +1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill +1.11418874e+04 !particle radius in m +-8.49609253e+06 2.57253582e+06 -4.04158861e+03 ! x y z +-6.25851824e+02 -2.12221062e+03 -1.18572479e+00 ! vx vy vz +1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill +6.01467589e+03 !particle radius in m +-1.10898042e+07 -1.78242858e+06 -7.98635316e+03 ! x y z +3.31900537e+02 -1.93252272e+03 -5.54822823e+00 ! vx vy vz +1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill +1.27267086e+04 !particle radius in m +-9.56599926e+06 -6.50694892e+06 1.36299753e+04 ! x y z +1.08336182e+03 -1.59117844e+03 -6.14843419e+00 ! vx vy vz +1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill +5.47362181e+03 !particle radius in m +-8.97074514e+06 8.73736202e+05 8.61659651e+03 ! x y z +-2.31036282e+02 -2.18526870e+03 3.84732945e+00 ! vx vy vz +1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill +1.05255343e+04 !particle radius in m +2.22458775e+06 -9.09183474e+06 6.60915144e+04 ! x y z +2.08331663e+03 4.95850932e+02 -1.01931453e+00 ! vx vy vz +1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill +1.19344067e+04 !particle radius in m +5.23135757e+06 -9.91357725e+06 4.20848292e+03 ! x y z +1.68969350e+03 9.19667997e+02 7.40595361e+00 ! vx vy vz +1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill +4.33755478e+03 !particle radius in m +-1.28024389e+07 8.53060405e+06 4.23749438e+04 ! x y z +-9.17577167e+02 -1.39144923e+03 -5.10429471e+00 ! vx vy vz +1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill +1.12704197e+04 !particle radius in m +-8.46758421e+06 -1.84532581e+07 8.05817267e+04 ! x y z +1.31420508e+03 -6.13047074e+02 -4.80774414e-03 ! vx vy vz +1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill +7.06559347e+03 !particle radius in m +-5.61587582e+06 7.53072526e+06 -2.26125540e+04 ! x y z +-1.70025928e+03 -1.25935338e+03 1.03927192e+01 ! vx vy vz +1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill +1.14059133e+04 !particle radius in m +-2.14619149e+06 -1.42066503e+07 1.73542964e+04 ! x y z +1.70134938e+03 -2.12094299e+02 -3.88248921e+00 ! vx vy vz +1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill +1.02433343e+04 !particle radius in m +-2.01595454e+06 -9.31357942e+06 -4.91526291e+04 ! x y z +2.05875974e+03 -4.99092474e+02 -1.24005530e+01 ! vx vy vz +1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill +1.26261734e+04 !particle radius in m +-3.35093529e+06 -1.37898898e+07 -7.67867475e+04 ! x y z +1.68266801e+03 -4.09195838e+02 4.84518176e+00 ! vx vy vz +1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill +4.19423265e+03 !particle radius in m +-5.47614308e+04 1.19582326e+07 -9.89002659e+04 ! x y z +-1.88840184e+03 -2.62651981e+01 7.68950274e+00 ! vx vy vz +1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill +5.19311868e+03 !particle radius in m +-3.77832466e+06 1.09398130e+07 3.13756637e+04 ! x y z +-1.82483111e+03 -5.94408085e+02 -5.78133740e+00 ! vx vy vz +1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill +6.45155218e+03 !particle radius in m +4.84011056e+06 -1.18968706e+07 1.84555477e+04 ! x y z +1.67151498e+03 6.81175038e+02 -7.19327483e+00 ! vx vy vz +1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill +6.05488167e+03 !particle radius in m +5.21483996e+04 -1.14249117e+07 5.55267676e+04 ! x y z +1.92199543e+03 2.89226318e+00 3.62643891e+00 ! vx vy vz +1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill +9.15143782e+03 !particle radius in m +-1.10411425e+07 -3.92571862e+06 -5.07146026e+04 ! x y z +6.36950570e+02 -1.80153278e+03 2.92128142e+00 ! vx vy vz +1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill +7.60701744e+03 !particle radius in m +-1.31978898e+07 1.46521426e+07 -3.77196518e+04 ! x y z +-1.09404867e+03 -9.86978912e+02 -1.39684139e+00 ! vx vy vz +1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill +1.01408856e+04 !particle radius in m +-2.88294831e+06 -1.04031089e+07 2.08513090e+04 ! x y z +1.92072665e+03 -5.23302927e+02 5.19800736e+00 ! vx vy vz +1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill +1.06803333e+04 !particle radius in m +2.38782775e+06 -8.75851927e+06 4.58765881e+04 ! x y z +2.08778972e+03 5.70538122e+02 1.58463921e+01 ! vx vy vz +1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill +1.10462747e+04 !particle radius in m +-1.39881250e+07 -5.83335318e+06 -6.16116575e+04 ! x y z +6.22870510e+02 -1.55838806e+03 1.20223983e+00 ! vx vy vz +1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill +1.25556671e+04 !particle radius in m +4.99865237e+06 7.28764110e+06 -6.86499352e+04 ! x y z +-1.79951538e+03 1.27018155e+03 -3.04997592e+01 ! vx vy vz +1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill +6.11478378e+03 !particle radius in m +4.99165759e+06 1.10448368e+07 3.69114811e+04 ! x y z +-1.71481010e+03 7.51891478e+02 2.57133594e+00 ! vx vy vz +1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill +3.77594830e+03 !particle radius in m +-1.38190232e+06 8.92446579e+06 -2.39874601e+01 ! x y z +-2.13999854e+03 -3.62741075e+02 -1.15400248e+01 ! vx vy vz +1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill +3.82448653e+03 !particle radius in m +-1.11170825e+07 2.94394609e+06 -4.30953134e+04 ! x y z +-5.00071887e+02 -1.85670191e+03 4.27947102e+00 ! vx vy vz +1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill +1.15506092e+04 !particle radius in m +1.02590139e+07 -2.70501621e+05 1.75890374e+04 ! x y z +8.26113275e+01 2.03083325e+03 -1.20188470e+01 ! vx vy vz +1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill +1.19466753e+04 !particle radius in m +1.05552207e+06 1.03618993e+07 4.81086872e+04 ! x y z +-2.01112311e+03 2.15384368e+02 -7.43201232e+00 ! vx vy vz +1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill +1.21302309e+04 !particle radius in m +2.73631070e+06 -9.24970389e+06 5.21198850e+04 ! x y z +2.01203797e+03 5.75113061e+02 -1.08228016e+01 ! vx vy vz +1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill +7.60492436e+03 !particle radius in m +7.49333106e+06 8.99255805e+06 4.28079932e+04 ! x y z +-1.47027422e+03 1.22861330e+03 -2.29537873e+00 ! vx vy vz +1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill +8.89355341e+03 !particle radius in m +7.19860353e+06 -6.54495925e+06 4.11431543e+04 ! x y z +1.41373944e+03 1.55175420e+03 1.34717999e+00 ! vx vy vz +1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill +4.20305844e+03 !particle radius in m +-1.00628201e+07 -1.83741461e+06 -1.98227486e+03 ! x y z +3.70859453e+02 -1.99423409e+03 -1.20280387e+01 ! vx vy vz +1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill +1.21676504e+04 !particle radius in m +5.77701761e+06 6.58972717e+06 1.74818314e+04 ! x y z +-1.68661617e+03 1.44550446e+03 -1.99467032e+01 ! vx vy vz +1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill +6.36788201e+03 !particle radius in m +2.92908581e+06 -8.51550871e+06 2.35649421e+04 ! x y z +2.06952805e+03 6.82474350e+02 -1.19878409e+01 ! vx vy vz +1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill +4.61572468e+03 !particle radius in m +-1.67832510e+07 5.10602561e+06 6.05666574e+04 ! x y z +-4.71529253e+02 -1.50630622e+03 1.54396748e+00 ! vx vy vz +1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill +9.57979650e+03 !particle radius in m +5.94339422e+06 1.09804417e+07 4.79977238e+04 ! x y z +-1.62390609e+03 8.74411928e+02 6.90172493e+00 ! vx vy vz +1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill +9.61686674e+03 !particle radius in m +-9.53286463e+05 1.08518193e+07 1.37804570e+04 ! x y z +-1.99765013e+03 -1.63665978e+02 -1.39490183e+00 ! vx vy vz +1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill +8.26608492e+03 !particle radius in m +-6.92004578e+06 -1.47096496e+07 9.07914526e+04 ! x y z +1.47519584e+03 -6.90837866e+02 6.35058618e+00 ! vx vy vz +1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill +1.26187826e+04 !particle radius in m +-1.20616278e+07 6.06273134e+06 -6.00296658e+04 ! x y z +-8.01878358e+02 -1.59732664e+03 6.85710223e+00 ! vx vy vz +1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill +1.24556096e+04 !particle radius in m +1.07241366e+07 6.87028361e+06 9.95384965e+03 ! x y z +-9.77403580e+02 1.54502689e+03 -6.02368193e+00 ! vx vy vz +1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill +8.43934121e+03 !particle radius in m +-9.89312276e+06 -5.78442642e+06 3.19342091e+03 ! x y z +1.00166999e+03 -1.63649382e+03 -7.28916722e+00 ! vx vy vz +1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill +7.38389889e+03 !particle radius in m +-1.05072101e+07 8.59747253e+05 -8.51062631e+04 ! x y z +-1.76270864e+02 -2.00169685e+03 -1.88486496e+01 ! vx vy vz +1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill +6.00567499e+03 !particle radius in m +5.23533805e+06 -8.01402331e+06 2.56229650e+04 ! x y z +1.74936393e+03 1.14948262e+03 1.14944776e+01 ! vx vy vz +1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill +1.12130402e+04 !particle radius in m +-3.53936356e+06 8.37116745e+06 -5.28989524e+04 ! x y z +-2.00215068e+03 -8.57726431e+02 -1.43522460e+01 ! vx vy vz +1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill +1.02806726e+04 !particle radius in m +8.06463120e+06 -4.43013823e+06 9.40752267e+04 ! x y z +1.03931497e+03 1.89699386e+03 -9.86578192e+00 ! vx vy vz +1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill +1.22602698e+04 !particle radius in m +-1.05188937e+07 8.26557998e+05 -2.50244301e+04 ! x y z +-1.75058944e+02 -2.01148735e+03 6.39744454e+00 ! vx vy vz +1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill +9.13423664e+03 !particle radius in m +9.02166027e+05 -9.17478955e+06 6.28467621e+04 ! x y z +2.13279891e+03 2.18658803e+02 5.09551557e+00 ! vx vy vz +1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill +8.07650766e+03 !particle radius in m +-3.82128992e+06 8.76150983e+06 -3.66320445e+04 ! x y z +-1.91568216e+03 -8.82768818e+02 -8.66361539e+00 ! vx vy vz +1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill +8.03760289e+03 !particle radius in m +6.34183157e+06 1.14263259e+07 -3.93771961e+04 ! x y z +-1.57702001e+03 8.61699373e+02 7.37963170e+00 ! vx vy vz +1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill +1.11168637e+04 !particle radius in m +-1.30405721e+07 -3.97553562e+06 6.86718538e+04 ! x y z +5.08860652e+02 -1.69393029e+03 3.39424464e+00 ! vx vy vz +1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill +7.37628737e+03 !particle radius in m +1.47724485e+06 8.92877200e+06 -1.05084746e+05 ! x y z +-2.16100073e+03 3.48067255e+02 2.02796618e+01 ! vx vy vz +1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill +1.25959797e+04 !particle radius in m +6.68480405e+06 8.22694034e+06 5.91279278e+04 ! x y z +-1.56238715e+03 1.25932846e+03 7.35031359e+00 ! vx vy vz +1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill +1.18681469e+04 !particle radius in m +1.16829878e+07 3.26454849e+06 8.84361419e+04 ! x y z +-5.06154292e+02 1.79320925e+03 1.57229654e+01 ! vx vy vz +1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill +8.54796582e+03 !particle radius in m +9.47110497e+06 -3.98852153e+06 -3.02153569e+04 ! x y z +8.00176660e+02 1.87835641e+03 1.12222570e+00 ! vx vy vz +1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill +7.87804554e+03 !particle radius in m +1.46320698e+06 -1.24945211e+07 2.33172915e+04 ! x y z +1.82255294e+03 2.24692006e+02 -5.94227757e+00 ! vx vy vz +1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill +1.03371250e+04 !particle radius in m +-2.99549263e+06 1.07900890e+07 -3.59480074e+04 ! x y z +-1.87291441e+03 -5.40526156e+02 -2.72086375e+01 ! vx vy vz +1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill +4.49481566e+03 !particle radius in m +8.92552694e+06 -2.88867045e+06 4.50164736e+04 ! x y z +6.21245683e+02 2.05314318e+03 5.45203724e+00 ! vx vy vz +1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill +1.05758878e+04 !particle radius in m +5.22399519e+06 8.01692184e+06 -5.68152669e+03 ! x y z +-1.79741529e+03 1.14577258e+03 9.91685440e-01 ! vx vy vz +1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill +8.36095619e+03 !particle radius in m +8.03570746e+06 -4.11887844e+06 3.48874429e+04 ! x y z +1.00266026e+03 1.93580077e+03 -1.91021104e+01 ! vx vy vz +1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill +4.42873150e+03 !particle radius in m +9.90649703e+06 3.18003586e+06 1.94516997e+04 ! x y z +-6.33346908e+02 1.92588552e+03 -4.00155121e+00 ! vx vy vz +1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill +1.15984265e+04 !particle radius in m +-1.09606598e+06 8.80615149e+06 -2.31959292e+04 ! x y z +-2.19928594e+03 -2.15273172e+02 -1.46856638e+00 ! vx vy vz +1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill +8.60477818e+03 !particle radius in m +1.52623331e+06 -9.87507162e+06 -7.34326606e+04 ! x y z +2.07157812e+03 3.10284089e+02 -1.48877124e+01 ! vx vy vz +1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill +1.16022173e+04 !particle radius in m +5.60100517e+06 -7.52238732e+06 -7.05544699e+04 ! x y z +1.72239950e+03 1.29297128e+03 -1.52256341e+00 ! vx vy vz +1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill +5.71650065e+03 !particle radius in m +-3.94522959e+06 -9.97626417e+06 9.25599419e+03 ! x y z +1.86732899e+03 -7.00228008e+02 -6.60836692e+00 ! vx vy vz +1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill +1.17966335e+04 !particle radius in m +8.23445883e+04 -9.04812768e+06 -1.64851152e+03 ! x y z +2.17359230e+03 -1.27347929e+01 -1.55026516e+01 ! vx vy vz +1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill +1.13901960e+04 !particle radius in m +-9.27915033e+06 -8.53740765e+06 -1.42390767e+05 ! x y z +1.24138782e+03 -1.35430995e+03 -1.90290768e+01 ! vx vy vz +1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill +7.23773766e+03 !particle radius in m +6.08369217e+06 -9.30896549e+06 1.20641705e+05 ! x y z +1.63879722e+03 1.07988243e+03 -4.44689941e+00 ! vx vy vz +1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill +5.59582821e+03 !particle radius in m +9.59849615e+06 4.68470056e+06 3.84316246e+04 ! x y z +-8.55957491e+02 1.80183427e+03 7.74894619e+00 ! vx vy vz +1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill +9.91714578e+03 !particle radius in m +-1.08060668e+06 -1.00607858e+07 4.94826506e+04 ! x y z +2.05453656e+03 -2.59041316e+02 -1.24750217e+01 ! vx vy vz +1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill +8.17265933e+03 !particle radius in m +1.47983590e+07 5.41415872e+06 -1.80415422e+04 ! x y z +-5.58693227e+02 1.55361354e+03 1.18553934e+01 ! vx vy vz +1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill +8.03438024e+03 !particle radius in m +-7.58136593e+06 6.99309921e+06 2.29302110e+04 ! x y z +-1.40627338e+03 -1.47284043e+03 -4.36076043e-01 ! vx vy vz +1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill +9.55516443e+03 !particle radius in m +-1.00024650e+07 2.57885499e+06 -6.07457902e+03 ! x y z +-5.22539017e+02 -1.95674023e+03 -7.68835058e-01 ! vx vy vz +1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill +1.29020467e+04 !particle radius in m +-9.01182188e+06 7.17037576e+06 -1.80541014e+04 ! x y z +-1.21356170e+03 -1.50384647e+03 1.80093599e+01 ! vx vy vz +1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill +1.25091298e+04 !particle radius in m +-5.24887098e+06 8.72732331e+06 8.04218722e+04 ! x y z +-1.74335368e+03 -1.08193759e+03 -5.43249124e+00 ! vx vy vz +1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill +1.06106742e+04 !particle radius in m +-2.45049686e+06 1.55426920e+07 1.07580343e+05 ! x y z +-1.62197493e+03 -2.92833542e+02 -1.14576459e+01 ! vx vy vz +1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill +8.00195335e+03 !particle radius in m +-1.22199859e+07 4.38221625e+06 -3.89351024e+04 ! x y z +-6.16349372e+02 -1.72585692e+03 4.89125567e+00 ! vx vy vz +1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill +6.30049172e+03 !particle radius in m +-2.68787716e+06 -9.60100858e+06 2.64767119e+03 ! x y z +2.00338289e+03 -5.71028998e+02 2.70092626e+00 ! vx vy vz +1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill +1.29996565e+04 !particle radius in m +-8.95990349e+06 4.52753433e+06 1.16091499e+04 ! x y z +-9.24228536e+02 -1.84658152e+03 6.10613917e+00 ! vx vy vz +1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill +5.59014012e+03 !particle radius in m +1.71028024e+07 4.97528193e+06 -6.57328228e+04 ! x y z +-4.53167939e+02 1.47788400e+03 4.60344609e+00 ! vx vy vz +1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill +1.10590176e+04 !particle radius in m +-2.23441151e+07 -5.50686380e+06 3.85003687e+04 ! x y z +3.37072469e+02 -1.33411055e+03 5.11825064e+00 ! vx vy vz +1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill +1.07859254e+04 !particle radius in m +-1.12784475e+07 1.70585791e+07 -1.32439952e+05 ! x y z +-1.22293182e+03 -8.00872476e+02 4.14711101e+00 ! vx vy vz +1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill +9.20510168e+03 !particle radius in m +-3.79252235e+06 9.57625977e+06 -9.43032419e+04 ! x y z +-1.90113874e+03 -7.45374550e+02 -2.76613575e+00 ! vx vy vz +1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill +4.13425343e+03 !particle radius in m +-7.96122660e+06 3.67866986e+06 -9.30226617e+03 ! x y z +-9.42526154e+02 -2.01745780e+03 -1.25281974e+00 ! vx vy vz +1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill +5.58178407e+03 !particle radius in m +-7.53794950e+06 6.23579413e+06 -2.61014008e+04 ! x y z +-1.34980984e+03 -1.58862900e+03 -1.61372420e+01 ! vx vy vz +1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill +5.38800623e+03 !particle radius in m +-8.66326774e+06 4.08110980e+06 -3.65358197e+04 ! x y z +-9.22979977e+02 -1.88593300e+03 -1.20742584e+01 ! vx vy vz +1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill +4.82934540e+03 !particle radius in m +-8.01465112e+06 -1.03186901e+07 -8.69608158e+04 ! x y z +1.40671015e+03 -1.13976841e+03 1.88119518e+00 ! vx vy vz +1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill +1.07951308e+04 !particle radius in m +-1.49556816e+07 -7.86589247e+05 1.11406498e+05 ! x y z +1.14089906e+02 -1.67632423e+03 -1.08680759e+00 ! vx vy vz +1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill +1.29051176e+04 !particle radius in m +1.27123539e+07 -2.64461233e+06 -6.18084715e+04 ! x y z +3.74400777e+02 1.80142774e+03 3.83561532e-01 ! vx vy vz +1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill +1.07329246e+04 !particle radius in m +-4.06927547e+05 -1.75442240e+07 1.00963469e+05 ! x y z +1.56104472e+03 -4.39048470e+01 3.93620680e+00 ! vx vy vz +1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill +5.02164633e+03 !particle radius in m +8.84368264e+06 1.43003762e+07 5.00874702e+04 ! x y z +-1.35152929e+03 8.24556921e+02 -8.03719400e+00 ! vx vy vz +1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill +1.18647713e+04 !particle radius in m +-9.54707879e+06 1.77630246e+06 -8.88116065e+03 ! x y z +-3.48826440e+02 -2.06942564e+03 -2.16674061e+01 ! vx vy vz +1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill +9.63374432e+03 !particle radius in m +1.09242185e+07 6.96934254e+06 -3.27489047e+04 ! x y z +-9.84319971e+02 1.52494369e+03 8.24595564e+00 ! vx vy vz +1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill +4.25268498e+03 !particle radius in m +5.58576103e+06 8.70672427e+06 -2.15687306e+04 ! x y z +-1.72503313e+03 1.07740968e+03 -3.41426440e+00 ! vx vy vz +1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill +1.11017942e+04 !particle radius in m +-4.11471227e+06 -8.93287907e+06 -4.36028632e+04 ! x y z +1.89219131e+03 -8.56549006e+02 8.16432689e-01 ! vx vy vz +1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill +6.87002453e+03 !particle radius in m +8.96616870e+06 -2.05606701e+06 2.01901008e+04 ! x y z +4.73236695e+02 2.09528249e+03 -4.42528671e+00 ! vx vy vz +1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill +8.28549309e+03 !particle radius in m +1.71268946e+07 4.30766948e+06 2.02642738e+03 ! x y z +-4.07771856e+02 1.51502114e+03 -1.13119700e+00 ! vx vy vz +1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill +4.70767212e+03 !particle radius in m +-4.68916418e+05 1.79356049e+07 2.73217306e+04 ! x y z +-1.55840072e+03 -4.92017252e+01 -1.97207421e-01 ! vx vy vz +1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill +1.08935228e+04 !particle radius in m +-8.58951775e+06 -2.49673020e+06 1.50355881e+04 ! x y z +6.03037486e+02 -2.10005557e+03 9.90449926e+00 ! vx vy vz +1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill +1.13088486e+04 !particle radius in m +-1.24947062e+06 9.39169733e+06 -1.29611502e+03 ! x y z +-2.12088670e+03 -2.33617557e+02 -7.92353291e+00 ! vx vy vz +1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill +5.04982925e+03 !particle radius in m +9.31255896e+06 3.14623519e+06 -5.69089329e+03 ! x y z +-7.03486722e+02 1.96419139e+03 2.25468152e+01 ! vx vy vz +1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill +7.88288776e+03 !particle radius in m +-5.85221513e+05 -1.12876036e+07 -5.52028652e+04 ! x y z +1.95064275e+03 -9.81526152e+01 -5.91601856e+00 ! vx vy vz +1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill +1.09347609e+04 !particle radius in m +-2.96784791e+06 -8.77030784e+06 -6.49349269e+04 ! x y z +2.04523947e+03 -6.63593054e+02 -5.41808592e+00 ! vx vy vz +1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill +3.93196955e+03 !particle radius in m +8.90265546e+05 1.20291601e+07 -5.41238919e+02 ! x y z +-1.86112508e+03 1.50752240e+02 -5.69806824e-01 ! vx vy vz +1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill +5.03625919e+03 !particle radius in m +-4.12865927e+06 -1.30370302e+07 2.49268877e+04 ! x y z +1.68286207e+03 -5.42218893e+02 7.09107529e+00 ! vx vy vz +1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill +1.14005804e+04 !particle radius in m +-8.83659135e+06 4.88772967e+06 3.97374919e+04 ! x y z +-9.96652878e+02 -1.80490383e+03 4.50625373e-01 ! vx vy vz +1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill +7.31394737e+03 !particle radius in m +7.51899250e+06 8.02238049e+06 4.96372898e+04 ! x y z +-1.45435540e+03 1.33207577e+03 -8.91729858e+00 ! vx vy vz +1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill +8.89384301e+03 !particle radius in m +1.07692501e+07 -1.58383421e+07 5.11056372e+04 ! x y z +1.24097868e+03 8.36402001e+02 1.17081374e+01 ! vx vy vz +1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill +8.90274659e+03 !particle radius in m +-7.87110940e+06 4.57199197e+06 -7.32174697e+03 ! x y z +-1.11779702e+03 -1.86164265e+03 1.82306653e+00 ! vx vy vz +1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill +8.39061750e+03 !particle radius in m +-9.02697440e+06 7.44735568e+06 -6.20239222e+04 ! x y z +-1.22828772e+03 -1.48671915e+03 -3.25023413e+00 ! vx vy vz +1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill +8.96233529e+03 !particle radius in m +1.03311380e+07 2.97114168e+06 2.75510366e+04 ! x y z +-5.53060286e+02 1.92682584e+03 -7.92293805e+00 ! vx vy vz +1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill +4.98993792e+03 !particle radius in m +7.02853805e+06 6.05239702e+06 3.87860255e+03 ! x y z +-1.40362427e+03 1.60647543e+03 -1.45016070e+01 ! vx vy vz +1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill +4.18660697e+03 !particle radius in m +6.55440785e+06 5.85117198e+06 -4.93943511e+04 ! x y z +-1.49384332e+03 1.63681032e+03 -1.39258100e+00 ! vx vy vz +1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill +1.17118539e+04 !particle radius in m +9.90570829e+06 4.34179796e+06 -2.00530721e+04 ! x y z +-7.94337401e+02 1.80469509e+03 -3.79870453e-01 ! vx vy vz +1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill +7.93209892e+03 !particle radius in m +-8.25205087e+06 7.98686094e+06 -3.50332951e+04 ! x y z +-1.35816228e+03 -1.38349553e+03 1.34047111e+01 ! vx vy vz +1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill +7.24711433e+03 !particle radius in m +-9.96135005e+06 3.70457700e+06 -9.07193755e+04 ! x y z +-7.21948720e+02 -1.87787046e+03 -1.05717777e+00 ! vx vy vz +1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill +6.57637276e+03 !particle radius in m +-1.22268683e+07 1.01474610e+07 -8.42852150e+04 ! x y z +-1.02194217e+03 -1.27298189e+03 -7.67733923e+00 ! vx vy vz +1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill +6.98929911e+03 !particle radius in m +4.92746951e+06 9.58728854e+06 2.89432610e+04 ! x y z +-1.76304026e+03 9.13627287e+02 6.36664299e+00 ! vx vy vz +1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill +1.19100391e+04 !particle radius in m +1.23329034e+07 -6.92729902e+05 2.96405314e+04 ! x y z +1.12931575e+02 1.84303874e+03 -9.66021750e+00 ! vx vy vz +1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill +9.34048218e+03 !particle radius in m +1.63682186e+07 -7.64635682e+06 7.51258389e+04 ! x y z +6.57521797e+02 1.40505156e+03 -1.44981512e-01 ! vx vy vz +1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill +4.66046628e+03 !particle radius in m +-9.02931313e+06 1.40224619e+06 -7.68912993e+03 ! x y z +-3.55553612e+02 -2.15150134e+03 1.02691019e+01 ! vx vy vz +1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill +7.28378715e+03 !particle radius in m +-2.13040703e+06 9.05085932e+06 2.75232896e+04 ! x y z +-2.09375359e+03 -4.54923992e+02 -6.60791548e+00 ! vx vy vz +1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill +4.24094823e+03 !particle radius in m +2.12770208e+06 -1.09362652e+07 6.56462507e+04 ! x y z +1.92901319e+03 3.58659857e+02 1.88568450e+01 ! vx vy vz +1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill +1.24278875e+04 !particle radius in m +4.49722640e+06 1.29879609e+07 6.17022585e+04 ! x y z +-1.66361829e+03 6.02542134e+02 -3.15731575e-01 ! vx vy vz +1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill +1.15586882e+04 !particle radius in m +-2.46270150e+05 -8.94568869e+06 -6.37006664e+04 ! x y z +2.17872017e+03 -8.88856930e+01 -1.82962039e+01 ! vx vy vz +1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill +8.06890215e+03 !particle radius in m +-7.68511313e+06 -6.12228878e+06 -9.32586560e+03 ! x y z +1.29882576e+03 -1.62777018e+03 -1.19293575e+01 ! vx vy vz +1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill +7.49373241e+03 !particle radius in m +-8.92478393e+06 1.31107857e+06 -7.25655485e+04 ! x y z +-2.98094429e+02 -2.17047563e+03 -1.53783344e+01 ! vx vy vz +1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill +7.25129561e+03 !particle radius in m +-6.57681719e+06 -9.45888345e+06 -3.72144545e+04 ! x y z +1.58522928e+03 -1.10501157e+03 1.05113370e-01 ! vx vy vz +1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill +9.50638765e+03 !particle radius in m +1.34071651e+07 1.03792566e+07 -4.53441732e+04 ! x y z +-9.71553194e+02 1.24234337e+03 9.20294843e+00 ! vx vy vz +1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill +6.36761483e+03 !particle radius in m +-3.51077302e+06 -1.26567098e+07 2.57715830e+04 ! x y z +1.74422450e+03 -5.08580589e+02 2.03158207e-01 ! vx vy vz +1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill +5.26245957e+03 !particle radius in m +2.88059988e+06 -1.21489772e+07 1.66531109e+03 ! x y z +1.80288747e+03 4.42317052e+02 -1.19583569e+01 ! vx vy vz +1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill +8.31795219e+03 !particle radius in m +-5.79801378e+06 7.81844110e+06 7.21651425e+04 ! x y z +-1.66669076e+03 -1.30229321e+03 -2.20360225e+00 ! vx vy vz +1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill +1.12229473e+04 !particle radius in m +1.79079043e+06 8.72935614e+06 7.66173175e+03 ! x y z +-2.14494592e+03 4.29349753e+02 -3.05321261e+00 ! vx vy vz +1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill +1.07221971e+04 !particle radius in m +-1.31449667e+07 5.65642590e+06 -1.35348879e+04 ! x y z +-6.99474388e+02 -1.58839301e+03 5.07187025e+00 ! vx vy vz +1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill +1.02555622e+04 !particle radius in m +-1.28107010e+07 3.64301270e+06 -4.79094708e+04 ! x y z +-4.96849501e+02 -1.72146269e+03 1.99970261e+01 ! vx vy vz +1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill +7.54998008e+03 !particle radius in m +-8.81052520e+06 1.96363775e+06 -7.03542162e+04 ! x y z +-4.55600237e+02 -2.14195252e+03 -1.54510587e+01 ! vx vy vz +1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill +4.30236032e+03 !particle radius in m +6.76054921e+06 5.69153857e+06 -8.32813680e+04 ! x y z +-1.43863210e+03 1.66962801e+03 -3.05680786e+00 ! vx vy vz +1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill +9.37470089e+03 !particle radius in m +-1.58533753e+07 -4.64141565e+06 -1.37616342e+05 ! x y z +4.71661565e+02 -1.53679456e+03 4.54920894e+00 ! vx vy vz +1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill +5.56372876e+03 !particle radius in m +-5.05912024e+06 1.20461614e+07 -1.00213774e+05 ! x y z +-1.67920042e+03 -7.11202226e+02 4.13175962e+00 ! vx vy vz +1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill +6.66362952e+03 !particle radius in m +8.41034459e+05 -1.03591089e+07 -4.26263251e+04 ! x y z +2.02679172e+03 1.77245292e+02 -7.59374588e+00 ! vx vy vz +1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill +4.19344015e+03 !particle radius in m +-8.72674150e+06 -1.84604826e+06 -9.49439666e+03 ! x y z +5.06255038e+02 -2.14329601e+03 8.35004981e+00 ! vx vy vz +1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill +1.19410657e+04 !particle radius in m +8.32975138e+06 5.59994962e+06 1.36490477e+04 ! x y z +-1.14500563e+03 1.73284125e+03 2.21368330e+00 ! vx vy vz +1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill +9.92303995e+03 !particle radius in m +5.20187427e+06 8.26928364e+06 7.79156795e+04 ! x y z +-1.78869520e+03 1.08594628e+03 -2.89543422e+00 ! vx vy vz +1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill +1.05516583e+04 !particle radius in m +-3.97296892e+06 -8.38171851e+06 1.59358464e+04 ! x y z +1.95617296e+03 -9.13960827e+02 -3.62965884e-01 ! vx vy vz +1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill +8.03665372e+03 !particle radius in m +8.20764080e+05 -1.58893023e+07 7.87114038e+04 ! x y z +1.64101205e+03 9.20364252e+01 9.68548448e+00 ! vx vy vz +1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill +9.62837764e+03 !particle radius in m +-9.69224879e+06 1.49532038e+07 7.33593405e+04 ! x y z +-1.29931651e+03 -8.27698792e+02 -3.16602237e+00 ! vx vy vz +1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill +4.38450573e+03 !particle radius in m +-5.62663613e+06 7.91766436e+06 2.60207243e+04 ! x y z +-1.74178290e+03 -1.18522553e+03 2.27430689e+00 ! vx vy vz diff --git a/examples/symba_swifter_comparison/mars_disk/pl.swiftest.in b/examples/symba_swifter_comparison/mars_disk/pl.swiftest.in new file mode 100644 index 000000000..447d1e308 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/pl.swiftest.in @@ -0,0 +1,9001 @@ +1500 ! Mars System in SI units +727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +1.24108926e+04 !particle radius in m +-8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z +9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +8.87389776e+03 !particle radius in m +-8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z +1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +2 9.90685589e+04 8.35558297e+03 ! particle number mass Rhill +7.07643092e+03 !particle radius in m +-2.35807426e+06 8.60445552e+06 1.25224401e+04 ! x y z +-2.13373621e+03 -5.91159549e+02 -1.46482980e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +3 3.17438752e+04 6.69500494e+03 ! particle number mass Rhill +4.84234399e+03 !particle radius in m +-8.01160007e+06 -6.93642997e+06 1.51456130e+04 ! x y z +1.31205897e+03 -1.53256580e+03 -1.41252951e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +4 3.98556011e+05 1.56022902e+04 ! particle number mass Rhill +1.12546530e+04 !particle radius in m +8.10802666e+05 1.07743901e+07 2.02908991e+04 ! x y z +-1.97583939e+03 1.47020293e+02 2.81847341e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +5 1.44988335e+05 1.52187807e+04 ! particle number mass Rhill +5.45209420e+03 !particle radius in m +1.19634122e+07 -8.10716246e+06 -5.95532256e+04 ! x y z +9.82512278e+02 1.42576317e+03 8.88854207e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill +7.50714229e+03 !particle radius in m +-9.39611249e+06 3.86341011e+06 4.12677461e+04 ! x y z +-8.05714130e+02 -1.87378063e+03 1.44571432e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill +7.78923399e+03 !particle radius in m +-4.75251420e+06 -1.21243281e+07 -4.63584868e+04 ! x y z +1.67483168e+03 -6.72935315e+02 -2.51894419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill +9.51941869e+03 !particle radius in m +-1.85450966e+06 -1.34716389e+07 8.25492639e+04 ! x y z +1.75187299e+03 -2.73602528e+02 -3.13786565e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill +1.02445905e+04 !particle radius in m +1.23514674e+07 2.68920661e+05 1.39262437e+04 ! x y z +-5.46299990e+01 1.85637492e+03 8.88156878e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill +1.00413666e+04 !particle radius in m +-3.23931710e+06 -9.01689172e+06 -4.12799209e+04 ! x y z +2.01018172e+03 -6.80970287e+02 7.47887585e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill +9.41021993e+03 !particle radius in m +-8.22383274e+06 6.53912283e+06 -4.14927827e+04 ! x y z +-1.24361728e+03 -1.57101590e+03 1.15408315e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill +5.66402670e+03 !particle radius in m +1.08162501e+06 1.60434368e+07 -1.90513596e+05 ! x y z +-1.63320995e+03 9.41371249e+01 -1.08583324e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill +9.68422654e+03 !particle radius in m +8.87638562e+06 -3.42494393e+06 3.77051239e+04 ! x y z +7.17031490e+02 1.98991002e+03 1.65715407e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill +1.17150625e+04 !particle radius in m +8.43240423e+06 -8.47557599e+06 9.53685695e+04 ! x y z +1.37244856e+03 1.29766742e+03 6.52389482e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill +1.12329581e+04 !particle radius in m +9.22664947e+06 8.30989011e+06 -5.74831096e+04 ! x y z +-1.25111883e+03 1.34059241e+03 8.55955292e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill +1.02921516e+04 !particle radius in m +-4.08982641e+06 1.42813091e+07 2.62466604e+04 ! x y z +-1.63050329e+03 -4.70983328e+02 5.42658810e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill +3.92489041e+03 !particle radius in m +8.28836769e+06 -4.56966319e+06 -1.00925184e+04 ! x y z +1.01075458e+03 1.85603564e+03 9.12767608e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill +1.30688534e+04 !particle radius in m +-7.36104027e+06 -1.05891946e+07 7.75267384e+04 ! x y z +1.50650168e+03 -1.03626339e+03 6.92830281e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill +1.08748232e+04 !particle radius in m +-1.16432549e+07 7.04896042e+06 1.31826777e+04 ! x y z +-9.22639859e+02 -1.52066967e+03 -1.15982407e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill +4.65478777e+03 !particle radius in m +1.54278872e+07 -4.66477914e+06 2.89150511e+04 ! x y z +4.74802657e+02 1.56436208e+03 1.16558658e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill +6.56131734e+03 !particle radius in m +8.25405514e+06 -3.99894087e+06 -1.03017471e+05 ! x y z +9.55530709e+02 1.91876743e+03 -2.12478228e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill +7.27184654e+03 !particle radius in m +-1.01048660e+07 -7.25267430e+05 3.72763878e+04 ! x y z +1.50338830e+02 -2.04513843e+03 -6.64737882e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill +4.60100051e+03 !particle radius in m +1.08085981e+07 8.91343848e+05 -8.59837690e+04 ! x y z +-1.73598988e+02 1.98921090e+03 7.39675166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill +1.28174811e+04 !particle radius in m +-1.95760874e+07 2.13874411e+06 9.87141675e+04 ! x y z +-1.78019032e+02 -1.46067517e+03 7.47552271e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill +1.30658530e+04 !particle radius in m +-5.15587895e+06 1.31093030e+07 2.34999443e+04 ! x y z +-1.60915655e+03 -6.75665775e+02 -1.41401807e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill +1.03100883e+04 !particle radius in m +-1.04206598e+07 1.04694469e+07 3.71773715e+04 ! x y z +-1.22193412e+03 -1.15184993e+03 -7.42970615e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill +1.02339628e+04 !particle radius in m +-8.37104048e+06 -7.31013791e+06 1.37822827e+05 ! x y z +1.31083458e+03 -1.50225202e+03 1.24188931e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill +8.66551286e+03 !particle radius in m +-1.37026179e+07 6.52187486e+06 4.74483726e+04 ! x y z +-7.21171063e+02 -1.51233609e+03 4.06777653e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill +1.07329828e+04 !particle radius in m +7.27063487e+05 9.63835599e+06 7.97365647e+04 ! x y z +-2.09031891e+03 1.45245810e+02 -8.30488647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill +9.57114700e+03 !particle radius in m +7.25596696e+06 -7.23053656e+06 1.87472853e+03 ! x y z +1.43916819e+03 1.45132061e+03 9.58485615e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill +6.15153311e+03 !particle radius in m +-7.29036745e+06 1.20321492e+07 2.47342157e+04 ! x y z +-1.50263763e+03 -8.87670849e+02 -4.72544240e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill +1.10887000e+04 !particle radius in m +-4.85214384e+06 9.94913086e+06 -1.36593449e+05 ! x y z +-1.77462439e+03 -8.70796881e+02 -4.04772339e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill +6.11423561e+03 !particle radius in m +-8.57362843e+06 -5.69257679e+06 -1.86992418e+04 ! x y z +1.16808481e+03 -1.69357760e+03 1.48289207e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill +4.95430775e+03 !particle radius in m +-1.19543227e+04 1.04662309e+07 -2.75529146e+04 ! x y z +-2.03252516e+03 -1.02408335e+01 -9.64298816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill +9.66880578e+03 !particle radius in m +-1.68361528e+06 9.15840339e+06 -9.34661786e+04 ! x y z +-2.10432868e+03 -3.67110160e+02 2.17992849e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill +8.50653728e+03 !particle radius in m +7.61819019e+06 6.79194080e+06 -4.97100639e+04 ! x y z +-1.37259731e+03 1.51157244e+03 2.28319862e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill +1.13756647e+04 !particle radius in m +-8.27002578e+05 -1.07584936e+07 -8.18905340e+04 ! x y z +1.98624835e+03 -1.45613526e+02 -2.22634090e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill +1.23267605e+04 !particle radius in m +8.40661307e+06 -1.79965632e+07 -1.83341147e+05 ! x y z +1.32267980e+03 6.38873327e+02 -4.32228630e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill +9.43036290e+03 !particle radius in m +7.47325276e+06 7.65731082e+06 2.72651622e+04 ! x y z +-1.39038210e+03 1.40779235e+03 -7.40097961e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill +7.79381648e+03 !particle radius in m +-9.14822275e+06 5.65579867e+05 1.54779239e+04 ! x y z +-1.53215921e+02 -2.16863876e+03 -1.41098203e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill +1.16307473e+04 !particle radius in m +-5.60611609e+06 9.45764489e+06 -1.08254759e+05 ! x y z +-1.70147881e+03 -1.00583116e+03 -1.54758662e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill +1.01814300e+04 !particle radius in m +-1.66612775e+07 5.22172921e+06 -2.86187005e+04 ! x y z +-4.30163112e+02 -1.50298858e+03 1.29664314e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill +1.24316568e+04 !particle radius in m +3.27505920e+06 -9.55860249e+06 -5.64452508e+04 ! x y z +1.95132421e+03 6.74732817e+02 -1.39202732e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill +3.90909524e+03 !particle radius in m +1.52951536e+06 -8.90157648e+06 -8.46439916e+04 ! x y z +2.14907459e+03 3.37495875e+02 -8.51148141e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill +4.54215111e+03 !particle radius in m +8.06820634e+06 -4.23727397e+06 -3.35114261e+04 ! x y z +1.02022988e+03 1.90034431e+03 -4.99905529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill +8.53422917e+03 !particle radius in m +-8.77755612e+06 2.67256349e+06 2.67913370e+04 ! x y z +-6.14674972e+02 -2.07327300e+03 8.52604410e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill +1.10146390e+04 !particle radius in m +2.70600522e+06 -9.90290693e+06 3.76996678e+04 ! x y z +1.96230063e+03 5.74973963e+02 -1.26240524e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill +6.62124902e+03 !particle radius in m +-6.67312956e+06 6.21207172e+06 -4.02351915e+03 ! x y z +-1.48608180e+03 -1.57249051e+03 1.60424143e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill +5.42109743e+03 !particle radius in m +-6.18076768e+06 8.34028857e+06 6.32429656e+04 ! x y z +-1.63237248e+03 -1.20222734e+03 4.88968977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill +1.13804352e+04 !particle radius in m +5.85188296e+06 1.72848338e+07 9.71123353e+04 ! x y z +-1.44962394e+03 4.67717479e+02 -1.00039018e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill +5.01581856e+03 !particle radius in m +7.64956565e+06 7.07155375e+06 1.22619349e+05 ! x y z +-1.38177043e+03 1.50469594e+03 5.48084097e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill +3.91946036e+03 !particle radius in m +8.19731246e+06 5.46984950e+06 3.09134904e+04 ! x y z +-1.14400536e+03 1.75729614e+03 -1.68472307e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill +5.56718137e+03 !particle radius in m +-7.08694323e+06 6.97654393e+06 1.57444613e+04 ! x y z +-1.43699629e+03 -1.48696944e+03 1.09569025e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill +1.00450073e+04 !particle radius in m +8.33364079e+06 -4.88517773e+06 7.16288059e+04 ! x y z +1.11170923e+03 1.81264092e+03 6.00546346e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill +6.58674280e+03 !particle radius in m +-9.33769960e+06 9.14931622e+06 -1.61970964e+04 ! x y z +-1.24590275e+03 -1.29664452e+03 6.60457748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill +8.93749433e+03 !particle radius in m +-9.38351744e+06 2.21172448e+06 -6.82548828e+04 ! x y z +-4.82800182e+02 -2.03545597e+03 -5.73581498e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill +4.35272973e+03 !particle radius in m +1.87895940e+06 -8.56248718e+06 -3.00496615e+04 ! x y z +2.17444079e+03 4.47176832e+02 -1.19261276e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill +1.11807470e+04 !particle radius in m +8.32914883e+06 6.99509139e+06 3.96475596e+03 ! x y z +-1.25015649e+03 1.51958279e+03 -4.03731794e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill +5.35230171e+03 !particle radius in m +1.40169380e+07 1.14833336e+06 8.97154952e+04 ! x y z +-1.67134532e+02 1.72504621e+03 -4.99628204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill +9.94627977e+03 !particle radius in m +6.25929466e+06 6.41436879e+06 2.03611835e+04 ! x y z +-1.56963361e+03 1.52043093e+03 1.04032604e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill +1.29906317e+04 !particle radius in m +6.59380692e+06 6.26136699e+06 5.26920752e+02 ! x y z +-1.52860150e+03 1.56995044e+03 -5.04992194e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill +5.50619929e+03 !particle radius in m +-3.18458810e+06 8.95887994e+06 6.14079574e+04 ! x y z +-1.98254651e+03 -6.98894893e+02 -6.28253660e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill +9.81501110e+03 !particle radius in m +3.21556801e+06 8.85736420e+06 1.68758030e+04 ! x y z +-2.01862696e+03 7.01940495e+02 -7.77962553e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill +7.23368562e+03 !particle radius in m +6.87944610e+06 1.31239767e+07 8.47895296e+04 ! x y z +-1.52033935e+03 7.81668854e+02 8.53929151e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill +4.38175744e+03 !particle radius in m +-7.12317437e+06 7.79679451e+06 1.14295538e+05 ! x y z +-1.45772671e+03 -1.35257658e+03 -8.92909999e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill +6.45312806e+03 !particle radius in m +-7.50346488e+06 4.59614758e+06 -1.78561776e+04 ! x y z +-1.17484683e+03 -1.88471092e+03 2.06051741e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill +5.04443190e+03 !particle radius in m +-9.72849273e+06 -4.49090647e+06 9.42367849e+04 ! x y z +8.55743475e+02 -1.81695360e+03 -2.08602456e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill +1.24464529e+04 !particle radius in m +-9.38461254e+06 6.94991468e+06 -5.96507119e+04 ! x y z +-1.15295098e+03 -1.53950357e+03 3.51558529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill +1.25735358e+04 !particle radius in m +-7.41691843e+05 -1.00833740e+07 -5.60539800e+04 ! x y z +2.04132497e+03 -1.60740204e+02 -2.66722707e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill +8.72818623e+03 !particle radius in m +-1.55585013e+07 -7.11561291e+06 3.93194543e+03 ! x y z +6.65437196e+02 -1.43702009e+03 -7.23293961e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill +8.08736691e+03 !particle radius in m +-3.34597213e+06 -8.19414991e+06 6.06177774e+04 ! x y z +2.03861032e+03 -8.50240184e+02 5.81078899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill +1.15287399e+04 !particle radius in m +1.97016279e+06 -9.71556312e+06 -9.30987397e+03 ! x y z +2.03815672e+03 3.86141142e+02 -6.70148607e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill +9.70989454e+03 !particle radius in m +-1.23610305e+07 -1.14674155e+07 1.26044785e+04 ! x y z +1.08318223e+03 -1.17487397e+03 -3.70767753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill +4.86667460e+03 !particle radius in m +6.60995348e+06 1.33054967e+07 -1.05591305e+03 ! x y z +-1.53012251e+03 7.44076876e+02 -1.33826451e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill +1.01917171e+04 !particle radius in m +7.08025559e+06 6.63712140e+06 8.28590703e+04 ! x y z +-1.43411418e+03 1.51197736e+03 -1.05467488e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill +8.99162185e+03 !particle radius in m +-7.28273678e+06 -7.57343022e+06 -3.32239292e+04 ! x y z +1.43763945e+03 -1.39069870e+03 1.98407302e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill +1.03376021e+04 !particle radius in m +9.90338765e+05 -9.02823668e+06 -1.20306983e+04 ! x y z +2.16293198e+03 2.29403632e+02 1.02563280e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill +1.14607582e+04 !particle radius in m +7.24980777e+06 6.13973485e+06 4.31080507e+04 ! x y z +-1.36304394e+03 1.62331327e+03 -1.35525280e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill +5.60647602e+03 !particle radius in m +1.67269227e+07 2.38546079e+06 3.97527319e+04 ! x y z +-2.22376967e+02 1.58567381e+03 -8.67277559e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill +5.23039108e+03 !particle radius in m +1.04063991e+07 -2.47414364e+06 2.55875518e+04 ! x y z +4.41751921e+02 1.96103152e+03 -4.73452379e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill +9.83393818e+03 !particle radius in m +6.53964743e+06 -9.91913737e+06 9.96407478e+04 ! x y z +1.55366935e+03 1.06687009e+03 -2.02851694e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill +6.73293314e+03 !particle radius in m +7.88901212e+06 4.39968813e+06 4.59555939e+04 ! x y z +-1.07086350e+03 1.89616918e+03 7.27266270e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill +1.22637545e+04 !particle radius in m +-3.20114591e+05 9.47888835e+06 9.88766449e+03 ! x y z +-2.12931637e+03 -7.10990071e+01 1.07017003e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill +6.90749219e+03 !particle radius in m +9.14219160e+06 8.75278019e+06 -4.92172540e+04 ! x y z +-1.29548970e+03 1.30726587e+03 -1.50278883e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill +8.47614716e+03 !particle radius in m +-1.38612397e+07 6.86502447e+06 -1.61982632e+04 ! x y z +-7.48338598e+02 -1.49504839e+03 1.44565317e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill +5.74019158e+03 !particle radius in m +1.25478256e+07 -2.77052958e+05 1.12717341e+03 ! x y z +4.85806635e+01 1.82811230e+03 -1.79057921e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill +5.29092447e+03 !particle radius in m +1.40993545e+06 1.16245820e+07 -3.61782966e+04 ! x y z +-1.89457813e+03 2.30174579e+02 1.28253693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill +9.92395993e+03 !particle radius in m +1.00651315e+07 -8.63755855e+06 -2.94583233e+04 ! x y z +1.16408014e+03 1.36020820e+03 -5.13543123e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill +1.20526803e+04 !particle radius in m +2.98890445e+06 1.22541433e+07 2.56056735e+04 ! x y z +-1.78538758e+03 4.40494099e+02 -2.21749367e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill +4.35975582e+03 !particle radius in m +5.19540663e+06 -9.11850659e+06 6.55061213e+04 ! x y z +1.75856318e+03 9.95618038e+02 1.03697665e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill +5.41642563e+03 !particle radius in m +4.97139511e+06 -1.11941305e+07 -1.40627719e+05 ! x y z +1.71256583e+03 7.58315920e+02 -4.27199322e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill +6.88890644e+03 !particle radius in m +1.25156536e+07 -1.83009831e+06 -1.83401376e+04 ! x y z +2.71538728e+02 1.82389745e+03 -1.16128548e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill +4.92766241e+03 !particle radius in m +-4.24848440e+06 -1.14141124e+07 -3.56440379e+04 ! x y z +1.77145707e+03 -6.72445172e+02 -1.27477365e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill +5.12796820e+03 !particle radius in m +-2.67257221e+06 8.24864699e+06 -3.60351703e+04 ! x y z +-2.13740103e+03 -6.84795253e+02 -6.19432137e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill +3.97477538e+03 !particle radius in m +3.38794467e+06 -1.65102444e+07 1.31352407e+05 ! x y z +1.55800648e+03 3.20903339e+02 1.95779030e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill +5.60787672e+03 !particle radius in m +3.25966423e+06 9.75900867e+06 3.76712868e+04 ! x y z +-1.92824453e+03 6.78004645e+02 2.13894611e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill +5.02914497e+03 !particle radius in m +-8.82496169e+06 1.17570086e+06 -2.77994253e+03 ! x y z +-3.06986654e+02 -2.17589269e+03 -3.00417185e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill +1.26054254e+04 !particle radius in m +-8.96181392e+06 -8.08537511e+06 -9.49567974e+03 ! x y z +1.24755669e+03 -1.37614946e+03 4.00147116e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill +3.83342071e+03 !particle radius in m +1.05138352e+07 -2.53028835e+06 -2.47118873e+04 ! x y z +4.70010064e+02 1.92569661e+03 -1.14250111e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill +1.23894990e+04 !particle radius in m +-8.86717935e+06 -3.01884801e+06 5.43577921e+03 ! x y z +6.99055272e+02 -2.04010264e+03 8.96596820e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill +8.04335643e+03 !particle radius in m +1.42373839e+07 3.02611132e+06 -1.43164181e+04 ! x y z +-4.03733107e+02 1.68169148e+03 7.10932541e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill +9.07798396e+03 !particle radius in m +-6.09504895e+06 8.50655715e+06 -5.34991934e+04 ! x y z +-1.62687481e+03 -1.19574157e+03 5.21976127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill +3.95640633e+03 !particle radius in m +3.72306724e+06 9.02743458e+06 4.19786502e+04 ! x y z +-1.94834474e+03 7.84745897e+02 -7.86691937e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill +1.06463568e+04 !particle radius in m +5.64202715e+06 -8.82003156e+06 9.37432782e+03 ! x y z +1.69914027e+03 1.09005087e+03 8.81006839e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill +5.68865819e+03 !particle radius in m +-1.08304546e+07 -5.16566260e+06 -4.58380354e+04 ! x y z +8.08725156e+02 -1.70426515e+03 -1.40809084e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill +1.06640002e+04 !particle radius in m +9.97312286e+06 -1.70160094e+06 4.10359397e+04 ! x y z +3.34859938e+02 2.01251950e+03 -1.05202781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill +7.85135736e+03 !particle radius in m +7.03958663e+06 7.71716479e+06 -8.94733922e+03 ! x y z +-1.49839830e+03 1.36772144e+03 -1.09915777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill +3.80442303e+03 !particle radius in m +1.15617458e+07 -4.37264141e+06 4.98550747e+04 ! x y z +6.45606485e+02 1.75989881e+03 1.00504151e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill +7.55084889e+03 !particle radius in m +6.33009492e+06 8.26456632e+06 4.39267321e+04 ! x y z +-1.63555236e+03 1.22749817e+03 -2.79591207e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill +5.24028103e+03 !particle radius in m +-1.23116789e+06 -1.76328069e+07 4.15688915e+04 ! x y z +1.54978172e+03 -1.14789962e+02 3.52623567e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill +1.09298010e+04 !particle radius in m +5.03800785e+06 7.38464714e+06 6.56936601e+04 ! x y z +-1.79789878e+03 1.24241563e+03 -1.87814487e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill +4.24258369e+03 !particle radius in m +-1.16819556e+07 2.21702225e+06 -1.76770966e+03 ! x y z +-3.36108070e+02 -1.84613620e+03 1.27905806e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill +1.04890693e+04 !particle radius in m +1.00037167e+07 3.61161669e+06 -5.98746596e+04 ! x y z +-7.04121449e+02 1.87165808e+03 1.87226479e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill +6.72997694e+03 !particle radius in m +-8.02245740e+06 -4.15017483e+06 1.94427373e+04 ! x y z +9.95701473e+02 -1.91465293e+03 9.55414968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill +4.37893861e+03 !particle radius in m +-4.99256633e+06 7.35143538e+06 -6.25201967e+04 ! x y z +-1.82686822e+03 -1.23953720e+03 -3.37208923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill +9.76924055e+03 !particle radius in m +-2.12824530e+06 9.48297181e+06 4.56720468e+03 ! x y z +-2.04325211e+03 -4.78944866e+02 1.39609484e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill +4.12337692e+03 !particle radius in m +-1.42745447e+07 -5.79867689e+06 -1.70313904e+04 ! x y z +6.32626042e+02 -1.53908540e+03 1.67461109e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill +8.79476284e+03 !particle radius in m +3.38987773e+06 1.01890371e+07 3.97150856e+04 ! x y z +-1.89204657e+03 6.21657437e+02 -2.83215087e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill +4.83385440e+03 !particle radius in m +1.36440026e+07 -9.23862046e+06 -5.31108803e+04 ! x y z +9.02323684e+02 1.33920162e+03 1.66233464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill +8.13388768e+03 !particle radius in m +-3.69977113e+06 -1.52467920e+07 -1.34829610e+05 ! x y z +1.61925599e+03 -3.72623284e+02 7.50289619e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill +9.36399150e+03 !particle radius in m +1.82794011e+07 6.84958710e+06 1.41781869e+04 ! x y z +-5.47821288e+02 1.37308430e+03 -7.00506636e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill +4.56803304e+03 !particle radius in m +1.18968647e+07 1.33707826e+07 -1.11221176e+05 ! x y z +-1.16553280e+03 1.03288779e+03 1.42253495e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill +4.67906973e+03 !particle radius in m +-1.96455999e+07 -2.60429318e+06 -9.25749294e+04 ! x y z +1.97567654e+02 -1.46047680e+03 3.96763228e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill +7.05460271e+03 !particle radius in m +-2.68241356e+06 9.67860718e+06 -3.52723705e+04 ! x y z +-1.98385491e+03 -5.75973374e+02 4.82531781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill +7.35090499e+03 !particle radius in m +-1.66338998e+06 1.06654130e+07 -1.15436526e+05 ! x y z +-1.97394994e+03 -3.24337570e+02 1.49148403e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill +1.15778235e+04 !particle radius in m +5.73133232e+06 -6.88742280e+06 -9.91791004e+03 ! x y z +1.69108314e+03 1.40100447e+03 8.39576992e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill +9.74792278e+03 !particle radius in m +1.16505540e+07 1.24190497e+07 3.29845083e+04 ! x y z +-1.14848373e+03 1.08164128e+03 1.94732937e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill +5.57197333e+03 !particle radius in m +-9.45920013e+06 -1.21129886e+06 4.53752885e+04 ! x y z +2.60756743e+02 -2.09880469e+03 -1.84679906e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill +1.29160713e+04 !particle radius in m +8.30827394e+06 4.94291767e+06 9.57082698e+03 ! x y z +-1.06905700e+03 1.81887550e+03 -1.59783959e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill +6.28724063e+03 !particle radius in m +9.92654375e+06 -1.39802998e+06 4.49817877e+02 ! x y z +2.59014431e+02 2.03619473e+03 -1.49038139e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill +3.98022020e+03 !particle radius in m +2.81061041e+06 9.89835484e+06 -9.78582159e+04 ! x y z +-1.95518409e+03 5.78271402e+02 1.18622238e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill +5.77530198e+03 !particle radius in m +-5.58547024e+06 -9.86469957e+06 6.83294173e+04 ! x y z +1.69539459e+03 -9.41024851e+02 -1.14165406e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill +6.26805874e+03 !particle radius in m +8.08999866e+06 6.84273025e+06 1.04867849e+03 ! x y z +-1.27946500e+03 1.55545684e+03 8.91891880e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill +9.74422649e+03 !particle radius in m +9.18575665e+06 -5.49644544e+06 -5.52894905e+03 ! x y z +1.01968981e+03 1.71970787e+03 -3.39617822e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill +4.33654694e+03 !particle radius in m +1.80833036e+06 -9.23065450e+06 4.90226701e+04 ! x y z +2.08275022e+03 4.17014758e+02 6.63087350e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill +6.60858198e+03 !particle radius in m +1.18507627e+07 2.26553726e+06 2.21133096e+03 ! x y z +-3.50610095e+02 1.84373395e+03 -2.60885445e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill +7.13226721e+03 !particle radius in m +2.21659927e+07 -6.92493598e+06 -4.28421451e+04 ! x y z +4.19436458e+02 1.29376942e+03 -6.14053149e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill +8.09831906e+03 !particle radius in m +-6.92437867e+06 -6.69629009e+06 -5.72228921e+04 ! x y z +1.49689718e+03 -1.48846576e+03 -1.37808252e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill +1.01750117e+04 !particle radius in m +-6.66985595e+06 -7.23797041e+06 -1.53286702e+04 ! x y z +1.53320998e+03 -1.42766264e+03 2.90451170e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill +1.25638046e+04 !particle radius in m +-8.86868024e+06 7.20105731e+05 -2.22950048e+03 ! x y z +-1.95841451e+02 -2.19258513e+03 -3.67523850e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill +1.20137567e+04 !particle radius in m +5.67690574e+06 -1.03162373e+07 -9.41350622e+04 ! x y z +1.67246075e+03 9.20785969e+02 -1.99251255e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill +5.23260806e+03 !particle radius in m +5.50551593e+06 -1.45584653e+07 5.27718687e+04 ! x y z +1.54616130e+03 5.79954533e+02 7.51811204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill +1.20845494e+04 !particle radius in m +-3.47796098e+06 -8.90927004e+06 9.65028764e+03 ! x y z +1.97386652e+03 -7.53987246e+02 -3.28779531e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill +7.74350141e+03 !particle radius in m +7.74574172e+06 5.95714791e+06 -1.05471596e+04 ! x y z +-1.25035431e+03 1.67733844e+03 -1.65757527e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill +4.08711498e+03 !particle radius in m +-1.98199827e+07 7.29300766e+06 -1.29061581e+05 ! x y z +-4.89201522e+02 -1.32406236e+03 8.40261667e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill +9.69135174e+03 !particle radius in m +1.13588614e+07 1.27104515e+07 1.21608339e+05 ! x y z +-1.17212059e+03 1.06703576e+03 1.25962854e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill +1.07960507e+04 !particle radius in m +-6.88558621e+06 6.34193128e+06 -5.71723545e+04 ! x y z +-1.41834644e+03 -1.59442296e+03 3.00905420e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill +5.95367439e+03 !particle radius in m +2.58947797e+06 1.59613455e+07 1.59042158e+05 ! x y z +-1.60287570e+03 2.41814174e+02 -1.67580989e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill +5.64691333e+03 !particle radius in m +1.27274825e+07 3.00655471e+06 8.98397391e+03 ! x y z +-4.31699175e+02 1.77274933e+03 -1.26354778e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill +5.08343859e+03 !particle radius in m +-7.10630600e+06 -7.28840877e+06 -2.23411110e+03 ! x y z +1.47897945e+03 -1.43505611e+03 -2.71839174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill +4.64223699e+03 !particle radius in m +6.38222762e+06 -6.74069777e+06 8.75842881e+04 ! x y z +1.60375261e+03 1.44358800e+03 -9.05519600e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill +8.12086478e+03 !particle radius in m +-1.56702566e+07 4.26618807e+06 5.21823445e+04 ! x y z +-4.05029139e+02 -1.57894139e+03 2.53582968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill +9.30546634e+03 !particle radius in m +-8.73094270e+06 5.67791265e+06 2.17614432e+04 ! x y z +-1.10821669e+03 -1.70422433e+03 2.11567045e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill +5.54672703e+03 !particle radius in m +-1.01683371e+07 1.10819821e+06 1.64139763e+04 ! x y z +-2.62188936e+02 -2.02918021e+03 8.77276633e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill +4.01652823e+03 !particle radius in m +4.35525820e+06 1.08005096e+07 7.15657051e+04 ! x y z +-1.78452573e+03 7.14211418e+02 1.85217607e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill +8.23178885e+03 !particle radius in m +1.33640503e+06 -1.35991318e+07 1.26981224e+05 ! x y z +1.75325272e+03 1.99801637e+02 9.12185103e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill +7.10947055e+03 !particle radius in m +-6.82381137e+06 5.53567185e+06 7.84751624e+03 ! x y z +-1.38395700e+03 -1.73645326e+03 7.57405795e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill +4.80346108e+03 !particle radius in m +3.89840794e+06 1.10854924e+07 3.76242516e+03 ! x y z +-1.80675419e+03 6.21051875e+02 -1.71817477e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill +6.55725922e+03 !particle radius in m +-1.97874775e+06 -8.77567582e+06 -2.75052193e+03 ! x y z +2.14929146e+03 -4.63042632e+02 1.42528242e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill +1.04379733e+04 !particle radius in m +-3.69568353e+06 8.70958011e+06 1.23991773e+02 ! x y z +-1.95889951e+03 -8.30413409e+02 3.23324109e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill +4.12198879e+03 !particle radius in m +-7.46635757e+06 8.75996756e+06 -3.38546703e+04 ! x y z +-1.47538097e+03 -1.25605788e+03 1.14970804e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill +7.66776863e+03 !particle radius in m +5.08163706e+06 1.05043562e+07 -2.49011889e+04 ! x y z +-1.73355443e+03 8.04079694e+02 -1.88007028e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill +4.64199906e+03 !particle radius in m +4.39449717e+06 -7.93852417e+06 4.36583437e+04 ! x y z +1.88869963e+03 1.05420912e+03 5.50586344e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill +1.07424793e+04 !particle radius in m +8.63623502e+06 -7.74644884e+06 1.85384542e+04 ! x y z +1.26494539e+03 1.43300151e+03 7.04221650e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill +9.85657615e+03 !particle radius in m +-6.15368525e+05 1.49121598e+07 -4.67932565e+04 ! x y z +-1.68745762e+03 -4.92212694e+01 -1.94039771e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill +6.99747229e+03 !particle radius in m +8.64904319e+06 5.91192747e+06 -6.14206652e+04 ! x y z +-1.13126693e+03 1.64851790e+03 -1.89192778e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill +8.71931949e+03 !particle radius in m +-7.78414392e+06 4.96208659e+06 -1.63838108e+04 ! x y z +-1.12672930e+03 -1.82241793e+03 -5.96425105e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill +4.23710232e+03 !particle radius in m +9.85857087e+06 -4.25461587e+05 -7.76455058e+04 ! x y z +8.06687493e+01 2.07960003e+03 3.28242575e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill +1.00719866e+04 !particle radius in m +-3.92871528e+06 -2.24319020e+07 2.77551401e+04 ! x y z +1.34770576e+03 -2.35192176e+02 -6.19147736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill +7.23647883e+03 !particle radius in m +-9.85059665e+06 -8.52205655e+06 -5.48573039e+04 ! x y z +1.18464366e+03 -1.37030272e+03 9.99031014e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill +9.97940619e+03 !particle radius in m +-1.95744716e+06 -1.40658438e+07 -8.96628033e+04 ! x y z +1.72553028e+03 -2.22255484e+02 -2.68715792e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill +9.75068673e+03 !particle radius in m +-1.83887109e+07 -4.94937710e+06 4.13740137e+04 ! x y z +4.02207087e+02 -1.44472494e+03 7.82771281e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill +1.18333139e+04 !particle radius in m +6.28107583e+06 -7.96489519e+06 1.00181104e+05 ! x y z +1.61474462e+03 1.25899281e+03 3.25360113e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill +6.66516052e+03 !particle radius in m +8.57815199e+06 2.93408991e+06 1.00482256e+04 ! x y z +-7.00269987e+02 2.05582007e+03 1.47496098e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill +7.54796479e+03 !particle radius in m +3.89386447e+06 -1.18916453e+07 4.75801024e+03 ! x y z +1.79017897e+03 5.72333272e+02 1.35429336e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill +5.87384040e+03 !particle radius in m +-1.12819097e+07 -2.03828249e+07 -4.17849171e+04 ! x y z +1.20129982e+03 -6.40831904e+02 -7.21062138e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill +9.04694786e+03 !particle radius in m +-3.48844270e+06 -1.39807096e+07 -9.80376409e+04 ! x y z +1.67545999e+03 -4.23493775e+02 9.57144799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill +5.80834687e+03 !particle radius in m +-6.99241637e+06 -6.97891492e+06 1.17078416e+04 ! x y z +1.45466387e+03 -1.49110516e+03 -7.97644872e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill +7.27807466e+03 !particle radius in m +2.29671869e+07 -4.77992661e+06 -2.29056888e+05 ! x y z +2.66633595e+02 1.31300250e+03 8.11268595e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill +7.37859561e+03 !particle radius in m +1.12799199e+07 -5.64371881e+06 -4.86158248e+04 ! x y z +8.25574521e+02 1.64707498e+03 1.79426055e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill +4.55114695e+03 !particle radius in m +-8.97901930e+06 1.40018499e+06 -1.17315967e+04 ! x y z +-3.50813576e+02 -2.14111191e+03 1.58430709e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill +9.69448137e+03 !particle radius in m +-1.27934972e+07 5.80764481e+05 -6.60656959e+04 ! x y z +-8.73661010e+01 -1.83147573e+03 9.29252102e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill +1.23062037e+04 !particle radius in m +-6.51355993e+06 -1.80095300e+07 -1.28499713e+05 ! x y z +1.42185635e+03 -5.15444029e+02 4.71976246e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill +1.23109627e+04 !particle radius in m +-1.35063597e+06 1.04263703e+07 -1.65523047e+04 ! x y z +-1.99638943e+03 -2.63418025e+02 -1.41194780e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill +3.71369106e+03 !particle radius in m +-9.22486496e+06 2.96866634e+06 -1.89865927e+03 ! x y z +-6.64441635e+02 -2.00340641e+03 -1.17076646e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill +6.29750468e+03 !particle radius in m +7.10721350e+06 7.67585026e+06 -3.24513481e+03 ! x y z +-1.50133478e+03 1.36725034e+03 -1.87929113e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill +8.63385286e+03 !particle radius in m +-3.50855266e+06 -8.47958104e+06 5.43121964e+04 ! x y z +2.01378047e+03 -8.30225015e+02 -6.42928682e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill +5.95402041e+03 !particle radius in m +-1.71845688e+07 2.92835680e+06 1.80160654e+04 ! x y z +-2.68908847e+02 -1.54460993e+03 5.60740384e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill +9.54950570e+03 !particle radius in m +-9.06623165e+06 -4.20136967e+06 -2.06364196e+04 ! x y z +8.54458713e+02 -1.90544528e+03 6.22285906e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill +1.19619247e+04 !particle radius in m +5.25849667e+06 8.80426419e+06 1.08815572e+04 ! x y z +-1.77864099e+03 1.00939651e+03 -2.77090468e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill +6.74935610e+03 !particle radius in m +4.62808704e+06 1.40254648e+07 2.62029474e+04 ! x y z +-1.61136420e+03 5.34010697e+02 -6.77858294e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill +5.20619396e+03 !particle radius in m +2.01424278e+07 3.41792942e+05 1.94882104e+05 ! x y z +-2.93420884e+01 1.45364435e+03 -7.07412419e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill +1.06486075e+04 !particle radius in m +8.37083337e+06 -1.79540915e+07 -5.91009347e+04 ! x y z +1.33428010e+03 6.17563374e+02 2.42512024e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill +5.04887899e+03 !particle radius in m +9.18834937e+06 4.09046541e+05 5.54581813e+03 ! x y z +-7.23751549e+01 2.15950913e+03 6.85354866e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill +6.36561457e+03 !particle radius in m +2.40599869e+06 -1.36259877e+07 7.24745280e+03 ! x y z +1.74094787e+03 3.07239990e+02 8.10516402e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill +3.87967973e+03 !particle radius in m +-1.16034100e+07 -1.77480486e+06 -1.62127720e+04 ! x y z +2.83834839e+02 -1.87461386e+03 5.96638672e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill +6.85511860e+03 !particle radius in m +1.47515573e+07 -2.57581761e+05 -5.23662055e+04 ! x y z +1.10532093e+01 1.70024862e+03 8.28609927e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill +1.23039299e+04 !particle radius in m +1.13163190e+07 -7.84357347e+06 1.03407930e+04 ! x y z +1.01120595e+03 1.44577732e+03 -5.19143023e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill +5.75530148e+03 !particle radius in m +-3.32812125e+06 -9.44533791e+06 -4.90376566e+04 ! x y z +1.95676637e+03 -6.51606826e+02 -5.70434278e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill +1.24729785e+04 !particle radius in m +1.06811374e+07 -4.93512180e+06 -2.54549899e+04 ! x y z +7.94618978e+02 1.74255873e+03 -9.79841366e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill +1.17522845e+04 !particle radius in m +1.08275316e+07 3.16975354e+06 -1.83616872e+04 ! x y z +-5.71210349e+02 1.85480914e+03 -5.53165520e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill +1.19662231e+04 !particle radius in m +-8.93938095e+06 -1.07672320e+06 2.20211931e+02 ! x y z +2.21513596e+02 -2.17140814e+03 -5.31579057e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill +6.94294309e+03 !particle radius in m +-1.11274091e+07 6.99042019e+06 4.20463158e+03 ! x y z +-9.73175474e+02 -1.52053333e+03 -7.28310775e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill +9.44639204e+03 !particle radius in m +4.40522655e+06 -1.23917208e+07 -1.61713907e+04 ! x y z +1.70009079e+03 6.02493125e+02 -3.82502681e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill +6.43759473e+03 !particle radius in m +8.84972010e+06 5.65746303e+06 4.89598915e+04 ! x y z +-1.07695732e+03 1.71417278e+03 -2.68488868e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill +5.88752122e+03 !particle radius in m +-5.79952078e+06 8.88645462e+06 -2.44580541e+04 ! x y z +-1.68074658e+03 -1.10169885e+03 -6.29194406e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill +1.25432938e+04 !particle radius in m +-8.14410389e+06 -3.97016042e+06 -9.88813618e+04 ! x y z +9.01368103e+02 -1.96430805e+03 -4.40735560e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill +1.04148028e+04 !particle radius in m +7.46448044e+06 -4.58544507e+06 1.76340315e+04 ! x y z +1.15401750e+03 1.90545254e+03 -7.27693077e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill +1.12804852e+04 !particle radius in m +-2.08884933e+06 -1.02835429e+07 6.42079933e+03 ! x y z +1.99534972e+03 -4.16589585e+02 -4.18338876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill +7.47765824e+03 !particle radius in m +3.36937988e+06 -9.91809680e+06 5.89060808e+04 ! x y z +1.88421155e+03 6.84396854e+02 -2.08220150e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill +9.05273758e+03 !particle radius in m +-7.24117471e+06 -9.21469921e+06 -3.61410851e+04 ! x y z +1.49902224e+03 -1.18897591e+03 9.80133706e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill +1.25609127e+04 !particle radius in m +-3.74450435e+06 -8.15891931e+06 2.77691948e+04 ! x y z +1.97501199e+03 -9.06036575e+02 -2.45381289e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill +8.46042215e+03 !particle radius in m +7.14052519e+06 1.53102112e+07 1.62981971e+05 ! x y z +-1.44016584e+03 6.81333291e+02 -1.60906032e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill +1.30715050e+04 !particle radius in m +-1.03399269e+07 2.85213950e+05 -3.22137865e+04 ! x y z +-5.00043408e+01 -2.01781826e+03 1.16086899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill +1.28466493e+04 !particle radius in m +4.61126913e+06 7.68167619e+06 3.21015460e+03 ! x y z +-1.87745924e+03 1.11654918e+03 8.74586750e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill +1.00516869e+04 !particle radius in m +-7.63901209e+05 9.38473527e+06 2.09296480e+04 ! x y z +-2.13149182e+03 -1.53874003e+02 1.07619871e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill +4.49233328e+03 !particle radius in m +-3.50142507e+06 1.29584846e+07 4.99036110e+03 ! x y z +-1.71988301e+03 -4.67120020e+02 -1.52874482e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill +3.93575293e+03 !particle radius in m +2.89549121e+05 9.73817170e+06 7.30475924e+03 ! x y z +-2.10637979e+03 6.28009545e+01 2.73575242e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill +5.55621969e+03 !particle radius in m +-8.69236370e+06 2.60571730e+06 1.87543471e+04 ! x y z +-6.41047725e+02 -2.08196126e+03 -9.78180600e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill +1.17336811e+04 !particle radius in m +1.16999055e+07 -8.45214750e+05 -1.23088793e+04 ! x y z +1.51868140e+02 1.88990987e+03 5.91582506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill +1.23451688e+04 !particle radius in m +1.04932440e+07 6.34593749e+06 -5.14735307e+04 ! x y z +-9.55788059e+02 1.61305183e+03 7.38311147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill +9.05651521e+03 !particle radius in m +-1.00872411e+07 -7.19383413e+06 1.02683109e+05 ! x y z +1.09632503e+03 -1.47708699e+03 2.53571970e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill +8.39272259e+03 !particle radius in m +-1.29868607e+07 9.20702284e+06 -1.02202794e+05 ! x y z +-9.58764873e+02 -1.33478274e+03 7.40636311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill +1.03677203e+04 !particle radius in m +2.69271095e+06 9.12085234e+06 -6.31280178e+04 ! x y z +-2.04468399e+03 6.49763127e+02 -6.41633267e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill +9.48618629e+03 !particle radius in m +-1.04843536e+07 -2.82530322e+06 -6.63351271e+03 ! x y z +5.35179489e+02 -1.90917831e+03 -8.89095603e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill +1.16195447e+04 !particle radius in m +8.55294018e+06 -2.42617769e+06 2.52020611e+04 ! x y z +6.43758212e+02 2.11770030e+03 -2.00995235e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill +1.23569961e+04 !particle radius in m +9.56160063e+06 2.03876951e+05 -1.15187717e+04 ! x y z +-2.08727307e+01 2.13182274e+03 -6.37368295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill +3.80903228e+03 !particle radius in m +8.39735110e+06 -4.64919497e+06 -4.03636604e+04 ! x y z +1.02402689e+03 1.86350550e+03 3.48961376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill +7.62073270e+03 !particle radius in m +1.14766676e+07 -2.46673442e+06 -6.18541161e+03 ! x y z +3.81520272e+02 1.87089502e+03 -6.28495237e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill +4.79251234e+03 !particle radius in m +7.65927810e+06 5.58691775e+06 6.38708550e+04 ! x y z +-1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill +4.85987440e+03 !particle radius in m +1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z +-2.71027694e+02 1.59383670e+03 4.71948132e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill +7.30665510e+03 !particle radius in m +-2.08216759e+06 -9.23350326e+06 -8.76611629e+04 ! x y z +2.08240223e+03 -4.40249465e+02 -1.27767388e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill +5.32422025e+03 !particle radius in m +8.73066827e+06 -2.21328634e+05 -3.34004359e+04 ! x y z +4.79166308e+01 2.23450529e+03 -9.11532147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill +1.18628272e+04 !particle radius in m +1.62631471e+07 4.67259161e+06 2.64032894e+04 ! x y z +-4.50841052e+02 1.52122597e+03 1.13312253e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill +7.00538757e+03 !particle radius in m +5.98003979e+05 -1.57345854e+07 -2.89481346e+04 ! x y z +1.64606847e+03 7.79210619e+01 -6.19029962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill +7.47416865e+03 !particle radius in m +-8.48106759e+06 4.91431093e+06 -8.66403288e+04 ! x y z +-1.03310578e+03 -1.80626108e+03 1.07091841e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill +1.21404101e+04 !particle radius in m +-1.84578837e+07 9.47798697e+05 -1.11240327e+05 ! x y z +-8.38856040e+01 -1.52441650e+03 -4.87143776e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill +1.17785087e+04 !particle radius in m +-5.76687798e+06 9.89435129e+06 4.39168015e+04 ! x y z +-1.66547278e+03 -9.63693666e+02 4.18572107e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill +5.60953779e+03 !particle radius in m +-1.82862969e+06 8.61926907e+06 -1.75357465e+04 ! x y z +-2.15498233e+03 -4.93004829e+02 7.64196538e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill +7.71421647e+03 !particle radius in m +3.76525777e+06 -1.03931378e+07 -7.52318459e+04 ! x y z +1.83850823e+03 6.78500036e+02 -6.89947122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill +8.65284640e+03 !particle radius in m +-6.33335198e+06 -5.98167685e+06 -3.08011537e+04 ! x y z +1.53763163e+03 -1.62109001e+03 -2.47037358e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill +6.23522281e+03 !particle radius in m +9.90333087e+06 -4.01192277e+06 6.04079611e+04 ! x y z +7.43355257e+02 1.83366572e+03 -1.58715640e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill +1.30331280e+04 !particle radius in m +-5.98502411e+06 1.07946936e+07 4.97027123e+03 ! x y z +-1.61657634e+03 -8.93801164e+02 -1.07876442e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill +9.63310475e+03 !particle radius in m +-6.59615203e+06 -1.12304386e+07 9.72528165e+04 ! x y z +1.57957874e+03 -9.09183472e+02 3.54133115e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill +6.79194010e+03 !particle radius in m +8.96651461e+06 1.05824022e+06 -2.00386304e+04 ! x y z +-2.80453416e+02 2.17973889e+03 1.20973693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill +9.18776116e+03 !particle radius in m +1.47368687e+06 1.52540290e+07 1.91344142e+05 ! x y z +-1.67085873e+03 1.59690705e+02 -2.30924434e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill +9.24689597e+03 !particle radius in m +-1.31122397e+06 1.35322324e+07 5.51107975e+04 ! x y z +-1.76733822e+03 -1.66895030e+02 1.40149353e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill +8.25926956e+03 !particle radius in m +6.67718106e+06 -6.31157792e+06 2.26609344e+04 ! x y z +1.50456951e+03 1.52943679e+03 8.18042830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill +1.06839624e+04 !particle radius in m +-9.16360265e+06 6.32922451e+06 2.58199480e+03 ! x y z +-1.14874981e+03 -1.60466496e+03 1.97944632e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill +6.68610634e+03 !particle radius in m +-1.15940056e+07 4.46540148e+06 -5.91615241e+04 ! x y z +-6.61054922e+02 -1.74552414e+03 3.85473780e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill +5.97652691e+03 !particle radius in m +7.27954173e+05 8.98873006e+06 3.22170920e+04 ! x y z +-2.16869199e+03 1.52559195e+02 -7.62441611e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill +9.95113166e+03 !particle radius in m +-7.91834556e+06 1.12541780e+07 -7.01445845e+04 ! x y z +-1.45888232e+03 -1.02209811e+03 -1.64204126e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill +5.79684738e+03 !particle radius in m +-1.33826547e+07 -7.97098248e+06 5.10482753e+03 ! x y z +8.38898161e+02 -1.43447217e+03 1.26393376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill +6.55636334e+03 !particle radius in m +1.00439607e+07 -4.85348750e+06 1.01261466e+05 ! x y z +8.20741840e+02 1.77276708e+03 -5.85913488e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill +6.70339268e+03 !particle radius in m +2.04930949e+06 -9.32239452e+06 -2.24373576e+04 ! x y z +2.07456592e+03 4.98065963e+02 1.20751769e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill +6.51070352e+03 !particle radius in m +-2.17215478e+07 -8.78835015e+06 -4.01495560e+04 ! x y z +5.14278406e+02 -1.24501793e+03 7.48973214e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill +1.11459543e+04 !particle radius in m +1.20260148e+07 1.50890452e+06 -8.61170776e+04 ! x y z +-2.28727670e+02 1.85884268e+03 1.03561533e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill +8.95337335e+03 !particle radius in m +6.77964628e+06 6.80088173e+06 3.59640048e+04 ! x y z +-1.51037716e+03 1.46534327e+03 4.36610744e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill +7.26477146e+03 !particle radius in m +1.93741347e+07 4.35856951e+06 -7.05507935e+02 ! x y z +-2.95958141e+02 1.44257652e+03 3.98161720e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill +1.17954044e+04 !particle radius in m +-1.36515521e+07 5.47808328e+06 2.30862197e+04 ! x y z +-6.21116352e+02 -1.59076755e+03 -4.14797264e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill +1.01304435e+04 !particle radius in m +1.29557484e+07 -3.33144253e+06 5.90527945e+04 ! x y z +4.53468556e+02 1.72544679e+03 8.55651480e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill +4.29537029e+03 !particle radius in m +1.22881970e+07 4.73181161e+06 8.31929270e+04 ! x y z +-6.58468588e+02 1.69384960e+03 -1.28940832e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill +5.31616352e+03 !particle radius in m +1.42705581e+07 -5.59919890e+06 -1.20173006e+04 ! x y z +6.15518752e+02 1.56633732e+03 -3.00095341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill +1.30497175e+04 !particle radius in m +1.22157187e+07 1.21158385e+07 -1.89187958e+04 ! x y z +-1.13185306e+03 1.10567360e+03 -1.20248978e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill +5.38815059e+03 !particle radius in m +3.95878049e+06 -8.23148660e+06 5.75314545e+04 ! x y z +1.96980210e+03 9.25868395e+02 1.73432582e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill +1.17101897e+04 !particle radius in m +-3.77919432e+06 1.07609723e+07 -5.23499337e+04 ! x y z +-1.82204789e+03 -6.43288095e+02 1.18800083e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill +6.69695574e+03 !particle radius in m +-1.05319563e+07 9.02628865e+06 7.76373874e+04 ! x y z +-1.14418489e+03 -1.35282145e+03 -8.67554957e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill +4.25091189e+03 !particle radius in m +1.11472461e+07 3.88496928e+06 2.24744875e+04 ! x y z +-6.24929449e+02 1.77558367e+03 1.82397206e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill +9.99413848e+03 !particle radius in m +7.13225296e+06 7.84741088e+06 7.08528372e+04 ! x y z +-1.47773160e+03 1.36033625e+03 -6.05338364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill +4.41976293e+03 !particle radius in m +1.57340361e+07 -9.25306632e+06 1.05005348e+05 ! x y z +7.63951994e+02 1.32212390e+03 -5.72592279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill +7.48688169e+03 !particle radius in m +1.78996895e+07 -3.23122702e+06 -8.50474408e+04 ! x y z +2.79448983e+02 1.51858349e+03 1.07776473e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill +9.82017615e+03 !particle radius in m +-1.25291109e+06 8.92261901e+06 6.19393261e+04 ! x y z +-2.15215968e+03 -3.42916287e+02 5.69467556e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill +6.92499799e+03 !particle radius in m +3.17829891e+06 -1.10142305e+07 -2.69804501e+04 ! x y z +1.85575994e+03 5.54347759e+02 -8.57029148e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill +7.71454664e+03 !particle radius in m +-1.52137099e+06 1.03039110e+07 -2.28129443e+04 ! x y z +-2.01239392e+03 -3.00583105e+02 1.82997128e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill +1.24308761e+04 !particle radius in m +7.58255782e+06 -6.89244058e+06 -4.22200409e+04 ! x y z +1.36574672e+03 1.52351062e+03 -3.42663337e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill +1.25439096e+04 !particle radius in m +-8.20564828e+06 8.24671241e+06 -1.78987991e+05 ! x y z +-1.37211179e+03 -1.35613094e+03 5.81977986e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill +9.84359343e+03 !particle radius in m +8.14883976e+06 -1.20311130e+07 2.81646262e+04 ! x y z +1.42418230e+03 9.71290645e+02 -1.65557105e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill +1.23336592e+04 !particle radius in m +2.74582126e+06 -8.71763630e+06 6.44092995e+04 ! x y z +2.06453659e+03 6.75538119e+02 -1.84554482e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill +1.06035211e+04 !particle radius in m +7.67980194e+06 -6.41178879e+06 9.39794316e+04 ! x y z +1.32508200e+03 1.58960541e+03 -1.68646923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill +1.01232471e+04 !particle radius in m +1.08862914e+07 -1.69171267e+06 1.06890002e+04 ! x y z +2.66940523e+02 1.93825037e+03 -3.17829482e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill +9.07368751e+03 !particle radius in m +-2.12855771e+07 -6.22047593e+06 4.09709267e+04 ! x y z +3.86441604e+02 -1.32836590e+03 2.12243761e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill +1.06903372e+04 !particle radius in m +1.19425206e+06 -8.91233794e+06 3.55973631e+04 ! x y z +2.17359618e+03 2.49148190e+02 5.23202275e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill +3.74060212e+03 !particle radius in m +9.56786350e+06 4.49949446e+05 3.82232625e+04 ! x y z +-9.15404876e+01 2.12884256e+03 -8.93875847e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill +7.94450563e+03 !particle radius in m +2.52449139e+06 -8.63435263e+06 3.47588448e+03 ! x y z +2.08621300e+03 5.91911411e+02 -3.57309299e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill +4.91211126e+03 !particle radius in m +1.30335501e+07 -9.18110749e+05 -5.93800312e+04 ! x y z +1.10189733e+02 1.82033941e+03 -1.02966654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill +1.07411202e+04 !particle radius in m +-8.43406318e+06 -5.93404434e+06 2.36715133e+04 ! x y z +1.16500133e+03 -1.67478526e+03 9.48734166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill +5.59848141e+03 !particle radius in m +1.45797657e+06 -1.20421345e+07 -3.75037404e+04 ! x y z +1.87575411e+03 2.26832585e+02 1.21113356e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill +9.61704013e+03 !particle radius in m +7.82736208e+06 -4.81216442e+06 6.09982286e+04 ! x y z +1.09482209e+03 1.86309298e+03 2.82110626e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill +1.26459448e+04 !particle radius in m +-1.04983951e+07 -9.78210039e+06 4.04999757e+04 ! x y z +1.16976801e+03 -1.28733444e+03 3.36107675e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill +8.00145320e+03 !particle radius in m +-8.88059070e+06 -1.48350388e+06 -3.65798996e+04 ! x y z +3.63914783e+02 -2.15370844e+03 -4.03870858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill +4.34941489e+03 !particle radius in m +1.71799482e+06 -1.11150786e+07 -1.11600323e+04 ! x y z +1.89156931e+03 3.37161187e+02 -5.00763335e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill +4.29486797e+03 !particle radius in m +1.22676746e+07 -7.93082840e+06 -7.55901444e+04 ! x y z +9.10780310e+02 1.43519257e+03 -9.59182854e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill +1.10726580e+04 !particle radius in m +6.08378238e+06 -7.87148142e+06 -2.39812665e+04 ! x y z +1.65441655e+03 1.27707568e+03 -1.18584893e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill +1.15859081e+04 !particle radius in m +5.05198031e+06 1.16964703e+07 1.98330665e+04 ! x y z +-1.69333923e+03 7.02450436e+02 2.04857518e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill +8.69558011e+03 !particle radius in m +-2.23024582e+06 1.75885326e+07 3.84168836e+04 ! x y z +-1.54534740e+03 -1.88777263e+02 1.39357869e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill +6.71590808e+03 !particle radius in m +1.11164532e+07 8.01001814e+06 1.06625699e+05 ! x y z +-1.04365443e+03 1.44565605e+03 2.11662748e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill +1.11542662e+04 !particle radius in m +-1.17258082e+06 -1.22657889e+07 4.54924052e+04 ! x y z +1.84907037e+03 -1.95731556e+02 1.04424396e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill +5.76789746e+03 !particle radius in m +8.87472318e+06 -1.41477847e+06 9.96850714e+03 ! x y z +3.48170496e+02 2.16686116e+03 6.86996341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill +9.35014220e+03 !particle radius in m +-1.06755868e+07 -2.26215221e+06 -1.03098190e+04 ! x y z +4.22938170e+02 -1.92356457e+03 -6.44322506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill +6.35246381e+03 !particle radius in m +-1.15286614e+07 6.85922305e+05 -2.50421030e+03 ! x y z +-1.47622259e+02 -1.91263388e+03 -2.66811177e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill +7.25614557e+03 !particle radius in m +-1.14907610e+07 3.12025122e+06 -5.05043492e+04 ! x y z +-4.96419350e+02 -1.84148364e+03 1.23574710e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill +1.02673671e+04 !particle radius in m +3.52540674e+06 1.12335432e+07 5.00575123e+04 ! x y z +-1.81448873e+03 5.96787301e+02 1.05390435e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill +7.63921866e+03 !particle radius in m +-1.63903863e+07 9.01968445e+06 -1.03768934e+05 ! x y z +-7.30657688e+02 -1.32744569e+03 -3.28089387e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill +1.06009616e+04 !particle radius in m +1.01396523e+07 -4.81960415e+06 4.30193977e+03 ! x y z +8.23199841e+02 1.75908251e+03 4.33811421e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill +1.05483834e+04 !particle radius in m +1.06454895e+07 5.05879867e+06 5.08283132e+04 ! x y z +-8.22304047e+02 1.73567086e+03 1.93532669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill +7.81533428e+03 !particle radius in m +-1.60755914e+07 -7.66558706e+05 1.42941147e+04 ! x y z +6.22982075e+01 -1.61863536e+03 -1.60725073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill +1.15883574e+04 !particle radius in m +-1.46060477e+06 -8.99385191e+06 -3.08209444e+04 ! x y z +2.13011898e+03 -3.25298595e+02 2.80216541e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill +1.12624422e+04 !particle radius in m +-1.41660966e+06 8.99035717e+06 1.40528615e+04 ! x y z +-2.12617696e+03 -3.75024767e+02 -9.07028597e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill +1.21525746e+04 !particle radius in m +8.84712919e+06 3.96421798e+06 1.13803740e+04 ! x y z +-8.83218100e+02 1.91945493e+03 3.31259998e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill +5.67364039e+03 !particle radius in m +6.88657663e+06 -1.05966202e+07 1.71451160e+03 ! x y z +1.56481452e+03 9.63079720e+02 1.94534764e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill +7.43259427e+03 !particle radius in m +-8.85269678e+06 5.44905716e+06 -5.60825695e+04 ! x y z +-1.07596431e+03 -1.72186966e+03 1.77805310e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill +1.19513059e+04 !particle radius in m +3.11450797e+06 -1.37495078e+07 -3.57099214e+04 ! x y z +1.70202965e+03 3.85543507e+02 -4.49001111e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill +1.10220195e+04 !particle radius in m +-9.00924085e+06 4.66367866e+06 1.26574464e+04 ! x y z +-9.50214730e+02 -1.81339232e+03 -1.20100516e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill +5.04841672e+03 !particle radius in m +-1.08865724e+07 1.89436312e+06 -5.35372336e+04 ! x y z +-3.54360414e+02 -1.92451382e+03 8.24540973e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill +4.15403541e+03 !particle radius in m +1.55751438e+07 6.03420204e+06 -2.57378814e+04 ! x y z +-5.81737732e+02 1.49479237e+03 -7.62983212e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill +1.15117238e+04 !particle radius in m +1.06056911e+07 8.74976261e+04 -1.72290821e+03 ! x y z +-1.77150357e+01 2.02140459e+03 -2.31012980e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill +1.11945004e+04 !particle radius in m +-6.72042968e+06 -1.07531738e+07 5.09281015e+04 ! x y z +1.56397473e+03 -9.57368328e+02 -1.25364327e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill +7.53816353e+03 !particle radius in m +4.10458407e+06 -1.13623664e+07 -9.48469623e+04 ! x y z +1.78215300e+03 6.13680096e+02 -7.93502985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill +7.54041364e+03 !particle radius in m +8.42747503e+06 -6.97349936e+06 -2.15671129e+04 ! x y z +1.26552336e+03 1.51523836e+03 2.12892191e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill +6.76488745e+03 !particle radius in m +-1.31213742e+07 -4.58561120e+06 1.53600301e+04 ! x y z +5.82359194e+02 -1.66882713e+03 1.14079207e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill +6.58324849e+03 !particle radius in m +-7.56393159e+06 7.09659926e+06 -4.65315976e+04 ! x y z +-1.36862256e+03 -1.51081343e+03 1.13488899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill +8.49453445e+03 !particle radius in m +4.46247777e+06 -8.10645059e+06 1.43618351e+04 ! x y z +1.90934802e+03 1.00293881e+03 8.21819949e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill +6.81841660e+03 !particle radius in m +-9.96034566e+06 4.35537723e+06 -1.20286093e+04 ! x y z +-7.67471215e+02 -1.83079175e+03 -1.31980560e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill +1.08946542e+04 !particle radius in m +-1.14760721e+07 3.70943531e+06 -9.49844421e+04 ! x y z +-5.95286906e+02 -1.76496467e+03 3.00728950e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill +1.25068862e+04 !particle radius in m +-1.57425262e+07 -1.71485068e+06 5.83418789e+04 ! x y z +1.83396886e+02 -1.64215306e+03 1.76834645e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill +1.14129344e+04 !particle radius in m +-5.50533612e+06 -7.29539312e+06 -4.19582765e+04 ! x y z +1.70576164e+03 -1.34793657e+03 3.36918899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill +7.58200769e+03 !particle radius in m +-1.84334893e+06 9.13437442e+06 -6.98626074e+03 ! x y z +-2.09435634e+03 -4.13549777e+02 1.31091798e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill +1.16362363e+04 !particle radius in m +-8.24556722e+05 1.30406598e+07 9.22800110e+04 ! x y z +-1.80291385e+03 -1.14208577e+02 5.06777815e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill +8.28218455e+03 !particle radius in m +-9.92787386e+06 7.89436638e+06 5.47155159e+04 ! x y z +-1.15186100e+03 -1.44221325e+03 -1.43299470e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill +5.69676070e+03 !particle radius in m +-1.72820033e+07 -1.54859445e+07 -1.76600870e+05 ! x y z +9.00952544e+02 -1.00938815e+03 5.52976287e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill +1.17273100e+04 !particle radius in m +7.54874149e+06 -7.34865635e+06 1.58691383e+04 ! x y z +1.40447688e+03 1.44745232e+03 -1.19902506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill +7.57115197e+03 !particle radius in m +6.70925482e+06 1.02233476e+07 -8.94168570e+04 ! x y z +-1.57673538e+03 1.00346927e+03 -1.54449677e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill +1.07187619e+04 !particle radius in m +-9.38875782e+06 -1.03278172e+06 4.07424683e+04 ! x y z +2.57699240e+02 -2.12423408e+03 -1.75552004e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill +7.85184231e+03 !particle radius in m +9.27514180e+06 3.60605892e+06 -8.97298126e+03 ! x y z +-7.45316219e+02 1.94032830e+03 2.50725751e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill +5.81259090e+03 !particle radius in m +2.84715606e+05 -8.96387040e+06 -7.61793089e+04 ! x y z +2.17642987e+03 7.44775849e+01 5.43474351e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill +1.05845019e+04 !particle radius in m +4.23618089e+06 8.82455069e+06 -3.58009197e+04 ! x y z +-1.88592236e+03 9.06205367e+02 -1.32060735e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill +9.03321920e+03 !particle radius in m +8.99412766e+06 -6.25093595e+06 5.78854309e+04 ! x y z +1.13268666e+03 1.63171487e+03 -3.80887879e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill +1.06850859e+04 !particle radius in m +8.95756676e+06 -5.04120234e+06 4.46604404e+04 ! x y z +9.97476295e+02 1.78291720e+03 1.83929026e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill +1.09897543e+04 !particle radius in m +-6.88398435e+06 -9.59185877e+06 5.44110030e+04 ! x y z +1.53704986e+03 -1.12804795e+03 1.33934445e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill +6.75416723e+03 !particle radius in m +4.06115845e+06 9.20664592e+06 1.44995295e+04 ! x y z +-1.87321421e+03 8.55264917e+02 4.54558328e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill +4.24346826e+03 !particle radius in m +5.83709056e+06 1.18773019e+07 -1.78313453e+04 ! x y z +-1.60438748e+03 8.04911839e+02 7.87147192e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill +1.27557328e+04 !particle radius in m +-9.82331264e+06 -1.72475014e+06 -4.50474397e+04 ! x y z +3.80035552e+02 -2.02006276e+03 1.41607704e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill +6.59694858e+03 !particle radius in m +-9.75150606e+06 1.14173962e+06 1.90738112e+04 ! x y z +-2.44986733e+02 -2.07228361e+03 4.28819137e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill +1.25314767e+04 !particle radius in m +8.89271698e+06 -2.80889036e+06 -9.05088712e+04 ! x y z +6.43083392e+02 2.05152117e+03 5.84263642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill +5.48083372e+03 !particle radius in m +5.55138431e+05 8.96699891e+06 -2.02907914e+03 ! x y z +-2.16543193e+03 1.17824020e+02 1.89028293e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill +1.01136344e+04 !particle radius in m +1.08689498e+07 6.77891019e+06 -1.57957399e+05 ! x y z +-9.58257682e+02 1.54874788e+03 -4.38996175e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill +1.19617045e+04 !particle radius in m +-3.46641057e+06 1.06366697e+07 -4.89091419e+04 ! x y z +-1.87369781e+03 -5.85557096e+02 2.64347289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill +1.29314335e+04 !particle radius in m +7.28383532e+06 5.25991927e+06 -2.74032882e+04 ! x y z +-1.28268765e+03 1.77447224e+03 6.54106986e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill +5.50052892e+03 !particle radius in m +-4.06177152e+06 -1.52948510e+07 1.69121808e+05 ! x y z +1.57226331e+03 -4.40552105e+02 -4.07139830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill +4.79923872e+03 !particle radius in m +-9.47543528e+06 -9.79695598e+05 -1.53056931e+04 ! x y z +2.01324530e+02 -2.10617058e+03 -1.48150840e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill +8.40797283e+03 !particle radius in m +-1.79473215e+07 9.78097521e+05 5.91571461e+04 ! x y z +-1.10933113e+02 -1.54125298e+03 1.80243489e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill +8.72299905e+03 !particle radius in m +-4.10705239e+06 2.02615072e+07 8.49438827e+04 ! x y z +-1.41774938e+03 -2.76831824e+02 -8.09634112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill +4.25918528e+03 !particle radius in m +9.20347813e+05 1.11635810e+07 4.32283845e+04 ! x y z +-1.94746867e+03 1.65365528e+02 5.45495799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill +1.11681152e+04 !particle radius in m +1.02476212e+07 1.57307556e+06 1.24769819e+04 ! x y z +-3.20593926e+02 2.01506970e+03 6.12888669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill +9.67932473e+03 !particle radius in m +-9.41529174e+06 -1.45196651e+06 -3.72716178e+03 ! x y z +3.30034223e+02 -2.10697891e+03 -9.10557070e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill +7.16468942e+03 !particle radius in m +9.63405331e+06 9.48657460e+06 -1.16765431e+05 ! x y z +-1.25212013e+03 1.25762974e+03 -8.79471164e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill +6.23859022e+03 !particle radius in m +1.28395429e+07 1.67358191e+05 3.52526511e+04 ! x y z +-4.79000239e+01 1.82109236e+03 -7.08024284e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill +1.05194783e+04 !particle radius in m +1.69906243e+05 1.31567065e+07 -2.83802597e+04 ! x y z +-1.79852464e+03 -2.60855891e+01 1.09479469e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill +1.30502985e+04 !particle radius in m +-8.71409354e+06 -5.07378044e+06 -2.89973508e+04 ! x y z +1.01955016e+03 -1.80816198e+03 1.72703995e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill +1.10169094e+04 !particle radius in m +-1.32773676e+07 9.58326159e+06 1.68929446e+04 ! x y z +-9.40100121e+02 -1.31837280e+03 -1.11767857e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill +9.57459397e+03 !particle radius in m +-8.40811158e+06 5.08930784e+06 5.82263133e+04 ! x y z +-1.10041478e+03 -1.79532449e+03 1.45771724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill +3.98308125e+03 !particle radius in m +1.04113372e+07 -6.20697428e+06 -4.84867208e+03 ! x y z +9.45840262e+02 1.61620978e+03 2.47832189e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill +9.15799677e+03 !particle radius in m +-8.01518815e+06 -5.01852324e+06 5.17503273e+04 ! x y z +1.12426091e+03 -1.82440187e+03 2.07206048e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill +7.21107035e+03 !particle radius in m +2.07944449e+06 8.94904149e+06 4.13797547e+04 ! x y z +-2.09851241e+03 4.60858305e+02 2.54918811e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill +7.12123600e+03 !particle radius in m +9.71543544e+06 -3.75196256e+06 7.97368753e+04 ! x y z +7.42718545e+02 1.90076456e+03 1.83014984e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill +8.68766895e+03 !particle radius in m +1.76238307e+07 7.35273671e+06 8.70758386e+04 ! x y z +-5.77591306e+02 1.37259271e+03 3.08504041e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill +1.18860727e+04 !particle radius in m +1.05252406e+07 1.01023349e+07 1.18854193e+04 ! x y z +-1.19069656e+03 1.22779101e+03 7.21918511e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill +1.05401406e+04 !particle radius in m +-2.44589262e+06 9.98155585e+06 -7.16098465e+04 ! x y z +-2.01199959e+03 -4.94158200e+02 1.76332595e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill +1.14368147e+04 !particle radius in m +-1.71313810e+07 1.65684524e+05 7.09374774e+04 ! x y z +-1.73247831e+01 -1.58285349e+03 5.23281867e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill +1.10288797e+04 !particle radius in m +5.96055313e+06 8.26822848e+06 -6.95116782e+04 ! x y z +-1.67280349e+03 1.20494456e+03 -5.49043884e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill +4.32451704e+03 !particle radius in m +-4.58351543e+06 8.68653626e+06 -2.19181580e+04 ! x y z +-1.82145003e+03 -9.87506692e+02 -1.02913863e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill +5.91337055e+03 !particle radius in m +1.46092641e+06 1.62085257e+07 9.35785200e+04 ! x y z +-1.61693894e+03 1.23715914e+02 1.88035614e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill +6.91398214e+03 !particle radius in m +8.37967759e+06 2.86987872e+06 4.97540416e+02 ! x y z +-6.79497178e+02 2.09457077e+03 -7.48586459e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill +7.72793689e+03 !particle radius in m +1.00544998e+07 -4.23649556e+06 1.69842871e+04 ! x y z +7.79559289e+02 1.80935311e+03 -9.45690780e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill +5.52345548e+03 !particle radius in m +4.97012699e+06 7.77763306e+06 -1.08049137e+05 ! x y z +-1.81754065e+03 1.16817211e+03 7.93709072e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill +1.16622408e+04 !particle radius in m +-8.56556120e+06 -3.00745478e+06 2.68959103e+04 ! x y z +7.41957227e+02 -2.02442760e+03 5.97293652e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill +3.85423811e+03 !particle radius in m +-9.89914954e+06 1.64381375e+06 1.86441037e+04 ! x y z +-3.29902217e+02 -2.03621690e+03 -1.49125925e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill +9.71972363e+03 !particle radius in m +-1.33296527e+07 -1.79984260e+07 -6.91244815e+03 ! x y z +1.12052368e+03 -8.18620884e+02 -1.17030012e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill +8.10053368e+03 !particle radius in m +2.47744290e+05 1.08515872e+07 8.05332988e+04 ! x y z +-1.98242921e+03 4.60702324e+01 -8.10883988e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill +9.01222011e+03 !particle radius in m +-1.04485761e+07 -3.19315171e+06 -6.87163868e+04 ! x y z +5.84305730e+02 -1.88680612e+03 1.24994521e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill +7.38646156e+03 !particle radius in m +-4.30915405e+06 1.13988191e+07 -1.87898899e+03 ! x y z +-1.74153886e+03 -6.58302615e+02 5.64269794e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill +4.00465955e+03 !particle radius in m +1.07629692e+07 1.37789153e+07 5.87066489e+04 ! x y z +-1.23476438e+03 9.58354279e+02 -1.51457433e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill +8.23094873e+03 !particle radius in m +-2.26919155e+06 -2.23065641e+07 1.71429522e+05 ! x y z +1.36729685e+03 -1.26785143e+02 1.53512073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill +4.90670043e+03 !particle radius in m +-8.76057602e+06 -2.98488729e+06 3.16441575e+04 ! x y z +7.01564230e+02 -2.04784374e+03 6.54428080e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill +1.18338596e+04 !particle radius in m +7.33432561e+06 1.58195231e+07 -1.25526941e+05 ! x y z +-1.41716350e+03 6.50084435e+02 1.99363998e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill +5.31334038e+03 !particle radius in m +9.67909368e+06 -3.14679172e+06 1.01149877e+04 ! x y z +6.30534017e+02 1.94451859e+03 1.40841719e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill +6.60251226e+03 !particle radius in m +3.58575623e+06 -8.28340933e+06 2.06786831e+04 ! x y z +2.01251169e+03 8.71048387e+02 4.13835680e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill +8.17577418e+03 !particle radius in m +-1.59444867e+07 -9.43202143e+06 -1.03432964e+05 ! x y z +7.76368044e+02 -1.31648260e+03 -1.97011404e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill +3.92504366e+03 !particle radius in m +8.15294773e+06 -4.83168922e+06 -2.23196035e+04 ! x y z +1.12438877e+03 1.80730928e+03 -9.96110137e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill +5.55020210e+03 !particle radius in m +1.15608807e+07 -1.72289132e+06 8.78681619e+04 ! x y z +2.64558251e+02 1.88351104e+03 -1.22676546e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill +7.45917792e+03 !particle radius in m +5.94153104e+05 1.04675287e+07 -7.76838952e+04 ! x y z +-2.01022149e+03 1.00791259e+02 2.73869669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill +6.80580498e+03 !particle radius in m +9.10704389e+06 5.66556444e+06 -1.21395685e+05 ! x y z +-1.06310456e+03 1.70305461e+03 1.52195271e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill +7.63395485e+03 !particle radius in m +-6.14994249e+06 -1.27900562e+07 -1.88907757e+04 ! x y z +1.55814359e+03 -7.78224426e+02 2.73440877e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill +7.02952878e+03 !particle radius in m +-8.80385560e+06 3.77151207e+06 -1.21818940e+05 ! x y z +-8.47944944e+02 -1.95313347e+03 -1.70763192e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill +1.20172005e+04 !particle radius in m +1.08664166e+07 5.36923937e+06 -8.13196573e+04 ! x y z +-8.16624638e+02 1.69027839e+03 8.34673628e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill +6.38540043e+03 !particle radius in m +-5.47268707e+06 7.90131264e+06 3.38529547e+04 ! x y z +-1.73122732e+03 -1.20437649e+03 1.62011748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill +1.16499575e+04 !particle radius in m +1.10121047e+07 -6.14561995e+06 5.51425169e+04 ! x y z +8.91208138e+02 1.62668641e+03 -4.00812310e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill +5.79050854e+03 !particle radius in m +-3.82515764e+06 1.42902315e+07 -2.47878060e+04 ! x y z +-1.63598310e+03 -4.85341065e+02 -2.82331478e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill +1.20288397e+04 !particle radius in m +-1.84053839e+06 9.22666914e+06 -1.87382012e+04 ! x y z +-2.10070573e+03 -4.25824187e+02 -2.45200413e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill +6.14242713e+03 !particle radius in m +-7.35737221e+06 -9.68920345e+06 5.93390680e+04 ! x y z +1.50053722e+03 -1.12338599e+03 -1.30933156e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill +9.83970306e+03 !particle radius in m +-8.70682368e+06 5.56356570e+06 -6.56478138e+04 ! x y z +-1.11346390e+03 -1.70326053e+03 1.28466204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill +5.96724810e+03 !particle radius in m +7.02500514e+06 -1.38238984e+07 6.74566304e+04 ! x y z +1.48675948e+03 7.65020748e+02 8.19788003e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill +1.17076027e+04 !particle radius in m +-9.79856030e+06 2.12372760e+06 1.89480336e+04 ! x y z +-4.48830087e+02 -2.02736841e+03 -1.23694959e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill +8.52806763e+03 !particle radius in m +-1.01558817e+07 -2.10873547e+07 -2.03636345e+05 ! x y z +1.20616652e+03 -5.87121724e+02 -4.30533916e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill +8.67447176e+03 !particle radius in m +1.10980559e+07 1.19228306e+07 -2.89204661e+04 ! x y z +-1.18553044e+03 1.09632262e+03 8.12769922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill +6.48784045e+03 !particle radius in m +1.00683282e+07 -1.06678967e+05 -7.08192900e+04 ! x y z +7.59653606e-01 2.03836538e+03 -2.00978691e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill +9.86938263e+03 !particle radius in m +8.35393830e+06 3.60269502e+06 -6.29338444e+04 ! x y z +-8.43508227e+02 1.99248181e+03 2.35695291e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill +9.08852133e+03 !particle radius in m +7.15716844e+06 2.23969109e+07 -2.43128655e+05 ! x y z +-1.28744111e+03 4.04784490e+02 -9.98522887e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill +7.97538482e+03 !particle radius in m +9.79101038e+06 -7.57582171e+06 -6.16544234e+03 ! x y z +1.14324704e+03 1.46779509e+03 -4.09524183e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill +1.21026921e+04 !particle radius in m +1.92900217e+07 -9.92716086e+06 -8.71066703e+04 ! x y z +6.46615886e+02 1.23877023e+03 -8.06944804e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill +1.12884701e+04 !particle radius in m +7.63578761e+05 -1.05163176e+07 -1.40125740e+03 ! x y z +1.99506811e+03 1.28492643e+02 -1.21964426e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill +1.09158716e+04 !particle radius in m +6.16240208e+05 1.16898273e+07 -2.31871163e+03 ! x y z +-1.92072024e+03 1.14544858e+02 -1.24842975e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill +4.93459624e+03 !particle radius in m +1.03595473e+07 -4.35809471e+06 -5.55598025e+04 ! x y z +7.59957188e+02 1.81039627e+03 -9.27171494e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill +9.30593115e+03 !particle radius in m +-8.58951099e+05 1.20741593e+07 8.58096722e+03 ! x y z +-1.85656009e+03 -1.31659982e+02 -7.07088670e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill +7.71593034e+03 !particle radius in m +1.34936412e+07 9.22411406e+05 -1.28097766e+05 ! x y z +-1.21347788e+02 1.77352752e+03 6.09816980e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill +4.06146670e+03 !particle radius in m +8.93667242e+06 -4.37387871e+06 4.75249766e+04 ! x y z +9.07116732e+02 1.86034352e+03 -2.16160032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill +5.10279049e+03 !particle radius in m +2.97443729e+06 1.12987732e+07 -7.15478904e+04 ! x y z +-1.84937662e+03 4.88975049e+02 -1.62129744e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill +9.84038492e+03 !particle radius in m +-1.20782110e+07 5.42799080e+06 -2.14298463e+04 ! x y z +-7.60124760e+02 -1.64210069e+03 1.17910321e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill +8.19645631e+03 !particle radius in m +-1.66687778e+07 3.40131310e+06 -8.13780785e+04 ! x y z +-3.27574668e+02 -1.54958699e+03 7.60005752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill +1.10674500e+04 !particle radius in m +8.04465463e+06 7.94262975e+06 3.50880055e+04 ! x y z +-1.38047284e+03 1.36038061e+03 9.60840796e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill +9.32873342e+03 !particle radius in m +8.72948534e+06 2.25552201e+06 -6.67651980e+03 ! x y z +-5.17110071e+02 2.09745799e+03 -1.26305103e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill +3.97264243e+03 !particle radius in m +1.59911238e+07 -5.78123234e+06 -4.96452199e+04 ! x y z +5.52053054e+02 1.48435519e+03 -7.76218367e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill +9.94269530e+03 !particle radius in m +-7.16058601e+06 5.68697632e+06 2.50735615e+04 ! x y z +-1.32041167e+03 -1.70209713e+03 -5.51776816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill +1.05009525e+04 !particle radius in m +-1.96591682e+06 -9.56765462e+06 -5.49582524e+04 ! x y z +2.05754068e+03 -4.30221705e+02 -6.52205972e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill +8.22033835e+03 !particle radius in m +-1.32036875e+07 -6.42805082e+06 -2.13137156e+04 ! x y z +7.40576713e+02 -1.53667373e+03 -1.66122663e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill +1.28408960e+04 !particle radius in m +7.26511252e+06 1.02544271e+07 -1.28126970e+04 ! x y z +-1.50567288e+03 1.06151555e+03 -1.91621752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill +5.50382909e+03 !particle radius in m +-9.70398421e+06 5.43301598e+06 -7.10765156e+04 ! x y z +-9.66770489e+02 -1.69237365e+03 -3.28188506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill +1.28572603e+04 !particle radius in m +2.96216400e+05 -9.44659905e+06 6.39430618e+04 ! x y z +2.13334160e+03 5.10827881e+01 -3.06567932e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill +3.72381283e+03 !particle radius in m +-7.59639515e+06 5.48032752e+06 -2.40679326e+03 ! x y z +-1.21575451e+03 -1.75481888e+03 -1.69366205e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill +6.21604216e+03 !particle radius in m +4.26014597e+06 8.47244148e+06 -4.52841666e+04 ! x y z +-1.89773381e+03 9.86947142e+02 2.27005651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill +7.04464148e+03 !particle radius in m +5.86869928e+06 6.95435059e+06 -3.04780435e+04 ! x y z +-1.65434811e+03 1.39969038e+03 3.34387968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill +1.15473588e+04 !particle radius in m +-8.24315322e+06 -5.69586696e+06 2.20302861e+04 ! x y z +1.15852208e+03 -1.69773981e+03 2.26551767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill +4.57262149e+03 !particle radius in m +-2.90925512e+06 8.79933915e+06 6.42165783e+04 ! x y z +-2.03971713e+03 -6.70860975e+02 7.91657343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill +1.29780877e+04 !particle radius in m +9.24506088e+06 5.42020869e+06 3.55011834e+04 ! x y z +-9.90032731e+02 1.74244918e+03 -6.84359361e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill +3.72768740e+03 !particle radius in m +1.49390033e+07 5.03002569e+06 -6.08660675e+04 ! x y z +-5.02338251e+02 1.56332178e+03 -1.67781569e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill +1.05170553e+04 !particle radius in m +1.23161243e+07 1.68843020e+06 2.12877558e+04 ! x y z +-2.39425053e+02 1.84057327e+03 1.32413609e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill +1.27277329e+04 !particle radius in m +8.91889708e+06 -5.54747107e+05 4.66922419e+04 ! x y z +1.62589921e+02 2.18077019e+03 -1.86548050e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill +8.96414991e+03 !particle radius in m +-5.82188250e+06 -6.93015474e+06 8.83731418e+03 ! x y z +1.65500621e+03 -1.40856285e+03 -4.08918572e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill +1.03907754e+04 !particle radius in m +-7.35080590e+06 -7.29055125e+06 -1.20861111e+03 ! x y z +1.39392385e+03 -1.47392682e+03 -1.29937331e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill +4.93452768e+03 !particle radius in m +-1.22300071e+07 4.00505750e+06 -4.82429747e+04 ! x y z +-5.99234873e+02 -1.71878148e+03 -9.59996458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill +5.23080275e+03 !particle radius in m +1.90445756e+06 1.53190995e+07 1.28393938e+05 ! x y z +-1.65070889e+03 1.86078304e+02 1.21713635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill +3.95409460e+03 !particle radius in m +1.16512710e+06 9.58806430e+06 6.00184281e+03 ! x y z +-2.08431325e+03 2.50023373e+02 -4.86726355e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill +5.07066194e+03 !particle radius in m +2.90940058e+06 8.85967621e+06 -3.67911262e+04 ! x y z +-2.05184488e+03 6.57972025e+02 3.77722174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill +1.02592460e+04 !particle radius in m +1.02030674e+07 -2.25656251e+06 -2.42931768e+04 ! x y z +4.02033391e+02 1.97779610e+03 -4.56432654e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill +4.30171134e+03 !particle radius in m +-2.21966207e+06 -8.53462824e+06 5.98951302e+03 ! x y z +2.13957370e+03 -5.72879766e+02 -9.73511724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill +9.83577325e+03 !particle radius in m +-5.82677409e+06 -8.25640044e+06 -1.85310721e+04 ! x y z +1.68912824e+03 -1.20023426e+03 -1.46688747e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill +9.39909127e+03 !particle radius in m +-4.15446158e+05 -1.04064911e+07 -6.01445752e+04 ! x y z +2.04307655e+03 -9.44888304e+01 -1.29270899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill +5.23703394e+03 !particle radius in m +1.44949245e+06 -1.38726585e+07 1.28983420e+04 ! x y z +1.74524417e+03 1.89418829e+02 -1.27510818e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill +6.74226629e+03 !particle radius in m +-1.02673257e+07 5.51832525e+06 7.68510549e+04 ! x y z +-9.09826047e+02 -1.68325012e+03 -9.74521738e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill +1.14295731e+04 !particle radius in m +9.99103043e+06 1.06885708e+07 7.94231343e+04 ! x y z +-1.28100100e+03 1.14298665e+03 7.74179187e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill +1.13206181e+04 !particle radius in m +4.41133703e+06 8.86113052e+06 -4.90493478e+04 ! x y z +-1.86573176e+03 9.32322270e+02 -1.20417460e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill +7.33201534e+03 !particle radius in m +-1.05312274e+07 1.06309083e+06 -3.40508748e+04 ! x y z +-2.12025256e+02 -1.99070933e+03 2.76988985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill +6.76474935e+03 !particle radius in m +-9.13190511e+06 -9.87045448e+05 4.65363249e+04 ! x y z +2.72813658e+02 -2.14939314e+03 -6.89232508e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill +8.56661866e+03 !particle radius in m +-9.55165901e+06 3.32037562e+06 -5.74639097e+04 ! x y z +-7.05014643e+02 -1.94468153e+03 -9.68692941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill +8.48722461e+03 !particle radius in m +-2.79080237e+06 -1.49534280e+07 6.61250908e+04 ! x y z +1.66874204e+03 -2.93565278e+02 -6.04868304e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill +6.82030227e+03 !particle radius in m +1.76076614e+06 -8.89107995e+06 4.77043786e+04 ! x y z +2.14748256e+03 4.04932388e+02 -1.26152318e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill +1.02690639e+04 !particle radius in m +8.52637393e+06 2.63618253e+06 -5.22911736e+04 ! x y z +-6.60976767e+02 2.09577153e+03 3.42675226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill +5.35754408e+03 !particle radius in m +1.08528417e+07 5.02794391e+05 -2.76918530e+04 ! x y z +-1.27726381e+02 1.98516729e+03 -1.12360782e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill +1.18534842e+04 !particle radius in m +-7.11955030e+06 6.48411163e+06 -1.64876744e+04 ! x y z +-1.43123341e+03 -1.55444238e+03 -1.21086898e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill +9.10252919e+03 !particle radius in m +7.73539416e+06 4.91837100e+06 3.79759434e+04 ! x y z +-1.16029500e+03 1.85248711e+03 2.31086993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill +1.02339004e+04 !particle radius in m +8.76407090e+06 -2.02266717e+06 -1.17355053e+04 ! x y z +4.87045225e+02 2.14976445e+03 -1.12592644e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill +1.16832115e+04 !particle radius in m +-5.85624077e+06 -7.65100688e+06 -6.81073848e+04 ! x y z +1.69101430e+03 -1.25110313e+03 -1.69620610e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill +4.63065609e+03 !particle radius in m +-4.73064294e+06 1.23174391e+07 -1.15616945e+05 ! x y z +-1.67622870e+03 -6.40214154e+02 -2.40259531e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill +6.75204041e+03 !particle radius in m +1.21865621e+07 4.96824670e+06 1.38201935e+04 ! x y z +-6.90512507e+02 1.66991832e+03 1.81886433e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill +9.95606737e+03 !particle radius in m +1.16681691e+07 6.27755146e+06 -9.89757611e+04 ! x y z +-8.82483897e+02 1.58231102e+03 -7.45315405e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill +5.99441701e+03 !particle radius in m +-9.82574233e+06 -6.12952303e+06 1.96949177e+04 ! x y z +1.01952580e+03 -1.64506613e+03 1.17311172e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill +1.16562377e+04 !particle radius in m +-7.66867450e+06 -6.71467472e+06 1.82936899e+04 ! x y z +1.37697709e+03 -1.54141508e+03 -1.04916179e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill +7.22008053e+03 !particle radius in m +6.68731996e+06 1.21566043e+07 -5.02348380e+04 ! x y z +-1.55626881e+03 8.62955881e+02 7.13319505e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill +4.52448294e+03 !particle radius in m +5.58226973e+05 -1.33893338e+07 3.23944444e+04 ! x y z +1.78341617e+03 5.70175526e+01 2.01164673e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill +8.03922694e+03 !particle radius in m +2.69184570e+06 8.96128856e+06 -1.43912663e+04 ! x y z +-2.03943626e+03 6.16982327e+02 1.53458951e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill +1.09006261e+04 !particle radius in m +-1.76847286e+07 -6.05601018e+05 1.06870104e+04 ! x y z +8.13556990e+01 -1.55405464e+03 1.07736989e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill +5.96239346e+03 !particle radius in m +-4.46692197e+06 -8.22773588e+06 -3.36712950e+04 ! x y z +1.90929541e+03 -1.00567083e+03 1.30091738e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill +3.86203494e+03 !particle radius in m +1.09873618e+07 1.89353789e+07 1.37058307e+05 ! x y z +-1.20089709e+03 6.97166990e+02 -1.15971142e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill +1.20678989e+04 !particle radius in m +8.92466133e+06 -1.21792450e+06 3.61100410e+04 ! x y z +3.10051974e+02 2.14937296e+03 -1.41043166e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill +8.91193791e+03 !particle radius in m +-5.85289838e+05 1.08674619e+07 3.13865857e+04 ! x y z +-1.97212405e+03 -1.17677554e+02 -3.37938196e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill +6.40717392e+03 !particle radius in m +2.71862051e+06 -9.05514497e+06 -5.54339403e+02 ! x y z +2.04451063e+03 5.93924832e+02 -2.26401878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill +1.01917795e+04 !particle radius in m +-4.06364003e+06 8.41274452e+06 3.61206264e+04 ! x y z +-1.92276154e+03 -9.27433732e+02 1.11784546e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill +7.03132016e+03 !particle radius in m +-1.19933178e+07 -3.73131347e+06 1.49826992e+03 ! x y z +5.46200488e+02 -1.75445228e+03 -4.43292318e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill +4.01835133e+03 !particle radius in m +-2.24454214e+07 -7.37433557e+06 5.58803594e+04 ! x y z +4.48331646e+02 -1.26886747e+03 -5.97172099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill +4.48393645e+03 !particle radius in m +-1.00569236e+07 1.52027585e+06 5.50467478e+04 ! x y z +-2.73653938e+02 -2.04195337e+03 2.77105641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill +4.73706563e+03 !particle radius in m +1.42492815e+06 -9.15917062e+06 -2.25858696e+04 ! x y z +2.12298306e+03 3.34049377e+02 1.00298878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill +5.32956636e+03 !particle radius in m +-7.74886856e+06 6.98419572e+06 4.81094824e+02 ! x y z +-1.36287826e+03 -1.51437942e+03 -1.68752883e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill +8.98855782e+03 !particle radius in m +-9.13222067e+06 7.31343022e+06 -3.08093425e+04 ! x y z +-1.21046156e+03 -1.49256909e+03 -3.15355485e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill +6.01378842e+03 !particle radius in m +6.06087158e+06 -9.69417839e+06 6.23119551e+04 ! x y z +1.63826093e+03 1.03252872e+03 -8.91138112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill +4.62821986e+03 !particle radius in m +1.42036863e+07 3.21005959e+05 -1.52147935e+05 ! x y z +-2.29346938e+01 1.73911536e+03 2.41934076e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill +1.02114099e+04 !particle radius in m +2.47060933e+06 -8.49038937e+06 -1.64092125e+04 ! x y z +2.11333925e+03 6.27764025e+02 3.26978709e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill +1.22853727e+04 !particle radius in m +-1.70653039e+07 2.72173559e+06 1.07972032e+05 ! x y z +-2.36876536e+02 -1.54619144e+03 -7.91920171e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill +7.87339511e+03 !particle radius in m +9.29964742e+06 2.61866241e+06 1.18151327e+04 ! x y z +-6.01432781e+02 2.01893065e+03 -9.18340859e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill +1.05061229e+04 !particle radius in m +5.46329309e+06 -8.17615351e+06 3.23278517e+03 ! x y z +1.73194521e+03 1.16682128e+03 -2.32849453e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill +4.20213010e+03 !particle radius in m +-9.38612532e+06 8.96174000e+06 1.24251608e+04 ! x y z +-1.26134064e+03 -1.32562137e+03 -9.16926524e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill +5.49869230e+03 !particle radius in m +1.34404207e+06 -1.34982267e+07 -9.98145158e+04 ! x y z +1.77251874e+03 1.58186229e+02 -1.18233653e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill +5.34935064e+03 !particle radius in m +1.59657590e+07 -1.84107184e+06 7.91634963e+04 ! x y z +1.77740752e+02 1.61004155e+03 -8.76452331e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill +3.81807480e+03 !particle radius in m +-1.95422324e+07 4.27225532e+06 -1.15437134e+04 ! x y z +-3.47390066e+02 -1.42742043e+03 -9.37392480e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill +7.27427657e+03 !particle radius in m +-8.32827018e+06 6.50246828e+06 1.07863935e+04 ! x y z +-1.19572995e+03 -1.60254308e+03 1.23423582e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill +8.73601721e+03 !particle radius in m +-1.07074688e+07 2.34621575e+06 5.93641138e+04 ! x y z +-4.22982902e+02 -1.94965020e+03 -1.96471998e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill +1.15512484e+04 !particle radius in m +4.51979494e+06 1.22520862e+07 -1.38847489e+04 ! x y z +-1.72593078e+03 6.48260700e+02 -7.40684356e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill +6.64309194e+03 !particle radius in m +2.92552013e+06 -1.35219163e+07 -7.24169872e+04 ! x y z +1.71212479e+03 3.82693746e+02 1.13508153e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill +1.01949726e+04 !particle radius in m +8.44057923e+05 -1.07213279e+07 5.42825433e+04 ! x y z +1.98524585e+03 1.59641509e+02 -2.17308444e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill +1.24273391e+04 !particle radius in m +-5.70564751e+06 -1.28061077e+07 7.89815585e+04 ! x y z +1.59615438e+03 -7.17950030e+02 -1.60355758e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill +9.91174230e+03 !particle radius in m +6.42542385e+06 -6.26831304e+06 -8.52096344e+03 ! x y z +1.51047048e+03 1.57585291e+03 1.26849618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill +7.61642321e+03 !particle radius in m +-1.26986567e+07 2.05439645e+06 4.23816010e+04 ! x y z +-3.17593598e+02 -1.80836332e+03 1.37317505e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill +5.85403069e+03 !particle radius in m +3.89723404e+06 -8.71939773e+06 -1.59555101e+04 ! x y z +1.92484978e+03 8.78585634e+02 3.76576757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill +9.68335876e+03 !particle radius in m +9.58403819e+06 -1.00242938e+06 4.12991678e+04 ! x y z +2.21630062e+02 2.09275016e+03 1.75085392e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill +1.02097944e+04 !particle radius in m +-2.44297176e+05 1.26729604e+07 2.03607439e+04 ! x y z +-1.84680295e+03 -1.82730822e+01 -2.91252739e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill +5.49842989e+03 !particle radius in m +-8.96004039e+06 4.09560494e+05 -3.60456167e+04 ! x y z +-1.02191608e+02 -2.20756190e+03 -2.24493109e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill +1.27138008e+04 !particle radius in m +-6.81541514e+06 -7.94063477e+06 -7.18748605e+04 ! x y z +1.54316120e+03 -1.31237150e+03 -1.15079245e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill +8.78402686e+03 !particle radius in m +-9.08822325e+06 1.13954530e+07 -2.08875223e+04 ! x y z +-1.34302030e+03 -1.07504367e+03 -1.24686872e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill +1.15175985e+04 !particle radius in m +-1.06157252e+07 1.57779393e+06 -6.65867787e+03 ! x y z +-2.87369206e+02 -1.99101003e+03 7.20690801e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill +9.04716508e+03 !particle radius in m +7.17906044e+06 8.87425909e+06 -3.25181785e+04 ! x y z +-1.49406264e+03 1.20724214e+03 6.21002078e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill +5.48112664e+03 !particle radius in m +-1.21003843e+06 -1.29422942e+07 -7.40239219e+04 ! x y z +1.81002624e+03 -1.79331834e+02 1.25932266e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill +8.48753771e+03 !particle radius in m +-6.99463389e+06 -6.47905900e+06 9.60433255e+04 ! x y z +1.43760545e+03 -1.52260892e+03 -8.56316812e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill +1.26571613e+04 !particle radius in m +6.31211278e+06 1.15740500e+07 2.93359231e+04 ! x y z +-1.56035950e+03 8.72608400e+02 2.02164700e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill +4.22293872e+03 !particle radius in m +-1.14209193e+07 -1.19005899e+07 4.72825184e+04 ! x y z +1.16096797e+03 -1.10215252e+03 -1.73463799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill +9.19239764e+03 !particle radius in m +-1.91436849e+06 -8.75500915e+06 -5.63789360e+04 ! x y z +2.13513923e+03 -5.15505302e+02 8.14672797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill +6.39431287e+03 !particle radius in m +-7.76033426e+06 5.83903373e+06 1.45914082e+04 ! x y z +-1.24659220e+03 -1.65602207e+03 2.58792993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill +7.06047440e+03 !particle radius in m +6.04175168e+06 -1.13300829e+07 -2.21833258e+04 ! x y z +1.60126812e+03 8.64183750e+02 2.07897641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill +5.98026121e+03 !particle radius in m +7.56777600e+06 -5.38164192e+06 4.82260182e+04 ! x y z +1.23384783e+03 1.75131178e+03 1.39050720e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill +5.89215810e+03 !particle radius in m +2.24109885e+06 -1.09795024e+07 -3.90720695e+03 ! x y z +1.91472479e+03 3.97948512e+02 1.96668988e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill +1.18470246e+04 !particle radius in m +-1.60346956e+06 8.94982575e+06 -4.55491048e+04 ! x y z +-2.13610180e+03 -3.93853083e+02 6.45999458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill +1.07963370e+04 !particle radius in m +1.33407792e+07 -9.60353157e+06 -4.36975900e+04 ! x y z +9.42437149e+02 1.32281900e+03 -2.80741977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill +9.49477387e+03 !particle radius in m +5.43228414e+06 -7.41736135e+06 -2.66812088e+04 ! x y z +1.72722717e+03 1.31007512e+03 -7.34912008e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill +3.79681841e+03 !particle radius in m +1.54005009e+06 1.28774959e+07 5.16246471e+04 ! x y z +-1.81371335e+03 2.12824688e+02 -9.20646953e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill +1.11863238e+04 !particle radius in m +1.67931493e+06 1.31306619e+07 -2.70431013e+03 ! x y z +-1.76941688e+03 1.91845464e+02 5.05532665e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill +1.05995433e+04 !particle radius in m +-1.32214307e+07 4.59727104e+06 -3.96485583e+04 ! x y z +-5.86090985e+02 -1.64093893e+03 -8.60481037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill +7.92726804e+03 !particle radius in m +-1.18927692e+07 -9.15865717e+05 -4.39369369e+04 ! x y z +1.82263225e+02 -1.88987287e+03 9.03561914e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill +1.02364827e+04 !particle radius in m +-9.62033211e+06 8.56620033e+06 -2.00428889e+04 ! x y z +-1.21101074e+03 -1.36584173e+03 3.97879960e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill +4.20273952e+03 !particle radius in m +9.89301751e+06 1.68175777e+07 -1.13308431e+05 ! x y z +-1.27501202e+03 7.61202373e+02 3.42051019e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill +5.97559270e+03 !particle radius in m +5.37606728e+06 1.01483084e+07 -2.42832542e+04 ! x y z +-1.69155568e+03 9.33567602e+02 8.03539638e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill +8.92979367e+03 !particle radius in m +1.14205826e+06 -8.87516936e+06 2.93174632e+04 ! x y z +2.16370189e+03 2.71790476e+02 -6.44072560e-04 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill +1.28055687e+04 !particle radius in m +1.43504952e+07 -1.05282252e+07 1.08842756e+04 ! x y z +8.96217918e+02 1.25350160e+03 -1.10361539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill +4.45062026e+03 !particle radius in m +-1.23862731e+07 -4.56645846e+06 6.19786286e+04 ! x y z +6.35830463e+02 -1.69613094e+03 6.10556298e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill +1.10810345e+04 !particle radius in m +-9.06340320e+06 2.47989940e+06 5.29566882e+03 ! x y z +-6.09939224e+02 -2.04449772e+03 -8.32106226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill +1.24194426e+04 !particle radius in m +4.49134220e+06 -8.88004412e+06 6.17280318e+04 ! x y z +1.84761935e+03 9.49659970e+02 -1.91054187e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill +7.49678363e+03 !particle radius in m +-8.88023220e+06 1.94417194e+06 -7.43854396e+03 ! x y z +-4.59587086e+02 -2.12797895e+03 1.62261707e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill +1.18105148e+04 !particle radius in m +-6.23830061e+06 1.01163011e+07 8.19444776e+04 ! x y z +-1.60793851e+03 -1.00726817e+03 7.79908055e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill +8.96106511e+03 !particle radius in m +1.33415164e+07 1.42367071e+07 9.29022826e+04 ! x y z +-1.09778034e+03 9.88101471e+02 9.22779390e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill +6.30269894e+03 !particle radius in m +6.77890172e+06 -6.80689243e+06 -5.36873514e+04 ! x y z +1.47893463e+03 1.49784044e+03 1.58118524e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill +1.02501735e+04 !particle radius in m +8.06725141e+06 -3.62262126e+06 -3.66507377e+04 ! x y z +8.67780530e+02 2.02709545e+03 1.28504792e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill +1.06080961e+04 !particle radius in m +-1.02130792e+07 -1.98178118e+06 -1.09127341e+03 ! x y z +3.87020460e+02 -1.99318523e+03 -1.70944891e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill +8.45856229e+03 !particle radius in m +-2.71890650e+06 -1.56230331e+07 9.11371828e+04 ! x y z +1.62029295e+03 -2.93846410e+02 -2.71565573e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill +7.70013366e+03 !particle radius in m +4.47583128e+06 -1.06559052e+07 4.54196507e+04 ! x y z +1.76732893e+03 7.56289214e+02 -9.51753793e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill +5.32063382e+03 !particle radius in m +-2.17375021e+06 -1.18877181e+07 -8.95951928e+04 ! x y z +1.85620755e+03 -3.25350325e+02 -7.40810642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill +7.86933046e+03 !particle radius in m +-1.01016093e+07 1.38884267e+06 9.80998719e+04 ! x y z +-2.82476358e+02 -2.04196683e+03 -1.00530560e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill +1.24937177e+04 !particle radius in m +1.39598489e+07 -8.85744354e+06 2.03839682e+05 ! x y z +8.43657382e+02 1.36375070e+03 -3.55497456e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill +5.56213757e+03 !particle radius in m +-1.43847009e+07 -4.33966476e+06 1.92096630e+04 ! x y z +4.81764822e+02 -1.62800637e+03 4.41101277e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill +6.85570252e+03 !particle radius in m +1.40885725e+06 -1.39890777e+07 -6.21160422e+04 ! x y z +1.73532137e+03 1.58882387e+02 -4.19228752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill +6.45517829e+03 !particle radius in m +-6.30237830e+06 -7.45548810e+06 1.19792411e+04 ! x y z +1.58465709e+03 -1.33550387e+03 2.64893502e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill +6.79823242e+03 !particle radius in m +1.78118521e+07 -1.09119093e+07 2.70244768e+04 ! x y z +7.41554271e+02 1.21779793e+03 9.15237602e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill +9.50257381e+03 !particle radius in m +-2.89743663e+06 8.86128251e+06 -6.58120111e+04 ! x y z +-2.02979747e+03 -6.82073189e+02 -2.28176534e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill +8.69947568e+03 !particle radius in m +8.83702217e+06 -2.90376077e+06 7.27788768e+04 ! x y z +6.85075467e+02 2.02703778e+03 7.97245500e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill +7.86151243e+03 !particle radius in m +-1.21931564e+07 4.86524046e+06 -2.08324531e+04 ! x y z +-6.82318390e+02 -1.65856508e+03 -6.74090912e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill +5.46688367e+03 !particle radius in m +-1.05680658e+07 -7.72400524e+05 -4.19566380e+03 ! x y z +1.61680595e+02 -2.00721546e+03 9.15915016e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill +8.97559000e+03 !particle radius in m +4.91698619e+06 9.43759555e+06 8.61311530e+04 ! x y z +-1.79363820e+03 8.94192612e+02 3.28487627e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill +9.89587154e+03 !particle radius in m +5.50899609e+06 1.48985993e+07 2.75915152e+04 ! x y z +-1.53604421e+03 5.70661142e+02 -8.63285634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill +1.29624899e+04 !particle radius in m +3.19801044e+06 -1.13772802e+07 7.80535196e+04 ! x y z +1.85228574e+03 4.55890151e+02 8.36932683e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill +1.07068623e+04 !particle radius in m +-2.15573271e+06 -1.00993578e+07 2.69595119e+04 ! x y z +1.97403251e+03 -4.33189618e+02 1.83241184e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill +6.01449701e+03 !particle radius in m +-9.90249159e+06 1.50849384e+06 7.56908853e+04 ! x y z +-3.34511747e+02 -2.03461346e+03 1.09006280e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill +8.41928754e+03 !particle radius in m +-8.12226421e+06 -4.86915559e+06 1.48785398e+04 ! x y z +1.08601808e+03 -1.81594814e+03 -1.05069846e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill +4.93662404e+03 !particle radius in m +1.04182881e+07 7.90957341e+06 -2.69933355e+04 ! x y z +-1.12996754e+03 1.41480511e+03 -6.50919824e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill +8.64688797e+03 !particle radius in m +-8.48425655e+06 7.30611767e+06 -2.97358583e+04 ! x y z +-1.27983291e+03 -1.45019242e+03 -1.41707765e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill +1.16198415e+04 !particle radius in m +-8.65184164e+06 6.24864145e+06 -3.92875079e+04 ! x y z +-1.16032314e+03 -1.63406999e+03 1.01313500e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill +9.93353704e+03 !particle radius in m +8.34883939e+06 5.63589901e+06 -3.07212153e+04 ! x y z +-1.13165810e+03 1.72056724e+03 2.87270046e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill +7.43690165e+03 !particle radius in m +9.21633433e+06 -1.93093666e+07 -2.54318164e+04 ! x y z +1.26419057e+03 6.27050448e+02 3.30035390e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill +7.68112210e+03 !particle radius in m +3.80685718e+06 -7.94695887e+06 -6.90041243e+04 ! x y z +2.01235665e+03 9.27723235e+02 1.23111874e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill +1.18083853e+04 !particle radius in m +-1.32805505e+07 -9.89987589e+06 1.89561964e+05 ! x y z +9.51950860e+02 -1.30762258e+03 -3.09155476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill +5.94515785e+03 !particle radius in m +7.49508147e+05 9.39060182e+06 -2.98793685e+03 ! x y z +-2.12842500e+03 1.60409656e+02 -2.35936034e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill +9.18211562e+03 !particle radius in m +1.66945874e+06 -9.11271704e+06 -1.05228493e+04 ! x y z +2.11017159e+03 4.07672310e+02 4.86502364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill +5.50583603e+03 !particle radius in m +-4.36738498e+06 -8.73103534e+06 3.44651531e+03 ! x y z +1.86828307e+03 -9.77585967e+02 3.81224965e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill +4.08758743e+03 !particle radius in m +-1.94040314e+07 1.29480928e+07 -6.30516410e+04 ! x y z +-7.60734575e+02 -1.12192654e+03 2.15504297e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill +1.25006754e+04 !particle radius in m +-2.30041587e+06 -9.09389672e+06 2.95714152e+04 ! x y z +2.09036388e+03 -5.21147635e+02 -8.12618749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill +6.56718935e+03 !particle radius in m +-8.45167174e+06 3.53866282e+06 8.15293748e+03 ! x y z +-8.17977533e+02 -1.97338441e+03 3.10707851e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill +1.08461254e+04 !particle radius in m +-1.10837839e+05 -1.22760495e+07 9.98243029e+04 ! x y z +1.86849744e+03 1.94461008e+01 1.19094336e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill +1.24276204e+04 !particle radius in m +-2.16572849e+06 -1.29271292e+07 8.07671116e+04 ! x y z +1.79349978e+03 -2.38674951e+02 -1.98965270e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill +1.29170951e+04 !particle radius in m +-2.12394299e+06 8.55999084e+06 1.53741130e+04 ! x y z +-2.16066071e+03 -5.04790442e+02 1.96131475e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill +8.85954838e+03 !particle radius in m +1.01810115e+07 -3.37487969e+05 -2.68884911e+04 ! x y z +8.19073631e+01 2.05446062e+03 -7.35333556e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill +9.25127176e+03 !particle radius in m +-4.23808016e+06 1.06041798e+07 1.34318994e+05 ! x y z +-1.79220969e+03 -7.00369186e+02 1.28815476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill +5.87236346e+03 !particle radius in m +-7.46862356e+06 5.99931350e+06 -2.30141523e+03 ! x y z +-1.36280521e+03 -1.60905358e+03 6.63931385e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill +5.05714772e+03 !particle radius in m +-1.11448733e+07 5.00947275e+06 -4.68801561e+04 ! x y z +-7.74415285e+02 -1.70766691e+03 -3.61919201e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill +6.10352459e+03 !particle radius in m +-3.19024158e+06 9.81483389e+06 5.84486975e+04 ! x y z +-1.93912156e+03 -6.23690422e+02 1.23117054e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill +1.16189063e+04 !particle radius in m +-2.24603747e+07 6.26030145e+06 -3.01506892e+04 ! x y z +-3.65393394e+02 -1.30811994e+03 1.11405519e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill +1.05019921e+04 !particle radius in m +-1.12701774e+07 -7.80948644e+06 -6.84666678e+04 ! x y z +9.99713905e+02 -1.47048211e+03 2.44750306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill +6.56830775e+03 !particle radius in m +-1.36712830e+06 9.67813820e+06 -6.74480903e+04 ! x y z +-2.06604712e+03 -2.98384524e+02 -5.50167062e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill +1.19207925e+04 !particle radius in m +7.73867408e+06 1.33759604e+07 3.56063208e+04 ! x y z +-1.44506269e+03 8.28074701e+02 1.84054191e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill +8.49992876e+03 !particle radius in m +-7.77453358e+06 -5.02677399e+06 3.78389790e+04 ! x y z +1.16536090e+03 -1.82463232e+03 -7.04505898e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill +7.38049260e+03 !particle radius in m +7.38262528e+06 7.34984552e+06 -2.24885801e+04 ! x y z +-1.42099662e+03 1.43499436e+03 1.07378124e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill +1.08707623e+04 !particle radius in m +-1.19920742e+07 -2.80217215e+06 -5.59313271e+04 ! x y z +4.17941960e+02 -1.81181182e+03 1.45497492e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill +6.01682391e+03 !particle radius in m +-9.55988426e+06 -7.31862699e+06 -2.64957060e+04 ! x y z +1.16610080e+03 -1.48362062e+03 -6.94255903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill +5.36421948e+03 !particle radius in m +1.02276231e+07 -1.62862349e+07 -9.70147988e+04 ! x y z +1.26937242e+03 7.76347306e+02 4.03225256e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill +5.71926483e+03 !particle radius in m +-5.16420660e+06 -7.78596130e+06 4.36962776e+04 ! x y z +1.78489031e+03 -1.16625555e+03 -2.90708635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill +8.90706847e+03 !particle radius in m +-7.45989489e+06 7.86823113e+06 2.30718801e+04 ! x y z +-1.45305114e+03 -1.35662728e+03 1.14450554e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill +1.14097740e+04 !particle radius in m +-7.21533013e+06 1.04550999e+07 5.75058243e+04 ! x y z +-1.49719620e+03 -1.06522065e+03 9.45819576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill +6.87676601e+03 !particle radius in m +6.25358173e+06 -8.48267668e+06 1.86642486e+04 ! x y z +1.59879201e+03 1.18862345e+03 -8.19507037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill +5.09063352e+03 !particle radius in m +-7.19321718e+06 -9.25718484e+06 1.26289010e+05 ! x y z +1.51012765e+03 -1.19137905e+03 -2.08075301e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill +1.15343262e+04 !particle radius in m +9.77355514e+06 -3.06014377e+06 -1.91679922e+04 ! x y z +6.16624498e+02 1.95214553e+03 8.76866120e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill +1.23165581e+04 !particle radius in m +9.85520768e+06 5.11039151e+06 2.67592384e+04 ! x y z +-9.36821649e+02 1.72971850e+03 9.58489099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill +1.01978639e+04 !particle radius in m +2.25000304e+07 2.97587658e+06 1.11207983e+05 ! x y z +-2.07470373e+02 1.34869606e+03 9.35124053e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill +3.82259987e+03 !particle radius in m +9.72912370e+06 4.89272799e+06 4.72049901e+04 ! x y z +-8.59138858e+02 1.80693327e+03 1.59854908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill +1.29945434e+04 !particle radius in m +8.58212362e+06 2.09155798e+07 -8.24274997e+04 ! x y z +-1.27328941e+03 5.22122914e+02 2.97251817e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill +5.07359536e+03 !particle radius in m +1.25914809e+07 -1.54064226e+06 -2.42309046e+04 ! x y z +2.41941616e+02 1.80407714e+03 -4.95095821e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill +9.63008210e+03 !particle radius in m +-9.08598960e+06 5.01876430e+05 -5.56896042e+04 ! x y z +-1.04300102e+02 -2.16453693e+03 -3.87670808e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill +4.74458362e+03 !particle radius in m +8.60778725e+06 4.52935761e+06 2.36936302e+04 ! x y z +-9.88264993e+02 1.85248346e+03 -3.75174148e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill +4.82484424e+03 !particle radius in m +-8.51705861e+06 -3.00987013e+06 -6.10335808e+04 ! x y z +7.24297619e+02 -2.04790563e+03 -9.17975560e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill +1.18981571e+04 !particle radius in m +-2.02348638e+07 -1.68672863e+06 -1.06729108e+05 ! x y z +1.27546784e+02 -1.44981480e+03 -2.13046543e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill +4.79608176e+03 !particle radius in m +9.64800303e+06 8.51584872e+06 1.81571159e+04 ! x y z +-1.21061246e+03 1.38578498e+03 -1.32836513e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill +4.90789744e+03 !particle radius in m +9.13818695e+06 -7.70452976e+06 2.69452399e+04 ! x y z +1.22812984e+03 1.45658692e+03 -6.73843496e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill +9.14114041e+03 !particle radius in m +-1.09145671e+06 9.34973420e+06 5.18642883e+03 ! x y z +-2.11998407e+03 -2.42766889e+02 -9.89092405e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill +8.28071491e+03 !particle radius in m +1.92010196e+07 1.03149047e+07 5.09869779e+04 ! x y z +-6.74338417e+02 1.23568504e+03 -2.88434162e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill +8.15446281e+03 !particle radius in m +9.58051429e+06 -4.62318632e+05 6.35849025e+04 ! x y z +9.06335255e+01 2.09825906e+03 -7.35742647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill +1.09232871e+04 !particle radius in m +-1.30847754e+07 -1.20838009e+05 2.79768532e+04 ! x y z +3.82034000e+01 -1.80937386e+03 2.83422576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill +9.45383905e+03 !particle radius in m +-5.32926260e+06 1.08809045e+07 2.85451712e+04 ! x y z +-1.71920333e+03 -8.10618635e+02 -1.48118539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill +8.18339867e+03 !particle radius in m +1.07932378e+07 -2.40071483e+06 1.38428017e+04 ! x y z +4.19588126e+02 1.91854962e+03 1.35266288e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill +9.16228488e+03 !particle radius in m +-6.86193518e+06 -9.36770363e+06 8.70674895e+04 ! x y z +1.55612467e+03 -1.13081122e+03 -1.76373653e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill +7.36353909e+03 !particle radius in m +5.38169569e+06 -8.48107525e+06 -8.38982677e+03 ! x y z +1.73578647e+03 1.09143169e+03 9.09587252e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill +8.14917269e+03 !particle radius in m +7.81574277e+06 4.66176951e+06 -2.35259182e+04 ! x y z +-1.08169242e+03 1.85148012e+03 8.40529015e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill +1.22698790e+04 !particle radius in m +6.77476212e+06 6.99394577e+06 -8.71906448e+03 ! x y z +-1.48799386e+03 1.46547457e+03 -6.43335853e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill +4.72508108e+03 !particle radius in m +-2.14192792e+06 -8.68107380e+06 -3.97684760e+04 ! x y z +2.13766548e+03 -4.81639501e+02 9.54765001e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill +5.71050016e+03 !particle radius in m +9.36808365e+06 1.90217107e+06 2.99198598e+04 ! x y z +-4.46020774e+02 2.07539296e+03 -7.66300380e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill +7.33684298e+03 !particle radius in m +7.27614119e+06 5.72024594e+06 2.49831464e+04 ! x y z +-1.34304944e+03 1.66116310e+03 2.15485187e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill +4.75982712e+03 !particle radius in m +9.58921336e+06 -1.24222677e+07 -1.97472656e+05 ! x y z +1.32022081e+03 9.87424842e+02 4.32249357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill +1.08873520e+04 !particle radius in m +-7.88989019e+06 -1.13885470e+07 -2.56937402e+04 ! x y z +1.46586529e+03 -9.71985942e+02 -3.51396551e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill +3.99854533e+03 !particle radius in m +3.87292376e+06 9.21006941e+06 -6.39624708e+04 ! x y z +-1.89793804e+03 8.09142969e+02 -6.59781953e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill +5.83040726e+03 !particle radius in m +7.50695786e+06 -4.65362052e+06 -7.10126403e+03 ! x y z +1.18139098e+03 1.86471888e+03 -3.95167658e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill +4.48202152e+03 !particle radius in m +-1.39144844e+07 5.81363011e+06 3.85998049e+04 ! x y z +-6.70071502e+02 -1.54974548e+03 4.74922131e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill +1.21311502e+04 !particle radius in m +9.87837438e+06 2.55551323e+06 -1.36596041e+03 ! x y z +-4.90308025e+02 1.98176510e+03 -1.01037674e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill +9.09180370e+03 !particle radius in m +1.45341700e+07 -4.27619608e+06 5.93941868e+04 ! x y z +4.77328962e+02 1.60335894e+03 -4.97370028e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill +1.16574183e+04 !particle radius in m +2.05268573e+06 -1.13741606e+07 4.03903250e+04 ! x y z +1.88573928e+03 3.30474062e+02 -1.50298053e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill +7.34881070e+03 !particle radius in m +-1.02805752e+07 -3.59154998e+06 7.79568952e+04 ! x y z +6.27919253e+02 -1.86780226e+03 9.15877947e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill +9.64045416e+03 !particle radius in m +1.00209373e+07 1.06957570e+06 -9.24601092e+04 ! x y z +-1.95870916e+02 2.03366838e+03 -1.10087708e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill +3.97219150e+03 !particle radius in m +-1.39517485e+07 8.21883388e+06 7.67623281e+03 ! x y z +-8.12327248e+02 -1.40338294e+03 4.18222867e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill +6.71584845e+03 !particle radius in m +1.02605370e+07 -6.40538450e+06 2.46021664e+04 ! x y z +9.77968382e+02 1.60990669e+03 -4.31601474e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill +8.75727541e+03 !particle radius in m +1.06053206e+07 3.44385915e+06 5.77152912e+04 ! x y z +-5.52774107e+02 1.87621696e+03 -1.29609706e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill +5.98053661e+03 !particle radius in m +-9.64301945e+06 6.86746863e+06 -1.42533659e+05 ! x y z +-1.09942559e+03 -1.55528445e+03 -9.72595405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill +1.29126696e+04 !particle radius in m +1.05754125e+06 -1.47420174e+07 -1.54880877e+04 ! x y z +1.69143054e+03 1.16386287e+02 -1.26829716e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill +5.04640834e+03 !particle radius in m +-3.03537890e+06 9.53552265e+06 9.73685659e+03 ! x y z +-1.96823062e+03 -6.23463481e+02 -1.63952204e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill +4.60035801e+03 !particle radius in m +-9.98694456e+06 -1.23492362e+06 -1.80480653e+04 ! x y z +2.38207036e+02 -2.05532674e+03 1.79734911e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill +1.19900755e+04 !particle radius in m +-3.74835489e+06 9.22336598e+06 -1.11560816e+05 ! x y z +-1.91843216e+03 -7.98271594e+02 2.02049490e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill +1.24780025e+04 !particle radius in m +-6.68794780e+06 -7.54430362e+06 8.73782978e+03 ! x y z +1.55324620e+03 -1.34364314e+03 -6.31744671e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill +1.25403278e+04 !particle radius in m +-1.03958383e+07 8.06724680e+05 2.41594570e+04 ! x y z +-1.55899964e+02 -2.01914147e+03 9.33842265e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill +4.12066331e+03 !particle radius in m +9.33960040e+06 5.20047646e+06 3.07184995e+03 ! x y z +-9.59952400e+02 1.75350496e+03 -9.51510094e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill +1.14051155e+04 !particle radius in m +-4.55852771e+05 1.12982302e+07 1.97139798e+04 ! x y z +-1.93821973e+03 -6.36299001e+01 1.52707202e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill +9.00330067e+03 !particle radius in m +-9.39243710e+06 -4.13852649e+05 -1.20016794e+05 ! x y z +7.29189904e+01 -2.15146169e+03 7.46416116e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill +6.75031451e+03 !particle radius in m +1.55420118e+07 -1.56324574e+07 1.17450688e+05 ! x y z +9.80482478e+02 9.89380982e+02 -2.43164132e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill +1.14409114e+04 !particle radius in m +1.02533186e+07 8.01360601e+05 -1.49055635e+04 ! x y z +-1.71963144e+02 2.04211236e+03 -5.41798226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill +7.63377033e+03 !particle radius in m +1.42914142e+06 9.84981684e+06 2.93564167e+04 ! x y z +-2.05268655e+03 3.05405042e+02 3.66863343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill +7.37523479e+03 !particle radius in m +8.46677243e+06 -3.56936745e+06 -1.01092855e+05 ! x y z +8.46329328e+02 1.98233396e+03 -1.20626919e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill +8.75022177e+03 !particle radius in m +-5.51541812e+06 -9.33328186e+06 -7.53076104e+04 ! x y z +1.69850130e+03 -1.02466912e+03 -1.16108091e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill +9.93898678e+03 !particle radius in m +7.91261034e+06 6.82977302e+06 4.78744592e+04 ! x y z +-1.31937664e+03 1.53446068e+03 9.71586209e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill +1.06583427e+04 !particle radius in m +9.51054870e+06 7.22147752e+06 -1.16155344e+05 ! x y z +-1.13247642e+03 1.51634128e+03 7.95619932e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill +7.85060242e+03 !particle radius in m +7.56958002e+06 8.18907830e+06 2.90934189e+04 ! x y z +-1.41713137e+03 1.33985142e+03 -1.12168107e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill +6.15974600e+03 !particle radius in m +-6.13341164e+06 7.98589804e+06 -2.27618169e+04 ! x y z +-1.62649363e+03 -1.24985675e+03 2.06508812e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill +5.24703584e+03 !particle radius in m +6.47073981e+06 -9.41271204e+06 -2.22310124e+04 ! x y z +1.59958848e+03 1.08093374e+03 -3.51035905e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill +5.28953293e+03 !particle radius in m +7.87952728e+06 -7.74021482e+06 2.62244560e+04 ! x y z +1.39190993e+03 1.39669667e+03 7.19439783e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill +8.72569980e+03 !particle radius in m +-7.78608816e+06 6.02791398e+06 3.71436614e+04 ! x y z +-1.25856718e+03 -1.69668386e+03 -1.29605210e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill +5.53985567e+03 !particle radius in m +-6.32210122e+06 -1.01415155e+07 4.88655736e+04 ! x y z +1.63018229e+03 -9.50923090e+02 9.77870783e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill +4.55779408e+03 !particle radius in m +-6.23576444e+06 6.51367852e+06 -3.41989237e+04 ! x y z +-1.58628947e+03 -1.49318367e+03 1.23405417e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill +1.10244216e+04 !particle radius in m +-1.35500086e+07 -2.26040006e+06 1.32350391e+05 ! x y z +2.64719358e+02 -1.74789986e+03 -5.31947479e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill +1.22251778e+04 !particle radius in m +5.77929553e+06 -1.19535178e+07 -7.82666736e+04 ! x y z +1.59619208e+03 7.97360418e+02 -1.29583152e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill +4.89435521e+03 !particle radius in m +-8.33458476e+06 1.42735479e+07 -3.35627654e+04 ! x y z +-1.40045628e+03 -8.13740040e+02 1.03574303e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill +1.12836524e+04 !particle radius in m +-1.47864055e+06 -9.12632464e+06 1.03294618e+05 ! x y z +2.12785802e+03 -3.89541043e+02 1.51865579e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill +1.14482340e+04 !particle radius in m +5.45407329e+06 9.28416293e+06 -1.51509372e+04 ! x y z +-1.71334604e+03 1.02205340e+03 -7.65932607e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill +1.15163962e+04 !particle radius in m +-1.39013045e+07 6.50213463e+06 -1.39734670e+05 ! x y z +-7.22290359e+02 -1.50945570e+03 -8.90498950e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill +1.27900613e+04 !particle radius in m +-9.89641528e+06 -1.11416999e+07 3.81985165e+04 ! x y z +1.26154170e+03 -1.13757778e+03 1.92574173e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill +3.74540728e+03 !particle radius in m +-3.16815028e+06 1.11329600e+07 6.51690516e+03 ! x y z +-1.85087911e+03 -4.88202334e+02 -1.01794725e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill +3.72235677e+03 !particle radius in m +1.00049376e+07 4.66630545e+06 -9.44413909e+04 ! x y z +-7.94024833e+02 1.77983677e+03 -9.21818189e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill +3.81573804e+03 !particle radius in m +-1.63493537e+07 6.57692006e+06 6.46813001e+04 ! x y z +-5.79515939e+02 -1.44477767e+03 3.27352582e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill +7.37167696e+03 !particle radius in m +1.18807783e+07 1.34251951e+07 1.86898768e+05 ! x y z +-1.17463975e+03 1.00294171e+03 -4.22564791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill +9.01289765e+03 !particle radius in m +1.11171931e+07 2.90403753e+06 -9.01017188e+04 ! x y z +-4.88090453e+02 1.87530119e+03 -9.57682232e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill +4.52652522e+03 !particle radius in m +9.73106602e+06 3.61005057e+04 5.94605185e+04 ! x y z +-7.45471281e+01 2.10678631e+03 -2.14191842e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill +1.16673660e+04 !particle radius in m +-2.74202504e+06 -1.01140650e+07 -7.39918641e+04 ! x y z +1.96547738e+03 -5.21963358e+02 1.77687487e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill +1.20422311e+04 !particle radius in m +8.00394990e+06 5.03858815e+06 -4.02327990e+04 ! x y z +-1.10710067e+03 1.81715883e+03 -6.62734475e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill +4.82177442e+03 !particle radius in m +5.34986811e+06 9.22950468e+06 4.90186732e+04 ! x y z +-1.74088881e+03 9.82932786e+02 -1.91216218e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill +1.08639605e+04 !particle radius in m +-8.64795237e+06 5.41831010e+06 1.55017414e+04 ! x y z +-1.07745389e+03 -1.74276883e+03 -5.97570489e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill +1.14293347e+04 !particle radius in m +-1.11663224e+07 -4.36971602e+05 9.93397534e+04 ! x y z +6.60642469e+01 -1.97245979e+03 1.63719711e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill +1.23198504e+04 !particle radius in m +-8.94315217e+06 -6.59985744e+06 1.41574538e+04 ! x y z +1.12488382e+03 -1.60471763e+03 9.42200485e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill +1.01033638e+04 !particle radius in m +1.92430034e+07 -3.89888242e+06 -5.57809830e+04 ! x y z +2.98708757e+02 1.44758503e+03 -4.72165311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill +1.27245467e+04 !particle radius in m +8.73120403e+06 5.22305398e+06 7.59670115e+04 ! x y z +-1.07719201e+03 1.76393373e+03 -6.61792923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill +1.26946618e+04 !particle radius in m +1.09108942e+07 -4.65832942e+06 -4.02366251e+03 ! x y z +7.47562985e+02 1.75464824e+03 8.16488922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill +8.38895796e+03 !particle radius in m +5.82034293e+06 1.07112512e+07 7.55785697e+03 ! x y z +-1.63892001e+03 9.00112405e+02 -1.94858021e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill +9.71711751e+03 !particle radius in m +6.68559809e+06 9.37557356e+06 -1.92332279e+03 ! x y z +-1.58295492e+03 1.11037420e+03 1.83307218e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill +1.06624826e+04 !particle radius in m +-3.28943607e+06 9.87837716e+06 6.05814516e+04 ! x y z +-1.92629942e+03 -6.22180329e+02 4.50728559e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill +9.27733226e+03 !particle radius in m +-6.01449513e+06 1.14226051e+07 3.09092202e+04 ! x y z +-1.62789379e+03 -8.28450934e+02 6.54251208e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill +1.13339954e+04 !particle radius in m +1.46501935e+07 3.52597046e+06 -1.53479325e+05 ! x y z +-3.94464542e+02 1.63555361e+03 -6.95224479e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill +1.29748793e+04 !particle radius in m +7.30587232e+06 5.82342150e+06 -1.66262680e+04 ! x y z +-1.33758368e+03 1.67374780e+03 1.03808342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill +5.72852320e+03 !particle radius in m +-8.28665070e+06 -1.08630233e+07 1.59771667e+04 ! x y z +1.42279548e+03 -1.06221837e+03 -1.00287654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill +1.20552459e+04 !particle radius in m +-8.85367709e+06 1.92824073e+06 -5.71899980e+04 ! x y z +-4.56904898e+02 -2.11490226e+03 1.50573635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill +1.23258503e+04 !particle radius in m +-6.98192323e+06 -1.72685946e+07 7.38110386e+04 ! x y z +1.40350544e+03 -5.84590529e+02 -9.01131651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill +6.14344779e+03 !particle radius in m +1.43686835e+07 2.23609646e+06 2.55670087e+04 ! x y z +-2.46269150e+02 1.69322706e+03 -3.07491540e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill +7.50131728e+03 !particle radius in m +7.08335501e+06 1.12432588e+07 -7.04507229e+04 ! x y z +-1.52929946e+03 9.66536263e+02 -2.79918979e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill +8.70300381e+03 !particle radius in m +-4.60069395e+06 1.05653500e+07 1.04296802e+05 ! x y z +-1.76684768e+03 -7.81938520e+02 -2.29915803e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill +8.40614880e+03 !particle radius in m +8.19262513e+06 -3.58191579e+06 -3.30652024e+04 ! x y z +8.70670545e+02 2.01088754e+03 -5.27792880e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill +1.23024549e+04 !particle radius in m +3.89494213e+06 9.08725205e+06 -2.39743102e+04 ! x y z +-1.90805368e+03 7.88330663e+02 -9.72060594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill +6.75337616e+03 !particle radius in m +2.21339346e+06 9.86538825e+06 -8.87149741e+04 ! x y z +-2.00534067e+03 4.38594263e+02 1.01837964e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill +1.20886232e+04 !particle radius in m +4.10968486e+06 1.23907663e+07 5.33325146e+04 ! x y z +-1.71807002e+03 5.39202987e+02 -6.19076268e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill +1.09493990e+04 !particle radius in m +1.04073429e+07 2.67129136e+06 9.54333931e+04 ! x y z +-5.09495924e+02 1.93427487e+03 8.54877840e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill +3.97566200e+03 !particle radius in m +-4.09255175e+06 -9.53753075e+06 -7.50959611e+04 ! x y z +1.86269642e+03 -8.02231358e+02 -1.43161769e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill +4.59855003e+03 !particle radius in m +4.36723976e+06 -9.66553779e+06 -1.64558916e+04 ! x y z +1.84776304e+03 7.98021641e+02 5.78355557e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill +9.21904680e+03 !particle radius in m +8.53951718e+06 -2.54525107e+06 -7.04047773e+04 ! x y z +6.28921216e+02 2.09901050e+03 1.15726955e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill +8.71525146e+03 !particle radius in m +7.32788955e+06 -5.94137181e+06 -9.04304047e+04 ! x y z +1.34115379e+03 1.65561581e+03 7.08036612e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill +1.22524569e+04 !particle radius in m +6.71737923e+06 9.71600170e+06 5.06660922e+04 ! x y z +-1.56559808e+03 1.08107605e+03 -6.49532539e-03 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill +5.41816288e+03 !particle radius in m +-7.03605741e+06 6.85389332e+06 -2.57563829e+04 ! x y z +-1.44734013e+03 -1.50933987e+03 1.28526631e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill +6.43059110e+03 !particle radius in m +1.83405474e+07 1.00792626e+07 -9.20229382e+04 ! x y z +-7.18799940e+02 1.23921438e+03 2.48945179e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill +7.67198789e+03 !particle radius in m +5.23940562e+06 1.75022888e+07 -5.98430417e+04 ! x y z +-1.46565915e+03 4.46482377e+02 2.11785409e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill +9.33516932e+03 !particle radius in m +1.19175118e+07 -1.16543017e+07 5.30530426e+04 ! x y z +1.10958275e+03 1.15270442e+03 5.72450113e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill +7.83793078e+03 !particle radius in m +-8.96838687e+06 2.63897043e+06 -2.17897557e+04 ! x y z +-6.07622874e+02 -2.06310065e+03 -4.59651947e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill +6.66863210e+03 !particle radius in m +-6.04898231e+06 -6.86358884e+06 5.57406610e+04 ! x y z +1.61956515e+03 -1.43598669e+03 -4.59300568e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill +1.20949508e+04 !particle radius in m +7.90216623e+06 -1.09814809e+07 5.19189450e+04 ! x y z +1.45343692e+03 1.03872925e+03 -2.28298311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill +1.26037782e+04 !particle radius in m +9.57669296e+05 -1.30387879e+07 7.61951879e+04 ! x y z +1.80738232e+03 1.29379874e+02 -1.14266147e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill +9.39937703e+03 !particle radius in m +-2.70230310e+06 8.62076168e+06 -2.22406079e+04 ! x y z +-2.07446913e+03 -6.54424485e+02 -1.11116533e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill +9.83695076e+03 !particle radius in m +-3.80463073e+06 -1.65753622e+07 1.47762416e+04 ! x y z +1.54780534e+03 -3.56129540e+02 4.67798248e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill +1.25677546e+04 !particle radius in m +1.97818140e+07 7.24503831e+06 4.34973562e+04 ! x y z +-5.06413028e+02 1.32512350e+03 5.73956860e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill +4.63734443e+03 !particle radius in m +-2.79050068e+06 -1.34910639e+07 4.33089266e+04 ! x y z +1.72889764e+03 -3.49089932e+02 -1.94775120e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill +1.05934634e+04 !particle radius in m +1.07844804e+07 1.29386712e+07 2.64893081e+04 ! x y z +-1.21296556e+03 1.03104861e+03 -8.93637679e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill +7.74266422e+03 !particle radius in m +-1.47784670e+07 -2.60738447e+06 1.11630430e+05 ! x y z +3.23911460e+02 -1.65880207e+03 4.54571842e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill +3.95912515e+03 !particle radius in m +5.07682372e+05 -1.30372405e+07 -1.85229557e+04 ! x y z +1.82615720e+03 7.82099311e+01 -4.18927265e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill +7.09905909e+03 !particle radius in m +-1.18244362e+07 -4.31687046e+06 -7.18542331e+04 ! x y z +6.12658121e+02 -1.74672302e+03 1.21397025e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill +4.26156427e+03 !particle radius in m +-3.54824820e+06 -8.30536307e+06 -8.90981624e+03 ! x y z +1.97998336e+03 -8.85057403e+02 -2.11344381e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill +1.08792174e+04 !particle radius in m +1.62346436e+06 -8.92811589e+06 -3.60195557e+03 ! x y z +2.15086991e+03 3.98636159e+02 2.48432648e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill +5.87800644e+03 !particle radius in m +-1.15733556e+07 -1.25115260e+07 1.46624511e+04 ! x y z +1.15579598e+03 -1.08828537e+03 -2.12261933e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill +4.14296182e+03 !particle radius in m +-1.08417724e+07 1.69081263e+06 7.24119490e+04 ! x y z +-3.09034576e+02 -1.94519167e+03 -3.85658993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill +4.79422292e+03 !particle radius in m +3.49544878e+05 1.19517692e+07 2.11344945e+04 ! x y z +-1.87363529e+03 3.53402969e+01 5.71853498e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill +9.96836855e+03 !particle radius in m +-6.32504194e+06 7.74988563e+06 -3.04663654e+04 ! x y z +-1.60640404e+03 -1.28494821e+03 3.03961828e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill +8.46501102e+03 !particle radius in m +-1.24177769e+07 -1.38486640e+07 -1.01520582e+04 ! x y z +1.15690921e+03 -9.88251041e+02 4.69156127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill +1.21273232e+04 !particle radius in m +1.03771542e+07 -3.70291911e+06 1.08877147e+04 ! x y z +6.25781397e+02 1.86199758e+03 -8.89718339e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill +5.14868362e+03 !particle radius in m +-4.66823976e+06 -8.26435407e+06 2.26583539e+04 ! x y z +1.84983887e+03 -1.05552707e+03 1.56706480e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill +4.55784078e+03 !particle radius in m +4.62468583e+06 7.54223542e+06 -1.61944374e+04 ! x y z +-1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill +9.45460600e+03 !particle radius in m +-2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z +-1.35813181e+03 9.03958337e+00 -3.15567273e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill +9.76786728e+03 !particle radius in m +-6.52967648e+06 8.82305239e+06 -1.26732573e+04 ! x y z +-1.57282686e+03 -1.17622288e+03 1.39580799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill +1.06030438e+04 !particle radius in m +1.77913234e+06 9.53045041e+06 3.10075017e+04 ! x y z +-2.05302630e+03 3.75004563e+02 1.58931971e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill +1.25260587e+04 !particle radius in m +3.58717818e+06 9.36647195e+06 -1.97615013e+04 ! x y z +-1.96178925e+03 7.11373199e+02 -1.26706515e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill +7.95288174e+03 !particle radius in m +-2.59234296e+06 -1.50157233e+07 4.00646737e+04 ! x y z +1.65438833e+03 -2.60173941e+02 1.23164306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill +7.17351953e+03 !particle radius in m +9.06239327e+06 9.91334627e+05 -4.75445475e+03 ! x y z +-2.74588769e+02 2.14560267e+03 -4.58665348e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill +1.29999162e+04 !particle radius in m +-1.32275910e+06 1.11815578e+07 -3.52932928e+04 ! x y z +-1.92926562e+03 -2.26736828e+02 1.12692641e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill +1.02371836e+04 !particle radius in m +-1.18507495e+07 5.08791326e+05 -4.16400253e+03 ! x y z +-1.21704217e+02 -1.88175671e+03 1.06233149e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill +1.14563699e+04 !particle radius in m +9.66851157e+06 -1.73226908e+06 -1.69082214e+04 ! x y z +3.88627413e+02 2.04608590e+03 -8.98008156e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill +8.65882148e+03 !particle radius in m +-2.00783480e+06 -9.30718645e+06 -7.65374580e+04 ! x y z +2.06366212e+03 -4.61769702e+02 1.50556810e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill +1.29137852e+04 !particle radius in m +5.63016627e+05 1.37971202e+07 -5.96323274e+04 ! x y z +-1.75809500e+03 5.38503245e+01 5.31257797e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill +1.24695778e+04 !particle radius in m +9.16922325e+06 -9.63000174e+05 -3.41255650e+02 ! x y z +2.26283177e+02 2.14046849e+03 -4.83048073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill +4.63464147e+03 !particle radius in m +-8.86805151e+06 1.17556708e+06 5.29953219e+04 ! x y z +-2.96347767e+02 -2.18707052e+03 -3.03941376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill +9.03459031e+03 !particle radius in m +9.02199722e+06 -3.39632005e+06 -7.08544393e+04 ! x y z +7.55874214e+02 1.97860482e+03 5.10133054e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill +6.79554835e+03 !particle radius in m +-3.33406678e+06 -1.03746123e+07 -4.13492713e+04 ! x y z +1.88884845e+03 -5.81374899e+02 2.44002419e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill +4.33964341e+03 !particle radius in m +8.47272017e+06 -3.29574857e+06 4.59089313e+04 ! x y z +8.07908043e+02 2.00285924e+03 2.30278431e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill +6.96963100e+03 !particle radius in m +-1.10174017e+07 -1.65843431e+07 -7.81778692e+04 ! x y z +1.22711770e+03 -7.92668746e+02 1.28964786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill +4.87663009e+03 !particle radius in m +-6.99704994e+06 -1.88546711e+07 -8.81519961e+04 ! x y z +1.37622550e+03 -5.05609550e+02 1.32065962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill +8.85565460e+03 !particle radius in m +3.37171440e+06 -1.03724491e+07 -2.05908462e+04 ! x y z +1.89249257e+03 5.96290076e+02 -1.16901986e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill +9.70303009e+03 !particle radius in m +8.68817648e+05 -9.37137391e+06 -9.78603362e+04 ! x y z +2.13443213e+03 1.77136355e+02 -1.05898656e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill +1.02227553e+04 !particle radius in m +-8.20639456e+06 4.88393438e+06 3.93769452e+04 ! x y z +-1.09602043e+03 -1.80139112e+03 -5.09189684e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill +1.19572346e+04 !particle radius in m +-2.98729202e+06 -1.69982812e+07 -1.00361471e+02 ! x y z +1.54074333e+03 -2.84642833e+02 -7.12483576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill +1.10694715e+04 !particle radius in m +-1.87997669e+07 -2.87235850e+06 6.06981762e+04 ! x y z +2.30253048e+02 -1.48355775e+03 -3.20628055e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill +1.17140974e+04 !particle radius in m +-1.67195966e+06 1.53840879e+07 1.17823799e+05 ! x y z +-1.66924292e+03 -1.76106009e+02 2.19585908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill +1.26586599e+04 !particle radius in m +7.45254418e+06 4.82823148e+06 -5.06675552e+03 ! x y z +-1.22839592e+03 1.82946634e+03 -1.27029622e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill +6.99494374e+03 !particle radius in m +5.13959627e+06 7.44700588e+06 5.03758086e+04 ! x y z +-1.79330931e+03 1.22535892e+03 -1.02427731e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill +7.21229000e+03 !particle radius in m +9.58649389e+06 5.81253530e+06 -4.39352546e+04 ! x y z +-9.88086375e+02 1.68843459e+03 -9.34405959e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill +1.06209501e+04 !particle radius in m +5.07070035e+06 7.32312120e+06 7.18562589e+04 ! x y z +-1.79677644e+03 1.25238618e+03 1.64235819e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill +7.60936749e+03 !particle radius in m +1.19404056e+06 1.08877947e+07 5.88658821e+03 ! x y z +-1.96662575e+03 2.29281553e+02 -1.48568063e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill +1.21305775e+04 !particle radius in m +-9.84021278e+06 -3.40002026e+06 -6.17065432e+04 ! x y z +7.02356760e+02 -1.91960378e+03 8.28806476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill +5.64173558e+03 !particle radius in m +8.38364229e+06 -1.08052974e+07 -1.14971163e+05 ! x y z +1.41362762e+03 1.05030477e+03 1.33062848e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill +4.21249068e+03 !particle radius in m +4.30913199e+06 8.44003978e+06 1.98375727e+04 ! x y z +-1.87920775e+03 9.70144357e+02 7.68922870e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill +8.36735565e+03 !particle radius in m +9.34254133e+06 -6.72471094e+06 3.04479801e+03 ! x y z +1.13048626e+03 1.56587434e+03 1.26328276e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill +6.82609072e+03 !particle radius in m +-3.94216440e+06 -8.13811187e+06 -2.32415480e+03 ! x y z +1.94483188e+03 -9.74054123e+02 6.56681455e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill +9.70708677e+03 !particle radius in m +5.41429391e+06 -7.20522578e+06 5.41382285e+04 ! x y z +1.73021941e+03 1.33390146e+03 1.43673569e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill +1.08215064e+04 !particle radius in m +-3.58069142e+06 -1.18639900e+07 -2.98112201e+04 ! x y z +1.80063833e+03 -4.84660340e+02 -1.10025267e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill +7.07029058e+03 !particle radius in m +5.06214806e+06 -8.79684921e+06 -6.69408163e+03 ! x y z +1.77899792e+03 1.03185242e+03 -6.99222338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill +6.25131279e+03 !particle radius in m +2.20528884e+06 -1.13497157e+07 1.23709451e+05 ! x y z +1.88518956e+03 4.07847130e+02 -1.21144069e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill +7.02206200e+03 !particle radius in m +5.73341973e+06 -8.10327163e+06 -2.40301967e+04 ! x y z +1.67706223e+03 1.24499901e+03 -1.26631178e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill +9.46615418e+03 !particle radius in m +-4.07741467e+06 -8.18369428e+06 -3.25211280e+04 ! x y z +1.94858682e+03 -9.33976298e+02 3.19344234e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill +1.08696854e+04 !particle radius in m +6.06888001e+06 6.98255626e+06 -6.90089903e+03 ! x y z +-1.60191111e+03 1.44385639e+03 1.12490936e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill +7.40682734e+03 !particle radius in m +-1.97618366e+06 8.86960314e+06 4.14824140e+04 ! x y z +-2.09949361e+03 -4.69720145e+02 1.43384661e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill +1.02086703e+04 !particle radius in m +-6.96997724e+05 1.14525501e+07 -2.14282591e+04 ! x y z +-1.94508975e+03 -1.20495540e+02 -1.27425570e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill +1.08099817e+04 !particle radius in m +9.38021683e+06 3.42327658e+04 2.00501873e+04 ! x y z +-3.65841924e+01 2.11334523e+03 -1.86694989e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill +6.31519566e+03 !particle radius in m +9.77614427e+06 2.18126141e+06 4.93063169e+04 ! x y z +-4.63942946e+02 2.03097699e+03 3.68237367e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill +6.36286244e+03 !particle radius in m +1.03665232e+06 8.86346829e+06 1.05688800e+05 ! x y z +-2.16165047e+03 3.02954637e+02 -2.55519521e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill +7.01416117e+03 !particle radius in m +1.03495591e+07 -4.25164616e+06 3.58740907e+04 ! x y z +7.33662495e+02 1.82348291e+03 -6.28887722e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill +9.03178903e+03 !particle radius in m +-2.38406558e+06 9.62250108e+06 1.02937972e+05 ! x y z +-2.01173579e+03 -4.55947194e+02 5.72154417e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill +8.64887224e+03 !particle radius in m +-1.07734704e+07 -1.45075387e+06 -2.66041480e+04 ! x y z +2.65092409e+02 -1.95941508e+03 3.83593904e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill +4.59186701e+03 !particle radius in m +4.74101076e+06 -1.21984912e+07 3.79772198e+04 ! x y z +1.69258599e+03 6.30621386e+02 2.06381502e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill +1.07150758e+04 !particle radius in m +7.43989020e+06 -5.63873599e+06 -5.85929699e+04 ! x y z +1.31667387e+03 1.70317955e+03 9.52560643e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill +1.28849886e+04 !particle radius in m +-5.38823915e+06 1.48268009e+07 -2.14296811e+04 ! x y z +-1.54283155e+03 -5.57159624e+02 5.54783358e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill +8.11825531e+03 !particle radius in m +2.66724929e+06 -8.66471427e+06 1.00760731e+04 ! x y z +2.07447879e+03 6.47409518e+02 2.06301461e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill +6.32533652e+03 !particle radius in m +-9.34887042e+06 -7.71203345e+05 -2.80106217e+04 ! x y z +1.56382920e+02 -2.13449580e+03 1.77972684e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill +6.47451347e+03 !particle radius in m +2.11853462e+06 2.14346842e+07 -1.31619878e+05 ! x y z +-1.40220812e+03 1.23003628e+02 1.01803056e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill +9.73096804e+03 !particle radius in m +8.93418422e+06 -1.26163769e+06 -6.14650218e+03 ! x y z +2.70831749e+02 2.17084302e+03 -6.49066157e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill +1.21985861e+04 !particle radius in m +-3.36304606e+06 -8.68475569e+06 4.22905473e+04 ! x y z +2.01382441e+03 -7.30247568e+02 -1.59257408e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill +1.18904701e+04 !particle radius in m +8.81465687e+06 -2.36248215e+06 6.67259873e+04 ! x y z +5.93111329e+02 2.09930862e+03 3.04112228e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill +1.15252633e+04 !particle radius in m +-4.21295680e+06 -8.25900507e+06 -3.19234838e+03 ! x y z +1.92170180e+03 -9.79177619e+02 -8.10728388e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill +8.60360757e+03 !particle radius in m +9.93364443e+06 8.45966410e+06 -7.67940035e+04 ! x y z +-1.17931717e+03 1.37394453e+03 -8.05856772e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill +1.16460986e+04 !particle radius in m +1.04612906e+06 1.07823989e+07 -7.20248309e+04 ! x y z +-1.97918359e+03 1.84768969e+02 3.98691690e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill +7.05875544e+03 !particle radius in m +-1.20383776e+07 -1.30487787e+07 -1.17822971e+05 ! x y z +1.15323425e+03 -1.04821079e+03 -2.09214306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill +1.22523351e+04 !particle radius in m +-6.25721631e+06 -7.48338074e+06 6.58872777e+04 ! x y z +1.60724089e+03 -1.35523949e+03 1.79073191e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill +9.90119508e+03 !particle radius in m +-1.98852887e+06 -1.16234208e+07 3.45760659e+04 ! x y z +1.87230049e+03 -3.33072319e+02 1.96763510e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill +6.39775874e+03 !particle radius in m +-1.83445389e+06 -1.01663777e+07 -2.16218566e+04 ! x y z +1.99731190e+03 -3.10283279e+02 -1.07270295e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill +1.28561305e+04 !particle radius in m +-6.68458169e+06 -1.03038987e+07 1.06554338e+05 ! x y z +1.55802844e+03 -1.01074571e+03 -1.53515092e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill +6.64439416e+03 !particle radius in m +-9.54428205e+06 -1.77688297e+06 -2.10926647e+04 ! x y z +3.75374809e+02 -2.06650760e+03 -1.22766897e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill +4.45221314e+03 !particle radius in m +3.13901663e+06 1.32731582e+07 -8.32687929e+04 ! x y z +-1.71730983e+03 4.23145043e+02 4.63891808e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill +8.94314414e+03 !particle radius in m +-2.33540859e+06 9.13065765e+06 7.06589924e+03 ! x y z +-2.06497311e+03 -5.14043891e+02 1.51818535e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill +9.79534618e+03 !particle radius in m +1.36994576e+07 -4.67366094e+06 7.44829731e+04 ! x y z +5.44944889e+02 1.63399910e+03 -4.32898441e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill +3.76668925e+03 !particle radius in m +-7.37395287e+06 5.09151414e+06 2.55133554e+04 ! x y z +-1.23099773e+03 -1.81388400e+03 -6.90022105e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill +1.06439337e+04 !particle radius in m +-4.36095303e+06 9.17263674e+06 5.77572160e+04 ! x y z +-1.86099387e+03 -8.92089911e+02 1.33050454e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill +1.01319198e+04 !particle radius in m +6.09028041e+05 -9.05678858e+06 -3.59192636e+04 ! x y z +2.16064013e+03 1.12524119e+02 -1.28041635e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill +4.11065306e+03 !particle radius in m +8.74913197e+06 -1.47341693e+06 -9.62438055e+04 ! x y z +3.78746478e+02 2.16207809e+03 -2.44021093e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill +1.30483609e+04 !particle radius in m +-8.58911286e+06 2.87403478e+06 1.58823639e+02 ! x y z +-7.16776888e+02 -2.04412274e+03 5.09362192e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill +1.07178069e+04 !particle radius in m +8.48527058e+06 -9.20798638e+06 -1.02188880e+05 ! x y z +1.36994712e+03 1.25405390e+03 1.06840389e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill +1.12118643e+04 !particle radius in m +-5.30902937e+06 7.21606500e+06 6.02327354e+04 ! x y z +-1.77499753e+03 -1.28053606e+03 -3.40605365e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill +4.96028208e+03 !particle radius in m +-1.77739170e+07 5.38979777e+06 1.55930024e+05 ! x y z +-4.43393580e+02 -1.45455644e+03 -2.70314341e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill +5.28698448e+03 !particle radius in m +-8.43967863e+06 -7.92404795e+06 -2.34275469e+04 ! x y z +1.33453164e+03 -1.37751924e+03 -2.53751841e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill +1.00412476e+04 !particle radius in m +4.71451819e+06 -7.46352121e+06 1.62287314e+03 ! x y z +1.84921224e+03 1.19850662e+03 1.99232615e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill +5.43374958e+03 !particle radius in m +1.87652013e+06 -1.11420807e+07 1.38944441e+05 ! x y z +1.93560918e+03 3.25150073e+02 2.51765258e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill +1.25612659e+04 !particle radius in m +-9.29220692e+06 2.16599787e+06 -4.38900389e+04 ! x y z +-4.87620074e+02 -2.05624014e+03 4.85721843e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill +8.29428788e+03 !particle radius in m +1.39531950e+06 1.01422470e+07 -9.71755919e+04 ! x y z +-2.02592294e+03 3.03255899e+02 5.57961818e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill +7.18660555e+03 !particle radius in m +1.17947013e+07 7.40001699e+05 2.51672426e+04 ! x y z +-1.17060805e+02 1.90660700e+03 5.44656130e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill +1.12581502e+04 !particle radius in m +-7.90433536e+06 6.73266024e+06 -3.50969312e+04 ! x y z +-1.30204874e+03 -1.55681461e+03 5.35229797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill +5.64021687e+03 !particle radius in m +1.20372535e+07 -7.49092702e+06 6.74822230e+04 ! x y z +8.91458581e+02 1.47943776e+03 -9.74770857e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill +6.98217592e+03 !particle radius in m +6.85752801e+06 6.02181411e+06 3.38939759e+03 ! x y z +-1.45444163e+03 1.59683746e+03 2.15463449e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill +9.64610498e+03 !particle radius in m +1.65844804e+07 4.81034890e+06 4.61229376e+04 ! x y z +-4.20560106e+02 1.53234812e+03 -2.07164443e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill +9.97612135e+03 !particle radius in m +-1.11130797e+07 -3.78359570e+06 -1.84960756e+03 ! x y z +5.85052492e+02 -1.82483094e+03 -5.22659903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill +7.74203039e+03 !particle radius in m +4.58513442e+06 1.02699278e+07 -3.18341648e+04 ! x y z +-1.77353935e+03 8.15172006e+02 -3.48615440e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill +9.54525817e+03 !particle radius in m +7.69154925e+06 -4.52108417e+06 1.90521640e+04 ! x y z +1.13843297e+03 1.87858469e+03 1.37511342e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill +6.87114114e+03 !particle radius in m +-1.15969434e+07 3.52559239e+06 5.16907637e+04 ! x y z +-5.69477663e+02 -1.78769915e+03 -1.33023745e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill +1.00913836e+04 !particle radius in m +5.95447776e+06 -7.82496208e+06 3.09991808e+04 ! x y z +1.65084498e+03 1.22028250e+03 -2.33382836e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill +6.05977746e+03 !particle radius in m +-3.93089529e+06 1.17766068e+07 -6.72321552e+03 ! x y z +-1.75059713e+03 -6.17947765e+02 -1.16753307e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill +1.27297027e+04 !particle radius in m +-9.38145643e+06 5.61032393e+05 -2.62604457e+04 ! x y z +-1.66051140e+02 -2.13147141e+03 -1.91808715e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill +1.07838641e+04 !particle radius in m +-3.46243172e+06 -9.75229088e+06 -6.99128436e+04 ! x y z +1.92977079e+03 -6.78308349e+02 -2.04030914e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill +7.49949684e+03 !particle radius in m +2.14173079e+06 -1.00855853e+07 1.33615118e+04 ! x y z +2.00549502e+03 4.10286548e+02 1.33463171e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill +4.66653709e+03 !particle radius in m +2.97083227e+06 8.61004661e+06 -5.77896258e+04 ! x y z +-2.03526397e+03 6.94270314e+02 -2.15105297e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill +5.95586641e+03 !particle radius in m +-1.12041316e+07 8.43574386e+06 6.88522376e+04 ! x y z +-1.04307644e+03 -1.40491020e+03 6.49036289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill +7.11632779e+03 !particle radius in m +-4.35495075e+06 9.47025259e+06 -5.09915025e+04 ! x y z +-1.85819690e+03 -8.15466077e+02 4.09008068e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill +5.57206216e+03 !particle radius in m +4.78116976e+06 -1.59784331e+07 -5.36968327e+04 ! x y z +1.53329565e+03 4.46997350e+02 4.63714714e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill +8.50997184e+03 !particle radius in m +8.23993793e+06 -5.31139465e+06 6.29574603e+04 ! x y z +1.13278257e+03 1.76205209e+03 -8.47937534e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill +1.26036743e+04 !particle radius in m +-9.63212471e+06 3.36590765e+06 -1.07062454e+04 ! x y z +-6.84552644e+02 -1.94265665e+03 2.94400282e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill +4.86272166e+03 !particle radius in m +9.83116842e+06 6.61447762e+06 -5.12468956e+04 ! x y z +-1.03243293e+03 1.62443233e+03 2.38757589e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill +5.75359413e+03 !particle radius in m +9.79171021e+06 -2.73890246e+06 8.20795285e+04 ! x y z +5.70999291e+02 1.96925843e+03 2.38407769e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill +8.31975532e+03 !particle radius in m +-3.31575865e+06 9.74773076e+06 -6.68906771e+04 ! x y z +-1.91945157e+03 -6.80055572e+02 7.05071034e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill +1.11561412e+04 !particle radius in m +2.59402712e+06 1.41195960e+07 7.65317352e+04 ! x y z +-1.69390135e+03 3.03445651e+02 1.51567072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill +7.06120023e+03 !particle radius in m +-2.50324523e+06 1.33583355e+07 -1.06069614e+05 ! x y z +-1.73502096e+03 -3.33244830e+02 -4.27813580e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill +1.08855562e+04 !particle radius in m +-4.06673848e+06 -1.16023946e+07 4.08896853e+04 ! x y z +1.75606757e+03 -6.22462152e+02 1.70339271e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill +8.51827363e+03 !particle radius in m +4.61087222e+06 -8.97079451e+06 -2.30678380e+04 ! x y z +1.81563298e+03 9.45814603e+02 2.66915276e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill +9.98376791e+03 !particle radius in m +9.96934676e+06 5.38891014e+06 9.88781435e+04 ! x y z +-9.81582718e+02 1.71074828e+03 -3.99838208e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill +6.46366364e+03 !particle radius in m +4.99758772e+06 -7.50759705e+06 -5.25299733e+04 ! x y z +1.80703397e+03 1.21678053e+03 1.90540898e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill +8.47913036e+03 !particle radius in m +-6.69441800e+06 -8.86176278e+06 2.53388174e+04 ! x y z +1.56709902e+03 -1.16434302e+03 -9.30903825e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill +6.33780436e+03 !particle radius in m +-4.38549443e+06 -8.30442031e+06 2.47931467e+04 ! x y z +1.89780640e+03 -1.00273544e+03 3.24648282e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill +4.58059717e+03 !particle radius in m +9.52295494e+06 -1.31453589e+07 -2.84882159e+04 ! x y z +1.32429236e+03 9.32305231e+02 -7.78758641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill +4.96572933e+03 !particle radius in m +8.16032081e+06 -3.83914183e+06 -4.53668688e+04 ! x y z +9.48405336e+02 1.95482944e+03 -1.90024465e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill +1.18058616e+04 !particle radius in m +8.84185924e+06 4.91012210e+06 -4.89421191e+04 ! x y z +-9.91478880e+02 1.77538667e+03 -7.79856416e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill +4.55512603e+03 !particle radius in m +1.32256008e+07 4.60711564e+06 3.20195320e+04 ! x y z +-5.72824835e+02 1.63498483e+03 -8.94623266e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill +9.31206622e+03 !particle radius in m +1.83600084e+07 -3.67172737e+06 -1.03387529e+05 ! x y z +2.82478801e+02 1.48749998e+03 -3.61587063e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill +1.08121011e+04 !particle radius in m +5.50505051e+06 7.32332854e+06 3.97380095e+04 ! x y z +-1.73540458e+03 1.27934877e+03 1.31767249e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill +1.19792790e+04 !particle radius in m +-7.13326386e+06 1.32178302e+07 5.30241465e+04 ! x y z +-1.47659146e+03 -7.82263656e+02 -2.09914908e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill +4.27383343e+03 !particle radius in m +-4.61218845e+06 1.05730170e+07 -6.60200193e+04 ! x y z +-1.78205321e+03 -7.56922993e+02 8.78119173e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill +1.14640744e+04 !particle radius in m +-4.56090890e+06 1.14927598e+07 1.08391052e+05 ! x y z +-1.73824893e+03 -6.90093039e+02 -9.72090948e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill +5.67210117e+03 !particle radius in m +-1.26164008e+07 8.37507124e+06 -9.30825805e+04 ! x y z +-9.25052993e+02 -1.39347287e+03 7.98354596e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill +6.97236746e+03 !particle radius in m +6.53000802e+05 -9.25877071e+06 7.96919181e+03 ! x y z +2.13254376e+03 1.58194267e+02 -3.04691883e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill +1.00860395e+04 !particle radius in m +7.29493071e+06 -5.15859210e+06 -4.34667082e+04 ! x y z +1.28346456e+03 1.77485302e+03 1.13165377e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill +3.79587448e+03 !particle radius in m +-3.19192697e+06 -8.59789141e+06 9.38867695e+04 ! x y z +2.03734470e+03 -7.26452634e+02 -1.17305762e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill +9.54848620e+03 !particle radius in m +9.47082398e+06 -1.09607932e+06 4.83920593e+04 ! x y z +2.14821600e+02 2.11542107e+03 1.20322954e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill +9.67403073e+03 !particle radius in m +-6.95192799e+06 -5.46206006e+06 2.82885807e+04 ! x y z +1.36201469e+03 -1.74685442e+03 2.47593903e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill +6.47356387e+03 !particle radius in m +-3.08185810e+06 9.58349756e+06 6.94451226e+03 ! x y z +-1.96338979e+03 -6.65837368e+02 -2.04503843e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill +1.23980946e+04 !particle radius in m +1.65978586e+07 7.58110647e+06 -7.73180642e+04 ! x y z +-6.28856477e+02 1.39136938e+03 1.44879781e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill +1.11769229e+04 !particle radius in m +-6.68285720e+06 6.69572721e+06 -2.14964381e+03 ! x y z +-1.53479675e+03 -1.49178194e+03 -5.71100381e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill +5.41215219e+03 !particle radius in m +-4.42591408e+06 -1.21925806e+07 -3.63637070e+04 ! x y z +1.69944504e+03 -6.60923085e+02 -1.17185754e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill +9.40989476e+03 !particle radius in m +9.48116594e+06 -3.86455243e+05 -1.03947327e+05 ! x y z +6.54406678e+01 2.14729925e+03 -2.03989342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill +9.76055838e+03 !particle radius in m +9.75283383e+06 -3.26934404e+06 -6.67089834e+03 ! x y z +6.55184968e+02 1.92454684e+03 -2.06876177e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill +9.82795810e+03 !particle radius in m +7.92293154e+06 -5.92949642e+06 8.08421712e+04 ! x y z +1.22209539e+03 1.67954941e+03 6.77640716e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill +1.10112267e+04 !particle radius in m +-9.44726757e+06 -1.72479642e+06 -5.06771776e+04 ! x y z +3.57081323e+02 -2.08684682e+03 -1.01697089e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill +8.85599534e+03 !particle radius in m +-6.23129670e+06 7.19526623e+06 1.83941420e+04 ! x y z +-1.59813509e+03 -1.40609078e+03 1.94595479e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill +1.13935271e+04 !particle radius in m +-5.60132388e+06 -7.32299736e+06 -1.77571471e+04 ! x y z +1.71338179e+03 -1.30416800e+03 7.07200448e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill +9.21714362e+03 !particle radius in m +1.94866969e+07 6.41556967e+06 -8.78618223e+04 ! x y z +-4.47022162e+02 1.36561417e+03 1.23555791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill +9.19760498e+03 !particle radius in m +1.24313845e+07 -1.03009928e+07 2.91007895e+04 ! x y z +1.03299438e+03 1.26303931e+03 1.43272483e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill +6.15328661e+03 !particle radius in m +-1.88463700e+07 3.02324922e+06 -1.45896688e+05 ! x y z +-2.31662436e+02 -1.48292769e+03 2.63168505e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill +7.76210648e+03 !particle radius in m +1.40546567e+07 -3.88347486e+06 6.81896661e+04 ! x y z +4.43567006e+02 1.65056081e+03 4.01577354e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill +4.21738363e+03 !particle radius in m +1.78412490e+06 -1.05393977e+07 -1.79940495e+04 ! x y z +1.97327292e+03 3.39702264e+02 -1.56396341e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill +1.24124221e+04 !particle radius in m +3.48276485e+06 1.24683799e+07 5.71803206e+04 ! x y z +-1.74011773e+03 4.74503606e+02 9.70062988e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill +6.19423818e+03 !particle radius in m +9.54521899e+06 -4.27421825e+06 -7.89921579e+04 ! x y z +8.34463883e+02 1.83314396e+03 -1.96687832e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill +1.07595049e+04 !particle radius in m +-2.90897541e+06 -9.97345628e+06 4.60433948e+04 ! x y z +1.93634809e+03 -5.84664071e+02 -6.64958448e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill +1.22230660e+04 !particle radius in m +4.25415099e+06 -1.14325644e+07 5.00958816e+04 ! x y z +1.75951768e+03 6.44587122e+02 6.30692655e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill +7.10923390e+03 !particle radius in m +-1.58007262e+07 -7.45105168e+06 -3.06690137e+04 ! x y z +6.82944765e+02 -1.41301363e+03 1.04453850e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill +6.57693777e+03 !particle radius in m +8.25741284e+06 4.39411348e+06 3.78949633e+04 ! x y z +-9.99781284e+02 1.87441904e+03 -3.21699586e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill +6.56801971e+03 !particle radius in m +2.42332014e+06 2.17054415e+07 -5.36680055e+04 ! x y z +-1.40455533e+03 1.37752686e+02 -3.67471579e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill +7.16699767e+03 !particle radius in m +-1.11338384e+07 -2.20174819e+06 -5.08310388e+04 ! x y z +3.88427106e+02 -1.90213725e+03 -1.60447088e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill +1.08784389e+04 !particle radius in m +-1.83729146e+07 1.19076985e+06 -1.72335144e+04 ! x y z +-9.88243619e+01 -1.51803622e+03 2.27806536e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill +1.04495767e+04 !particle radius in m +-6.50873442e+06 -1.07127054e+07 -3.34128129e+03 ! x y z +1.57607258e+03 -9.74525706e+02 1.08233475e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill +1.07365873e+04 !particle radius in m +-2.66932388e+06 -1.08052729e+07 -7.29995052e+04 ! x y z +1.89275637e+03 -5.06517897e+02 -3.33939112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill +1.11350375e+04 !particle radius in m +-8.68309984e+06 8.73295385e+06 2.12890448e+04 ! x y z +-1.33510513e+03 -1.35075217e+03 2.94732064e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill +4.15634119e+03 !particle radius in m +-9.01680783e+06 -6.03891596e+06 -1.83491289e+04 ! x y z +1.08610553e+03 -1.66661637e+03 5.40990322e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill +8.40905991e+03 !particle radius in m +8.73703169e+06 -2.34962014e+06 8.87466208e+03 ! x y z +5.81838269e+02 2.10387535e+03 1.59910498e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill +1.06013311e+04 !particle radius in m +-5.56657026e+06 -7.79387621e+06 -2.42457443e+04 ! x y z +1.72811494e+03 -1.19163725e+03 7.49315478e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill +8.97396819e+03 !particle radius in m +-1.39814291e+07 5.67086599e+06 7.10670472e+04 ! x y z +-6.38825478e+02 -1.55959492e+03 1.37992185e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill +9.23650109e+03 !particle radius in m +-6.68069155e+05 -1.06256314e+07 1.03366197e+04 ! x y z +1.99524677e+03 -1.14341573e+02 7.10647594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill +1.26639344e+04 !particle radius in m +4.44131372e+06 1.05243943e+07 -4.93210722e+04 ! x y z +-1.78877447e+03 7.65306939e+02 -2.91348510e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill +3.72440519e+03 !particle radius in m +4.74513540e+06 -1.11521571e+07 1.99020178e+04 ! x y z +1.74857282e+03 7.32287072e+02 8.22196426e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill +6.65808168e+03 !particle radius in m +3.69231178e+06 8.07781861e+06 -4.84025537e+04 ! x y z +-1.99534439e+03 9.00711444e+02 -7.96406279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill +9.76097367e+03 !particle radius in m +7.96779900e+06 5.28681997e+06 4.51459562e+04 ! x y z +-1.15797841e+03 1.77999708e+03 -1.86173466e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill +1.23309244e+04 !particle radius in m +-4.76453798e+06 -8.80906879e+06 -7.02042625e+03 ! x y z +1.84339352e+03 -9.61915676e+02 -9.22717545e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill +7.89494909e+03 !particle radius in m +-1.01354200e+07 1.79029021e+06 5.81214752e+04 ! x y z +-3.69721169e+02 -2.02078532e+03 -1.89093419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill +9.77391088e+03 !particle radius in m +6.33480475e+06 -5.91857236e+06 -4.57999278e+04 ! x y z +1.55086475e+03 1.62084415e+03 -1.77397628e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill +7.38931640e+03 !particle radius in m +-1.06493767e+07 7.82814577e+06 2.86358415e+04 ! x y z +-1.05832791e+03 -1.46150005e+03 -5.49731072e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill +1.26273646e+04 !particle radius in m +7.65076109e+06 -1.70352283e+07 1.51301396e+04 ! x y z +1.39901314e+03 6.06223441e+02 4.14064364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill +1.16848854e+04 !particle radius in m +-6.95564135e+06 7.65404475e+06 -2.72421907e+04 ! x y z +-1.52099853e+03 -1.35598646e+03 -9.21577263e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill +5.54558146e+03 !particle radius in m +-5.49140677e+04 1.54446317e+07 -1.73043597e+04 ! x y z +-1.66030895e+03 -1.12967723e+01 -2.73734027e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill +4.63830089e+03 !particle radius in m +5.28463967e+06 -1.36432294e+07 1.50949984e+05 ! x y z +1.58056809e+03 6.18784193e+02 2.19476691e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill +1.16861089e+04 !particle radius in m +-6.87024799e+06 -8.49204530e+06 6.90721153e+04 ! x y z +1.52959279e+03 -1.25803812e+03 2.67976166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill +8.06813127e+03 !particle radius in m +-5.81437057e+06 -7.46625959e+06 3.98273573e+04 ! x y z +1.67686329e+03 -1.30572183e+03 -1.17212431e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill +4.37989422e+03 !particle radius in m +-2.38298847e+06 -1.53195500e+07 2.60001847e+03 ! x y z +1.63293505e+03 -2.84649559e+02 -1.48524125e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill +1.03479629e+04 !particle radius in m +8.39690801e+06 9.44600671e+06 -3.53959311e+04 ! x y z +-1.39463544e+03 1.20681438e+03 -1.20628234e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill +5.82874810e+03 !particle radius in m +1.01396678e+07 -1.41312986e+07 5.56406543e+04 ! x y z +1.26355281e+03 9.21806042e+02 1.06940044e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill +5.42963650e+03 !particle radius in m +-5.21396669e+05 9.14782087e+06 -7.71915905e+03 ! x y z +-2.15141308e+03 -1.66257020e+02 2.07412147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill +1.27728576e+04 !particle radius in m +-3.61884147e+05 9.58012066e+06 -6.32163221e+04 ! x y z +-2.11988696e+03 -7.34599885e+01 -6.66237019e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill +1.25591089e+04 !particle radius in m +-1.53596824e+07 6.40708086e+06 -1.04989342e+05 ! x y z +-6.14876376e+02 -1.48301382e+03 1.26290046e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill +1.09785515e+04 !particle radius in m +-6.50197885e+06 -1.10181249e+07 -6.62877770e+04 ! x y z +1.58080387e+03 -9.02970180e+02 -1.68313909e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill +8.81164464e+03 !particle radius in m +9.75396219e+06 -9.13807405e+05 -7.87078491e+04 ! x y z +2.02298152e+02 2.08890085e+03 -1.56193445e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill +6.34730173e+03 !particle radius in m +1.22059111e+07 -4.11569584e+06 4.51136993e+04 ! x y z +6.18155979e+02 1.71784899e+03 -1.45608490e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill +8.22504486e+03 !particle radius in m +-1.39589249e+07 4.22706952e+06 1.42629172e+04 ! x y z +-4.79490807e+02 -1.64034272e+03 -9.80150049e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill +8.68255953e+03 !particle radius in m +-8.72337367e+06 7.89855612e+06 -1.46432428e+04 ! x y z +-1.27359213e+03 -1.41072675e+03 -9.09643338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill +6.55170538e+03 !particle radius in m +-5.98689124e+06 -1.08278571e+07 -7.13966053e+04 ! x y z +1.61204187e+03 -9.04138146e+02 6.38760222e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill +6.76452340e+03 !particle radius in m +-1.07210273e+07 4.87007409e+06 5.61861647e+04 ! x y z +-7.65098099e+02 -1.73800332e+03 -1.14385352e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill +8.51193471e+03 !particle radius in m +2.68858721e+06 -1.40830147e+07 -6.98869515e+04 ! x y z +1.69547510e+03 3.28640998e+02 9.31981924e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill +1.29562429e+04 !particle radius in m +-1.30260417e+07 3.41761257e+06 -7.30560375e+04 ! x y z +-4.58021484e+02 -1.72002575e+03 5.01502204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill +1.19720742e+04 !particle radius in m +-4.79303948e+06 8.20836672e+06 6.12546656e+03 ! x y z +-1.84411142e+03 -1.07059828e+03 4.85115120e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill +1.10248119e+04 !particle radius in m +7.16020189e+06 -5.20913143e+06 7.41222240e+04 ! x y z +1.31083472e+03 1.77863703e+03 -1.14709109e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill +5.80902907e+03 !particle radius in m +8.99285148e+05 9.31741571e+06 -4.43761911e+04 ! x y z +-2.12986907e+03 1.90203427e+02 1.15661198e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill +1.20390163e+04 !particle radius in m +1.03624859e+07 4.00217371e+06 -3.33921276e+04 ! x y z +-7.29889411e+02 1.83209523e+03 -3.12704990e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill +1.05735757e+04 !particle radius in m +9.54531799e+06 -3.82777787e+06 -3.08506232e+03 ! x y z +7.65760228e+02 1.88710727e+03 1.54248284e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill +6.19228768e+03 !particle radius in m +-1.26508821e+07 -4.96817255e+06 -7.46581466e+04 ! x y z +6.38137580e+02 -1.65998064e+03 -1.05229703e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill +7.10814791e+03 !particle radius in m +6.65714202e+06 8.41817806e+06 5.11373555e+04 ! x y z +-1.58896209e+03 1.22956179e+03 -1.67191084e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill +8.69325608e+03 !particle radius in m +-1.30432977e+07 2.41169295e+06 9.46191119e+04 ! x y z +-3.33638402e+02 -1.76051970e+03 1.16209842e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill +3.75974028e+03 !particle radius in m +1.62111278e+07 2.59399704e+06 1.61282577e+05 ! x y z +-2.71405873e+02 1.59773598e+03 -5.81005218e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill +7.38892108e+03 !particle radius in m +2.06345127e+06 9.22023526e+06 -7.22571528e+03 ! x y z +-2.09005362e+03 4.30799852e+02 -1.90823955e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill +9.19272993e+03 !particle radius in m +-1.13721993e+07 -1.13987875e+07 8.83921800e+04 ! x y z +1.16224359e+03 -1.15160239e+03 -1.45306478e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill +1.16650334e+04 !particle radius in m +2.77942362e+06 -9.01437717e+06 -5.67717467e+04 ! x y z +2.03984238e+03 6.54242641e+02 1.85000009e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill +9.29804930e+03 !particle radius in m +-1.18629177e+07 -4.45829589e+05 7.85442143e+04 ! x y z +1.01652144e+02 -1.91537773e+03 4.05611152e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill +1.18263271e+04 !particle radius in m +8.95238380e+06 6.51302794e+06 3.45161345e+04 ! x y z +-1.14800130e+03 1.59335172e+03 -7.03295250e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill +5.75041368e+03 !particle radius in m +6.69475580e+06 -9.28551107e+06 -4.91541805e+04 ! x y z +1.59233658e+03 1.14243210e+03 1.78210731e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill +1.20518923e+04 !particle radius in m +1.12760016e+07 1.84611316e+06 -7.48490699e+04 ! x y z +-2.79591330e+02 1.91267253e+03 -1.78025369e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill +9.68470759e+03 !particle radius in m +-6.71328804e+03 9.68278345e+06 -5.52334404e+04 ! x y z +-2.08432418e+03 -8.54871802e+00 1.66064441e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill +4.70574813e+03 !particle radius in m +-6.96627774e+06 9.23026738e+06 -2.87240918e+04 ! x y z +-1.52286258e+03 -1.17748048e+03 -3.95814303e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill +4.67812785e+03 !particle radius in m +1.23905483e+05 -1.09739869e+07 1.36396267e+04 ! x y z +1.98817193e+03 2.04705438e+01 -2.01972620e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill +6.51530333e+03 !particle radius in m +-6.63943360e+06 7.91940404e+06 6.09014325e+04 ! x y z +-1.56332740e+03 -1.31647658e+03 2.73931815e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill +1.08866518e+04 !particle radius in m +5.51288052e+06 -8.48543006e+06 3.44011201e+04 ! x y z +1.72675322e+03 1.14606699e+03 -1.64108886e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill +7.57891828e+03 !particle radius in m +-6.54081328e+06 -9.90968551e+06 -8.75124119e+02 ! x y z +1.59735811e+03 -1.02533687e+03 2.87435690e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill +5.44560895e+03 !particle radius in m +-6.45935547e+06 -6.74639603e+06 -1.43260248e+04 ! x y z +1.55668948e+03 -1.48434496e+03 1.71287847e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill +5.10514110e+03 !particle radius in m +6.10089271e+06 -7.18245737e+06 -1.54248190e+04 ! x y z +1.63416125e+03 1.39276630e+03 2.48510957e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill +5.36280409e+03 !particle radius in m +4.82602306e+06 -8.03439545e+06 -7.67679872e+02 ! x y z +1.85073484e+03 1.06188550e+03 8.12750484e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill +1.15239690e+04 !particle radius in m +4.44437862e+06 -9.91763988e+06 4.31307866e+04 ! x y z +1.80875755e+03 8.27020553e+02 -1.01329362e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill +1.25055498e+04 !particle radius in m +-1.14222033e+07 -6.06408313e+06 4.03399165e+03 ! x y z +8.56095542e+02 -1.61207885e+03 -3.63239850e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill +6.21936950e+03 !particle radius in m +7.76499151e+06 5.91861320e+06 3.34591110e+04 ! x y z +-1.26430519e+03 1.67125233e+03 9.81409163e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill +6.76191251e+03 !particle radius in m +6.41969262e+05 9.07081567e+06 -7.35294633e+03 ! x y z +-2.17769789e+03 1.33895254e+02 1.52672754e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill +3.91378509e+03 !particle radius in m +-1.06528591e+07 8.93880305e+06 -5.72463584e+04 ! x y z +-1.12548728e+03 -1.34323474e+03 6.06469294e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill +7.48444340e+03 !particle radius in m +-3.19955637e+06 2.16099834e+07 -4.14759774e+03 ! x y z +-1.38306232e+03 -1.85981613e+02 8.81754791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill +6.88290450e+03 !particle radius in m +-1.10508713e+07 7.71301153e+06 -1.18282672e+05 ! x y z +-1.00552378e+03 -1.48763887e+03 9.37513940e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill +8.01051874e+03 !particle radius in m +-6.84568402e+06 6.93126559e+06 -8.44628949e+04 ! x y z +-1.48797188e+03 -1.48762515e+03 1.55236862e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill +1.12177675e+04 !particle radius in m +-4.99810043e+06 1.03574496e+07 4.97035769e+03 ! x y z +-1.74218913e+03 -8.42934517e+02 -8.95086256e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill +1.23130257e+04 !particle radius in m +-5.22893040e+06 -8.08300727e+06 -6.54096012e+04 ! x y z +1.73636332e+03 -1.16550147e+03 -7.26670162e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill +9.61558846e+03 !particle radius in m +8.48788962e+06 5.61313541e+06 -3.97847978e+04 ! x y z +-1.16430859e+03 1.69033461e+03 -1.63966122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill +6.71734597e+03 !particle radius in m +-8.10346206e+06 8.11251976e+06 -2.39530194e+04 ! x y z +-1.39528138e+03 -1.34141849e+03 -1.46583663e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill +9.18590040e+03 !particle radius in m +1.01379295e+07 1.27148009e+07 1.28683748e+05 ! x y z +-1.25755832e+03 1.02459820e+03 2.79221586e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill +4.34121509e+03 !particle radius in m +-3.34906408e+06 -1.45007656e+07 3.06724892e+04 ! x y z +1.65986723e+03 -3.87189481e+02 -1.20093781e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill +7.35249155e+03 !particle radius in m +9.72284422e+06 5.24694587e+05 -2.03401805e+04 ! x y z +-1.64711568e+02 2.09599540e+03 2.03343245e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill +1.24155280e+04 !particle radius in m +8.48073237e+06 4.51058486e+06 2.53523368e+04 ! x y z +-9.87084405e+02 1.87149600e+03 2.30788388e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill +5.50275953e+03 !particle radius in m +6.45455163e+06 -7.63351792e+06 -1.42285814e+05 ! x y z +1.59381455e+03 1.33155701e+03 -4.40247600e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill +6.51937434e+03 !particle radius in m +-8.78159278e+06 5.76426176e+06 9.09624378e+04 ! x y z +-1.08134022e+03 -1.71795196e+03 -8.73857909e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill +6.21567016e+03 !particle radius in m +9.52925894e+06 6.10621713e+06 8.38784066e+04 ! x y z +-1.05186401e+03 1.64327133e+03 8.87777455e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill +8.89237350e+03 !particle radius in m +1.01892854e+07 -1.36265120e+06 -1.12357324e+04 ! x y z +2.44094973e+02 2.01912416e+03 -1.23871747e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill +1.22676172e+04 !particle radius in m +-9.44952303e+06 6.64794032e+05 2.66575883e+04 ! x y z +-1.65527486e+02 -2.12001832e+03 -2.00449290e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill +5.92221816e+03 !particle radius in m +1.83154773e+05 -1.22553647e+07 8.81712635e+04 ! x y z +1.88138741e+03 4.37026901e+01 -1.09775010e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill +1.05931042e+04 !particle radius in m +-7.97487196e+06 -9.77747428e+06 2.72278643e+04 ! x y z +1.43311159e+03 -1.15357841e+03 -9.89419786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill +1.20876047e+04 !particle radius in m +1.94057310e+06 1.10640858e+07 -6.67098464e+04 ! x y z +-1.92090005e+03 3.39961177e+02 9.93411747e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill +9.86315310e+03 !particle radius in m +-4.65532155e+06 1.00459520e+07 1.92148265e+04 ! x y z +-1.79352379e+03 -7.96705869e+02 7.04140623e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill +5.60495536e+03 !particle radius in m +-7.15394211e+06 8.89862789e+06 -1.32380207e+04 ! x y z +-1.51757568e+03 -1.20615223e+03 1.35463888e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill +4.23356519e+03 !particle radius in m +-9.43261369e+06 7.11601450e+06 5.44346690e+03 ! x y z +-1.15890933e+03 -1.51651908e+03 -4.86353449e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill +7.16866817e+03 !particle radius in m +4.46987922e+06 -7.54136153e+06 -1.75706858e+03 ! x y z +1.91337212e+03 1.12893149e+03 -4.46774330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill +4.90246515e+03 !particle radius in m +-1.19950136e+07 8.16218853e+05 1.95819347e+04 ! x y z +-1.42817655e+02 -1.87495301e+03 1.71449405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill +9.70236728e+03 !particle radius in m +-7.49210830e+06 -1.17675041e+07 3.09999690e+03 ! x y z +1.49945194e+03 -9.16839153e+02 1.04827746e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill +7.89739710e+03 !particle radius in m +1.05050579e+07 -3.74118158e+06 2.63300605e+04 ! x y z +6.73610054e+02 1.82488852e+03 9.07423039e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill +1.03228429e+04 !particle radius in m +4.89752221e+06 -8.85494139e+06 -6.75229080e+04 ! x y z +1.83164749e+03 9.48103081e+02 -1.57990456e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill +4.82114680e+03 !particle radius in m +-4.94662921e+06 -8.78447645e+06 -1.52590989e+04 ! x y z +1.78359269e+03 -1.02161338e+03 3.01217587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill +8.51914826e+03 !particle radius in m +-2.76648508e+06 1.00209975e+07 1.12220539e+04 ! x y z +-1.94324711e+03 -5.66151040e+02 8.07071042e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill +1.24634921e+04 !particle radius in m +8.29729830e+05 -9.56636031e+06 7.03935010e+04 ! x y z +2.11653601e+03 1.88209489e+02 4.94852919e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill +3.80446929e+03 !particle radius in m +-9.93606780e+06 -1.91150532e+06 -4.47495052e+04 ! x y z +3.80453971e+02 -2.01867650e+03 -1.85403349e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill +3.89556870e+03 !particle radius in m +-8.01896356e+06 1.37141963e+07 -5.15166167e+03 ! x y z +-1.39036186e+03 -8.35965747e+02 -1.59320152e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill +5.72363723e+03 !particle radius in m +-1.85002148e+06 -8.80679540e+06 1.35544509e+04 ! x y z +2.13508260e+03 -4.62001715e+02 -1.42665412e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill +4.75733808e+03 !particle radius in m +4.27594078e+06 -2.26843001e+07 -1.55793996e+05 ! x y z +1.32907578e+03 2.52657022e+02 -1.02801831e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill +8.12492435e+03 !particle radius in m +-5.68991814e+06 -1.12264560e+07 -5.21915423e+04 ! x y z +1.65234255e+03 -8.32199277e+02 -1.84232859e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill +9.27317292e+03 !particle radius in m +5.57078844e+06 -1.29122392e+07 2.98061387e+04 ! x y z +1.60978124e+03 6.76666256e+02 -1.81556760e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill +1.20657022e+04 !particle radius in m +-9.23646620e+06 -3.48333300e+06 -5.66153126e+04 ! x y z +7.62840282e+02 -1.92758119e+03 -1.42885719e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill +4.77169909e+03 !particle radius in m +-1.33386904e+07 -7.03492878e+06 5.22429887e+04 ! x y z +7.86090473e+02 -1.49627525e+03 -5.64598667e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill +4.40136307e+03 !particle radius in m +-4.47610210e+06 -7.77281547e+06 -5.58878589e+04 ! x y z +1.89664270e+03 -1.07211196e+03 -5.72288054e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill +8.44186160e+03 !particle radius in m +-9.07004249e+06 -3.73002016e+06 4.79325609e+04 ! x y z +7.83046085e+02 -1.94541887e+03 -4.25596103e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill +1.17916085e+04 !particle radius in m +4.77535808e+06 2.28272957e+07 -1.30485185e+05 ! x y z +-1.33059311e+03 2.72226813e+02 1.17199136e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill +9.56876735e+03 !particle radius in m +-6.57222396e+06 -6.18414714e+06 5.03770860e+03 ! x y z +1.49882331e+03 -1.57253167e+03 6.35917239e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill +1.00365688e+04 !particle radius in m +1.29779524e+07 -6.46401216e+06 3.48941370e+04 ! x y z +7.80281531e+02 1.52896125e+03 1.61899666e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill +1.08721841e+04 !particle radius in m +8.92019709e+06 1.13125647e+07 2.46536424e+04 ! x y z +-1.35073430e+03 1.07341543e+03 -2.21311295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill +6.20328692e+03 !particle radius in m +1.07245478e+07 -8.18329560e+06 2.13161879e+04 ! x y z +1.05166921e+03 1.44439805e+03 3.54109421e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill +1.29798746e+04 !particle radius in m +-9.30550358e+06 8.66046042e+05 5.81017139e+04 ! x y z +-2.29894248e+02 -2.12058022e+03 1.24228458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill +1.16779401e+04 !particle radius in m +7.60186730e+06 8.86968517e+06 -2.74017031e+04 ! x y z +-1.43991356e+03 1.26760065e+03 4.33685357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill +1.17455396e+04 !particle radius in m +7.15301504e+06 -1.14025302e+07 6.70488022e+04 ! x y z +1.51419253e+03 9.18252451e+02 1.10269853e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill +7.49470061e+03 !particle radius in m +1.23698701e+06 9.47565448e+06 3.23875154e+04 ! x y z +-2.10148424e+03 2.50074394e+02 -1.91619258e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill +1.17682821e+04 !particle radius in m +-2.19991014e+06 -1.20488900e+07 1.28489104e+05 ! x y z +1.85062965e+03 -3.21678958e+02 -6.16390717e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill +8.96400751e+03 !particle radius in m +-9.49865812e+06 -3.70460583e+06 1.09215654e+05 ! x y z +7.34938455e+02 -1.90450100e+03 -1.30332251e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill +1.09312475e+04 !particle radius in m +1.16226476e+07 1.38150369e+06 -1.92583058e+04 ! x y z +-2.26381104e+02 1.88932307e+03 9.55895676e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill +1.03367318e+04 !particle radius in m +2.15229887e+06 9.00160460e+06 -1.92923892e+04 ! x y z +-2.09656754e+03 4.96075668e+02 -1.16719539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill +9.04899661e+03 !particle radius in m +1.06770435e+06 1.09358139e+07 4.20062155e+03 ! x y z +-1.96462815e+03 1.83747788e+02 1.48559298e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill +6.41462061e+03 !particle radius in m +-6.42789916e+06 -5.88137546e+06 5.96791682e+04 ! x y z +1.50006484e+03 -1.65201659e+03 -1.22137321e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill +7.74973359e+03 !particle radius in m +-6.05164524e+06 -8.28607289e+06 -1.65389595e+03 ! x y z +1.67689384e+03 -1.17484360e+03 -6.18688546e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill +9.34847201e+03 !particle radius in m +1.21489394e+07 1.95514302e+06 1.23709104e+05 ! x y z +-3.04295890e+02 1.85437159e+03 3.05804994e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill +9.23516856e+03 !particle radius in m +7.58308846e+06 8.14384020e+06 6.98191668e+04 ! x y z +-1.44939292e+03 1.32522723e+03 3.40820153e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill +8.37521886e+03 !particle radius in m +2.35699353e+06 8.90977821e+06 -1.38321436e+04 ! x y z +-2.07425100e+03 5.54407039e+02 3.21999470e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill +9.56158017e+03 !particle radius in m +-6.64360612e+06 -9.33976004e+06 -1.15941594e+05 ! x y z +1.59144044e+03 -1.09353179e+03 -2.96304740e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill +4.59864210e+03 !particle radius in m +1.19168220e+07 -3.45563255e+06 1.11394399e+04 ! x y z +5.17861579e+02 1.76812064e+03 1.39033798e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill +3.98028346e+03 !particle radius in m +-9.71007247e+06 7.35807090e+06 -1.31989891e+05 ! x y z +-1.16325288e+03 -1.47233955e+03 8.07759554e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill +1.21124859e+04 !particle radius in m +1.41799542e+06 -9.13902699e+06 4.24742676e+04 ! x y z +2.10898023e+03 3.21322532e+02 -1.26636042e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill +8.98485858e+03 !particle radius in m +-1.08957227e+07 -1.70176619e+07 1.40648070e+05 ! x y z +1.21605254e+03 -8.04289078e+02 5.08636985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill +1.16900526e+04 !particle radius in m +-5.98329541e+06 8.30801044e+06 9.09812707e+03 ! x y z +-1.64846384e+03 -1.22236838e+03 2.54695878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill +8.45138479e+03 !particle radius in m +-4.65472167e+06 -7.85395586e+06 -5.30698954e+03 ! x y z +1.85738188e+03 -1.11675155e+03 9.77147330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill +1.04153730e+04 !particle radius in m +1.69188525e+07 8.47840581e+06 -4.67327616e+04 ! x y z +-6.66379185e+02 1.35677843e+03 1.32594121e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill +1.12810669e+04 !particle radius in m +-7.04671066e+06 7.15586671e+06 -3.56479637e+04 ! x y z +-1.47400909e+03 -1.45932821e+03 -9.67794404e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill +6.72689473e+03 !particle radius in m +7.33791533e+06 -9.58517692e+06 3.03846079e+04 ! x y z +1.49051721e+03 1.17984608e+03 -1.97955637e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill +4.42153023e+03 !particle radius in m +1.21152578e+07 2.07326034e+05 4.57151931e+03 ! x y z +-2.18290977e+01 1.86989325e+03 -1.30418260e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill +1.02802232e+04 !particle radius in m +-1.78690734e+06 9.20811486e+06 6.52613267e+03 ! x y z +-2.08865445e+03 -3.88689300e+02 7.21544338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill +5.50911894e+03 !particle radius in m +-6.29895686e+06 8.71900726e+06 -7.33711540e+03 ! x y z +-1.63469757e+03 -1.16304985e+03 4.84189753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill +1.25910224e+04 !particle radius in m +9.10086700e+06 -7.03219894e+06 -7.28785098e+04 ! x y z +1.17345937e+03 1.50811083e+03 -6.68343594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill +7.83571609e+03 !particle radius in m +-4.28807654e+06 -7.85915508e+06 2.65183664e+04 ! x y z +1.92700749e+03 -1.07363344e+03 6.86417879e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill +6.08850399e+03 !particle radius in m +6.47343353e+06 8.23566063e+06 3.01013545e+04 ! x y z +-1.59000120e+03 1.26250583e+03 -1.25792680e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill +1.24257689e+04 !particle radius in m +-8.70674127e+06 -2.94645030e+06 -2.92623754e+04 ! x y z +7.11914106e+02 -2.04951615e+03 1.66637378e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill +1.07981562e+04 !particle radius in m +-1.75476786e+07 -1.12768402e+07 1.80639637e+05 ! x y z +7.59106783e+02 -1.22286396e+03 1.20937631e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill +1.27803239e+04 !particle radius in m +7.04696388e+06 -1.10885823e+07 -6.17953039e+04 ! x y z +1.50498521e+03 9.91641405e+02 -4.14259212e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill +6.26842061e+03 !particle radius in m +9.08053413e+06 1.73092917e+06 9.84209268e+03 ! x y z +-4.33130368e+02 2.10086011e+03 -1.06621334e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill +1.20378926e+04 !particle radius in m +-3.00902975e+06 -1.32946373e+07 -5.90702502e+03 ! x y z +1.71319262e+03 -4.00878759e+02 -9.96066412e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill +7.48414588e+03 !particle radius in m +-4.04201967e+06 -8.29248316e+06 -4.12753129e+03 ! x y z +1.92318448e+03 -9.71522928e+02 1.76717922e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill +7.72799953e+03 !particle radius in m +1.75193620e+07 -2.65169374e+06 1.13236551e+05 ! x y z +2.30440171e+02 1.53861792e+03 6.99701915e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill +9.98153536e+03 !particle radius in m +3.43641275e+06 -8.93033322e+06 -2.09644587e+04 ! x y z +1.99449709e+03 7.67681042e+02 -1.69978122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill +6.52068720e+03 !particle radius in m +-8.94110733e+06 -6.35904272e+06 -5.39789507e+04 ! x y z +1.10919784e+03 -1.62340625e+03 -3.28674782e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill +5.81525514e+03 !particle radius in m +-1.30741810e+07 8.57418735e+06 -1.19905050e+03 ! x y z +-9.25024677e+02 -1.37017223e+03 4.97519787e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill +1.29022874e+04 !particle radius in m +-2.54473466e+06 1.02641366e+07 -6.03109093e+04 ! x y z +-1.94287173e+03 -5.03549968e+02 -1.40714774e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill +3.75520420e+03 !particle radius in m +-2.05229123e+06 1.07524321e+07 -3.91281600e+04 ! x y z +-1.94369561e+03 -3.72923016e+02 -4.66840760e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill +8.49458734e+03 !particle radius in m +9.81310678e+06 -6.45686284e+06 -8.14126007e+04 ! x y z +1.04337462e+03 1.60488987e+03 -6.74659876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill +1.19130613e+04 !particle radius in m +6.87800371e+06 5.51073017e+06 -5.46411638e+04 ! x y z +-1.36034802e+03 1.74332100e+03 4.94690697e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill +6.07042423e+03 !particle radius in m +-1.07553881e+07 -9.12112446e+05 -4.34386235e+04 ! x y z +1.54461489e+02 -1.98147483e+03 -1.70607618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill +4.61293151e+03 !particle radius in m +1.27377380e+07 -1.09778054e+05 -6.19904167e+04 ! x y z +-1.25732694e+00 1.84331966e+03 -2.21143255e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill +1.04833644e+04 !particle radius in m +-5.13284511e+05 -1.67637883e+07 -2.82433912e+03 ! x y z +1.59521599e+03 -5.35780376e+01 1.00615428e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill +4.48908069e+03 !particle radius in m +-1.26602775e+07 4.02918646e+05 1.71412707e+04 ! x y z +-5.95275114e+01 -1.83478145e+03 -6.71275300e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill +6.14880277e+03 !particle radius in m +6.61475732e+05 1.19251089e+07 4.99716805e+03 ! x y z +-1.89472956e+03 8.25618952e+01 -1.61809802e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill +3.82885081e+03 !particle radius in m +8.80868758e+06 9.32656348e+05 -4.18862348e+04 ! x y z +-2.17867324e+02 2.19123384e+03 -1.17898705e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill +5.19573642e+03 !particle radius in m +1.00480766e+07 1.10334466e+05 4.24190753e+04 ! x y z +-1.56774101e+01 2.05584808e+03 1.80904032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill +5.90842447e+03 !particle radius in m +-2.68410660e+06 -8.45093049e+06 -2.25369168e+04 ! x y z +2.08071561e+03 -7.11201230e+02 1.07896227e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill +7.70557245e+03 !particle radius in m +-2.49395661e+06 -1.01785537e+07 4.67622537e+04 ! x y z +1.97783372e+03 -4.46467141e+02 1.43639227e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill +1.14515690e+04 !particle radius in m +-5.37771504e+06 7.44714074e+06 -6.06003060e+03 ! x y z +-1.75372901e+03 -1.25777673e+03 1.33051245e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill +7.93728841e+03 !particle radius in m +1.43736621e+07 3.27074646e+06 -1.17711231e+05 ! x y z +-3.95229369e+02 1.65048180e+03 -2.09427051e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill +9.36932395e+03 !particle radius in m +-8.93375487e+06 -9.23297021e+05 -5.56404103e+04 ! x y z +2.58345498e+02 -2.18331951e+03 -1.86368551e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill +9.07144821e+03 !particle radius in m +-1.28280097e+07 8.91411489e+06 -1.59387089e+04 ! x y z +-9.55988990e+02 -1.37339914e+03 -9.51566283e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill +9.91610503e+03 !particle radius in m +-1.22031914e+07 8.75617467e+06 1.35904643e+05 ! x y z +-1.01713019e+03 -1.34842008e+03 -1.53941683e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill +7.60958719e+03 !particle radius in m +-1.81887078e+05 1.09247030e+07 -4.35726533e+04 ! x y z +-1.97588122e+03 -8.11807516e+00 -3.92064501e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill +4.74157034e+03 !particle radius in m +2.83878155e+06 1.44744864e+07 5.43842125e+04 ! x y z +-1.65421841e+03 3.29251794e+02 -6.23680908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill +8.45889329e+03 !particle radius in m +1.06135506e+07 -4.48083559e+05 1.72504569e+04 ! x y z +9.44982902e+01 2.00633631e+03 9.90801265e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill +1.07608492e+04 !particle radius in m +8.75139394e+06 -2.04107097e+07 -1.06034326e+05 ! x y z +1.29371288e+03 5.52007802e+02 5.05180489e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill +6.96494702e+03 !particle radius in m +1.42098400e+07 1.83559068e+06 -6.61680518e+04 ! x y z +-2.13356829e+02 1.72148688e+03 1.01500659e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill +8.53818219e+03 !particle radius in m +1.55907651e+07 5.91768331e+06 -8.22551540e+04 ! x y z +-5.54998648e+02 1.51448714e+03 -1.24785663e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill +9.64323129e+03 !particle radius in m +7.38866883e+06 1.67469371e+07 -5.52080317e+04 ! x y z +-1.39370270e+03 6.17614086e+02 4.21088917e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill +9.69401392e+03 !particle radius in m +-5.32551208e+06 -7.90474847e+06 -3.86152280e+04 ! x y z +1.76379265e+03 -1.19032254e+03 1.04687204e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill +8.64149686e+03 !particle radius in m +1.09164841e+07 -7.03739746e+06 2.56807871e+04 ! x y z +9.98839941e+02 1.51559226e+03 -2.93169292e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill +1.08320270e+04 !particle radius in m +-6.83243259e+06 -5.66828831e+06 -1.72900877e+04 ! x y z +1.43365173e+03 -1.68974702e+03 2.09850405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill +7.82246015e+03 !particle radius in m +6.82803774e+06 -5.76411607e+06 5.47258325e+04 ! x y z +1.40722674e+03 1.66603602e+03 1.74552894e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill +6.65894479e+03 !particle radius in m +9.35446321e+06 4.27959887e+06 1.44633990e+04 ! x y z +-8.44145057e+02 1.86728709e+03 8.45220846e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill +9.04919131e+03 !particle radius in m +-8.81635825e+06 6.95372208e+06 5.99171831e+04 ! x y z +-1.18658772e+03 -1.54806956e+03 -4.34306118e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill +9.36295974e+03 !particle radius in m +3.76533406e+06 -1.36831259e+07 -4.52559471e+04 ! x y z +1.65006231e+03 5.02310012e+02 -7.82371716e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill +8.43279516e+03 !particle radius in m +8.66363031e+06 -3.01551364e+06 1.87644792e+04 ! x y z +6.94997160e+02 2.04127247e+03 4.50266436e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill +1.26327938e+04 !particle radius in m +-1.81171981e+06 1.18614317e+07 -9.45077050e+04 ! x y z +-1.85854649e+03 -2.65883958e+02 1.03797168e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill +1.27711174e+04 !particle radius in m +-5.75108647e+06 -9.00212328e+06 2.40243267e+04 ! x y z +1.69440892e+03 -1.07016945e+03 -1.54605015e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill +7.77084017e+03 !particle radius in m +1.89490021e+06 8.84022962e+06 2.80656936e+04 ! x y z +-2.12712367e+03 4.54322162e+02 -6.09085901e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill +7.50283352e+03 !particle radius in m +-2.84338801e+06 -8.43577004e+06 -3.58252007e+04 ! x y z +2.07616764e+03 -6.90414631e+02 7.86561001e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill +1.03379039e+04 !particle radius in m +7.23228604e+06 8.21987628e+06 -1.12362711e+05 ! x y z +-1.50075767e+03 1.29503859e+03 -4.22019044e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill +1.21350477e+04 !particle radius in m +9.59011374e+06 -1.47240572e+06 -1.17481033e+04 ! x y z +3.06970553e+02 2.09485379e+03 2.11775305e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill +4.53610253e+03 !particle radius in m +1.68353028e+07 -5.98357187e+06 1.37705248e+04 ! x y z +4.97655007e+02 1.46172367e+03 -1.17361347e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill +9.63170656e+03 !particle radius in m +-1.80713745e+07 3.81143072e+06 1.47991860e+05 ! x y z +-3.34463620e+02 -1.47042095e+03 -2.39441838e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill +1.30247028e+04 !particle radius in m +8.12437675e+06 -7.89692091e+06 8.58861149e+04 ! x y z +1.36700546e+03 1.38057019e+03 -5.74921289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill +5.43842039e+03 !particle radius in m +6.94978876e+06 -5.59183335e+06 2.41251511e+04 ! x y z +1.34132445e+03 1.72532099e+03 1.12041963e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill +6.59671726e+03 !particle radius in m +-1.18687337e+07 -8.19186254e+06 -8.44898067e+04 ! x y z +9.75684146e+02 -1.41995661e+03 -1.13753956e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill +1.23341623e+04 !particle radius in m +-1.89628928e+06 -9.50227023e+06 -4.05755726e+04 ! x y z +2.07857991e+03 -4.30149853e+02 -4.45053647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill +6.80723430e+03 !particle radius in m +1.01428084e+07 1.53976563e+06 -1.56033963e+05 ! x y z +-3.05629291e+02 2.00359721e+03 3.06409701e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill +7.05013076e+03 !particle radius in m +3.99603404e+06 7.86593577e+06 5.11268274e+04 ! x y z +-1.97467205e+03 9.78734350e+02 8.42153677e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill +8.61895511e+03 !particle radius in m +6.54388805e+06 -6.77023287e+06 -4.59748352e+03 ! x y z +1.54444266e+03 1.46455300e+03 -1.04095061e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill +7.06396397e+03 !particle radius in m +6.04468294e+06 8.82617315e+06 -1.42181890e+05 ! x y z +-1.63233809e+03 1.16910466e+03 -1.88213215e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill +9.70947993e+03 !particle radius in m +-1.11170150e+07 6.16749342e+06 -3.82809291e+04 ! x y z +-8.98686306e+02 -1.59525493e+03 2.55769594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill +1.25718686e+04 !particle radius in m +1.25437094e+06 -1.67969561e+07 -1.36312584e+04 ! x y z +1.58470452e+03 1.21111055e+02 3.59330822e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill +8.05778982e+03 !particle radius in m +8.43800086e+06 5.71987949e+06 -3.20922412e+04 ! x y z +-1.14330692e+03 1.67937737e+03 -4.35374922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill +6.21936681e+03 !particle radius in m +-8.36235204e+06 -4.06735446e+06 1.77837069e+04 ! x y z +9.27393629e+02 -1.94041308e+03 2.61389295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill +1.02373037e+04 !particle radius in m +-2.57151201e+06 -1.54968676e+07 -9.11168853e+04 ! x y z +1.63776183e+03 -2.76257315e+02 2.80266971e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill +8.30015495e+03 !particle radius in m +8.66211969e+06 2.20644842e+06 5.69512514e+03 ! x y z +-5.34166852e+02 2.11025355e+03 7.04563819e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill +1.24143522e+04 !particle radius in m +2.50735051e+06 -9.08802531e+06 1.47619891e+03 ! x y z +2.03247718e+03 5.95768658e+02 -1.11711400e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill +1.10252975e+04 !particle radius in m +-5.08664524e+06 8.37497108e+06 -9.90101269e+04 ! x y z +-1.78382195e+03 -1.07772723e+03 -8.86422219e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill +6.11794676e+03 !particle radius in m +-1.16840844e+07 -1.15084512e+07 8.57597825e+04 ! x y z +1.14349612e+03 -1.15014615e+03 -1.13350767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill +9.88813712e+03 !particle radius in m +1.06943121e+06 -9.45008765e+06 3.56309722e+04 ! x y z +2.11041887e+03 2.12664792e+02 3.02388980e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill +1.08983650e+04 !particle radius in m +5.08433832e+06 -9.29067904e+06 4.27842439e+04 ! x y z +1.77269334e+03 9.63287806e+02 7.20636543e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill +1.27437222e+04 !particle radius in m +2.28470278e+06 -8.96024162e+06 4.66696872e+04 ! x y z +2.09182568e+03 5.58957357e+02 -1.60064381e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill +5.15400237e+03 !particle radius in m +5.02334401e+06 7.15122722e+06 -2.56747414e+04 ! x y z +-1.82437670e+03 1.28647622e+03 -2.33583185e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill +7.51992756e+03 !particle radius in m +8.03755250e+06 -5.51691122e+06 -2.97535232e+04 ! x y z +1.18216983e+03 1.74141617e+03 -1.17374833e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill +1.26569454e+04 !particle radius in m +-3.07464536e+06 -8.53282891e+06 -1.60914047e+04 ! x y z +2.04872286e+03 -7.58617715e+02 -1.15594518e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill +6.15739547e+03 !particle radius in m +-5.04841460e+06 7.90245442e+06 -3.74769403e+03 ! x y z +-1.79658551e+03 -1.15333901e+03 -1.03989828e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill +9.40452184e+03 !particle radius in m +-4.42483219e+06 7.92889737e+06 4.84429526e+03 ! x y z +-1.90157556e+03 -1.02851509e+03 3.04297458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill +1.03819185e+04 !particle radius in m +-8.11772737e+06 5.17820457e+06 6.33191218e+04 ! x y z +-1.16398577e+03 -1.76329084e+03 -1.46526563e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill +1.21420799e+04 !particle radius in m +-2.42335217e+06 -1.21748818e+07 5.34958561e+04 ! x y z +1.82657196e+03 -3.58482164e+02 2.17635181e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill +9.74673448e+03 !particle radius in m +-8.93954505e+06 -4.45366726e+06 9.09497729e+03 ! x y z +9.19578118e+02 -1.84128399e+03 1.10716364e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill +7.59675917e+03 !particle radius in m +-1.18899005e+07 -1.11121035e+07 7.33607503e+03 ! x y z +1.10060063e+03 -1.20094721e+03 -1.56817575e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill +8.13412353e+03 !particle radius in m +-1.65295735e+07 6.07637672e+06 3.45373521e+04 ! x y z +-5.42846771e+02 -1.47237923e+03 2.24703732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill +7.24844729e+03 !particle radius in m +8.55996783e+06 -1.26469693e+07 -1.46558216e+05 ! x y z +1.40714271e+03 9.26431770e+02 -1.15490272e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill +1.10917006e+04 !particle radius in m +5.19156391e+06 -2.05131401e+07 3.01682271e+04 ! x y z +1.38483992e+03 3.58833296e+02 7.82967392e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill +8.62523974e+03 !particle radius in m +-1.04637869e+07 -1.51846657e+06 -3.27030757e+04 ! x y z +3.09759590e+02 -1.99538112e+03 5.67233805e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill +4.97611563e+03 !particle radius in m +1.03065892e+07 -6.00329704e+05 -2.32121119e+04 ! x y z +1.34736424e+02 2.02883986e+03 3.23964316e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill +5.60741952e+03 !particle radius in m +-1.14276246e+07 -1.75001038e+06 -9.86471787e+04 ! x y z +2.92929450e+02 -1.89771028e+03 5.40774568e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill +6.34126039e+03 !particle radius in m +1.88192745e+07 7.35750851e+06 -3.59880986e+04 ! x y z +-5.35957066e+02 1.35808817e+03 -5.10111289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill +1.01601058e+04 !particle radius in m +1.11584259e+07 -4.47796771e+06 1.03803467e+04 ! x y z +7.28310338e+02 1.76604469e+03 1.45396412e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill +6.11251206e+03 !particle radius in m +3.38442251e+06 -9.82784424e+06 -1.36230396e+05 ! x y z +1.90939863e+03 7.30865853e+02 1.53565819e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill +5.52931152e+03 !particle radius in m +-1.26252231e+07 -6.33455275e+05 -1.30864139e+05 ! x y z +9.33992929e+01 -1.83668276e+03 1.68626587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill +3.95688360e+03 !particle radius in m +-1.20379515e+07 7.22168436e+05 8.94591753e+04 ! x y z +-1.09103316e+02 -1.88101208e+03 -4.79548889e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill +5.97839539e+03 !particle radius in m +9.86523103e+06 -1.83199282e+06 -1.01434913e+05 ! x y z +3.62371838e+02 2.01111356e+03 -2.79275007e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill +6.83551180e+03 !particle radius in m +-6.51672994e+06 8.58292997e+06 -5.02195539e+04 ! x y z +-1.57720017e+03 -1.21482386e+03 -6.46438464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill +1.06723682e+04 !particle radius in m +-6.45748170e+06 -6.60771754e+06 -2.88111990e+04 ! x y z +1.51807464e+03 -1.53717383e+03 -6.96952587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill +4.01775686e+03 !particle radius in m +-1.05725448e+07 -5.16101098e+06 -7.22185112e+04 ! x y z +8.09611157e+02 -1.71812375e+03 -2.92698073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill +4.77864994e+03 !particle radius in m +1.47903230e+07 -3.70476681e+06 8.67755187e+04 ! x y z +3.95094726e+02 1.62426955e+03 3.16826057e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill +8.07383748e+03 !particle radius in m +-4.36058679e+05 -9.44156206e+06 -4.16955929e+04 ! x y z +2.12091782e+03 -1.37012120e+02 1.39491466e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill +1.18046777e+04 !particle radius in m +-1.46392393e+07 1.63813686e+07 8.12078291e+03 ! x y z +-1.02836410e+03 -9.42723860e+02 -1.38765972e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill +9.27790681e+03 !particle radius in m +9.24634424e+06 -1.31047137e+06 -7.09194003e+04 ! x y z +3.02062155e+02 2.11565604e+03 -9.58265694e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill +1.26875944e+04 !particle radius in m +-7.40684320e+06 6.13173465e+06 -3.12795630e+04 ! x y z +-1.33749169e+03 -1.62866413e+03 1.56290098e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill +9.65761978e+03 !particle radius in m +9.78515626e+06 -5.26138525e+05 -7.59982349e+03 ! x y z +1.11181620e+02 2.08934488e+03 -1.89984631e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill +8.79721090e+03 !particle radius in m +-2.42960077e+06 1.02657010e+07 6.86680195e+04 ! x y z +-1.96613992e+03 -4.70552640e+02 -5.76191698e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill +1.29531974e+04 !particle radius in m +-2.99090493e+06 -9.38394150e+06 1.22754087e+04 ! x y z +1.96346362e+03 -6.64206351e+02 -1.04286573e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill +7.34663539e+03 !particle radius in m +-9.16858859e+06 3.17229706e+06 4.94776739e+02 ! x y z +-6.65048356e+02 -2.00655681e+03 -1.69698250e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill +4.49675212e+03 !particle radius in m +1.02698965e+07 8.30732914e+06 1.14137300e+05 ! x y z +-1.13322876e+03 1.37969911e+03 -4.16855749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill +4.62423780e+03 !particle radius in m +-6.04360154e+06 -8.98719524e+06 -6.31025271e+04 ! x y z +1.63921724e+03 -1.11262949e+03 4.86167037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill +1.03148143e+04 !particle radius in m +-9.35912101e+06 -1.03642068e+07 -2.18384299e+03 ! x y z +1.30072422e+03 -1.17573948e+03 1.88668155e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill +1.30814562e+04 !particle radius in m +1.04675718e+07 3.39520028e+06 2.70864639e+04 ! x y z +-5.97065438e+02 1.88145152e+03 -6.95974089e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill +4.86540530e+03 !particle radius in m +-6.73236505e+06 6.13242839e+06 -2.94703322e+04 ! x y z +-1.45294617e+03 -1.61318512e+03 -5.68499388e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill +7.59556962e+03 !particle radius in m +4.89468690e+06 -1.07083932e+07 7.90151606e+04 ! x y z +1.76528528e+03 7.71676536e+02 -3.89405176e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill +1.12715321e+04 !particle radius in m +-1.37917712e+07 -7.88960798e+06 -6.85787993e+04 ! x y z +8.27177105e+02 -1.42633285e+03 -6.22498397e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill +1.18793884e+04 !particle radius in m +-7.34584547e+06 1.44613839e+07 -9.00207198e+04 ! x y z +-1.43737968e+03 -7.51623709e+02 1.07613671e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill +1.17356962e+04 !particle radius in m +-2.70350276e+05 -9.01638261e+06 4.48528244e+04 ! x y z +2.19935586e+03 -5.92167058e+01 -1.37345562e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill +1.20336065e+04 !particle radius in m +-7.93634451e+06 -1.07127629e+07 7.42071719e+04 ! x y z +1.44011604e+03 -1.07152360e+03 -9.74704513e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill +5.53448930e+03 !particle radius in m +-3.42691664e+06 -9.05425003e+06 -2.11677870e+04 ! x y z +1.93479037e+03 -7.69981245e+02 1.10419971e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill +6.64595045e+03 !particle radius in m +-9.89233738e+06 -6.27568084e+05 6.18194671e+03 ! x y z +1.37071969e+02 -2.08621493e+03 4.72062753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill +5.93131938e+03 !particle radius in m +7.46340614e+06 9.67912332e+06 1.17459472e+04 ! x y z +-1.47885193e+03 1.13911499e+03 4.40806749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill +1.22283672e+04 !particle radius in m +6.85478382e+06 1.15701707e+07 7.95650274e+04 ! x y z +-1.53423752e+03 9.32610677e+02 -3.67365305e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill +4.46580449e+03 !particle radius in m +-4.56370068e+06 1.10908559e+07 1.08265365e+04 ! x y z +-1.75802463e+03 -7.02357275e+02 1.04220113e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill +5.09070290e+03 !particle radius in m +-1.13385925e+07 2.97597054e+06 -4.72391617e+04 ! x y z +-5.04596574e+02 -1.84477964e+03 1.31785708e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill +1.10285723e+04 !particle radius in m +-9.23261955e+06 -2.89252814e+05 -5.44687237e+04 ! x y z +6.51671796e+01 -2.14992673e+03 -1.81624856e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill +6.13224460e+03 !particle radius in m +1.09075289e+06 1.05119561e+07 -3.25858255e+04 ! x y z +-1.99773044e+03 1.99785681e+02 4.03938771e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill +5.39522124e+03 !particle radius in m +5.52516207e+06 8.11277010e+06 -1.90841913e+04 ! x y z +-1.72426706e+03 1.18446430e+03 1.21936026e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill +9.52144317e+03 !particle radius in m +-4.65951061e+05 1.02295404e+07 5.94558150e+04 ! x y z +-2.05121750e+03 -9.71822097e+01 -1.16001667e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill +1.28507675e+04 !particle radius in m +1.19722664e+07 -1.64049398e+06 8.58821045e+04 ! x y z +2.34549789e+02 1.85980680e+03 1.09499792e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill +6.87517236e+03 !particle radius in m +-1.08162591e+06 1.14927584e+07 -9.76059282e+04 ! x y z +-1.93051044e+03 -1.62077695e+02 -7.14665732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill +1.14550311e+04 !particle radius in m +-1.95233176e+06 1.02927697e+07 -2.00724108e+04 ! x y z +-1.97843014e+03 -3.85350221e+02 1.08497627e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill +1.02022521e+04 !particle radius in m +6.15222182e+06 -9.75312655e+06 1.28837233e+04 ! x y z +1.61895964e+03 1.04728187e+03 -1.26702028e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill +3.81889352e+03 !particle radius in m +1.70431842e+07 -2.72492428e+06 -3.86028806e+04 ! x y z +2.83672553e+02 1.54910187e+03 2.07904021e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill +6.24153051e+03 !particle radius in m +8.01774299e+06 8.09902023e+06 -2.62747132e+04 ! x y z +-1.35353621e+03 1.36013542e+03 7.64569924e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill +9.14684621e+03 !particle radius in m +3.29923819e+06 8.68923966e+06 -8.36350791e+03 ! x y z +-2.01828563e+03 7.65043187e+02 -1.46373885e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill +1.21866490e+04 !particle radius in m +9.48630114e+06 1.31203942e+07 7.51325437e+04 ! x y z +-1.33995755e+03 9.53539277e+02 6.46323587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill +5.43931264e+03 !particle radius in m +9.01020062e+06 -9.02772630e+05 1.38704984e+04 ! x y z +2.41367313e+02 2.16126190e+03 7.68455544e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill +1.23597622e+04 !particle radius in m +-8.09665807e+06 -7.58547860e+06 3.14674691e+04 ! x y z +1.35669172e+03 -1.43426598e+03 7.37210686e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill +6.63452075e+03 !particle radius in m +4.28160432e+06 -1.65281080e+07 -8.26509117e+03 ! x y z +1.53190957e+03 3.88184614e+02 1.24754943e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill +8.88282855e+03 !particle radius in m +6.49256441e+05 9.31973535e+06 4.08167273e+04 ! x y z +-2.15470427e+03 1.51716056e+02 1.89189290e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill +1.19572707e+04 !particle radius in m +-9.20065102e+05 -9.43874908e+06 -2.04752392e+04 ! x y z +2.12475295e+03 -2.35100552e+02 7.76090899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill +4.99450465e+03 !particle radius in m +4.31072822e+06 9.13284291e+06 4.14102022e+04 ! x y z +-1.85476950e+03 9.03328979e+02 -1.46829604e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill +4.68119614e+03 !particle radius in m +-6.79093976e+06 8.03119054e+06 -7.05744289e+04 ! x y z +-1.52734163e+03 -1.29554248e+03 1.30181520e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill +1.02582029e+04 !particle radius in m +-1.04804105e+07 -1.20577935e+06 3.31638534e+04 ! x y z +2.13664871e+02 -2.01046058e+03 -7.98031732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill +1.10767611e+04 !particle radius in m +-7.18067628e+06 -6.29465669e+06 -5.18935266e+04 ! x y z +1.39765048e+03 -1.60192161e+03 7.92302858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill +1.22495029e+04 !particle radius in m +-8.66772744e+06 -7.93918786e+06 3.66255031e+04 ! x y z +1.28753321e+03 -1.40570993e+03 1.04442422e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill +5.77278675e+03 !particle radius in m +-4.13157626e+06 -2.06445199e+07 1.15039089e+05 ! x y z +1.39928757e+03 -2.67584358e+02 -6.80453610e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill +1.24869874e+04 !particle radius in m +2.86527664e+04 -1.30135384e+07 9.46703562e+04 ! x y z +1.82137923e+03 3.52269823e+01 6.17347097e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill +8.27206772e+03 !particle radius in m +9.61204633e+06 2.11550317e+06 -1.01612254e+05 ! x y z +-4.54369173e+02 2.03897871e+03 -3.85711771e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill +4.77668965e+03 !particle radius in m +8.56305753e+06 3.83573915e+06 2.26223304e+04 ! x y z +-8.87660780e+02 1.95010957e+03 -6.47697797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill +7.71689197e+03 !particle radius in m +7.06863637e+05 1.69810271e+07 1.26105980e+05 ! x y z +-1.58048060e+03 4.41879800e+01 4.04119984e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill +5.87643861e+03 !particle radius in m +-5.44027365e+06 8.90923003e+06 -1.91872642e+02 ! x y z +-1.72578284e+03 -1.05328021e+03 2.75794079e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill +7.82919405e+03 !particle radius in m +-3.84222450e+06 8.52500722e+06 5.13399679e+04 ! x y z +-1.95749070e+03 -8.88579162e+02 4.05131851e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill +6.45958637e+03 !particle radius in m +-1.04764717e+07 1.11206338e+07 -1.83995722e+05 ! x y z +-1.21578555e+03 -1.15954535e+03 1.26396174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill +1.04808440e+04 !particle radius in m +9.91080561e+06 7.33219213e+06 -1.96182672e+04 ! x y z +-1.10289136e+03 1.51166868e+03 8.55255590e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill +4.63255599e+03 !particle radius in m +-6.34641421e+06 1.11675051e+07 -1.12534756e+05 ! x y z +-1.58363204e+03 -9.07829510e+02 -3.73545248e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill +8.31806943e+03 !particle radius in m +-9.60844812e+06 -1.70444496e+07 1.09767306e+04 ! x y z +1.30061497e+03 -7.22601223e+02 5.04626944e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill +6.70205230e+03 !particle radius in m +3.30176954e+06 8.21216858e+06 2.33957768e+04 ! x y z +-2.06647672e+03 8.14303416e+02 -3.27813568e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill +6.98637011e+03 !particle radius in m +-3.56455427e+06 1.04513814e+07 9.13561134e+04 ! x y z +-1.86227880e+03 -6.46156347e+02 -1.84370397e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill +1.22955075e+04 !particle radius in m +1.01719252e+07 6.26688339e+05 3.49609062e+04 ! x y z +-1.13334526e+02 2.03525342e+03 3.73100714e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill +1.15884099e+04 !particle radius in m +6.79475129e+06 -6.15725925e+06 -4.34005132e+04 ! x y z +1.43607392e+03 1.60794893e+03 9.89854216e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill +1.13200016e+04 !particle radius in m +3.31203426e+06 1.26977181e+07 1.61925621e+04 ! x y z +-1.75290457e+03 4.51047834e+02 -6.90112778e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill +4.85825960e+03 !particle radius in m +-5.28465980e+06 9.08656562e+06 5.60870045e+04 ! x y z +-1.73422854e+03 -1.05901334e+03 1.51078632e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill +1.03155828e+04 !particle radius in m +-4.41381530e+06 -1.31465095e+07 1.23851466e+05 ! x y z +1.64911245e+03 -5.92288633e+02 -5.00592030e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill +4.71217038e+03 !particle radius in m +1.58308263e+07 -4.73628624e+05 -2.19545030e+04 ! x y z +5.84709400e+01 1.64641342e+03 -6.62703110e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill +1.19920145e+04 !particle radius in m +9.12968341e+06 9.11733516e+04 1.78969232e+04 ! x y z +-5.65016782e+01 2.18069451e+03 -3.98571279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill +9.93248268e+03 !particle radius in m +8.78149411e+06 -3.19216182e+06 -1.60141388e+04 ! x y z +7.37216338e+02 1.99835772e+03 -1.41820401e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill +4.85898712e+03 !particle radius in m +1.29860619e+07 -8.19871711e+06 9.27457802e+04 ! x y z +8.67118976e+02 1.40272209e+03 6.07478118e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill +8.57284899e+03 !particle radius in m +6.74596853e+06 7.83340922e+06 1.66421965e+04 ! x y z +-1.53458492e+03 1.36487940e+03 -3.08963768e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill +1.02996416e+04 !particle radius in m +9.97004957e+06 -4.03326891e+06 1.22229820e+04 ! x y z +7.36970819e+02 1.85756062e+03 1.86046036e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill +1.07775819e+04 !particle radius in m +1.48289776e+07 -3.18422896e+06 -1.95106854e+04 ! x y z +3.65562411e+02 1.64235740e+03 -1.78622262e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill +7.78250193e+03 !particle radius in m +-1.82004676e+07 -4.58264120e+06 -8.80114368e+04 ! x y z +3.67043849e+02 -1.45746561e+03 3.81482960e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill +7.70585221e+03 !particle radius in m +9.71830285e+06 -2.79239080e+06 -1.21765919e+05 ! x y z +5.86439180e+02 1.97016309e+03 1.41983570e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill +9.21105533e+03 !particle radius in m +-6.87422066e+06 -1.61812284e+07 3.33849657e+04 ! x y z +1.44453834e+03 -6.12213456e+02 5.14798988e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill +7.91069782e+03 !particle radius in m +-4.40453318e+05 -9.00359396e+06 2.55701381e+04 ! x y z +2.18504558e+03 -1.66090270e+02 -5.38264979e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill +7.17158897e+03 !particle radius in m +2.19604188e+07 6.04779191e+06 -2.54791200e+04 ! x y z +-3.65663685e+02 1.33014017e+03 -8.36197344e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill +8.95226931e+03 !particle radius in m +6.76787299e+06 -6.88896584e+06 -7.92738002e+04 ! x y z +1.51846448e+03 1.48693289e+03 -8.03074046e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill +4.42181219e+03 !particle radius in m +-6.18157795e+06 9.50909765e+06 -6.31347661e+04 ! x y z +-1.61918243e+03 -1.05906497e+03 6.51625165e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill +7.65074804e+03 !particle radius in m +1.22370591e+07 -7.52313059e+06 -3.37590788e+04 ! x y z +9.11513184e+02 1.46224236e+03 1.38515615e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill +1.21795436e+04 !particle radius in m +7.05236290e+06 -8.64870991e+06 -6.91330978e+04 ! x y z +1.52616946e+03 1.23310907e+03 1.29403411e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill +8.43083433e+03 !particle radius in m +7.80864005e+06 -4.26482545e+06 -2.18013868e+04 ! x y z +1.03496940e+03 1.94204946e+03 1.21677642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill +7.82381744e+03 !particle radius in m +5.75136921e+06 -6.66165297e+06 -1.60013139e+04 ! x y z +1.66229394e+03 1.46936203e+03 -7.73684722e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill +6.87941995e+03 !particle radius in m +-1.22562478e+06 9.13823949e+06 -4.37327451e+04 ! x y z +-2.12169150e+03 -2.88517939e+02 -1.49392473e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill +1.30453064e+04 !particle radius in m +7.69914612e+06 -9.13021219e+06 -4.57648993e+04 ! x y z +1.43992781e+03 1.22291153e+03 -3.96856343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill +5.45572052e+03 !particle radius in m +-1.04553344e+07 2.52527420e+06 -1.08628658e+05 ! x y z +-4.86679714e+02 -1.92107394e+03 9.45357951e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill +9.00870821e+03 !particle radius in m +1.39140966e+07 -6.41849608e+05 1.71228409e+05 ! x y z +6.24928406e+01 1.73760043e+03 1.32646652e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill +9.61198288e+03 !particle radius in m +-4.68891691e+06 -8.65727522e+06 1.38785454e+05 ! x y z +1.83563800e+03 -9.88706825e+02 -2.51608816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill +1.30631485e+04 !particle radius in m +2.13007974e+05 9.18824852e+06 -3.80121317e+04 ! x y z +-2.12834457e+03 7.70592587e+01 -1.61308426e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill +5.90853066e+03 !particle radius in m +-1.00652683e+07 -2.07792286e+06 6.26672177e+04 ! x y z +4.27478087e+02 -2.00526834e+03 1.11714666e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill +9.50477579e+03 !particle radius in m +-9.25272310e+06 4.61553055e+05 2.28064653e+03 ! x y z +-1.21224875e+02 -2.16490532e+03 1.16467209e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill +4.31241077e+03 !particle radius in m +5.99768112e+06 7.18836176e+06 1.30862988e+04 ! x y z +-1.63913963e+03 1.36776567e+03 -1.13032580e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill +4.53858074e+03 !particle radius in m +2.69549465e+06 -2.13775506e+07 -2.70977944e+04 ! x y z +1.39480467e+03 1.95781010e+02 -1.22454588e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill +4.43620698e+03 !particle radius in m +-3.14237843e+06 -9.60218811e+06 -6.89227352e+04 ! x y z +1.95665546e+03 -6.62178945e+02 -9.36372693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill +5.44928691e+03 !particle radius in m +3.78692528e+06 8.59540985e+06 -3.20061356e+04 ! x y z +-1.96752618e+03 8.51121277e+02 -1.51485463e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill +4.33163678e+03 !particle radius in m +-9.00146283e+06 -6.41911956e+06 6.65091457e+04 ! x y z +1.12404780e+03 -1.59135698e+03 -9.77302741e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill +4.59668490e+03 !particle radius in m +8.54824866e+06 -3.66634423e+06 -4.89483929e+04 ! x y z +8.47956516e+02 1.98291118e+03 3.60869553e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill +1.27155989e+04 !particle radius in m +1.95697614e+07 6.28199416e+06 9.65119660e+04 ! x y z +-4.43211708e+02 1.34690163e+03 -9.62234736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill +3.84628408e+03 !particle radius in m +-1.58193926e+07 -1.35536390e+07 8.45439846e+04 ! x y z +9.33923428e+02 -1.08590633e+03 1.18308309e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill +1.22978804e+04 !particle radius in m +1.57128973e+07 -6.39323202e+05 1.78188715e+04 ! x y z +6.88318620e+01 1.65105864e+03 3.96550811e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill +7.42478017e+03 !particle radius in m +4.15871481e+06 9.23348984e+06 -2.00218047e+04 ! x y z +-1.86711988e+03 8.27796037e+02 -1.71003540e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill +8.20734629e+03 !particle radius in m +1.01202151e+06 -9.34669057e+06 -3.05255233e+04 ! x y z +2.12896558e+03 2.37084406e+02 2.06490854e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill +1.30090572e+04 !particle radius in m +-1.21933337e+07 -1.85215644e+04 -9.08532291e+04 ! x y z +3.99379627e+00 -1.85775511e+03 -5.11110124e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill +1.19406098e+04 !particle radius in m +-3.43283359e+06 -8.55413032e+06 1.39837760e+04 ! x y z +2.01077915e+03 -7.56017909e+02 1.02863591e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill +1.18773237e+04 !particle radius in m +-1.54011563e+06 -1.27126780e+07 7.48528448e+04 ! x y z +1.83173381e+03 -2.00582211e+02 -5.46653115e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill +6.87480407e+03 !particle radius in m +1.51139781e+07 1.12076930e+06 -2.10697882e+04 ! x y z +-1.50737141e+02 1.67679110e+03 1.30972258e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill +7.91455193e+03 !particle radius in m +4.75991835e+06 1.10017280e+07 2.88714064e+04 ! x y z +-1.75624695e+03 7.27843788e+02 7.23217325e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill +4.72944737e+03 !particle radius in m +-7.70162983e+06 -4.41409406e+06 2.58165729e+04 ! x y z +1.05981797e+03 -1.92161597e+03 -1.53504172e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill +7.84581210e+03 !particle radius in m +8.79063205e+06 8.04366554e+06 -1.54947665e+04 ! x y z +-1.27701177e+03 1.39840130e+03 -2.40220571e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill +6.12239510e+03 !particle radius in m +8.04074117e+06 9.64104753e+06 -4.45617960e+04 ! x y z +-1.39128132e+03 1.17398843e+03 -6.62327287e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill +7.10064233e+03 !particle radius in m +-6.66261606e+06 6.71220967e+06 -3.99553759e+04 ! x y z +-1.50278601e+03 -1.49037570e+03 1.28507761e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill +5.53673908e+03 !particle radius in m +7.85675354e+06 -1.09086703e+07 6.52437187e+03 ! x y z +1.47253647e+03 1.04716710e+03 -2.78745894e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill +7.61773407e+03 !particle radius in m +1.20372202e+06 -1.12995198e+07 -7.66376724e+04 ! x y z +1.92159252e+03 2.10022167e+02 1.77035004e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill +6.31351866e+03 !particle radius in m +1.34520987e+06 -1.14199869e+07 -1.06162090e+05 ! x y z +1.91854210e+03 2.27440517e+02 -2.86612981e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill +4.47493492e+03 !particle radius in m +-7.81637690e+06 6.77408689e+06 -7.41358369e+04 ! x y z +-1.33330305e+03 -1.52276964e+03 -6.38372634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill +1.28727553e+04 !particle radius in m +-9.27394458e+06 2.25024078e+06 5.28422677e+04 ! x y z +-5.05715454e+02 -2.06066723e+03 1.34558284e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill +3.80089688e+03 !particle radius in m +7.39246396e+06 7.02828616e+06 -5.45617263e+04 ! x y z +-1.39190312e+03 1.48134140e+03 -3.43671966e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill +7.97343121e+03 !particle radius in m +1.36549158e+07 -1.27792544e+07 5.75773322e+03 ! x y z +1.01857297e+03 1.11983894e+03 2.42317366e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill +6.07807803e+03 !particle radius in m +8.51250762e+06 3.74715124e+06 -3.66793926e+04 ! x y z +-9.06822201e+02 1.95546956e+03 -1.35124063e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill +7.54934486e+03 !particle radius in m +1.11622021e+07 6.11280266e+06 1.12048087e+05 ! x y z +-8.90669182e+02 1.59847160e+03 8.83220737e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill +8.11442267e+03 !particle radius in m +-3.59837711e+06 8.94095859e+06 9.64175823e+04 ! x y z +-1.96856779e+03 -7.62947641e+02 3.79489804e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill +9.83267321e+03 !particle radius in m +1.29422873e+06 -9.18423777e+06 1.13052561e+04 ! x y z +2.13217255e+03 3.09173468e+02 -6.46064530e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill +1.00567087e+04 !particle radius in m +7.55024995e+06 5.55902389e+06 2.47186332e+04 ! x y z +-1.28842830e+03 1.68728817e+03 -8.10804757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill +9.21408381e+03 !particle radius in m +1.88151667e+07 3.33001002e+06 3.73324839e+04 ! x y z +-2.30107887e+02 1.46487898e+03 2.65739699e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill +1.11735897e+04 !particle radius in m +5.44170973e+06 -7.58711950e+06 -1.68342575e+04 ! x y z +1.71954001e+03 1.27240084e+03 9.88806581e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill +1.06695963e+04 !particle radius in m +-8.65530733e+06 -7.08569033e+06 -2.23265845e+04 ! x y z +1.25758504e+03 -1.50248441e+03 -3.62008173e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill +1.19525480e+04 !particle radius in m +-5.77529746e+06 -7.17376952e+06 -5.18219866e+04 ! x y z +1.69375434e+03 -1.34010802e+03 -1.50223596e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill +6.04226309e+03 !particle radius in m +-1.06219205e+07 -3.45583164e+06 7.57878163e+04 ! x y z +6.00669506e+02 -1.87043192e+03 1.96458906e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill +6.87550328e+03 !particle radius in m +6.08800715e+06 7.31025693e+06 2.11892900e+04 ! x y z +-1.62733880e+03 1.34749417e+03 4.48661776e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill +6.87815602e+03 !particle radius in m +1.11973713e+07 -6.89047737e+06 8.77501535e+04 ! x y z +9.27451132e+02 1.53222806e+03 7.89688850e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill +4.09618861e+03 !particle radius in m +-7.43211722e+06 -5.81999467e+06 -9.65323707e+03 ! x y z +1.33310134e+03 -1.66490648e+03 -3.67453264e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill +1.07852562e+04 !particle radius in m +-1.08902550e+07 -5.66422797e+06 1.03662075e+04 ! x y z +8.63087680e+02 -1.66058015e+03 -2.16763143e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill +8.90430770e+03 !particle radius in m +5.12124924e+06 1.04057141e+07 -2.37917852e+04 ! x y z +-1.74067826e+03 8.20317248e+02 -1.61468664e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill +6.04914386e+03 !particle radius in m +-1.68906115e+06 -1.36100786e+07 1.12141407e+05 ! x y z +1.74322371e+03 -2.27430898e+02 1.33662045e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill +8.10517587e+03 !particle radius in m +1.55662567e+07 4.00286637e+06 -1.79247131e+05 ! x y z +-4.13259864e+02 1.59216194e+03 8.36151351e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill +1.03417203e+04 !particle radius in m +-1.88242941e+07 1.06236844e+07 -6.10248603e+04 ! x y z +-7.07744890e+02 -1.22126213e+03 4.18101860e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill +1.03781744e+04 !particle radius in m +6.54563477e+06 9.67513797e+06 -6.81578535e+04 ! x y z +-1.58341801e+03 1.07058771e+03 -6.04814628e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill +8.82174250e+03 !particle radius in m +1.04054207e+07 -4.16069278e+06 2.73610807e+04 ! x y z +7.03766909e+02 1.81842161e+03 8.81427302e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill +4.98765792e+03 !particle radius in m +3.08072328e+06 -1.16153087e+07 4.07709281e+04 ! x y z +1.83456791e+03 4.73999302e+02 7.43116200e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill +5.46929730e+03 !particle radius in m +6.34509950e+06 -8.39632633e+06 3.00680333e+04 ! x y z +1.60571507e+03 1.18326876e+03 -2.08403941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill +5.04330099e+03 !particle radius in m +1.11214656e+07 1.24533693e+06 -1.06574136e+05 ! x y z +-2.16829963e+02 1.93905765e+03 1.21579926e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill +1.13066823e+04 !particle radius in m +-8.88143306e+06 -3.59836181e+06 5.33136699e+04 ! x y z +8.14785566e+02 -1.96550951e+03 6.43084310e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill +7.00888103e+03 !particle radius in m +-8.26948189e+06 -7.55777650e+06 1.90589282e+04 ! x y z +1.31251337e+03 -1.45641325e+03 -2.75253497e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill +3.99006780e+03 !particle radius in m +-8.76369433e+06 5.12820302e+06 4.83723083e+04 ! x y z +-1.02986001e+03 -1.78262989e+03 -1.16887378e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill +1.07181325e+04 !particle radius in m +8.77351236e+06 5.86805867e+06 7.03132721e+04 ! x y z +-1.14557695e+03 1.66192575e+03 2.25245099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill +6.45209798e+03 !particle radius in m +2.81170524e+06 9.19584888e+06 4.45600518e+04 ! x y z +-2.01744512e+03 6.24046260e+02 -9.89046691e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill +6.24242232e+03 !particle radius in m +-9.87293199e+06 -1.42461669e+06 -2.08948330e+04 ! x y z +2.77302880e+02 -2.05434640e+03 1.23835967e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill +1.13006727e+04 !particle radius in m +-3.58991165e+06 -1.30771532e+07 4.60336444e+04 ! x y z +1.69912089e+03 -4.85176809e+02 -8.42271300e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill +1.08072599e+04 !particle radius in m +-9.30543267e+06 -1.69593678e+06 7.96573126e+04 ! x y z +3.79186148e+02 -2.10571304e+03 -2.17512876e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill +6.19269515e+03 !particle radius in m +-3.38260922e+06 8.95675600e+06 -9.15710109e+04 ! x y z +-1.98063128e+03 -7.58924908e+02 1.62762983e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill +7.59089850e+03 !particle radius in m +9.06470291e+06 3.39698455e+06 -1.93072359e+04 ! x y z +-7.42646003e+02 1.96423004e+03 3.04319746e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill +7.10464881e+03 !particle radius in m +-8.28344816e+06 -4.56542130e+06 -3.98741155e+04 ! x y z +9.81538136e+02 -1.88759078e+03 8.61570104e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill +8.45143607e+03 !particle radius in m +9.83373151e+06 4.43940145e+06 2.01558777e+04 ! x y z +-8.55397447e+02 1.79285028e+03 -1.01803709e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill +1.26098721e+04 !particle radius in m +6.20736435e+06 7.70565657e+06 2.01353242e+04 ! x y z +-1.62930967e+03 1.30802298e+03 1.80300563e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill +9.28294621e+03 !particle radius in m +-1.21242621e+07 -1.29944427e+07 9.45840193e+03 ! x y z +1.14488121e+03 -1.06447129e+03 8.51817054e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill +1.05091333e+04 !particle radius in m +-9.34416446e+04 9.14288304e+06 8.29702341e+03 ! x y z +-2.15581546e+03 -1.85313701e+01 1.24100830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill +1.14602223e+04 !particle radius in m +-8.56201175e+06 -4.77007031e+06 6.27239711e+04 ! x y z +1.04809893e+03 -1.81527422e+03 -2.35300971e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill +8.74246630e+03 !particle radius in m +9.33774261e+06 -3.80575834e+06 3.61612768e+04 ! x y z +7.89084549e+02 1.90660726e+03 1.55750455e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill +9.51991482e+03 !particle radius in m +1.44814086e+05 -9.02785011e+06 -7.62099316e+03 ! x y z +2.17482769e+03 2.31217788e+01 4.51562127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill +4.21772425e+03 !particle radius in m +2.68337698e+06 1.12799171e+07 -1.92110080e+04 ! x y z +-1.86815076e+03 4.16102947e+02 -8.29271140e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill +1.07390093e+04 !particle radius in m +-8.56711815e+06 -3.15713404e+06 3.97972006e+03 ! x y z +7.43604689e+02 -2.02339459e+03 6.66994916e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill +7.77378347e+03 !particle radius in m +2.18747509e+06 8.65395918e+06 -2.06536040e+04 ! x y z +-2.15725804e+03 5.30856591e+02 2.37348618e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill +1.11701303e+04 !particle radius in m +7.66628600e+06 -1.17727557e+07 -1.47420679e+04 ! x y z +1.47098208e+03 9.52353449e+02 1.59639874e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill +1.11391918e+04 !particle radius in m +1.04264792e+07 -2.74372425e+06 3.12865429e+04 ! x y z +5.41650708e+02 1.91683777e+03 -8.25764712e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill +8.61034631e+03 !particle radius in m +-3.55923980e+06 -8.64968069e+06 1.79106442e+03 ! x y z +1.99649530e+03 -7.67245271e+02 -5.93442801e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill +8.34427553e+03 !particle radius in m +9.42893053e+06 2.45878278e+05 -4.57214896e+04 ! x y z +-6.01176022e+01 2.13776727e+03 1.81291767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill +5.41136566e+03 !particle radius in m +9.07031967e+06 -2.25767487e+06 5.83955838e+03 ! x y z +5.13475058e+02 2.05838222e+03 2.17889632e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill +5.96520618e+03 !particle radius in m +-7.87040592e+06 9.69728016e+06 -1.66849672e+03 ! x y z +-1.42992939e+03 -1.17418658e+03 -3.60129869e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill +6.04352860e+03 !particle radius in m +1.32660339e+07 5.77686809e+06 1.35800303e+05 ! x y z +-6.62231218e+02 1.59103506e+03 -3.43945323e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill +9.11948377e+03 !particle radius in m +-1.01101796e+07 -4.73633978e+06 1.92223885e+04 ! x y z +8.16987783e+02 -1.78318056e+03 8.86814927e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill +7.17970170e+03 !particle radius in m +-1.00157479e+07 1.12142854e+07 -2.29871580e+04 ! x y z +-1.26146743e+03 -1.12281660e+03 -9.84657732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill +1.27922430e+04 !particle radius in m +-8.01070020e+06 -7.68441073e+06 -7.44586443e+03 ! x y z +1.37227167e+03 -1.42837223e+03 -3.04293724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill +6.59903940e+03 !particle radius in m +5.94423414e+06 -6.60015867e+06 3.79489917e+04 ! x y z +1.64871713e+03 1.48917509e+03 4.06312752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill +1.26263329e+04 !particle radius in m +-3.52967631e+06 8.16512241e+06 -2.51085986e+04 ! x y z +-2.00672046e+03 -8.99089812e+02 1.47195859e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill +5.15573627e+03 !particle radius in m +8.67857522e+06 6.03654833e+06 6.58011140e+03 ! x y z +-1.13872966e+03 1.66817442e+03 2.18662162e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill +9.80349206e+03 !particle radius in m +-4.55569332e+06 1.00472663e+07 8.70354064e+03 ! x y z +-1.80149559e+03 -7.99810234e+02 3.42249675e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill +9.92677698e+03 !particle radius in m +9.14438839e+06 8.39253082e+06 -8.86556588e+04 ! x y z +-1.26689180e+03 1.34538142e+03 -8.40350285e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill +6.84228595e+03 !particle radius in m +7.97751328e+06 8.67584783e+06 5.30436727e+04 ! x y z +-1.38366127e+03 1.29303381e+03 -8.41467876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill +7.72425527e+03 !particle radius in m +-5.79048975e+06 6.93664576e+06 1.29124985e+04 ! x y z +-1.68001209e+03 -1.40612278e+03 -3.61171376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill +1.26029852e+04 !particle radius in m +-5.16609529e+06 9.03539760e+06 5.58960613e+04 ! x y z +-1.76517041e+03 -1.00560177e+03 -5.00965832e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill +6.09788969e+03 !particle radius in m +1.46424048e+07 -1.15689038e+07 3.27414078e+04 ! x y z +9.47675088e+02 1.20085208e+03 1.06976469e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill +6.73063203e+03 !particle radius in m +1.01236173e+07 1.45579667e+06 5.15839678e+04 ! x y z +-2.87224826e+02 2.02832432e+03 -4.14184381e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill +3.85889430e+03 !particle radius in m +7.23258453e+06 4.97813060e+06 -4.38592192e+03 ! x y z +-1.24479041e+03 1.83714641e+03 -1.95822638e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill +4.23020736e+03 !particle radius in m +8.93601994e+06 -6.94569357e+05 -6.12210199e+02 ! x y z +2.19917996e+02 2.16082384e+03 -1.54527155e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill +1.29822323e+04 !particle radius in m +8.82738308e+06 -7.76404080e+06 8.11338370e+04 ! x y z +1.26378234e+03 1.44510358e+03 2.18294651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill +8.40166656e+03 !particle radius in m +-1.07812933e+07 -9.62734933e+06 -5.03390757e+03 ! x y z +1.12256505e+03 -1.29339213e+03 -5.66212341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill +8.02864474e+03 !particle radius in m +-6.42251747e+06 -6.74488620e+06 7.04602772e+04 ! x y z +1.54144883e+03 -1.48324937e+03 1.60342159e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill +6.62929998e+03 !particle radius in m +9.47929213e+06 -2.19579661e+06 -3.25100566e+04 ! x y z +4.68213030e+02 2.04336200e+03 2.65890903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill +1.16296336e+04 !particle radius in m +-1.05077611e+07 -1.31085244e+06 7.30464724e+04 ! x y z +2.82650675e+02 -1.98548135e+03 -1.05658937e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill +4.30356095e+03 !particle radius in m +-9.66162364e+06 4.23926500e+05 -1.22905037e+04 ! x y z +-9.71624638e+01 -2.08984070e+03 2.75014649e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill +8.17962300e+03 !particle radius in m +9.30519559e+06 1.02777991e+07 -1.35151955e+04 ! x y z +-1.30832060e+03 1.17931837e+03 4.96678180e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill +8.60393924e+03 !particle radius in m +-5.38712062e+06 -9.43582755e+06 -1.42962613e+04 ! x y z +1.72402431e+03 -9.72573668e+02 -5.35637349e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill +3.77403501e+03 !particle radius in m +-7.15437615e+06 -1.57030040e+07 1.86249551e+05 ! x y z +1.42003546e+03 -6.56667148e+02 -3.41426138e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill +6.75023558e+03 !particle radius in m +5.41844043e+06 -7.25472299e+06 -9.37968266e+03 ! x y z +1.74397758e+03 1.29517496e+03 1.90126636e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill +1.22359443e+04 !particle radius in m +1.22229448e+07 -6.93664382e+06 -3.73566212e+04 ! x y z +8.86957021e+02 1.49812000e+03 2.93544144e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill +5.69849680e+03 !particle radius in m +4.97534313e+05 1.12973925e+07 -2.47714549e+04 ! x y z +-1.93747095e+03 6.82256092e+01 4.50885373e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill +6.63911222e+03 !particle radius in m +6.27007593e+06 1.03894624e+07 -7.16417007e+03 ! x y z +-1.60760769e+03 9.75456582e+02 -4.84946763e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill +1.05008774e+04 !particle radius in m +4.20395564e+06 7.76433301e+06 8.41688618e+04 ! x y z +-1.94265714e+03 1.06320178e+03 6.22424610e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill +4.41111088e+03 !particle radius in m +6.37276437e+06 -6.42184183e+06 6.41580563e+04 ! x y z +1.58319090e+03 1.53287002e+03 -1.33788595e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill +1.28209983e+04 !particle radius in m +-7.71353791e+06 4.23425293e+06 1.25697535e+04 ! x y z +-1.04844519e+03 -1.95403749e+03 -9.90990915e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill +3.90104672e+03 !particle radius in m +-7.40633695e+06 5.93955618e+06 -5.19978226e+04 ! x y z +-1.31908110e+03 -1.66222684e+03 -1.03799917e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill +1.24306993e+04 !particle radius in m +1.85739893e+06 -1.16268582e+07 -8.21342836e+03 ! x y z +1.89473415e+03 2.92048965e+02 -8.56627398e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill +8.83648205e+03 !particle radius in m +3.72582096e+06 7.91120697e+06 -5.23905881e+04 ! x y z +-2.02715857e+03 9.13111080e+02 2.50053811e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill +1.08564549e+04 !particle radius in m +5.09385670e+05 -1.04637690e+07 -6.20563116e+04 ! x y z +2.02501696e+03 7.65309669e+01 -1.01351101e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill +6.66176154e+03 !particle radius in m +-3.29144876e+06 8.15112104e+06 8.11267893e+04 ! x y z +-2.05815351e+03 -8.34364146e+02 -5.14984629e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill +5.47716901e+03 !particle radius in m +-1.05633758e+07 -2.07935484e+06 1.56201239e+04 ! x y z +3.80416672e+02 -1.96300156e+03 -6.47463330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill +3.82196266e+03 !particle radius in m +-8.96632975e+06 -4.86195335e+05 -1.06964367e+05 ! x y z +1.34820268e+02 -2.22107483e+03 1.19634049e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill +9.16335366e+03 !particle radius in m +-7.48232762e+06 4.92380808e+06 2.29127905e+04 ! x y z +-1.22302901e+03 -1.81943768e+03 2.38496332e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill +1.30705504e+04 !particle radius in m +-5.03707716e+05 -9.29849125e+06 -1.11404007e+04 ! x y z +2.13355604e+03 -1.25957885e+02 3.59182325e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill +3.74836657e+03 !particle radius in m +2.17225066e+07 1.26121705e+06 -8.44855246e+04 ! x y z +-9.80183609e+01 1.39255713e+03 -2.45394775e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill +7.17226488e+03 !particle radius in m +-3.31559823e+06 1.24035988e+07 -2.07947532e+04 ! x y z +-1.76007958e+03 -4.72548604e+02 9.49057096e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill +9.59062845e+03 !particle radius in m +1.21445680e+07 2.59228119e+06 -3.02162959e+04 ! x y z +-3.98075492e+02 1.82853529e+03 6.91989022e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill +7.61080504e+03 !particle radius in m +-1.13326598e+06 -1.29825734e+07 6.69579485e+03 ! x y z +1.80475746e+03 -1.76133915e+02 -5.83190587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill +7.60494634e+03 !particle radius in m +-4.79738768e+06 1.05660072e+07 -1.20703674e+04 ! x y z +-1.76872416e+03 -7.96773745e+02 -7.48094782e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill +1.12850870e+04 !particle radius in m +2.19019020e+07 2.63899527e+06 3.37827752e+04 ! x y z +-1.61269975e+02 1.38753575e+03 3.39443977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill +1.04047308e+04 !particle radius in m +-1.21105762e+07 -5.24541367e+05 -2.70555025e+04 ! x y z +6.19806533e+01 -1.85471109e+03 -1.08022259e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill +5.18632661e+03 !particle radius in m +6.24492290e+06 9.69571067e+06 -1.68199218e+04 ! x y z +-1.63521643e+03 1.03697361e+03 9.03169661e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill +6.56052039e+03 !particle radius in m +-9.25769957e+06 2.29292734e+06 -1.14919079e+04 ! x y z +-5.12974483e+02 -2.05331332e+03 2.34930072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill +8.62886853e+03 !particle radius in m +-7.09412869e+06 -8.06275271e+06 -7.38498407e+04 ! x y z +1.50307169e+03 -1.31876348e+03 -1.74679708e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill +1.10297026e+04 !particle radius in m +-1.83827850e+07 6.94620255e+06 -2.99390580e+04 ! x y z +-5.38167682e+02 -1.38025174e+03 8.14592781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill +3.93151662e+03 !particle radius in m +1.28440178e+07 6.15520582e+06 5.37944446e+04 ! x y z +-7.49642103e+02 1.56926042e+03 -4.14121777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill +4.84125149e+03 !particle radius in m +-1.37958464e+07 -9.01984290e+06 9.37503357e+03 ! x y z +8.63514338e+02 -1.36928306e+03 -4.92726033e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill +6.38228557e+03 !particle radius in m +5.94552238e+06 -1.37356259e+07 -3.12464640e+04 ! x y z +1.54132538e+03 6.86924077e+02 4.95166504e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill +1.26046169e+04 !particle radius in m +-8.47051395e+06 -4.33049723e+06 8.99388095e+03 ! x y z +1.01895175e+03 -1.86853627e+03 6.25752144e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill +1.05056822e+04 !particle radius in m +-7.25230880e+06 -1.91074290e+07 -8.70931708e+04 ! x y z +1.36155621e+03 -5.02831587e+02 -8.24983528e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill +1.06118054e+04 !particle radius in m +4.25302051e+06 -8.61174101e+06 -1.08068198e+04 ! x y z +1.88839849e+03 9.49718679e+02 1.00715649e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill +6.54239543e+03 !particle radius in m +2.64852472e+06 1.60749418e+07 5.58768351e+04 ! x y z +-1.60049117e+03 2.61947391e+02 -1.05513072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill +4.46410737e+03 !particle radius in m +6.85901436e+06 5.92668091e+06 5.88024522e+03 ! x y z +-1.42967304e+03 1.64782988e+03 3.76673216e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill +1.02396523e+04 !particle radius in m +1.65616231e+07 1.66028360e+07 -5.29304371e+04 ! x y z +-9.28645255e+02 9.80527992e+02 5.80916438e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill +1.03672601e+04 !particle radius in m +-7.26003067e+05 9.56806531e+06 9.83311273e+04 ! x y z +-2.10111468e+03 -1.57355588e+02 7.65120270e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill +8.48891637e+03 !particle radius in m +-3.13308835e+06 1.20377491e+07 -1.96893006e+04 ! x y z +-1.80038683e+03 -4.46661696e+02 -1.05229342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill +5.71491865e+03 !particle radius in m +3.61039948e+06 -8.94670524e+06 -6.45909208e+04 ! x y z +1.94572548e+03 7.94221249e+02 2.27282153e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill +6.18678578e+03 !particle radius in m +1.23051248e+07 -2.76310551e+06 1.16872533e+05 ! x y z +4.31851334e+02 1.79778427e+03 -3.52355374e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill +7.97466982e+03 !particle radius in m +1.37198938e+07 -1.77790003e+06 -1.13538998e+05 ! x y z +2.34248090e+02 1.75094064e+03 -4.43647357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill +8.81590001e+03 !particle radius in m +7.46219447e+06 -5.55061844e+06 3.02223367e+04 ! x y z +1.30415331e+03 1.69020434e+03 -2.84026488e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill +9.65607124e+03 !particle radius in m +1.79117779e+06 -9.28064516e+06 2.29081417e+03 ! x y z +2.10478434e+03 3.74607623e+02 2.08339038e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill +1.05558666e+04 !particle radius in m +7.62366140e+06 -4.73786634e+06 -3.67690119e+04 ! x y z +1.17730042e+03 1.83367733e+03 -1.18403024e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill +1.19589725e+04 !particle radius in m +-1.01261545e+07 2.81055834e+05 -8.19414070e+03 ! x y z +-6.18154480e+01 -2.06712328e+03 -2.24522121e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill +1.00505792e+04 !particle radius in m +6.29538118e+06 7.15708897e+06 4.07031267e+04 ! x y z +-1.60705715e+03 1.38487957e+03 -1.00848425e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill +1.11418874e+04 !particle radius in m +-8.49609253e+06 2.57253582e+06 -4.04158861e+03 ! x y z +-6.25851824e+02 -2.12221062e+03 -1.18572479e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill +6.01467589e+03 !particle radius in m +-1.10898042e+07 -1.78242858e+06 -7.98635316e+03 ! x y z +3.31900537e+02 -1.93252272e+03 -5.54822823e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill +1.27267086e+04 !particle radius in m +-9.56599926e+06 -6.50694892e+06 1.36299753e+04 ! x y z +1.08336182e+03 -1.59117844e+03 -6.14843419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill +5.47362181e+03 !particle radius in m +-8.97074514e+06 8.73736202e+05 8.61659651e+03 ! x y z +-2.31036282e+02 -2.18526870e+03 3.84732945e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill +1.05255343e+04 !particle radius in m +2.22458775e+06 -9.09183474e+06 6.60915144e+04 ! x y z +2.08331663e+03 4.95850932e+02 -1.01931453e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill +1.19344067e+04 !particle radius in m +5.23135757e+06 -9.91357725e+06 4.20848292e+03 ! x y z +1.68969350e+03 9.19667997e+02 7.40595361e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill +4.33755478e+03 !particle radius in m +-1.28024389e+07 8.53060405e+06 4.23749438e+04 ! x y z +-9.17577167e+02 -1.39144923e+03 -5.10429471e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill +1.12704197e+04 !particle radius in m +-8.46758421e+06 -1.84532581e+07 8.05817267e+04 ! x y z +1.31420508e+03 -6.13047074e+02 -4.80774414e-03 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill +7.06559347e+03 !particle radius in m +-5.61587582e+06 7.53072526e+06 -2.26125540e+04 ! x y z +-1.70025928e+03 -1.25935338e+03 1.03927192e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill +1.14059133e+04 !particle radius in m +-2.14619149e+06 -1.42066503e+07 1.73542964e+04 ! x y z +1.70134938e+03 -2.12094299e+02 -3.88248921e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill +1.02433343e+04 !particle radius in m +-2.01595454e+06 -9.31357942e+06 -4.91526291e+04 ! x y z +2.05875974e+03 -4.99092474e+02 -1.24005530e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill +1.26261734e+04 !particle radius in m +-3.35093529e+06 -1.37898898e+07 -7.67867475e+04 ! x y z +1.68266801e+03 -4.09195838e+02 4.84518176e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill +4.19423265e+03 !particle radius in m +-5.47614308e+04 1.19582326e+07 -9.89002659e+04 ! x y z +-1.88840184e+03 -2.62651981e+01 7.68950274e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill +5.19311868e+03 !particle radius in m +-3.77832466e+06 1.09398130e+07 3.13756637e+04 ! x y z +-1.82483111e+03 -5.94408085e+02 -5.78133740e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill +6.45155218e+03 !particle radius in m +4.84011056e+06 -1.18968706e+07 1.84555477e+04 ! x y z +1.67151498e+03 6.81175038e+02 -7.19327483e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill +6.05488167e+03 !particle radius in m +5.21483996e+04 -1.14249117e+07 5.55267676e+04 ! x y z +1.92199543e+03 2.89226318e+00 3.62643891e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill +9.15143782e+03 !particle radius in m +-1.10411425e+07 -3.92571862e+06 -5.07146026e+04 ! x y z +6.36950570e+02 -1.80153278e+03 2.92128142e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill +7.60701744e+03 !particle radius in m +-1.31978898e+07 1.46521426e+07 -3.77196518e+04 ! x y z +-1.09404867e+03 -9.86978912e+02 -1.39684139e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill +1.01408856e+04 !particle radius in m +-2.88294831e+06 -1.04031089e+07 2.08513090e+04 ! x y z +1.92072665e+03 -5.23302927e+02 5.19800736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill +1.06803333e+04 !particle radius in m +2.38782775e+06 -8.75851927e+06 4.58765881e+04 ! x y z +2.08778972e+03 5.70538122e+02 1.58463921e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill +1.10462747e+04 !particle radius in m +-1.39881250e+07 -5.83335318e+06 -6.16116575e+04 ! x y z +6.22870510e+02 -1.55838806e+03 1.20223983e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill +1.25556671e+04 !particle radius in m +4.99865237e+06 7.28764110e+06 -6.86499352e+04 ! x y z +-1.79951538e+03 1.27018155e+03 -3.04997592e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill +6.11478378e+03 !particle radius in m +4.99165759e+06 1.10448368e+07 3.69114811e+04 ! x y z +-1.71481010e+03 7.51891478e+02 2.57133594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill +3.77594830e+03 !particle radius in m +-1.38190232e+06 8.92446579e+06 -2.39874601e+01 ! x y z +-2.13999854e+03 -3.62741075e+02 -1.15400248e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill +3.82448653e+03 !particle radius in m +-1.11170825e+07 2.94394609e+06 -4.30953134e+04 ! x y z +-5.00071887e+02 -1.85670191e+03 4.27947102e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill +1.15506092e+04 !particle radius in m +1.02590139e+07 -2.70501621e+05 1.75890374e+04 ! x y z +8.26113275e+01 2.03083325e+03 -1.20188470e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill +1.19466753e+04 !particle radius in m +1.05552207e+06 1.03618993e+07 4.81086872e+04 ! x y z +-2.01112311e+03 2.15384368e+02 -7.43201232e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill +1.21302309e+04 !particle radius in m +2.73631070e+06 -9.24970389e+06 5.21198850e+04 ! x y z +2.01203797e+03 5.75113061e+02 -1.08228016e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill +7.60492436e+03 !particle radius in m +7.49333106e+06 8.99255805e+06 4.28079932e+04 ! x y z +-1.47027422e+03 1.22861330e+03 -2.29537873e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill +8.89355341e+03 !particle radius in m +7.19860353e+06 -6.54495925e+06 4.11431543e+04 ! x y z +1.41373944e+03 1.55175420e+03 1.34717999e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill +4.20305844e+03 !particle radius in m +-1.00628201e+07 -1.83741461e+06 -1.98227486e+03 ! x y z +3.70859453e+02 -1.99423409e+03 -1.20280387e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill +1.21676504e+04 !particle radius in m +5.77701761e+06 6.58972717e+06 1.74818314e+04 ! x y z +-1.68661617e+03 1.44550446e+03 -1.99467032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill +6.36788201e+03 !particle radius in m +2.92908581e+06 -8.51550871e+06 2.35649421e+04 ! x y z +2.06952805e+03 6.82474350e+02 -1.19878409e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill +4.61572468e+03 !particle radius in m +-1.67832510e+07 5.10602561e+06 6.05666574e+04 ! x y z +-4.71529253e+02 -1.50630622e+03 1.54396748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill +9.57979650e+03 !particle radius in m +5.94339422e+06 1.09804417e+07 4.79977238e+04 ! x y z +-1.62390609e+03 8.74411928e+02 6.90172493e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill +9.61686674e+03 !particle radius in m +-9.53286463e+05 1.08518193e+07 1.37804570e+04 ! x y z +-1.99765013e+03 -1.63665978e+02 -1.39490183e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill +8.26608492e+03 !particle radius in m +-6.92004578e+06 -1.47096496e+07 9.07914526e+04 ! x y z +1.47519584e+03 -6.90837866e+02 6.35058618e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill +1.26187826e+04 !particle radius in m +-1.20616278e+07 6.06273134e+06 -6.00296658e+04 ! x y z +-8.01878358e+02 -1.59732664e+03 6.85710223e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill +1.24556096e+04 !particle radius in m +1.07241366e+07 6.87028361e+06 9.95384965e+03 ! x y z +-9.77403580e+02 1.54502689e+03 -6.02368193e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill +8.43934121e+03 !particle radius in m +-9.89312276e+06 -5.78442642e+06 3.19342091e+03 ! x y z +1.00166999e+03 -1.63649382e+03 -7.28916722e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill +7.38389889e+03 !particle radius in m +-1.05072101e+07 8.59747253e+05 -8.51062631e+04 ! x y z +-1.76270864e+02 -2.00169685e+03 -1.88486496e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill +6.00567499e+03 !particle radius in m +5.23533805e+06 -8.01402331e+06 2.56229650e+04 ! x y z +1.74936393e+03 1.14948262e+03 1.14944776e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill +1.12130402e+04 !particle radius in m +-3.53936356e+06 8.37116745e+06 -5.28989524e+04 ! x y z +-2.00215068e+03 -8.57726431e+02 -1.43522460e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill +1.02806726e+04 !particle radius in m +8.06463120e+06 -4.43013823e+06 9.40752267e+04 ! x y z +1.03931497e+03 1.89699386e+03 -9.86578192e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill +1.22602698e+04 !particle radius in m +-1.05188937e+07 8.26557998e+05 -2.50244301e+04 ! x y z +-1.75058944e+02 -2.01148735e+03 6.39744454e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill +9.13423664e+03 !particle radius in m +9.02166027e+05 -9.17478955e+06 6.28467621e+04 ! x y z +2.13279891e+03 2.18658803e+02 5.09551557e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill +8.07650766e+03 !particle radius in m +-3.82128992e+06 8.76150983e+06 -3.66320445e+04 ! x y z +-1.91568216e+03 -8.82768818e+02 -8.66361539e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill +8.03760289e+03 !particle radius in m +6.34183157e+06 1.14263259e+07 -3.93771961e+04 ! x y z +-1.57702001e+03 8.61699373e+02 7.37963170e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill +1.11168637e+04 !particle radius in m +-1.30405721e+07 -3.97553562e+06 6.86718538e+04 ! x y z +5.08860652e+02 -1.69393029e+03 3.39424464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill +7.37628737e+03 !particle radius in m +1.47724485e+06 8.92877200e+06 -1.05084746e+05 ! x y z +-2.16100073e+03 3.48067255e+02 2.02796618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill +1.25959797e+04 !particle radius in m +6.68480405e+06 8.22694034e+06 5.91279278e+04 ! x y z +-1.56238715e+03 1.25932846e+03 7.35031359e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill +1.18681469e+04 !particle radius in m +1.16829878e+07 3.26454849e+06 8.84361419e+04 ! x y z +-5.06154292e+02 1.79320925e+03 1.57229654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill +8.54796582e+03 !particle radius in m +9.47110497e+06 -3.98852153e+06 -3.02153569e+04 ! x y z +8.00176660e+02 1.87835641e+03 1.12222570e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill +7.87804554e+03 !particle radius in m +1.46320698e+06 -1.24945211e+07 2.33172915e+04 ! x y z +1.82255294e+03 2.24692006e+02 -5.94227757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill +1.03371250e+04 !particle radius in m +-2.99549263e+06 1.07900890e+07 -3.59480074e+04 ! x y z +-1.87291441e+03 -5.40526156e+02 -2.72086375e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill +4.49481566e+03 !particle radius in m +8.92552694e+06 -2.88867045e+06 4.50164736e+04 ! x y z +6.21245683e+02 2.05314318e+03 5.45203724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill +1.05758878e+04 !particle radius in m +5.22399519e+06 8.01692184e+06 -5.68152669e+03 ! x y z +-1.79741529e+03 1.14577258e+03 9.91685440e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill +8.36095619e+03 !particle radius in m +8.03570746e+06 -4.11887844e+06 3.48874429e+04 ! x y z +1.00266026e+03 1.93580077e+03 -1.91021104e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill +4.42873150e+03 !particle radius in m +9.90649703e+06 3.18003586e+06 1.94516997e+04 ! x y z +-6.33346908e+02 1.92588552e+03 -4.00155121e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill +1.15984265e+04 !particle radius in m +-1.09606598e+06 8.80615149e+06 -2.31959292e+04 ! x y z +-2.19928594e+03 -2.15273172e+02 -1.46856638e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill +8.60477818e+03 !particle radius in m +1.52623331e+06 -9.87507162e+06 -7.34326606e+04 ! x y z +2.07157812e+03 3.10284089e+02 -1.48877124e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill +1.16022173e+04 !particle radius in m +5.60100517e+06 -7.52238732e+06 -7.05544699e+04 ! x y z +1.72239950e+03 1.29297128e+03 -1.52256341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill +5.71650065e+03 !particle radius in m +-3.94522959e+06 -9.97626417e+06 9.25599419e+03 ! x y z +1.86732899e+03 -7.00228008e+02 -6.60836692e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill +1.17966335e+04 !particle radius in m +8.23445883e+04 -9.04812768e+06 -1.64851152e+03 ! x y z +2.17359230e+03 -1.27347929e+01 -1.55026516e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill +1.13901960e+04 !particle radius in m +-9.27915033e+06 -8.53740765e+06 -1.42390767e+05 ! x y z +1.24138782e+03 -1.35430995e+03 -1.90290768e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill +7.23773766e+03 !particle radius in m +6.08369217e+06 -9.30896549e+06 1.20641705e+05 ! x y z +1.63879722e+03 1.07988243e+03 -4.44689941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill +5.59582821e+03 !particle radius in m +9.59849615e+06 4.68470056e+06 3.84316246e+04 ! x y z +-8.55957491e+02 1.80183427e+03 7.74894619e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill +9.91714578e+03 !particle radius in m +-1.08060668e+06 -1.00607858e+07 4.94826506e+04 ! x y z +2.05453656e+03 -2.59041316e+02 -1.24750217e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill +8.17265933e+03 !particle radius in m +1.47983590e+07 5.41415872e+06 -1.80415422e+04 ! x y z +-5.58693227e+02 1.55361354e+03 1.18553934e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill +8.03438024e+03 !particle radius in m +-7.58136593e+06 6.99309921e+06 2.29302110e+04 ! x y z +-1.40627338e+03 -1.47284043e+03 -4.36076043e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill +9.55516443e+03 !particle radius in m +-1.00024650e+07 2.57885499e+06 -6.07457902e+03 ! x y z +-5.22539017e+02 -1.95674023e+03 -7.68835058e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill +1.29020467e+04 !particle radius in m +-9.01182188e+06 7.17037576e+06 -1.80541014e+04 ! x y z +-1.21356170e+03 -1.50384647e+03 1.80093599e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill +1.25091298e+04 !particle radius in m +-5.24887098e+06 8.72732331e+06 8.04218722e+04 ! x y z +-1.74335368e+03 -1.08193759e+03 -5.43249124e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill +1.06106742e+04 !particle radius in m +-2.45049686e+06 1.55426920e+07 1.07580343e+05 ! x y z +-1.62197493e+03 -2.92833542e+02 -1.14576459e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill +8.00195335e+03 !particle radius in m +-1.22199859e+07 4.38221625e+06 -3.89351024e+04 ! x y z +-6.16349372e+02 -1.72585692e+03 4.89125567e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill +6.30049172e+03 !particle radius in m +-2.68787716e+06 -9.60100858e+06 2.64767119e+03 ! x y z +2.00338289e+03 -5.71028998e+02 2.70092626e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill +1.29996565e+04 !particle radius in m +-8.95990349e+06 4.52753433e+06 1.16091499e+04 ! x y z +-9.24228536e+02 -1.84658152e+03 6.10613917e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill +5.59014012e+03 !particle radius in m +1.71028024e+07 4.97528193e+06 -6.57328228e+04 ! x y z +-4.53167939e+02 1.47788400e+03 4.60344609e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill +1.10590176e+04 !particle radius in m +-2.23441151e+07 -5.50686380e+06 3.85003687e+04 ! x y z +3.37072469e+02 -1.33411055e+03 5.11825064e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill +1.07859254e+04 !particle radius in m +-1.12784475e+07 1.70585791e+07 -1.32439952e+05 ! x y z +-1.22293182e+03 -8.00872476e+02 4.14711101e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill +9.20510168e+03 !particle radius in m +-3.79252235e+06 9.57625977e+06 -9.43032419e+04 ! x y z +-1.90113874e+03 -7.45374550e+02 -2.76613575e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill +4.13425343e+03 !particle radius in m +-7.96122660e+06 3.67866986e+06 -9.30226617e+03 ! x y z +-9.42526154e+02 -2.01745780e+03 -1.25281974e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill +5.58178407e+03 !particle radius in m +-7.53794950e+06 6.23579413e+06 -2.61014008e+04 ! x y z +-1.34980984e+03 -1.58862900e+03 -1.61372420e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill +5.38800623e+03 !particle radius in m +-8.66326774e+06 4.08110980e+06 -3.65358197e+04 ! x y z +-9.22979977e+02 -1.88593300e+03 -1.20742584e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill +4.82934540e+03 !particle radius in m +-8.01465112e+06 -1.03186901e+07 -8.69608158e+04 ! x y z +1.40671015e+03 -1.13976841e+03 1.88119518e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill +1.07951308e+04 !particle radius in m +-1.49556816e+07 -7.86589247e+05 1.11406498e+05 ! x y z +1.14089906e+02 -1.67632423e+03 -1.08680759e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill +1.29051176e+04 !particle radius in m +1.27123539e+07 -2.64461233e+06 -6.18084715e+04 ! x y z +3.74400777e+02 1.80142774e+03 3.83561532e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill +1.07329246e+04 !particle radius in m +-4.06927547e+05 -1.75442240e+07 1.00963469e+05 ! x y z +1.56104472e+03 -4.39048470e+01 3.93620680e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill +5.02164633e+03 !particle radius in m +8.84368264e+06 1.43003762e+07 5.00874702e+04 ! x y z +-1.35152929e+03 8.24556921e+02 -8.03719400e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill +1.18647713e+04 !particle radius in m +-9.54707879e+06 1.77630246e+06 -8.88116065e+03 ! x y z +-3.48826440e+02 -2.06942564e+03 -2.16674061e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill +9.63374432e+03 !particle radius in m +1.09242185e+07 6.96934254e+06 -3.27489047e+04 ! x y z +-9.84319971e+02 1.52494369e+03 8.24595564e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill +4.25268498e+03 !particle radius in m +5.58576103e+06 8.70672427e+06 -2.15687306e+04 ! x y z +-1.72503313e+03 1.07740968e+03 -3.41426440e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill +1.11017942e+04 !particle radius in m +-4.11471227e+06 -8.93287907e+06 -4.36028632e+04 ! x y z +1.89219131e+03 -8.56549006e+02 8.16432689e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill +6.87002453e+03 !particle radius in m +8.96616870e+06 -2.05606701e+06 2.01901008e+04 ! x y z +4.73236695e+02 2.09528249e+03 -4.42528671e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill +8.28549309e+03 !particle radius in m +1.71268946e+07 4.30766948e+06 2.02642738e+03 ! x y z +-4.07771856e+02 1.51502114e+03 -1.13119700e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill +4.70767212e+03 !particle radius in m +-4.68916418e+05 1.79356049e+07 2.73217306e+04 ! x y z +-1.55840072e+03 -4.92017252e+01 -1.97207421e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill +1.08935228e+04 !particle radius in m +-8.58951775e+06 -2.49673020e+06 1.50355881e+04 ! x y z +6.03037486e+02 -2.10005557e+03 9.90449926e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill +1.13088486e+04 !particle radius in m +-1.24947062e+06 9.39169733e+06 -1.29611502e+03 ! x y z +-2.12088670e+03 -2.33617557e+02 -7.92353291e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill +5.04982925e+03 !particle radius in m +9.31255896e+06 3.14623519e+06 -5.69089329e+03 ! x y z +-7.03486722e+02 1.96419139e+03 2.25468152e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill +7.88288776e+03 !particle radius in m +-5.85221513e+05 -1.12876036e+07 -5.52028652e+04 ! x y z +1.95064275e+03 -9.81526152e+01 -5.91601856e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill +1.09347609e+04 !particle radius in m +-2.96784791e+06 -8.77030784e+06 -6.49349269e+04 ! x y z +2.04523947e+03 -6.63593054e+02 -5.41808592e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill +3.93196955e+03 !particle radius in m +8.90265546e+05 1.20291601e+07 -5.41238919e+02 ! x y z +-1.86112508e+03 1.50752240e+02 -5.69806824e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill +5.03625919e+03 !particle radius in m +-4.12865927e+06 -1.30370302e+07 2.49268877e+04 ! x y z +1.68286207e+03 -5.42218893e+02 7.09107529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill +1.14005804e+04 !particle radius in m +-8.83659135e+06 4.88772967e+06 3.97374919e+04 ! x y z +-9.96652878e+02 -1.80490383e+03 4.50625373e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill +7.31394737e+03 !particle radius in m +7.51899250e+06 8.02238049e+06 4.96372898e+04 ! x y z +-1.45435540e+03 1.33207577e+03 -8.91729858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill +8.89384301e+03 !particle radius in m +1.07692501e+07 -1.58383421e+07 5.11056372e+04 ! x y z +1.24097868e+03 8.36402001e+02 1.17081374e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill +8.90274659e+03 !particle radius in m +-7.87110940e+06 4.57199197e+06 -7.32174697e+03 ! x y z +-1.11779702e+03 -1.86164265e+03 1.82306653e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill +8.39061750e+03 !particle radius in m +-9.02697440e+06 7.44735568e+06 -6.20239222e+04 ! x y z +-1.22828772e+03 -1.48671915e+03 -3.25023413e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill +8.96233529e+03 !particle radius in m +1.03311380e+07 2.97114168e+06 2.75510366e+04 ! x y z +-5.53060286e+02 1.92682584e+03 -7.92293805e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill +4.98993792e+03 !particle radius in m +7.02853805e+06 6.05239702e+06 3.87860255e+03 ! x y z +-1.40362427e+03 1.60647543e+03 -1.45016070e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill +4.18660697e+03 !particle radius in m +6.55440785e+06 5.85117198e+06 -4.93943511e+04 ! x y z +-1.49384332e+03 1.63681032e+03 -1.39258100e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill +1.17118539e+04 !particle radius in m +9.90570829e+06 4.34179796e+06 -2.00530721e+04 ! x y z +-7.94337401e+02 1.80469509e+03 -3.79870453e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill +7.93209892e+03 !particle radius in m +-8.25205087e+06 7.98686094e+06 -3.50332951e+04 ! x y z +-1.35816228e+03 -1.38349553e+03 1.34047111e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill +7.24711433e+03 !particle radius in m +-9.96135005e+06 3.70457700e+06 -9.07193755e+04 ! x y z +-7.21948720e+02 -1.87787046e+03 -1.05717777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill +6.57637276e+03 !particle radius in m +-1.22268683e+07 1.01474610e+07 -8.42852150e+04 ! x y z +-1.02194217e+03 -1.27298189e+03 -7.67733923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill +6.98929911e+03 !particle radius in m +4.92746951e+06 9.58728854e+06 2.89432610e+04 ! x y z +-1.76304026e+03 9.13627287e+02 6.36664299e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill +1.19100391e+04 !particle radius in m +1.23329034e+07 -6.92729902e+05 2.96405314e+04 ! x y z +1.12931575e+02 1.84303874e+03 -9.66021750e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill +9.34048218e+03 !particle radius in m +1.63682186e+07 -7.64635682e+06 7.51258389e+04 ! x y z +6.57521797e+02 1.40505156e+03 -1.44981512e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill +4.66046628e+03 !particle radius in m +-9.02931313e+06 1.40224619e+06 -7.68912993e+03 ! x y z +-3.55553612e+02 -2.15150134e+03 1.02691019e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill +7.28378715e+03 !particle radius in m +-2.13040703e+06 9.05085932e+06 2.75232896e+04 ! x y z +-2.09375359e+03 -4.54923992e+02 -6.60791548e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill +4.24094823e+03 !particle radius in m +2.12770208e+06 -1.09362652e+07 6.56462507e+04 ! x y z +1.92901319e+03 3.58659857e+02 1.88568450e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill +1.24278875e+04 !particle radius in m +4.49722640e+06 1.29879609e+07 6.17022585e+04 ! x y z +-1.66361829e+03 6.02542134e+02 -3.15731575e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill +1.15586882e+04 !particle radius in m +-2.46270150e+05 -8.94568869e+06 -6.37006664e+04 ! x y z +2.17872017e+03 -8.88856930e+01 -1.82962039e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill +8.06890215e+03 !particle radius in m +-7.68511313e+06 -6.12228878e+06 -9.32586560e+03 ! x y z +1.29882576e+03 -1.62777018e+03 -1.19293575e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill +7.49373241e+03 !particle radius in m +-8.92478393e+06 1.31107857e+06 -7.25655485e+04 ! x y z +-2.98094429e+02 -2.17047563e+03 -1.53783344e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill +7.25129561e+03 !particle radius in m +-6.57681719e+06 -9.45888345e+06 -3.72144545e+04 ! x y z +1.58522928e+03 -1.10501157e+03 1.05113370e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill +9.50638765e+03 !particle radius in m +1.34071651e+07 1.03792566e+07 -4.53441732e+04 ! x y z +-9.71553194e+02 1.24234337e+03 9.20294843e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill +6.36761483e+03 !particle radius in m +-3.51077302e+06 -1.26567098e+07 2.57715830e+04 ! x y z +1.74422450e+03 -5.08580589e+02 2.03158207e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill +5.26245957e+03 !particle radius in m +2.88059988e+06 -1.21489772e+07 1.66531109e+03 ! x y z +1.80288747e+03 4.42317052e+02 -1.19583569e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill +8.31795219e+03 !particle radius in m +-5.79801378e+06 7.81844110e+06 7.21651425e+04 ! x y z +-1.66669076e+03 -1.30229321e+03 -2.20360225e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill +1.12229473e+04 !particle radius in m +1.79079043e+06 8.72935614e+06 7.66173175e+03 ! x y z +-2.14494592e+03 4.29349753e+02 -3.05321261e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill +1.07221971e+04 !particle radius in m +-1.31449667e+07 5.65642590e+06 -1.35348879e+04 ! x y z +-6.99474388e+02 -1.58839301e+03 5.07187025e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill +1.02555622e+04 !particle radius in m +-1.28107010e+07 3.64301270e+06 -4.79094708e+04 ! x y z +-4.96849501e+02 -1.72146269e+03 1.99970261e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill +7.54998008e+03 !particle radius in m +-8.81052520e+06 1.96363775e+06 -7.03542162e+04 ! x y z +-4.55600237e+02 -2.14195252e+03 -1.54510587e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill +4.30236032e+03 !particle radius in m +6.76054921e+06 5.69153857e+06 -8.32813680e+04 ! x y z +-1.43863210e+03 1.66962801e+03 -3.05680786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill +9.37470089e+03 !particle radius in m +-1.58533753e+07 -4.64141565e+06 -1.37616342e+05 ! x y z +4.71661565e+02 -1.53679456e+03 4.54920894e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill +5.56372876e+03 !particle radius in m +-5.05912024e+06 1.20461614e+07 -1.00213774e+05 ! x y z +-1.67920042e+03 -7.11202226e+02 4.13175962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill +6.66362952e+03 !particle radius in m +8.41034459e+05 -1.03591089e+07 -4.26263251e+04 ! x y z +2.02679172e+03 1.77245292e+02 -7.59374588e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill +4.19344015e+03 !particle radius in m +-8.72674150e+06 -1.84604826e+06 -9.49439666e+03 ! x y z +5.06255038e+02 -2.14329601e+03 8.35004981e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill +1.19410657e+04 !particle radius in m +8.32975138e+06 5.59994962e+06 1.36490477e+04 ! x y z +-1.14500563e+03 1.73284125e+03 2.21368330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill +9.92303995e+03 !particle radius in m +5.20187427e+06 8.26928364e+06 7.79156795e+04 ! x y z +-1.78869520e+03 1.08594628e+03 -2.89543422e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill +1.05516583e+04 !particle radius in m +-3.97296892e+06 -8.38171851e+06 1.59358464e+04 ! x y z +1.95617296e+03 -9.13960827e+02 -3.62965884e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill +8.03665372e+03 !particle radius in m +8.20764080e+05 -1.58893023e+07 7.87114038e+04 ! x y z +1.64101205e+03 9.20364252e+01 9.68548448e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill +9.62837764e+03 !particle radius in m +-9.69224879e+06 1.49532038e+07 7.33593405e+04 ! x y z +-1.29931651e+03 -8.27698792e+02 -3.16602237e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill +4.38450573e+03 !particle radius in m +-5.62663613e+06 7.91766436e+06 2.60207243e+04 ! x y z +-1.74178290e+03 -1.18522553e+03 2.27430689e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot diff --git a/examples/symba_swifter_comparison/mars_disk/tp.in b/examples/symba_swifter_comparison/mars_disk/tp.in new file mode 100644 index 000000000..c22708346 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/tp.in @@ -0,0 +1 @@ +0 \ No newline at end of file From 598ffa5434dcade4d6affeb56881a2c36f532573 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 11:13:17 -0400 Subject: [PATCH 033/315] Fixed issue where merged bodies were being added to the particle information file, causing duplication of ids when reading. Also changed it so that the largest body in the hit-and-run retains its original identity. --- src/io/io.f90 | 1 - src/modules/swiftest_globals.f90 | 2 ++ src/symba/symba_discard.f90 | 1 - src/symba/symba_fragmentation.f90 | 32 ++++++++++++++++++++++--------- src/symba/symba_util.f90 | 6 +++++- 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c34c896a9..c5519975f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -883,7 +883,6 @@ module subroutine io_read_cb_in(self, param) integer(I4B) :: iu = LUN character(len=STRMAX) :: errmsg - write(*,*) "Reading central body file " // trim(adjustl(param%incbfile)) if (param%in_type == 'ASCII') then open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) read(iu, *, err = 667, iomsg = errmsg) self%id diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 6cacac789..bf070e162 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -87,6 +87,8 @@ module swiftest_globals integer(I4B), parameter :: GRAZE_AND_MERGE = -11 integer(I4B), parameter :: HIT_AND_RUN = -12 integer(I4B), parameter :: COLLISION = -13 + integer(I4B), parameter :: NEW_PARTICLE = -14 + integer(I4B), parameter :: OLD_PARTICLE = -15 !>Symbolic names for collisional outcomes from collresolve_resolve: integer(I4B), parameter :: COLLRESOLVE_REGIME_MERGE = 1 diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 3d9be1282..486efcc2c 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -156,7 +156,6 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) end select return - end subroutine symba_discard_conserve_mtm diff --git a/src/symba/symba_fragmentation.f90 b/src/symba/symba_fragmentation.f90 index 5a2d49bd6..13cad78a7 100644 --- a/src/symba/symba_fragmentation.f90 +++ b/src/symba/symba_fragmentation.f90 @@ -431,7 +431,6 @@ subroutine symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_fr plnew%id(:) = id_frag(:) system%maxid = system%maxid + nfrag - plnew%status(:) = ACTIVE plnew%lcollision(:) = .false. plnew%ldiscard(:) = .false. plnew%xb(:,:) = xb_frag(:, :) @@ -448,31 +447,46 @@ subroutine symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_fr select case(status) case(DISRUPTION) plnew%info(:)%origin_type = "Disruption" + plnew%status(:) = NEW_PARTICLE + plnew%info(:)%origin_time = param%t + do i = 1, nfrag + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do case(SUPERCATASTROPHIC) plnew%info(:)%origin_type = "Supercatastrophic" - case(HIT_AND_RUN) - plnew%info(:)%origin_type = "Hit and run fragment" - case(MERGED) - plnew%info(1) = pl%info(ibiggest) - end select - - if (status /= MERGED) then + plnew%status(:) = NEW_PARTICLE plnew%info(:)%origin_time = param%t do i = 1, nfrag plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do - end if + case(HIT_AND_RUN) + plnew%info(1) = pl%info(ibiggest) + plnew%status(1) = OLD_PARTICLE + plnew%status(2:nfrag) = NEW_PARTICLE + plnew%info(2:nfrag)%origin_type = "Hit and run fragment" + plnew%info(2:nfrag)%origin_time = param%t + do i = 2, nfrag + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(MERGED) + plnew%info(1) = pl%info(ibiggest) + plnew%status(1) = OLD_PARTICLE + end select if (param%lrotation) then plnew%Ip(:,:) = Ip_frag(:,:) plnew%rot(:,:) = rot_frag(:,:) end if + if (param%ltides) then plnew%Q = pl%Q(ibiggest) plnew%k2 = pl%k2(ibiggest) plnew%tlag = pl%tlag(ibiggest) end if + call plnew%set_mu(cb) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 8ee7da8ea..d55e7a0c7 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -381,6 +381,7 @@ module subroutine symba_util_rearray_pl(self, system, param) allocate(lmask, source=pl%ldiscard(:)) lmask(:) = lmask(:) .or. pl%status(:) == INACTIVE call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) + deallocate(lmask) call tmp%setup(0,param) deallocate(tmp) @@ -391,7 +392,10 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Add in any new bodies if (pl_adds%nbody > 0) then call pl%append(pl_adds, lsource_mask=[(.true., i=1, pl_adds%nbody)]) - call symba_io_dump_particle_info(system, param, plidx=[(i, i = 1, pl%nbody)]) + allocate(lmask(pl%nbody)) + lmask(:) = pl%status(1:pl%nbody) == NEW_PARTICLE + call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, pl%nbody)], lmask)) + where(pl%status(:) /= INACTIVE) pl%status(:) = ACTIVE end if ! If there are still bodies in the system, sort by mass in descending order and re-index From 3861157bbf959e58c6c134a4f921c818f8225efd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:02:25 -0400 Subject: [PATCH 034/315] Restructured the collision check to return a logical flag. Refactored the SyMBA encounter list classes so that pltp and plpl are each descended from a common symba_encounter class, to clarify the polymorphic subroutines --- src/modules/symba_classes.f90 | 71 ++++++++++++++++------------- src/symba/symba_collision.f90 | 23 ++++++---- src/symba/symba_encounter_check.f90 | 6 +-- src/symba/symba_kick.f90 | 12 ++--- src/symba/symba_setup.f90 | 6 +-- src/symba/symba_step.f90 | 6 +-- src/symba/symba_util.f90 | 10 ++-- 7 files changed, 75 insertions(+), 59 deletions(-) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 6a69adcc7..1e0b1b3b0 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -129,29 +129,37 @@ module symba_classes procedure :: spill => symba_util_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type symba_tp + !******************************************************************************************************************************** + ! symba_encounter class definitions and method interfaces + !******************************************************************************************************************************* + !> SyMBA class for tracking close encounters in a step + type, extends(swiftest_encounter) :: symba_encounter + integer(I4B), dimension(:), allocatable :: level !! encounter recursion level + contains + procedure :: collision_check => symba_collision_check_encounter !! Checks if a test particle is going to collide with a massive body + procedure :: encounter_check => symba_encounter_check !! Checks if massive bodies are going through close encounters with each other + procedure :: kick => symba_kick_encounter !! Kick barycentric velocities of active test particles within SyMBA recursion + procedure :: setup => symba_setup_encounter !! A constructor that sets the number of encounters and allocates and initializes all arrays + procedure :: spill => symba_util_spill_encounter !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + end type symba_encounter + !******************************************************************************************************************************** ! symba_pltpenc class definitions and method interfaces !******************************************************************************************************************************* !> SyMBA class for tracking pl-tp close encounters in a step - type, extends(swiftest_encounter) :: symba_pltpenc - integer(I4B), dimension(:), allocatable :: level !! encounter recursion level + type, extends(symba_encounter) :: symba_pltpenc contains - procedure :: collision_check => symba_collision_check_pltpenc !! Checks if a test particle is going to collide with a massive body - procedure :: encounter_check => symba_encounter_check_pltpenc !! Checks if massive bodies are going through close encounters with each other - procedure :: kick => symba_kick_pltpenc !! Kick barycentric velocities of active test particles within SyMBA recursion - procedure :: setup => symba_setup_pltpenc !! A constructor that sets the number of encounters and allocates and initializes all arrays - procedure :: spill => symba_util_spill_pltpenc !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type symba_pltpenc !******************************************************************************************************************************** ! symba_plplenc class definitions and method interfaces !******************************************************************************************************************************* !> SyMBA class for tracking pl-pl close encounters in a step - type, extends(symba_pltpenc) :: symba_plplenc + type, extends(symba_encounter) :: symba_plplenc contains - procedure :: extract_collisions => symba_collision_encounter_extract_collisions !! Processes the pl-pl encounter list remove only those encounters that led to a collision - procedure :: resolve_fragmentations => symba_collision_resolve_fragmentations !! Process list of collisions, determine the collisional regime, and then create fragments - procedure :: resolve_mergers => symba_collision_resolve_mergers !! Process list of collisions and merge colliding bodies together + procedure :: extract_collisions => symba_collision_encounter_extract_collisions !! Processes the pl-pl encounter list remove only those encounters that led to a collision + procedure :: resolve_fragmentations => symba_collision_resolve_fragmentations !! Process list of collisions, determine the collisional regime, and then create fragments + procedure :: resolve_mergers => symba_collision_resolve_mergers !! Process list of collisions and merge colliding bodies together end type symba_plplenc !******************************************************************************************************************************** @@ -174,16 +182,17 @@ module symba_classes end type symba_nbody_system interface - module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec) + module function symba_collision_check_encounter(self, system, param, t, dt, irec) result(lany_collision) use swiftest_classes, only : swiftest_parameters implicit none - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list object - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - real(DP), intent(in) :: t !! current time - real(DP), intent(in) :: dt !! step size - integer(I4B), intent(in) :: irec !! Current recursion level - end subroutine symba_collision_check_pltpenc + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list object + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! current time + real(DP), intent(in) :: dt !! step size + integer(I4B), intent(in) :: irec !! Current recursion level + logical :: lany_collision !! Returns true if cany pair of encounters resulted in a collision n + end function symba_collision_check_encounter module subroutine symba_collision_encounter_extract_collisions(self, system, param) implicit none @@ -255,14 +264,14 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc logical :: lany_encounter !! Returns true if there is at least one close encounter end function symba_encounter_check_pl - module function symba_encounter_check_pltpenc(self, system, dt, irec) result(lany_encounter) + module function symba_encounter_check(self, system, dt, irec) result(lany_encounter) implicit none - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-pl encounter list object + class(symba_encounter), intent(inout) :: self !! SyMBA pl-pl encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object real(DP), intent(in) :: dt !! step size integer(I4B), intent(in) :: irec !! Current recursion level logical :: lany_encounter !! Returns true if there is at least one close encounter - end function symba_encounter_check_pltpenc + end function symba_encounter_check module function symba_encounter_check_tp(self, system, dt, irec) result(lany_encounter) implicit none @@ -383,14 +392,14 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine symba_kick_getacch_tp - module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) + module subroutine symba_kick_encounter(self, system, dt, irec, sgn) implicit none - class(symba_pltpenc), intent(in) :: self !! SyMBA pl-tp encounter list object + class(symba_encounter), intent(in) :: self !! SyMBA pl-tp encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object real(DP), intent(in) :: dt !! step size integer(I4B), intent(in) :: irec !! Current recursion level integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration - end subroutine symba_kick_pltpenc + end subroutine symba_kick_encounter module subroutine symba_setup_initialize_particle_info(system, param) implicit none @@ -421,11 +430,11 @@ module subroutine symba_setup_pl(self, n, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine symba_setup_pl - module subroutine symba_setup_pltpenc(self,n) + module subroutine symba_setup_encounter(self,n) implicit none - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter structure + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter structure integer(I4B), intent(in) :: n !! Number of encounters to allocate space for - end subroutine symba_setup_pltpenc + end subroutine symba_setup_encounter module subroutine symba_setup_tp(self, n, param) use swiftest_classes, only : swiftest_parameters @@ -655,14 +664,14 @@ module subroutine symba_util_spill_pl(self, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not end subroutine symba_util_spill_pl - module subroutine symba_util_spill_pltpenc(self, discards, lspill_list, ldestructive) + module subroutine symba_util_spill_encounter(self, discards, lspill_list, ldestructive) use swiftest_classes, only : swiftest_encounter implicit none - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - end subroutine symba_util_spill_pltpenc + end subroutine symba_util_spill_encounter module subroutine symba_util_spill_tp(self, discards, lspill_list, ldestructive) use swiftest_classes, only : swiftest_body diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index b0e588300..0cb903fcf 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -2,7 +2,7 @@ use swiftest contains - module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec) + module function symba_collision_check_encounter(self, system, param, t, dt, irec) result(lany_collision) !! author: David A. Minton !! !! Check for merger between massive bodies and test particles in SyMBA @@ -12,12 +12,14 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec !! Adapted from Hal Levison's Swift routine symba5_merge.f implicit none ! Arguments - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list object - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - real(DP), intent(in) :: t !! current time - real(DP), intent(in) :: dt !! step size - integer(I4B), intent(in) :: irec !! Current recursion level + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list object + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! current time + real(DP), intent(in) :: dt !! step size + integer(I4B), intent(in) :: irec !! Current recursion level + ! Result + logical :: lany_collision !! Returns true if cany pair of encounters resulted in a collision ! Internals logical, dimension(:), allocatable :: lcollision, lmask real(DP), dimension(NDIM) :: xr, vr @@ -25,7 +27,9 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec real(DP) :: rlim, Gmtot logical :: isplpl + lany_collision = .false. if (self%nenc == 0) return + select type(self) class is (symba_plplenc) isplpl = .true. @@ -66,6 +70,7 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec end do end if + do k = 1, nenc if (lcollision(k)) self%status(k) = COLLISION self%t(k) = t @@ -97,8 +102,10 @@ module subroutine symba_collision_check_pltpenc(self, system, param, t, dt, irec end select end select + lany_collision = any(lcollision(:)) + return - end subroutine symba_collision_check_pltpenc + end function symba_collision_check_encounter pure elemental function symba_collision_check_one(xr, yr, zr, vxr, vyr, vzr, Gmtot, rlim, dt, lvdotr) result(lcollision) diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 808ee2347..326f5d257 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -56,7 +56,7 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc end function symba_encounter_check_pl - module function symba_encounter_check_pltpenc(self, system, dt, irec) result(lany_encounter) + module function symba_encounter_check(self, system, dt, irec) result(lany_encounter) !! author: David A. Minton !! !! Check for an encounter between test particles and massive bodies in the pltpenc list. @@ -65,7 +65,7 @@ module function symba_encounter_check_pltpenc(self, system, dt, irec) result(lan !! Adapted from portions of David E. Kaufmann's Swifter routine: symba_step_recur.f90 implicit none ! Arguments - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-pl encounter list object + class(symba_encounter), intent(inout) :: self !! SyMBA pl-pl encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object real(DP), intent(in) :: dt !! step size integer(I4B), intent(in) :: irec !! Current recursion level @@ -132,7 +132,7 @@ module function symba_encounter_check_pltpenc(self, system, dt, irec) result(lan end select return - end function symba_encounter_check_pltpenc + end function symba_encounter_check module function symba_encounter_check_tp(self, system, dt, irec) result(lany_encounter) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index 7a98c2f69..c1de5a077 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -90,7 +90,7 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) end subroutine symba_kick_getacch_tp - module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) + module subroutine symba_kick_encounter(self, system, dt, irec, sgn) !! author: David A. Minton !! !! Kick barycentric velocities of massive bodies and ACTIVE test particles within SyMBA recursion. @@ -100,11 +100,11 @@ module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) !! Adapted from Hal Levison's Swift routine symba5_kick.f implicit none ! Arguments - class(symba_pltpenc), intent(in) :: self !! SyMBA pl-tp encounter list object + class(symba_encounter), intent(in) :: self !! SyMBA pl-tp encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - real(DP), intent(in) :: dt !! step size - integer(I4B), intent(in) :: irec !! Current recursion level - integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration + real(DP), intent(in) :: dt !! step size + integer(I4B), intent(in) :: irec !! Current recursion level + integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration ! Internals integer(I4B) :: k, irm1, irecl real(DP) :: r, rr, ri, ris, rim1, r2, ir3, fac, faci, facj @@ -198,6 +198,6 @@ module subroutine symba_kick_pltpenc(self, system, dt, irec, sgn) end select return - end subroutine symba_kick_pltpenc + end subroutine symba_kick_encounter end submodule s_symba_kick \ No newline at end of file diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 3fe7c21c5..d3f44f8a1 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -183,14 +183,14 @@ module subroutine symba_setup_pl(self, n, param) end subroutine symba_setup_pl - module subroutine symba_setup_pltpenc(self, n) + module subroutine symba_setup_encounter(self, n) !! author: David A. Minton !! !! A constructor that sets the number of encounters and allocates and initializes all arrays !! implicit none ! Arguments - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter structure + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter structure integer(I4B), intent(in) :: n !! Number of encounters to allocate space for call setup_encounter(self, n) @@ -202,7 +202,7 @@ module subroutine symba_setup_pltpenc(self, n) self%level(:) = -1 return - end subroutine symba_setup_pltpenc + end subroutine symba_setup_encounter module subroutine symba_setup_tp(self, n, param) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 847d6e4ee..3bc542c1d 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -163,7 +163,7 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) integer(I4B) :: i, j, irecp, nloops real(DP) :: dtl, dth real(DP), dimension(NDIM) :: xr, vr - logical :: lencounter + logical :: lencounter, lplpl_collision, lpltp_collision associate(system => self, plplenc_list => self%plplenc_list, pltpenc_list => self%pltpenc_list) select type(pl => self%pl) @@ -209,8 +209,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) end if if (param%lclose) then - call plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) - call pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) + lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) + lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) end if call self%set_recur_levels(ireci) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index d55e7a0c7..05ee19f5e 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -826,14 +826,14 @@ module subroutine symba_util_spill_pl(self, discards, lspill_list, ldestructive) end subroutine symba_util_spill_pl - module subroutine symba_util_spill_pltpenc(self, discards, lspill_list, ldestructive) + module subroutine symba_util_spill_encounter(self, discards, lspill_list, ldestructive) !! author: David A. Minton !! !! Move spilled (discarded) SyMBA encounter structure from active list to discard list !! Note: Because the symba_plplenc currently does not contain any additional variable components, this method can recieve it as an input as well. implicit none ! Arguments - class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list @@ -842,17 +842,17 @@ module subroutine symba_util_spill_pltpenc(self, discards, lspill_list, ldestruc associate(keeps => self, nenc => self%nenc) select type(discards) - class is (symba_pltpenc) + class is (symba_encounter) call util_spill(keeps%level, discards%level, lspill_list, ldestructive) call util_spill_encounter(keeps, discards, lspill_list, ldestructive) class default - write(*,*) "Invalid object passed to the spill method. Source must be of class symba_pltpenc or its descendents!" + write(*,*) "Invalid object passed to the spill method. Source must be of class symba_encounter or its descendents!" call util_exit(FAILURE) end select end associate return - end subroutine symba_util_spill_pltpenc + end subroutine symba_util_spill_encounter module subroutine symba_util_spill_tp(self, discards, lspill_list, ldestructive) From 1f793cb89c97bed2ef967aa75935139b0005e04b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:06:03 -0400 Subject: [PATCH 035/315] Re-enabled sorting of particles after testing --- src/symba/symba_step.f90 | 3 +++ src/whm/whm_setup.f90 | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 3bc542c1d..69d7e2cbd 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -211,6 +211,9 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) if (param%lclose) then lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) + + if (lplpl_collision) call pl%discard(system, param) + if (lpltp_collision) call tp%discard(system, param) end if call self%set_recur_levels(ireci) diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index 4f9bc6bcf..eaed16c14 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -79,7 +79,7 @@ module subroutine whm_setup_initialize_system(self, param) call setup_initialize_system(self, param) ! First we need to make sure that the massive bodies are sorted by heliocentric distance before computing jacobies call util_set_ir3h(self%pl) - !call self%pl%sort("ir3h", ascending=.false.) + call self%pl%sort("ir3h", ascending=.false.) ! Make sure that the discard list gets allocated initially call self%tp_discards%setup(0, param) From 6ad5ffc5487e3c42e88ef8452d9bcf387d9585e8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:06:30 -0400 Subject: [PATCH 036/315] Re-enabled sorting of particles after testing --- src/symba/symba_setup.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index d3f44f8a1..307c37675 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -79,7 +79,7 @@ module subroutine symba_setup_initialize_system(self, param) call system%plplcollision_list%setup(0) select type(pl => system%pl) class is (symba_pl) - !call pl%sort("mass", ascending=.false.) + call pl%sort("mass", ascending=.false.) select type(param) class is (symba_parameters) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY From 2cc6398b911510682fc1ad7a9ea89a3956aa3210 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:12:09 -0400 Subject: [PATCH 037/315] Consolidated symba_fragmentation into symba_collision to avoid confusion --- src/modules/symba_classes.f90 | 16 +- src/symba/symba_collision.f90 | 514 +++++++++++++++++++++++++++++- src/symba/symba_fragmentation.f90 | 508 ----------------------------- src/symba/symba_step.f90 | 4 +- 4 files changed, 519 insertions(+), 523 deletions(-) delete mode 100644 src/symba/symba_fragmentation.f90 diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 1e0b1b3b0..a07ce36fc 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -282,7 +282,7 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc logical :: lany_encounter !! Returns true if there is at least one close encounter end function symba_encounter_check_tp - module function symba_fragmentation_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions @@ -292,9 +292,9 @@ module function symba_fragmentation_casedisruption(system, param, family, x, v, real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation real(DP), intent(inout) :: Qloss !! Energy lost during collisionn integer(I4B) :: status !! Status flag assigned to this outcome - end function symba_fragmentation_casedisruption + end function symba_collision_casedisruption - module function symba_fragmentation_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions @@ -304,9 +304,9 @@ module function symba_fragmentation_casehitandrun(system, param, family, x, v, m real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation real(DP), intent(inout) :: Qloss !! Energy lost during collision integer(I4B) :: status !! Status flag assigned to this outcome - end function symba_fragmentation_casehitandrun + end function symba_collision_casehitandrun - module function symba_fragmentation_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) + module function symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions @@ -314,9 +314,9 @@ module function symba_fragmentation_casemerge(system, param, family, x, v, mass, real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collisio integer(I4B) :: status !! Status flag assigned to this outcome - end function symba_fragmentation_casemerge + end function symba_collision_casemerge - module function symba_fragmentation_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions @@ -326,7 +326,7 @@ module function symba_fragmentation_casesupercatastrophic(system, param, family, real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation real(DP), intent(inout) :: Qloss !! Energy lost during collision integer(I4B) :: status !! Status flag assigned to this outcome - end function symba_fragmentation_casesupercatastrophic + end function symba_collision_casesupercatastrophic module subroutine symba_io_write_discard(self, param) use swiftest_classes, only : swiftest_parameters diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 0cb903fcf..24c0e3a0c 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1,7 +1,388 @@ submodule (symba_classes) s_symba_collision use swiftest + + integer(I4B), parameter :: NFRAG_DISRUPT = 12 + integer(I4B), parameter :: NFRAG_SUPERCAT = 20 contains + module function symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Create the fragments resulting from a non-catastrophic disruption collision + !! + implicit none + ! Arguments + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision + real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation + real(DP), intent(inout) :: Qloss !! Energy lost during collision + ! Result + integer(I4B) :: status !! Status flag assigned to this outcome + ! Internals + integer(I4B) :: i, istart, nfrag, ibiggest, nfamily, nstart, nend + real(DP) :: mtot, avg_dens + real(DP), dimension(NDIM) :: xcom, vcom, Ip_new + real(DP), dimension(2) :: vol + real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag + real(DP), dimension(:), allocatable :: m_frag, rad_frag + integer(I4B), dimension(:), allocatable :: id_frag + logical :: lfailure + + write(*, '("Disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + + ! Collisional fragments will be uniformly distributed around the pre-impact barycenter + nfrag = NFRAG_DISRUPT + allocate(m_frag(nfrag)) + allocate(rad_frag(nfrag)) + allocate(xb_frag(NDIM, nfrag)) + allocate(vb_frag(NDIM, nfrag)) + allocate(rot_frag(NDIM, nfrag)) + allocate(Ip_frag(NDIM, nfrag)) + allocate(id_frag(nfrag)) + + mtot = sum(mass(:)) + xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot + vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot + + ! Get mass weighted mean of Ip and average density + Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot + vol(:) = 4._DP / 3._DP * PI * radius(:)**3 + avg_dens = mtot / sum(vol(:)) + + ! Distribute the mass among fragments, with a branch to check for the size of the second largest fragment + m_frag(1) = mass_res(1) + if (mass_res(2) > mass_res(1) / 3._DP) then + m_frag(2) = mass_res(2) + istart = 3 + else + istart = 2 + end if + ! Distribute remaining mass among the remaining bodies + do i = istart, nfrag + m_frag(i) = (mtot - sum(m_frag(1:istart - 1))) / (nfrag - istart + 1) + end do + + ! Distribute any residual mass if there is any and set the radius + m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) + rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) + id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] + + do i = 1, nfrag + Ip_frag(:, i) = Ip_new(:) + end do + + call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & + nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) + + if (lfailure) then + write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' + status = ACTIVE + nfrag = 0 + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select + else + ! Populate the list of new bodies + write(*,'("Generating ",I2.0," fragments")') nfrag + status = DISRUPTION + call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + end if + + return + end function symba_collision_casedisruption + + + module function symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Create the fragments resulting from a non-catastrophic hit-and-run collision + !! + implicit none + ! Arguments + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision + real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation + real(DP), intent(inout) :: Qloss !! Energy lost during collision + ! Result + integer(I4B) :: status !! Status flag assigned to this outcome + ! Internals + integer(I4B) :: i, nfrag, jproj, jtarg, idstart, ibiggest, nfamily + real(DP) :: mtot, avg_dens + real(DP), dimension(NDIM) :: xcom, vcom + real(DP), dimension(2) :: vol + real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag + real(DP), dimension(:), allocatable :: m_frag, rad_frag + integer(I4B), dimension(:), allocatable :: id_frag + logical :: lpure + logical, dimension(system%pl%nbody) :: lmask + + write(*, '("Hit and run between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + + mtot = sum(mass(:)) + xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot + vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot + lpure = .false. + + ! The largest body will stay untouched + if (mass(1) > mass(2)) then + jtarg = 1 + jproj = 2 + else + jtarg = 2 + jproj = 1 + end if + + if (mass_res(2) > 0.9_DP * mass(jproj)) then ! Pure hit and run, so we'll just keep the two bodies untouched + write(*,*) 'Pure hit and run. No new fragments generated.' + nfrag = 0 + lpure = .true. + else ! Imperfect hit and run, so we'll keep the largest body and destroy the other + nfrag = NFRAG_DISRUPT - 1 + lpure = .false. + allocate(m_frag(nfrag)) + allocate(id_frag(nfrag)) + allocate(rad_frag(nfrag)) + allocate(xb_frag(NDIM, nfrag)) + allocate(vb_frag(NDIM, nfrag)) + allocate(rot_frag(NDIM, nfrag)) + allocate(Ip_frag(NDIM, nfrag)) + m_frag(1) = mass(jtarg) + ibiggest = maxloc(system%pl%Gmass(family(:)), dim=1) + id_frag(1) = system%pl%id(ibiggest) + rad_frag(1) = radius(jtarg) + xb_frag(:, 1) = x(:, jtarg) + vb_frag(:, 1) = v(:, jtarg) + Ip_frag(:,1) = Ip(:, jtarg) + + ! Get mass weighted mean of Ip and average density + vol(:) = 4._DP / 3._DP * pi * radius(:)**3 + avg_dens = mass(jproj) / vol(jproj) + m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) + rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) + m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) + id_frag(2:nfrag) = [(i, i = system%maxid + 1, system%maxid + nfrag - 1)] + + do i = 1, nfrag + Ip_frag(:, i) = Ip(:, jproj) + end do + + ! Put the fragments on the circle surrounding the center of mass of the system + call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & + nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lpure) + if (lpure) then + write(*,*) 'Should have been a pure hit and run instead' + nfrag = 0 + else + write(*,'("Generating ",I2.0," fragments")') nfrag + end if + end if + if (lpure) then ! Reset these bodies back to being active so that nothing further is done to them + status = ACTIVE + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select + else + status = HIT_AND_RUN + call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + end if + + return + end function symba_collision_casehitandrun + + + module function symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) + !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Merge planets. + !! + !! Adapted from David E. Kaufmann's Swifter routines symba_merge_pl.f90 and symba_discard_merge_pl.f90 + !! + !! Adapted from Hal Levison's Swift routines symba5_merge.f and discard_mass_merge.f + implicit none + ! Arguments + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision + real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + ! Result + integer(I4B) :: status !! Status flag assigned to this outcome + ! Internals + integer(I4B) :: i, j, ibiggest, nfamily + real(DP) :: volume_new, pe + real(DP), dimension(NDIM) :: xc, vc, xcrossv + real(DP), dimension(2) :: vol + real(DP), dimension(NDIM) :: L_orb_old, L_spin_old + real(DP), dimension(NDIM) :: L_spin_new + logical, dimension(system%pl%nbody) :: lmask + real(DP), dimension(NDIM, 1) :: vb_frag, xb_frag, rot_frag, Ip_frag + real(DP), dimension(1) :: m_frag, rad_frag + integer(I4B), dimension(1) :: id_frag + + select type(pl => system%pl) + class is (symba_pl) + write(*, '("Merging bodies ",I8,99(:,",",I8))') pl%id(family(:)) + + ibiggest = maxloc(pl%Gmass(family(:)), dim=1) + id_frag(1) = pl%id(family(ibiggest)) + + m_frag(1) = sum(mass(:)) + + ! Merged body is created at the barycenter of the original bodies + xb_frag(:,1) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / m_frag(1) + vb_frag(:,1) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / m_frag(1) + + ! Get mass weighted mean of Ip and + vol(:) = 4._DP / 3._DP * PI * radius(:)**3 + volume_new = sum(vol(:)) + rad_frag(1) = (3 * volume_new / (4 * PI))**(1._DP / 3._DP) + + L_orb_old(:) = 0.0_DP + + ! Compute orbital angular momentum of pre-impact system + do i = 1, 2 + xc(:) = x(:, i) - xb_frag(:,1) + vc(:) = v(:, i) - vb_frag(:,1) + xcrossv(:) = xc(:) .cross. vc(:) + L_orb_old(:) = L_orb_old(:) + mass(i) * xcrossv(:) + end do + + if (param%lrotation) then + Ip_frag(:,1) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / m_frag(1) + L_spin_old(:) = L_spin(:,1) + L_spin(:,2) + + ! Conserve angular momentum by putting pre-impact orbital momentum into spin of the new body + L_spin_new(:) = L_orb_old(:) + L_spin_old(:) + + ! Assume prinicpal axis rotation on 3rd Ip axis + rot_frag(:,1) = L_spin_new(:) / (Ip_frag(3,1) * m_frag(1) * rad_frag(1)**2) + else ! If spin is not enabled, we will consider the lost pre-collision angular momentum as "escaped" and add it to our bookkeeping variable + system%Lescape(:) = system%Lescape(:) + L_orb_old(:) + end if + + ! Keep track of the component of potential energy due to the pre-impact family for book-keeping + nfamily = size(family(:)) + pe = 0.0_DP + do j = 1, nfamily + do i = j + 1, nfamily + pe = pe - pl%mass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) + end do + end do + system%Ecollisions = system%Ecollisions + pe + system%Euntracked = system%Euntracked - pe + + status = MERGED + call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + + end select + + return + end function symba_collision_casemerge + + + module function symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Create the fragments resulting from a supercatastrophic collision + !! + implicit none + ! Arguments + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision + real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation + real(DP), intent(inout) :: Qloss !! Energy lost during collision + ! Result + integer(I4B) :: status !! Status flag assigned to this outcome + ! Internals + integer(I4B) :: i, nfrag, ibiggest, nfamily, nstart, nend + real(DP) :: mtot, avg_dens, min_frag_mass + real(DP), dimension(NDIM) :: xcom, vcom + real(DP), dimension(2) :: vol + real(DP), dimension(NDIM) :: Ip_new + real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag + real(DP), dimension(:), allocatable :: m_frag, rad_frag + integer(I4B), dimension(:), allocatable :: id_frag + logical :: lfailure + logical, dimension(system%pl%nbody) :: lmask + + write(*, '("Supercatastrophic disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + + ! Collisional fragments will be uniformly distributed around the pre-impact barycenter + nfrag = NFRAG_SUPERCAT + allocate(m_frag(nfrag)) + allocate(rad_frag(nfrag)) + allocate(id_frag(nfrag)) + allocate(xb_frag(NDIM, nfrag)) + allocate(vb_frag(NDIM, nfrag)) + allocate(rot_frag(NDIM, nfrag)) + allocate(Ip_frag(NDIM, nfrag)) + + mtot = sum(mass(:)) + xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot + vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot + + ! Get mass weighted mean of Ip and average density + Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot + vol(:) = 4._DP / 3._DP * pi * radius(:)**3 + avg_dens = mtot / sum(vol(:)) + + ! If we are adding the first and largest fragment (lr), check to see if its mass is SMALLER than an equal distribution of + ! mass between all fragments. If so, we will just distribute the mass equally between the fragments + min_frag_mass = mtot / nfrag + if (mass_res(1) < min_frag_mass) then + m_frag(:) = min_frag_mass + else + m_frag(1) = mass_res(1) + m_frag(2:nfrag) = (mtot - mass_res(1)) / (nfrag - 1) + end if + ! Distribute any residual mass if there is any and set the radius + m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) + rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) + id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] + + do i = 1, nfrag + Ip_frag(:, i) = Ip_new(:) + end do + + call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & + nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) + + if (lfailure) then + write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' + status = ACTIVE + nfrag = 0 + select type(pl => system%pl) + class is (symba_pl) + pl%status(family(:)) = status + pl%ldiscard(family(:)) = .false. + pl%lcollision(family(:)) = .false. + end select + else + ! Populate the list of new bodies + write(*,'("Generating ",I2.0," fragments")') nfrag + status = SUPERCATASTROPHIC + call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + end if + + return + end function symba_collision_casesupercatastrophic + + module function symba_collision_check_encounter(self, system, param, t, dt, irec) result(lany_collision) !! author: David A. Minton !! @@ -404,6 +785,129 @@ module subroutine symba_collision_make_family_pl(self, idx) end subroutine symba_collision_make_family_pl + subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + !! author: David A. Minton + !! + !! Fills the pl_discards and pl_adds with removed and added bodies + !! + implicit none + ! Arguments + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision + integer(I4B), dimension(:), intent(in) :: id_frag !! List of fragment ids + real(DP), dimension(:), intent(in) :: m_frag, rad_frag !! Distribution of fragment mass and radii + real(DP), dimension(:,:), intent(in) :: Ip_frag !! Fragment rotational inertia vectors + real(DP), dimension(:,:), intent(in) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors + integer(I4B), intent(in) :: status !! Status flag to assign to adds + ! Internals + integer(I4B) :: i, ibiggest, nstart, nend, nfamily, nfrag + logical, dimension(system%pl%nbody) :: lmask + class(symba_pl), allocatable :: plnew + + select type(pl => system%pl) + class is (symba_pl) + select type(pl_discards => system%pl_discards) + class is (symba_merger) + associate(pl_adds => system%pl_adds, cb => system%cb) + + ! Add the family bodies to the subtraction list + nfamily = size(family(:)) + nfrag = size(m_frag(:)) + lmask(:) = .false. + lmask(family(:)) = .true. + pl%status(family(:)) = MERGED + nstart = pl_discards%nbody + 1 + nend = pl_discards%nbody + nfamily + call pl_discards%append(pl, lmask) + pl%ldiscard(family(:)) = .true. + pl%lcollision(family(:)) = .true. + + ! Record how many bodies were subtracted in this event + pl_discards%ncomp(nstart:nend) = nfamily + + ! Setup new bodies + allocate(plnew, mold=pl) + call plnew%setup(nfrag, param) + ibiggest = maxloc(pl%Gmass(family(:)), dim=1) + + plnew%id(:) = id_frag(:) + system%maxid = system%maxid + nfrag + plnew%lcollision(:) = .false. + plnew%ldiscard(:) = .false. + plnew%xb(:,:) = xb_frag(:, :) + plnew%vb(:,:) = vb_frag(:, :) + do i = 1, nfrag + plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) + plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) + end do + plnew%mass(:) = m_frag(:) + plnew%Gmass(:) = param%GU * m_frag(:) + plnew%radius(:) = rad_frag(:) + plnew%density(:) = m_frag(:) / rad_frag(:) + + select case(status) + case(DISRUPTION) + plnew%info(:)%origin_type = "Disruption" + plnew%status(:) = NEW_PARTICLE + plnew%info(:)%origin_time = param%t + do i = 1, nfrag + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(SUPERCATASTROPHIC) + plnew%info(:)%origin_type = "Supercatastrophic" + plnew%status(:) = NEW_PARTICLE + plnew%info(:)%origin_time = param%t + do i = 1, nfrag + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(HIT_AND_RUN) + plnew%info(1) = pl%info(ibiggest) + plnew%status(1) = OLD_PARTICLE + plnew%status(2:nfrag) = NEW_PARTICLE + plnew%info(2:nfrag)%origin_type = "Hit and run fragment" + plnew%info(2:nfrag)%origin_time = param%t + do i = 2, nfrag + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(MERGED) + plnew%info(1) = pl%info(ibiggest) + plnew%status(1) = OLD_PARTICLE + end select + + if (param%lrotation) then + plnew%Ip(:,:) = Ip_frag(:,:) + plnew%rot(:,:) = rot_frag(:,:) + end if + + if (param%ltides) then + plnew%Q = pl%Q(ibiggest) + plnew%k2 = pl%k2(ibiggest) + plnew%tlag = pl%tlag(ibiggest) + end if + + call plnew%set_mu(cb) + pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY + + ! Append the new merged body to the list and record how many we made + nstart = pl_adds%nbody + 1 + nend = pl_adds%nbody + plnew%nbody + call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) + pl_adds%ncomp(nstart:nend) = plnew%nbody + + call plnew%setup(0, param) + deallocate(plnew) + end associate + end select + end select + + return + end subroutine symba_collision_mergeaddsub + + module subroutine symba_collision_resolve_fragmentations(self, system, param) !! author: David A. Minton !! @@ -475,13 +979,13 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) select case (regime) case (COLLRESOLVE_REGIME_DISRUPTION) - status = symba_fragmentation_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - status = symba_fragmentation_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_HIT_AND_RUN) - status = symba_fragmentation_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - status = symba_fragmentation_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) case default write(*,*) "Error in symba_collision, unrecognized collision regime" call util_exit(FAILURE) @@ -521,7 +1025,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) lgoodcollision = symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - status = symba_fragmentation_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) end do end select end associate diff --git a/src/symba/symba_fragmentation.f90 b/src/symba/symba_fragmentation.f90 deleted file mode 100644 index 13cad78a7..000000000 --- a/src/symba/symba_fragmentation.f90 +++ /dev/null @@ -1,508 +0,0 @@ -submodule (symba_classes) s_symba_fragmentation - use swiftest - - integer(I4B), parameter :: NFRAG_DISRUPT = 12 - integer(I4B), parameter :: NFRAG_SUPERCAT = 20 -contains - - module function symba_fragmentation_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Create the fragments resulting from a non-catastrophic disruption collision - !! - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision - ! Result - integer(I4B) :: status !! Status flag assigned to this outcome - ! Internals - integer(I4B) :: i, istart, nfrag, ibiggest, nfamily, nstart, nend - real(DP) :: mtot, avg_dens - real(DP), dimension(NDIM) :: xcom, vcom, Ip_new - real(DP), dimension(2) :: vol - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag - logical :: lfailure - - write(*, '("Disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) - - ! Collisional fragments will be uniformly distributed around the pre-impact barycenter - nfrag = NFRAG_DISRUPT - allocate(m_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - allocate(id_frag(nfrag)) - - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - - ! Get mass weighted mean of Ip and average density - Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot - vol(:) = 4._DP / 3._DP * PI * radius(:)**3 - avg_dens = mtot / sum(vol(:)) - - ! Distribute the mass among fragments, with a branch to check for the size of the second largest fragment - m_frag(1) = mass_res(1) - if (mass_res(2) > mass_res(1) / 3._DP) then - m_frag(2) = mass_res(2) - istart = 3 - else - istart = 2 - end if - ! Distribute remaining mass among the remaining bodies - do i = istart, nfrag - m_frag(i) = (mtot - sum(m_frag(1:istart - 1))) / (nfrag - istart + 1) - end do - - ! Distribute any residual mass if there is any and set the radius - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] - - do i = 1, nfrag - Ip_frag(:, i) = Ip_new(:) - end do - - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) - - if (lfailure) then - write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' - status = ACTIVE - nfrag = 0 - select type(pl => system%pl) - class is (symba_pl) - pl%status(family(:)) = status - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. - end select - else - ! Populate the list of new bodies - write(*,'("Generating ",I2.0," fragments")') nfrag - status = DISRUPTION - call symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - end if - - return - end function symba_fragmentation_casedisruption - - - module function symba_fragmentation_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Create the fragments resulting from a non-catastrophic hit-and-run collision - !! - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision - ! Result - integer(I4B) :: status !! Status flag assigned to this outcome - ! Internals - integer(I4B) :: i, nfrag, jproj, jtarg, idstart, ibiggest, nfamily - real(DP) :: mtot, avg_dens - real(DP), dimension(NDIM) :: xcom, vcom - real(DP), dimension(2) :: vol - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag - logical :: lpure - logical, dimension(system%pl%nbody) :: lmask - - write(*, '("Hit and run between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) - - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - lpure = .false. - - ! The largest body will stay untouched - if (mass(1) > mass(2)) then - jtarg = 1 - jproj = 2 - else - jtarg = 2 - jproj = 1 - end if - - if (mass_res(2) > 0.9_DP * mass(jproj)) then ! Pure hit and run, so we'll just keep the two bodies untouched - write(*,*) 'Pure hit and run. No new fragments generated.' - nfrag = 0 - lpure = .true. - else ! Imperfect hit and run, so we'll keep the largest body and destroy the other - nfrag = NFRAG_DISRUPT - 1 - lpure = .false. - allocate(m_frag(nfrag)) - allocate(id_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - m_frag(1) = mass(jtarg) - ibiggest = maxloc(system%pl%Gmass(family(:)), dim=1) - id_frag(1) = system%pl%id(ibiggest) - rad_frag(1) = radius(jtarg) - xb_frag(:, 1) = x(:, jtarg) - vb_frag(:, 1) = v(:, jtarg) - Ip_frag(:,1) = Ip(:, jtarg) - - ! Get mass weighted mean of Ip and average density - vol(:) = 4._DP / 3._DP * pi * radius(:)**3 - avg_dens = mass(jproj) / vol(jproj) - m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) - rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - id_frag(2:nfrag) = [(i, i = system%maxid + 1, system%maxid + nfrag - 1)] - - do i = 1, nfrag - Ip_frag(:, i) = Ip(:, jproj) - end do - - ! Put the fragments on the circle surrounding the center of mass of the system - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lpure) - if (lpure) then - write(*,*) 'Should have been a pure hit and run instead' - nfrag = 0 - else - write(*,'("Generating ",I2.0," fragments")') nfrag - end if - end if - if (lpure) then ! Reset these bodies back to being active so that nothing further is done to them - status = ACTIVE - select type(pl => system%pl) - class is (symba_pl) - pl%status(family(:)) = status - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. - end select - else - status = HIT_AND_RUN - call symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - end if - - return - end function symba_fragmentation_casehitandrun - - - module function symba_fragmentation_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Merge planets. - !! - !! Adapted from David E. Kaufmann's Swifter routines symba_merge_pl.f90 and symba_discard_merge_pl.f90 - !! - !! Adapted from Hal Levison's Swift routines symba5_merge.f and discard_mass_merge.f - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - ! Result - integer(I4B) :: status !! Status flag assigned to this outcome - ! Internals - integer(I4B) :: i, j, ibiggest, nfamily - real(DP) :: volume_new, pe - real(DP), dimension(NDIM) :: xc, vc, xcrossv - real(DP), dimension(2) :: vol - real(DP), dimension(NDIM) :: L_orb_old, L_spin_old - real(DP), dimension(NDIM) :: L_spin_new - logical, dimension(system%pl%nbody) :: lmask - real(DP), dimension(NDIM, 1) :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(1) :: m_frag, rad_frag - integer(I4B), dimension(1) :: id_frag - - select type(pl => system%pl) - class is (symba_pl) - write(*, '("Merging bodies ",I8,99(:,",",I8))') pl%id(family(:)) - - ibiggest = maxloc(pl%Gmass(family(:)), dim=1) - id_frag(1) = pl%id(family(ibiggest)) - - m_frag(1) = sum(mass(:)) - - ! Merged body is created at the barycenter of the original bodies - xb_frag(:,1) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / m_frag(1) - vb_frag(:,1) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / m_frag(1) - - ! Get mass weighted mean of Ip and - vol(:) = 4._DP / 3._DP * PI * radius(:)**3 - volume_new = sum(vol(:)) - rad_frag(1) = (3 * volume_new / (4 * PI))**(1._DP / 3._DP) - - L_orb_old(:) = 0.0_DP - - ! Compute orbital angular momentum of pre-impact system - do i = 1, 2 - xc(:) = x(:, i) - xb_frag(:,1) - vc(:) = v(:, i) - vb_frag(:,1) - xcrossv(:) = xc(:) .cross. vc(:) - L_orb_old(:) = L_orb_old(:) + mass(i) * xcrossv(:) - end do - - if (param%lrotation) then - Ip_frag(:,1) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / m_frag(1) - L_spin_old(:) = L_spin(:,1) + L_spin(:,2) - - ! Conserve angular momentum by putting pre-impact orbital momentum into spin of the new body - L_spin_new(:) = L_orb_old(:) + L_spin_old(:) - - ! Assume prinicpal axis rotation on 3rd Ip axis - rot_frag(:,1) = L_spin_new(:) / (Ip_frag(3,1) * m_frag(1) * rad_frag(1)**2) - else ! If spin is not enabled, we will consider the lost pre-collision angular momentum as "escaped" and add it to our bookkeeping variable - system%Lescape(:) = system%Lescape(:) + L_orb_old(:) - end if - - ! Keep track of the component of potential energy due to the pre-impact family for book-keeping - nfamily = size(family(:)) - pe = 0.0_DP - do j = 1, nfamily - do i = j + 1, nfamily - pe = pe - pl%mass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) - end do - end do - system%Ecollisions = system%Ecollisions + pe - system%Euntracked = system%Euntracked - pe - - status = MERGED - call symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - - end select - - return - end function symba_fragmentation_casemerge - - - module function symba_fragmentation_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Create the fragments resulting from a supercatastrophic collision - !! - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision - ! Result - integer(I4B) :: status !! Status flag assigned to this outcome - ! Internals - integer(I4B) :: i, nfrag, ibiggest, nfamily, nstart, nend - real(DP) :: mtot, avg_dens, min_frag_mass - real(DP), dimension(NDIM) :: xcom, vcom - real(DP), dimension(2) :: vol - real(DP), dimension(NDIM) :: Ip_new - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag - logical :: lfailure - logical, dimension(system%pl%nbody) :: lmask - - write(*, '("Supercatastrophic disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) - - ! Collisional fragments will be uniformly distributed around the pre-impact barycenter - nfrag = NFRAG_SUPERCAT - allocate(m_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(id_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - - ! Get mass weighted mean of Ip and average density - Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot - vol(:) = 4._DP / 3._DP * pi * radius(:)**3 - avg_dens = mtot / sum(vol(:)) - - ! If we are adding the first and largest fragment (lr), check to see if its mass is SMALLER than an equal distribution of - ! mass between all fragments. If so, we will just distribute the mass equally between the fragments - min_frag_mass = mtot / nfrag - if (mass_res(1) < min_frag_mass) then - m_frag(:) = min_frag_mass - else - m_frag(1) = mass_res(1) - m_frag(2:nfrag) = (mtot - mass_res(1)) / (nfrag - 1) - end if - ! Distribute any residual mass if there is any and set the radius - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] - - do i = 1, nfrag - Ip_frag(:, i) = Ip_new(:) - end do - - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) - - if (lfailure) then - write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' - status = ACTIVE - nfrag = 0 - select type(pl => system%pl) - class is (symba_pl) - pl%status(family(:)) = status - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. - end select - else - ! Populate the list of new bodies - write(*,'("Generating ",I2.0," fragments")') nfrag - status = SUPERCATASTROPHIC - call symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - end if - - return - end function symba_fragmentation_casesupercatastrophic - - - subroutine symba_fragmentation_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - !! author: David A. Minton - !! - !! Fills the pl_discards and pl_adds with removed and added bodies - !! - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - integer(I4B), dimension(:), intent(in) :: id_frag !! List of fragment ids - real(DP), dimension(:), intent(in) :: m_frag, rad_frag !! Distribution of fragment mass and radii - real(DP), dimension(:,:), intent(in) :: Ip_frag !! Fragment rotational inertia vectors - real(DP), dimension(:,:), intent(in) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors - integer(I4B), intent(in) :: status !! Status flag to assign to adds - ! Internals - integer(I4B) :: i, ibiggest, nstart, nend, nfamily, nfrag - logical, dimension(system%pl%nbody) :: lmask - class(symba_pl), allocatable :: plnew - - select type(pl => system%pl) - class is (symba_pl) - select type(pl_discards => system%pl_discards) - class is (symba_merger) - associate(pl_adds => system%pl_adds, cb => system%cb) - - ! Add the family bodies to the subtraction list - nfamily = size(family(:)) - nfrag = size(m_frag(:)) - lmask(:) = .false. - lmask(family(:)) = .true. - pl%status(family(:)) = MERGED - nstart = pl_discards%nbody + 1 - nend = pl_discards%nbody + nfamily - call pl_discards%append(pl, lmask) - pl%ldiscard(family(:)) = .true. - pl%lcollision(family(:)) = .true. - - ! Record how many bodies were subtracted in this event - pl_discards%ncomp(nstart:nend) = nfamily - - ! Setup new bodies - allocate(plnew, mold=pl) - call plnew%setup(nfrag, param) - ibiggest = maxloc(pl%Gmass(family(:)), dim=1) - - plnew%id(:) = id_frag(:) - system%maxid = system%maxid + nfrag - plnew%lcollision(:) = .false. - plnew%ldiscard(:) = .false. - plnew%xb(:,:) = xb_frag(:, :) - plnew%vb(:,:) = vb_frag(:, :) - do i = 1, nfrag - plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) - plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) - end do - plnew%mass(:) = m_frag(:) - plnew%Gmass(:) = param%GU * m_frag(:) - plnew%radius(:) = rad_frag(:) - plnew%density(:) = m_frag(:) / rad_frag(:) - - select case(status) - case(DISRUPTION) - plnew%info(:)%origin_type = "Disruption" - plnew%status(:) = NEW_PARTICLE - plnew%info(:)%origin_time = param%t - do i = 1, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(SUPERCATASTROPHIC) - plnew%info(:)%origin_type = "Supercatastrophic" - plnew%status(:) = NEW_PARTICLE - plnew%info(:)%origin_time = param%t - do i = 1, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(HIT_AND_RUN) - plnew%info(1) = pl%info(ibiggest) - plnew%status(1) = OLD_PARTICLE - plnew%status(2:nfrag) = NEW_PARTICLE - plnew%info(2:nfrag)%origin_type = "Hit and run fragment" - plnew%info(2:nfrag)%origin_time = param%t - do i = 2, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(MERGED) - plnew%info(1) = pl%info(ibiggest) - plnew%status(1) = OLD_PARTICLE - end select - - if (param%lrotation) then - plnew%Ip(:,:) = Ip_frag(:,:) - plnew%rot(:,:) = rot_frag(:,:) - end if - - if (param%ltides) then - plnew%Q = pl%Q(ibiggest) - plnew%k2 = pl%k2(ibiggest) - plnew%tlag = pl%tlag(ibiggest) - end if - - call plnew%set_mu(cb) - pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY - - ! Append the new merged body to the list and record how many we made - nstart = pl_adds%nbody + 1 - nend = pl_adds%nbody + plnew%nbody - call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) - pl_adds%ncomp(nstart:nend) = plnew%nbody - - call plnew%setup(0, param) - deallocate(plnew) - end associate - end select - end select - - return - end subroutine symba_fragmentation_mergeaddsub - -end submodule s_symba_fragmentation diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 69d7e2cbd..2e43946cb 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -212,8 +212,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) - if (lplpl_collision) call pl%discard(system, param) - if (lpltp_collision) call tp%discard(system, param) + ! if (lplpl_collision) call pl%discard(system, param) + ! if (lpltp_collision) call tp%discard(system, param) end if call self%set_recur_levels(ireci) From 2114f46d6d1a4ac8153a518c3064404c6747840f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:26:30 -0400 Subject: [PATCH 038/315] Fixed bad io error checking in writing encounter files --- src/io/io.f90 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c5519975f..933bcbdfb 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1302,9 +1302,13 @@ module subroutine io_write_encounter(self, pl, encbody, param) if (param%enc_out == "" .or. self%nenc == 0) return - open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - if ((ierr /= 0) .and. lfirst) then - open(unit = LUN, file = param%enc_out, status = 'NEW', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + open(unit = LUN, file = param%enc_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr, iomsg = errmsg) + if (ierr /= 0) then + if (lfirst) then + open(unit = LUN, file = param%enc_out, status = 'NEW', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + else + goto 667 + end if end if lfirst = .false. @@ -1335,7 +1339,7 @@ module subroutine io_write_encounter(self, pl, encbody, param) return 667 continue - write(*,*) "Error writing discard file: " // trim(adjustl(errmsg)) + write(*,*) "Error writing encounter file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) end subroutine io_write_encounter From f7d325542646de35f2eae8cdfc20a46d591c13e5 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:42:07 -0400 Subject: [PATCH 039/315] Testing ability to resolve collisions in the middle of the recursion step, like the original Swifter does. --- src/modules/swiftest_globals.f90 | 2 +- src/symba/symba_collision.f90 | 14 +++++++++----- src/symba/symba_discard.f90 | 2 ++ src/symba/symba_step.f90 | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index bf070e162..cbe626e43 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -41,7 +41,7 @@ module swiftest_globals integer(I4B), parameter :: SYMBA = 8 integer(I4B), parameter :: RINGMOONS = 9 - integer(I4B), parameter :: STRMAX = 128 !! Maximum size of character strings + integer(I4B), parameter :: STRMAX = 512 !! Maximum size of character strings character(*), parameter :: ASCII_TYPE = 'ASCII' !! Symbolic name for ASCII file type character(*), parameter :: REAL4_TYPE = 'REAL4' !! Symbolic name for binary file type REAL4 diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 24c0e3a0c..2fb99ccee 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -830,11 +830,10 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, allocate(plnew, mold=pl) call plnew%setup(nfrag, param) ibiggest = maxloc(pl%Gmass(family(:)), dim=1) - + + ! Copy over identification, information, and physical properties of the new bodies from the fragment list plnew%id(:) = id_frag(:) system%maxid = system%maxid + nfrag - plnew%lcollision(:) = .false. - plnew%ldiscard(:) = .false. plnew%xb(:,:) = xb_frag(:, :) plnew%vb(:,:) = vb_frag(:, :) do i = 1, nfrag @@ -888,9 +887,14 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%k2 = pl%k2(ibiggest) plnew%tlag = pl%tlag(ibiggest) end if - + call plnew%set_mu(cb) - pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY + !Copy over or set integration parameters for new bodies + plnew%lcollision(:) = .false. + plnew%ldiscard(:) = .false. + plnew%lmtiny(:) = plnew%Gmass(:) > param%GMTINY + plnew%levelg(:) = pl%levelg(ibiggest) + plnew%levelm(:) = pl%levelm(ibiggest) ! Append the new merged body to the list and record how many we made nstart = pl_adds%nbody + 1 diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 486efcc2c..c35a1565c 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -307,6 +307,8 @@ module subroutine symba_discard_pl(self, system, param) else call plplcollision_list%resolve_mergers(system, param) end if + ! Destroy the collision list now that the collisions are resolved + call plplcollision_list%setup(0) end if if (any(pl%ldiscard(:))) then diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 2e43946cb..69d7e2cbd 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -212,8 +212,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) - ! if (lplpl_collision) call pl%discard(system, param) - ! if (lpltp_collision) call tp%discard(system, param) + if (lplpl_collision) call pl%discard(system, param) + if (lpltp_collision) call tp%discard(system, param) end if call self%set_recur_levels(ireci) From f818e662a8fbc101d575bbd169f818a98d6fa9fd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 12:42:45 -0400 Subject: [PATCH 040/315] Updated example for Swifter/Swiftest comparison of SyMBA --- .../swiftest_vs_swifter.ipynb | 24 +- .../mars_disk/param.swifter.in | 2 +- .../mars_disk/param.swiftest.in | 2 +- .../mars_disk/swiftest_vs_swifter.ipynb | 557 ++++++++++++++++++ 4 files changed, 571 insertions(+), 14 deletions(-) create mode 100644 examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb index dee66b3b6..ec0e145ef 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb @@ -81,8 +81,8 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, "execution_count": 6, @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -509,7 +509,7 @@ " -3.40231310e-09])\n", "Coordinates:\n", " id float64 2.0\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      float64
      2.0
      array(2.)
    • time (y)
      (time (y))
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", @@ -599,7 +599,7 @@ " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" ] }, - "execution_count": 14, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -610,7 +610,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -987,7 +987,7 @@ " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n", "Coordinates:\n", " id float64 100.0\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      float64
      100.0
      array(100.)
    • time (y)
      (time (y))
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", @@ -1029,7 +1029,7 @@ " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" ] }, - "execution_count": 11, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -1441,7 +1441,7 @@ " nan])\n", "Coordinates:\n", " id int64 100\n", - " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      int64
      100
      array(100)
    • time
      (time)
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", diff --git a/examples/symba_swifter_comparison/mars_disk/param.swifter.in b/examples/symba_swifter_comparison/mars_disk/param.swifter.in index f5cbe9a08..4bdc100aa 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swifter.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swifter.in @@ -1,5 +1,5 @@ T0 0.0 -TSTOP 6000.0 +TSTOP 3000.0 DT 600.0 PL_IN pl.swifter.in TP_IN tp.in diff --git a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in index 406344ff0..0d48de602 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in @@ -1,6 +1,6 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 6000.0 +TSTOP 3000.0 DT 600.0 PL_IN pl.swiftest.in TP_IN tp.in diff --git a/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb new file mode 100644 index 000000000..960e37a53 --- /dev/null +++ b/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb @@ -0,0 +1,557 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftest\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n", + "Reading in time 2.520e+03\n", + "Creating Dataset\n", + "Successfully converted 43 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 2.520e+03\n", + "Creating Dataset\n", + "Successfully converted 43 output frames.\n", + "\n", + "Adding particle info to Dataset\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestsim.ds - swiftersim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vz'].plot.line(ax=ax, x=\"time\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "plt.show()\n", + "print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "last = swiftdiff.isel(time=-2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "badval = last.where(last['pz'] != 0, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:  (id: 1)\n",
    +       "Coordinates:\n",
    +       "  * id       (id) float64 85.0\n",
    +       "    time     float64 2.46e+03\n",
    +       "Data variables:\n",
    +       "    GMass    (id) float64 0.0\n",
    +       "    Radius   (id) float64 0.0\n",
    +       "    px       (id) float64 0.0\n",
    +       "    py       (id) float64 0.0\n",
    +       "    pz       (id) float64 -1.819e-12\n",
    +       "    vx       (id) float64 0.0\n",
    +       "    vy       (id) float64 0.0\n",
    +       "    vz       (id) float64 -1.11e-16
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 1)\n", + "Coordinates:\n", + " * id (id) float64 85.0\n", + " time float64 2.46e+03\n", + "Data variables:\n", + " GMass (id) float64 0.0\n", + " Radius (id) float64 0.0\n", + " px (id) float64 0.0\n", + " py (id) float64 0.0\n", + " pz (id) float64 -1.819e-12\n", + " vx (id) float64 0.0\n", + " vy (id) float64 0.0\n", + " vz (id) float64 -1.11e-16" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "badval" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "swiftestOOF", + "language": "python", + "name": "swiftestoof" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From a8c874a1ba08b2913dafd1914150a94d5d1acc71 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 17:21:56 -0400 Subject: [PATCH 041/315] Improved memory management of rearrange subroutines with generic programming --- src/modules/swiftest_classes.f90 | 49 +++- src/modules/symba_classes.f90 | 46 ++- src/symba/symba_collision.f90 | 101 ++++++- src/symba/symba_discard.f90 | 42 +-- src/symba/symba_step.f90 | 29 +- src/symba/symba_util.f90 | 133 ++++++--- src/util/util_append.f90 | 28 ++ src/util/util_sort.f90 | 466 +++++++++++++++++++------------ src/whm/whm_util.f90 | 16 +- 9 files changed, 622 insertions(+), 288 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 8949afdfa..bebf2acfa 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -324,6 +324,7 @@ module swiftest_classes real(DP), dimension(:), allocatable :: t !! Time of encounter contains procedure :: setup => setup_encounter !! A constructor that sets the number of encounters and allocates and initializes all arrays + procedure :: append => util_append_encounter !! Appends elements from one structure to another procedure :: copy => util_copy_encounter !! Copies elements from the source encounter list into self. procedure :: spill => util_spill_encounter !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) procedure :: resize => util_resize_encounter !! Checks the current size of the encounter list against the required size and extends it by a factor of 2 more than requested if it is too small. @@ -883,11 +884,18 @@ end subroutine util_append_arr_logical interface module subroutine util_append_body(self, source, lsource_mask) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest body object - class(swiftest_body), intent(in) :: source !! Source object to append + class(swiftest_body), intent(inout) :: self !! Swiftest body object + class(swiftest_body), intent(in) :: source !! Source object to append logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine util_append_body + module subroutine util_append_encounter(self, source, lsource_mask) + implicit none + class(swiftest_encounter), intent(inout) :: self !! Swiftest encounter list object + class(swiftest_encounter), intent(in) :: source !! Source object to append + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + end subroutine util_append_encounter + module subroutine util_append_pl(self, source, lsource_mask) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object @@ -1198,6 +1206,43 @@ module subroutine util_sort_index_dp(arr,ind) end subroutine util_sort_index_dp end interface util_sort + interface util_sort_rearrange + module subroutine util_sort_rearrange_arr_char_string(arr, ind, n) + implicit none + character(len=STRMAX), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_char_string + + module subroutine util_sort_rearrange_arr_DP(arr, ind, n) + implicit none + real(DP), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_DP + + module subroutine util_sort_rearrange_arr_DPvec(arr, ind, n) + implicit none + real(DP), dimension(:,:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_DPvec + + module subroutine util_sort_rearrange_arr_I4B(arr, ind, n) + implicit none + integer(I4B), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_I4B + + module subroutine util_sort_rearrange_arr_logical(arr, ind, n) + implicit none + logical, dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_logical + end interface util_sort_rearrange + interface module subroutine util_sort_rearrange_body(self, ind) implicit none diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index a07ce36fc..8516e3861 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -137,10 +137,11 @@ module symba_classes integer(I4B), dimension(:), allocatable :: level !! encounter recursion level contains procedure :: collision_check => symba_collision_check_encounter !! Checks if a test particle is going to collide with a massive body - procedure :: encounter_check => symba_encounter_check !! Checks if massive bodies are going through close encounters with each other + procedure :: encounter_check => symba_encounter_check !! Checks if massive bodies are going through close encounters with each other procedure :: kick => symba_kick_encounter !! Kick barycentric velocities of active test particles within SyMBA recursion procedure :: setup => symba_setup_encounter !! A constructor that sets the number of encounters and allocates and initializes all arrays procedure :: spill => symba_util_spill_encounter !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure :: append => symba_util_append_encounter !! Appends elements from one structure to another end type symba_encounter !******************************************************************************************************************************** @@ -149,6 +150,7 @@ module symba_classes !> SyMBA class for tracking pl-tp close encounters in a step type, extends(symba_encounter) :: symba_pltpenc contains + procedure :: resolve_collision => symba_collision_resolve_pltpenc !! Process the pl-tp collision list, then modifiy the massive bodies based on the outcome of the c end type symba_pltpenc !******************************************************************************************************************************** @@ -160,6 +162,7 @@ module symba_classes procedure :: extract_collisions => symba_collision_encounter_extract_collisions !! Processes the pl-pl encounter list remove only those encounters that led to a collision procedure :: resolve_fragmentations => symba_collision_resolve_fragmentations !! Process list of collisions, determine the collisional regime, and then create fragments procedure :: resolve_mergers => symba_collision_resolve_mergers !! Process list of collisions and merge colliding bodies together + procedure :: resolve_collision => symba_collision_resolve_plplenc !! Process the pl-pl collision list, then modifiy the massive bodies based on the outcome of the c end type symba_plplenc !******************************************************************************************************************************** @@ -221,6 +224,22 @@ module subroutine symba_collision_resolve_mergers(self, system, param) class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_collision_resolve_mergers + module subroutine symba_collision_resolve_plplenc(self, system, param, t) + implicit none + class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + real(DP), intent(in) :: t !! Current simulation time + end subroutine symba_collision_resolve_plplenc + + module subroutine symba_collision_resolve_pltpenc(self, system, param, t) + implicit none + class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + real(DP), intent(in) :: t !! Current simulation time + end subroutine symba_collision_resolve_pltpenc + module subroutine symba_discard_pl(self, system, param) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none @@ -502,6 +521,13 @@ end subroutine symba_util_append_arr_kin end interface interface + module subroutine symba_util_append_encounter(self, source, lsource_mask) + implicit none + class(symba_encounter), intent(inout) :: self !! SyMBA encounter list object + class(swiftest_encounter), intent(in) :: source !! Source object to append + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + end subroutine symba_util_append_encounter + module subroutine symba_util_append_merger(self, source, lsource_mask) use swiftest_classes, only : swiftest_body implicit none @@ -622,7 +648,25 @@ module subroutine symba_util_sort_tp(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order end subroutine symba_util_sort_tp + end interface + + interface util_sort_rearrange + module subroutine symba_util_sort_rearrange_arr_info(arr, ind, n) + implicit none + type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine symba_util_sort_rearrange_arr_info + module subroutine symba_util_sort_rearrange_arr_kin(arr, ind, n) + implicit none + type(symba_kinship), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine symba_util_sort_rearrange_arr_kin + end interface util_sort_rearrange + + interface module subroutine symba_util_sort_rearrange_pl(self, ind) implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body object diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 2fb99ccee..0e6c69440 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -333,7 +333,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, allocate(Ip_frag(NDIM, nfrag)) mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot + xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot ! Get mass weighted mean of Ip and average density @@ -393,7 +393,7 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec !! Adapted from Hal Levison's Swift routine symba5_merge.f implicit none ! Arguments - class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list object + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! current time @@ -451,7 +451,6 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec end do end if - do k = 1, nenc if (lcollision(k)) self%status(k) = COLLISION self%t(k) = t @@ -485,6 +484,14 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec lany_collision = any(lcollision(:)) + ! Extract the pl-pl encounter list and return the plplcollision_list + if (lany_collision) then + select type(plplenc_list => self) + class is (symba_plplenc) + call plplenc_list%extract_collisions(system, param) + end select + end if + return end function symba_collision_check_encounter @@ -604,7 +611,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v ! Find the barycenter of each body along with its children, if it has any do j = 1, 2 - x(:, j) = pl%xb(:, idx_parent(j)) + x(:, j) = pl%xh(:, idx_parent(j)) v(:, j) = pl%vb(:, idx_parent(j)) ! Assume principal axis rotation about axis corresponding to highest moment of inertia (3rd Ip) if (param%lrotation) then @@ -617,7 +624,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v idx_child = parent_child_index_array(j)%idx(i + 1) if (.not. pl%lcollision(idx_child)) cycle mchild = pl%mass(idx_child) - xchild(:) = pl%xb(:, idx_child) + xchild(:) = pl%xh(:, idx_child) vchild(:) = pl%vb(:, idx_child) volchild = (4.0_DP / 3.0_DP) * PI * pl%radius(idx_child)**3 volume(j) = volume(j) + volchild @@ -947,6 +954,10 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved + ! Convert from DH to barycentric + x(:,1) = x(:,1) + cb%xb(:) + x(:,2) = x(:,2) + cb%xb(:) + ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them ! to symba_regime if (mass(1) > mass(2)) then @@ -1020,7 +1031,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) logical :: lgoodcollision integer(I4B) :: i, status - associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) + associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2, cb => system%cb) select type(pl => system%pl) class is (symba_pl) do i = 1, ncollisions @@ -1029,6 +1040,11 @@ module subroutine symba_collision_resolve_mergers(self, system, param) lgoodcollision = symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved + + ! Convert from DH to barycentric + x(:,1) = x(:,1) + cb%xb(:) + x(:,2) = x(:,2) + cb%xb(:) + status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) end do end select @@ -1037,4 +1053,77 @@ module subroutine symba_collision_resolve_mergers(self, system, param) return end subroutine symba_collision_resolve_mergers + + module subroutine symba_collision_resolve_plplenc(self, system, param, t) + !! author: David A. Minton + !! + !! Process the pl-pl collision list, then modifiy the massive bodies based on the outcome of the collision + !! + implicit none + ! Arguments + class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + real(DP), intent(in) :: t !! Current simulation time + ! Internals + real(DP) :: Eorbit_before, Eorbit_after + + associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) + select type(pl => system%pl) + class is (symba_pl) + select type(param) + class is (symba_parameters) + if (plplcollision_list%nenc == 0) return ! No collisions to resolve + + write(*, *) "Collision between massive bodies detected at time t = ", t + if (param%lfragmentation) then + call plplcollision_list%resolve_fragmentations(system, param) + else + call plplcollision_list%resolve_mergers(system, param) + end if + + ! Destroy the collision list now that the collisions are resolved + call plplcollision_list%setup(0) + + ! Get the energy before the collision is resolved + if (param%lenergy) then + call system%get_energy_and_momentum(param) + Eorbit_before = system%te + end if + + call pl%rearray(system, param) + + if (param%lenergy) then + call system%get_energy_and_momentum(param) + Eorbit_after = system%te + system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) + end if + + end select + end select + end associate + + return + end subroutine symba_collision_resolve_plplenc + + + module subroutine symba_collision_resolve_pltpenc(self, system, param, t) + !! author: David A. Minton + !! + !! Process the pl-tp collision list, then modifiy the massive bodies based on the outcome of the collision + !! + implicit none + ! Arguments + class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-pl encounter list + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + real(DP), intent(in) :: t !! Current simulation tim + + call system%tp%discard(system, param) + + return + end subroutine symba_collision_resolve_pltpenc + + + end submodule s_symba_collision \ No newline at end of file diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index c35a1565c..70c0898a5 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -276,8 +276,7 @@ end subroutine symba_discard_peri_pl module subroutine symba_discard_pl(self, system, param) !! author: David A. Minton !! - !! Call the various flavors of discards for massive bodies in SyMBA runs, including discards due to colling with the central body, - !! escaping the system, or colliding with each other. + !! Call the various flavors of discards for massive bodies in SyMBA runs, including discards due to colliding with the central body or escaping the system implicit none ! Arguments class(symba_pl), intent(inout) :: self !! SyMBA test particle object @@ -291,38 +290,25 @@ module subroutine symba_discard_pl(self, system, param) select type(param) class is (symba_parameters) associate(pl => self, plplenc_list => system%plplenc_list, plplcollision_list => system%plplcollision_list) - call pl%h2b(system%cb) + call plplenc_list%write(pl, pl, param) - ! First deal with the non pl-pl collisions call symba_discard_nonplpl(self, system, param) - ! Extract the pl-pl encounter list and return the plplcollision_list - call plplenc_list%extract_collisions(system, param) - call plplenc_list%write(pl, pl, param) + if (.not.any(pl%ldiscard(:))) return - if ((plplcollision_list%nenc > 0) .and. any(pl%lcollision(:))) then - write(*, *) "Collision between massive bodies detected at time t = ",param%t - if (param%lfragmentation) then - call plplcollision_list%resolve_fragmentations(system, param) - else - call plplcollision_list%resolve_mergers(system, param) - end if - ! Destroy the collision list now that the collisions are resolved - call plplcollision_list%setup(0) + if (param%lenergy) then + call system%get_energy_and_momentum(param) + Eorbit_before = system%te end if - if (any(pl%ldiscard(:))) then - if (param%lenergy) then - call system%get_energy_and_momentum(param) - Eorbit_before = system%te - end if - call symba_discard_nonplpl_conservation(self, system, param) - call pl%rearray(system, param) - if (param%lenergy) then - call system%get_energy_and_momentum(param) - Eorbit_after = system%te - system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) - end if + call symba_discard_nonplpl_conservation(self, system, param) + + call pl%rearray(system, param) + + if (param%lenergy) then + call system%get_energy_and_momentum(param) + Eorbit_after = system%te + system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) end if end associate diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 69d7e2cbd..ca5aa43cf 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -108,32 +108,17 @@ module subroutine symba_step_set_recur_levels_system(self, ireci) ! Internals integer(I4B) :: k, irecp - associate(system => self, plplenc_list => self%plplenc_list, pltpenc_list => self%pltpenc_list) + associate(system => self, plplenc_list => self%plplenc_list, pltpenc_list => self%pltpenc_list, npl => self%pl%nbody, ntp => self%tp%nbody) select type(pl => self%pl) class is (symba_pl) select type(tp => self%tp) class is (symba_tp) irecp = ireci + 1 - if (plplenc_list%nenc > 0) then - do k = 1, plplenc_list%nenc - associate(i => plplenc_list%index1(k), j => plplenc_list%index2(k)) - if (pl%levelg(i) == irecp) pl%levelg(i) = ireci - if (pl%levelg(j) == irecp) pl%levelg(j) = ireci - end associate - end do - where(plplenc_list%level(1:plplenc_list%nenc) == irecp) plplenc_list%level(1:plplenc_list%nenc) = ireci - end if - - if (pltpenc_list%nenc > 0) then - do k = 1, pltpenc_list%nenc - associate(i => pltpenc_list%index1(k), j => pltpenc_list%index2(k)) - if (pl%levelg(i) == irecp) pl%levelg(i) = ireci - if (tp%levelg(j) == irecp) tp%levelg(j) = ireci - end associate - end do - where(pltpenc_list%level(1:pltpenc_list%nenc) == irecp) pltpenc_list%level(1:pltpenc_list%nenc) = ireci - end if + if (npl >0) where(pl%levelg(1:npl) == irecp) pl%levelg(1:npl) = ireci + if (ntp > 0) where(tp%levelg(1:ntp) == irecp) tp%levelg(1:ntp) = ireci + if (plplenc_list%nenc > 0) where(plplenc_list%level(1:plplenc_list%nenc) == irecp) plplenc_list%level(1:plplenc_list%nenc) = ireci + if (pltpenc_list%nenc > 0) where(pltpenc_list%level(1:pltpenc_list%nenc) == irecp) pltpenc_list%level(1:pltpenc_list%nenc) = ireci system%irec = ireci @@ -212,8 +197,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) - if (lplpl_collision) call pl%discard(system, param) - if (lpltp_collision) call tp%discard(system, param) + if (lplpl_collision) call plplenc_list%resolve_collision(system, param, t+dtl) + if (lpltp_collision) call pltpenc_list%resolve_collision(system, param, t+dtl) end if call self%set_recur_levels(ireci) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 05ee19f5e..8340f6e14 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -58,6 +58,29 @@ module subroutine symba_util_append_arr_kin(arr, source, nold, nsrc, lsource_mas end subroutine symba_util_append_arr_kin + module subroutine symba_util_append_encounter(self, source, lsource_mask) + !! author: David A. Minton + !! + !! Append components from one encounter list (pl-pl or pl-tp) body object to another. + !! This method will automatically resize the destination body if it is too small + implicit none + ! Arguments + class(symba_encounter), intent(inout) :: self !! SyMBA encounter list object + class(swiftest_encounter), intent(in) :: source !! Source object to append + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + + associate(nold => self%nenc, nsrc => source%nenc) + select type(source) + class is (symba_encounter) + call util_append(self%level, source%level, nold, nsrc, lsource_mask) + end select + call util_append_encounter(self, source, lsource_mask) + end associate + + return + end subroutine symba_util_append_encounter + + module subroutine symba_util_append_pl(self, source, lsource_mask) !! author: David A. Minton !! @@ -374,6 +397,8 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_pl), allocatable :: tmp !! The discarded body list. integer(I4B) :: i logical, dimension(:), allocatable :: lmask + class(symba_plplenc), allocatable :: plplenc_old + logical :: lencounter associate(pl => self, pl_adds => system%pl_adds) allocate(tmp, mold=pl) @@ -391,19 +416,24 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Add in any new bodies if (pl_adds%nbody > 0) then + ! First store the original plplenc list so we don't remove any of the original encounters + allocate(plplenc_old, source=system%plplenc_list) + + ! Append the adds to the main pl object call pl%append(pl_adds, lsource_mask=[(.true., i=1, pl_adds%nbody)]) + allocate(lmask(pl%nbody)) lmask(:) = pl%status(1:pl%nbody) == NEW_PARTICLE call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, pl%nbody)], lmask)) where(pl%status(:) /= INACTIVE) pl%status(:) = ACTIVE - end if - ! If there are still bodies in the system, sort by mass in descending order and re-index - if (pl%nbody > 0) then call pl%sort("mass", ascending=.false.) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY pl%nplm = count(pl%lmtiny(:)) + + ! Reindex call pl%eucl_index() + end if end associate @@ -637,6 +667,55 @@ module subroutine symba_util_sort_tp(self, sortby, ascending) end subroutine symba_util_sort_tp + module subroutine symba_util_sort_rearrange_arr_info(arr, ind, n) + !! author: David A. Minton + !! + !! Rearrange a single array of particle information type in-place from an index list. + implicit none + ! Arguments + type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + ! Internals + type(symba_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) + + return + end subroutine symba_util_sort_rearrange_arr_info + + + module subroutine symba_util_sort_rearrange_arr_kin(arr, ind, n) + !! author: David A. Minton + !! + !! Rearrange a single array of particle kinship type in-place from an index list. + implicit none + ! Arguments + type(symba_kinship), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + ! Internals + type(symba_kinship), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + integer(I4B) :: i,j + + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + + do i = 1, n + do j = 1, tmp(i)%nchild + tmp(i)%child(j) = ind(tmp(i)%child(j)) + end do + end do + + call move_alloc(tmp, arr) + return + end subroutine symba_util_sort_rearrange_arr_kin + + module subroutine symba_util_sort_rearrange_pl(self, ind) !! author: David A. Minton !! @@ -647,32 +726,23 @@ module subroutine symba_util_sort_rearrange_pl(self, ind) class(symba_pl), intent(inout) :: self !! SyMBA massive body object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) ! Internals - class(symba_pl), allocatable :: pl_sorted !! Temporary holder for sorted body integer(I4B) :: i, j associate(pl => self, npl => self%nbody) + call util_sort_rearrange(pl%lcollision, ind, npl) + call util_sort_rearrange(pl%lencounter, ind, npl) + call util_sort_rearrange(pl%lmtiny, ind, npl) + call util_sort_rearrange(pl%nplenc, ind, npl) + call util_sort_rearrange(pl%ntpenc, ind, npl) + call util_sort_rearrange(pl%levelg, ind, npl) + call util_sort_rearrange(pl%levelm, ind, npl) + call util_sort_rearrange(pl%isperi, ind, npl) + call util_sort_rearrange(pl%peri, ind, npl) + call util_sort_rearrange(pl%atp, ind, npl) + call util_sort_rearrange(pl%info, ind, npl) + call util_sort_rearrange(pl%kin, ind, npl) + call util_sort_rearrange_pl(pl,ind) - allocate(pl_sorted, source=self) - if (allocated(pl%lcollision)) pl%lcollision(1:npl) = pl_sorted%lcollision(ind(1:npl)) - if (allocated(pl%lencounter)) pl%lencounter(1:npl) = pl_sorted%lencounter(ind(1:npl)) - if (allocated(pl%lmtiny)) pl%lmtiny(1:npl) = pl_sorted%lmtiny(ind(1:npl)) - if (allocated(pl%nplenc)) pl%nplenc(1:npl) = pl_sorted%nplenc(ind(1:npl)) - if (allocated(pl%ntpenc)) pl%ntpenc(1:npl) = pl_sorted%ntpenc(ind(1:npl)) - if (allocated(pl%levelg)) pl%levelg(1:npl) = pl_sorted%levelg(ind(1:npl)) - if (allocated(pl%levelm)) pl%levelm(1:npl) = pl_sorted%levelm(ind(1:npl)) - if (allocated(pl%isperi)) pl%isperi(1:npl) = pl_sorted%isperi(ind(1:npl)) - if (allocated(pl%peri)) pl%peri(1:npl) = pl_sorted%peri(ind(1:npl)) - if (allocated(pl%atp)) pl%atp(1:npl) = pl_sorted%atp(ind(1:npl)) - if (allocated(pl%info)) pl%info(1:npl) = pl_sorted%info(ind(1:npl)) - if (allocated(pl%kin)) then - pl%kin(1:npl) = pl_sorted%kin(ind(1:npl)) - do i = 1, npl - do j = 1, pl%kin(i)%nchild - pl%kin(i)%child(j) = ind(pl%kin(i)%child(j)) - end do - end do - end if - deallocate(pl_sorted) end associate return @@ -688,17 +758,14 @@ module subroutine symba_util_sort_rearrange_tp(self, ind) ! Arguments class(symba_tp), intent(inout) :: self !! SyMBA test particle object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(symba_tp), allocatable :: tp_sorted !! Temporary holder for sorted body associate(tp => self, ntp => self%nbody) + call util_sort_rearrange(tp%nplenc, ind, ntp) + call util_sort_rearrange(tp%levelg, ind, ntp) + call util_sort_rearrange(tp%levelm, ind, ntp) + call util_sort_rearrange(tp%info, ind, ntp) + call util_sort_rearrange_tp(tp,ind) - allocate(tp_sorted, source=self) - if (allocated(tp%nplenc)) tp%nplenc(1:ntp) = tp_sorted%nplenc(ind(1:ntp)) - if (allocated(tp%levelg)) tp%levelg(1:ntp) = tp_sorted%levelg(ind(1:ntp)) - if (allocated(tp%levelm)) tp%levelm(1:ntp) = tp_sorted%levelm(ind(1:ntp)) - if (allocated(tp%info)) tp%info(1:ntp) = tp_sorted%info(ind(1:ntp)) - deallocate(tp_sorted) end associate return diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index cb15fa18c..6f35de54e 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -184,6 +184,34 @@ module subroutine util_append_body(self, source, lsource_mask) end subroutine util_append_body + module subroutine util_append_encounter(self, source, lsource_mask) + !! author: David A. Minton + !! + !! Append components from one Swiftest body object to another. + !! This method will automatically resize the destination body if it is too small + implicit none + ! Arguments + class(swiftest_encounter), intent(inout) :: self !! Swiftest encounter list object + class(swiftest_encounter), intent(in) :: source !! Source object to append + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + + associate(nold => self%nenc, nsrc => source%nenc) + call util_append(self%lvdotr, source%lvdotr, nold, nsrc, lsource_mask) + call util_append(self%status, source%status, nold, nsrc, lsource_mask) + call util_append(self%index1, source%index1, nold, nsrc, lsource_mask) + call util_append(self%index2, source%index2, nold, nsrc, lsource_mask) + call util_append(self%x1, source%x1, nold, nsrc, lsource_mask) + call util_append(self%x2, source%x2, nold, nsrc, lsource_mask) + call util_append(self%v1, source%v1, nold, nsrc, lsource_mask) + call util_append(self%v2, source%v2, nold, nsrc, lsource_mask) + call util_append(self%t, source%t, nold, nsrc, lsource_mask) + self%nenc = nold + count(lsource_mask(:)) + end associate + + return + end subroutine util_append_encounter + + module subroutine util_append_pl(self, source, lsource_mask) !! author: David A. Minton !! diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index 752e78ab7..b2a5464aa 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -55,6 +55,175 @@ module subroutine util_sort_body(self, sortby, ascending) end subroutine util_sort_body + + module subroutine util_sort_dp(arr) + !! author: David A. Minton + !! + !! Sort input double precision array in place into ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + !! + implicit none + ! Arguments + real(DP), dimension(:), intent(inout) :: arr + ! Internals + real(DP) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + do i = 2, n + tmp = arr(i) + do j = i - 1, 1, -1 + if (arr(j) <= tmp) exit + arr(j + 1) = arr(j) + end do + arr(j + 1) = tmp + end do + + return + end subroutine util_sort_dp + + + module subroutine util_sort_index_dp(arr, ind) + !! author: David A. Minton + !! + !! Sort input double precision array by index in ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + !! + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: arr + integer(I4B), dimension(:), intent(out) :: ind + ! Internals + real(DP) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + ind = [(i, i=1, n)] + do i = 2, n + tmp = arr(ind(i)) + do j = i - 1, 1, -1 + if (arr(ind(j)) <= tmp) exit + ind(j + 1) = ind(j) + end do + ind(j + 1) = i + end do + + return + end subroutine util_sort_index_dp + + + module subroutine util_sort_i4b(arr) + !! author: David A. Minton + !! + !! Sort input integer array in place into ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + !! + implicit none + ! Arguments + integer(I4B), dimension(:), intent(inout) :: arr + ! Internals + integer(I4B) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + do i = 2, n + tmp = arr(i) + do j = i - 1, 1, -1 + if (arr(j) <= tmp) exit + arr(j + 1) = arr(j) + end do + arr(j + 1) = tmp + end do + + return + end subroutine util_sort_i4b + + + module subroutine util_sort_index_i4b(arr, ind) + !! author: David A. Minton + !! + !! Sort input integer array by index in ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + !! + implicit none + ! Arguments + integer(I4B), dimension(:), intent(in) :: arr + integer(I4B), dimension(:), intent(out) :: ind + ! Internals + integer(I4B) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + ind = [(i, i=1, n)] + do i = 2, n + tmp = arr(ind(i)) + do j = i - 1, 1, -1 + if (arr(ind(j)) <= tmp) exit + ind(j + 1) = ind(j) + end do + ind(j + 1) = i + end do + + return + end subroutine util_sort_index_i4b + + + module subroutine util_sort_sp(arr) + !! author: David A. Minton + !! + !! Sort input single precision array in place into ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + ! + implicit none + ! Arguments + real(SP), dimension(:), intent(inout) :: arr + ! Internals + real(SP) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + do i = 2, n + tmp = arr(i) + do j = i - 1, 1, -1 + if (arr(j) <= tmp) exit + arr(j + 1) = arr(j) + end do + arr(j + 1) = tmp + end do + + return + end subroutine util_sort_sp + + + module subroutine util_sort_index_sp(arr, ind) + !! author: David A. Minton + !! + !! Sort input single precision array by index in ascending numerical order using insertion sort. + !! This algorithm works well for partially sorted arrays (which is usually the case here) + !! + implicit none + ! Arguments + real(SP), dimension(:), intent(in) :: arr + integer(I4B), dimension(:), intent(out) :: ind + ! Internals + real(SP) :: tmp + integer(I4B) :: n, i, j + + n = size(arr) + ind = [(i, i=1, n)] + do i = 2, n + tmp = arr(ind(i)) + do j = i - 1, 1, -1 + if (arr(ind(j)) <= tmp) exit + ind(j + 1) = ind(j) + end do + ind(j + 1) = i + end do + + return + end subroutine util_sort_index_sp + + module subroutine util_sort_pl(self, sortby, ascending) !! author: David A. Minton !! @@ -156,264 +325,189 @@ module subroutine util_sort_rearrange_body(self, ind) ! Arguments class(swiftest_body), intent(inout) :: self !! Swiftest body object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(swiftest_body), allocatable :: body_sorted !! Temporary holder for sorted body associate(n => self%nbody) - allocate(body_sorted, source=self) - if (allocated(self%id)) self%id(1:n) = body_sorted%id(ind(1:n)) - if (allocated(self%name)) self%name(1:n) = body_sorted%name(ind(1:n)) - if (allocated(self%status)) self%status(1:n) = body_sorted%status(ind(1:n)) - if (allocated(self%ldiscard)) self%ldiscard(1:n) = body_sorted%ldiscard(ind(1:n)) - if (allocated(self%xh)) self%xh(:,1:n) = body_sorted%xh(:,ind(1:n)) - if (allocated(self%vh)) self%vh(:,1:n) = body_sorted%vh(:,ind(1:n)) - if (allocated(self%xb)) self%xb(:,1:n) = body_sorted%xb(:,ind(1:n)) - if (allocated(self%vb)) self%vb(:,1:n) = body_sorted%vb(:,ind(1:n)) - if (allocated(self%ah)) self%ah(:,1:n) = body_sorted%ah(:,ind(1:n)) - if (allocated(self%ir3h)) self%ir3h(1:n) = body_sorted%ir3h(ind(1:n)) - if (allocated(self%mu)) self%mu(1:n) = body_sorted%mu(ind(1:n)) - if (allocated(self%lmask)) self%lmask(1:n) = body_sorted%lmask(ind(1:n)) - if (allocated(self%a)) self%a(1:n) = body_sorted%a(ind(1:n)) - if (allocated(self%e)) self%e(1:n) = body_sorted%e(ind(1:n)) - if (allocated(self%inc)) self%inc(1:n) = body_sorted%inc(ind(1:n)) - if (allocated(self%capom)) self%capom(1:n) = body_sorted%capom(ind(1:n)) - if (allocated(self%omega)) self%omega(1:n) = body_sorted%omega(ind(1:n)) - if (allocated(self%capm)) self%capm(1:n) = body_sorted%capm(ind(1:n)) - if (allocated(self%aobl)) self%aobl(:,1:n) = body_sorted%aobl(:,ind(1:n)) - if (allocated(self%atide)) self%atide(:,1:n) = body_sorted%atide(:,ind(1:n)) - if (allocated(self%agr)) self%agr(:,1:n) = body_sorted%agr(:,ind(1:n)) - deallocate(body_sorted) + call util_sort_rearrange(self%id, ind, n) + call util_sort_rearrange(self%name, ind, n) + call util_sort_rearrange(self%status, ind, n) + call util_sort_rearrange(self%ldiscard, ind, n) + call util_sort_rearrange(self%xh, ind, n) + call util_sort_rearrange(self%vh, ind, n) + call util_sort_rearrange(self%xb, ind, n) + call util_sort_rearrange(self%vb, ind, n) + call util_sort_rearrange(self%ah, ind, n) + call util_sort_rearrange(self%ir3h, ind, n) + call util_sort_rearrange(self%mu, ind, n) + call util_sort_rearrange(self%lmask, ind, n) + call util_sort_rearrange(self%a, ind, n) + call util_sort_rearrange(self%e, ind, n) + call util_sort_rearrange(self%inc, ind, n) + call util_sort_rearrange(self%capom, ind, n) + call util_sort_rearrange(self%omega, ind, n) + call util_sort_rearrange(self%capm, ind, n) + call util_sort_rearrange(self%aobl, ind, n) + call util_sort_rearrange(self%atide, ind, n) + call util_sort_rearrange(self%agr, ind, n) end associate return end subroutine util_sort_rearrange_body - module subroutine util_sort_rearrange_pl(self, ind) + module subroutine util_sort_rearrange_arr_char_string(arr, ind, n) !! author: David A. Minton !! - !! Rearrange Swiftest massive body structure in-place from an index list. - !! This is a helper utility used to make polymorphic sorting work on Swiftest structures. - implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(swiftest_pl), allocatable :: pl_sorted !! Temporary holder for sorted body - - associate(pl => self, npl => self%nbody) - call util_sort_rearrange_body(pl,ind) - allocate(pl_sorted, source=self) - if (allocated(pl%mass)) pl%mass(1:npl) = pl_sorted%mass(ind(1:npl)) - if (allocated(pl%Gmass)) pl%Gmass(1:npl) = pl_sorted%Gmass(ind(1:npl)) - if (allocated(pl%rhill)) pl%rhill(1:npl) = pl_sorted%rhill(ind(1:npl)) - if (allocated(pl%xbeg)) pl%xbeg(:,1:npl) = pl_sorted%xbeg(:,ind(1:npl)) - if (allocated(pl%xend)) pl%xend(:,1:npl) = pl_sorted%xend(:,ind(1:npl)) - if (allocated(pl%vbeg)) pl%vbeg(:,1:npl) = pl_sorted%vbeg(:,ind(1:npl)) - if (allocated(pl%radius)) pl%radius(1:npl) = pl_sorted%radius(ind(1:npl)) - if (allocated(pl%density)) pl%density(1:npl) = pl_sorted%density(ind(1:npl)) - if (allocated(pl%Ip)) pl%Ip(:,1:npl) = pl_sorted%Ip(:,ind(1:npl)) - if (allocated(pl%rot)) pl%rot(:,1:npl) = pl_sorted%rot(:,ind(1:npl)) - if (allocated(pl%k2)) pl%k2(1:npl) = pl_sorted%k2(ind(1:npl)) - if (allocated(pl%Q)) pl%Q(1:npl) = pl_sorted%Q(ind(1:npl)) - if (allocated(pl%tlag)) pl%tlag(1:npl) = pl_sorted%tlag(ind(1:npl)) - - deallocate(pl_sorted) - end associate - - return - end subroutine util_sort_rearrange_pl - - - module subroutine util_sort_rearrange_tp(self, ind) - !! author: David A. Minton - !! - !! Rearrange Swiftest massive body structure in-place from an index list. - !! This is a helper utility used to make polymorphic sorting work on Swiftest structures. + !! Rearrange a single array of character string in-place from an index list. implicit none ! Arguments - class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) + character(len=STRMAX), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - class(swiftest_tp), allocatable :: tp_sorted !! Temporary holder for sorted body + character(len=STRMAX), dimension(:), allocatable :: tmp !! Temporary copy of arry used during rearrange operation - associate(tp => self, ntp => self%nbody) - call util_sort_rearrange_body(tp,ind) - allocate(tp_sorted, source=self) - if (allocated(tp%isperi)) tp%isperi(1:ntp) = tp_sorted%isperi(ind(1:ntp)) - if (allocated(tp%peri)) tp%peri(1:ntp) = tp_sorted%peri(ind(1:ntp)) - if (allocated(tp%atp)) tp%atp(1:ntp) = tp_sorted%atp(ind(1:ntp)) - deallocate(tp_sorted) - end associate + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) return - end subroutine util_sort_rearrange_tp + end subroutine util_sort_rearrange_arr_char_string - module subroutine util_sort_dp(arr) + module subroutine util_sort_rearrange_arr_DP(arr, ind, n) !! author: David A. Minton !! - !! Sort input double precision array in place into ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - !! + !! Rearrange a single array of DP type in-place from an index list. implicit none ! Arguments - real(DP), dimension(:), intent(inout) :: arr + real(DP), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - real(DP) :: tmp - integer(I4B) :: n, i, j + real(DP), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation - n = size(arr) - do i = 2, n - tmp = arr(i) - do j = i - 1, 1, -1 - if (arr(j) <= tmp) exit - arr(j + 1) = arr(j) - end do - arr(j + 1) = tmp - end do + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) return - end subroutine util_sort_dp + end subroutine util_sort_rearrange_arr_DP - module subroutine util_sort_index_dp(arr, ind) + module subroutine util_sort_rearrange_arr_DPvec(arr, ind, n) !! author: David A. Minton !! - !! Sort input double precision array by index in ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - !! + !! Rearrange a single array of (NDIM,n) DP-type vectors in-place from an index list. implicit none ! Arguments - real(DP), dimension(:), intent(in) :: arr - integer(I4B), dimension(:), intent(out) :: ind + real(DP), dimension(:,:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - real(DP) :: tmp - integer(I4B) :: n, i, j + real(DP), dimension(:,:), allocatable :: tmp !! Temporary copy of array used during rearrange operation - n = size(arr) - ind = [(i, i=1, n)] - do i = 2, n - tmp = arr(ind(i)) - do j = i - 1, 1, -1 - if (arr(ind(j)) <= tmp) exit - ind(j + 1) = ind(j) - end do - ind(j + 1) = i - end do + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(:,1:n) = arr(:, ind(1:n)) + call move_alloc(tmp, arr) return - end subroutine util_sort_index_dp + end subroutine util_sort_rearrange_arr_DPvec - module subroutine util_sort_i4b(arr) + module subroutine util_sort_rearrange_arr_I4B(arr, ind, n) !! author: David A. Minton !! - !! Sort input integer array in place into ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - !! + !! Rearrange a single array of integers in-place from an index list. implicit none ! Arguments - integer(I4B), dimension(:), intent(inout) :: arr + integer(I4B), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - integer(I4B) :: tmp - integer(I4B) :: n, i, j + integer(I4B), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation - n = size(arr) - do i = 2, n - tmp = arr(i) - do j = i - 1, 1, -1 - if (arr(j) <= tmp) exit - arr(j + 1) = arr(j) - end do - arr(j + 1) = tmp - end do + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) return - end subroutine util_sort_i4b + end subroutine util_sort_rearrange_arr_I4B - module subroutine util_sort_index_i4b(arr, ind) + module subroutine util_sort_rearrange_arr_logical(arr, ind, n) !! author: David A. Minton !! - !! Sort input integer array by index in ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - !! + !! Rearrange a single array of logicals in-place from an index list. implicit none ! Arguments - integer(I4B), dimension(:), intent(in) :: arr - integer(I4B), dimension(:), intent(out) :: ind + logical, dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - integer(I4B) :: tmp - integer(I4B) :: n, i, j + logical, dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation - n = size(arr) - ind = [(i, i=1, n)] - do i = 2, n - tmp = arr(ind(i)) - do j = i - 1, 1, -1 - if (arr(ind(j)) <= tmp) exit - ind(j + 1) = ind(j) - end do - ind(j + 1) = i - end do + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, mold=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) return - end subroutine util_sort_index_i4b + end subroutine util_sort_rearrange_arr_logical - module subroutine util_sort_sp(arr) + module subroutine util_sort_rearrange_pl(self, ind) !! author: David A. Minton !! - !! Sort input single precision array in place into ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - ! + !! Rearrange Swiftest massive body structure in-place from an index list. + !! This is a helper utility used to make polymorphic sorting work on Swiftest structures. implicit none - ! Arguments - real(SP), dimension(:), intent(inout) :: arr - ! Internals - real(SP) :: tmp - integer(I4B) :: n, i, j + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - n = size(arr) - do i = 2, n - tmp = arr(i) - do j = i - 1, 1, -1 - if (arr(j) <= tmp) exit - arr(j + 1) = arr(j) - end do - arr(j + 1) = tmp - end do + associate(pl => self, npl => self%nbody) + call util_sort_rearrange(pl%mass, ind, npl) + call util_sort_rearrange(pl%Gmass, ind, npl) + call util_sort_rearrange(pl%rhill, ind, npl) + call util_sort_rearrange(pl%xbeg, ind, npl) + call util_sort_rearrange(pl%vbeg, ind, npl) + call util_sort_rearrange(pl%radius, ind, npl) + call util_sort_rearrange(pl%density, ind, npl) + call util_sort_rearrange(pl%Ip, ind, npl) + call util_sort_rearrange(pl%rot, ind, npl) + call util_sort_rearrange(pl%k2, ind, npl) + call util_sort_rearrange(pl%Q, ind, npl) + call util_sort_rearrange(pl%tlag, ind, npl) + + call util_sort_rearrange_body(pl, ind) + end associate return - end subroutine util_sort_sp + end subroutine util_sort_rearrange_pl - module subroutine util_sort_index_sp(arr, ind) + module subroutine util_sort_rearrange_tp(self, ind) !! author: David A. Minton !! - !! Sort input single precision array by index in ascending numerical order using insertion sort. - !! This algorithm works well for partially sorted arrays (which is usually the case here) - !! + !! Rearrange Swiftest massive body structure in-place from an index list. + !! This is a helper utility used to make polymorphic sorting work on Swiftest structures. implicit none ! Arguments - real(SP), dimension(:), intent(in) :: arr - integer(I4B), dimension(:), intent(out) :: ind - ! Internals - real(SP) :: tmp - integer(I4B) :: n, i, j + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - n = size(arr) - ind = [(i, i=1, n)] - do i = 2, n - tmp = arr(ind(i)) - do j = i - 1, 1, -1 - if (arr(ind(j)) <= tmp) exit - ind(j + 1) = ind(j) - end do - ind(j + 1) = i - end do + associate(tp => self, ntp => self%nbody) + call util_sort_rearrange(tp%isperi, ind, ntp) + call util_sort_rearrange(tp%peri, ind, ntp) + call util_sort_rearrange(tp%atp, ind, ntp) + + call util_sort_rearrange_body(tp, ind) + end associate return - end subroutine util_sort_index_sp + end subroutine util_sort_rearrange_tp end submodule s_util_sort diff --git a/src/whm/whm_util.f90 b/src/whm/whm_util.f90 index cc84ba3d5..537866d0e 100644 --- a/src/whm/whm_util.f90 +++ b/src/whm/whm_util.f90 @@ -165,21 +165,17 @@ module subroutine whm_util_sort_rearrange_pl(self, ind) ! Arguments class(whm_pl), intent(inout) :: self !! WHM massive body object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(whm_pl), allocatable :: pl_sorted !! Temporary holder for sorted body - integer(I4B) :: i if (self%nbody == 0) return associate(pl => self, npl => self%nbody) + call util_sort_rearrange(pl%eta, ind, npl) + call util_sort_rearrange(pl%xj, ind, npl) + call util_sort_rearrange(pl%vj, ind, npl) + call util_sort_rearrange(pl%muj, ind, npl) + call util_sort_rearrange(pl%ir3j, ind, npl) + call util_sort_rearrange_pl(pl,ind) - allocate(pl_sorted, source=self) - if (allocated(pl%eta)) pl%eta(1:npl) = pl_sorted%eta(ind(1:npl)) - if (allocated(pl%xj)) pl%xj(:,1:npl) = pl_sorted%xj(:,ind(1:npl)) - if (allocated(pl%vj)) pl%vj(:,1:npl) = pl_sorted%vj(:,ind(1:npl)) - if (allocated(pl%muj)) pl%muj(1:npl) = pl_sorted%muj(ind(1:npl)) - if (allocated(pl%ir3j)) pl%ir3j(1:npl) = pl_sorted%ir3j(ind(1:npl)) - deallocate(pl_sorted) end associate return From 1583144a5bf42e2a4f1519958948c68e910d7a5e Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 17:24:17 -0400 Subject: [PATCH 042/315] Fixed rearrange methods in RMVS --- src/rmvs/rmvs_util.f90 | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/rmvs/rmvs_util.f90 b/src/rmvs/rmvs_util.f90 index ee9ce6932..140c43426 100644 --- a/src/rmvs/rmvs_util.f90 +++ b/src/rmvs/rmvs_util.f90 @@ -268,19 +268,14 @@ module subroutine rmvs_util_sort_rearrange_pl(self, ind) ! Arguments class(rmvs_pl), intent(inout) :: self !! RMVS massive body object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(rmvs_pl), allocatable :: pl_sorted !! Temporary holder for sorted body - integer(I4B) :: i if (self%nbody == 0) return associate(pl => self, npl => self%nbody) + call util_sort_rearrange(pl%nenc, ind, npl) + call util_sort_rearrange(pl%tpenc1P, ind, npl) + call util_sort_rearrange(pl%plind, ind, npl) call util_sort_rearrange_pl(pl,ind) - allocate(pl_sorted, source=self) - if (allocated(pl%nenc)) pl%nenc(1:npl) = pl_sorted%nenc(ind(1:npl)) - if (allocated(pl%tpenc1P)) pl%tpenc1P(1:npl) = pl_sorted%tpenc1P(ind(1:npl)) - if (allocated(pl%plind)) pl%plind(1:npl) = pl_sorted%plind(ind(1:npl)) - deallocate(pl_sorted) end associate return @@ -296,19 +291,15 @@ module subroutine rmvs_util_sort_rearrange_tp(self, ind) ! Arguments class(rmvs_tp), intent(inout) :: self !! RMVS test particle object integer(I4B), dimension(:), intent(in) :: ind !! Index array used to restructure the body (should contain all 1:n index values in the desired order) - ! Internals - class(rmvs_tp), allocatable :: tp_sorted !! Temporary holder for sorted body if (self%nbody == 0) return associate(tp => self, ntp => self%nbody) + call util_sort_rearrange(tp%lperi, ind, ntp) + call util_sort_rearrange(tp%plperP, ind, ntp) + call util_sort_rearrange(tp%plencP, ind, ntp) + call util_sort_rearrange(tp%xheliocentric, ind, ntp) call util_sort_rearrange_tp(tp,ind) - allocate(tp_sorted, source=self) - if (allocated(tp%lperi)) tp%lperi(1:ntp) = tp_sorted%lperi(ind(1:ntp)) - if (allocated(tp%plperP)) tp%plperP(1:ntp) = tp_sorted%plperP(ind(1:ntp)) - if (allocated(tp%plencP)) tp%plencP(1:ntp) = tp_sorted%plencP(ind(1:ntp)) - if (allocated(tp%xheliocentric)) tp%xheliocentric(:,1:ntp) = tp_sorted%xheliocentric(:,ind(1:ntp)) - deallocate(tp_sorted) end associate return From 050386cd7d9577695dec86d89023ec96aef44f11 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 12 Aug 2021 22:11:44 -0400 Subject: [PATCH 043/315] By carefully reconstructing the plplenc_list object in rearray, and keeping track of recursion levels, I've enabled the ability to resolve fragments at the moment they are identified, and not wait until the recursion steps are done. --- examples/symba_mars_disk/mars.in | 24 +- examples/symba_mars_disk/param.in | 4 +- .../1pl_1pl_encounter/param.swifter.in | 1 + .../swiftest_vs_swifter.ipynb | 254 +++++++++--------- src/modules/swiftest_classes.f90 | 2 + src/modules/symba_classes.f90 | 2 +- src/setup/setup.f90 | 6 + src/symba/symba_encounter_check.f90 | 4 + src/symba/symba_util.f90 | 39 ++- src/util/util_append.f90 | 2 + src/util/util_copy.f90 | 2 + src/util/util_spill.f90 | 2 + 12 files changed, 197 insertions(+), 145 deletions(-) diff --git a/examples/symba_mars_disk/mars.in b/examples/symba_mars_disk/mars.in index 8760a493d..447d1e308 100644 --- a/examples/symba_mars_disk/mars.in +++ b/examples/symba_mars_disk/mars.in @@ -1,4 +1,16 @@ 1500 ! Mars System in SI units +727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +1.24108926e+04 !particle radius in m +-8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z +9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +8.87389776e+03 !particle radius in m +-8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z +1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot 2 9.90685589e+04 8.35558297e+03 ! particle number mass Rhill 7.07643092e+03 !particle radius in m -2.35807426e+06 8.60445552e+06 1.25224401e+04 ! x y z @@ -1373,12 +1385,6 @@ -1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill -8.87389776e+03 !particle radius in m --8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z -1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz -0.4 0.4 0.4 ! Ip -0.0 0.0 0.0 ! rot 232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill 4.85987440e+03 !particle radius in m 1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z @@ -4349,12 +4355,6 @@ -1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill -1.24108926e+04 !particle radius in m --8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z -9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz -0.4 0.4 0.4 ! Ip -0.0 0.0 0.0 ! rot 728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill 9.45460600e+03 !particle radius in m -2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index e2be7eece..ef35236ba 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -22,9 +22,9 @@ CHK_QMIN_RANGE 3389500.0 338950000000.0 EXTRA_FORCE no BIG_DISCARD no RHILL_PRESENT yes -GMTINY 1000.0 +GMTINY 1000.0 ENERGY yes -FRAGMENTATION yes +FRAGMENTATION no ROTATION yes MU2KG 1.0 DU2M 1.0 diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swifter.in b/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swifter.in index 853815639..a67348c0e 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swifter.in +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/param.swifter.in @@ -24,3 +24,4 @@ ENC_OUT enc.swifter.dat EXTRA_FORCE no BIG_DISCARD no RHILL_PRESENT yes +ENERGY yes diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb index ec0e145ef..79543cb09 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb @@ -81,8 +81,8 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, "execution_count": 6, @@ -91,7 +91,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -466,134 +466,134 @@ " fill: currentColor;\n", "}\n", "
    <xarray.DataArray 'vx' (time (y): 221)>\n",
    -       "array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    +       "array([ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
            "...\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,\n",
    -       "        0.00000000e+00,  3.98117095e-11, -9.46069889e-11, -2.30539143e-10,\n",
    -       "       -3.67965214e-10, -5.06869213e-10, -6.47232490e-10, -7.89038168e-10,\n",
    -       "       -9.32266708e-10, -1.07690123e-09, -1.22292310e-09, -1.37031364e-09,\n",
    -       "       -1.51905422e-09, -1.66912617e-09, -1.82051085e-09, -1.97318961e-09,\n",
    -       "       -2.12714202e-09, -2.28234942e-09, -2.43879317e-09, -2.59645283e-09,\n",
    -       "       -2.75530976e-09, -2.91534441e-09, -3.07653725e-09, -3.23886606e-09,\n",
    -       "       -3.40231310e-09])\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    +       "        0.0000000e+00, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    +       "       -8.8817842e-16])\n",
            "Coordinates:\n",
            "    id        float64 2.0\n",
    -       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      float64
      2.0
      array(2.)
    • time (y)
      (time (y))
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", - "array([ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + "array([ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", "...\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 3.98117095e-11, -9.46069889e-11, -2.30539143e-10,\n", - " -3.67965214e-10, -5.06869213e-10, -6.47232490e-10, -7.89038168e-10,\n", - " -9.32266708e-10, -1.07690123e-09, -1.22292310e-09, -1.37031364e-09,\n", - " -1.51905422e-09, -1.66912617e-09, -1.82051085e-09, -1.97318961e-09,\n", - " -2.12714202e-09, -2.28234942e-09, -2.43879317e-09, -2.59645283e-09,\n", - " -2.75530976e-09, -2.91534441e-09, -3.07653725e-09, -3.23886606e-09,\n", - " -3.40231310e-09])\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", + " 0.0000000e+00, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", + " -8.8817842e-16])\n", "Coordinates:\n", " id float64 2.0\n", " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" @@ -987,7 +987,7 @@ " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n", "Coordinates:\n", " id float64 100.0\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      float64
      100.0
      array(100.)
    • time (y)
      (time (y))
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", @@ -1441,7 +1441,7 @@ " nan])\n", "Coordinates:\n", " id int64 100\n", - " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    • id
      ()
      int64
      100
      array(100)
    • time
      (time)
      float64
      0.0 0.0006845 ... 0.1499 0.1506
      array([0.      , 0.000684, 0.001369, ..., 0.149213, 0.149897, 0.150582])
  • " ], "text/plain": [ "\n", diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index bebf2acfa..ee2521916 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -317,6 +317,8 @@ module swiftest_classes integer(I4B), dimension(:), allocatable :: status !! status of the interaction integer(I4B), dimension(:), allocatable :: index1 !! position of the first body in the encounter integer(I4B), dimension(:), allocatable :: index2 !! position of the second body in the encounter + integer(I4B), dimension(:), allocatable :: id1 !! id of the first body in the encounter + integer(I4B), dimension(:), allocatable :: id2 !! id of the second body in the encounter real(DP), dimension(:,:), allocatable :: x1 !! the position of body 1 in the encounter real(DP), dimension(:,:), allocatable :: x2 !! the position of body 2 in the encounter real(DP), dimension(:,:), allocatable :: v1 !! the velocity of body 1 in the encounter diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 8516e3861..fb42b7434 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -711,7 +711,7 @@ end subroutine symba_util_spill_pl module subroutine symba_util_spill_encounter(self, discards, lspill_list, ldestructive) use swiftest_classes, only : swiftest_encounter implicit none - class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list + class(symba_encounter), intent(inout) :: self !! SyMBA pl-tp encounter list class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 726da07fc..ea15bf1fe 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -88,6 +88,8 @@ module subroutine setup_encounter(self, n) if (allocated(self%status)) deallocate(self%status) if (allocated(self%index1)) deallocate(self%index1) if (allocated(self%index2)) deallocate(self%index2) + if (allocated(self%id1)) deallocate(self%id1) + if (allocated(self%id2)) deallocate(self%id2) if (allocated(self%x1)) deallocate(self%x1) if (allocated(self%x2)) deallocate(self%x2) if (allocated(self%v1)) deallocate(self%v1) @@ -98,6 +100,8 @@ module subroutine setup_encounter(self, n) allocate(self%status(n)) allocate(self%index1(n)) allocate(self%index2(n)) + allocate(self%id1(n)) + allocate(self%id2(n)) allocate(self%x1(NDIM,n)) allocate(self%x2(NDIM,n)) allocate(self%v1(NDIM,n)) @@ -108,6 +112,8 @@ module subroutine setup_encounter(self, n) self%status(:) = INACTIVE self%index1(:) = 0 self%index2(:) = 0 + self%id1(:) = 0 + self%id2(:) = 0 self%x1(:,:) = 0.0_DP self%x2(:,:) = 0.0_DP self%v1(:,:) = 0.0_DP diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 326f5d257..eb230b7e0 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -43,6 +43,8 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc plplenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(:), lencounter(:)) plplenc_list%index1(1:nenc) = pack(pl%k_plpl(1,:), lencounter(:)) plplenc_list%index2(1:nenc) = pack(pl%k_plpl(2,:), lencounter(:)) + plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) + plplenc_list%id2(1:nenc) = pl%id(plplenc_list%index2(1:nenc)) do k = 1, nenc plplenc_list%status(k) = ACTIVE plplenc_list%level(k) = irec @@ -178,6 +180,8 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc pltpenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(:,:), lencounter(:,:)) pltpenc_list%index1(1:nenc) = pack(spread([(i, i = 1, npl)], dim=1, ncopies=ntp), lencounter(:,:)) pltpenc_list%index2(1:nenc) = pack(spread([(i, i = 1, ntp)], dim=2, ncopies=npl), lencounter(:,:)) + pltpenc_list%id1(1:nenc) = pl%id(pltpenc_list%index1(1:nenc)) + pltpenc_list%id2(1:nenc) = tp%id(pltpenc_list%index2(1:nenc)) select type(pl) class is (symba_pl) pl%lencounter(:) = .false. diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 8340f6e14..2232b9599 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -395,12 +395,13 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(in) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i + integer(I4B) :: i, j, k logical, dimension(:), allocatable :: lmask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter associate(pl => self, pl_adds => system%pl_adds) + allocate(tmp, mold=pl) ! Remove the discards and destroy the list, as the system already tracks pl_discards elsewhere allocate(lmask, source=pl%ldiscard(:)) @@ -424,6 +425,7 @@ module subroutine symba_util_rearray_pl(self, system, param) allocate(lmask(pl%nbody)) lmask(:) = pl%status(1:pl%nbody) == NEW_PARTICLE + call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, pl%nbody)], lmask)) where(pl%status(:) /= INACTIVE) pl%status(:) = ACTIVE @@ -431,8 +433,39 @@ module subroutine symba_util_rearray_pl(self, system, param) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY pl%nplm = count(pl%lmtiny(:)) - ! Reindex + ! Reindex the bodies and calculate the level 0 encounter list call pl%eucl_index() + lencounter = pl%encounter_check(system, param%dt, 0) + select type(tp => system%tp) + class is (symba_tp) + lencounter = tp%encounter_check(system, param%dt, 0) + end select + + associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) + do k = 1, system%plplenc_list%nenc + if ((idnew1(k) == idold1(k)) .and. (idnew2(k) == idold2(k))) then + ! This is an encounter we already know about, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + else if (((idnew1(k) == idold2(k)) .and. (idnew2(k) == idold1(k)))) then + ! This is an encounter we already know about, but with the order reversed, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + end if + end do + end associate end if @@ -956,4 +989,4 @@ module subroutine symba_util_spill_tp(self, discards, lspill_list, ldestructive) return end subroutine symba_util_spill_tp -end submodule s_symba_util \ No newline at end of file +end submodule s_symba_util diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 6f35de54e..88755870f 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -200,6 +200,8 @@ module subroutine util_append_encounter(self, source, lsource_mask) call util_append(self%status, source%status, nold, nsrc, lsource_mask) call util_append(self%index1, source%index1, nold, nsrc, lsource_mask) call util_append(self%index2, source%index2, nold, nsrc, lsource_mask) + call util_append(self%id1, source%id1, nold, nsrc, lsource_mask) + call util_append(self%id2, source%id2, nold, nsrc, lsource_mask) call util_append(self%x1, source%x1, nold, nsrc, lsource_mask) call util_append(self%x2, source%x2, nold, nsrc, lsource_mask) call util_append(self%v1, source%v1, nold, nsrc, lsource_mask) diff --git a/src/util/util_copy.f90 b/src/util/util_copy.f90 index 87634a419..c8407416d 100644 --- a/src/util/util_copy.f90 +++ b/src/util/util_copy.f90 @@ -17,6 +17,8 @@ module subroutine util_copy_encounter(self, source) self%status(1:n) = source%status(1:n) self%index1(1:n) = source%index1(1:n) self%index2(1:n) = source%index2(1:n) + self%id1(1:n) = source%id1(1:n) + self%id2(1:n) = source%id2(1:n) self%x1(:,1:n) = source%x1(:,1:n) self%x2(:,1:n) = source%x2(:,1:n) self%v1(:,1:n) = source%v1(:,1:n) diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index a26fbfad7..954406d95 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -260,6 +260,8 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive call util_spill(keeps%status, discards%status, lspill_list, ldestructive) call util_spill(keeps%index1, discards%index1, lspill_list, ldestructive) call util_spill(keeps%index2, discards%index2, lspill_list, ldestructive) + call util_spill(keeps%id1, discards%id1, lspill_list, ldestructive) + call util_spill(keeps%id2, discards%id2, lspill_list, ldestructive) call util_spill(keeps%x1, discards%x1, lspill_list, ldestructive) call util_spill(keeps%x2, discards%x2, lspill_list, ldestructive) call util_spill(keeps%v1, discards%v1, lspill_list, ldestructive) From 3180e5587466aca8ab38235051100a68918d9479 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 07:59:46 -0400 Subject: [PATCH 044/315] added io_netcdf_write_frame_body module to swiftest_classes --- src/modules/swiftest_classes.f90 | 44 +++++++++++++++++++------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 96c35675b..9fc1fcb9a 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -171,24 +171,25 @@ module swiftest_classes procedure(abstract_step_body), deferred :: step procedure(abstract_accel), deferred :: accel ! These are concrete because the implementation is the same for all types of particles - procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables - procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators - procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators - procedure :: initialize => io_read_body_in !! Read in body initial conditions from a file - procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body - procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors - procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements - procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays - procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets - procedure :: append => util_append_body !! Appends elements from one structure to another - procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) - procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. - procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) - procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen - procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods - procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables + procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators + procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators + procedure :: initialize => io_read_body_in !! Read in body initial conditions from a file + procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + !procedure :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: write_frame => io_netcdf_write_frame_body !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors + procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements + procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays + procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets + procedure :: append => util_append_body !! Appends elements from one structure to another + procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) + procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. + procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) + procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen + procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods + procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) end type swiftest_body !******************************************************************************************************************************** @@ -673,6 +674,13 @@ module subroutine io_write_frame_body(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_body + module subroutine io_netcdf_write_frame_body(self, iu, param) + implicit none + class(swiftest_body), intent(in) :: self !! Swiftest body object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine io_netcdf_write_frame_body + module subroutine io_write_frame_cb(self, iu, param) implicit none class(swiftest_cb), intent(in) :: self !! Swiftest central body object From 5635ef04d6d37393d0f3d08ed638f4d04339b78b Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:00:09 -0400 Subject: [PATCH 045/315] added io_netcdf_write_frame_system module to swiftest_classes --- src/modules/swiftest_classes.f90 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 9fc1fcb9a..f34273dd7 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -303,7 +303,8 @@ module swiftest_classes procedure :: dump => io_dump_system !! Dump the state of the system to a file procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file procedure :: write_discard => io_write_discard !! Write out information about discarded test particles - procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file + !procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file + procedure :: write_frame => io_netcdf_write_frame_system !! Append a frame of output data to file in NetCDF format procedure :: initialize => setup_initialize_system !! Initialize the system from input files procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. procedure :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. @@ -706,6 +707,13 @@ module subroutine io_write_frame_system(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_system + module subroutine io_netcdf_write_frame_system(self, iu, param) + implicit none + class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine io_netcdf_write_frame_system + module pure subroutine kick_getacch_int_pl(self) implicit none class(swiftest_pl), intent(inout) :: self From e669145e9a7e5d63893595451032ea74f83dfbcb Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:00:46 -0400 Subject: [PATCH 046/315] changed the names of routines to reflect netcdf output type --- src/io/io.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 928782033..887c39d12 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1347,7 +1347,7 @@ module subroutine io_write_encounter(self, pl, encbody, param) end subroutine io_write_encounter - module subroutine io_write_frame_body(self, iu, param) + module subroutine io_netcdf_write_frame_body(self, iu, param) !! author: David A. Minton !! !! Write a frame of output of either test particle or massive body data to the binary output file @@ -1588,7 +1588,7 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi end subroutine - module subroutine io_write_frame_system(self, iu, param) + module subroutine io_netcdf_write_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Write a frame (header plus records for each massive body and active test particle) to output binary file From db86609d5285be8c3f935f67cc6cf639f156701d Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:04:16 -0400 Subject: [PATCH 047/315] added original io_write_frame_body back into io.f90 --- src/io/io.f90 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 887c39d12..247a6e4c3 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1346,6 +1346,67 @@ module subroutine io_write_encounter(self, pl, encbody, param) return end subroutine io_write_encounter + module subroutine io_write_frame_body(self, iu, param) + !! author: David A. Minton + !! + !! Write a frame of output of either test particle or massive body data to the binary output file + !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method + !! + !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 + !! Adapted from Hal Levison's Swift routine io_write_frame.F + implicit none + ! Arguments + class(swiftest_body), intent(in) :: self !! Swiftest particle object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + character(len=STRMAX) :: errmsg + + associate(n => self%nbody) + if (n == 0) return + write(iu, err = 667, iomsg = errmsg) self%id(1:n) + !write(iu, err = 667, iomsg = errmsg) self%name(1:n) + select case (param%out_form) + case (EL) + write(iu, err = 667, iomsg = errmsg) self%a(1:n) + write(iu, err = 667, iomsg = errmsg) self%e(1:n) + write(iu, err = 667, iomsg = errmsg) self%inc(1:n) + write(iu, err = 667, iomsg = errmsg) self%capom(1:n) + write(iu, err = 667, iomsg = errmsg) self%omega(1:n) + write(iu, err = 667, iomsg = errmsg) self%capm(1:n) + case (XV) + write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) + write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) + write(iu, err = 667, iomsg = errmsg) self%xh(3, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(1, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(2, 1:n) + write(iu, err = 667, iomsg = errmsg) self%vh(3, 1:n) + end select + select type(pl => self) + class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body + write(iu, err = 667, iomsg = errmsg) pl%Gmass(1:n) + if (param%lrhill_present) write(iu, err = 667, iomsg = errmsg) pl%rhill(1:n) + if (param%lclose) write(iu, err = 667, iomsg = errmsg) pl%radius(1:n) + if (param%lrotation) then + write(iu, err = 667, iomsg = errmsg) pl%Ip(1, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%Ip(2, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%Ip(3, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(1, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(2, 1:n) + write(iu, err = 667, iomsg = errmsg) pl%rot(3, 1:n) + end if + if (param%ltides) then + write(iu, err = 667, iomsg = errmsg) pl%k2(1:n) + write(iu, err = 667, iomsg = errmsg) pl%Q(1:n) + end if + end select + end associate + + return + 667 continue + write(*,*) "Error writing body frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_write_frame_body module subroutine io_netcdf_write_frame_body(self, iu, param) !! author: David A. Minton From 5deae8f7a9a3815ec7b74a4c96a7f16dd3e6d39f Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:04:34 -0400 Subject: [PATCH 048/315] added original io_write_frame_system back into io.f90 --- src/io/io.f90 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 247a6e4c3..007a30380 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1648,6 +1648,71 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi return end subroutine + module subroutine io_write_frame_system(self, iu, param) + !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott + !! + !! Write a frame (header plus records for each massive body and active test particle) to output binary file + !! There is no direct file output from this subroutine + !! + !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 + !! Adapted from Hal Levison's Swift routine io_write_frame.F + implicit none + ! Arguments + class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method + class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions + class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions + class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions + character(len=STRMAX) :: errmsg + + allocate(cb, source = self%cb) + allocate(pl, source = self%pl) + allocate(tp, source = self%tp) + iu = BINUNIT + + if (lfirst) then + select case(param%out_stat) + case('APPEND') + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case('NEW', 'REPLACE', 'UNKNOWN') + open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case default + write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) + call util_exit(FAILURE) + end select + lfirst = .false. + else + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + end if + call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) + + if (param%lgr) then + call pl%pv2v(param) + call tp%pv2v(param) + end if + + if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + call pl%xv2el(cb) + call tp%xv2el(cb) + end if + + ! Write out each data type frame + call cb%write_frame(iu, param) + call pl%write_frame(iu, param) + call tp%write_frame(iu, param) + + deallocate(cb, pl, tp) + + close(iu, err = 667, iomsg = errmsg) + + return + 667 continue + write(*,*) "Error writing system frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_write_frame_system module subroutine io_netcdf_write_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott From 93b433adcff552ce449ae9a6468c31cef421924e Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:07:10 -0400 Subject: [PATCH 049/315] fixed end subroutine names to reflect netcdf output type --- src/io/io.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 007a30380..8502288d9 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1575,7 +1575,7 @@ subroutine check(status) end subroutine check !return - end subroutine io_write_frame_body + end subroutine io_netcdf_write_frame_body module subroutine io_write_frame_cb(self, iu, param) @@ -1877,7 +1877,7 @@ subroutine check(status) end subroutine check !return - end subroutine io_write_frame_system + end subroutine io_netcdf_write_frame_system subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) From 3ee3f1d05e528e87390ff66227c25a8fd04d0ac8 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:27:59 -0400 Subject: [PATCH 050/315] changeed calculation of length of time dimension --- src/io/io.f90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 8502288d9..a47249212 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1460,7 +1460,9 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) if (n == 0) return !! Calculate the output number that we are currently on - ioutput = (param%t / param%dt) / param%istep_out + !ioutput = (param%t / param%dt) / param%istep_out + call check( nf90_inq_varid(ncid, "Time", time_dimid)) + call check( nf90_inquire_dimension(ncid, time_dimid, len=ioutput)) select case (param%out_form) case (EL) From cf09279ff1fdcb8a51140d3710e5ff595851bec0 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:29:08 -0400 Subject: [PATCH 051/315] commented out calculation of total length of time dimension switching to unlimited dimension --- src/io/io.f90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index a47249212..a43104f46 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1785,19 +1785,18 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) if (lfirst) then select case(param%out_stat) case('APPEND') - !open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', iostat = ierr) call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) + case('NEW', 'REPLACE', 'UNKNOWN') - !open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', iostat = ierr) !! Create the new output file, deleting any previously existing output file of the same name call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time - noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output + !noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! x dimension From 18315640ac4435c9bc69d1faeff9f3213503c0cc Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:29:59 -0400 Subject: [PATCH 052/315] changed time dimension to be unlimited --- src/io/io.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index a43104f46..df9f33fd6 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1799,8 +1799,8 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) !noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output !! Define the NetCDF dimensions with particle name as the record dimension - call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! x dimension - call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) !! y dimension + call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! 'x' dimension + call check( nf90_def_dim(ncid, "Time", NF90_UNLIMITED, time_dimid) ) !! 'y' dimension dimids = (/ time_dimid, name_dimid /) !! Define the variables From 78f7958374ce72c971c1082df126949a19edd8c5 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 08:56:07 -0400 Subject: [PATCH 053/315] switched back to the time dimension being limited Runtime error "NetCDF: NC_UNLIMITED size already in use" --- src/io/io.f90 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index df9f33fd6..1f7d44a7b 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1460,7 +1460,6 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) if (n == 0) return !! Calculate the output number that we are currently on - !ioutput = (param%t / param%dt) / param%istep_out call check( nf90_inq_varid(ncid, "Time", time_dimid)) call check( nf90_inquire_dimension(ncid, time_dimid, len=ioutput)) @@ -1789,18 +1788,18 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) - + case('NEW', 'REPLACE', 'UNKNOWN') !! Create the new output file, deleting any previously existing output file of the same name call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time - !noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output + noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! 'x' dimension - call check( nf90_def_dim(ncid, "Time", NF90_UNLIMITED, time_dimid) ) !! 'y' dimension + call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) !! 'y' dimension dimids = (/ time_dimid, name_dimid /) !! Define the variables From fc9be8beaeb605b96c7dbeb9a853925c8f5ef1c5 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Aug 2021 12:29:02 -0400 Subject: [PATCH 054/315] Switched scaling in the fragmentation code to be based on relative velocity. Troubleshooting large L problem during radial velocity step --- .../mars_disk/param.swiftest.in | 2 +- src/fragmentation/fragmentation.f90 | 288 +++++++++++------- src/symba/symba_util.f90 | 7 +- src/util/util_minimize_bfgs.f90 | 22 +- 4 files changed, 193 insertions(+), 126 deletions(-) diff --git a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in index 0d48de602..8427450f7 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in @@ -24,7 +24,7 @@ BIG_DISCARD no RHILL_PRESENT yes GMTINY 1000.0 ENERGY yes -FRAGMENTATION no +FRAGMENTATION yes ROTATION yes MU2KG 1.0 DU2M 1.0 diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 90758048f..8c85bd8d6 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -27,14 +27,14 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), dimension(NDIM) :: xcom, vcom integer(I4B) :: ii, npl_new logical, dimension(:), allocatable :: lexclude - real(DP), dimension(NDIM, 2) :: rot, L_orb + real(DP), dimension(NDIM, 2) :: rot, L_orb, mxc, vc real(DP), dimension(:,:), allocatable :: x_frag, v_frag, v_r_unit, v_t_unit, v_h_unit real(DP), dimension(:), allocatable :: rmag, rotmag, v_r_mag, v_t_mag real(DP), dimension(NDIM) :: Ltot_before real(DP), dimension(NDIM) :: Ltot_after real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag - real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb + real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget real(DP) :: ke_frag_budget, ke_frag_orbit, ke_radial, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" @@ -44,7 +44,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) real(DP), parameter :: Etol = 1e-6_DP integer(I4B), parameter :: MAXTRY = 3000 - integer(I4B), parameter :: TANTRY = 3 + integer(I4B), parameter :: TANTRY = 100 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes class(swiftest_nbody_system), allocatable :: tmpsys class(swiftest_parameters), allocatable :: tmpparam @@ -59,11 +59,27 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, fpe_quiet_modes(:) = .false. call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) - f_spin = 0.05_DP + f_spin = 0.01_DP allocate(x_frag, source=xb_frag) allocate(v_frag, source=vb_frag) + allocate(rmag(nfrag)) + allocate(rotmag(nfrag)) + allocate(v_r_mag(nfrag)) + allocate(v_t_mag(nfrag)) + allocate(v_r_unit(NDIM,nfrag)) + allocate(v_t_unit(NDIM,nfrag)) + allocate(v_h_unit(NDIM,nfrag)) + + rmag(:) = 0.0_DP + rotmag(:) = 0.0_DP + v_r_mag(:) = 0.0_DP + v_t_mag(:) = 0.0_DP + v_r_unit(:,:) = 0.0_DP + v_t_unit(:,:) = 0.0_DP + v_h_unit(:,:) = 0.0_DP + associate(pl => system%pl, npl => system%pl%nbody) npl_new = npl + nfrag allocate(lexclude(npl_new)) @@ -72,6 +88,17 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, end associate call set_scale_factors() + + ! Compute orbital angular momentum of pre-impact system + mxc(:, 1) = mass(1) * (x(:, 1) - xcom(:)) + mxc(:, 2) = mass(2) * (x(:, 2) - xcom(:)) + vc(:, 1) = v(:, 1) - vcom(:) + vc(:, 2) = v(:, 2) - vcom(:) + L_orb(:,:) = mxc(:,:) .cross. vc(:,:) + + ! Compute orbital angular momentum of pre-impact system. This will be the normal vector to the collision fragment plane + L_frag_budget(:) = L_spin(:, 1) + L_spin(:, 2) + L_orb(:, 1) + L_orb(:, 2) + call define_coordinate_system() call construct_temporary_system() @@ -88,23 +115,28 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ke_avg_deficit = 0.0_DP subtry = 1 do - ! Initialize the fragments with 0 velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum - xb_frag(:,:) = 0.0_DP - vb_frag(:,:) = 0.0_DP + ! Initialize the fragments with 0 relative velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum + do concurrent(ii = 1:nfrag) + xb_frag(:, ii) = xcom(:) + vb_frag(:, ii) = vcom(:) + end do rot_frag(:,:) = 0.0_DP v_t_mag(:) = 0.0_DP v_r_mag(:) = 0.0_DP call set_fragment_position_vectors() + call calculate_system_energy(linclude_fragments=.true.) ke_frag_budget = -dEtot - Qloss + L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) + call define_coordinate_system() call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial subtry = subtry + 1 if (.not.lfailure .or. subtry == TANTRY) exit - !write(*,*) 'Trying new arrangement' + write(*,*) 'Trying new arrangement' end do ke_avg_deficit = ke_avg_deficit / subtry - !if (lfailure) write(*,*) 'Failed to find tangential velocities' + if (lfailure) write(*,*) 'Failed to find tangential velocities' if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) @@ -113,14 +145,14 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) - ! write(*,*) 'Qloss : ',Qloss - ! write(*,*) '-dEtot: ',-dEtot - ! write(*,*) 'delta : ',abs((dEtot + Qloss)) + write(*,*) 'Qloss : ',Qloss + write(*,*) '-dEtot: ',-dEtot + write(*,*) 'delta : ',abs((dEtot + Qloss)) if ((abs(dEtot + Qloss) > Etol) .or. (dEtot > 0.0_DP)) then - !write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol + write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol lfailure = .true. else if (abs(dLmag) / Lmag_before > Ltol) then - !write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before + write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before lfailure = .true. end if end if @@ -133,24 +165,24 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call restore_scale_factors() call calculate_system_energy(linclude_fragments=.true.) - ! write(*, "(' -------------------------------------------------------------------------------------')") - ! write(*, "(' Final diagnostic')") - ! write(*, "(' -------------------------------------------------------------------------------------')") - ! if (lfailure) then - ! write(*,*) "symba_frag_pos failed after: ",try," tries" - ! do ii = 1, nfrag - ! vb_frag(:, ii) = vcom(:) - ! end do - ! else - ! write(*,*) "symba_frag_pos succeeded after: ",try," tries" - ! write(*, "(' dL_tot should be very small' )") - ! write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before - ! write(*, "(' dE_tot should be negative and equal to Qloss' )") - ! write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) - ! write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) - ! write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) - ! end if - ! write(*, "(' -------------------------------------------------------------------------------------')") + write(*, "(' -------------------------------------------------------------------------------------')") + write(*, "(' Final diagnostic')") + write(*, "(' -------------------------------------------------------------------------------------')") + if (lfailure) then + write(*,*) "symba_frag_pos failed after: ",try," tries" + do ii = 1, nfrag + vb_frag(:, ii) = vcom(:) + end do + else + write(*,*) "symba_frag_pos succeeded after: ",try," tries" + write(*, "(' dL_tot should be very small' )") + write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before + write(*, "(' dE_tot should be negative and equal to Qloss' )") + write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) + write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) + write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) + end if + write(*, "(' -------------------------------------------------------------------------------------')") call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily @@ -175,7 +207,7 @@ subroutine set_scale_factors() ! Set scale factors dscale = sum(radius(:)) mscale = mtot - vscale = (mass(1) * norm2(v(:,1) - vcom(:)) + mass(2) * norm2(v(:,2) - vcom(:))) / mtot + vscale = norm2(v(:,1) - v(:,2)) tscale = dscale / vscale Lscale = mscale * dscale * vscale Escale = mscale * vscale**2 @@ -270,37 +302,9 @@ subroutine define_coordinate_system() !! Defines the collisional coordinate system, including the unit vectors of both the system and individual fragments. implicit none integer(I4B) :: i - real(DP), dimension(NDIM) :: x_cross_v, xc, vc, delta_r, delta_v + real(DP), dimension(NDIM) :: x_cross_v, delta_r, delta_v, L_sigma real(DP) :: r_col_norm, v_col_norm - allocate(rmag(nfrag)) - allocate(rotmag(nfrag)) - allocate(v_r_mag(nfrag)) - allocate(v_t_mag(nfrag)) - allocate(v_r_unit(NDIM,nfrag)) - allocate(v_t_unit(NDIM,nfrag)) - allocate(v_h_unit(NDIM,nfrag)) - - rmag(:) = 0.0_DP - rotmag(:) = 0.0_DP - v_r_mag(:) = 0.0_DP - v_t_mag(:) = 0.0_DP - v_r_unit(:,:) = 0.0_DP - v_t_unit(:,:) = 0.0_DP - v_h_unit(:,:) = 0.0_DP - - L_orb(:, :) = 0.0_DP - ! Compute orbital angular momentum of pre-impact system - do i = 1, 2 - xc(:) = x(:, i) - xcom(:) - vc(:) = v(:, i) - vcom(:) - x_cross_v(:) = xc(:) .cross. vc(:) - L_orb(:, i) = mass(i) * x_cross_v(:) - end do - - ! Compute orbital angular momentum of pre-impact system. This will be the normal vector to the collision fragment plane - L_frag_tot(:) = L_spin(:, 1) + L_spin(:, 2) + L_orb(:, 1) + L_orb(:, 2) - delta_v(:) = v(:, 2) - v(:, 1) v_col_norm = norm2(delta_v(:)) delta_r(:) = x(:, 2) - x(:, 1) @@ -309,10 +313,21 @@ subroutine define_coordinate_system() ! We will initialize fragments on a plane defined by the pre-impact system, with the z-axis aligned with the angular momentum vector ! and the y-axis aligned with the pre-impact distance vector. y_col_unit(:) = delta_r(:) / r_col_norm - z_col_unit(:) = L_frag_tot(:) / norm2(L_frag_tot) + z_col_unit(:) = L_frag_budget(:) / norm2(L_frag_budget) ! The cross product of the y- by z-axis will give us the x-axis x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) + rmag(:) = .mag. x_frag(:,:) + + do i = 1, nfrag + v_r_unit(:, i) = x_frag(:, i) / rmag(i) + call random_number(L_sigma(:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, + ! otherwise we can get an ill-conditioned system + v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:) - 0.5_DP) + v_h_unit(:, i) = v_h_unit(:, i) / norm2(v_h_unit(:, i)) + v_t_unit(:, i) = v_h_unit(:, i) .cross. v_r_unit(:, i) + end do + return end subroutine define_coordinate_system @@ -455,7 +470,7 @@ subroutine calculate_system_energy(linclude_fragments) ke_orbit_after = tmpsys%ke_orbit ke_spin_after = tmpsys%ke_spin pe_after = tmpsys%pe - Etot_after = ke_orbit_after + ke_spin_after + pe_after + Etot_after = tmpsys%te dEtot = Etot_after - Etot_before dLmag = norm2(Ltot_after(:) - Ltot_before(:)) else @@ -464,7 +479,7 @@ subroutine calculate_system_energy(linclude_fragments) ke_orbit_before = tmpsys%ke_orbit ke_spin_before = tmpsys%ke_spin pe_before = tmpsys%pe - Etot_before = ke_orbit_before + ke_spin_before + pe_before + Etot_before = tmpsys%te end if end associate @@ -472,6 +487,27 @@ subroutine calculate_system_energy(linclude_fragments) end subroutine calculate_system_energy + subroutine calculate_fragment_ang_mtm() + !! Author: David A. Minton + !! + !! Calcualtes the current angular momentum of the fragments + implicit none + integer(I4B) :: i + + L_frag_orb(:) = 0.0_DP + L_frag_spin(:) = 0.0_DP + + do i = 1, nfrag + L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * x_frag(:, i) .cross. v_frag(:, i) + L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i) .cross. rot_frag(:, i) + end do + + L_frag_tot(:) = L_frag_orb(:) + L_frag_spin(:) + + return + end subroutine calculate_fragment_ang_mtm + + subroutine shift_vector_to_origin(m_frag, vec_frag) !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! @@ -508,7 +544,6 @@ subroutine set_fragment_position_vectors() implicit none real(DP) :: dis, rad - real(DP), dimension(NDIM) :: L_sigma logical, dimension(:), allocatable :: loverlap integer(I4B) :: i, j @@ -526,7 +561,7 @@ subroutine set_fragment_position_vectors() loverlap(:) = .true. do while (any(loverlap(3:nfrag))) x_frag(:, 1) = x(:, 1) - xcom(:) - x_frag(:, 2) = x(:, 2) - xcom(:) + x_frag(:, 2) = x(:, 2) - xcom(:) r_max = r_max + 0.1_DP * rad do i = 3, nfrag if (loverlap(i)) then @@ -543,15 +578,9 @@ subroutine set_fragment_position_vectors() end do end do call shift_vector_to_origin(m_frag, x_frag) + call define_coordinate_system() do i = 1, nfrag - rmag(i) = norm2(x_frag(:, i)) - v_r_unit(:, i) = x_frag(:, i) / rmag(i) - call random_number(L_sigma(:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, - ! otherwise we can get an ill-conditioned system - v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:) - 0.5_DP) - v_h_unit(:, i) = v_h_unit(:, i) / norm2(v_h_unit(:, i)) - v_t_unit(:, i) = v_h_unit(:, i) .cross. v_r_unit(:, i) xb_frag(:,i) = x_frag(:,i) + xcom(:) end do @@ -585,12 +614,14 @@ subroutine set_fragment_tan_vel(lerr) logical, intent(out) :: lerr ! Internals integer(I4B) :: i - real(DP), parameter :: TOL = 1e-4_DP + real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. + real(DP), parameter :: TOL_INIT = 1e-12_DP + real(DP) :: tol real(DP), dimension(:), allocatable :: v_t_initial real(DP), dimension(nfrag) :: kefrag type(lambda_obj) :: spinfunc type(lambda_obj_err) :: objective_function - real(DP), dimension(NDIM) :: L_frag_spin, L_remainder, Li, rot_L, rot_ke + real(DP), dimension(NDIM) :: L_remainder, Li, rot_L, rot_ke lerr = .false. @@ -603,69 +634,87 @@ subroutine set_fragment_tan_vel(lerr) allocate(v_t_initial, mold=v_t_mag) - L_frag_spin(:) = 0.0_DP + vb_frag(:,:) = 0.0_DP + ke_frag_spin = 0.0_DP ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest - do i = 1, 2 - rot_frag(:, i) = rot(:, i) - L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i) * rot_frag(:, i) - end do - L_frag_orb(:) = L_frag_tot(:) - L_frag_spin(:) - L_frag_spin(:) = 0.0_DP + rot_frag(:,1:2) = rot(:, :) + rot_frag(:,3:nfrag) = 0.0_DP + call calculate_fragment_ang_mtm() + L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) + do i = 1, nfrag ! Convert a fraction (f_spin) of either the remaining angular momentum or kinetic energy budget into spin, whichever gives the smaller rotation so as not to blow any budgets - rot_ke(:) = sqrt(2 * f_spin * ke_frag_budget / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i))) * L_frag_orb(:) / norm2(L_frag_orb(:)) - rot_L(:) = f_spin * L_frag_orb(:) / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i)) + rot_ke(:) = sqrt(2 * f_spin * ke_frag_budget / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i))) * L_remainder(:) / norm2(L_remainder(:)) + rot_L(:) = f_spin * L_remainder(:) / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i)) if (norm2(rot_ke) < norm2(rot_L)) then rot_frag(:,i) = rot_frag(:, i) + rot_ke(:) else rot_frag(:, i) = rot_frag(:, i) + rot_L(:) end if - L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i) * rot_frag(:, i) ke_frag_spin = ke_frag_spin + m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) end do ke_frag_spin = 0.5_DP * ke_frag_spin - ! Convert a fraction of the pre-impact angular momentum into fragment spin angular momentum - L_frag_orb(:) = L_frag_tot(:) - L_frag_spin(:) - L_remainder(:) = L_frag_orb(:) + + call calculate_fragment_ang_mtm() + write(*,*) '1: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) + ! Next we will solve for the tangential component of the velocities that both conserves linear momentum and uses the remaining angular momentum not used in spin. ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. do i = 1, nfrag - v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * m_frag(i) * norm2(x_frag(:,i))) - Li(:) = m_frag(i) * x_frag(:,i) .cross. v_t_initial(i) * v_t_unit(:, i) - L_remainder(:) = L_remainder(:) - Li(:) + Li(:) = (L_frag_budget(:) - L_frag_spin(:)) / nfrag + v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) + end do + + v_t_mag(:) = v_t_initial(:) + vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) + do i = 1, nfrag + v_frag(:,i) = vb_frag(:,i) - vcom(:) end do + call calculate_fragment_ang_mtm() + write(*,*) '2: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum objective_function = lambda_obj(tangential_objective_function, lerr) - v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), TOL, lerr) - ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis - v_t_initial(7:nfrag) = v_t_mag(7:nfrag) + + tol = TOL_INIT + do while(tol < TOL_MIN) + v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), TOL, lerr) + ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis + v_t_initial(7:nfrag) = v_t_mag(7:nfrag) + if (.not.lerr) exit + tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution + end do v_t_mag(1:nfrag) = solve_fragment_tan_vel(v_t_mag_input=v_t_initial(7:nfrag), lerr=lerr) ! Perform one final shift of the radial velocity vectors to align with the center of mass of the collisional system (the origin) vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) + do i = 1, nfrag + v_frag(:,i) = vb_frag(:,i) - vcom(:) + end do call add_fragments_to_tmpsys() ! Now do a kinetic energy budget check to make sure we are still within the budget. kefrag = 0.0_DP do concurrent(i = 1:nfrag) v_frag(:, i) = vb_frag(:, i) - vcom(:) - kefrag(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) + kefrag(i) = m_frag(i) * dot_product(v_frag(:, i), v_frag(:, i)) end do ke_frag_orbit = 0.5_DP * sum(kefrag(:)) ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin + call calculate_fragment_ang_mtm() + write(*,*) '3: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) ! If we are over the energy budget, flag this as a failure so we can try again lerr = (ke_radial < 0.0_DP) - ! write(*,*) 'Tangential' - ! write(*,*) 'Failure? ',lerr - ! write(*,*) 'ke_frag_budget: ',ke_frag_budget - ! write(*,*) 'ke_frag_spin : ',ke_frag_spin - ! write(*,*) 'ke_tangential : ',ke_frag_orbit - ! write(*,*) 'ke_remainder : ',ke_radial + write(*,*) 'Tangential' + write(*,*) 'Failure? ',lerr + write(*,*) 'ke_frag_budget: ',ke_frag_budget + write(*,*) 'ke_frag_spin : ',ke_frag_spin + write(*,*) 'ke_tangential : ',ke_frag_orbit + write(*,*) 'ke_remainder : ',ke_radial return end subroutine set_fragment_tan_vel @@ -694,7 +743,7 @@ function tangential_objective_function(v_t_mag_input, lerr) result(fval) kearr = 0.0_DP do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(v_shift(:, i), v_shift(:, i)) + kearr(i) = m_frag(i) * dot_product(v_shift(:, i) - vcom(:), v_shift(:, i) - vcom(:)) end do keo = 0.5_DP * sum(kearr(:)) fval = keo @@ -737,8 +786,8 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) else if (present(v_t_mag_input)) then vtmp(:) = v_t_mag_input(i - 6) * v_t_unit(:, i) L_lin_others(:) = L_lin_others(:) + m_frag(i) * vtmp(:) - L(:) = x_frag(:, i) .cross. vtmp(:) - L_orb_others(:) = L_orb_others(:) + m_frag(i) * L(:) + L(:) = m_frag(i) * x_frag(:, i) .cross. vtmp(:) + L_orb_others(:) = L_orb_others(:) + L(:) end if end do b(1:3) = -L_lin_others(:) @@ -760,7 +809,9 @@ subroutine set_fragment_radial_velocities(lerr) ! Arguments logical, intent(out) :: lerr ! Internals - real(DP), parameter :: TOL = 1e-10_DP + real(DP), parameter :: TOL_MIN = 1e-8_DP ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy + real(DP), parameter :: TOL_INIT = 1e-14_DP + real(DP) :: tol integer(I4B) :: i, j real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma real(DP), dimension(:,:), allocatable :: v_r @@ -779,7 +830,14 @@ subroutine set_fragment_radial_velocities(lerr) ! Initialize the lambda function using a structure constructor that calls the init method ! Minimize the ke objective function using the BFGS optimizer objective_function = lambda_obj(radial_objective_function) - v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, TOL, lerr) + tol = TOL_INIT + do while(tol < TOL_MIN) + v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, tol, lerr) + if (.not.lerr) exit + tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution + v_r_initial(:) = v_r_mag(:) + end do + ! Shift the radial velocity vectors to align with the center of mass of the collisional system (the origin) vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) do i = 1, nfrag @@ -788,17 +846,17 @@ subroutine set_fragment_radial_velocities(lerr) call add_fragments_to_tmpsys() do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) + kearr(i) = m_frag(i) * dot_product(v_frag(:, i), v_frag(:, i)) kespinarr(i) = m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:,i), rot_frag(:,i)) end do ke_frag_orbit = 0.5_DP * sum(kearr(:)) ke_frag_spin = 0.5_DP * sum(kespinarr(:)) - ! write(*,*) 'Radial' - ! write(*,*) 'Failure? ',lerr - ! write(*,*) 'ke_frag_budget: ',ke_frag_budget - ! write(*,*) 'ke_frag_spin : ',ke_frag_spin - ! write(*,*) 'ke_frag_orbit : ',ke_frag_orbit - ! write(*,*) 'ke_remainder : ',ke_frag_budget - (ke_frag_orbit + ke_frag_spin) + write(*,*) 'Radial' + write(*,*) 'Failure? ',lerr + write(*,*) 'ke_frag_budget: ',ke_frag_budget + write(*,*) 'ke_frag_spin : ',ke_frag_spin + write(*,*) 'ke_frag_orbit : ',ke_frag_orbit + write(*,*) 'ke_remainder : ',ke_frag_budget - (ke_frag_orbit + ke_frag_spin) lerr = .false. return @@ -824,7 +882,7 @@ function radial_objective_function(v_r_mag_input) result(fval) allocate(v_shift, mold=vb_frag) v_shift(:,:) = vmag_to_vb(v_r_mag_input, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i), v_shift(:, i))) + kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i) - vcom(:), v_shift(:, i) - vcom(:))) end do keo = 2 * ke_frag_budget - sum(kearr(:)) ! The following ensures that fval = 0 is a local minimum, which is what the BFGS method is searching for diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 2232b9599..caa60c7c3 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -402,7 +402,7 @@ module subroutine symba_util_rearray_pl(self, system, param) associate(pl => self, pl_adds => system%pl_adds) - allocate(tmp, mold=pl) + allocate(tmp, mold=self) ! Remove the discards and destroy the list, as the system already tracks pl_discards elsewhere allocate(lmask, source=pl%ldiscard(:)) lmask(:) = lmask(:) .or. pl%status(:) == INACTIVE @@ -466,6 +466,7 @@ module subroutine symba_util_rearray_pl(self, system, param) end if end do end associate + call move_alloc(plplenc_old, system%plplenc_list) end if @@ -713,7 +714,7 @@ module subroutine symba_util_sort_rearrange_arr_info(arr, ind, n) type(symba_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation if (.not. allocated(arr) .or. n <= 0) return - allocate(tmp, mold=arr) + allocate(tmp, source=arr) tmp(1:n) = arr(ind(1:n)) call move_alloc(tmp, arr) @@ -735,7 +736,7 @@ module subroutine symba_util_sort_rearrange_arr_kin(arr, ind, n) integer(I4B) :: i,j if (.not. allocated(arr) .or. n <= 0) return - allocate(tmp, mold=arr) + allocate(tmp, source=arr) tmp(1:n) = arr(ind(1:n)) do i = 1, n diff --git a/src/util/util_minimize_bfgs.f90 b/src/util/util_minimize_bfgs.f90 index fbd48c8c2..8d8ce6b1a 100644 --- a/src/util/util_minimize_bfgs.f90 +++ b/src/util/util_minimize_bfgs.f90 @@ -28,7 +28,7 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) real(DP), dimension(:), allocatable :: x1 ! Internals integer(I4B) :: i, j, k, l, conv, num - integer(I4B), parameter :: MAXLOOP = 1000 !! Maximum number of loops before method is determined to have failed + integer(I4B), parameter :: MAXLOOP = 10 !! Maximum number of loops before method is determined to have failed real(DP), parameter :: graddelta = 1e-4_DP !! Delta x for gradient calculations real(DP), dimension(N) :: S !! Direction vectors real(DP), dimension(N,N) :: H !! Approximated inverse Hessian matrix @@ -59,14 +59,20 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) do i = 1, MAXLOOP !check for convergence conv = count(abs(grad1(:)) > eps) + ! write(*,*) 'loop: ', i + ! write(*,*) 'conv: ', conv + ! write(*,*) 'grad1 / eps' + ! do j = 1, N + ! write(*,*) j, abs(grad1(j)) / eps + ! end do if (conv == 0) then - !write(*,*) "BFGS converged on gradient after ",i," iterations" + ! write(*,*) "BFGS converged on gradient after ",i," iterations" exit end if S(:) = -matmul(H(:,:), grad1(:)) astar = minimize1D(f, x1, S, N, graddelta, lerr) if (lerr) then - !write(*,*) "Exiting BFGS with error in minimize1D step" + ! write(*,*) "Exiting BFGS with error in minimize1D step" exit end if ! Get new x values @@ -86,7 +92,7 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) end do ! prevent divide by zero (convergence) if (abs(Py) < tiny(Py)) then - !write(*,*) "BFGS Converged on tiny Py after ",i," iterations" + ! write(*,*) "BFGS Converged on tiny Py after ",i," iterations" exit end if ! set up update @@ -110,13 +116,13 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) if (any(fpe_flag)) exit if (i == MAXLOOP) then lerr = .true. - !write(*,*) "BFGS ran out of loops!" + ! write(*,*) "BFGS ran out of loops!" end if end do call ieee_get_flag(ieee_usual, fpe_flag) lerr = lerr .or. any(fpe_flag) - !if (any(fpe_flag)) write(*,*) 'BFGS did not converge due to fpe' - !if (lerr) write(*,*) "BFGS did not converge!" + ! if (any(fpe_flag)) write(*,*) 'BFGS did not converge due to fpe' + ! if (lerr) write(*,*) "BFGS did not converge!" call ieee_set_status(original_fpe_status) return @@ -180,6 +186,7 @@ function gradf(f, N, x1, dx, lerr) result(grad) return end function gradf + function minimize1D(f, x0, S, N, eps, lerr) result(astar) !! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - !! This program find the minimum of a function of N variables in a single direction @@ -253,6 +260,7 @@ function minimize1D(f, x0, S, N, eps, lerr) result(astar) return end function minimize1D + function n2one(f, x0, S, N, a, lerr) result(fnew) implicit none ! Arguments From accd981deb7eac37089def7aeb9beb2f4ebacd86 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Fri, 13 Aug 2021 13:57:33 -0400 Subject: [PATCH 055/315] redid how we calculate ioutput --- src/io/io.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 1f7d44a7b..8c78080c8 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1460,8 +1460,9 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) if (n == 0) return !! Calculate the output number that we are currently on - call check( nf90_inq_varid(ncid, "Time", time_dimid)) - call check( nf90_inquire_dimension(ncid, time_dimid, len=ioutput)) + ioutput = (param%t / param%dt) / param%istep_out + !call check( nf90_inq_varid(ncid, "Time", ioutput)) + !call check( nf90_inquire_dimension(ncid, time_dimid, len=ioutput)) select case (param%out_form) case (EL) From 7144a8232db36850b450e8dcb9bc2a5f0a0e5b4f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Aug 2021 16:27:03 -0400 Subject: [PATCH 056/315] Fixed some scaling issues and rearranged the fragmentation code. Still not converging reliably --- src/fragmentation/fragmentation.f90 | 73 +++++++++++++++-------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 8c85bd8d6..56fb4f2ad 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -59,7 +59,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, fpe_quiet_modes(:) = .false. call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) - f_spin = 0.01_DP + f_spin = 0.1_DP allocate(x_frag, source=xb_frag) allocate(v_frag, source=vb_frag) @@ -116,10 +116,14 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, subtry = 1 do ! Initialize the fragments with 0 relative velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum - do concurrent(ii = 1:nfrag) - xb_frag(:, ii) = xcom(:) - vb_frag(:, ii) = vcom(:) - end do + !do concurrent(ii = 1:nfrag) + ! xb_frag(:, ii) = xcom(:) + ! vb_frag(:, ii) = vcom(:) + !end do + xb_frag(:,:) = 0.0_DP + vb_frag(:,:) = 0.0_DP + x_frag(:,:) = 0.0_DP + v_frag(:,:) = 0.0_DP rot_frag(:,:) = 0.0_DP v_t_mag(:) = 0.0_DP v_r_mag(:) = 0.0_DP @@ -127,7 +131,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call calculate_system_energy(linclude_fragments=.true.) ke_frag_budget = -dEtot - Qloss - L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) + L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) + mtot * (xcom(:) .cross. vcom(:)) call define_coordinate_system() call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial @@ -207,7 +211,7 @@ subroutine set_scale_factors() ! Set scale factors dscale = sum(radius(:)) mscale = mtot - vscale = norm2(v(:,1) - v(:,2)) + vscale = sqrt(0.5_DP) * (norm2(v(:,1)) + norm2(v(:,2))) tscale = dscale / vscale Lscale = mscale * dscale * vscale Escale = mscale * vscale**2 @@ -302,30 +306,31 @@ subroutine define_coordinate_system() !! Defines the collisional coordinate system, including the unit vectors of both the system and individual fragments. implicit none integer(I4B) :: i - real(DP), dimension(NDIM) :: x_cross_v, delta_r, delta_v, L_sigma + real(DP), dimension(NDIM) :: x_cross_v, delta_r, delta_v real(DP) :: r_col_norm, v_col_norm + real(DP), dimension(NDIM, nfrag) :: L_sigma delta_v(:) = v(:, 2) - v(:, 1) - v_col_norm = norm2(delta_v(:)) + v_col_norm = .mag. delta_v(:) delta_r(:) = x(:, 2) - x(:, 1) - r_col_norm = norm2(delta_r(:)) + r_col_norm = .mag. delta_r(:) ! We will initialize fragments on a plane defined by the pre-impact system, with the z-axis aligned with the angular momentum vector ! and the y-axis aligned with the pre-impact distance vector. y_col_unit(:) = delta_r(:) / r_col_norm - z_col_unit(:) = L_frag_budget(:) / norm2(L_frag_budget) + z_col_unit(:) = L_frag_budget(:) / (.mag. L_frag_budget) ! The cross product of the y- by z-axis will give us the x-axis x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) rmag(:) = .mag. x_frag(:,:) - - do i = 1, nfrag - v_r_unit(:, i) = x_frag(:, i) / rmag(i) - call random_number(L_sigma(:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, + call random_number(L_sigma(:,:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, ! otherwise we can get an ill-conditioned system - v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:) - 0.5_DP) - v_h_unit(:, i) = v_h_unit(:, i) / norm2(v_h_unit(:, i)) + do concurrent(i = 1:nfrag, rmag(i) > 0.0_DP) + v_r_unit(:, i) = x_frag(:, i) / rmag(i) + v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:,i) - 0.5_DP) + v_h_unit(:, i) = v_h_unit(:, i) / (.mag. v_h_unit(:, i)) v_t_unit(:, i) = v_h_unit(:, i) .cross. v_r_unit(:, i) + v_t_unit(:, i) = v_t_unit(:, i) / (.mag. v_t_unit(:, i)) end do return @@ -498,8 +503,8 @@ subroutine calculate_fragment_ang_mtm() L_frag_spin(:) = 0.0_DP do i = 1, nfrag - L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * x_frag(:, i) .cross. v_frag(:, i) - L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i) .cross. rot_frag(:, i) + L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) + L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(:, i) * rot_frag(:, i) end do L_frag_tot(:) = L_frag_orb(:) + L_frag_spin(:) @@ -634,6 +639,7 @@ subroutine set_fragment_tan_vel(lerr) allocate(v_t_initial, mold=v_t_mag) + v_frag(:,:) = 0.0_DP vb_frag(:,:) = 0.0_DP ke_frag_spin = 0.0_DP @@ -657,24 +663,22 @@ subroutine set_fragment_tan_vel(lerr) ke_frag_spin = 0.5_DP * ke_frag_spin call calculate_fragment_ang_mtm() - write(*,*) '1: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) + L_remainder(:) = L_frag_budget(:) - L_frag_tot(:) ! Next we will solve for the tangential component of the velocities that both conserves linear momentum and uses the remaining angular momentum not used in spin. ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - do i = 1, nfrag - Li(:) = (L_frag_budget(:) - L_frag_spin(:)) / nfrag + Li(:) = L_remainder(:) / nfrag + do concurrent (i = 1:nfrag) v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) end do v_t_mag(:) = v_t_initial(:) vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) - do i = 1, nfrag - v_frag(:,i) = vb_frag(:,i) - vcom(:) + do concurrent(i = 1:nfrag) + v_frag(:, i) = vb_frag(:, i) - vcom(:) end do - call calculate_fragment_ang_mtm() - write(*,*) '2: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum objective_function = lambda_obj(tangential_objective_function, lerr) @@ -691,7 +695,7 @@ subroutine set_fragment_tan_vel(lerr) ! Perform one final shift of the radial velocity vectors to align with the center of mass of the collisional system (the origin) vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) - do i = 1, nfrag + do concurrent (i = 1:nfrag) v_frag(:,i) = vb_frag(:,i) - vcom(:) end do call add_fragments_to_tmpsys() @@ -705,7 +709,7 @@ subroutine set_fragment_tan_vel(lerr) ke_frag_orbit = 0.5_DP * sum(kefrag(:)) ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin call calculate_fragment_ang_mtm() - write(*,*) '3: L_remainder : ',norm2(L_frag_budget(:) - L_frag_tot(:)) + L_remainder(:) = L_frag_budget(:) - L_frag_tot(:) ! If we are over the energy budget, flag this as a failure so we can try again lerr = (ke_radial < 0.0_DP) @@ -715,6 +719,7 @@ subroutine set_fragment_tan_vel(lerr) write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit write(*,*) 'ke_remainder : ',ke_radial + write(*,*) '|L_remainder| : ',.mag.L_remainder(:) return end subroutine set_fragment_tan_vel @@ -743,7 +748,7 @@ function tangential_objective_function(v_t_mag_input, lerr) result(fval) kearr = 0.0_DP do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(v_shift(:, i) - vcom(:), v_shift(:, i) - vcom(:)) + kearr(i) = m_frag(i) * dot_product(v_shift(:, i), v_shift(:, i)) end do keo = 0.5_DP * sum(kearr(:)) fval = keo @@ -770,9 +775,7 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) real(DP), dimension(2 * NDIM) :: b ! RHS of linear equation used to solve for momentum constraint in Gauss elimination code real(DP), dimension(NDIM) :: L_lin_others, L_orb_others, L, vtmp - v_frag(:,:) = 0.0_DP lerr = .false. - ! We have 6 constraint equations (2 vector constraints in 3 dimensions each) ! The first 3 are that the linear momentum of the fragments is zero with respect to the collisional barycenter ! The second 3 are that the sum of the angular momentum of the fragments is conserved from the pre-impact state @@ -786,12 +789,12 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) else if (present(v_t_mag_input)) then vtmp(:) = v_t_mag_input(i - 6) * v_t_unit(:, i) L_lin_others(:) = L_lin_others(:) + m_frag(i) * vtmp(:) - L(:) = m_frag(i) * x_frag(:, i) .cross. vtmp(:) + L(:) = m_frag(i) * (x_frag(:, i) .cross. vtmp(:)) L_orb_others(:) = L_orb_others(:) + L(:) end if end do b(1:3) = -L_lin_others(:) - b(4:6) = L_frag_orb(:) - L_orb_others(:) + b(4:6) = L_frag_budget(:) - L_frag_spin(:) - L_orb_others(:) allocate(v_t_mag_output(nfrag)) v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lerr) if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) @@ -846,7 +849,7 @@ subroutine set_fragment_radial_velocities(lerr) call add_fragments_to_tmpsys() do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(v_frag(:, i), v_frag(:, i)) + kearr(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) kespinarr(i) = m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:,i), rot_frag(:,i)) end do ke_frag_orbit = 0.5_DP * sum(kearr(:)) @@ -882,7 +885,7 @@ function radial_objective_function(v_r_mag_input) result(fval) allocate(v_shift, mold=vb_frag) v_shift(:,:) = vmag_to_vb(v_r_mag_input, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i) - vcom(:), v_shift(:, i) - vcom(:))) + kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i), v_shift(:, i))) end do keo = 2 * ke_frag_budget - sum(kearr(:)) ! The following ensures that fval = 0 is a local minimum, which is what the BFGS method is searching for From f9038c04868d6919a9ea2d161276c4534038653c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Aug 2021 16:49:07 -0400 Subject: [PATCH 057/315] Tweaks to fragmentation parameters aimed at improving stability --- src/fragmentation/fragmentation.f90 | 25 ++++++++++--------------- src/util/util_minimize_bfgs.f90 | 2 +- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 56fb4f2ad..7e58a07c0 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -44,7 +44,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) real(DP), parameter :: Etol = 1e-6_DP integer(I4B), parameter :: MAXTRY = 3000 - integer(I4B), parameter :: TANTRY = 100 + integer(I4B), parameter :: TANTRY = 3 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes class(swiftest_nbody_system), allocatable :: tmpsys class(swiftest_parameters), allocatable :: tmpparam @@ -59,7 +59,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, fpe_quiet_modes(:) = .false. call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) - f_spin = 0.1_DP + f_spin = 0.05_DP allocate(x_frag, source=xb_frag) allocate(v_frag, source=vb_frag) @@ -105,7 +105,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! Calculate the initial energy of the system without the collisional family call calculate_system_energy(linclude_fragments=.false.) - r_max_start = norm2(x(:,2) - x(:,1)) + r_max_start = 2 * norm2(x(:,2) - x(:,1)) try = 1 lfailure = .false. ke_avg_deficit = 0.0_DP @@ -115,11 +115,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ke_avg_deficit = 0.0_DP subtry = 1 do - ! Initialize the fragments with 0 relative velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum - !do concurrent(ii = 1:nfrag) - ! xb_frag(:, ii) = xcom(:) - ! vb_frag(:, ii) = vcom(:) - !end do + ! Initialize the fragments with 0 velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum xb_frag(:,:) = 0.0_DP vb_frag(:,:) = 0.0_DP x_frag(:,:) = 0.0_DP @@ -620,7 +616,7 @@ subroutine set_fragment_tan_vel(lerr) ! Internals integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. - real(DP), parameter :: TOL_INIT = 1e-12_DP + real(DP), parameter :: TOL_INIT = 1e-14_DP real(DP) :: tol real(DP), dimension(:), allocatable :: v_t_initial real(DP), dimension(nfrag) :: kefrag @@ -689,7 +685,7 @@ subroutine set_fragment_tan_vel(lerr) ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis v_t_initial(7:nfrag) = v_t_mag(7:nfrag) if (.not.lerr) exit - tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution + tol = tol * 2_DP ! Keep increasing the tolerance until we converge on a solution end do v_t_mag(1:nfrag) = solve_fragment_tan_vel(v_t_mag_input=v_t_initial(7:nfrag), lerr=lerr) @@ -703,8 +699,7 @@ subroutine set_fragment_tan_vel(lerr) ! Now do a kinetic energy budget check to make sure we are still within the budget. kefrag = 0.0_DP do concurrent(i = 1:nfrag) - v_frag(:, i) = vb_frag(:, i) - vcom(:) - kefrag(i) = m_frag(i) * dot_product(v_frag(:, i), v_frag(:, i)) + kefrag(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) end do ke_frag_orbit = 0.5_DP * sum(kefrag(:)) ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin @@ -715,11 +710,11 @@ subroutine set_fragment_tan_vel(lerr) lerr = (ke_radial < 0.0_DP) write(*,*) 'Tangential' write(*,*) 'Failure? ',lerr + write(*,*) '|L_remainder| : ',.mag.L_remainder(:) write(*,*) 'ke_frag_budget: ',ke_frag_budget write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit write(*,*) 'ke_remainder : ',ke_radial - write(*,*) '|L_remainder| : ',.mag.L_remainder(:) return end subroutine set_fragment_tan_vel @@ -812,8 +807,8 @@ subroutine set_fragment_radial_velocities(lerr) ! Arguments logical, intent(out) :: lerr ! Internals - real(DP), parameter :: TOL_MIN = 1e-8_DP ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy - real(DP), parameter :: TOL_INIT = 1e-14_DP + real(DP), parameter :: TOL_MIN = Etol ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy + real(DP), parameter :: TOL_INIT = 1e-12_DP real(DP) :: tol integer(I4B) :: i, j real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma diff --git a/src/util/util_minimize_bfgs.f90 b/src/util/util_minimize_bfgs.f90 index 8d8ce6b1a..9a0e4e12e 100644 --- a/src/util/util_minimize_bfgs.f90 +++ b/src/util/util_minimize_bfgs.f90 @@ -28,7 +28,7 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) real(DP), dimension(:), allocatable :: x1 ! Internals integer(I4B) :: i, j, k, l, conv, num - integer(I4B), parameter :: MAXLOOP = 10 !! Maximum number of loops before method is determined to have failed + integer(I4B), parameter :: MAXLOOP = 100 !! Maximum number of loops before method is determined to have failed real(DP), parameter :: graddelta = 1e-4_DP !! Delta x for gradient calculations real(DP), dimension(N) :: S !! Direction vectors real(DP), dimension(N,N) :: H !! Approximated inverse Hessian matrix From de56e11348c47ff7d5f726af0c8dbb1cffbe20d1 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Aug 2021 17:04:41 -0400 Subject: [PATCH 058/315] Got the energy conservation working, but broke angular momentum conservation :-( --- src/fragmentation/fragmentation.f90 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 7e58a07c0..5e1e93fbe 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -127,7 +127,11 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call calculate_system_energy(linclude_fragments=.true.) ke_frag_budget = -dEtot - Qloss - L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) + mtot * (xcom(:) .cross. vcom(:)) + L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) + do ii = 1, nfrag + L_frag_budget(:) = L_frag_budget(:) + m_frag(ii) * (xb_frag(:, ii) .cross. vcom(:)) + end do + call define_coordinate_system() call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial @@ -153,7 +157,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, lfailure = .true. else if (abs(dLmag) / Lmag_before > Ltol) then write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before - lfailure = .true. + !lfailure = .true. end if end if end if From ab16099e4d23cee95e4b7ebb3ab5dd6d356d5d84 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 13 Aug 2021 17:27:36 -0400 Subject: [PATCH 059/315] Still haven't tracked down the angular momentum error, but commiting what I've got so far --- src/fragmentation/fragmentation.f90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 5e1e93fbe..3c7a7aa4a 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -105,7 +105,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! Calculate the initial energy of the system without the collisional family call calculate_system_energy(linclude_fragments=.false.) - r_max_start = 2 * norm2(x(:,2) - x(:,1)) + r_max_start = 10 * norm2(x(:,2) - x(:,1)) try = 1 lfailure = .false. ke_avg_deficit = 0.0_DP @@ -145,6 +145,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) ke_radial = -dEtot - Qloss + write(*,*) 'Pre-radial dL/L0: ', abs(dLmag) / Lmag_before call set_fragment_radial_velocities(lfailure) ! if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then @@ -157,7 +158,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, lfailure = .true. else if (abs(dLmag) / Lmag_before > Ltol) then write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before - !lfailure = .true. + lfailure = .true. end if end if end if @@ -503,7 +504,7 @@ subroutine calculate_fragment_ang_mtm() L_frag_spin(:) = 0.0_DP do i = 1, nfrag - L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) + L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(:, i) * rot_frag(:, i) end do From d0e84bff67456a5990ba6125b89ac9343aeb5c56 Mon Sep 17 00:00:00 2001 From: Dana Date: Sun, 15 Aug 2021 15:40:08 -0400 Subject: [PATCH 060/315] Changed NF90_CLOBBER to NF90_HDF5 Changed NF90_CLOBBER to NF90_HDF5 to get file in NetCDF4/HDF5 format to read multiple unlimited dimensions --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 8c78080c8..56b998a8e 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1793,7 +1793,7 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) case('NEW', 'REPLACE', 'UNKNOWN') !! Create the new output file, deleting any previously existing output file of the same name - call check( nf90_create(param%outfile, NF90_CLOBBER, ncid) ) + call check( nf90_create(param%outfile, NF90_HDF5, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output From 0a968b1ec68fd2cfbb59e0ba3fc82c57ccd8b1cb Mon Sep 17 00:00:00 2001 From: Dana Date: Mon, 16 Aug 2021 10:17:03 -0400 Subject: [PATCH 061/315] Change the Time dimension back to unlimited --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 56b998a8e..6bcbc0dcb 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1800,7 +1800,7 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) !! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(ncid, "Name", NF90_UNLIMITED, name_dimid) ) !! 'x' dimension - call check( nf90_def_dim(ncid, "Time", noutput, time_dimid) ) !! 'y' dimension + call check( nf90_def_dim(ncid, "Time", NF90_UNLIMITED, time_dimid) ) !! 'y' dimension dimids = (/ time_dimid, name_dimid /) !! Define the variables From 7c3a797f51805cd1677bc9f4fecf2fb9fa8e243b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 10:53:19 -0400 Subject: [PATCH 062/315] Added safety parens to .cross. operations. Changed scaling in fragmentation_initialize back to one based on kinetic energy. --- src/fragmentation/fragmentation.f90 | 49 +++++--- src/symba/symba_collision.f90 | 171 ++++++++++++++------------ src/symba/symba_discard.f90 | 12 +- src/tides/tides_getacch_pl.f90 | 4 +- src/util/util_get_energy_momentum.f90 | 37 +++--- 5 files changed, 145 insertions(+), 128 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 3c7a7aa4a..0dd7ddd64 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -34,7 +34,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), dimension(NDIM) :: Ltot_after real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag - real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget + real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after real(DP) :: ke_frag_budget, ke_frag_orbit, ke_radial, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" @@ -125,12 +125,12 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, v_r_mag(:) = 0.0_DP call set_fragment_position_vectors() + do concurrent (ii = 1:nfrag) + vb_frag(:, ii) = vcom(:) + end do + call calculate_system_energy(linclude_fragments=.true.) ke_frag_budget = -dEtot - Qloss - L_frag_budget(:) = Ltot_after(:) - Ltot_before(:) - do ii = 1, nfrag - L_frag_budget(:) = L_frag_budget(:) + m_frag(ii) * (xb_frag(:, ii) .cross. vcom(:)) - end do call define_coordinate_system() call set_fragment_tan_vel(lfailure) @@ -168,11 +168,11 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, try = try + 1 end do call restore_scale_factors() - call calculate_system_energy(linclude_fragments=.true.) write(*, "(' -------------------------------------------------------------------------------------')") write(*, "(' Final diagnostic')") write(*, "(' -------------------------------------------------------------------------------------')") + call calculate_system_energy(linclude_fragments=.true.) if (lfailure) then write(*,*) "symba_frag_pos failed after: ",try," tries" do ii = 1, nfrag @@ -210,12 +210,12 @@ subroutine set_scale_factors() vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot ! Set scale factors + Escale = 0.5_DP * (mass(1) * dot_product(v(:,1), v(:,1)) + mass(2) * dot_product(v(:,2), v(:,2))) dscale = sum(radius(:)) - mscale = mtot - vscale = sqrt(0.5_DP) * (norm2(v(:,1)) + norm2(v(:,2))) + mscale = mtot + vscale = sqrt(Escale / mscale) tscale = dscale / vscale Lscale = mscale * dscale * vscale - Escale = mscale * vscale**2 xcom(:) = xcom(:) / dscale vcom(:) = vcom(:) / vscale @@ -471,6 +471,8 @@ subroutine calculate_system_energy(linclude_fragments) ! Calculate the current fragment energy and momentum balances if (linclude_fragments) then + Lorbit_after(:) = tmpsys%Lorbit + Lspin_after(:) = tmpsys%Lspin Ltot_after(:) = tmpsys%Lorbit(:) + tmpsys%Lspin(:) Lmag_after = norm2(Ltot_after(:)) ke_orbit_after = tmpsys%ke_orbit @@ -480,6 +482,8 @@ subroutine calculate_system_energy(linclude_fragments) dEtot = Etot_after - Etot_before dLmag = norm2(Ltot_after(:) - Ltot_before(:)) else + Lorbit_before(:) = tmpsys%Lorbit + Lspin_before(:) = tmpsys%Lspin Ltot_before(:) = tmpsys%Lorbit(:) + tmpsys%Lspin(:) Lmag_before = norm2(Ltot_before(:)) ke_orbit_before = tmpsys%ke_orbit @@ -504,7 +508,7 @@ subroutine calculate_fragment_ang_mtm() L_frag_spin(:) = 0.0_DP do i = 1, nfrag - L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) + L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(:, i) * rot_frag(:, i) end do @@ -631,6 +635,22 @@ subroutine set_fragment_tan_vel(lerr) lerr = .false. + ! write(*,*) '***************************************************' + ! write(*,*) 'Original dis : ',norm2(x(:,2) - x(:,1)) + ! write(*,*) 'r_max : ',r_max + ! write(*,*) 'f_spin : ',f_spin + ! write(*,*) '***************************************************' + ! write(*,*) 'Energy balance so far: ' + ! write(*,*) 'ke_frag_budget : ',ke_frag_budget + ! write(*,*) 'ke_orbit_before: ',ke_orbit_before + ! write(*,*) 'ke_orbit_after : ',ke_orbit_after + ! write(*,*) 'ke_spin_before : ',ke_spin_before + ! write(*,*) 'ke_spin_after : ',ke_spin_after + ! write(*,*) 'pe_before : ',pe_before + ! write(*,*) 'pe_after : ',pe_after + ! write(*,*) 'Qloss : ',Qloss + ! write(*,*) '***************************************************' + if (ke_frag_budget < 0.0_DP) then write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget r_max_start = r_max_start / 2 @@ -715,7 +735,7 @@ subroutine set_fragment_tan_vel(lerr) lerr = (ke_radial < 0.0_DP) write(*,*) 'Tangential' write(*,*) 'Failure? ',lerr - write(*,*) '|L_remainder| : ',.mag.L_remainder(:) + write(*,*) '|L_remainder| : ',.mag.L_remainder(:) / Lmag_before write(*,*) 'ke_frag_budget: ',ke_frag_budget write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit @@ -784,17 +804,16 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) do i = 1, nfrag if (i <= 2 * NDIM) then ! The tangential velocities of the first set of bodies will be the unknowns we will solve for to satisfy the constraints A(1:3, i) = m_frag(i) * v_t_unit(:, i) - L(:) = v_r_unit(:, i) .cross. v_t_unit(:, i) - A(4:6, i) = m_frag(i) * rmag(i) * L(:) + A(4:6, i) = m_frag(i) * rmag(i) * (v_r_unit(:, i) .cross. v_t_unit(:, i)) else if (present(v_t_mag_input)) then vtmp(:) = v_t_mag_input(i - 6) * v_t_unit(:, i) L_lin_others(:) = L_lin_others(:) + m_frag(i) * vtmp(:) - L(:) = m_frag(i) * (x_frag(:, i) .cross. vtmp(:)) + L(:) = m_frag(i) * (x_frag(:, i) .cross. vtmp(:)) L_orb_others(:) = L_orb_others(:) + L(:) end if end do b(1:3) = -L_lin_others(:) - b(4:6) = L_frag_budget(:) - L_frag_spin(:) - L_orb_others(:) + b(4:6) = L_frag_orb(:) - L_orb_others(:) allocate(v_t_mag_output(nfrag)) v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lerr) if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 0e6c69440..80a9550bb 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -454,11 +454,11 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec do k = 1, nenc if (lcollision(k)) self%status(k) = COLLISION self%t(k) = t - self%x1(:,k) = pl%xh(:,ind1(k)) - self%v1(:,k) = pl%vb(:,ind1(k)) - system%cb%vb(:) + self%x1(:,k) = pl%xh(:,ind1(k)) + system%cb%xb(:) + self%v1(:,k) = pl%vb(:,ind1(k)) if (isplpl) then - self%x2(:,k) = pl%xh(:,ind2(k)) - self%v2(:,k) = pl%vb(:,ind2(k)) - system%cb%vb(:) + self%x2(:,k) = pl%xh(:,ind2(k)) + system%cb%xb(:) + self%v2(:,k) = pl%vb(:,ind2(k)) if (lcollision(k)) then ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional family if (pl%lcollision(ind1(k)) .or. pl%lcollision(ind2(k))) call pl%make_family([ind1(k),ind2(k)]) @@ -469,8 +469,8 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec pl%status([ind1(k), ind2(k)]) = COLLISION end if else - self%x2(:,k) = tp%xh(:,ind2(k)) - self%v2(:,k) = tp%vb(:,ind2(k)) - system%cb%vb(:) + self%x2(:,k) = tp%xh(:,ind2(k)) + system%cb%xb(:) + self%v2(:,k) = tp%vb(:,ind2(k)) if (lcollision(k)) then tp%status(ind2(k)) = DISCARDED_PLR tp%ldiscard(ind2(k)) = .true. @@ -539,7 +539,7 @@ pure elemental function symba_collision_check_one(xr, yr, zr, vxr, vyr, vzr, Gmt end function symba_collision_check_one - function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) result(lflag) + function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) result(lflag) !! author: David A. Minton !! !! Loops through the pl-pl collision list and groups families together by index. Outputs the indices of all family members, @@ -547,6 +547,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v implicit none ! Arguments class(symba_pl), intent(inout) :: pl !! SyMBA massive body object + class(symba_cb), intent(inout) :: cb !! SyMBA central body object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(2), intent(inout) :: idx_parent !! Index of the two bodies considered the "parents" of the collision integer(I4B), dimension(:), allocatable, intent(out) :: family !! List of indices of all bodies inovlved in the collision @@ -611,7 +612,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v ! Find the barycenter of each body along with its children, if it has any do j = 1, 2 - x(:, j) = pl%xh(:, idx_parent(j)) + x(:, j) = pl%xh(:, idx_parent(j)) + cb%xb(:) v(:, j) = pl%vb(:, idx_parent(j)) ! Assume principal axis rotation about axis corresponding to highest moment of inertia (3rd Ip) if (param%lrotation) then @@ -624,7 +625,7 @@ function symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v idx_child = parent_child_index_array(j)%idx(i + 1) if (.not. pl%lcollision(idx_child)) cycle mchild = pl%mass(idx_child) - xchild(:) = pl%xh(:, idx_child) + xchild(:) = pl%xh(:, idx_child) + cb%xb(:) vchild(:) = pl%vb(:, idx_child) volchild = (4.0_DP / 3.0_DP) * PI * pl%radius(idx_child)**3 volume(j) = volume(j) + volchild @@ -944,68 +945,71 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) integer(I4B), parameter :: NRES = 3 !! Number of collisional product results real(DP), dimension(NRES) :: mass_res - associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2, cb => system%cb) + associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) class is (symba_pl) - do i = 1, ncollisions - idx_parent(1) = pl%kin(idx1(i))%parent - idx_parent(2) = pl%kin(idx2(i))%parent - lgoodcollision = symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) - if (.not. lgoodcollision) cycle - if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - - ! Convert from DH to barycentric - x(:,1) = x(:,1) + cb%xb(:) - x(:,2) = x(:,2) + cb%xb(:) - - ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them - ! to symba_regime - if (mass(1) > mass(2)) then - jtarg = 1 - jproj = 2 - else - jtarg = 2 - jproj = 1 - end if - mass_si(:) = (mass(:)) * param%MU2KG !! The collective mass of the parent and its children - radius_si(:) = radius(:) * param%DU2M !! The collective radius of the parent and its children - x1_si(:) = plpl_collisions%x1(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v1_si(:) = plpl_collisions%v1(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) - x2_si(:) = plpl_collisions%x2(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v2_si(:) = plpl_collisions%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) - density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The collective density of the parent and its children - Mcb_si = cb%mass * param%MU2KG - mtiny_si = (param%GMTINY / param%GU) * param%MU2KG + select type (cb => system%cb) + class is (symba_cb) + do i = 1, ncollisions + idx_parent(1) = pl%kin(idx1(i))%parent + idx_parent(2) = pl%kin(idx2(i))%parent + lgoodcollision = symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) + if (.not. lgoodcollision) cycle + if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved + + ! Convert from DH to barycentric + x(:,1) = x(:,1) + cb%xb(:) + x(:,2) = x(:,2) + cb%xb(:) + + ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them + ! to symba_regime + if (mass(1) > mass(2)) then + jtarg = 1 + jproj = 2 + else + jtarg = 2 + jproj = 1 + end if + mass_si(:) = (mass(:)) * param%MU2KG !! The collective mass of the parent and its children + radius_si(:) = radius(:) * param%DU2M !! The collective radius of the parent and its children + x1_si(:) = plpl_collisions%x1(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) + v1_si(:) = plpl_collisions%v1(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) + x2_si(:) = plpl_collisions%x2(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) + v2_si(:) = plpl_collisions%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) + density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The collective density of the parent and its children + Mcb_si = cb%mass * param%MU2KG + mtiny_si = (param%GMTINY / param%GU) * param%MU2KG + + mass_res(:) = 0.0_DP - mass_res(:) = 0.0_DP - - mtot = sum(mass_si(:)) - dentot = sum(mass_si(:) * density_si(:)) / mtot - - !! Use the positions and velocities of the parents from indside the step (at collision) to calculate the collisional regime - call fragmentation_regime(Mcb_si, mass_si(jtarg), mass_si(jproj), radius_si(jtarg), radius_si(jproj), x1_si(:), x2_si(:),& - v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), regime, mlr, mslr, mtiny_si, Qloss) - - mass_res(1) = min(max(mlr, 0.0_DP), mtot) - mass_res(2) = min(max(mslr, 0.0_DP), mtot) - mass_res(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) - mass_res(:) = (mass_res(:) / param%MU2KG) - Qloss = Qloss * (param%TU2S / param%DU2M)**2 / param%MU2KG - - select case (regime) - case (COLLRESOLVE_REGIME_DISRUPTION) - status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) - case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) - case (COLLRESOLVE_REGIME_HIT_AND_RUN) - status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) - case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) - case default - write(*,*) "Error in symba_collision, unrecognized collision regime" - call util_exit(FAILURE) - end select - end do + mtot = sum(mass_si(:)) + dentot = sum(mass_si(:) * density_si(:)) / mtot + + !! Use the positions and velocities of the parents from indside the step (at collision) to calculate the collisional regime + call fragmentation_regime(Mcb_si, mass_si(jtarg), mass_si(jproj), radius_si(jtarg), radius_si(jproj), x1_si(:), x2_si(:),& + v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), regime, mlr, mslr, mtiny_si, Qloss) + + mass_res(1) = min(max(mlr, 0.0_DP), mtot) + mass_res(2) = min(max(mslr, 0.0_DP), mtot) + mass_res(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) + mass_res(:) = (mass_res(:) / param%MU2KG) + Qloss = Qloss * (param%TU2S / param%DU2M)**2 / param%MU2KG + + select case (regime) + case (COLLRESOLVE_REGIME_DISRUPTION) + status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + case (COLLRESOLVE_REGIME_HIT_AND_RUN) + status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) + status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + case default + write(*,*) "Error in symba_collision, unrecognized collision regime" + call util_exit(FAILURE) + end select + end do + end select end select end associate @@ -1031,22 +1035,25 @@ module subroutine symba_collision_resolve_mergers(self, system, param) logical :: lgoodcollision integer(I4B) :: i, status - associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2, cb => system%cb) + associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) class is (symba_pl) - do i = 1, ncollisions - idx_parent(1) = pl%kin(idx1(i))%parent - idx_parent(2) = pl%kin(idx2(i))%parent - lgoodcollision = symba_collision_consolidate_familes(pl, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) - if (.not. lgoodcollision) cycle - if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - - ! Convert from DH to barycentric - x(:,1) = x(:,1) + cb%xb(:) - x(:,2) = x(:,2) + cb%xb(:) - - status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) - end do + select type(cb => system%cb) + class is (symba_cb) + do i = 1, ncollisions + idx_parent(1) = pl%kin(idx1(i))%parent + idx_parent(2) = pl%kin(idx2(i))%parent + lgoodcollision = symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) + if (.not. lgoodcollision) cycle + if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved + + ! Convert from DH to barycentric + x(:,1) = x(:,1) + cb%xb(:) + x(:,2) = x(:,2) + cb%xb(:) + + status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + end do + end select end select end associate diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 70c0898a5..f6f7c0e6b 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -97,10 +97,10 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) Ltot(:) = 0.0_DP do i = 1, pl%nbody - Lpl(:) = pL%mass(i) * pl%xb(:,i) .cross. pl%vb(:, i) + Lpl(:) = pL%mass(i) * (pl%xb(:,i) .cross. pl%vb(:, i)) Ltot(:) = Ltot(:) + Lpl(:) end do - Ltot(:) = Ltot(:) + cb%mass * cb%xb(:) .cross. cb%vb(:) + Ltot(:) = Ltot(:) + cb%mass * (cb%xb(:) .cross. cb%vb(:)) call pl%b2h(cb) oldstat = pl%status(ipl) pl%status(ipl) = INACTIVE @@ -108,20 +108,20 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) pl%status(ipl) = oldstat do i = 1, pl%nbody if (i == ipl) cycle - Lpl(:) = pl%mass(i) * pl%xb(:,i) .cross. pl%vb(:, i) + Lpl(:) = pl%mass(i) * (pl%xb(:,i) .cross. pl%vb(:, i)) Ltot(:) = Ltot(:) - Lpl(:) end do - Ltot(:) = Ltot(:) - cb%mass * cb%xb(:) .cross. cb%vb(:) + Ltot(:) = Ltot(:) - cb%mass * (cb%xb(:) .cross. cb%vb(:)) system%Lescape(:) = system%Lescape(:) + Ltot(:) if (param%lrotation) system%Lescape(:) = system%Lescape + pl%mass(ipl) * pl%radius(ipl)**2 * pl%Ip(3, ipl) * pl%rot(:, ipl) else xcom(:) = (pl%mass(ipl) * pl%xb(:, ipl) + cb%mass * cb%xb(:)) / (cb%mass + pl%mass(ipl)) vcom(:) = (pl%mass(ipl) * pl%vb(:, ipl) + cb%mass * cb%vb(:)) / (cb%mass + pl%mass(ipl)) - Lpl(:) = (pl%xb(:,ipl) - xcom(:)) .cross. pL%vb(:,ipl) - vcom(:) + Lpl(:) = (pl%xb(:,ipl) - xcom(:)) .cross. (pL%vb(:,ipl) - vcom(:)) if (param%lrotation) Lpl(:) = pl%mass(ipl) * (Lpl(:) + pl%radius(ipl)**2 * pl%Ip(3,ipl) * pl%rot(:, ipl)) - Lcb(:) = cb%mass * (cb%xb(:) - xcom(:)) .cross. (cb%vb(:) - vcom(:)) + Lcb(:) = cb%mass * ((cb%xb(:) - xcom(:)) .cross. (cb%vb(:) - vcom(:))) ke_orbit = ke_orbit + 0.5_DP * cb%mass * dot_product(cb%vb(:), cb%vb(:)) if (param%lrotation) ke_spin = ke_spin + 0.5_DP * cb%mass * cb%radius**2 * cb%Ip(3) * dot_product(cb%rot(:), cb%rot(:)) diff --git a/src/tides/tides_getacch_pl.f90 b/src/tides/tides_getacch_pl.f90 index f0bf64cc7..4feb76221 100644 --- a/src/tides/tides_getacch_pl.f90 +++ b/src/tides/tides_getacch_pl.f90 @@ -48,8 +48,8 @@ module subroutine tides_kick_getacch_pl(self, system) Ftr = -3 / rmag**7 * (r5cbterm + r5plterm) - 3 * vmag / rmag * (Ptocb + Ptopl) F_T(:) = (Ftr + (Ptocb + Ptopl) * dot_product(v_unit, r_unit) / rmag) * r_unit(:) & - + Ptopl * (pl%rot(:,i) - theta_dot(:)) .cross. r_unit(:) & - + Ptocb * (cb%rot(:) - theta_dot(:)) .cross. r_unit(:) + + Ptopl * ((pl%rot(:,i) - theta_dot(:)) .cross. r_unit(:)) & + + Ptocb * ((cb%rot(:) - theta_dot(:)) .cross. r_unit(:)) cb%atide(:) = cb%atide(:) + F_T(:) / cb%Gmass pl%atide(:,i) = F_T(:) / pl%Gmass(i) end do diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index fa7cda43d..7535ea67b 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -40,20 +40,20 @@ module subroutine util_get_energy_momentum_system(self, param) lstatus(1:npl) = pl%status(1:npl) /= INACTIVE kecb = cb%mass * dot_product(cb%vb(:), cb%vb(:)) - Lcborbit(:) = cb%mass * cb%xb(:) .cross. cb%vb(:) + Lcborbit(:) = cb%mass * (cb%xb(:) .cross. cb%vb(:)) do concurrent (i = 1:npl, lstatus(i)) block ! We use a block construct to prevent generating temporary arrays for local variables - real(DP) :: v2, hx, hy, hz + real(DP) :: v2 + real(DP), dimension(NDIM) :: L + v2 = dot_product(pl%vb(:,i), pl%vb(:,i)) - hx = pl%xb(2,i) * pl%vb(3,i) - pl%xb(3,i) * pl%vb(2,i) - hy = pl%xb(3,i) * pl%vb(1,i) - pl%xb(1,i) * pl%vb(3,i) - hz = pl%xb(1,i) * pl%vb(2,i) - pl%xb(2,i) * pl%vb(1,i) + L(:) = pl%mass(i) * (pl%xb(:,i) .cross. pl%vb(:,i)) ! Angular momentum from orbit - Lplorbitx(i) = pl%mass(i) * hx - Lplorbity(i) = pl%mass(i) * hy - Lplorbitz(i) = pl%mass(i) * hz + Lplorbitx(i) = L(1) + Lplorbity(i) = L(2) + Lplorbitz(i) = L(3) ! Kinetic energy from orbit and spin kepl(i) = pl%mass(i) * v2 @@ -67,21 +67,12 @@ module subroutine util_get_energy_momentum_system(self, param) Lcbspin(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) do concurrent (i = 1:npl, lstatus(i)) - block - real(DP) :: rot2, hsx, hsy, hsz - - rot2 = dot_product(pl%rot(:,i), pl%rot(:,i)) - ! For simplicity, we always assume that the rotation pole is the 3rd principal axis - hsx = pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(1,i) - hsy = pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(2,i) - hsz = pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(3,i) - - ! Angular momentum from spin - Lplspinx(i) = pl%mass(i) * hsx - Lplspiny(i) = pl%mass(i) * hsy - Lplspinz(i) = pl%mass(i) * hsz - kespinpl(i) = pl%mass(i) * pl%Ip(3, i) * pl%radius(i)**2 * rot2 - end block + ! Currently we assume that the rotation pole is the 3rd principal axis + ! Angular momentum from spin + Lplspinx(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(1,i) + Lplspiny(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(2,i) + Lplspinz(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(3,i) + kespinpl(i) = pl%mass(i) * pl%Ip(3, i) * pl%radius(i)**2 * dot_product(pl%rot(:,i), pl%rot(:,i)) end do else kespincb = 0.0_DP From ec271484d624b3f3e92847505579030267988428 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 13:04:55 -0400 Subject: [PATCH 063/315] Getting the new fragmentation code more similar to the old one for comparison --- src/fragmentation/fragmentation.f90 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 0dd7ddd64..31080d44b 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -132,7 +132,6 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call calculate_system_energy(linclude_fragments=.true.) ke_frag_budget = -dEtot - Qloss - call define_coordinate_system() call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial subtry = subtry + 1 @@ -324,8 +323,10 @@ subroutine define_coordinate_system() x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) rmag(:) = .mag. x_frag(:,:) + if (.not.any(rmag(:) > 0.0_DP)) return + call random_number(L_sigma(:,:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, - ! otherwise we can get an ill-conditioned system + ! otherwise we can get an ill-conditioned system do concurrent(i = 1:nfrag, rmag(i) > 0.0_DP) v_r_unit(:, i) = x_frag(:, i) / rmag(i) v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:,i) - 0.5_DP) @@ -690,15 +691,14 @@ subroutine set_fragment_tan_vel(lerr) ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - Li(:) = L_remainder(:) / nfrag - do concurrent (i = 1:nfrag) - v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) - end do - - v_t_mag(:) = v_t_initial(:) - vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) - do concurrent(i = 1:nfrag) - v_frag(:, i) = vb_frag(:, i) - vcom(:) + ! Li(:) = L_remainder(:) / nfrag + ! do concurrent (i = 1:nfrag) + ! v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) + ! end do + do i = 1, nfrag + v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * m_frag(i) * norm2(x_frag(:,i))) + Li(:) = m_frag(i) * (x_frag(:,i) .cross. (v_t_initial(i) * v_t_unit(:, i))) + L_remainder(:) = L_remainder(:) - Li(:) end do ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum From 244065786b8d30e194a63c91ecc6a17f69a31f2d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 14:24:38 -0400 Subject: [PATCH 064/315] Fixed problems with coordinate xform --- src/fragmentation/fragmentation.f90 | 36 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 31080d44b..a2cccdbf3 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -34,7 +34,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), dimension(NDIM) :: Ltot_after real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag - real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after + real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after, dL real(DP) :: ke_frag_budget, ke_frag_orbit, ke_radial, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" @@ -130,7 +130,8 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, end do call calculate_system_energy(linclude_fragments=.true.) - ke_frag_budget = -dEtot - Qloss + L_frag_budget(:) = -dL(:) + ke_frag_budget = -dEtot - Qloss call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial @@ -284,7 +285,8 @@ subroutine restore_scale_factors() Ltot_after = Ltot_after * Lscale Lmag_after = Lmag_after * Lscale - dLmag = norm2(Ltot_after(:) - Ltot_before(:)) + dL(:) = Ltot_after(:) - Ltot_before(:) + dLmag = .mag.dL(:) dEtot = Etot_after - Etot_before call tmpsys%rescale(tmpparam, mscale**(-1), dscale**(-1), tscale**(-1)) @@ -447,6 +449,7 @@ subroutine calculate_system_energy(linclude_fragments) class is (symba_pl) select type(param) class is (symba_parameters) + if (linclude_fragments) call add_fragments_to_tmpsys() ! Adds or updates the fragment properties to their current values plwksp%nplm = count(plwksp%Gmass > param%Gmtiny / mscale) end select end select @@ -481,7 +484,8 @@ subroutine calculate_system_energy(linclude_fragments) pe_after = tmpsys%pe Etot_after = tmpsys%te dEtot = Etot_after - Etot_before - dLmag = norm2(Ltot_after(:) - Ltot_before(:)) + dL(:) = Ltot_after(:) - Ltot_before(:) + dLmag = .mag.dL(:) else Lorbit_before(:) = tmpsys%Lorbit Lspin_before(:) = tmpsys%Lspin @@ -595,8 +599,6 @@ subroutine set_fragment_position_vectors() xb_frag(:,i) = x_frag(:,i) + xcom(:) end do - call add_fragments_to_tmpsys() - xcom(:) = 0.0_DP do i = 1, nfrag xcom(:) = xcom(:) + m_frag(i) * xb_frag(:,i) @@ -627,7 +629,7 @@ subroutine set_fragment_tan_vel(lerr) integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. real(DP), parameter :: TOL_INIT = 1e-14_DP - real(DP) :: tol + real(DP) :: tol real(DP), dimension(:), allocatable :: v_t_initial real(DP), dimension(nfrag) :: kefrag type(lambda_obj) :: spinfunc @@ -659,6 +661,9 @@ subroutine set_fragment_tan_vel(lerr) return end if + ! This subroutine calculates the ke budget in the collision frame, so we need to subract off the barycentric velocity + ke_frag_budget = ke_frag_budget + 0.5_DP * vcom2 * dot_product(vcom(:), vcom(:) + allocate(v_t_initial, mold=v_t_mag) v_frag(:,:) = 0.0_DP @@ -691,15 +696,10 @@ subroutine set_fragment_tan_vel(lerr) ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - ! Li(:) = L_remainder(:) / nfrag - ! do concurrent (i = 1:nfrag) - ! v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) - ! end do - do i = 1, nfrag - v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * m_frag(i) * norm2(x_frag(:,i))) - Li(:) = m_frag(i) * (x_frag(:,i) .cross. (v_t_initial(i) * v_t_unit(:, i))) - L_remainder(:) = L_remainder(:) - Li(:) - end do + Li(:) = L_remainder(:) / nfrag + do concurrent (i = 1:nfrag) + v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) + end do ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum objective_function = lambda_obj(tangential_objective_function, lerr) @@ -719,7 +719,6 @@ subroutine set_fragment_tan_vel(lerr) do concurrent (i = 1:nfrag) v_frag(:,i) = vb_frag(:,i) - vcom(:) end do - call add_fragments_to_tmpsys() ! Now do a kinetic energy budget check to make sure we are still within the budget. kefrag = 0.0_DP @@ -813,7 +812,7 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) end if end do b(1:3) = -L_lin_others(:) - b(4:6) = L_frag_orb(:) - L_orb_others(:) + b(4:6) = L_frag_budget(:) - L_frag_tot(:) - L_orb_others(:) allocate(v_t_mag_output(nfrag)) v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lerr) if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) @@ -865,7 +864,6 @@ subroutine set_fragment_radial_velocities(lerr) do i = 1, nfrag v_frag(:, i) = vb_frag(:, i) - vcom(:) end do - call add_fragments_to_tmpsys() do concurrent(i = 1:nfrag) kearr(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) From 03a1e1f757b79218f42fd8eab2d53e93567d0c55 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 15:50:57 -0400 Subject: [PATCH 065/315] Added in a separate set_fragment_spin nested subroutine to separate tasks more clearly --- src/fragmentation/fragmentation.f90 | 114 ++++++++++++++++------------ 1 file changed, 65 insertions(+), 49 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index a2cccdbf3..cc9a102f0 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -132,6 +132,11 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call calculate_system_energy(linclude_fragments=.true.) L_frag_budget(:) = -dL(:) ke_frag_budget = -dEtot - Qloss + ! The ke constraints are calcualted in the collision frame, so undo the barycentric velocity component + ke_frag_budget = ke_frag_budget + 0.5_DP * mtot * dot_product(vcom(:), vcom(:)) + + call set_fragment_spin(lfailure) + if (lfailure) cycle call set_fragment_tan_vel(lfailure) ke_avg_deficit = ke_avg_deficit - ke_radial @@ -145,14 +150,10 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) ke_radial = -dEtot - Qloss - write(*,*) 'Pre-radial dL/L0: ', abs(dLmag) / Lmag_before call set_fragment_radial_velocities(lfailure) - ! if (lfailure) write(*,*) 'Failed to find radial velocities' + if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) - write(*,*) 'Qloss : ',Qloss - write(*,*) '-dEtot: ',-dEtot - write(*,*) 'delta : ',abs((dEtot + Qloss)) if ((abs(dEtot + Qloss) > Etol) .or. (dEtot > 0.0_DP)) then write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol lfailure = .true. @@ -609,6 +610,53 @@ subroutine set_fragment_position_vectors() end subroutine set_fragment_position_vectors + subroutine set_fragment_spin(lerr) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Sets the spins of a collection of fragments such that they conserve angular momentum without blowing the fragment kinetic energy budget. + !! + !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. + implicit none + ! Arguments + logical, intent(out) :: lerr + ! Internals + real(DP), dimension(NDIM) :: L_remainder, rot_L, rot_ke + integer(I4B) :: i + + if (ke_frag_budget < 0.0_DP) then + !write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget + r_max_start = r_max_start / 2 + lerr = .true. + return + end if + + ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest + v_frag(:,:) = 0.0_DP + rot_frag(:,1:2) = rot(:, :) + rot_frag(:,3:nfrag) = 0.0_DP + call calculate_fragment_ang_mtm() + L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) + + ke_frag_spin = 0.0_DP + do i = 1, nfrag + ! Convert a fraction (f_spin) of either the remaining angular momentum or kinetic energy budget into spin, whichever gives the smaller rotation so as not to blow any budgets + rot_ke(:) = sqrt(2 * f_spin * ke_frag_budget / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i))) * L_remainder(:) / norm2(L_remainder(:)) + rot_L(:) = f_spin * L_remainder(:) / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i)) + if (norm2(rot_ke) < norm2(rot_L)) then + rot_frag(:,i) = rot_frag(:, i) + rot_ke(:) + else + rot_frag(:, i) = rot_frag(:, i) + rot_L(:) + end if + ke_frag_spin = ke_frag_spin + m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + end do + ke_frag_spin = 0.5_DP * ke_frag_spin + + call calculate_fragment_ang_mtm() + + return + end subroutine set_fragment_spin + + subroutine set_fragment_tan_vel(lerr) !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! @@ -634,7 +682,7 @@ subroutine set_fragment_tan_vel(lerr) real(DP), dimension(nfrag) :: kefrag type(lambda_obj) :: spinfunc type(lambda_obj_err) :: objective_function - real(DP), dimension(NDIM) :: L_remainder, Li, rot_L, rot_ke + real(DP), dimension(NDIM) :: Li lerr = .false. @@ -654,49 +702,22 @@ subroutine set_fragment_tan_vel(lerr) ! write(*,*) 'Qloss : ',Qloss ! write(*,*) '***************************************************' - if (ke_frag_budget < 0.0_DP) then - write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget + if ((ke_frag_budget - ke_frag_spin) < 0.0_DP) then + !write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget r_max_start = r_max_start / 2 lerr = .true. return end if - ! This subroutine calculates the ke budget in the collision frame, so we need to subract off the barycentric velocity - ke_frag_budget = ke_frag_budget + 0.5_DP * vcom2 * dot_product(vcom(:), vcom(:) - allocate(v_t_initial, mold=v_t_mag) - + v_t_initial(:) = 0.0_DP v_frag(:,:) = 0.0_DP - vb_frag(:,:) = 0.0_DP - - ke_frag_spin = 0.0_DP - ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest - rot_frag(:,1:2) = rot(:, :) - rot_frag(:,3:nfrag) = 0.0_DP - call calculate_fragment_ang_mtm() - L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) - - do i = 1, nfrag - ! Convert a fraction (f_spin) of either the remaining angular momentum or kinetic energy budget into spin, whichever gives the smaller rotation so as not to blow any budgets - rot_ke(:) = sqrt(2 * f_spin * ke_frag_budget / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i))) * L_remainder(:) / norm2(L_remainder(:)) - rot_L(:) = f_spin * L_remainder(:) / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i)) - if (norm2(rot_ke) < norm2(rot_L)) then - rot_frag(:,i) = rot_frag(:, i) + rot_ke(:) - else - rot_frag(:, i) = rot_frag(:, i) + rot_L(:) - end if - ke_frag_spin = ke_frag_spin + m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) - end do - ke_frag_spin = 0.5_DP * ke_frag_spin - - call calculate_fragment_ang_mtm() - L_remainder(:) = L_frag_budget(:) - L_frag_tot(:) ! Next we will solve for the tangential component of the velocities that both conserves linear momentum and uses the remaining angular momentum not used in spin. ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - Li(:) = L_remainder(:) / nfrag + Li(:) = L_frag_budget(:) / nfrag do concurrent (i = 1:nfrag) v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) end do @@ -726,19 +747,18 @@ subroutine set_fragment_tan_vel(lerr) kefrag(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) end do ke_frag_orbit = 0.5_DP * sum(kefrag(:)) - ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin + ke_radial = ke_frag_budget - ke_frag_spin - ke_frag_orbit call calculate_fragment_ang_mtm() - L_remainder(:) = L_frag_budget(:) - L_frag_tot(:) + L_frag_budget(:) = L_frag_budget(:) - L_frag_orb(:) ! If we are over the energy budget, flag this as a failure so we can try again lerr = (ke_radial < 0.0_DP) write(*,*) 'Tangential' write(*,*) 'Failure? ',lerr - write(*,*) '|L_remainder| : ',.mag.L_remainder(:) / Lmag_before + write(*,*) '|L_remainder| : ',.mag.L_frag_budget(:) / Lmag_before write(*,*) 'ke_frag_budget: ',ke_frag_budget write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit - write(*,*) 'ke_remainder : ',ke_radial return end subroutine set_fragment_tan_vel @@ -812,7 +832,7 @@ function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) end if end do b(1:3) = -L_lin_others(:) - b(4:6) = L_frag_budget(:) - L_frag_tot(:) - L_orb_others(:) + b(4:6) = L_frag_budget(:) - L_frag_spin(:) - L_orb_others(:) allocate(v_t_mag_output(nfrag)) v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lerr) if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) @@ -836,7 +856,6 @@ subroutine set_fragment_radial_velocities(lerr) integer(I4B) :: i, j real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma real(DP), dimension(:,:), allocatable :: v_r - real(DP), dimension(nfrag) :: kearr, kespinarr type(lambda_obj) :: objective_function ! Set the "target" ke_orbit_after (the value of the orbital kinetic energy that the fragments ought to have) @@ -860,17 +879,14 @@ subroutine set_fragment_radial_velocities(lerr) end do ! Shift the radial velocity vectors to align with the center of mass of the collisional system (the origin) + ke_frag_orbit = 0.0_DP vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) do i = 1, nfrag v_frag(:, i) = vb_frag(:, i) - vcom(:) + ke_frag_orbit = ke_frag_orbit + m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) end do + ke_frag_orbit = 0.5_DP * ke_frag_orbit - do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) - kespinarr(i) = m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:,i), rot_frag(:,i)) - end do - ke_frag_orbit = 0.5_DP * sum(kearr(:)) - ke_frag_spin = 0.5_DP * sum(kespinarr(:)) write(*,*) 'Radial' write(*,*) 'Failure? ',lerr write(*,*) 'ke_frag_budget: ',ke_frag_budget From 282a85a1295f2e394db09afb00b166d8d5bceeeb Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 16:03:47 -0400 Subject: [PATCH 066/315] Rearranged budget checks so that the L and ke budgets are not altereed during computation --- src/fragmentation/fragmentation.f90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index cc9a102f0..cdb06bfb6 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -748,14 +748,13 @@ subroutine set_fragment_tan_vel(lerr) end do ke_frag_orbit = 0.5_DP * sum(kefrag(:)) ke_radial = ke_frag_budget - ke_frag_spin - ke_frag_orbit - call calculate_fragment_ang_mtm() - L_frag_budget(:) = L_frag_budget(:) - L_frag_orb(:) ! If we are over the energy budget, flag this as a failure so we can try again lerr = (ke_radial < 0.0_DP) write(*,*) 'Tangential' write(*,*) 'Failure? ',lerr - write(*,*) '|L_remainder| : ',.mag.L_frag_budget(:) / Lmag_before + call calculate_fragment_ang_mtm() + write(*,*) '|L_remainder| : ',.mag.(L_frag_budget(:) - L_frag_tot(:)) / Lmag_before write(*,*) 'ke_frag_budget: ',ke_frag_budget write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit From b0b20513c2f921b058586a2a0a9dbeb332b28ecd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 16:31:40 -0400 Subject: [PATCH 067/315] Rearranged calculations to keep track of fewer global quantities in fragmentation_initialize --- src/fragmentation/fragmentation.f90 | 55 ++++++++++++----------------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index cdb06bfb6..1abc61ca3 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -35,7 +35,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after, dL - real(DP) :: ke_frag_budget, ke_frag_orbit, ke_radial, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old + real(DP) :: ke_frag_budget, ke_frag_orbit, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" integer(I4B) :: try, subtry @@ -123,6 +123,8 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, rot_frag(:,:) = 0.0_DP v_t_mag(:) = 0.0_DP v_r_mag(:) = 0.0_DP + ke_frag_orbit = 0.0_DP + ke_frag_spin = 0.0_DP call set_fragment_position_vectors() do concurrent (ii = 1:nfrag) @@ -131,16 +133,14 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call calculate_system_energy(linclude_fragments=.true.) L_frag_budget(:) = -dL(:) - ke_frag_budget = -dEtot - Qloss ! The ke constraints are calcualted in the collision frame, so undo the barycentric velocity component - ke_frag_budget = ke_frag_budget + 0.5_DP * mtot * dot_product(vcom(:), vcom(:)) + ke_frag_budget = -(dEtot - 0.5_DP * mtot * dot_product(vcom(:), vcom(:))) - Qloss call set_fragment_spin(lfailure) - if (lfailure) cycle - - call set_fragment_tan_vel(lfailure) - ke_avg_deficit = ke_avg_deficit - ke_radial + if (.not.lfailure) call set_fragment_tan_vel(lfailure) + ke_avg_deficit = ke_avg_deficit - (ke_frag_orbit + ke_frag_spin) subtry = subtry + 1 + if (.not.lfailure .or. subtry == TANTRY) exit write(*,*) 'Trying new arrangement' end do @@ -149,7 +149,6 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) - ke_radial = -dEtot - Qloss call set_fragment_radial_velocities(lfailure) if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then @@ -618,20 +617,14 @@ subroutine set_fragment_spin(lerr) !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. implicit none ! Arguments - logical, intent(out) :: lerr + logical, intent(out) :: lerr ! Internals real(DP), dimension(NDIM) :: L_remainder, rot_L, rot_ke integer(I4B) :: i - if (ke_frag_budget < 0.0_DP) then - !write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget - r_max_start = r_max_start / 2 - lerr = .true. - return - end if + lerr = .false. ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest - v_frag(:,:) = 0.0_DP rot_frag(:,1:2) = rot(:, :) rot_frag(:,3:nfrag) = 0.0_DP call calculate_fragment_ang_mtm() @@ -651,7 +644,7 @@ subroutine set_fragment_spin(lerr) end do ke_frag_spin = 0.5_DP * ke_frag_spin - call calculate_fragment_ang_mtm() + lerr = ((ke_frag_budget - ke_frag_spin - ke_frag_orbit) < 0.0_DP) return end subroutine set_fragment_spin @@ -702,13 +695,6 @@ subroutine set_fragment_tan_vel(lerr) ! write(*,*) 'Qloss : ',Qloss ! write(*,*) '***************************************************' - if ((ke_frag_budget - ke_frag_spin) < 0.0_DP) then - !write(*,*) 'Negative ke_frag_budget: ',ke_frag_budget - r_max_start = r_max_start / 2 - lerr = .true. - return - end if - allocate(v_t_initial, mold=v_t_mag) v_t_initial(:) = 0.0_DP v_frag(:,:) = 0.0_DP @@ -717,10 +703,11 @@ subroutine set_fragment_tan_vel(lerr) ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - Li(:) = L_frag_budget(:) / nfrag - do concurrent (i = 1:nfrag) - v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) - end do + call calculate_fragment_ang_mtm() + Li(:) = (L_frag_budget(:) - L_frag_spin(:)) / nfrag + do concurrent (i = 1:nfrag) + v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) + end do ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum objective_function = lambda_obj(tangential_objective_function, lerr) @@ -747,10 +734,9 @@ subroutine set_fragment_tan_vel(lerr) kefrag(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) end do ke_frag_orbit = 0.5_DP * sum(kefrag(:)) - ke_radial = ke_frag_budget - ke_frag_spin - ke_frag_orbit ! If we are over the energy budget, flag this as a failure so we can try again - lerr = (ke_radial < 0.0_DP) + lerr = ((ke_frag_budget - ke_frag_spin - ke_frag_orbit) < 0.0_DP) write(*,*) 'Tangential' write(*,*) 'Failure? ',lerr call calculate_fragment_ang_mtm() @@ -758,6 +744,7 @@ subroutine set_fragment_tan_vel(lerr) write(*,*) 'ke_frag_budget: ',ke_frag_budget write(*,*) 'ke_frag_spin : ',ke_frag_spin write(*,*) 'ke_tangential : ',ke_frag_orbit + write(*,*) 'ke_radial : ',ke_frag_budget - ke_frag_spin - ke_frag_orbit return end subroutine set_fragment_tan_vel @@ -851,13 +838,14 @@ subroutine set_fragment_radial_velocities(lerr) ! Internals real(DP), parameter :: TOL_MIN = Etol ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy real(DP), parameter :: TOL_INIT = 1e-12_DP - real(DP) :: tol + real(DP) :: ke_radial, tol integer(I4B) :: i, j real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma real(DP), dimension(:,:), allocatable :: v_r type(lambda_obj) :: objective_function - ! Set the "target" ke_orbit_after (the value of the orbital kinetic energy that the fragments ought to have) + ! Set the "target" ke for the radial component + ke_radial = ke_frag_budget - ke_frag_spin - ke_frag_orbit allocate(v_r_initial, source=v_r_mag) ! Initialize radial velocity magnitudes with a random value that is approximately 10% of that found by distributing the kinetic energy equally @@ -912,7 +900,7 @@ function radial_objective_function(v_r_mag_input) result(fval) integer(I4B) :: i real(DP), dimension(:,:), allocatable :: v_shift real(DP), dimension(nfrag) :: kearr - real(DP) :: keo + real(DP) :: keo, ke_radial allocate(v_shift, mold=vb_frag) v_shift(:,:) = vmag_to_vb(v_r_mag_input, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) @@ -920,6 +908,7 @@ function radial_objective_function(v_r_mag_input) result(fval) kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i), v_shift(:, i))) end do keo = 2 * ke_frag_budget - sum(kearr(:)) + ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin ! The following ensures that fval = 0 is a local minimum, which is what the BFGS method is searching for fval = (keo / (2 * ke_radial))**2 From 9e78e8a7e9c2155c84f9daa5a5182b48451787a2 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 16:44:55 -0400 Subject: [PATCH 068/315] Simplified the main loop of the fragmentation_initialize procedure so that there is less to keep track of --- src/fragmentation/fragmentation.f90 | 91 ++++++++++++++++------------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 1abc61ca3..5438c0936 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -38,13 +38,12 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP) :: ke_frag_budget, ke_frag_orbit, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" - integer(I4B) :: try, subtry + integer(I4B) :: try integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start, r_max_start_old, r_max, f_spin real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) real(DP), parameter :: Etol = 1e-6_DP integer(I4B), parameter :: MAXTRY = 3000 - integer(I4B), parameter :: TANTRY = 3 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes class(swiftest_nbody_system), allocatable :: tmpsys class(swiftest_parameters), allocatable :: tmpparam @@ -105,50 +104,41 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! Calculate the initial energy of the system without the collisional family call calculate_system_energy(linclude_fragments=.false.) - r_max_start = 10 * norm2(x(:,2) - x(:,1)) + r_max_start = 1 * norm2(x(:,2) - x(:,1)) try = 1 lfailure = .false. ke_avg_deficit = 0.0_DP do while (try < MAXTRY) lfailure = .false. - ke_avg_deficit_old = ke_avg_deficit - ke_avg_deficit = 0.0_DP - subtry = 1 - do - ! Initialize the fragments with 0 velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum - xb_frag(:,:) = 0.0_DP - vb_frag(:,:) = 0.0_DP - x_frag(:,:) = 0.0_DP - v_frag(:,:) = 0.0_DP - rot_frag(:,:) = 0.0_DP - v_t_mag(:) = 0.0_DP - v_r_mag(:) = 0.0_DP - ke_frag_orbit = 0.0_DP - ke_frag_spin = 0.0_DP - call set_fragment_position_vectors() + call reset_fragments() - do concurrent (ii = 1:nfrag) - vb_frag(:, ii) = vcom(:) - end do - - call calculate_system_energy(linclude_fragments=.true.) - L_frag_budget(:) = -dL(:) - ! The ke constraints are calcualted in the collision frame, so undo the barycentric velocity component - ke_frag_budget = -(dEtot - 0.5_DP * mtot * dot_product(vcom(:), vcom(:))) - Qloss + call set_fragment_position_vectors() - call set_fragment_spin(lfailure) - if (.not.lfailure) call set_fragment_tan_vel(lfailure) - ke_avg_deficit = ke_avg_deficit - (ke_frag_orbit + ke_frag_spin) - subtry = subtry + 1 - - if (.not.lfailure .or. subtry == TANTRY) exit - write(*,*) 'Trying new arrangement' + do concurrent (ii = 1:nfrag) + vb_frag(:, ii) = vcom(:) end do - ke_avg_deficit = ke_avg_deficit / subtry - if (lfailure) write(*,*) 'Failed to find tangential velocities' - if (.not.lfailure) then - call calculate_system_energy(linclude_fragments=.true.) + call calculate_system_energy(linclude_fragments=.true.) + L_frag_budget(:) = -dL(:) + ! The ke constraints are calcualted in the collision frame, so undo the barycentric velocity component + ke_frag_budget = -(dEtot - 0.5_DP * mtot * dot_product(vcom(:), vcom(:))) - Qloss + + call set_fragment_spin(lfailure) + if (lfailure) then ! Too much spin! Try reducing the fraction put into spin and try again + if (f_spin > epsilon(1.0_DP)) then + f_spin = f_spin / 2 + else + f_spin = 0.0_DP + end if + else + call set_fragment_tan_vel(lfailure) + end if + + if (lfailure) then + write(*,*) 'Failed to find tangential velocities' + ke_avg_deficit = ke_avg_deficit - (ke_frag_orbit + ke_frag_spin) + else + !call calculate_system_energy(linclude_fragments=.true.) call set_fragment_radial_velocities(lfailure) if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then @@ -301,6 +291,28 @@ subroutine restore_scale_factors() return end subroutine restore_scale_factors + subroutine reset_fragments() + !! author: David A. Minton + !! + !! Resets all tracked fragment quantities in order to do a fresh calculation + !! Initialize the fragments with 0 velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum + implicit none + + xb_frag(:,:) = 0.0_DP + vb_frag(:,:) = 0.0_DP + x_frag(:,:) = 0.0_DP + v_frag(:,:) = 0.0_DP + rot_frag(:,:) = 0.0_DP + v_t_mag(:) = 0.0_DP + v_r_mag(:) = 0.0_DP + ke_frag_orbit = 0.0_DP + ke_frag_spin = 0.0_DP + L_frag_orb(:) = 0.0_DP + L_frag_spin(:) = 0.0_DP + + return + end subroutine reset_fragments + subroutine define_coordinate_system() !! author: David A. Minton @@ -971,11 +983,6 @@ subroutine restructure_failed_fragments() end if r_max_start_old = r_max_start r_max_start = r_max_start + delta_r ! The larger lever arm can help if the problem is in the angular momentum step - if (f_spin > epsilon(1.0_DP)) then - f_spin = f_spin / 2 - else - f_spin = 0.0_DP - end if return end subroutine restructure_failed_fragments From fb8effb175a605939552cce57cb041ad424f4e79 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 17:37:43 -0400 Subject: [PATCH 069/315] More cleanup to simply procedures and beat down failures --- src/fragmentation/fragmentation.f90 | 44 ++++++++++++++++------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 5438c0936..6f9f2bfee 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -95,8 +95,10 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, vc(:, 2) = v(:, 2) - vcom(:) L_orb(:,:) = mxc(:,:) .cross. vc(:,:) - ! Compute orbital angular momentum of pre-impact system. This will be the normal vector to the collision fragment plane - L_frag_budget(:) = L_spin(:, 1) + L_spin(:, 2) + L_orb(:, 1) + L_orb(:, 2) + ! Compute orbital angular momentum of pre-impact system. We'll use this to start the coordinate system, but it will get updated as we divide up the angular momentum + L_frag_orb(:) = L_orb(:, 1) + L_orb(:, 2) + L_frag_spin(:) = L_spin(:, 1) + L_spin(:, 2) + L_frag_budget(:) = L_frag_orb(:) + L_frag_spin(:) call define_coordinate_system() call construct_temporary_system() @@ -124,21 +126,12 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ke_frag_budget = -(dEtot - 0.5_DP * mtot * dot_product(vcom(:), vcom(:))) - Qloss call set_fragment_spin(lfailure) - if (lfailure) then ! Too much spin! Try reducing the fraction put into spin and try again - if (f_spin > epsilon(1.0_DP)) then - f_spin = f_spin / 2 - else - f_spin = 0.0_DP - end if - else - call set_fragment_tan_vel(lfailure) - end if + if (.not.lfailure) call set_fragment_tan_vel(lfailure) if (lfailure) then write(*,*) 'Failed to find tangential velocities' ke_avg_deficit = ke_avg_deficit - (ke_frag_orbit + ke_frag_spin) else - !call calculate_system_energy(linclude_fragments=.true.) call set_fragment_radial_velocities(lfailure) if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then @@ -331,8 +324,8 @@ subroutine define_coordinate_system() ! We will initialize fragments on a plane defined by the pre-impact system, with the z-axis aligned with the angular momentum vector ! and the y-axis aligned with the pre-impact distance vector. - y_col_unit(:) = delta_r(:) / r_col_norm - z_col_unit(:) = L_frag_budget(:) / (.mag. L_frag_budget) + y_col_unit(:) = delta_r(:) / r_col_norm + z_col_unit(:) = (L_frag_budget(:) - L_frag_spin(:)) / (.mag. (L_frag_budget(:) - L_frag_spin(:))) ! The cross product of the y- by z-axis will give us the x-axis x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) @@ -682,12 +675,13 @@ subroutine set_fragment_tan_vel(lerr) integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. real(DP), parameter :: TOL_INIT = 1e-14_DP + integer(I4B), parameter :: MAXLOOP = 10 real(DP) :: tol real(DP), dimension(:), allocatable :: v_t_initial real(DP), dimension(nfrag) :: kefrag type(lambda_obj) :: spinfunc type(lambda_obj_err) :: objective_function - real(DP), dimension(NDIM) :: Li + real(DP), dimension(NDIM) :: Li, L_remainder lerr = .false. @@ -716,9 +710,12 @@ subroutine set_fragment_tan_vel(lerr) ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. call calculate_fragment_ang_mtm() - Li(:) = (L_frag_budget(:) - L_frag_spin(:)) / nfrag - do concurrent (i = 1:nfrag) - v_t_initial(i) = norm2(Li(:)) / (m_frag(i) * norm2(x_frag(:,i))) + call define_coordinate_system() ! Make sure that the tangential velocity components are defined properly + L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) + do i = 1, nfrag + v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * m_frag(i) * norm2(x_frag(:,i))) + Li(:) = m_frag(i) * (x_frag(:,i) .cross. (v_t_initial(i) * v_t_unit(:, i))) + L_remainder(:) = L_remainder(:) - Li(:) end do ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum @@ -726,7 +723,7 @@ subroutine set_fragment_tan_vel(lerr) tol = TOL_INIT do while(tol < TOL_MIN) - v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), TOL, lerr) + v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), tol, MAXLOOP, lerr) ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis v_t_initial(7:nfrag) = v_t_mag(7:nfrag) if (.not.lerr) exit @@ -850,6 +847,7 @@ subroutine set_fragment_radial_velocities(lerr) ! Internals real(DP), parameter :: TOL_MIN = Etol ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy real(DP), parameter :: TOL_INIT = 1e-12_DP + integer(I4B), parameter :: MAXLOOP = 100 real(DP) :: ke_radial, tol integer(I4B) :: i, j real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma @@ -871,7 +869,7 @@ subroutine set_fragment_radial_velocities(lerr) objective_function = lambda_obj(radial_objective_function) tol = TOL_INIT do while(tol < TOL_MIN) - v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, tol, lerr) + v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, tol, MAXLOOP, lerr) if (.not.lerr) exit tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution v_r_initial(:) = v_r_mag(:) @@ -984,6 +982,12 @@ subroutine restructure_failed_fragments() r_max_start_old = r_max_start r_max_start = r_max_start + delta_r ! The larger lever arm can help if the problem is in the angular momentum step + if (f_spin > epsilon(1.0_DP)) then ! Try reducing the fraction in spin + f_spin = f_spin / 2 + else + f_spin = 0.0_DP + end if + return end subroutine restructure_failed_fragments end subroutine fragmentation_initialize From 4767b5ee5afbfe1151e37d4aba26f9dfdcc12bca Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 17:54:54 -0400 Subject: [PATCH 070/315] Fixed restructuring code to do a better job interpolating bad tries to converge on good tries --- src/fragmentation/fragmentation.f90 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 6f9f2bfee..169c42e2c 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -35,7 +35,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after, dL - real(DP) :: ke_frag_budget, ke_frag_orbit, ke_frag_spin, ke_avg_deficit, ke_avg_deficit_old + real(DP) :: ke_frag_budget, ke_frag_orbit, ke_frag_spin, ke_tot_deficit, ke_avg_deficit, ke_avg_deficit_old real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" integer(I4B) :: try @@ -58,11 +58,8 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, fpe_quiet_modes(:) = .false. call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) - f_spin = 0.05_DP - allocate(x_frag, source=xb_frag) allocate(v_frag, source=vb_frag) - allocate(rmag(nfrag)) allocate(rotmag(nfrag)) allocate(v_r_mag(nfrag)) @@ -99,6 +96,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, L_frag_orb(:) = L_orb(:, 1) + L_orb(:, 2) L_frag_spin(:) = L_spin(:, 1) + L_spin(:, 2) L_frag_budget(:) = L_frag_orb(:) + L_frag_spin(:) + f_spin = norm2(L_frag_spin(:)) / norm2(L_frag_budget(:)) call define_coordinate_system() call construct_temporary_system() @@ -109,7 +107,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, r_max_start = 1 * norm2(x(:,2) - x(:,1)) try = 1 lfailure = .false. - ke_avg_deficit = 0.0_DP + ke_tot_deficit = 0.0_DP do while (try < MAXTRY) lfailure = .false. call reset_fragments() @@ -130,7 +128,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (lfailure) then write(*,*) 'Failed to find tangential velocities' - ke_avg_deficit = ke_avg_deficit - (ke_frag_orbit + ke_frag_spin) + else call set_fragment_radial_velocities(lfailure) if (lfailure) write(*,*) 'Failed to find radial velocities' @@ -969,10 +967,12 @@ subroutine restructure_failed_fragments() real(DP) :: delta_r, delta_r_max real(DP), parameter :: ke_avg_deficit_target = 0.0_DP + ke_tot_deficit = ke_tot_deficit - (ke_frag_budget - ke_frag_orbit - ke_frag_spin) + ke_avg_deficit = ke_tot_deficit / try ! Introduce a bit of noise in the radius determination so we don't just flip flop between similar failed positions call random_number(delta_r_max) delta_r_max = sum(radius(:)) * (1.0_DP + 2e-1_DP * (delta_r_max - 0.5_DP)) - if (try > 2) then + if (try > 1) then ! Linearly interpolate the last two failed solution ke deficits to find a new distance value to try delta_r = (r_max_start - r_max_start_old) * (ke_avg_deficit_target - ke_avg_deficit_old) / (ke_avg_deficit - ke_avg_deficit_old) if (abs(delta_r) > delta_r_max) delta_r = sign(delta_r_max, delta_r) @@ -981,6 +981,7 @@ subroutine restructure_failed_fragments() end if r_max_start_old = r_max_start r_max_start = r_max_start + delta_r ! The larger lever arm can help if the problem is in the angular momentum step + ke_avg_deficit_old = ke_avg_deficit if (f_spin > epsilon(1.0_DP)) then ! Try reducing the fraction in spin f_spin = f_spin / 2 From dc4a86aeb3ff2cb534841a0a5906fd95f748a67f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 17:59:32 -0400 Subject: [PATCH 071/315] Removed intermediate diagnostics and re-wrote the BFGS minimizer to accept maxloop as an argument --- src/fragmentation/fragmentation.f90 | 37 ++++++++++++++--------------- src/modules/swiftest_classes.f90 | 5 ++-- src/util/util_minimize_bfgs.f90 | 15 ++++++------ 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 169c42e2c..b4d2eef1c 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -127,18 +127,17 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) call set_fragment_tan_vel(lfailure) if (lfailure) then - write(*,*) 'Failed to find tangential velocities' - + !write(*,*) 'Failed to find tangential velocities' else call set_fragment_radial_velocities(lfailure) - if (lfailure) write(*,*) 'Failed to find radial velocities' + !if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) if ((abs(dEtot + Qloss) > Etol) .or. (dEtot > 0.0_DP)) then - write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol + !write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol lfailure = .true. else if (abs(dLmag) / Lmag_before > Ltol) then - write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before + !write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before lfailure = .true. end if end if @@ -744,14 +743,14 @@ subroutine set_fragment_tan_vel(lerr) ! If we are over the energy budget, flag this as a failure so we can try again lerr = ((ke_frag_budget - ke_frag_spin - ke_frag_orbit) < 0.0_DP) - write(*,*) 'Tangential' - write(*,*) 'Failure? ',lerr - call calculate_fragment_ang_mtm() - write(*,*) '|L_remainder| : ',.mag.(L_frag_budget(:) - L_frag_tot(:)) / Lmag_before - write(*,*) 'ke_frag_budget: ',ke_frag_budget - write(*,*) 'ke_frag_spin : ',ke_frag_spin - write(*,*) 'ke_tangential : ',ke_frag_orbit - write(*,*) 'ke_radial : ',ke_frag_budget - ke_frag_spin - ke_frag_orbit + ! write(*,*) 'Tangential' + ! write(*,*) 'Failure? ',lerr + ! call calculate_fragment_ang_mtm() + ! write(*,*) '|L_remainder| : ',.mag.(L_frag_budget(:) - L_frag_tot(:)) / Lmag_before + ! write(*,*) 'ke_frag_budget: ',ke_frag_budget + ! write(*,*) 'ke_frag_spin : ',ke_frag_spin + ! write(*,*) 'ke_tangential : ',ke_frag_orbit + ! write(*,*) 'ke_radial : ',ke_frag_budget - ke_frag_spin - ke_frag_orbit return end subroutine set_fragment_tan_vel @@ -882,12 +881,12 @@ subroutine set_fragment_radial_velocities(lerr) end do ke_frag_orbit = 0.5_DP * ke_frag_orbit - write(*,*) 'Radial' - write(*,*) 'Failure? ',lerr - write(*,*) 'ke_frag_budget: ',ke_frag_budget - write(*,*) 'ke_frag_spin : ',ke_frag_spin - write(*,*) 'ke_frag_orbit : ',ke_frag_orbit - write(*,*) 'ke_remainder : ',ke_frag_budget - (ke_frag_orbit + ke_frag_spin) + ! write(*,*) 'Radial' + ! write(*,*) 'Failure? ',lerr + ! write(*,*) 'ke_frag_budget: ',ke_frag_budget + ! write(*,*) 'ke_frag_spin : ',ke_frag_spin + ! write(*,*) 'ke_frag_orbit : ',ke_frag_orbit + ! write(*,*) 'ke_remainder : ',ke_frag_budget - (ke_frag_orbit + ke_frag_spin) lerr = .false. return diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index ee2521916..686959d87 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -1014,7 +1014,7 @@ module subroutine util_rescale_system(self, param, mscale, dscale, tscale) real(DP), intent(in) :: mscale, dscale, tscale !! Scale factors for mass, distance, and time units, respectively. end subroutine util_rescale_system - module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) + module function util_minimize_bfgs(f, N, x0, eps, maxloop, lerr) result(x1) use lambda_function implicit none integer(I4B), intent(in) :: N @@ -1022,7 +1022,8 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) real(DP), dimension(:), intent(in) :: x0 real(DP), intent(in) :: eps logical, intent(out) :: lerr - real(DP), dimension(:), allocatable :: x1 + integer(I4B), intent(in) :: maxloop + real(DP), dimension(:), allocatable :: x1 end function util_minimize_bfgs module subroutine util_peri_tp(self, system, param) diff --git a/src/util/util_minimize_bfgs.f90 b/src/util/util_minimize_bfgs.f90 index 9a0e4e12e..01b57d868 100644 --- a/src/util/util_minimize_bfgs.f90 +++ b/src/util/util_minimize_bfgs.f90 @@ -1,15 +1,16 @@ submodule (swiftest_classes) s_util_minimize_bfgs use swiftest contains - module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) + module function util_minimize_bfgs(f, N, x0, eps, maxloop, lerr) result(x1) !! author: David A. Minton !! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - !! This function implements the Broyden-Fletcher-Goldfarb-Shanno method to determine the minimum of a function of N variables. !! It recieves as input: !! f%eval(x) : lambda function object containing the objective function as the eval metho - !! N : Number of variables of function f - !! x0 : Initial starting value of x - !! eps : Accuracy of 1 - dimensional minimization at each step + !! N : Number of variables of function f + !! x0 : Initial starting value of x + !! eps : Accuracy of 1 - dimensional minimization at each step + !! maxloop : Maximum number of loops to attempt to find a solution !! The outputs include !! lerr : Returns .true. if it could not find the minimum !! Returns @@ -23,12 +24,12 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) class(lambda_obj), intent(inout) :: f real(DP), dimension(:), intent(in) :: x0 real(DP), intent(in) :: eps + integer(I4B), intent(in) :: maxloop logical, intent(out) :: lerr ! Result real(DP), dimension(:), allocatable :: x1 ! Internals integer(I4B) :: i, j, k, l, conv, num - integer(I4B), parameter :: MAXLOOP = 100 !! Maximum number of loops before method is determined to have failed real(DP), parameter :: graddelta = 1e-4_DP !! Delta x for gradient calculations real(DP), dimension(N) :: S !! Direction vectors real(DP), dimension(N,N) :: H !! Approximated inverse Hessian matrix @@ -56,7 +57,7 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) return end if grad1(:) = grad0(:) - do i = 1, MAXLOOP + do i = 1, maxloop !check for convergence conv = count(abs(grad1(:)) > eps) ! write(*,*) 'loop: ', i @@ -114,7 +115,7 @@ module function util_minimize_bfgs(f, N, x0, eps, lerr) result(x1) ! Stop everything if there are any exceptions to allow the routine to fail gracefully call ieee_get_flag(ieee_usual, fpe_flag) if (any(fpe_flag)) exit - if (i == MAXLOOP) then + if (i == maxloop) then lerr = .true. ! write(*,*) "BFGS ran out of loops!" end if From f9af5d7c7bcd34b5f9dbb9d9b20a382d2d643f04 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 18:15:50 -0400 Subject: [PATCH 072/315] Added coordinate transform step before resolving collisions to get all the coordinates consistenent between barycentric and heliocentric before starting the fragment code --- src/symba/symba_collision.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 80a9550bb..2e4d50b58 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1083,6 +1083,8 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t) if (plplcollision_list%nenc == 0) return ! No collisions to resolve write(*, *) "Collision between massive bodies detected at time t = ", t + call pl%vb2vh(system%cb) + call pl%h2b(system%cb) if (param%lfragmentation) then call plplcollision_list%resolve_fragmentations(system, param) else From b9d815ee484d635eb1584489857083e61953408f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 19:14:40 -0400 Subject: [PATCH 073/315] Fixed energy term in the merger case --- src/symba/symba_collision.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 2e4d50b58..05ac54fd4 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -277,7 +277,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad pe = 0.0_DP do j = 1, nfamily do i = j + 1, nfamily - pe = pe - pl%mass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) + pe = pe - pl%Gmass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) end do end do system%Ecollisions = system%Ecollisions + pe From 412c1dda627035d19a13773c852045570e39df9d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 19:19:22 -0400 Subject: [PATCH 074/315] Removed spurious coordinate system transform. x and v are already barycentric. --- src/symba/symba_collision.f90 | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 05ac54fd4..0aec3a1be 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -957,10 +957,6 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - ! Convert from DH to barycentric - x(:,1) = x(:,1) + cb%xb(:) - x(:,2) = x(:,2) + cb%xb(:) - ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them ! to symba_regime if (mass(1) > mass(2)) then @@ -1047,10 +1043,6 @@ module subroutine symba_collision_resolve_mergers(self, system, param) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - ! Convert from DH to barycentric - x(:,1) = x(:,1) + cb%xb(:) - x(:,2) = x(:,2) + cb%xb(:) - status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) end do end select From 3b7603f1d9ac364deadee735e44ae502e6ce455a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 19:36:30 -0400 Subject: [PATCH 075/315] Added in xh2xb coordinate transform method --- src/modules/swiftest_classes.f90 | 7 +++++++ src/symba/symba_collision.f90 | 2 +- src/util/util_coord.f90 | 36 ++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 686959d87..4cf180e84 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -226,6 +226,7 @@ module swiftest_classes procedure :: append => util_append_pl !! Appends elements from one structure to another procedure :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) procedure :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) + procedure :: xh2xb => util_coord_xh2xb_pl !! Convert position vectors of massive bodies from heliocentric to barycentric coordinates (position and velocity) procedure :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: resize => util_resize_pl !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. procedure :: set_beg_end => util_set_beg_end_pl !! Sets the beginning and ending positions and velocities of planets. @@ -936,6 +937,12 @@ module subroutine util_coord_h2b_tp(self, cb) class(swiftest_cb), intent(in) :: cb !! Swiftest central body object end subroutine util_coord_h2b_tp + module subroutine util_coord_xh2xb_pl(self, cb) + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + end subroutine util_coord_xh2xb_pl + module subroutine util_copy_encounter(self, source) implicit none class(swiftest_encounter), intent(inout) :: self !! Encounter list diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 0aec3a1be..5ccbcf993 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1076,7 +1076,7 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t) write(*, *) "Collision between massive bodies detected at time t = ", t call pl%vb2vh(system%cb) - call pl%h2b(system%cb) + call pl%xh2xb(system%cb) if (param%lfragmentation) then call plplcollision_list%resolve_fragmentations(system, param) else diff --git a/src/util/util_coord.f90 b/src/util/util_coord.f90 index 2a970d0dc..4daad0e53 100644 --- a/src/util/util_coord.f90 +++ b/src/util/util_coord.f90 @@ -42,6 +42,42 @@ module subroutine util_coord_h2b_pl(self, cb) end subroutine util_coord_h2b_pl + module subroutine util_coord_xh2xb_pl(self, cb) + !! author: David A. Minton + !! + !! Convert position vectors of massive bodies from heliocentric to barycentric coordinates (position and velocity) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_h2b.f90 + !! Adapted from Hal Levison's Swift routine coord_h2b.f + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + ! Internals + integer(I4B) :: i + real(DP) :: Gmtot + real(DP), dimension(NDIM) :: xtmp + + if (self%nbody == 0) return + associate(pl => self, npl => self%nbody) + Gmtot = cb%Gmass + xtmp(:) = 0.0_DP + do i = 1, npl + if (pl%status(i) == INACTIVE) cycle + Gmtot = Gmtot + pl%Gmass(i) + xtmp(:) = xtmp(:) + pl%Gmass(i) * pl%xh(:,i) + end do + cb%xb(:) = -xtmp(:) / Gmtot + do i = 1, npl + if (pl%status(i) == INACTIVE) cycle + pl%xb(:,i) = pl%xh(:,i) + cb%xb(:) + end do + end associate + + return + end subroutine util_coord_xh2xb_pl + + module subroutine util_coord_h2b_tp(self, cb) !! author: David A. Minton !! From 4e951abf8a4434712851d31188bd2d6505676040 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 19:54:59 -0400 Subject: [PATCH 076/315] Added a xh2xb call before saving collisional position vectors --- src/symba/symba_collision.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 5ccbcf993..f1f42d3cf 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -451,6 +451,7 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec end do end if + if (any(lcollision(1:nenc))) call pl%xh2xb(system%cb) ! Update the central body barycenteric position vector to get us out of DH and into bary do k = 1, nenc if (lcollision(k)) self%status(k) = COLLISION self%t(k) = t From a0fc17ce1a8d488c89330fd27e2fac0ee906cc31 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 20:15:44 -0400 Subject: [PATCH 077/315] Put back overlap check in acceleration calculation --- src/symba/symba_kick.f90 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index c1de5a077..ccf56e039 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -31,11 +31,14 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) associate(i => plplenc_list%index1(k), j => plplenc_list%index2(k)) dx(:) = pl%xh(:, j) - pl%xh(:, i) rji2 = dot_product(dx(:), dx(:)) - irij3 = 1.0_DP / (rji2 * sqrt(rji2)) - faci = pl%Gmass(i) * irij3 - facj = pl%Gmass(j) * irij3 - pl%ah(:, i) = pl%ah(:, i) - facj * dx(:) - pl%ah(:, j) = pl%ah(:, j) + faci * dx(:) + rlim2 = (pl%radius(i) + pl%radius(j))**2 + if (rji2 > rlim2) then + irij3 = 1.0_DP / (rji2 * sqrt(rji2)) + faci = pl%Gmass(i) * irij3 + facj = pl%Gmass(j) * irij3 + pl%ah(:, i) = pl%ah(:, i) - facj * dx(:) + pl%ah(:, j) = pl%ah(:, j) + faci * dx(:) + end if end associate end do end associate From 44dbbfdd713e9948158cc7751cc9b3cec8de8bf0 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 16 Aug 2021 23:07:42 -0400 Subject: [PATCH 078/315] Restored tighter E tolerance value --- src/fragmentation/fragmentation.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index b4d2eef1c..c9939d7db 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -42,7 +42,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start, r_max_start_old, r_max, f_spin real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) - real(DP), parameter :: Etol = 1e-6_DP + real(DP), parameter :: Etol = 1e-10_DP integer(I4B), parameter :: MAXTRY = 3000 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes class(swiftest_nbody_system), allocatable :: tmpsys @@ -843,7 +843,7 @@ subroutine set_fragment_radial_velocities(lerr) logical, intent(out) :: lerr ! Internals real(DP), parameter :: TOL_MIN = Etol ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy - real(DP), parameter :: TOL_INIT = 1e-12_DP + real(DP), parameter :: TOL_INIT = 1e-14_DP integer(I4B), parameter :: MAXLOOP = 100 real(DP) :: ke_radial, tol integer(I4B) :: i, j From d44b4529459b5444bb2f7f61a6814760eeb9b7f3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 07:45:51 -0400 Subject: [PATCH 079/315] Fixed the conservation report so that the header is printed only on the first call --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 933bcbdfb..7b7468976 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -35,9 +35,9 @@ module subroutine io_conservation_report(self, param, lterminal) if (param%energy_out /= "") then if (lfirst .and. (param%out_stat /= "OLD")) then open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "replace", action = "write", err = 667, iomsg = errmsg) + write(EGYIU,EGYHEADER, err = 667, iomsg = errmsg) else open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "old", action = "write", position = "append", err = 667, iomsg = errmsg) - write(EGYIU,EGYHEADER, err = 667, iomsg = errmsg) end if end if call pl%h2b(cb) From b6d35fb2b327c65e97f348a555dfa68097d2e5ce Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 09:32:53 -0400 Subject: [PATCH 080/315] Removed spurious move_alloc that was accidentally copying over the old encounter list (with incorrect indices) over to the new system. Also added an additional symba_util_copy_encounter to ensure all quantities in an encounter list get copied over during rearray --- src/io/io.f90 | 14 +++++++------- src/modules/symba_classes.f90 | 8 ++++++++ src/symba/symba_util.f90 | 25 +++++++++++++++++++++++-- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 7b7468976..3d1521680 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -72,13 +72,13 @@ module subroutine io_conservation_report(self, param, lterminal) Etotal_error = (Eorbit_now - Ecollisions - Eorbit_orig - Euntracked) / abs(Eorbit_orig) Merror = (Mtot_now - Mtot_orig) / Mtot_orig write(*, egytermfmt) Lerror, Ecoll_error, Etotal_error, Merror - if (Ecoll_error > 0.0_DP) then - write(*,*) 'Something has gone wrong! Collisional energy should not be positive!' - write(*,*) 'dke_orbit: ',(ke_orbit_now - ke_orbit_last) / abs(Eorbit_orig) - write(*,*) 'dke_spin : ',(ke_spin_now - ke_spin_last) / abs(Eorbit_orig) - write(*,*) 'dpe : ',(pe_now - pe_last) / abs(Eorbit_orig) - write(*,*) - end if + ! if (Ecoll_error > 0.0_DP) then + ! write(*,*) 'Something has gone wrong! Collisional energy should not be positive!' + ! write(*,*) 'dke_orbit: ',(ke_orbit_now - ke_orbit_last) / abs(Eorbit_orig) + ! write(*,*) 'dke_spin : ',(ke_spin_now - ke_spin_last) / abs(Eorbit_orig) + ! write(*,*) 'dpe : ',(pe_now - pe_last) / abs(Eorbit_orig) + ! write(*,*) + ! end if end if ke_orbit_last = ke_orbit_now ke_spin_last = ke_spin_now diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index fb42b7434..9ba20d243 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -140,6 +140,7 @@ module symba_classes procedure :: encounter_check => symba_encounter_check !! Checks if massive bodies are going through close encounters with each other procedure :: kick => symba_kick_encounter !! Kick barycentric velocities of active test particles within SyMBA recursion procedure :: setup => symba_setup_encounter !! A constructor that sets the number of encounters and allocates and initializes all arrays + procedure :: copy => symba_util_copy_encounter !! Copies elements from the source encounter list into self. procedure :: spill => symba_util_spill_encounter !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) procedure :: append => symba_util_append_encounter !! Appends elements from one structure to another end type symba_encounter @@ -551,6 +552,13 @@ module subroutine symba_util_append_tp(self, source, lsource_mask) class(swiftest_body), intent(in) :: source !! Source object to append logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine symba_util_append_tp + + module subroutine symba_util_copy_encounter(self, source) + use swiftest_classes, only : swiftest_encounter + implicit none + class(symba_encounter), intent(inout) :: self !! Encounter list + class(swiftest_encounter), intent(in) :: source !! Source object to copy into + end subroutine symba_util_copy_encounter end interface interface util_fill diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index caa60c7c3..12919bed0 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -188,6 +188,28 @@ module subroutine symba_util_append_tp(self, source, lsource_mask) end subroutine symba_util_append_tp + module subroutine symba_util_copy_encounter(self, source) + !! author: David A. Minton + !! + !! Copies elements from the source encounter list into self. + implicit none + ! Arguments + class(symba_encounter), intent(inout) :: self !! Encounter list + class(swiftest_encounter), intent(in) :: source !! Source object to copy into + + select type(source) + class is (symba_encounter) + associate(n => source%nenc) + self%level(1:n) = source%level(1:n) + end associate + end select + + call util_copy_encounter(self, source) + + return + end subroutine symba_util_copy_encounter + + module subroutine symba_util_fill_arr_info(keeps, inserts, lfill_list) !! author: David A. Minton !! @@ -419,6 +441,7 @@ module subroutine symba_util_rearray_pl(self, system, param) if (pl_adds%nbody > 0) then ! First store the original plplenc list so we don't remove any of the original encounters allocate(plplenc_old, source=system%plplenc_list) + call plplenc_old%copy(system%plplenc_list) ! Append the adds to the main pl object call pl%append(pl_adds, lsource_mask=[(.true., i=1, pl_adds%nbody)]) @@ -466,8 +489,6 @@ module subroutine symba_util_rearray_pl(self, system, param) end if end do end associate - call move_alloc(plplenc_old, system%plplenc_list) - end if end associate From f7e90fa21be26ae1073072c63633ed94af150fc9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 11:35:59 -0400 Subject: [PATCH 081/315] Rearranged code to handle the situation in which resolving a collision leads directly to another collision. --- src/helio/helio_coord.f90 | 113 -------------- src/helio/helio_setup.f90 | 22 +++ src/io/io.f90 | 3 +- src/kick/kick.f90 | 23 +-- src/modules/helio_classes.f90 | 40 ++--- src/modules/swiftest_classes.f90 | 52 +++++-- src/modules/symba_classes.f90 | 8 +- src/modules/whm_classes.f90 | 4 +- src/symba/symba_collision.f90 | 50 +++++-- src/symba/symba_setup.f90 | 2 +- src/symba/symba_step.f90 | 4 +- src/util/util_coord.f90 | 207 +++++++++++++++++++++----- src/util/util_get_energy_momentum.f90 | 2 +- src/whm/whm_setup.f90 | 2 +- 14 files changed, 307 insertions(+), 225 deletions(-) delete mode 100644 src/helio/helio_coord.f90 create mode 100644 src/helio/helio_setup.f90 diff --git a/src/helio/helio_coord.f90 b/src/helio/helio_coord.f90 deleted file mode 100644 index f40781810..000000000 --- a/src/helio/helio_coord.f90 +++ /dev/null @@ -1,113 +0,0 @@ -submodule (helio_classes) s_helio_coord - use swiftest -contains - - module subroutine helio_coord_vb2vh_pl(self, cb) - !! author: David A. Minton - !! - !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) - !! - !! Adapted from David E. Kaufmann's Swifter routine coord_vb2vh.f90 - !! Adapted from Hal Levison's Swift routine coord_vb2vh.f - implicit none - ! Arguments - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - ! Internals - integer(I4B) :: i - - if (self%nbody == 0) return - - associate(pl => self, npl => self%nbody) - do i = 1, NDIM - cb%vb(i) = -sum(pl%Gmass(1:npl) * pl%vb(i, 1:npl)) / cb%Gmass - pl%vh(i, 1:npl) = pl%vb(i, 1:npl) - cb%vb(i) - end do - end associate - - return - end subroutine helio_coord_vb2vh_pl - - - module subroutine helio_coord_vb2vh_tp(self, vbcb) - !! author: David A. Minton - !! - !! Convert test particles from barycentric to heliocentric coordinates (velocity only) - !! - !! Adapted from David E. Kaufmann's Swifter routine coord_vb2vh_tp.f90 - !! Adapted from Hal Levison's Swift routine coord_vb2h_tp.f - implicit none - ! Arguments - class(helio_tp), intent(inout) :: self !! Helio massive body object - real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body - - if (self%nbody == 0) return - - associate(tp => self, ntp => self%nbody) - where (tp%lmask(1:ntp)) - tp%vh(1, 1:ntp) = tp%vb(1, 1:ntp) - vbcb(1) - tp%vh(2, 1:ntp) = tp%vb(2, 1:ntp) - vbcb(2) - tp%vh(3, 1:ntp) = tp%vb(3, 1:ntp) - vbcb(3) - end where - end associate - - return - end subroutine helio_coord_vb2vh_tp - - - module subroutine helio_coord_vh2vb_pl(self, cb) - !! author: David A. Minton - !! - !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) - !! - !! Adapted from David E. Kaufmann's Swifter routine coord_vh2vb.f90 - !! Adapted from Hal Levison's Swift routine coord_vh2b.f - implicit none - ! Arguments - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - ! Internals - integer(I4B) :: i - real(DP) :: Gmtot - - if (self%nbody == 0) return - - associate(pl => self, npl => self%nbody) - Gmtot = cb%Gmass + sum(pl%Gmass(1:npl)) - do i = 1, NDIM - cb%vb(i) = -sum(pl%Gmass(1:npl) * pl%vh(i, 1:npl)) / Gmtot - pl%vb(i, 1:npl) = pl%vh(i, 1:npl) + cb%vb(i) - end do - end associate - - return - end subroutine helio_coord_vh2vb_pl - - - module subroutine helio_coord_vh2vb_tp(self, vbcb) - !! author: David A. Minton - !! - !! Convert test particles from heliocentric to barycentric coordinates (velocity only) - !! - !! Adapted from David E. Kaufmann's Swifter routine coord_vh2vb_tp.f90 - !! Adapted from Hal Levison's Swift routine coord_vh2b_tp.f - implicit none - ! Arguments - class(helio_tp), intent(inout) :: self !! Helio massive body object - real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body - - if (self%nbody == 0) return - - associate(tp => self, ntp => self%nbody) - where (tp%lmask(1:ntp)) - tp%vb(1, 1:ntp) = tp%vh(1, 1:ntp) + vbcb(1) - tp%vb(2, 1:ntp) = tp%vh(2, 1:ntp) + vbcb(2) - tp%vb(3, 1:ntp) = tp%vh(3, 1:ntp) + vbcb(3) - end where - end associate - - return - end subroutine helio_coord_vh2vb_tp - -end submodule s_helio_coord - diff --git a/src/helio/helio_setup.f90 b/src/helio/helio_setup.f90 new file mode 100644 index 000000000..2a8c24019 --- /dev/null +++ b/src/helio/helio_setup.f90 @@ -0,0 +1,22 @@ +submodule(helio_classes) s_helio_setup + use swiftest +contains + + module subroutine helio_setup_initialize_system(self, param) + !! author: David A. Minton + !! + !! Initialize a Helio nbody system from files, converting all heliocentric quantities to barycentric. + !! + implicit none + ! Arguments + class(helio_nbody_system), intent(inout) :: self !! Helio nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + + call whm_setup_initialize_system(self, param) + call self%pl%h2b(self%cb) + call self%tp%h2b(self%cb) + + return + end subroutine helio_setup_initialize_system + +end submodule s_helio_setup \ No newline at end of file diff --git a/src/io/io.f90 b/src/io/io.f90 index 3d1521680..73e951c76 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -40,7 +40,8 @@ module subroutine io_conservation_report(self, param, lterminal) open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "old", action = "write", position = "append", err = 667, iomsg = errmsg) end if end if - call pl%h2b(cb) + call pl%vb2vh(cb) + call pl%xh2xb(cb) call system%get_energy_and_momentum(param) ke_orbit_now = system%ke_orbit ke_spin_now = system%ke_spin diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index ba3226eb7..c41bf7649 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -14,7 +14,7 @@ module pure subroutine kick_getacch_int_pl(self) class(swiftest_pl), intent(inout) :: self ! Internals integer(I4B) :: k - real(DP) :: rji2, irij3, faci, facj + real(DP) :: rji2, irij3, faci, facj, rlim2 real(DP) :: dx, dy, dz associate(pl => self, npl => self%nbody, nplpl => self%nplpl) @@ -25,15 +25,18 @@ module pure subroutine kick_getacch_int_pl(self) dy = pl%xh(2, j) - pl%xh(2, i) dz = pl%xh(3, j) - pl%xh(3, i) rji2 = dx**2 + dy**2 + dz**2 - irij3 = 1.0_DP / (rji2 * sqrt(rji2)) - faci = pl%Gmass(i) * irij3 - facj = pl%Gmass(j) * irij3 - pl%ah(1, i) = pl%ah(1, i) + facj * dx - pl%ah(2, i) = pl%ah(2, i) + facj * dy - pl%ah(3, i) = pl%ah(3, i) + facj * dz - pl%ah(1, j) = pl%ah(1, j) - faci * dx - pl%ah(2, j) = pl%ah(2, j) - faci * dy - pl%ah(3, j) = pl%ah(3, j) - faci * dz + rlim2 = (pl%radius(i) + pl%radius(j))**2 + if (rji2 > rlim2) then + irij3 = 1.0_DP / (rji2 * sqrt(rji2)) + faci = pl%Gmass(i) * irij3 + facj = pl%Gmass(j) * irij3 + pl%ah(1, i) = pl%ah(1, i) + facj * dx + pl%ah(2, i) = pl%ah(2, i) + facj * dy + pl%ah(3, i) = pl%ah(3, i) + facj * dz + pl%ah(1, j) = pl%ah(1, j) - faci * dx + pl%ah(2, j) = pl%ah(2, j) - faci * dy + pl%ah(3, j) = pl%ah(3, j) - faci * dz + end if end if end associate end do diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 89f4aa055..efa326a0f 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -15,7 +15,8 @@ module helio_classes !******************************************************************************************************************************** type, extends(whm_nbody_system) :: helio_nbody_system contains - procedure :: step => helio_step_system !! Advance the Helio nbody system forward in time by one step + procedure :: step => helio_step_system !! Advance the Helio nbody system forward in time by one step + procedure :: initialize => helio_setup_initialize_system !! Performs Helio-specific initilization steps, including converting to DH coordinates end type helio_nbody_system !******************************************************************************************************************************** @@ -35,8 +36,6 @@ module helio_classes !! Helio massive body particle class type, extends(swiftest_pl) :: helio_pl contains - procedure :: vh2vb => helio_coord_vh2vb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) - procedure :: vb2vh => helio_coord_vb2vh_pl !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) procedure :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates procedure :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun procedure :: accel_gr => helio_gr_kick_getacch_pl !! Acceleration term arising from the post-Newtonian correction @@ -53,8 +52,6 @@ module helio_classes !! Helio test particle class type, extends(swiftest_tp) :: helio_tp contains - procedure :: vh2vb => helio_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) - procedure :: vb2vh => helio_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) procedure :: lindrift => helio_drift_linear_tp !! Method for linear drift of massive bodies due to barycentric momentum of Sun procedure :: drift => helio_drift_tp !! Method for Danby drift in Democratic Heliocentric coordinates procedure :: accel_gr => helio_gr_kick_getacch_tp !! Acceleration term arising from the post-Newtonian correction @@ -65,32 +62,6 @@ module helio_classes end type helio_tp interface - module subroutine helio_coord_vb2vh_pl(self, cb) - use swiftest_classes, only : swiftest_cb - implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - end subroutine helio_coord_vb2vh_pl - - module subroutine helio_coord_vb2vh_tp(self, vbcb) - implicit none - class(helio_tp), intent(inout) :: self !! Helio massive body object - real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body - end subroutine helio_coord_vb2vh_tp - - module subroutine helio_coord_vh2vb_pl(self, cb) - use swiftest_classes, only : swiftest_cb - implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - end subroutine helio_coord_vh2vb_pl - - module subroutine helio_coord_vh2vb_tp(self, vbcb) - implicit none - class(helio_tp), intent(inout) :: self !! Helio massive body object - real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body - end subroutine helio_coord_vh2vb_tp - module subroutine helio_drift_body(self, system, param, dt) use swiftest_classes, only : swiftest_body, swiftest_nbody_system, swiftest_parameters implicit none @@ -206,6 +177,13 @@ module subroutine helio_kick_vb_tp(self, system, param, t, dt, lbeg) logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. end subroutine helio_kick_vb_tp + module subroutine helio_setup_initialize_system(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(helio_nbody_system), intent(inout) :: self !! Helio nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + end subroutine helio_setup_initialize_system + module subroutine helio_step_pl(self, system, param, t, dt) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 4cf180e84..f255e1a38 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -147,8 +147,8 @@ module swiftest_classes logical, dimension(:), allocatable :: ldiscard !! Body should be discarded logical, dimension(:), allocatable :: lmask !! Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) real(DP), dimension(:), allocatable :: mu !! G * (Mcb + [m]) - real(DP), dimension(:,:), allocatable :: xh !! Heliocentric position - real(DP), dimension(:,:), allocatable :: vh !! Heliocentric velocity + real(DP), dimension(:,:), allocatable :: xh !! Swiftestcentric position + real(DP), dimension(:,:), allocatable :: vh !! Swiftestcentric velocity real(DP), dimension(:,:), allocatable :: xb !! Barycentric position real(DP), dimension(:,:), allocatable :: vb !! Barycentric velocity real(DP), dimension(:,:), allocatable :: ah !! Total heliocentric acceleration @@ -226,7 +226,9 @@ module swiftest_classes procedure :: append => util_append_pl !! Appends elements from one structure to another procedure :: h2b => util_coord_h2b_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) procedure :: b2h => util_coord_b2h_pl !! Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) - procedure :: xh2xb => util_coord_xh2xb_pl !! Convert position vectors of massive bodies from heliocentric to barycentric coordinates (position and velocity) + procedure :: vh2vb => util_coord_vh2vb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) + procedure :: vb2vh => util_coord_vb2vh_pl !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) + procedure :: xh2xb => util_coord_xh2xb_pl !! Convert massive bodies from heliocentric to barycentric coordinates (position only) procedure :: fill => util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: resize => util_resize_pl !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. procedure :: set_beg_end => util_set_beg_end_pl !! Sets the beginning and ending positions and velocities of planets. @@ -258,6 +260,8 @@ module swiftest_classes procedure :: append => util_append_tp !! Appends elements from one structure to another procedure :: h2b => util_coord_h2b_tp !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) procedure :: b2h => util_coord_b2h_tp !! Convert test particles from barycentric to heliocentric coordinates (position and velocity) + procedure :: vh2vb => util_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) + procedure :: vb2vh => util_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) procedure :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: get_peri => util_peri_tp !! Determine system pericenter passages for test particles procedure :: resize => util_resize_tp !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. @@ -516,9 +520,9 @@ module pure subroutine gr_pseudovel2vel(param, mu, xh, pv, vh) implicit none class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: mu !! G * (Mcb + m), G = gravitational constant, Mcb = mass of central body, m = mass of body - real(DP), dimension(:), intent(in) :: xh !! Heliocentric position vector + real(DP), dimension(:), intent(in) :: xh !! Swiftestcentric position vector real(DP), dimension(:), intent(in) :: pv !! Pseudovelocity velocity vector - see Saha & Tremain (1994), eq. (32) - real(DP), dimension(:), intent(out) :: vh !! Heliocentric velocity vector + real(DP), dimension(:), intent(out) :: vh !! Swiftestcentric velocity vector end subroutine gr_pseudovel2vel module pure subroutine gr_pv2vh_body(self, param) @@ -531,8 +535,8 @@ module pure subroutine gr_vel2pseudovel(param, mu, xh, vh, pv) implicit none class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: mu !! G * (Mcb + m), G = gravitational constant, Mcb = mass of central body, m = mass of body - real(DP), dimension(:), intent(in) :: xh !! Heliocentric position vector - real(DP), dimension(:), intent(in) :: vh !! Heliocentric velocity vector + real(DP), dimension(:), intent(in) :: xh !! Swiftestcentric position vector + real(DP), dimension(:), intent(in) :: vh !! Swiftestcentric velocity vector real(DP), dimension(:), intent(out) :: pv !! Pseudovelocity vector - see Saha & Tremain (1994), eq. (32) end subroutine gr_vel2pseudovel @@ -687,8 +691,8 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi integer(I4B), intent(in) :: id1, id2 !! ids of the two encountering bodies real(DP), intent(in) :: Gmass1, Gmass2 !! G*mass of the two encountering bodies real(DP), intent(in) :: radius1, radius2 !! Radii of the two encountering bodies - real(DP), dimension(:), intent(in) :: xh1, xh2 !! Heliocentric position vectors of the two encountering bodies - real(DP), dimension(:), intent(in) :: vh1, vh2 !! Heliocentric velocity vectors of the two encountering bodies + real(DP), dimension(:), intent(in) :: xh1, xh2 !! Swiftestcentric position vectors of the two encountering bodies + real(DP), dimension(:), intent(in) :: vh1, vh2 !! Swiftestcentric velocity vectors of the two encountering bodies end subroutine io_write_frame_encounter module subroutine io_write_frame_system(self, iu, param) @@ -937,12 +941,42 @@ module subroutine util_coord_h2b_tp(self, cb) class(swiftest_cb), intent(in) :: cb !! Swiftest central body object end subroutine util_coord_h2b_tp + module subroutine util_coord_vb2vh_pl(self, cb) + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + end subroutine util_coord_vb2vh_pl + + module subroutine util_coord_vb2vh_tp(self, vbcb) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body + end subroutine util_coord_vb2vh_tp + + module subroutine util_coord_vh2vb_pl(self, cb) + implicit none + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + end subroutine util_coord_vh2vb_pl + + module subroutine util_coord_vh2vb_tp(self, vbcb) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body + end subroutine util_coord_vh2vb_tp + module subroutine util_coord_xh2xb_pl(self, cb) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine util_coord_xh2xb_pl + module subroutine util_coord_xh2xb_tp(self, cb) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_cb), intent(in) :: cb !! Swiftest central body object + end subroutine util_coord_xh2xb_tp + module subroutine util_copy_encounter(self, source) implicit none class(swiftest_encounter), intent(inout) :: self !! Encounter list diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 9ba20d243..032ccd47a 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -225,20 +225,24 @@ module subroutine symba_collision_resolve_mergers(self, system, param) class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_collision_resolve_mergers - module subroutine symba_collision_resolve_plplenc(self, system, param, t) + module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, irec) implicit none class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions real(DP), intent(in) :: t !! Current simulation time + real(DP), intent(in) :: dt !! Current simulation step size + integer(I4B), intent(in) :: irec !! Current recursion level end subroutine symba_collision_resolve_plplenc - module subroutine symba_collision_resolve_pltpenc(self, system, param, t) + module subroutine symba_collision_resolve_pltpenc(self, system, param, t, dt, irec) implicit none class(symba_pltpenc), intent(inout) :: self !! SyMBA pl-tp encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions real(DP), intent(in) :: t !! Current simulation time + real(DP), intent(in) :: dt !! Current simulation step size + integer(I4B), intent(in) :: irec !! Current recursion level end subroutine symba_collision_resolve_pltpenc module subroutine symba_discard_pl(self, system, param) diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 6d5b26394..0b9caebcc 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -73,8 +73,8 @@ module whm_classes type, extends(swiftest_nbody_system) :: whm_nbody_system contains !> Replace the abstract procedures with concrete ones - procedure :: initialize => whm_setup_initialize_system !! Performs WHM-specific initilization steps, like calculating the Jacobi masses - procedure :: step => whm_step_system !! Advance the WHM nbody system forward in time by one step + procedure :: initialize => whm_setup_initialize_system ! Performs WHM-specific initilization steps, like calculating the Jacobi masses + procedure :: step => whm_step_system !! Advance the WHM nbody system forward in time by one step end type whm_nbody_system interface diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index f1f42d3cf..2f93881b1 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1054,7 +1054,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) end subroutine symba_collision_resolve_mergers - module subroutine symba_collision_resolve_plplenc(self, system, param, t) + module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, irec) !! author: David A. Minton !! !! Process the pl-pl collision list, then modifiy the massive bodies based on the outcome of the collision @@ -1065,8 +1065,11 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t) class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions real(DP), intent(in) :: t !! Current simulation time + real(DP), intent(in) :: dt !! Current simulation step size + integer(I4B), intent(in) :: irec !! Current recursion level ! Internals real(DP) :: Eorbit_before, Eorbit_after + logical :: lplpl_collision associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) select type(pl => system%pl) @@ -1074,26 +1077,41 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t) select type(param) class is (symba_parameters) if (plplcollision_list%nenc == 0) return ! No collisions to resolve - - write(*, *) "Collision between massive bodies detected at time t = ", t - call pl%vb2vh(system%cb) + ! Make sure that the heliocentric and barycentric coordinates are consistent with each other + call pl%vb2vh(system%cb) call pl%xh2xb(system%cb) - if (param%lfragmentation) then - call plplcollision_list%resolve_fragmentations(system, param) - else - call plplcollision_list%resolve_mergers(system, param) - end if - - ! Destroy the collision list now that the collisions are resolved - call plplcollision_list%setup(0) - + ! Get the energy before the collision is resolved if (param%lenergy) then call system%get_energy_and_momentum(param) Eorbit_before = system%te end if - call pl%rearray(system, param) + do + write(*, *) "Collision between massive bodies detected at time t = ", t + if (param%lfragmentation) then + call plplcollision_list%resolve_fragmentations(system, param) + else + call plplcollision_list%resolve_mergers(system, param) + end if + + ! Destroy the collision list now that the collisions are resolved + call plplcollision_list%setup(0) + + ! Save the add/discard information to file + call system%write_discard(param) + + ! Rearrange the arrays: Remove discarded bodies, add any new bodies, resort, and recompute all indices and encounter lists + call pl%rearray(system, param) + + ! Destroy the add/discard list so that we don't append the same body multiple times if another collision is detected + call system%pl_discards%setup(0, param) + call system%pl_adds%setup(0, param) + + ! Check whether or not any of the particles that were just added are themselves in a collision state. + lplpl_collision = plplenc_list%collision_check(system, param, t, dt, irec) + if (.not.lplpl_collision) exit + end do if (param%lenergy) then call system%get_energy_and_momentum(param) @@ -1109,7 +1127,7 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t) end subroutine symba_collision_resolve_plplenc - module subroutine symba_collision_resolve_pltpenc(self, system, param, t) + module subroutine symba_collision_resolve_pltpenc(self, system, param, t, dt, irec) !! author: David A. Minton !! !! Process the pl-tp collision list, then modifiy the massive bodies based on the outcome of the collision @@ -1120,6 +1138,8 @@ module subroutine symba_collision_resolve_pltpenc(self, system, param, t) class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions real(DP), intent(in) :: t !! Current simulation tim + real(DP), intent(in) :: dt !! Current simulation step size + integer(I4B), intent(in) :: irec !! Current recursion level call system%tp%discard(system, param) diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 307c37675..67f8063b5 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -73,7 +73,7 @@ module subroutine symba_setup_initialize_system(self, param) ! Call parent method associate(system => self) - call whm_setup_initialize_system(system, param) + call helio_setup_initialize_system(system, param) call system%pltpenc_list%setup(0) call system%plplenc_list%setup(0) call system%plplcollision_list%setup(0) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index ca5aa43cf..e07d16cc2 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -197,8 +197,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) lplpl_collision = plplenc_list%collision_check(system, param, t+dtl, dtl, ireci) lpltp_collision = pltpenc_list%collision_check(system, param, t+dtl, dtl, ireci) - if (lplpl_collision) call plplenc_list%resolve_collision(system, param, t+dtl) - if (lpltp_collision) call pltpenc_list%resolve_collision(system, param, t+dtl) + if (lplpl_collision) call plplenc_list%resolve_collision(system, param, t+dtl, dtl, ireci) + if (lpltp_collision) call pltpenc_list%resolve_collision(system, param, t+dtl, dtl, ireci) end if call self%set_recur_levels(ireci) diff --git a/src/util/util_coord.f90 b/src/util/util_coord.f90 index 4daad0e53..b4a77231c 100644 --- a/src/util/util_coord.f90 +++ b/src/util/util_coord.f90 @@ -42,46 +42,10 @@ module subroutine util_coord_h2b_pl(self, cb) end subroutine util_coord_h2b_pl - module subroutine util_coord_xh2xb_pl(self, cb) - !! author: David A. Minton - !! - !! Convert position vectors of massive bodies from heliocentric to barycentric coordinates (position and velocity) - !! - !! Adapted from David E. Kaufmann's Swifter routine coord_h2b.f90 - !! Adapted from Hal Levison's Swift routine coord_h2b.f - implicit none - ! Arguments - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - ! Internals - integer(I4B) :: i - real(DP) :: Gmtot - real(DP), dimension(NDIM) :: xtmp - - if (self%nbody == 0) return - associate(pl => self, npl => self%nbody) - Gmtot = cb%Gmass - xtmp(:) = 0.0_DP - do i = 1, npl - if (pl%status(i) == INACTIVE) cycle - Gmtot = Gmtot + pl%Gmass(i) - xtmp(:) = xtmp(:) + pl%Gmass(i) * pl%xh(:,i) - end do - cb%xb(:) = -xtmp(:) / Gmtot - do i = 1, npl - if (pl%status(i) == INACTIVE) cycle - pl%xb(:,i) = pl%xh(:,i) + cb%xb(:) - end do - end associate - - return - end subroutine util_coord_xh2xb_pl - - module subroutine util_coord_h2b_tp(self, cb) !! author: David A. Minton !! - !! Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) + !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) !! !! Adapted from David E. Kaufmann's Swifter routine coord_h2b_tp.f90 !! Adapted from Hal Levison's Swift routine coord_h2b_tp.f @@ -156,5 +120,174 @@ module subroutine util_coord_b2h_tp(self, cb) return end subroutine util_coord_b2h_tp + + + module subroutine util_coord_vb2vh_pl(self, cb) + !! author: David A. Minton + !! + !! Convert massive bodies from barycentric to heliocentric coordinates (velocity only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_vb2vh.f90 + !! Adapted from Hal Levison's Swift routine coord_vb2vh.f + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + ! Internals + integer(I4B) :: i + + if (self%nbody == 0) return + + associate(pl => self, npl => self%nbody) + do i = 1, NDIM + cb%vb(i) = -sum(pl%Gmass(1:npl) * pl%vb(i, 1:npl)) / cb%Gmass + pl%vh(i, 1:npl) = pl%vb(i, 1:npl) - cb%vb(i) + end do + end associate + + return + end subroutine util_coord_vb2vh_pl + + + module subroutine util_coord_vb2vh_tp(self, vbcb) + !! author: David A. Minton + !! + !! Convert test particles from barycentric to heliocentric coordinates (velocity only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_vb2vh_tp.f90 + !! Adapted from Hal Levison's Swift routine coord_vb2h_tp.f + implicit none + ! Arguments + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body + + if (self%nbody == 0) return + + associate(tp => self, ntp => self%nbody) + where (tp%lmask(1:ntp)) + tp%vh(1, 1:ntp) = tp%vb(1, 1:ntp) - vbcb(1) + tp%vh(2, 1:ntp) = tp%vb(2, 1:ntp) - vbcb(2) + tp%vh(3, 1:ntp) = tp%vb(3, 1:ntp) - vbcb(3) + end where + end associate + + return + end subroutine util_coord_vb2vh_tp + + + module subroutine util_coord_vh2vb_pl(self, cb) + !! author: David A. Minton + !! + !! Convert massive bodies from heliocentric to barycentric coordinates (velocity only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_vh2vb.f90 + !! Adapted from Hal Levison's Swift routine coord_vh2b.f + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + ! Internals + integer(I4B) :: i + real(DP) :: Gmtot + + if (self%nbody == 0) return + + associate(pl => self, npl => self%nbody) + Gmtot = cb%Gmass + sum(pl%Gmass(1:npl)) + do i = 1, NDIM + cb%vb(i) = -sum(pl%Gmass(1:npl) * pl%vh(i, 1:npl)) / Gmtot + pl%vb(i, 1:npl) = pl%vh(i, 1:npl) + cb%vb(i) + end do + end associate + + return + end subroutine util_coord_vh2vb_pl + + + module subroutine util_coord_vh2vb_tp(self, vbcb) + !! author: David A. Minton + !! + !! Convert test particles from heliocentric to barycentric coordinates (velocity only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_vh2vb_tp.f90 + !! Adapted from Hal Levison's Swift routine coord_vh2b_tp.f + implicit none + ! Arguments + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + real(DP), dimension(:), intent(in) :: vbcb !! Barycentric velocity of the central body + + if (self%nbody == 0) return + + associate(tp => self, ntp => self%nbody) + where (tp%lmask(1:ntp)) + tp%vb(1, 1:ntp) = tp%vh(1, 1:ntp) + vbcb(1) + tp%vb(2, 1:ntp) = tp%vh(2, 1:ntp) + vbcb(2) + tp%vb(3, 1:ntp) = tp%vh(3, 1:ntp) + vbcb(3) + end where + end associate + + return + end subroutine util_coord_vh2vb_tp + + module subroutine util_coord_xh2xb_pl(self, cb) + !! author: David A. Minton + !! + !! Convert position vectors of massive bodies from heliocentric to barycentric coordinates (position only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_h2b.f90 + !! Adapted from Hal Levison's Swift routine coord_h2b.f + implicit none + ! Arguments + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object + ! Internals + integer(I4B) :: i + real(DP) :: Gmtot + real(DP), dimension(NDIM) :: xtmp + + if (self%nbody == 0) return + associate(pl => self, npl => self%nbody) + Gmtot = cb%Gmass + xtmp(:) = 0.0_DP + do i = 1, npl + if (pl%status(i) == INACTIVE) cycle + Gmtot = Gmtot + pl%Gmass(i) + xtmp(:) = xtmp(:) + pl%Gmass(i) * pl%xh(:,i) + end do + cb%xb(:) = -xtmp(:) / Gmtot + do i = 1, npl + if (pl%status(i) == INACTIVE) cycle + pl%xb(:,i) = pl%xh(:,i) + cb%xb(:) + end do + end associate + + return + end subroutine util_coord_xh2xb_pl + + + module subroutine util_coord_xh2xb_tp(self, cb) + !! author: David A. Minton + !! + !! Convert test particles from heliocentric to barycentric coordinates (position only) + !! + !! Adapted from David E. Kaufmann's Swifter routine coord_h2b_tp.f90 + !! Adapted from Hal Levison's Swift routine coord_h2b_tp.f + implicit none + ! Arguments + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_cb), intent(in) :: cb !! Swiftest central body object + ! Internals + integer(I4B) :: i + + if (self%nbody == 0) return + associate(tp => self, ntp => self%nbody) + do concurrent (i = 1:ntp, tp%status(i) /= INACTIVE) + tp%xb(:, i) = tp%xh(:, i) + cb%xb(:) + end do + end associate + + return + end subroutine util_coord_xh2xb_tp + end submodule s_util_coord \ No newline at end of file diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index 7535ea67b..9a4060dc1 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -93,7 +93,7 @@ module subroutine util_get_energy_momentum_system(self, param) end do do concurrent (k = 1:pl%nplpl, lstatpl(k)) - pepl(k) = -pl%Gmass(indi(k)) * pl%mass(indj(k)) / norm2(pl%xb(:, indi(k)) - pl%xb(:, indj(k))) + pepl(k) = -(pl%Gmass(indi(k)) * pl%mass(indj(k))) / norm2(pl%xb(:, indi(k)) - pl%xb(:, indj(k))) end do end associate diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index eaed16c14..ad44fbefb 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -73,7 +73,7 @@ module subroutine whm_setup_initialize_system(self, param) !! implicit none ! Arguments - class(whm_nbody_system), intent(inout) :: self !! Swiftest system object + class(whm_nbody_system), intent(inout) :: self !! WHM nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters call setup_initialize_system(self, param) From c8c805e549e8284a95f14ecc67a62e3deee1e0f3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 11:44:30 -0400 Subject: [PATCH 082/315] Fixed problem where dicard file was being over-written each time a discard was recorded --- src/io/io.f90 | 9 +++++++-- src/symba/symba_io.f90 | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 73e951c76..c31718edb 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1235,13 +1235,18 @@ module subroutine io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp - character(len=STRMAX) :: errmsg + character(len=STRMAX) :: errmsg, out_stat if (param%discard_out == "") return associate(tp_discards => self%tp_discards, nsp => self%tp_discards%nbody, pl => self%pl, npl => self%pl%nbody) if (nsp == 0) return - select case(param%out_stat) + if (lfirst) then + out_stat = param%out_stat + else + out_stat = 'APPEND' + end if + select case(out_stat) case('APPEND') open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 4bdc5c195..775efa962 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -329,7 +329,7 @@ module subroutine symba_io_write_discard(self, param) character(*), parameter :: NPLFMT = '(I8)' character(*), parameter :: PLNAMEFMT = '(I8, 2(1X, E23.16))' class(swiftest_body), allocatable :: pltemp - character(STRMAX) :: errmsg + character(STRMAX) :: errmsg, out_stat if (param%discard_out == "") return @@ -338,7 +338,12 @@ module subroutine symba_io_write_discard(self, param) select type(pl_discards => self%pl_discards) class is (symba_merger) if (pl_discards%nbody == 0) return - select case(param%out_stat) + if (lfirst) then + out_stat = param%out_stat + else + out_stat = 'APPEND' + end if + select case(out_stat) case('APPEND') open(unit = LUN, file = param%discard_out, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) case('NEW', 'REPLACE', 'UNKNOWN') From 9bb5869e294013b6d69fafb4257e75d636e02be0 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 14:02:59 -0400 Subject: [PATCH 083/315] Lots of small improvements to array handling during normal spill/append/rearray operations in SyMBA --- src/modules/symba_classes.f90 | 5 +++-- src/symba/symba_step.f90 | 32 ++++++++++++++++++-------------- src/symba/symba_util.f90 | 4 +++- src/util/util_append.f90 | 2 -- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 032ccd47a..05698d44c 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -501,9 +501,10 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) integer(I4B), value :: ireci !! input recursion level end subroutine symba_step_recur_system - module subroutine symba_step_reset_system(self) + module subroutine symba_step_reset_system(self, param) implicit none - class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_step_reset_system end interface diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index e07d16cc2..249c73a82 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -19,20 +19,23 @@ module subroutine symba_step_system(self, param, t, dt) ! Internals logical :: lencounter - call self%reset() select type(pl => self%pl) class is (symba_pl) select type(tp => self%tp) class is (symba_tp) - lencounter = pl%encounter_check(self, dt, 0) .or. tp%encounter_check(self, dt, 0) - if (lencounter) then - tp%lfirst = pl%lfirst - call self%interp(param, t, dt) - pl%lfirst = .true. - tp%lfirst = .true. - else - call helio_step_system(self, param, t, dt) - end if + select type(param) + class is (symba_parameters) + call self%reset(param) + lencounter = pl%encounter_check(self, dt, 0) .or. tp%encounter_check(self, dt, 0) + if (lencounter) then + tp%lfirst = pl%lfirst + call self%interp(param, t, dt) + pl%lfirst = .true. + tp%lfirst = .true. + else + call helio_step_system(self, param, t, dt) + end if + end select end select end select @@ -212,7 +215,7 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) end subroutine symba_step_recur_system - module subroutine symba_step_reset_system(self) + module subroutine symba_step_reset_system(self, param) !! author: David A. Minton !! !! Resets pl, tp,and encounter structures at the start of a new step @@ -221,7 +224,8 @@ module subroutine symba_step_reset_system(self) !! Adapted from Hal Levison's Swift routine symba5_step.f implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions ! Internals integer(I4B) :: i @@ -254,8 +258,8 @@ module subroutine symba_step_reset_system(self) system%pltpenc_list%nenc = 0 end if - call system%pl_adds%resize(0) - call system%pl_discards%resize(0) + call system%pl_adds%setup(0, param) + call system%pl_discards%setup(0, param) end select end select end associate diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 12919bed0..e6ac2b6be 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -456,8 +456,10 @@ module subroutine symba_util_rearray_pl(self, system, param) pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY pl%nplm = count(pl%lmtiny(:)) - ! Reindex the bodies and calculate the level 0 encounter list + ! Reindex the new list ofbodies call pl%eucl_index() + + ! Re-build the encounter list lencounter = pl%encounter_check(system, param%dt, 0) select type(tp => system%tp) class is (symba_tp) diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 88755870f..971e3c950 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -245,8 +245,6 @@ module subroutine util_append_pl(self, source, lsource_mask) call util_append_body(self, source, lsource_mask) end associate - - call self%eucl_index() class default write(*,*) "Invalid object passed to the append method. Source must be of class swiftest_pl or its descendents" call util_exit(FAILURE) From 3a61a4909c4ca1d10aadc11cc561fdd0c4d2a527 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 15:04:05 -0400 Subject: [PATCH 084/315] Fixed problem in which kinship properties were not reset during a rearray. Also made rearray able to handle the case wher a body is discarded, but no new ones are added --- src/symba/symba_discard.f90 | 6 +- src/symba/symba_util.f90 | 114 ++++++++++++++++++++---------------- 2 files changed, 67 insertions(+), 53 deletions(-) diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index f6f7c0e6b..bf70f15dd 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -176,10 +176,6 @@ subroutine symba_discard_nonplpl(pl, system, param) ! First check for collisions with the central body associate(npl => pl%nbody, cb => system%cb) if (npl == 0) return - if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. & - (param%rmaxu >= 0.0_DP) .or. ((param%qmin >= 0.0_DP) .and. (param%qmin_coord == "BARY"))) then - call pl%h2b(cb) - end if if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then call symba_discard_cb_pl(pl, system, param) end if @@ -290,6 +286,8 @@ module subroutine symba_discard_pl(self, system, param) select type(param) class is (symba_parameters) associate(pl => self, plplenc_list => system%plplenc_list, plplcollision_list => system%plplcollision_list) + call pl%vb2vh(system%cb) + call pl%xh2xb(system%cb) call plplenc_list%write(pl, pl, param) call symba_discard_nonplpl(self, system, param) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index e6ac2b6be..a80c8e646 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -424,25 +424,25 @@ module subroutine symba_util_rearray_pl(self, system, param) associate(pl => self, pl_adds => system%pl_adds) - allocate(tmp, mold=self) + ! Deallocate any temporary variables + if (allocated(pl%xbeg)) deallocate(pl%xbeg) + if (allocated(pl%xend)) deallocate(pl%xend) + ! Remove the discards and destroy the list, as the system already tracks pl_discards elsewhere allocate(lmask, source=pl%ldiscard(:)) lmask(:) = lmask(:) .or. pl%status(:) == INACTIVE + allocate(tmp, mold=self) call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) - deallocate(lmask) call tmp%setup(0,param) deallocate(tmp) + deallocate(lmask) - ! Deallocate any temporary variables - if (allocated(pl%xbeg)) deallocate(pl%xbeg) - if (allocated(pl%xend)) deallocate(pl%xend) + ! Store the original plplenc list so we don't remove any of the original encounters + allocate(plplenc_old, source=system%plplenc_list) + call plplenc_old%copy(system%plplenc_list) ! Add in any new bodies if (pl_adds%nbody > 0) then - ! First store the original plplenc list so we don't remove any of the original encounters - allocate(plplenc_old, source=system%plplenc_list) - call plplenc_old%copy(system%plplenc_list) - ! Append the adds to the main pl object call pl%append(pl_adds, lsource_mask=[(.true., i=1, pl_adds%nbody)]) @@ -450,49 +450,65 @@ module subroutine symba_util_rearray_pl(self, system, param) lmask(:) = pl%status(1:pl%nbody) == NEW_PARTICLE call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, pl%nbody)], lmask)) - where(pl%status(:) /= INACTIVE) pl%status(:) = ACTIVE - call pl%sort("mass", ascending=.false.) - pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY - pl%nplm = count(pl%lmtiny(:)) - - ! Reindex the new list ofbodies - call pl%eucl_index() - - ! Re-build the encounter list - lencounter = pl%encounter_check(system, param%dt, 0) - select type(tp => system%tp) - class is (symba_tp) - lencounter = tp%encounter_check(system, param%dt, 0) - end select - - associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) - do k = 1, system%plplenc_list%nenc - if ((idnew1(k) == idold1(k)) .and. (idnew2(k) == idold2(k))) then - ! This is an encounter we already know about, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - else if (((idnew1(k) == idold2(k)) .and. (idnew2(k) == idold1(k)))) then - ! This is an encounter we already know about, but with the order reversed, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - end if - end do - end associate + deallocate(lmask) end if + ! Reset all of the status flags for this body + where(pl%status(:) /= INACTIVE) + pl%status(:) = ACTIVE + pl%ldiscard(:) = .false. + pl%lcollision(:) = .false. + pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY + pl%lmask(:) = .true. + elsewhere + pl%ldiscard(:) = .true. + pl%lmask(:) = .false. + end where + + pl%nplm = count(pl%lmtiny(1:pl%nbody) .and. pl%lmask(1:pl%nbody)) + + ! Reindex the new list of bodies + call pl%sort("mass", ascending=.false.) + call pl%eucl_index() + + ! Reset the kinship trackers + pl%kin(1:pl%nbody)%nchild = 0 + pl%kin(1:pl%nbody)%parent = [(i, i=1, pl%nbody)] + + ! Re-build the encounter list + lencounter = pl%encounter_check(system, param%dt, 0) + select type(tp => system%tp) + class is (symba_tp) + lencounter = tp%encounter_check(system, param%dt, 0) + end select + + associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) + do k = 1, system%plplenc_list%nenc + if ((idnew1(k) == idold1(k)) .and. (idnew2(k) == idold2(k))) then + ! This is an encounter we already know about, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + else if (((idnew1(k) == idold2(k)) .and. (idnew2(k) == idold1(k)))) then + ! This is an encounter we already know about, but with the order reversed, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + end if + end do + end associate + end associate return From c82fd077e8cdf5641618391ad7d69b576ed8abfd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 15:58:45 -0400 Subject: [PATCH 085/315] Added new status flag to distinguish between pure and disruptive hit and runs. Now save the fragmentation status flag to the pl-pl collision list --- src/modules/swiftest_classes.f90 | 3 ++- src/modules/swiftest_globals.f90 | 35 ++++++++++++++++---------------- src/symba/symba_collision.f90 | 21 +++++++++---------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index f255e1a38..aed6f23b0 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -260,8 +260,9 @@ module swiftest_classes procedure :: append => util_append_tp !! Appends elements from one structure to another procedure :: h2b => util_coord_h2b_tp !! Convert test particles from heliocentric to barycentric coordinates (position and velocity) procedure :: b2h => util_coord_b2h_tp !! Convert test particles from barycentric to heliocentric coordinates (position and velocity) - procedure :: vh2vb => util_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) procedure :: vb2vh => util_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) + procedure :: vh2vb => util_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) + procedure :: xh2xb => util_coord_xh2xb_tp !! Convert test particles from heliocentric to barycentric coordinates (position only) procedure :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: get_peri => util_peri_tp !! Determine system pericenter passages for test particles procedure :: resize => util_resize_tp !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index cbe626e43..454f454f5 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -72,23 +72,24 @@ module swiftest_globals integer(I4B), parameter :: HYPERBOLA = 1 !! Symbolic names for orbit types - hyperbola !> Symbolic names for body/particle status codes: - integer(I4B), parameter :: ACTIVE = 0 - integer(I4B), parameter :: INACTIVE = 1 - integer(I4B), parameter :: DISCARDED_RMAX = -1 - integer(I4B), parameter :: DISCARDED_RMIN = -2 - integer(I4B), parameter :: DISCARDED_RMAXU = -3 - integer(I4B), parameter :: DISCARDED_PERI = -4 - integer(I4B), parameter :: DISCARDED_PLR = -5 - integer(I4B), parameter :: DISCARDED_PLQ = -6 - integer(I4B), parameter :: DISCARDED_DRIFTERR = -7 - integer(I4B), parameter :: MERGED = -8 - integer(I4B), parameter :: DISRUPTION = -9 - integer(I4B), parameter :: SUPERCATASTROPHIC = -10 - integer(I4B), parameter :: GRAZE_AND_MERGE = -11 - integer(I4B), parameter :: HIT_AND_RUN = -12 - integer(I4B), parameter :: COLLISION = -13 - integer(I4B), parameter :: NEW_PARTICLE = -14 - integer(I4B), parameter :: OLD_PARTICLE = -15 + integer(I4B), parameter :: ACTIVE = 0 + integer(I4B), parameter :: INACTIVE = 1 + integer(I4B), parameter :: DISCARDED_RMAX = -1 + integer(I4B), parameter :: DISCARDED_RMIN = -2 + integer(I4B), parameter :: DISCARDED_RMAXU = -3 + integer(I4B), parameter :: DISCARDED_PERI = -4 + integer(I4B), parameter :: DISCARDED_PLR = -5 + integer(I4B), parameter :: DISCARDED_PLQ = -6 + integer(I4B), parameter :: DISCARDED_DRIFTERR = -7 + integer(I4B), parameter :: MERGED = -8 + integer(I4B), parameter :: DISRUPTION = -9 + integer(I4B), parameter :: SUPERCATASTROPHIC = -10 + integer(I4B), parameter :: GRAZE_AND_MERGE = -11 + integer(I4B), parameter :: HIT_AND_RUN_DISRUPT = -12 + integer(I4B), parameter :: HIT_AND_RUN_PURE = -13 + integer(I4B), parameter :: COLLISION = -14 + integer(I4B), parameter :: NEW_PARTICLE = -15 + integer(I4B), parameter :: OLD_PARTICLE = -16 !>Symbolic names for collisional outcomes from collresolve_resolve: integer(I4B), parameter :: COLLRESOLVE_REGIME_MERGE = 1 diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 2f93881b1..1a13bdfd0 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -186,7 +186,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, end if end if if (lpure) then ! Reset these bodies back to being active so that nothing further is done to them - status = ACTIVE + status = HIT_AND_RUN_PURE select type(pl => system%pl) class is (symba_pl) pl%status(family(:)) = status @@ -194,7 +194,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, pl%lcollision(family(:)) = .false. end select else - status = HIT_AND_RUN + status = HIT_AND_RUN_DISRUPT call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) end if @@ -871,7 +871,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do - case(HIT_AND_RUN) + case(HIT_AND_RUN_DISRUPT) plnew%info(1) = pl%info(ibiggest) plnew%status(1) = OLD_PARTICLE plnew%status(2:nfrag) = NEW_PARTICLE @@ -938,7 +938,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) real(DP), dimension(NDIM,2) :: x, v, L_spin, Ip !! Output values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(2) :: mass, radius !! Output values that represent a 2-body equivalent of a possibly 2+ body collision logical :: lgoodcollision - integer(I4B) :: i, status, jtarg, jproj, regime + integer(I4B) :: i, jtarg, jproj, regime real(DP), dimension(2) :: radius_si, mass_si, density_si real(DP) :: mtiny_si, Mcb_si real(DP), dimension(NDIM) :: x1_si, v1_si, x2_si, v2_si @@ -994,13 +994,13 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) select case (regime) case (COLLRESOLVE_REGIME_DISRUPTION) - status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_HIT_AND_RUN) - status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plpl_collisions%status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) case default write(*,*) "Error in symba_collision, unrecognized collision regime" call util_exit(FAILURE) @@ -1140,12 +1140,11 @@ module subroutine symba_collision_resolve_pltpenc(self, system, param, t, dt, ir real(DP), intent(in) :: t !! Current simulation tim real(DP), intent(in) :: dt !! Current simulation step size integer(I4B), intent(in) :: irec !! Current recursion level - + + call system%tp%xh2xb(system%cb) call system%tp%discard(system, param) return end subroutine symba_collision_resolve_pltpenc - - end submodule s_symba_collision \ No newline at end of file From 3921e9ccd0b236e477c6d23effe8b1cecebd8317 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 16:01:27 -0400 Subject: [PATCH 086/315] Save status to correct index value of the plplcollision_list --- src/symba/symba_collision.f90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 1a13bdfd0..6589856a3 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -994,13 +994,13 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) select case (regime) case (COLLRESOLVE_REGIME_DISRUPTION) - plpl_collisions%status = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status(i) = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - plpl_collisions%status = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status(i) = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_HIT_AND_RUN) - plpl_collisions%status = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plpl_collisions%status(i) = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - plpl_collisions%status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plpl_collisions%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) case default write(*,*) "Error in symba_collision, unrecognized collision regime" call util_exit(FAILURE) @@ -1030,7 +1030,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) real(DP), dimension(NDIM,2) :: x, v, L_spin, Ip !! Output values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(2) :: mass, radius !! Output values that represent a 2-body equivalent of a possibly 2+ body collision logical :: lgoodcollision - integer(I4B) :: i, status + integer(I4B) :: i associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) @@ -1044,7 +1044,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - status = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plpl_collisions%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) end do end select end select From b3b8394d4cd4cc11341990b0cf726ab80fd030cd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 16:43:30 -0400 Subject: [PATCH 087/315] Fixed floating point error coming from uninitialized array in the fragmentation code --- src/fragmentation/fragmentation.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index c9939d7db..8ba00c7cf 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -98,6 +98,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, L_frag_budget(:) = L_frag_orb(:) + L_frag_spin(:) f_spin = norm2(L_frag_spin(:)) / norm2(L_frag_budget(:)) + call reset_fragments() call define_coordinate_system() call construct_temporary_system() @@ -110,7 +111,6 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ke_tot_deficit = 0.0_DP do while (try < MAXTRY) lfailure = .false. - call reset_fragments() call set_fragment_position_vectors() @@ -145,6 +145,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) exit call restructure_failed_fragments() + call reset_fragments() try = try + 1 end do call restore_scale_factors() @@ -326,8 +327,8 @@ subroutine define_coordinate_system() ! The cross product of the y- by z-axis will give us the x-axis x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) + if (.not.any(x_frag(:,:) > 0.0_DP)) return rmag(:) = .mag. x_frag(:,:) - if (.not.any(rmag(:) > 0.0_DP)) return call random_number(L_sigma(:,:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, ! otherwise we can get an ill-conditioned system From ae6efeeec444e65cbb60e6e643bc523ae73eefe6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 16:56:59 -0400 Subject: [PATCH 088/315] Added ability to ignore pure hit and runs or failed collisional outcomes without getting stuck in an infinite loop of collision detection --- src/symba/symba_collision.f90 | 61 +++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 6589856a3..f0bc32a64 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -189,7 +189,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, status = HIT_AND_RUN_PURE select type(pl => system%pl) class is (symba_pl) - pl%status(family(:)) = status + pl%status(family(:)) = ACTIVE pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. end select @@ -946,7 +946,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) integer(I4B), parameter :: NRES = 3 !! Number of collisional product results real(DP), dimension(NRES) :: mass_res - associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) + associate(plplcollision_list => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) class is (symba_pl) select type (cb => system%cb) @@ -969,10 +969,10 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) end if mass_si(:) = (mass(:)) * param%MU2KG !! The collective mass of the parent and its children radius_si(:) = radius(:) * param%DU2M !! The collective radius of the parent and its children - x1_si(:) = plpl_collisions%x1(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v1_si(:) = plpl_collisions%v1(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) - x2_si(:) = plpl_collisions%x2(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v2_si(:) = plpl_collisions%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) + x1_si(:) = plplcollision_list%x1(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) + v1_si(:) = plplcollision_list%v1(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) + x2_si(:) = plplcollision_list%x2(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) + v2_si(:) = plplcollision_list%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The collective density of the parent and its children Mcb_si = cb%mass * param%MU2KG mtiny_si = (param%GMTINY / param%GU) * param%MU2KG @@ -994,13 +994,13 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) select case (regime) case (COLLRESOLVE_REGIME_DISRUPTION) - plpl_collisions%status(i) = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - plpl_collisions%status(i) = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_HIT_AND_RUN) - plpl_collisions%status(i) = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - plpl_collisions%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plplcollision_list%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) case default write(*,*) "Error in symba_collision, unrecognized collision regime" call util_exit(FAILURE) @@ -1032,7 +1032,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) logical :: lgoodcollision integer(I4B) :: i - associate(plpl_collisions => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) + associate(plplcollision_list => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) class is (symba_pl) select type(cb => system%cb) @@ -1044,7 +1044,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - plpl_collisions%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plplcollision_list%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) end do end select end select @@ -1070,6 +1070,10 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir ! Internals real(DP) :: Eorbit_before, Eorbit_after logical :: lplpl_collision + integer(I4B), dimension(:), allocatable :: ignoreid1, ignoreid2 + logical, dimension(:), allocatable :: lignore + integer(I4B) :: i, j, k, nignore + class(symba_plplenc), allocatable :: tmpenc associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) select type(pl => system%pl) @@ -1094,6 +1098,19 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir else call plplcollision_list%resolve_mergers(system, param) end if + + ! Now figure out if any pair of collisions should be ignored (e.g. pure hit and run, or was invalid due to a kinship problem) + allocate(lignore(plplcollision_list%nenc)) + lignore(:) = (plplcollision_list%status(:) == COLLISION) .or. (plplcollision_list%status(:) == HIT_AND_RUN_PURE) + nignore = count(lignore(:)) + if (nignore > 0) then + allocate(ignoreid1(nignore)) + allocate(ignoreid2(nignore)) + ! Save the ids the pairs of bodies that should be ignored + ignoreid1(:) = pack(pl%id(plplcollision_list%index1(:)), lignore(:)) + ignoreid2(:) = pack(pl%id(plplcollision_list%index2(:)), lignore(:)) + end if + deallocate(lignore) ! Destroy the collision list now that the collisions are resolved call plplcollision_list%setup(0) @@ -1108,8 +1125,26 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir call system%pl_discards%setup(0, param) call system%pl_adds%setup(0, param) - ! Check whether or not any of the particles that were just added are themselves in a collision state. + ! Check whether or not any of the particles that were just added are themselves in a collision state. This will generate a new plplcollision_list lplpl_collision = plplenc_list%collision_check(system, param, t, dt, irec) + + ! If one of the collision pairs we just identified is on the ignore list, remove it so we don't try to resolve it again. + if (nignore > 0) then + allocate(lignore(plplcollision_list%nenc)) + lignore(:) = .false. + do k = 1, plplcollision_list%nenc + associate(idx1 => plplcollision_list%index1(k), idx2 => plplcollision_list%index2(k)) + do i = 1, nignore + if ((pl%id(idx1) == ignoreid1(i)) .and. (pl%id(idx2) == ignoreid2(i))) lignore(k) = .true. + end do + end associate + end do + allocate(tmpenc, mold=plplcollision_list) + call plplcollision_list%spill(tmpenc, lignore, ldestructive = .true.) + deallocate(tmpenc) + lplpl_collision = plplcollision_list%nenc > 0 + end if + if (.not.lplpl_collision) exit end do From 24d5842ac2d0f6d18d34d6f971961ebf5439ff16 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 17:08:22 -0400 Subject: [PATCH 089/315] Turns out to be way easier to ignore hit and runs. Just exit the loop if there are not bodies in the add and discard list. --- src/symba/symba_collision.f90 | 36 ++--------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index f0bc32a64..f813e068a 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1070,10 +1070,6 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir ! Internals real(DP) :: Eorbit_before, Eorbit_after logical :: lplpl_collision - integer(I4B), dimension(:), allocatable :: ignoreid1, ignoreid2 - logical, dimension(:), allocatable :: lignore - integer(I4B) :: i, j, k, nignore - class(symba_plplenc), allocatable :: tmpenc associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) select type(pl => system%pl) @@ -1099,22 +1095,11 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir call plplcollision_list%resolve_mergers(system, param) end if - ! Now figure out if any pair of collisions should be ignored (e.g. pure hit and run, or was invalid due to a kinship problem) - allocate(lignore(plplcollision_list%nenc)) - lignore(:) = (plplcollision_list%status(:) == COLLISION) .or. (plplcollision_list%status(:) == HIT_AND_RUN_PURE) - nignore = count(lignore(:)) - if (nignore > 0) then - allocate(ignoreid1(nignore)) - allocate(ignoreid2(nignore)) - ! Save the ids the pairs of bodies that should be ignored - ignoreid1(:) = pack(pl%id(plplcollision_list%index1(:)), lignore(:)) - ignoreid2(:) = pack(pl%id(plplcollision_list%index2(:)), lignore(:)) - end if - deallocate(lignore) - ! Destroy the collision list now that the collisions are resolved call plplcollision_list%setup(0) + if ((system%pl_adds%nbody == 0) .and. (system%pl_discards%nbody == 0)) exit + ! Save the add/discard information to file call system%write_discard(param) @@ -1128,23 +1113,6 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir ! Check whether or not any of the particles that were just added are themselves in a collision state. This will generate a new plplcollision_list lplpl_collision = plplenc_list%collision_check(system, param, t, dt, irec) - ! If one of the collision pairs we just identified is on the ignore list, remove it so we don't try to resolve it again. - if (nignore > 0) then - allocate(lignore(plplcollision_list%nenc)) - lignore(:) = .false. - do k = 1, plplcollision_list%nenc - associate(idx1 => plplcollision_list%index1(k), idx2 => plplcollision_list%index2(k)) - do i = 1, nignore - if ((pl%id(idx1) == ignoreid1(i)) .and. (pl%id(idx2) == ignoreid2(i))) lignore(k) = .true. - end do - end associate - end do - allocate(tmpenc, mold=plplcollision_list) - call plplcollision_list%spill(tmpenc, lignore, ldestructive = .true.) - deallocate(tmpenc) - lplpl_collision = plplcollision_list%nenc > 0 - end if - if (.not.lplpl_collision) exit end do From 98a4d5d9c792c2de5d19eef314df47f7bbbc96e6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 19:39:28 -0400 Subject: [PATCH 090/315] Added back an initial try of f_spin=0.05 in the fragmenation code --- src/fragmentation/fragmentation.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 8ba00c7cf..d4a94627e 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -96,7 +96,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, L_frag_orb(:) = L_orb(:, 1) + L_orb(:, 2) L_frag_spin(:) = L_spin(:, 1) + L_spin(:, 2) L_frag_budget(:) = L_frag_orb(:) + L_frag_spin(:) - f_spin = norm2(L_frag_spin(:)) / norm2(L_frag_budget(:)) + f_spin = 0.05_DP call reset_fragments() call define_coordinate_system() From baf5d5b96ff0c27aed1c96d230a9b276cfb0d7a1 Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 17 Aug 2021 20:46:08 -0400 Subject: [PATCH 091/315] Updated example for testing --- examples/symba_mars_disk/param.in | 6 ++++-- examples/symba_mars_disk/tp.in | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index ef35236ba..a75ddbdab 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,7 +1,8 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 6000.0 +TSTOP 6000000.0 DT 600.0 +CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII @@ -24,9 +25,10 @@ BIG_DISCARD no RHILL_PRESENT yes GMTINY 1000.0 ENERGY yes -FRAGMENTATION no +FRAGMENTATION yes ROTATION yes MU2KG 1.0 DU2M 1.0 TU2S 1.0 SEED 2 3080983 2220830 +DISCARD_OUT discard.out diff --git a/examples/symba_mars_disk/tp.in b/examples/symba_mars_disk/tp.in index 573541ac9..c22708346 100644 --- a/examples/symba_mars_disk/tp.in +++ b/examples/symba_mars_disk/tp.in @@ -1 +1 @@ -0 +0 \ No newline at end of file From 507e43b1e5a261616d0c605b1c52b793413d3cd9 Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 17 Aug 2021 22:40:49 -0400 Subject: [PATCH 092/315] Added in plot animation script --- examples/symba_mars_disk/aescattermovie.py | 117 +++++++++++++++++++++ examples/symba_mars_disk/param.in | 2 +- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100755 examples/symba_mars_disk/aescattermovie.py diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py new file mode 100755 index 000000000..66ec46d22 --- /dev/null +++ b/examples/symba_mars_disk/aescattermovie.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +import swiftest +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import animation +import matplotlib.colors as mcolors + +radscale = 20 +RMars = 3389500.0 +xmin = 1.0 +xmax = 10.0 +ymin = 1e-6 +ymax = 1.0 + +class AnimatedScatter(object): + """An animated scatter plot using matplotlib.animations.FuncAnimation.""" + def __init__(self, ds, param): + + frame = 0 + nframes = ds['time'].size + self.ds = ds + self.param = param + self.ds['radmarker'] = self.ds['Radius'].fillna(0) + self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + + self.clist = {'Initial conditions' : 'xkcd:faded blue', + 'Disruption' : 'xkcd:marigold', + 'Supercatastrophic' : 'xkcd:shocking pink', + 'Hit and run fragment' : 'xkcd:baby poop green'} + + self.stream = self.data_stream(frame) + # Setup the figure and axes... + fig = plt.figure(figsize=(8,4.5), dpi=300) + plt.tight_layout(pad=0) + # set up the figure + self.ax = plt.Axes(fig, [0.1, 0.15, 0.8, 0.75]) + self.ax.set_xlim(xmin, xmax) + self.ax.set_ylim(ymin, ymax) + fig.add_axes(self.ax) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani.save('aescatter.mp4', fps=60, dpi=300, extra_args=['-vcodec', 'libx264']) + print('Finished writing aescattter.mp4') + + def scatters(self, pl, radmarker, origin): + scat = [] + for key, value in self.clist.items(): + idx = origin == value + s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.25, label=key) + scat.append(s) + return scat + + def setup_plot(self): + # First frame + """Initial drawing of the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(0)) + + # set up the figure + self.ax.margins(x=10, y=1) + self.ax.set_xlabel('Semi Major Axis ($R_{Mars}$)', fontsize='16', labelpad=1) + self.ax.set_ylabel('Eccentricity', fontsize='16', labelpad=1) + self.ax.set_yscale('log') + + self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, + ha="center") + + self.title.set_text(f'Time = ${t / 24 / 3600:4.1f}$ days with ${npl:f}$ particles') + slist = self.scatters(pl, radmarker, origin) + self.s0 = slist[0] + self.s1 = slist[1] + self.s2 = slist[2] + self.s3 = slist[3] + self.ax.legend(loc='upper right') + return self.s0, self.s1, self.s2, self.s3, self.title + + def data_stream(self, frame=0): + while True: + d = self.ds.isel(time=frame) + Radius = d['radmarker'].values + GMass = d['GMass'].values + a = d['a'].values / RMars + e = d['e'].values + name = d['id'].values + npl = d.id.count().values + radmarker = d['radmarker'] + origin = d['origin_type'] + + t = self.ds.coords['time'].values[frame] + + frame += 1 + yield t, name, GMass, Radius, npl, np.c_[a, e], radmarker, origin + + def update(self,frame): + """Update the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + + self.title.set_text(f'Time = ${t / 24 / 3600:4.1f}$ days with ${npl:4.0f}$ particles') + + # We need to return the updated artist for FuncAnimation to draw.. + # Note that it expects a sequence of artists, thus the trailing comma. + s = [self.s0, self.s1, self.s2, self.s3] + for i, (key, value) in enumerate(self.clist.items()): + idx = origin == key + s[i].set_sizes(radmarker[idx]) + s[i].set_offsets(pl[idx,:]) + s[i].set_facecolor(value) + + self.s0 = s[0] + self.s1 = s[1] + self.s2 = s[2] + self.s3 = s[3] + return self.s0, self.s1, self.s2, self.s3, self.title, + +sim = swiftest.Simulation(param_file="param.in") +sim.bin2xr() +print('Making animation') +anim = AnimatedScatter(sim.ds,sim.param) +print('Animation finished') diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index a75ddbdab..e28e08370 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -11,7 +11,7 @@ ISTEP_DUMP 1 BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 -OUT_FORM XV +OUT_FORM EL OUT_STAT REPLACE CHK_CLOSE yes CHK_RMIN 3389500.0 From 10726e9520700293b042e2dcad8e7e22dab605a8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 17 Aug 2021 22:43:44 -0400 Subject: [PATCH 093/315] Switched to adding new id to largest hit and run body to prevent id duplication --- src/symba/symba_collision.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index f813e068a..7c49009f2 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -169,7 +169,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - id_frag(2:nfrag) = [(i, i = system%maxid + 1, system%maxid + nfrag - 1)] + id_frag(1:nfrag) = [(i, i = system%maxid + 1, system%maxid + nfrag)] do i = 1, nfrag Ip_frag(:, i) = Ip(:, jproj) From 23c06dc06ed5f2ef791a76b05fb8c536b6516fee Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 18 Aug 2021 08:05:47 -0400 Subject: [PATCH 094/315] Tweaked animation script. I made the points darker and larger, and fixed issue in which the number of particles in each time frame was not being reported correctly. --- examples/symba_mars_disk/aescattermovie.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index 66ec46d22..e490da45c 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -5,7 +5,7 @@ from matplotlib import animation import matplotlib.colors as mcolors -radscale = 20 +radscale = 50 RMars = 3389500.0 xmin = 1.0 xmax = 10.0 @@ -38,14 +38,14 @@ def __init__(self, ds, param): self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) - self.ani.save('aescatter.mp4', fps=60, dpi=300, extra_args=['-vcodec', 'libx264']) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): scat = [] for key, value in self.clist.items(): idx = origin == value - s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.25, label=key) + s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) scat.append(s) return scat @@ -75,6 +75,7 @@ def setup_plot(self): def data_stream(self, frame=0): while True: d = self.ds.isel(time=frame) + d = d.where(np.invert(np.isnan(d['a'])), drop=True) Radius = d['radmarker'].values GMass = d['GMass'].values a = d['a'].values / RMars From c75fe12a5b68fae377c07b1a90a4eb3707b2481a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 08:56:05 -0400 Subject: [PATCH 095/315] Improved parameter file parsing and now take CHK_RMIN value from the central body radius if it is not supplied in param.in --- src/io/io.f90 | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c31718edb..3f7a98cfc 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -609,12 +609,16 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "OUT_STAT = ",trim(adjustl(param%out_stat)) write(*,*) "ISTEP_DUMP = ",param%istep_dump write(*,*) "CHK_CLOSE = ",param%lclose - write(*,*) "CHK_RMIN = ",param%rmin - write(*,*) "CHK_RMAX = ",param%rmax - write(*,*) "CHK_EJECT = ",param%rmaxu - write(*,*) "CHK_QMIN = ",param%qmin - write(*,*) "CHK_QMIN_COORD = ",trim(adjustl(param%qmin_coord)) - write(*,*) "CHK_QMIN_RANGE = ",param%qmin_alo, param%qmin_ahi + if (param%rmin > 0.0) then + write(*,*) "CHK_RMIN = ",param%rmin + else + write(*,*) "! CHK_RMIN value will be the central body radius" + end if + if (param%rmax > 0.0_DP) write(*,*) "CHK_RMAX = ",param%rmax + if (param%rmaxu > 0.0_DP) write(*,*) "CHK_EJECT = ",param%rmaxu + if ((param%qmin > 0.0_DP) .or. (param%qmin_alo > 0.0_DP) .or. (param%qmin_ahi > 0.0_DP)) write(*,*) "CHK_QMIN_COORD = ",trim(adjustl(param%qmin_coord)) + if (param%qmin > 0.0_DP) write(*,*) "CHK_QMIN = ",param%qmin + if ((param%qmin_alo > 0.0_DP) .or. (param%qmin_ahi > 0.0_DP)) write(*,*) "CHK_QMIN_RANGE = ",param%qmin_alo, param%qmin_ahi write(*,*) "EXTRA_FORCE = ",param%lextra_force write(*,*) "RHILL_PRESENT = ",param%lrhill_present write(*,*) "ROTATION = ", param%lrotation @@ -655,7 +659,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) end if associate(integrator => v_list(1)) - if (integrator == RMVS) then + if ((integrator == RMVS) .or. (integrator == SYMBA)) then if (.not.param%lclose) then write(iomsg,*) 'This integrator requires CHK_CLOSE to be enabled.' iostat = -1 @@ -903,6 +907,7 @@ module subroutine io_read_cb_in(self, param) close(iu, err = 667, iomsg = errmsg) if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. + if (param%rmin < 0.0) param%rmin = self%radius return From 9df7f36afb23bbff2855353a9be3cb577e470a8a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 08:57:10 -0400 Subject: [PATCH 096/315] Reverted kinetic energy calculation to be scalar based for perfomance and memory --- src/util/util_get_energy_momentum.f90 | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index 9a4060dc1..dffdc29ae 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -23,6 +23,7 @@ module subroutine util_get_energy_momentum_system(self, param) real(DP), dimension(NDIM) :: Lcborbit, Lcbspin logical, dimension(self%pl%nplpl) :: lstatpl logical, dimension(self%pl%nbody) :: lstatus + real(DP) :: hx, hy, hz associate(system => self, pl => self%pl, npl => self%pl%nbody, cb => self%cb) system%Lorbit(:) = 0.0_DP @@ -43,21 +44,17 @@ module subroutine util_get_energy_momentum_system(self, param) Lcborbit(:) = cb%mass * (cb%xb(:) .cross. cb%vb(:)) do concurrent (i = 1:npl, lstatus(i)) - block ! We use a block construct to prevent generating temporary arrays for local variables - real(DP) :: v2 - real(DP), dimension(NDIM) :: L + hx = pl%xb(2,i) * pl%vb(3,i) - pl%xb(3,i) * pl%vb(2,i) + hy = pl%xb(3,i) * pl%vb(1,i) - pl%xb(1,i) * pl%vb(3,i) + hz = pl%xb(1,i) * pl%vb(2,i) - pl%xb(2,i) * pl%vb(1,i) - v2 = dot_product(pl%vb(:,i), pl%vb(:,i)) - L(:) = pl%mass(i) * (pl%xb(:,i) .cross. pl%vb(:,i)) + ! Angular momentum from orbit + Lplorbitx(i) = pl%mass(i) * hx + Lplorbity(i) = pl%mass(i) * hy + Lplorbitz(i) = pl%mass(i) * hz - ! Angular momentum from orbit - Lplorbitx(i) = L(1) - Lplorbity(i) = L(2) - Lplorbitz(i) = L(3) - - ! Kinetic energy from orbit and spin - kepl(i) = pl%mass(i) * v2 - end block + ! Kinetic energy from orbit + kepl(i) = pl%mass(i) * dot_product(pl%vb(:,i), pl%vb(:,i)) end do if (param%lrotation) then @@ -72,7 +69,9 @@ module subroutine util_get_energy_momentum_system(self, param) Lplspinx(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(1,i) Lplspiny(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(2,i) Lplspinz(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(3,i) - kespinpl(i) = pl%mass(i) * pl%Ip(3, i) * pl%radius(i)**2 * dot_product(pl%rot(:,i), pl%rot(:,i)) + + ! Kinetic energy from spin + kespinpl(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * dot_product(pl%rot(:,i), pl%rot(:,i)) end do else kespincb = 0.0_DP From 07eae4302d0dfa867b4a4455cbb32d2ac1d4dc2c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 08:57:42 -0400 Subject: [PATCH 097/315] Added Chambers 2013 example --- examples/symba_chambers_2013/param.in | 32 + .../symba_chambers_2013/pl_chambers_2013.in | 937 ++++++++++++++++++ examples/symba_chambers_2013/sun_MsunAUYR.in | 7 + examples/symba_chambers_2013/tp.in | 1 + 4 files changed, 977 insertions(+) create mode 100644 examples/symba_chambers_2013/param.in create mode 100644 examples/symba_chambers_2013/pl_chambers_2013.in create mode 100644 examples/symba_chambers_2013/sun_MsunAUYR.in create mode 100644 examples/symba_chambers_2013/tp.in diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in new file mode 100644 index 000000000..4053ae395 --- /dev/null +++ b/examples/symba_chambers_2013/param.in @@ -0,0 +1,32 @@ +! +! Parameter file for Chambers 2013 in units of Msun, AU, year +! +T0 0.0e0 +TSTOP 1e8 ! simulation length in years +DT 0.016 ! stepsize in years +CB_IN sun_MsunAUYR.in +PL_IN pl_chambers_2013.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 6250 ! output cadence +ISTEP_DUMP 6250 ! system dump cadence +BIN_OUT bin.dat +PARTICLE_OUT particle.dat +OUT_TYPE REAL8 ! double precision real output +OUT_FORM XV ! osculating element output +OUT_STAT REPLACE +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMAX 100000.0 ! discard outside of +ENC_OUT enc.dat +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD no ! output all planets if anything discarded +RHILL_PRESENT yes ! Hill's sphere radii in input file +MU2KG 1.98847e30 ! (M_sun-> kg) +DU2M 1.495979e11 ! distance unit to meters (AU --> m) +TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) +GMTINY 1e-10 +ENERGY yes +ROTATION yes +FRAGMENTATION yes +DISCARD_OUT discard.out +SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in new file mode 100644 index 000000000..1ba4c845e --- /dev/null +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -0,0 +1,937 @@ +156 ! Solar System in unit system AU, M_sun, and years +500 3.76722155e-02 1.08899907e-02 ! ID / G*Mass / Rhill Jupiter +4.67326079e-04 ! Radius +3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z +1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz +0.0 0.0 0.2756 ! ip +-81.01800465 -2388.16786145 5008.65350675 ! rot +600 1.12798314e-02 1.99069165e-02 ! ID / G*Mass / Rhill Saturn +3.89256801e-04 ! Radius +5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z +1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz +0.0 0.0 0.22 ! ip +445.81155409 381.95827345 5182.3159189 ! rot +4 1.10539569e-05 2.76930511e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +2.72988779e-01 1.29092883e+00 1.33913146e-01 ! x y z +-5.30347096e+00 1.10519810e+00 4.11733597e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +5 1.10539569e-05 2.47028309e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-7.52767237e-01 -7.89903716e-01 4.41780109e-01 ! x y z +3.97724375e+00 -4.13307219e+00 -7.22805540e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +6 1.10539569e-05 1.32328966e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.20377608e-01 -7.87272103e-02 7.12067297e-02 ! x y z +1.02503121e+00 7.84536983e+00 -1.81237075e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +7 1.10539569e-05 9.44674456e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.98175547e-02 -4.40604282e-01 -6.26515066e-02 ! x y z +9.16286233e+00 1.29526313e+00 1.28292031e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +8 1.10539569e-05 2.10455183e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-7.37344424e-01 -6.59393259e-01 -3.39334297e-02 ! x y z +4.23617128e+00 -4.72560240e+00 1.90202709e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +9 1.10539569e-05 7.93127033e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-3.72282885e-01 1.00137160e-02 4.74495877e-02 ! x y z +-5.53222723e-02 -1.01517333e+01 1.56417032e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +10 1.10539569e-05 3.72890834e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-1.71148151e+00 4.03705975e-02 -4.41629664e-01 ! x y z +-5.30815676e-01 -4.44829638e+00 1.51595205e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +11 1.10539569e-05 1.24950838e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +2.86212864e-01 5.18828229e-01 -9.65137375e-03 ! x y z +-7.11468376e+00 3.99045778e+00 4.08951506e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +12 1.10539569e-05 1.29201140e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.01579717e-01 -1.24985784e-01 -6.68579475e-02 ! x y z +1.03137581e+00 6.97294287e+00 -3.70526296e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +13 1.10539569e-05 8.45210453e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +1.66504352e-01 3.65136786e-01 -2.37270588e-02 ! x y z +-9.01075623e+00 4.10307061e+00 -1.73991242e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +14 1.10539569e-05 1.80973111e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-1.00013418e-01 8.46049108e-01 1.29409189e-01 ! x y z +-6.69397403e+00 -6.88216193e-01 -6.43089317e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +15 1.10539569e-05 6.77162299e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-6.64074759e-02 -2.85943101e-01 -1.33132689e-01 ! x y z +1.04794195e+01 -3.18219029e+00 1.50287735e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +16 1.10539569e-05 2.22462802e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.93683497e-01 -7.97060245e-01 -1.56701341e-03 ! x y z +4.27957357e+00 3.72233196e+00 -2.27779518e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +17 1.10539569e-05 9.07412459e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-4.30243754e-01 3.92163409e-02 1.61581635e-02 ! x y z +-8.96241375e-01 -9.13377010e+00 -2.60722121e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +18 1.10539569e-06 2.16228637e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.49171166e-01 9.89231336e-01 9.47431817e-02 ! x y z +-5.97909060e+00 -1.61462871e+00 5.17955232e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +19 1.10539569e-06 2.44552162e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.13055691e+00 -2.73349719e-01 -8.64446048e-04 ! x y z +1.35697138e+00 5.66139385e+00 -8.67279260e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +20 1.10539569e-06 2.69931846e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.95952391e-01 8.54202216e-01 5.12437562e-01 ! x y z +-4.18257122e+00 -3.66903213e+00 -4.16936339e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +21 1.10539569e-06 3.64709598e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.50222087e+00 2.48717046e-01 -8.19081229e-01 ! x y z +-8.04975551e-01 -4.71387035e+00 7.84362176e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +22 1.10539569e-06 1.17536449e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.44682948e-01 -4.96503483e-01 -8.53414160e-02 ! x y z +7.40695872e+00 -3.28819700e+00 -2.14066023e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +23 1.10539569e-06 1.50460742e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.36805798e-01 -5.86582522e-01 3.17351611e-01 ! x y z +6.83507157e+00 3.05184627e+00 5.35881505e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +24 1.10539569e-06 2.39048166e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.80090550e-01 1.00147849e+00 -3.41420172e-01 ! x y z +-5.59868356e+00 -1.78046309e+00 9.70115472e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +25 1.10539569e-06 2.01027356e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.39485525e-01 6.02196012e-01 2.65945142e-02 ! x y z +-4.01389113e+00 -4.93502846e+00 -9.72482631e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +26 1.10539569e-06 3.44715330e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.30456826e-01 1.57570303e+00 -1.09595941e-01 ! x y z +-4.64706737e+00 -1.19846831e+00 1.04119454e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +27 1.10539569e-06 1.76967616e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.35819630e-01 -4.18940068e-01 -5.26182368e-02 ! x y z +3.13485099e+00 -5.73938205e+00 1.82527292e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +28 1.10539569e-06 4.06342312e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.54229262e-01 -1.76044238e+00 -1.80128626e-01 ! x y z +4.18274269e+00 -1.75246993e+00 -1.48893698e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +29 1.10539569e-06 6.51392241e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.97001957e-02 -2.83866631e-01 1.02094271e-01 ! x y z +1.06859367e+01 -3.16734146e+00 -1.78495005e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +30 1.10539569e-06 1.50723858e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.50547968e-01 5.85483214e-01 -2.02242303e-01 ! x y z +-6.51912702e+00 -3.31902976e+00 1.50673282e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +31 1.10539569e-06 9.91191586e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.34148347e-02 -4.67706829e-01 -4.50777179e-04 ! x y z +9.07741521e+00 1.03526094e+00 6.27189957e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +32 1.10539569e-06 1.27434773e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.76081124e-01 -1.72561939e-01 2.32546498e-02 ! x y z +2.26640367e+00 -7.48739107e+00 2.18424337e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +33 1.10539569e-06 1.88899665e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.21441400e-01 8.67808697e-01 6.09525334e-02 ! x y z +-6.38752841e+00 1.69289574e+00 -5.34224727e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +34 1.10539569e-06 2.51153352e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.27618072e-01 -9.85796209e-01 -2.48455975e-01 ! x y z +4.57388053e+00 3.25533389e+00 -1.21335726e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +35 1.10539569e-06 1.31898109e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.04370616e-01 5.13132374e-01 1.83051491e-01 ! x y z +-6.94545994e+00 3.58830246e+00 1.54416575e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +36 1.10539569e-06 1.31747151e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.72209409e-01 5.58609144e-01 -5.24341572e-02 ! x y z +-7.11229047e+00 -3.50089370e+00 -8.23500441e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +37 1.10539569e-06 8.04475879e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.84218244e-01 3.32444349e-01 -3.37468460e-02 ! x y z +-8.87199586e+00 4.71912663e+00 -1.61815818e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +38 1.10539569e-06 8.53415964e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.71574947e-01 2.99863851e-01 2.77485703e-02 ! x y z +-7.27373701e+00 6.59527467e+00 -9.50013137e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +39 1.10539569e-06 1.54874159e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.42177998e-01 4.64346195e-01 -1.77247174e-01 ! x y z +-4.32593022e+00 -5.71371010e+00 -1.52200642e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +40 1.10539569e-06 1.11811225e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.37513378e-01 4.78960335e-01 -4.18799485e-02 ! x y z +-7.64314149e+00 3.80464264e+00 -4.40507044e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +41 1.10539569e-06 6.46344589e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.17502253e-01 2.74368057e-01 6.52591009e-02 ! x y z +-1.04985621e+01 -4.38785797e+00 -5.95356835e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +42 1.10539569e-06 3.14895117e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.08577487e+00 -1.03445606e+00 -1.55590020e-01 ! x y z +3.53014787e+00 3.59960362e+00 7.43100049e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +43 1.10539569e-06 3.30212225e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.85350014e-01 -1.34034680e+00 7.46972274e-01 ! x y z +4.81219105e+00 1.19508883e+00 -3.85665415e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +44 1.10539569e-06 7.23534141e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.13136821e-02 3.42286865e-01 -3.05898632e-02 ! x y z +-1.01368906e+01 -6.23201390e-01 -3.40648593e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +45 1.10539569e-06 2.39770005e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.04671093e+00 1.11212978e-01 -4.33163084e-01 ! x y z +-3.60007968e-01 -5.84725364e+00 -6.15822401e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +46 1.10539569e-06 3.11101805e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.28031558e+00 6.71820187e-01 3.13521220e-01 ! x y z +-2.10656104e+00 -4.54924436e+00 1.23122282e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +47 1.10539569e-06 9.97006532e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.03695384e-01 -3.60967985e-01 5.51306924e-02 ! x y z +6.85056674e+00 -5.91778788e+00 -9.60485047e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +48 1.10539569e-06 7.74544738e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.54176241e-01 6.02822917e-02 7.63020359e-02 ! x y z +-1.61729423e+00 -1.02381855e+01 4.69477979e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +49 1.10539569e-06 2.60533414e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.70647812e-01 -1.14442870e+00 -2.16624680e-04 ! x y z +5.22089775e+00 2.15396431e+00 6.97355593e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +50 1.10539569e-06 1.73280111e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.47538292e-02 -7.76819569e-01 -2.57912415e-01 ! x y z +6.69507282e+00 -1.17185683e+00 1.33518772e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +51 1.10539569e-06 3.17790663e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.65614001e-01 -1.36216721e+00 3.04841771e-02 ! x y z +4.55635977e+00 2.26593667e+00 1.30678452e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +52 1.10539569e-06 7.23862851e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.31702394e-01 -9.11930665e-02 2.41707377e-02 ! x y z +2.70205684e+00 -1.02322038e+01 -1.45694907e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +53 1.10539569e-06 4.09271910e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.43010053e-01 1.89928569e+00 1.63915030e-01 ! x y z +-4.44471826e+00 8.12964188e-01 1.91799605e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +54 1.10539569e-06 9.00526678e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.76279203e-01 3.69578224e-01 -1.37212342e-01 ! x y z +-8.58447413e+00 -3.12914501e+00 2.65447958e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +55 1.10539569e-06 1.66875324e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.45616929e-01 -2.47231702e-01 -1.19477629e-01 ! x y z +2.19161600e+00 -6.68909269e+00 -1.07794911e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +56 1.10539569e-06 2.61296171e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.21771549e+00 8.22263396e-02 -2.28049506e-01 ! x y z +-7.77955309e-01 -5.04420236e+00 2.39397114e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +57 1.10539569e-06 7.84583650e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.35031870e-01 -1.49752491e-01 7.21876006e-02 ! x y z +3.53139295e+00 -9.14063147e+00 -3.02347388e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +58 1.10539569e-06 8.15353611e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.16127731e-01 2.19457827e-01 -2.86640647e-02 ! x y z +-5.75118301e+00 -8.30744977e+00 -7.52286441e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +59 1.10539569e-06 9.46502491e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.14567897e-01 -1.70158031e-01 -2.06385746e-02 ! x y z +3.52462324e+00 8.64965730e+00 9.71699819e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +60 1.10539569e-06 1.06023870e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.68326520e-01 3.43200640e-01 -3.18358134e-03 ! x y z +-5.99833054e+00 6.50593164e+00 -3.52076060e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +61 1.10539569e-06 2.85747597e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.22743812e+00 4.54544048e-01 -3.53405167e-01 ! x y z +-2.13063294e+00 4.75488906e+00 -1.41396521e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +62 1.10539569e-06 1.11156710e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.90230366e-01 8.52524184e-02 1.64539092e-01 ! x y z +-1.33697442e+00 -8.59490437e+00 4.64492986e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +63 1.10539569e-06 7.47979433e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.26924952e-01 1.39246422e-01 -4.37240131e-02 ! x y z +-4.02802590e+00 9.60769401e+00 9.33600395e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +64 1.10539569e-06 2.36256862e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.11787086e+00 1.27230662e-01 -2.97194116e-02 ! x y z +-6.51392127e-01 -5.87014579e+00 -2.95793081e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +65 1.10539569e-06 1.36083964e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.68540327e-01 1.32853908e-01 -2.74248856e-01 ! x y z +-2.28636154e+00 -7.40032660e+00 1.15230861e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +66 1.10539569e-06 2.12644561e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-9.02814420e-01 4.51623081e-01 3.31973730e-02 ! x y z +-2.80126142e+00 -5.58560982e+00 -1.92746316e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +67 1.10539569e-06 8.14605985e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.85382182e-01 1.43901530e-03 1.15478430e-02 ! x y z +-2.59844799e-02 -1.01271155e+01 4.30703613e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +68 1.10539569e-06 9.27538405e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.61232954e-01 2.20844429e-01 -1.22567174e-01 ! x y z +-4.75444340e+00 8.15211658e+00 6.72406103e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +69 1.10539569e-06 1.70813096e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +7.62285263e-01 2.77535790e-01 7.50460161e-03 ! x y z +-2.38561781e+00 6.55492046e+00 -5.72763423e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +70 1.10539569e-06 2.71135229e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.33966979e-01 1.05145872e+00 -3.79026357e-01 ! x y z +-4.80055687e+00 2.37239115e+00 -1.45444659e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +71 1.10539569e-06 9.29779721e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.09086355e-01 -4.25927399e-01 -5.92609052e-02 ! x y z +8.83426715e+00 -1.97333711e+00 -2.57514440e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +72 1.10539569e-06 2.48562722e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.52243615e-01 -1.03472811e+00 -9.20470885e-03 ! x y z +5.14745205e+00 -2.71638935e+00 1.85243774e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +73 1.10539569e-06 1.57390173e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.37564413e-01 -7.02794064e-01 -1.30853933e-01 ! x y z +6.84384400e+00 -2.13579218e+00 -7.74318491e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +74 1.10539569e-06 1.33469063e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.24670248e-01 -3.60722160e-01 -5.89339466e-03 ! x y z +4.43972950e+00 6.48102200e+00 9.11331663e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +75 1.10539569e-06 6.47192566e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.61797829e-02 -3.04486498e-01 4.89626567e-03 ! x y z +1.10606484e+01 2.04593839e+00 -1.21551157e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +76 1.10539569e-06 1.47162297e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.43061104e-01 -6.84452631e-01 -2.55174546e-02 ! x y z +7.11009943e+00 1.43236802e+00 1.93726736e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +77 1.10539569e-06 8.63668982e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.85992031e-02 -4.08122100e-01 2.78731319e-02 ! x y z +9.76823729e+00 -6.46270469e-01 6.80833278e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +78 1.10539569e-06 2.36804818e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.91157068e-01 -7.91937234e-01 3.82540684e-01 ! x y z +4.02153165e+00 4.19828096e+00 1.29880450e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +79 1.10539569e-06 9.14394348e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.51098607e-01 2.59366529e-01 -1.55386862e-02 ! x y z +-5.06657998e+00 -7.18889701e+00 -3.53716670e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +80 1.10539569e-06 1.26910472e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.23152493e-01 3.88117899e-01 -2.00809903e-01 ! x y z +-4.53578552e+00 6.18184215e+00 2.34837457e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +81 1.10539569e-06 6.33003056e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.28512111e-01 2.64697808e-01 -7.13482769e-02 ! x y z +-9.33728759e+00 5.41684777e+00 3.59675928e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +82 1.10539569e-06 2.22271119e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.71802215e-01 -9.92089651e-01 5.32987899e-02 ! x y z +5.68468560e+00 2.17000210e+00 -9.37982171e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +83 1.10539569e-06 1.74051421e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +7.86568140e-01 2.32350855e-01 6.38082505e-02 ! x y z +-1.88303694e+00 6.63245612e+00 -8.28072975e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +84 1.10539569e-06 9.31517858e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.72567042e-01 -2.35531924e-01 4.96465701e-02 ! x y z +4.70939503e+00 -7.96544948e+00 -1.77358479e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +85 1.10539569e-06 2.46953975e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.20593248e-01 1.08358397e+00 3.52755169e-01 ! x y z +-5.53042972e+00 1.53963953e+00 2.87126462e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +86 1.10539569e-06 1.50876657e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.56037714e-01 -4.53117788e-01 -4.40686710e-02 ! x y z +4.32334289e+00 -5.53881012e+00 2.32535969e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +87 1.10539569e-06 6.79814743e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.71412212e-01 -2.72520775e-01 2.76595629e-02 ! x y z +9.35632724e+00 -5.87401170e+00 1.71700376e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +88 1.10539569e-06 1.37728604e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.52644996e-01 4.52246640e-01 1.36128602e-01 ! x y z +-5.47133577e+00 5.50145396e+00 -3.76988545e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +89 1.10539569e-06 1.75150424e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.17549909e-01 -7.69243942e-01 2.30477642e-01 ! x y z +6.02966869e+00 -2.44216734e+00 -2.26348882e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +90 1.10539569e-06 1.82243275e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.53300892e-01 1.05420241e-01 6.10357233e-03 ! x y z +-7.23180710e-01 6.14709501e+00 -2.81238589e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +91 1.10539569e-06 1.04051592e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.76117727e-02 -4.92462500e-01 -7.89640418e-03 ! x y z +8.70186553e+00 7.97359443e-01 -1.82242405e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +92 1.10539569e-06 9.04059360e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.13222540e-01 -3.73863988e-01 -4.13231963e-04 ! x y z +8.30795424e+00 -4.74104957e+00 -9.20828866e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +93 1.10539569e-06 2.08546876e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.00253331e-02 9.90845414e-01 3.30248466e-02 ! x y z +-6.29625004e+00 -2.72856242e-01 4.06580221e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +94 1.10539569e-06 6.61548636e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.95782619e-01 1.07222597e-01 -2.12686228e-02 ! x y z +-3.48575733e+00 1.03058724e+01 2.52560893e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +95 1.10539569e-06 1.26032554e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.86024380e-01 -5.25659190e-01 -1.93449627e-02 ! x y z +6.91385395e+00 -3.87796179e+00 1.75371157e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +96 1.10539569e-06 2.28076998e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.65990862e-01 6.01183979e-01 2.43471322e-01 ! x y z +-3.24575804e+00 5.02670056e+00 -8.53001170e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +97 1.10539569e-06 7.05221824e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.39637261e-01 -3.01107928e-01 -4.31558543e-02 ! x y z +9.00360957e+00 -4.71459755e+00 3.83918395e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +98 1.10539569e-06 6.39269462e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.44254383e-01 -1.79341582e-01 -1.04974267e-03 ! x y z +6.75937463e+00 9.18023255e+00 7.52738258e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +99 1.10539569e-06 1.79085174e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.13843608e-01 1.99633270e-01 -1.80207407e-01 ! x y z +-1.29939496e+00 -6.46953788e+00 -1.46932255e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +100 1.10539569e-06 1.32458326e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.32126102e-01 -2.47196136e-02 -2.42353871e-02 ! x y z +2.92190575e-01 -7.70428120e+00 1.58876111e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +101 1.10539569e-06 1.52095833e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.91088291e-01 -1.16411821e-01 -1.71283865e-01 ! x y z +1.53252063e+00 -7.10600791e+00 -1.39483264e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +102 1.10539569e-06 1.58389732e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.73673516e-01 -4.82303150e-01 -6.92080251e-02 ! x y z +4.56925372e+00 -5.55908510e+00 8.00568861e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +103 1.10539569e-06 6.78999949e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.70326377e-01 1.68246296e-01 4.59682324e-02 ! x y z +-6.01982148e+00 9.02506097e+00 2.30638849e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +104 1.10539569e-06 1.01600407e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.27129315e-01 -1.60689947e-01 1.56748833e-01 ! x y z +2.47314908e+00 -8.47972366e+00 -1.94836513e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +105 1.10539569e-06 2.39114531e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +9.42557812e-01 5.29448416e-01 3.49342967e-01 ! x y z +-3.26429676e+00 4.46194553e+00 2.04186289e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +106 1.10539569e-06 7.00793819e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.89445458e-01 1.51184189e-01 6.04053839e-02 ! x y z +-4.58420182e+00 9.69365003e+00 -2.04005101e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +107 1.10539569e-06 1.90283015e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.56335053e-01 -2.54662167e-01 1.41334047e-01 ! x y z +2.10228445e+00 5.79525323e+00 -2.36721595e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +108 1.10539569e-06 2.96231967e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.36313774e+00 -1.39484993e-03 -3.33851852e-01 ! x y z +-1.80152731e-01 -5.22233557e+00 9.45811316e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +109 1.10539569e-06 1.11806853e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.46999479e-01 4.69183085e-01 1.48273567e-02 ! x y z +-7.62737255e+00 4.03088377e+00 -2.87208744e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +110 1.10539569e-06 3.12227105e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.92685552e-01 -1.19778080e+00 7.96108948e-02 ! x y z +4.05065890e+00 2.97803027e+00 -9.38454309e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +111 1.10539569e-06 2.24585100e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.16543398e-01 6.44376993e-01 2.28097541e-01 ! x y z +-3.89719354e+00 -4.47060943e+00 -1.39962365e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +112 1.10539569e-06 3.76823843e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.19421123e+00 1.32084250e+00 -7.72400022e-02 ! x y z +-3.08133686e+00 2.88161171e+00 2.10766368e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +113 1.10539569e-06 1.85829977e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.64160987e-01 6.79541760e-01 1.90515744e-02 ! x y z +-5.13431676e+00 4.27566051e+00 6.03635853e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +114 1.10539569e-06 3.49744654e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.56537224e+00 5.82910904e-01 -8.86453767e-02 ! x y z +-1.64314439e+00 4.51635617e+00 5.81379936e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +115 1.10539569e-06 2.44627752e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.21489220e-01 -9.80146980e-01 3.22082629e-01 ! x y z +4.69945017e+00 -3.07448039e+00 -1.66849603e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +116 1.10539569e-06 1.48946902e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.60792560e-01 -6.87644911e-01 3.66413788e-02 ! x y z +6.37303278e+00 -1.67465930e+00 -3.52540571e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +117 1.10539569e-06 9.48472009e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.15102464e-01 -1.75149973e-01 -2.85549434e-02 ! x y z +3.17699950e+00 8.02980191e+00 -3.56193766e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +118 1.10539569e-06 1.46132866e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.45225828e-01 5.98258841e-01 -7.45003268e-02 ! x y z +-6.51260143e+00 -3.60690443e+00 1.16008799e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +119 1.10539569e-06 9.12611171e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.84725575e-01 -3.85457639e-01 -5.09774260e-02 ! x y z +8.51718303e+00 -4.26677573e+00 1.26149786e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +120 1.10539569e-06 1.22021916e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.44841297e-01 -5.39901332e-01 1.54755735e-01 ! x y z +7.76971331e+00 1.39084378e+00 -2.38817543e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +121 1.10539569e-06 6.51657309e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.95970426e-02 -3.07995454e-01 -2.51102574e-02 ! x y z +1.12576282e+01 -6.78821641e-01 -4.95031697e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +122 1.10539569e-06 8.35698784e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.58295595e-01 -4.07805583e-02 -1.62744429e-01 ! x y z +5.65842623e-02 9.77741717e+00 -2.12236760e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +123 1.10539569e-06 1.08014635e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.57112225e-01 3.26038545e-01 -1.68902691e-01 ! x y z +-5.23071639e+00 -6.75806936e+00 -2.04006316e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +124 1.10539569e-06 1.02550770e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.30953626e-01 -1.21419747e-01 -1.92524368e-01 ! x y z +2.35863321e+00 -8.68071542e+00 1.79033554e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +125 1.10539569e-06 6.95814419e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.10223043e-02 3.29698672e-01 -2.33216443e-02 ! x y z +-1.05036416e+01 -1.18257626e-01 2.99156731e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +126 1.10539569e-06 1.21782856e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.37540070e-01 -4.68051579e-01 3.12017441e-02 ! x y z +6.67938807e+00 -4.87057933e+00 -1.80758676e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +127 1.10539569e-06 1.27648491e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.70107622e-01 3.81394049e-01 2.94976958e-02 ! x y z +-5.04123374e+00 6.27657958e+00 5.88259014e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +128 1.10539569e-06 1.62877006e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.55138385e-01 -6.23311530e-01 5.02376028e-02 ! x y z +5.28132760e+00 -4.06425983e+00 -2.57712837e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +129 1.10539569e-06 2.66986578e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.13493035e-02 -1.22710114e+00 -3.17757228e-01 ! x y z +5.28592709e+00 -7.54459447e-01 1.59593511e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +130 1.10539569e-06 6.56076786e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.44014453e-01 -1.91481938e-01 3.64286209e-02 ! x y z +6.89410930e+00 -7.97798070e+00 3.86568598e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +131 1.10539569e-06 1.47791991e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.58860487e-02 6.98105661e-01 -6.05263656e-02 ! x y z +-7.39418369e+00 -8.88083586e-01 3.68318815e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +132 1.10539569e-06 1.18316891e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.30463297e-01 5.39537186e-01 8.94135251e-02 ! x y z +-7.91933257e+00 2.19758719e+00 -1.62232353e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +133 1.10539569e-06 1.53219837e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.10956489e-01 -7.21494396e-01 5.19355079e-02 ! x y z +7.24010486e+00 -1.09301700e+00 -1.60852706e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +134 1.10539569e-06 6.43300411e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.88041757e-02 -3.04722867e-01 -3.14812865e-02 ! x y z +1.07993595e+01 -1.40429215e+00 2.96552456e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +135 1.10539569e-06 8.51935749e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.86591612e-01 -4.29771812e-02 -1.05863039e-01 ! x y z +1.97234762e+00 -9.03918811e+00 -3.56317371e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +136 1.10539569e-06 7.63507559e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.88157405e-01 2.88666278e-01 1.10921677e-01 ! x y z +-8.87614786e+00 -5.45415368e+00 -8.46055713e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +137 1.10539569e-06 8.42313899e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.55471151e-01 3.65848047e-01 -8.97493453e-03 ! x y z +-9.20044180e+00 -3.87411273e+00 -4.84829815e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +138 1.10539569e-06 6.72600246e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.87375637e-01 -1.36801833e-01 -1.72137474e-02 ! x y z +4.76338219e+00 1.00717170e+01 2.97994928e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +139 1.10539569e-06 1.02461717e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.70166209e-01 -4.01549931e-01 6.36091815e-02 ! x y z +7.45419134e+00 4.96228856e+00 -6.59900898e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +140 1.10539569e-06 6.87840289e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.61307437e-01 -2.72164290e-01 8.71883296e-02 ! x y z +8.60206869e+00 6.06917549e+00 2.98663214e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +141 1.10539569e-06 3.92140957e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.78539217e+00 5.34215902e-01 -1.20626554e-01 ! x y z +-1.35880150e+00 -4.33539223e+00 6.63369806e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +142 1.10539569e-06 2.70800787e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.31436788e-01 5.48162971e-01 1.64734173e-02 ! x y z +-7.51357402e+00 -3.16907615e+00 -1.32982328e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +143 1.10539569e-06 2.04544912e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.94940717e-01 -3.37625386e-01 -4.75480276e-02 ! x y z +6.93658760e+00 6.20070236e+00 -1.01079366e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +144 1.10539569e-06 6.37587428e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +9.71735603e-01 -9.61566886e-01 3.24968572e-01 ! x y z +3.81159593e+00 3.54522020e+00 -1.00291449e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +145 1.10539569e-06 2.08933536e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.75759753e-01 4.21380582e-01 6.28003104e-02 ! x y z +-8.52008102e+00 3.47130251e+00 9.83757295e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +146 1.10539569e-06 1.50397186e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.39588743e-02 -3.30180335e-01 -1.05230287e-02 ! x y z +1.07866352e+01 -4.97967898e-01 1.76757426e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +147 1.10539569e-06 3.38562140e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.29920730e-01 5.89061070e-02 -1.20920053e-01 ! x y z +-7.74235710e-01 -7.10977778e+00 1.52865443e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +148 1.10539569e-06 2.32741739e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.96020721e-01 7.20447253e-02 -1.09717020e-01 ! x y z +-2.02019828e+00 7.69560863e+00 -3.69254498e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +149 1.10539569e-06 2.12332437e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.28791847e-01 -1.88187724e-01 1.60873382e-02 ! x y z +3.57426531e+00 -8.26404401e+00 -1.76157927e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +150 1.10539569e-06 1.76485902e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.55182279e-01 1.52620292e-01 -6.22833990e-02 ! x y z +-3.88412930e+00 -9.19453465e+00 -7.37459129e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +151 1.10539569e-06 1.57284431e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.47785192e-01 9.69744008e-03 -5.97342340e-03 ! x y z +-3.78784685e-01 -1.06242178e+01 1.68422812e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +152 1.10539569e-06 5.30159037e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.29951992e-01 1.09612807e+00 -3.27460884e-01 ! x y z +-5.22124087e+00 1.65375984e+00 1.97215321e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +153 1.10539569e-06 2.55861101e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.21007349e-02 5.32952897e-01 -1.70855331e-01 ! x y z +-8.35827288e+00 -7.84724150e-01 2.96312578e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +154 1.10539569e-06 7.10383113e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.72959788e-01 -1.44639128e+00 -1.28014693e-01 ! x y z +4.55403004e+00 -1.72466270e+00 -1.28754288e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +155 1.10539569e-06 1.36743334e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.14648375e-01 2.10911522e-01 -9.00355256e-03 ! x y z +-7.51711446e+00 7.37660713e+00 -4.51391831e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +156 1.10539569e-06 2.65261394e-02 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.50228741e-02 3.86702728e-01 2.53976723e-02 ! x y z +-9.89354846e+00 1.39418207e+00 5.42336207e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +157 1.10539569e-06 4.92529404e-02 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.00902512e+00 -1.88090001e-01 3.31281617e-01 ! x y z +1.00573195e+00 5.95735671e+00 3.15059243e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot diff --git a/examples/symba_chambers_2013/sun_MsunAUYR.in b/examples/symba_chambers_2013/sun_MsunAUYR.in new file mode 100644 index 000000000..ceb04eea1 --- /dev/null +++ b/examples/symba_chambers_2013/sun_MsunAUYR.in @@ -0,0 +1,7 @@ +0 ! id +39.476926408897626 ! G*Mass +0.004650467260962157 ! Radius +0.0 !4.7535806948127355e-12 ! J2 +0.0 !-2.2473967953572827e-18 ! J4 +0.0 0.0 0.07 ! Principle axes moments of inertia +11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) diff --git a/examples/symba_chambers_2013/tp.in b/examples/symba_chambers_2013/tp.in new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/examples/symba_chambers_2013/tp.in @@ -0,0 +1 @@ +0 From 1727448e8ab288c890c579e0550a87fae87f43a9 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 18 Aug 2021 09:20:13 -0400 Subject: [PATCH 098/315] Added heap arrays to production flags in ifort to prevent segfaulting in parallel code in some situations --- Makefile.Defines | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.Defines b/Makefile.Defines index 820ad6d7d..4a283b655 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -66,7 +66,7 @@ GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries #FFLAGS = $(IDEBUG) $(HEAPARR) -FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(SIMDVEC) $(PAR) +FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(SIMDVEC) $(PAR) $(HEAPARR) FORTRAN = ifort #AR = xiar From 38da4b6fe1d3b012781c1ae2cbbdf792d3bb2488 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 18 Aug 2021 09:26:33 -0400 Subject: [PATCH 099/315] Updated example script to correctly plot Chambers 2013 example. Updated Python io to handle situation in which user does not supply CHK_RMIN or CHK_QMIN --- .../symba_chambers_2013/aescattermovie.py | 118 ++++++++++++++++++ examples/symba_chambers_2013/param.in | 2 +- python/swiftest/swiftest/simulation_class.py | 4 +- 3 files changed, 121 insertions(+), 3 deletions(-) create mode 100755 examples/symba_chambers_2013/aescattermovie.py diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py new file mode 100755 index 000000000..195720404 --- /dev/null +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +import swiftest +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import animation +import matplotlib.colors as mcolors + +radscale = 50 +AU = 1.0 +xmin = 0.0 +xmax = 2.00 +ymin = 1e-4 +ymax = 1.0 + +class AnimatedScatter(object): + """An animated scatter plot using matplotlib.animations.FuncAnimation.""" + def __init__(self, ds, param): + + frame = 0 + nframes = ds['time'].size + self.ds = ds + self.param = param + self.ds['radmarker'] = self.ds['Radius'].fillna(0) + self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + + self.clist = {'Initial conditions' : 'xkcd:faded blue', + 'Disruption' : 'xkcd:marigold', + 'Supercatastrophic' : 'xkcd:shocking pink', + 'Hit and run fragment' : 'xkcd:baby poop green'} + + self.stream = self.data_stream(frame) + # Setup the figure and axes... + fig = plt.figure(figsize=(8,4.5), dpi=300) + plt.tight_layout(pad=0) + # set up the figure + self.ax = plt.Axes(fig, [0.1, 0.15, 0.8, 0.75]) + self.ax.set_xlim(xmin, xmax) + self.ax.set_ylim(ymin, ymax) + fig.add_axes(self.ax) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + print('Finished writing aescattter.mp4') + + def scatters(self, pl, radmarker, origin): + scat = [] + for key, value in self.clist.items(): + idx = origin == value + s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) + scat.append(s) + return scat + + def setup_plot(self): + # First frame + """Initial drawing of the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(0)) + + # set up the figure + self.ax.margins(x=10, y=1) + self.ax.set_xlabel("Semi Major Axis (AU)", fontsize='16', labelpad=1) + self.ax.set_ylabel("Eccentricity", fontsize='16', labelpad=1) + self.ax.set_yscale("log") + + self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, + ha="center") + + self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + slist = self.scatters(pl, radmarker, origin) + self.s0 = slist[0] + self.s1 = slist[1] + self.s2 = slist[2] + self.s3 = slist[3] + self.ax.legend(loc='upper right') + return self.s0, self.s1, self.s2, self.s3, self.title + + def data_stream(self, frame=0): + while True: + d = self.ds.isel(time=frame) + d = d.where(np.invert(np.isnan(d['a'])), drop=True) + Radius = d['radmarker'].values + GMass = d['GMass'].values + a = d['a'].values / AU + e = d['e'].values + name = d['id'].values + npl = d.id.count().values + radmarker = d['radmarker'] + origin = d['origin_type'] + + t = self.ds.coords['time'].values[frame] + + frame += 1 + yield t, name, GMass, Radius, npl, np.c_[a, e], radmarker, origin + + def update(self,frame): + """Update the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + + self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + + # We need to return the updated artist for FuncAnimation to draw.. + # Note that it expects a sequence of artists, thus the trailing comma. + s = [self.s0, self.s1, self.s2, self.s3] + for i, (key, value) in enumerate(self.clist.items()): + idx = origin == key + s[i].set_sizes(radmarker[idx]) + s[i].set_offsets(pl[idx,:]) + s[i].set_facecolor(value) + + self.s0 = s[0] + self.s1 = s[1] + self.s2 = s[2] + self.s3 = s[3] + return self.s0, self.s1, self.s2, self.s3, self.title, + +sim = swiftest.Simulation(param_file="param.in") +sim.bin2xr() +print('Making animation') +anim = AnimatedScatter(sim.ds,sim.param) +print('Animation finished') diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 4053ae395..a266caec6 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -13,7 +13,7 @@ ISTEP_DUMP 6250 ! system dump cadence BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 ! double precision real output -OUT_FORM XV ! osculating element output +OUT_FORM EL ! osculating element output OUT_STAT REPLACE CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index fc5075ab9..6b737d076 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -28,8 +28,8 @@ def __init__(self, codename="Swiftest", param_file=""): 'OUT_STAT': "REPLACE", 'CHK_RMAX': "1000.0", 'CHK_EJECT': "1000.0", - 'CHK_RMIN': constants.RSun / constants.AU2M, - 'CHK_QMIN': constants.RSun / constants.AU2M, + 'CHK_RMIN': f"{constants.RSun / constants.AU2M}", + 'CHK_QMIN': f"{constants.RSun / constants.AU2M}", 'CHK_QMIN_COORD': "HELIO", 'CHK_QMIN_RANGE': f"{constants.RSun / constants.AU2M} 1000.0", 'ENC_OUT': "enc.dat", From e23b63c0668b255ba604f6d24ed29817d4c2d368 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 09:31:12 -0400 Subject: [PATCH 100/315] Removed ENC_OUT from param.in to prevent the massive file from being generated --- examples/symba_chambers_2013/param.in | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index a266caec6..52b09a882 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -17,7 +17,6 @@ OUT_FORM EL ! osculating element output OUT_STAT REPLACE CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of -ENC_OUT enc.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file From 5e6a7e21d9dd390b411a620d27de8e40326b225a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 09:44:24 -0400 Subject: [PATCH 101/315] Added Clement et al. 2018 example --- examples/symba_clement_2018/aescattermovie.py | 118 + examples/symba_clement_2018/param.in | 31 + .../symba_clement_2018/pl_clement_2018.in | 6631 +++++++++++++++++ examples/symba_clement_2018/sun_MsunAUYR.in | 7 + examples/symba_clement_2018/tp.in | 1 + 5 files changed, 6788 insertions(+) create mode 100755 examples/symba_clement_2018/aescattermovie.py create mode 100644 examples/symba_clement_2018/param.in create mode 100644 examples/symba_clement_2018/pl_clement_2018.in create mode 100644 examples/symba_clement_2018/sun_MsunAUYR.in create mode 100644 examples/symba_clement_2018/tp.in diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py new file mode 100755 index 000000000..195720404 --- /dev/null +++ b/examples/symba_clement_2018/aescattermovie.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +import swiftest +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import animation +import matplotlib.colors as mcolors + +radscale = 50 +AU = 1.0 +xmin = 0.0 +xmax = 2.00 +ymin = 1e-4 +ymax = 1.0 + +class AnimatedScatter(object): + """An animated scatter plot using matplotlib.animations.FuncAnimation.""" + def __init__(self, ds, param): + + frame = 0 + nframes = ds['time'].size + self.ds = ds + self.param = param + self.ds['radmarker'] = self.ds['Radius'].fillna(0) + self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + + self.clist = {'Initial conditions' : 'xkcd:faded blue', + 'Disruption' : 'xkcd:marigold', + 'Supercatastrophic' : 'xkcd:shocking pink', + 'Hit and run fragment' : 'xkcd:baby poop green'} + + self.stream = self.data_stream(frame) + # Setup the figure and axes... + fig = plt.figure(figsize=(8,4.5), dpi=300) + plt.tight_layout(pad=0) + # set up the figure + self.ax = plt.Axes(fig, [0.1, 0.15, 0.8, 0.75]) + self.ax.set_xlim(xmin, xmax) + self.ax.set_ylim(ymin, ymax) + fig.add_axes(self.ax) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + print('Finished writing aescattter.mp4') + + def scatters(self, pl, radmarker, origin): + scat = [] + for key, value in self.clist.items(): + idx = origin == value + s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) + scat.append(s) + return scat + + def setup_plot(self): + # First frame + """Initial drawing of the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(0)) + + # set up the figure + self.ax.margins(x=10, y=1) + self.ax.set_xlabel("Semi Major Axis (AU)", fontsize='16', labelpad=1) + self.ax.set_ylabel("Eccentricity", fontsize='16', labelpad=1) + self.ax.set_yscale("log") + + self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, + ha="center") + + self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + slist = self.scatters(pl, radmarker, origin) + self.s0 = slist[0] + self.s1 = slist[1] + self.s2 = slist[2] + self.s3 = slist[3] + self.ax.legend(loc='upper right') + return self.s0, self.s1, self.s2, self.s3, self.title + + def data_stream(self, frame=0): + while True: + d = self.ds.isel(time=frame) + d = d.where(np.invert(np.isnan(d['a'])), drop=True) + Radius = d['radmarker'].values + GMass = d['GMass'].values + a = d['a'].values / AU + e = d['e'].values + name = d['id'].values + npl = d.id.count().values + radmarker = d['radmarker'] + origin = d['origin_type'] + + t = self.ds.coords['time'].values[frame] + + frame += 1 + yield t, name, GMass, Radius, npl, np.c_[a, e], radmarker, origin + + def update(self,frame): + """Update the scatter plot.""" + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + + self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + + # We need to return the updated artist for FuncAnimation to draw.. + # Note that it expects a sequence of artists, thus the trailing comma. + s = [self.s0, self.s1, self.s2, self.s3] + for i, (key, value) in enumerate(self.clist.items()): + idx = origin == key + s[i].set_sizes(radmarker[idx]) + s[i].set_offsets(pl[idx,:]) + s[i].set_facecolor(value) + + self.s0 = s[0] + self.s1 = s[1] + self.s2 = s[2] + self.s3 = s[3] + return self.s0, self.s1, self.s2, self.s3, self.title, + +sim = swiftest.Simulation(param_file="param.in") +sim.bin2xr() +print('Making animation') +anim = AnimatedScatter(sim.ds,sim.param) +print('Animation finished') diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in new file mode 100644 index 000000000..f90f0f89e --- /dev/null +++ b/examples/symba_clement_2018/param.in @@ -0,0 +1,31 @@ +! +! Parameter file for Chambers 2013 in units of Msun, AU, year +! +T0 0.0e0 +TSTOP 1e8 ! simulation length in years +DT 0.016 ! stepsize in years +CB_IN sun_MsunAUYR.in +PL_IN pl_clement_2018.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 625 ! output cadence +ISTEP_DUMP 625 ! system dump cadence +BIN_OUT bin.dat +PARTICLE_OUT particle.dat +OUT_TYPE REAL8 ! double precision real output +OUT_FORM EL ! osculating element output +OUT_STAT REPLACE +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMAX 100000.0 ! discard outside of +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD no ! output all planets if anything discarded +RHILL_PRESENT yes ! Hill's sphere radii in input file +MU2KG 1.98847e30 ! (M_sun-> kg) +DU2M 1.495979e11 ! distance unit to meters (AU --> m) +TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) +GMTINY 1e-10 +ENERGY yes +ROTATION yes +FRAGMENTATION yes +DISCARD_OUT discard.out +SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_clement_2018/pl_clement_2018.in b/examples/symba_clement_2018/pl_clement_2018.in new file mode 100644 index 000000000..6531293ab --- /dev/null +++ b/examples/symba_clement_2018/pl_clement_2018.in @@ -0,0 +1,6631 @@ +1105 ! Solar System in unit system AU, M_sun, and years +2 3.76722155e-02 7.02179932e-03 ! ID / G*Mass / Rhill +4.67326079e-04 ! Radius +3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z +1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +3 1.12798314e-02 1.28358892e-02 ! ID / G*Mass / Rhill +3.89256801e-04 ! Radius +5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z +1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +4 1.72303742e-03 2.60453463e-02 ! ID / G*Mass / Rhill +1.69534465e-04 ! Radius +1.49686212e+01 1.28837160e+01 -1.46070677e-01 ! x y z +-9.47697181e-01 1.02187103e+00 1.60728490e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +5 2.03247359e-03 4.06127965e-02 ! ID / G*Mass / Rhill +1.64587872e-04 ! Radius +2.95271772e+01 -4.76916274e+00 -5.82292396e-01 ! x y z +1.75236191e-01 1.13864010e+00 -2.74871413e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +6 2.03247359e-03 4.75205933e-02 ! ID / G*Mass / Rhill +1.64587872e-04 ! Radius +-3.04519295e+01 -1.91596620e+01 7.41542471e-01 ! x y z +5.81398717e-01 -8.52969532e-01 -2.45385731e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +7 2.96336237e-06 2.55850733e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +5.66523499e-01 1.79402280e+00 8.44292253e-02 ! x y z +-4.34952567e+00 1.35145687e+00 4.82415849e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +8 2.96336237e-06 8.90172762e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.53317332e-01 -6.04769252e-01 -9.89530340e-04 ! x y z +7.15717041e+00 2.99720377e+00 3.97992456e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +9 2.96336237e-06 1.90886004e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-9.12608639e-03 -1.40324765e-01 5.97704925e-04 ! x y z +1.67116314e+01 -1.08132338e+00 5.00920339e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +10 2.96336237e-06 1.65160505e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +9.00038912e-02 7.97626220e-02 -1.72360158e-02 ! x y z +-1.19225579e+01 1.35352747e+01 1.96141716e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +11 2.96336237e-06 1.96750200e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-8.00576436e-02 1.43721132e+00 1.54373807e-01 ! x y z +-5.21664730e+00 -2.90853697e-01 -2.54928816e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +12 2.96336237e-06 1.98710528e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.30542022e-01 -6.36933948e-02 -1.68821146e-02 ! x y z +7.08252820e+00 1.48056049e+01 -9.26228367e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +13 2.96336237e-06 1.92492700e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.38243683e-01 -3.16784040e-02 -3.88816365e-03 ! x y z +3.70831361e+00 -1.62507913e+01 4.77490916e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +14 2.96336237e-06 3.10412339e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.91748448e-01 -1.23884060e-01 2.63776737e-03 ! x y z +7.14028861e+00 1.10520863e+01 -2.17262930e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +15 2.96336237e-06 3.37224346e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.67858115e-01 1.82806647e-01 9.78285009e-03 ! x y z +-9.27340968e+00 8.53816575e+00 -2.47211728e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +16 2.96336237e-06 1.71849500e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.18275974e-01 4.38920203e-02 -1.04285189e-02 ! x y z +-6.06667533e+00 -1.65601619e+01 -8.97959549e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +17 2.96336237e-06 1.72484792e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +5.47122549e-03 1.27171688e-01 2.49596331e-04 ! x y z +-1.75769160e+01 7.56278698e-01 -1.99936830e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +18 2.96336237e-06 4.58899065e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +7.65496900e-01 3.29356285e+00 1.16345951e-01 ! x y z +-3.30779398e+00 7.56368268e-01 3.79199886e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +19 2.96336237e-06 1.41237877e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.59492523e-02 -1.00641476e-01 -6.21175544e-03 ! x y z +1.88015679e+01 4.73245600e+00 1.72033971e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +20 2.96336237e-06 1.92187081e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.25618883e-02 -1.35936819e-01 2.07675392e-02 ! x y z +1.62343315e+01 -3.98353210e+00 -6.48830154e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +21 2.96336237e-06 2.78172727e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.81828060e-01 -8.79809539e-02 -3.39709708e-02 ! x y z +6.02134521e+00 -1.25111484e+01 1.03925770e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +22 2.96336237e-06 1.09419386e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-7.62412793e-01 -2.16191898e-01 -1.49023575e-01 ! x y z +1.93601277e+00 -6.72048540e+00 -1.45492761e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +23 2.96336237e-06 1.95617222e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.40080131e-01 3.16950579e-02 -1.16555942e-02 ! x y z +-3.49313840e+00 -1.60926303e+01 -1.67120585e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +24 2.96336237e-06 2.95699775e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.15760368e-01 -2.91110588e-02 6.17139230e-04 ! x y z +1.79456171e+00 1.32957819e+01 1.18560506e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +25 2.96336237e-06 7.37694354e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +5.26748110e-01 1.25330549e-01 -4.82892963e-02 ! x y z +-2.00895217e+00 8.26007214e+00 -5.72597424e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +26 2.96336237e-06 1.38187012e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-7.60074036e-02 6.71728131e-02 -8.17370040e-03 ! x y z +-1.28706410e+01 -1.48153303e+01 -1.69392316e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +27 2.96336237e-06 2.98635158e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.82636170e-01 1.21690566e-01 1.01459191e-02 ! x y z +-7.43193220e+00 -1.11639911e+01 2.13692039e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +28 2.96336237e-06 1.97488072e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.20233458e-02 1.43750110e-01 -2.35221899e-04 ! x y z +-1.62138414e+01 -2.48066138e+00 1.57896729e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +29 2.96336237e-06 2.48578387e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.76135681e-01 -4.84229919e-02 5.60864720e-03 ! x y z +3.91284521e+00 1.39672296e+01 -2.45429398e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +30 2.96336237e-06 7.25227897e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +5.27943044e-01 8.46852756e-02 6.96857300e-04 ! x y z +-1.36032970e+00 8.47994233e+00 -6.28040065e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +31 2.96336237e-06 4.02799742e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-7.22706393e-03 -2.96095554e-01 -2.33599721e-02 ! x y z +1.14275031e+01 -1.56126902e-01 -1.44276095e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +32 2.96336237e-06 4.51857012e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.63589273e-01 2.02130609e-01 5.55793169e-03 ! x y z +-6.64376499e+00 -8.65267602e+00 -2.10678008e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +33 2.96336237e-06 1.76467310e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.26320758e+00 3.03288204e-01 3.29789296e-02 ! x y z +-1.28420613e+00 -5.35446228e+00 2.58056975e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +34 2.96336237e-06 2.54334051e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.80522672e-02 1.83546865e-01 3.58952309e-03 ! x y z +-1.42013310e+01 -2.95280237e+00 8.39818470e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +35 2.96336237e-06 1.92563113e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.64127464e-02 -1.39351845e-01 -1.82225350e-03 ! x y z +1.63895331e+01 3.09643997e+00 -3.20577671e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +36 2.96336237e-06 2.04713108e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.04271372e+00 -1.09046638e+00 -1.40113897e-02 ! x y z +3.63235564e+00 -3.45321638e+00 -1.01468615e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +37 2.96336237e-06 1.35854778e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +9.64832654e-02 2.55978213e-02 3.23500859e-03 ! x y z +-5.10994329e+00 1.92337154e+01 5.09146692e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +38 2.96336237e-06 2.45751474e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.59118984e-01 8.52000503e-02 -1.03825032e-02 ! x y z +-6.87843878e+00 1.30022210e+01 1.50410166e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +39 2.96336237e-06 4.10225851e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.85165693e+00 -9.83933774e-01 2.08613851e-01 ! x y z +1.18831306e+00 3.40677272e+00 -1.67190215e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +40 2.96336237e-06 1.56983076e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.15043845e+00 -4.75214310e-04 -1.15384109e-01 ! x y z +1.36168482e-02 -5.84257924e+00 -1.07357229e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +41 2.96336237e-06 8.63077838e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.03626525e-01 -6.26231864e-01 -4.75087591e-03 ! x y z +7.77008368e+00 1.28671384e+00 5.07371811e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +42 2.96336237e-06 1.82360183e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.06670651e-01 -8.15558319e-02 2.68720322e-03 ! x y z +1.03980704e+01 -1.36328601e+01 -1.39088180e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +43 2.96336237e-06 1.99807059e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-9.17701058e-02 -1.14518004e-01 1.13244354e-02 ! x y z +1.27691041e+01 -1.02513960e+01 -2.20077139e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +44 2.96336237e-06 2.13073290e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-7.52058262e-02 -1.37147912e-01 1.06620439e-02 ! x y z +1.37046324e+01 -7.69793595e+00 -2.23714526e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +45 2.96336237e-06 1.68022331e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +8.70823705e-02 -8.77104728e-02 -4.16394361e-03 ! x y z +1.26725615e+01 1.25473673e+01 1.19877247e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +46 2.96336237e-06 1.54290758e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +8.78464690e-02 -7.17359238e-02 6.80426203e-03 ! x y z +1.17745635e+01 1.44377972e+01 6.74065437e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +47 2.96336237e-06 2.30394141e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.90629534e-02 1.67175274e-01 -5.15090589e-03 ! x y z +-1.48124644e+01 2.51685780e+00 -2.59440088e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +48 2.96336237e-06 2.39408992e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-6.31629379e-02 -1.64437941e-01 -4.21265914e-03 ! x y z +1.39601454e+01 -5.37797939e+00 6.49836474e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +49 2.96336237e-06 6.67322685e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +4.80428544e-01 1.07625021e-01 4.64810594e-03 ! x y z +-1.96024550e+00 8.71960904e+00 4.16818956e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +50 2.96336237e-06 8.57270405e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +7.93867486e-02 6.26370978e-01 3.70416397e-03 ! x y z +-7.83896900e+00 9.95133874e-01 -3.02638156e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +51 2.96336237e-06 3.18771092e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.46936372e-01 -1.79107677e-01 -3.94308354e-02 ! x y z +1.00882444e+01 8.08803625e+00 8.13029066e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +52 2.96336237e-06 5.31205979e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.76927905e-01 -2.74689076e-01 3.16396857e-02 ! x y z +7.08469168e+00 -7.11809347e+00 6.85186336e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +53 2.96336237e-06 3.35901294e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-4.73231109e-02 2.41683214e-01 -2.56931693e-02 ! x y z +-1.23563545e+01 -2.49464137e+00 -6.42045959e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +54 2.96336237e-06 5.02313479e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.69106371e-01 1.94950737e-02 -1.15240620e-02 ! x y z +-5.65639555e-01 -1.03178976e+01 1.80572913e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +55 2.96336237e-06 1.59755138e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-4.28522246e-03 1.17539559e-01 5.90218108e-03 ! x y z +-1.82138411e+01 -5.61389121e-01 -1.70410021e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +56 2.96336237e-06 2.55894735e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.18440542e-02 1.88009803e-01 -6.44871654e-03 ! x y z +-1.44178626e+01 -8.69475309e-01 8.97142075e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +57 2.96336237e-06 8.65740849e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.91040188e-01 5.63702069e-01 6.45762481e-02 ! x y z +-6.84444296e+00 -3.67087020e+00 1.26036040e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +58 2.96336237e-06 1.42464374e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.04760272e-01 -1.22136583e-03 4.48888625e-04 ! x y z +2.40281653e-01 -1.94249235e+01 -1.82728909e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +59 2.96336237e-06 4.06340654e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.89312203e+00 -6.46473621e-01 -4.15103227e-01 ! x y z +8.23576732e-01 3.52688638e+00 2.63793368e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +60 2.96336237e-06 1.78913947e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +8.31975440e-02 -1.02200408e-01 -1.61821611e-03 ! x y z +1.34169190e+01 1.09109697e+01 6.80329268e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +61 2.96336237e-06 4.96870828e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.86746289e-01 3.14854888e-01 6.02036532e-03 ! x y z +-8.90358668e+00 5.26975945e+00 8.62865623e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +62 2.96336237e-06 3.22763412e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.68525624e+00 1.64984556e+00 3.00838400e-01 ! x y z +-2.83450668e+00 -2.92336117e+00 1.53842033e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +63 2.96336237e-06 2.55414618e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.87299845e-01 1.05116775e-02 -1.51792555e-02 ! x y z +-8.21679101e-01 1.44544753e+01 -2.60777554e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +64 2.96336237e-06 2.00160244e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.34231074e-01 6.09596770e-02 -1.11141486e-03 ! x y z +-6.76625475e+00 1.48997931e+01 -5.27596276e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +65 2.96336237e-06 3.63826375e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.28159524e-01 -1.40568977e-01 -9.22236504e-03 ! x y z +6.37581067e+00 -1.02946382e+01 -7.14592945e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +66 2.96336237e-06 2.14306051e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.01115698e-01 1.21470452e-01 3.55874508e-03 ! x y z +-1.21342912e+01 -1.00854614e+01 -6.26352753e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +67 2.96336237e-06 4.48382499e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.28175639e-01 -3.04855778e-01 -6.95097536e-04 ! x y z +1.00587755e+01 -4.22888680e+00 3.93895336e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +68 2.96336237e-06 1.93381926e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-9.66850846e-02 -1.04492055e-01 6.04473678e-03 ! x y z +1.20810341e+01 -1.10015814e+01 3.15945521e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +69 2.96336237e-06 8.13564084e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-5.96169251e-01 5.89954369e-02 9.93373696e-03 ! x y z +-8.04635758e-01 -8.06704294e+00 -4.17590745e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +70 2.96336237e-06 8.68455551e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-6.12448361e-01 -1.84313946e-01 9.63453955e-03 ! x y z +2.26444389e+00 -7.49859023e+00 6.03862670e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +71 2.96336237e-06 1.51843317e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +4.52697455e-02 -1.02248173e-01 -2.27016513e-03 ! x y z +1.68788163e+01 7.40608886e+00 3.63709971e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +72 2.96336237e-06 1.14806791e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +8.06881335e-01 -2.52781545e-01 1.51870607e-02 ! x y z +2.04735371e+00 6.47436428e+00 -7.55128577e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +73 2.96336237e-06 8.63702158e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.30060694e-01 6.20198928e-01 4.81770340e-02 ! x y z +-7.69676016e+00 1.54296493e+00 7.51032843e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +74 2.96336237e-06 2.71625817e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.50105626e-01 1.32445435e-01 3.33193699e-03 ! x y z +-9.29385053e+00 1.05048078e+01 5.66001538e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +75 2.96336237e-06 2.51868339e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.03555407e-01 -1.53889323e-01 -2.80252364e-03 ! x y z +1.19940698e+01 -8.03473593e+00 -2.09993906e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +76 2.96336237e-06 1.54287110e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +8.06499829e-02 -7.99432224e-02 -2.43269454e-03 ! x y z +1.31238101e+01 1.32442951e+01 3.28918613e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +77 2.96336237e-06 8.71609417e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-5.36528986e-01 3.51525670e-01 -1.53165370e-02 ! x y z +-4.31160704e+00 -6.55314245e+00 1.84364774e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +78 2.96336237e-06 6.30934788e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-4.65066281e-01 -4.66798737e-03 -1.68077756e-02 ! x y z +7.45184502e-02 -9.20024675e+00 2.39159931e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +79 2.96336237e-06 7.40144722e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +3.79334922e-01 3.80245448e-01 -9.49803615e-02 ! x y z +-6.04247275e+00 5.98348854e+00 -1.74163143e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +80 2.96336237e-06 3.92313381e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.39606781e-01 1.61754224e-01 -3.96153129e-03 ! x y z +-6.55006124e+00 -9.67134853e+00 -1.87736549e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +81 2.96336237e-06 1.87729448e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.36574174e+00 -2.79526538e-02 -2.16095439e-01 ! x y z +5.14171563e-02 5.32723947e+00 -3.97391050e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +82 2.96336237e-06 5.30133384e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +3.15085837e+00 -2.30561258e+00 -1.08992743e-01 ! x y z +1.87274269e+00 2.56509205e+00 -1.34048622e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +83 2.96336237e-06 2.06037161e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.26667281e+00 7.87155762e-01 -2.77694402e-01 ! x y z +-2.74492954e+00 -4.28490600e+00 3.75194091e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +84 2.96336237e-06 8.00085058e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +4.36864628e-01 -3.93082642e-01 -4.05835180e-02 ! x y z +5.43580080e+00 6.10031206e+00 -5.32305492e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +85 2.96336237e-06 1.68422496e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.91154020e-02 1.17755097e-01 9.07209905e-04 ! x y z +-1.69254394e+01 -5.62237540e+00 3.47759783e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +86 2.96336237e-06 6.20018626e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-6.46245036e-03 -4.54649738e-01 -3.91985585e-02 ! x y z +9.26143100e+00 -2.14727983e-01 8.60739213e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +87 2.96336237e-06 4.32952233e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-8.92360083e-01 3.04526182e+00 -3.16119245e-01 ! x y z +-3.37597828e+00 -9.90665483e-01 -2.93334400e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +88 2.96336237e-06 5.07356023e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.42658885e-01 -3.45354060e-01 -6.48020090e-04 ! x y z +9.46356028e+00 3.92258455e+00 -8.48866140e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +89 2.96336237e-06 1.44357825e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +3.12767928e-02 1.01738946e-01 7.81498408e-04 ! x y z +-1.83783005e+01 5.65204164e+00 8.95253245e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +90 2.96336237e-06 2.46788347e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.22315810e-01 -1.78032278e+00 1.72704611e-01 ! x y z +4.58611778e+00 -8.01969428e-01 2.21857061e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +91 2.96336237e-06 2.58881689e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.46842370e-02 -1.88923646e+00 2.53318223e-01 ! x y z +4.51037223e+00 1.36690116e-01 5.94305988e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +92 2.96336237e-06 1.60789903e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-9.46160200e-02 6.98494722e-02 -1.45892420e-02 ! x y z +-1.09628713e+01 -1.45060459e+01 1.52195776e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +93 2.96336237e-06 6.29721623e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-2.56683335e-01 -3.77201562e-01 -8.23958484e-02 ! x y z +7.59604700e+00 -5.23386806e+00 3.06289920e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +94 2.96336237e-06 4.64202573e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.67913812e-01 -2.07146871e-01 -4.61422780e-02 ! x y z +6.41188242e+00 8.56110427e+00 -1.07101833e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +95 2.96336237e-06 1.50660133e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.34791305e-02 1.10090801e-01 -3.59740832e-03 ! x y z +-1.87180167e+01 2.32104622e+00 -8.83494098e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +96 2.96336237e-06 2.40330388e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-1.75929313e-01 1.80966113e-02 6.81114161e-03 ! x y z +-1.42005853e+00 -1.46887245e+01 2.30712447e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +97 2.96336237e-06 7.03247975e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.36662692e-01 -4.99639162e-01 4.35439316e-03 ! x y z +8.35547799e+00 2.29467581e+00 1.06273679e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +98 2.96336237e-06 1.55495266e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.17050444e-03 1.14350623e-01 7.08807266e-03 ! x y z +-1.84559208e+01 -6.04308169e-01 1.79494843e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +99 2.96336237e-06 5.97585391e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +2.48395076e-01 3.63094145e-01 -1.73096769e-02 ! x y z +-7.80067516e+00 5.35353886e+00 3.69892012e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +100 2.96336237e-06 1.89552312e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-6.37920370e-02 1.23274206e-01 -1.57564364e-02 ! x y z +-1.46021274e+01 -7.89324871e+00 -2.63331736e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +101 2.96336237e-06 6.14681361e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +1.77289854e-01 4.11867988e-01 6.04542862e-02 ! x y z +-8.47592235e+00 3.80524704e+00 -9.94230260e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +102 2.96336237e-06 9.18598551e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +3.34848937e-01 5.82886909e-01 8.09410585e-02 ! x y z +-6.63163318e+00 3.75549099e+00 4.30343778e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +103 2.96336237e-06 1.41351789e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-3.19842172e-02 -9.91147264e-02 1.99335782e-03 ! x y z +1.85292059e+01 -5.95613268e+00 2.44892309e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +104 2.96336237e-06 1.36971011e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +9.99348035e-02 5.87784902e-03 -1.39124747e-02 ! x y z +-1.19793181e+00 1.97081255e+01 -2.43650563e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +105 2.96336237e-06 1.77615634e-04 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-6.84080283e-02 1.11451618e-01 1.73309638e-03 ! x y z +-1.48079744e+01 -9.08518565e+00 -3.87254392e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +106 2.96336237e-06 1.59192516e-03 ! ID / G*Mass / Rhill +1.52529846e-05 ! Radius +-9.47253716e-01 6.89012203e-01 4.20854721e-02 ! x y z +-3.42520654e+00 -4.67572582e+00 -3.18403868e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +107 2.96336237e-07 1.68166842e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.02595684e-01 -6.76459502e-02 1.60316045e-02 ! x y z +9.99081535e+00 -1.46155702e+01 2.22663292e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +108 2.96336237e-07 3.12384561e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.51485318e-01 -1.68186001e-01 4.32857084e-02 ! x y z +9.59646619e+00 8.84866760e+00 8.06843830e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +109 2.96336237e-07 9.87896939e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.45743446e-01 -4.81062788e-01 9.15155077e-04 ! x y z +4.87059296e+00 -5.52764292e+00 -6.00515206e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +110 2.96336237e-07 7.85782509e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.14453180e-01 -5.59505145e-01 -9.45764181e-02 ! x y z +8.09174189e+00 -1.64597361e+00 -6.13585822e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +111 2.96336237e-07 6.15534612e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.60708451e-01 -3.70794487e-01 5.45649920e-03 ! x y z +7.60919345e+00 -5.36531295e+00 -6.47059577e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +112 2.96336237e-07 4.40360494e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.64799526e+00 2.79254018e+00 8.65946920e-02 ! x y z +-2.97493927e+00 1.76842827e+00 -4.38913020e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +113 2.96336237e-07 8.62807107e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.30143272e-01 -7.47801946e-02 3.80094060e-02 ! x y z +9.04317791e-01 7.81471532e+00 4.43428969e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +114 2.96336237e-07 1.79366225e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.08798204e-01 -7.39780702e-02 1.15936386e-02 ! x y z +9.80679616e+00 1.41610097e+01 -1.51208923e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +115 2.96336237e-07 1.94894376e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.22016107e-01 -7.03011772e-02 -2.75148566e-02 ! x y z +8.31341151e+00 -1.43578841e+01 -1.42788664e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +116 2.96336237e-07 1.62844586e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.27148441e-02 1.07781075e-01 3.25629885e-03 ! x y z +-1.61481276e+01 7.79057150e+00 2.69155154e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +117 2.96336237e-07 3.19578013e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.60875488e+00 1.70794437e+00 2.02450467e-01 ! x y z +-2.98944691e+00 2.77464669e+00 3.46638934e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +118 2.96336237e-07 2.24179169e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.86211723e-02 1.60584260e-01 -5.89986850e-04 ! x y z +-1.50281430e+01 -3.61169530e+00 2.80559729e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +119 2.96336237e-07 1.47404316e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.12556305e-02 -1.07559642e-01 7.75828804e-03 ! x y z +1.89906733e+01 -1.97220292e+00 2.69482546e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +120 2.96336237e-07 2.95853738e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.43756019e-01 1.63519920e-01 1.05007253e-02 ! x y z +-1.01140371e+01 8.85158256e+00 6.44989154e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +121 2.96336237e-07 7.72710208e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.37187955e-01 1.78861079e-01 -5.16128716e-02 ! x y z +-2.66847756e+00 7.89164576e+00 -3.42257110e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +122 2.96336237e-07 2.13334019e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.51622167e-01 3.80151272e-02 -1.72165804e-02 ! x y z +-3.61611838e+00 -1.53062819e+01 -1.86619947e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +123 2.96336237e-07 5.03662501e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.44036246e+00 -1.39813019e+00 4.75623645e-02 ! x y z +1.20942823e+00 -2.99183517e+00 -4.52172448e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +124 2.96336237e-07 4.88823155e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.62893789e-02 -3.53747469e-01 -5.77668949e-02 ! x y z +1.03711301e+01 -8.89368941e-01 -1.07968578e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +125 2.96336237e-07 1.42647753e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.67757076e-02 -9.23385161e-02 -1.80890251e-02 ! x y z +1.72463614e+01 8.83199566e+00 -4.78682258e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +126 2.96336237e-07 3.09112166e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.11495221e-01 -8.26213372e-02 1.35875240e-02 ! x y z +4.67644911e+00 -1.22342127e+01 -1.47565507e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +127 2.96336237e-07 2.70124619e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.69696847e-02 1.78674392e-01 -1.12522217e-02 ! x y z +-1.26304475e+01 -6.19234342e+00 -6.39189840e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +128 2.96336237e-07 1.14086344e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.71767403e-01 7.94743241e-01 2.69536423e-02 ! x y z +-6.48477177e+00 2.21216304e+00 1.75025543e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +129 2.96336237e-07 2.09303319e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.52392169e+00 -5.75896547e-02 2.44884427e-01 ! x y z +1.61682826e-01 -5.04596629e+00 -1.56134895e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +130 2.96336237e-07 2.40982693e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.36355388e-01 -1.13892018e-01 7.34357271e-04 ! x y z +9.55305129e+00 -1.14302111e+01 3.05071402e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +131 2.96336237e-07 1.74885689e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.06479332e-01 7.24748516e-02 -2.41989518e-03 ! x y z +-9.79342428e+00 1.44541712e+01 1.25933409e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +132 2.96336237e-07 1.82949377e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.52791264e-02 -1.02318350e-01 -2.05635638e-02 ! x y z +1.32513973e+01 1.06585789e+01 1.91580240e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +133 2.96336237e-07 7.18520234e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.94961604e-01 3.42139554e-01 -8.60079460e-02 ! x y z +-5.52911126e+00 -6.58039168e+00 -7.92228526e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +134 2.96336237e-07 3.35642838e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.25606515e-01 2.10721925e-01 2.77166521e-02 ! x y z +-1.08090097e+01 6.53767174e+00 -7.47690197e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +135 2.96336237e-07 3.67847000e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.81485335e-03 -2.70102892e-01 -2.50067169e-02 ! x y z +1.20486417e+01 2.86996526e-01 -2.27170923e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +136 2.96336237e-07 1.02072598e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.15773343e-01 5.43448049e-01 5.55284218e-02 ! x y z +-5.13914368e+00 4.99902919e+00 -1.08827824e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +137 2.96336237e-07 3.45810394e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.05216602e-01 -1.48909097e-01 -1.85718974e-02 ! x y z +7.34237560e+00 1.00770392e+01 3.52799818e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +138 2.96336237e-07 5.42377513e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.06722103e+00 3.41650411e+00 2.58569782e-01 ! x y z +-2.68085769e+00 -1.62948459e+00 8.49153035e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +139 2.96336237e-07 2.24637379e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.99077410e-02 1.42884876e-01 -2.37521279e-02 ! x y z +-1.35231867e+01 -7.43274054e+00 7.61380965e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +140 2.96336237e-07 1.78919182e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.98991162e-02 -8.51676073e-02 -9.62279096e-03 ! x y z +1.12673433e+01 -1.31469580e+01 -7.00686347e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +141 2.96336237e-07 3.57294435e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.99868536e-01 -2.42749465e+00 2.38341811e-01 ! x y z +3.57549013e+00 1.47177643e+00 -2.02730345e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +142 2.96336237e-07 6.01219491e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.38108503e-01 -2.83265024e-01 2.92889966e-02 ! x y z +5.93042973e+00 -7.22405589e+00 -1.45178087e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +143 2.96336237e-07 3.79143460e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.78176325e-03 -2.78312567e-01 1.55544144e-02 ! x y z +1.19064116e+01 1.39553854e-01 -2.89012584e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +144 2.96336237e-07 1.31357348e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.52265022e-01 1.70514389e-01 1.61046840e-02 ! x y z +-1.11263342e+00 6.28773463e+00 -1.70190136e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +145 2.96336237e-07 1.92647514e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.26666120e-01 -6.37558920e-02 5.28973247e-03 ! x y z +7.50977187e+00 -1.48910618e+01 -2.25564970e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +146 2.96336237e-07 3.41009580e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.24608739e-01 1.11496176e-01 1.13965546e-02 ! x y z +-5.52228513e+00 -1.12168373e+01 1.02975922e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +147 2.96336237e-07 4.49280552e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.64642165e-01 -1.98437443e-01 1.17261079e-02 ! x y z +6.55355101e+00 8.73493305e+00 -8.55984701e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +148 2.96336237e-07 3.16462317e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.11408931e-01 9.78735032e-02 1.24755660e-02 ! x y z +-5.49965363e+00 -1.16585345e+01 -1.70423395e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +149 2.96336237e-07 3.00071642e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.53259053e-01 -2.18306264e+00 1.23215351e-02 ! x y z +4.16899485e+00 6.73550276e-01 -8.47796206e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +150 2.96336237e-07 4.46607818e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.69371029e-01 -1.87178387e-01 2.18926088e-02 ! x y z +6.28573587e+00 8.93722250e+00 -8.82582676e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +151 2.96336237e-07 1.58916270e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.45286684e-02 8.06964612e-02 -3.55050596e-04 ! x y z +-1.24944704e+01 -1.31188331e+01 -3.18586153e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +152 2.96336237e-07 1.38278476e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.02012371e-01 6.26193065e-01 7.11494268e-02 ! x y z +-3.83644935e+00 -4.87609633e+00 -3.91728102e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +153 2.96336237e-07 3.80372480e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.08082021e-01 1.82266157e-01 -4.25539023e-02 ! x y z +-7.90539072e+00 8.82282593e+00 -9.32469375e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +154 2.96336237e-07 1.36284709e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.49651990e-01 -3.24158825e-01 1.28456691e-02 ! x y z +2.02981792e+00 5.89374813e+00 -7.03315168e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +155 2.96336237e-07 1.36478610e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.65489094e-01 2.62961132e-01 -7.58675127e-02 ! x y z +-1.63993959e+00 -6.05927735e+00 -5.67787397e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +156 2.96336237e-07 2.21453956e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.28774377e-02 1.43489681e-01 -2.67975170e-02 ! x y z +-1.39180127e+01 6.76953196e+00 -1.54412458e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +157 2.96336237e-07 3.17758657e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.71721634e-02 -2.24211039e-01 -2.23227042e-04 ! x y z +1.24396833e+01 -3.73091701e+00 3.29715938e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +158 2.96336237e-07 2.93402355e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.25046197e-01 -1.75973708e-01 7.05768084e-03 ! x y z +1.10088381e+01 7.83118455e+00 5.95103712e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +159 2.96336237e-07 6.75394436e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.99079271e-02 4.93799026e-01 -5.14568830e-02 ! x y z +-8.82873148e+00 6.31970369e-01 1.02213191e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +160 2.96336237e-07 2.06668352e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.92655875e-02 1.50834125e+00 1.91413945e-01 ! x y z +-5.09335109e+00 1.41113150e-01 -1.29857117e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +161 2.96336237e-07 4.51514886e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.16996692e+00 -9.91364302e-01 4.16124385e-02 ! x y z +1.01884350e+00 -3.26936059e+00 -4.16167657e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +162 2.96336237e-07 1.02360684e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.69844349e-01 -3.40285674e-01 -5.94581079e-02 ! x y z +3.31508191e+00 -6.39237087e+00 -7.41252924e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +163 2.96336237e-07 2.71876263e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.26422107e-01 1.54442560e-01 1.53276659e-02 ! x y z +-1.08158915e+01 -8.93275104e+00 7.23445450e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +164 2.96336237e-07 1.80180479e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.85587981e-03 1.32674006e-01 4.28548397e-03 ! x y z +-1.72140967e+01 1.96556098e-01 9.60528175e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +165 2.96336237e-07 1.75592517e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.07708701e-02 -9.11416548e-02 -1.28025238e-02 ! x y z +1.24310813e+01 -1.20389307e+01 -2.46935980e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +166 2.96336237e-07 3.99623180e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.45385891e-01 2.55881809e-01 1.42121903e-02 ! x y z +-1.00624985e+01 -5.70943735e+00 5.83151434e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +167 2.96336237e-07 2.21152384e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.56537348e-01 3.78485088e-02 -2.44998270e-02 ! x y z +-3.80403850e+00 1.50608237e+01 -1.01858258e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +168 2.96336237e-07 8.06032057e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.51482822e-01 2.18206619e-01 2.92372855e-02 ! x y z +-3.00196406e+00 -7.57892718e+00 -1.44335239e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +169 2.96336237e-07 3.11065716e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.91026870e-01 -1.23484671e-01 -2.54924425e-02 ! x y z +7.24043657e+00 1.08632919e+01 1.49017200e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +170 2.96336237e-07 3.67131711e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.37503232e-01 2.32589683e-01 1.11853556e-02 ! x y z +-1.04039430e+01 6.12811275e+00 4.32021998e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +171 2.96336237e-07 1.40685155e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.01905614e-01 -1.19240725e-02 -1.50479123e-02 ! x y z +2.60034269e+00 1.91945629e+01 2.28872102e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +172 2.96336237e-07 1.61904612e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.08549262e-01 -4.93125027e-02 -1.89393365e-03 ! x y z +7.52551683e+00 1.65260884e+01 1.17281718e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +173 2.96336237e-07 1.99596731e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.29296371e-01 -6.99787123e-02 6.21516753e-03 ! x y z +7.64431276e+00 1.43073841e+01 2.21500327e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +174 2.96336237e-07 2.60541101e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.94752033e-02 -1.69531690e-01 -1.41829706e-03 ! x y z +1.26044350e+01 6.66004842e+00 -1.71258676e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +175 2.96336237e-07 1.41101203e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.24192668e-02 4.54823471e-02 1.22601580e-02 ! x y z +-8.76894444e+00 -1.73680255e+01 -1.66506754e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +176 2.96336237e-07 3.35294916e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.03750495e-02 -2.28910399e-01 2.04323304e-02 ! x y z +1.15911858e+01 -4.73287592e+00 -1.76594962e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +177 2.96336237e-07 9.92073896e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.09708271e-01 4.01333815e-01 2.68896617e-02 ! x y z +-3.97025381e+00 6.08470040e+00 -1.13285870e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +178 2.96336237e-07 5.05019009e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.58403603e-01 9.99747165e-02 -7.41406593e-03 ! x y z +-2.74933881e+00 9.91016262e+00 5.08342862e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +179 2.96336237e-07 2.12985442e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.49342173e-02 -1.53441688e-01 -2.19126018e-02 ! x y z +1.56210566e+01 2.62637644e+00 -6.11374559e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +180 2.96336237e-07 1.54678196e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.41939885e-02 -1.00043093e-01 -3.85321428e-03 ! x y z +1.63937778e+01 -8.84799477e+00 -2.52574906e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +181 2.96336237e-07 1.41497185e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.73415306e-01 -9.66357206e-01 -1.21199946e-01 ! x y z +5.71639955e+00 2.08880107e+00 8.82117200e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +182 2.96336237e-07 4.28958695e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.40660496e-01 2.03374987e-01 2.01793384e-02 ! x y z +-7.23178249e+00 8.41477449e+00 1.42172029e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +183 2.96336237e-07 1.99059706e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.32418609e-01 -6.33495780e-02 1.52447151e-03 ! x y z +7.06555312e+00 -1.47870819e+01 -1.47598659e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +184 2.96336237e-07 3.81792224e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.59441934e-01 1.07188724e-01 -1.59194237e-02 ! x y z +-4.47747771e+00 1.09409816e+01 8.27511247e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +185 2.96336237e-07 6.64097194e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.61470934e-01 -4.59662253e-01 4.19507284e-02 ! x y z +8.40652229e+00 -3.03327503e+00 -9.42304810e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +186 2.96336237e-07 3.65627186e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.91716294e-02 2.68585655e-01 1.65456147e-02 ! x y z +-1.20376875e+01 9.01816731e-01 -6.04344674e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +187 2.96336237e-07 1.07266269e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.84037169e-01 3.34448860e-02 8.92035326e-02 ! x y z +-3.76987440e-01 7.02922281e+00 6.71778347e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +188 2.96336237e-07 2.76053130e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.65592103e-01 -2.02262355e+00 9.64532175e-02 ! x y z +4.38399914e+00 -3.69274450e-01 -3.02243313e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +189 2.96336237e-07 1.49180645e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.66468727e-02 9.78397092e-02 1.86359797e-02 ! x y z +-1.71381047e+01 -8.04260909e+00 -4.87836279e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +190 2.96336237e-07 1.69416385e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.52861173e-02 -9.89948574e-02 -1.09499414e-02 ! x y z +1.40487042e+01 -1.08378695e+01 1.10267550e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +191 2.96336237e-07 2.11992597e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.23756833e-01 -9.48449362e-02 8.49987629e-03 ! x y z +9.64037459e+00 -1.23256601e+01 2.82037391e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +192 2.96336237e-07 1.40164561e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.26598110e-02 7.33084575e-02 6.78097528e-05 ! x y z +-1.38859112e+01 1.37729835e+01 2.49147892e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +193 2.96336237e-07 1.22290282e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.40766574e-01 -6.33155550e-01 1.23966097e-02 ! x y z +4.64976372e+00 4.70156647e+00 -2.98307686e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +194 2.96336237e-07 7.66734076e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.04703817e-02 -5.55392633e-01 8.13051763e-02 ! x y z +8.28775896e+00 9.69944086e-01 5.69301929e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +195 2.96336237e-07 3.29074485e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.24495073e-01 -9.20143724e-02 2.02921632e-03 ! x y z +4.73910594e+00 1.16362548e+01 2.16490213e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +196 2.96336237e-07 3.56646499e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.41206884e+00 -1.01015931e+00 2.59146857e-01 ! x y z +1.53231645e+00 3.51376781e+00 -5.68577128e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +197 2.96336237e-07 2.00668495e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.56759215e-01 -1.37713329e+00 2.78941831e-01 ! x y z +4.91283479e+00 1.60529662e+00 -1.34031808e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +198 2.96336237e-07 1.69799956e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.82837757e-01 1.21782572e+00 2.96764613e-02 ! x y z +-5.47371816e+00 -1.25801406e+00 -1.62601027e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +199 2.96336237e-07 2.43591457e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.78649226e-01 -1.15701711e-02 -1.15491428e-02 ! x y z +9.83636215e-01 -1.47911380e+01 -5.93605692e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +200 2.96336237e-07 1.60100462e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15594974e-01 -2.02011443e-02 -1.23609819e-02 ! x y z +3.06227831e+00 1.80156682e+01 -6.55882175e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +201 2.96336237e-07 8.78788999e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.23683389e-01 -4.78816324e-01 1.04286433e-01 ! x y z +5.83399865e+00 5.18037893e+00 1.48238651e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +202 2.96336237e-07 1.79545603e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.31193706e+00 -8.55848939e-02 1.42321645e-01 ! x y z +4.42659702e-01 5.38592216e+00 -8.06877745e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +203 2.96336237e-07 1.29917327e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.58123041e-01 5.83432978e-01 3.16688902e-02 ! x y z +-3.91781485e+00 5.08739885e+00 -7.15379602e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +204 2.96336237e-07 3.39913445e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.88461426e-01 -1.64730118e-01 1.18953164e-02 ! x y z +8.22702787e+00 -9.46302955e+00 -4.14367630e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +205 2.96336237e-07 2.47936228e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.56478894e-01 9.36699288e-02 2.29323694e-03 ! x y z +-7.54851155e+00 1.26280718e+01 5.34415861e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +206 2.96336237e-07 1.47718920e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.65493277e-02 9.22841964e-02 -1.12810019e-02 ! x y z +-1.62688169e+01 -9.72577893e+00 1.86718774e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +207 2.96336237e-07 1.72642428e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.92351995e-02 -1.19874879e-01 -1.57092886e-02 ! x y z +1.67530240e+01 5.48257990e+00 -8.30901786e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +208 2.96336237e-07 1.86207273e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.95319863e-01 1.04057977e+00 -4.37075211e-03 ! x y z +-4.06510021e+00 3.49405499e+00 -1.85829894e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +209 2.96336237e-07 1.50074871e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.13098146e-02 -6.22620847e-02 3.83999649e-03 ! x y z +1.06548604e+01 -1.55222301e+01 1.54823380e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +210 2.96336237e-07 2.08437577e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.63204139e-02 1.51495634e+00 2.33349335e-01 ! x y z +-5.05067222e+00 2.28922030e-01 3.92035760e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +211 2.96336237e-07 3.70979306e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.71899987e+00 -2.33907314e-01 8.45763198e-03 ! x y z +3.27253005e-01 -3.72728480e+00 6.96173655e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +212 2.96336237e-07 3.81151089e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.53714041e-02 2.68067858e-01 3.48793769e-02 ! x y z +-1.14200906e+01 3.10401124e+00 8.21132077e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +213 2.96336237e-07 1.47857088e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.08922131e-01 -8.90553336e-04 -8.79337556e-04 ! x y z +1.20272732e-01 1.90283595e+01 -5.04506391e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +214 2.96336237e-07 4.73995322e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.12126656e-01 -1.56632296e-01 7.76600632e-03 ! x y z +4.75074720e+00 -9.41798090e+00 1.30128221e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +215 2.96336237e-07 1.69776395e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.97080320e-02 -1.23567582e-01 1.56811782e-03 ! x y z +1.75356900e+01 2.78198531e+00 1.29434632e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +216 2.96336237e-07 2.29798896e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.66195883e+00 -2.64134975e-01 -1.85975662e-01 ! x y z +7.34522456e-01 -4.76685962e+00 2.22373045e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +217 2.96336237e-07 3.52891353e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.40115410e-01 9.68265959e-02 -2.07385488e-02 ! x y z +-4.65024198e+00 1.13999716e+01 -7.26496662e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +218 2.96336237e-07 2.53009710e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.11546414e-01 1.45892204e-01 3.30367885e-02 ! x y z +-1.15784500e+01 8.78369165e+00 2.94773786e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +219 2.96336237e-07 1.47626590e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.05432444e+00 -2.60672731e-01 -5.72149808e-02 ! x y z +1.46409466e+00 5.78825209e+00 8.03267514e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +220 2.96336237e-07 3.14908501e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.13062345e-01 9.13209737e-02 8.63670516e-03 ! x y z +-5.13672953e+00 1.19910589e+01 -6.74367894e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +221 2.96336237e-07 1.95059415e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.45942896e-02 1.36362423e-01 -9.40008353e-03 ! x y z +-1.55751730e+01 5.24501882e+00 2.07179044e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +222 2.96336237e-07 1.36153260e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.11020964e-02 9.97628339e-02 9.06231707e-04 ! x y z +-1.96963341e+01 -2.21458522e+00 2.33051077e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +223 2.96336237e-07 3.84395515e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.76499188e-01 6.16040642e-02 -8.97883830e-03 ! x y z +-2.55698202e+00 1.15050248e+01 4.97784345e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +224 2.96336237e-07 1.81495968e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.70215546e-02 -1.30885606e-01 2.17424272e-02 ! x y z +1.70082888e+01 1.96040585e+00 -1.35007722e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +225 2.96336237e-07 1.91539798e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.63947917e-02 1.18396959e-01 -1.05167573e-02 ! x y z +-1.39482384e+01 -8.73699507e+00 2.84478428e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +226 2.96336237e-07 1.23670507e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.14930135e-03 -9.04988555e-01 -9.63762785e-02 ! x y z +6.57106189e+00 1.09338151e-01 -4.71620354e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +227 2.96336237e-07 6.03338037e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.52159298e-01 -4.17521527e-01 1.02950952e-02 ! x y z +8.85444473e+00 -3.22312851e+00 7.04377524e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +228 2.96336237e-07 2.29501387e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.73120208e-02 -1.58774750e-01 1.11169633e-03 ! x y z +1.43912187e+01 -5.20423975e+00 -9.00929414e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +229 2.96336237e-07 6.80178340e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.48633642e-01 2.23937586e-01 -2.26413038e-02 ! x y z +-3.93868145e+00 -7.92836960e+00 -3.68245574e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +230 2.96336237e-07 8.30919822e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.31628858e-01 4.28354869e-01 7.13629985e-02 ! x y z +-5.68579970e+00 -5.61206488e+00 -7.92918557e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +231 2.96336237e-07 2.88748668e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.10233066e-01 1.97876843e-02 -2.35827282e-02 ! x y z +-1.47390853e+00 -1.33999737e+01 2.06264744e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +232 2.96336237e-07 4.78912150e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.35092035e+00 -1.10079153e+00 -2.27741830e-03 ! x y z +1.04438723e+00 3.17859762e+00 4.91489625e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +233 2.96336237e-07 1.56024644e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.02536167e-01 5.16023512e-02 -4.82964369e-03 ! x y z +-8.28502601e+00 -1.65479832e+01 -1.11463790e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +234 2.96336237e-07 3.33611198e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.41416332e-01 3.90687702e-02 2.21398720e-02 ! x y z +-2.04031618e+00 -1.25168759e+01 -2.20179291e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +235 2.96336237e-07 7.25553510e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.55575378e-01 5.09805643e-01 -3.70189723e-02 ! x y z +-8.21272972e+00 2.46146852e+00 -6.30505998e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +236 2.96336237e-07 1.40506298e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.01069553e-02 4.91907944e-02 1.29764938e-02 ! x y z +-9.56289030e+00 -1.67867849e+01 -2.88786661e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +237 2.96336237e-07 3.77969007e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.14704049e-02 -2.62441008e-01 -1.72907598e-02 ! x y z +1.12426074e+01 -3.91634715e+00 -9.09943002e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +238 2.96336237e-07 2.81867372e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.27728440e-02 2.00365075e-01 1.70132895e-02 ! x y z +-1.33128879e+01 -3.52189829e+00 -5.74261981e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +239 2.96336237e-07 1.79620777e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.31787414e-01 -1.25733813e-02 -2.89624292e-04 ! x y z +1.63034155e+00 -1.70615211e+01 -2.06611584e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +240 2.96336237e-07 1.47632455e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.70839894e-02 -4.76289266e-02 -1.15351398e-02 ! x y z +8.53391623e+00 -1.69155803e+01 -2.00516647e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +241 2.96336237e-07 2.14136341e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.28282315e-01 9.18757479e-02 3.28978148e-03 ! x y z +-9.19328813e+00 1.28482973e+01 6.27067011e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +242 2.96336237e-07 3.02915935e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.12846684e-01 5.88001592e-02 3.42241749e-02 ! x y z +-3.51634627e+00 -1.28074061e+01 1.11441054e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +243 2.96336237e-07 2.17631114e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.73459104e-01 1.52457725e+00 1.46088577e-01 ! x y z +-4.73287250e+00 -1.42868872e+00 -4.29632131e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +244 2.96336237e-07 2.43174877e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.95476280e-02 1.64055074e-01 -1.80734950e-02 ! x y z +-1.36691499e+01 -5.64447412e+00 1.31758720e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +245 2.96336237e-07 3.86914388e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.64701329e-01 -2.30941251e-01 2.73835709e-02 ! x y z +9.48038325e+00 6.89018120e+00 1.09025811e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +246 2.96336237e-07 4.70538425e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.92068436e-01 2.87735154e-01 -2.49408437e-02 ! x y z +-8.87474271e+00 -5.83135629e+00 9.84182145e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +247 2.96336237e-07 1.59485836e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.41345316e-02 7.01666314e-02 -3.48741947e-03 ! x y z +-1.07559017e+01 1.45365434e+01 3.02274429e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +248 2.96336237e-07 1.01184314e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.55373585e-01 -6.53010262e-01 2.56093361e-02 ! x y z +6.34869656e+00 -3.49090411e+00 -8.23620080e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +249 2.96336237e-07 6.91585236e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.30220093e-02 -4.97468789e-01 -8.46158844e-02 ! x y z +8.69064143e+00 -1.32669340e+00 2.64599708e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +250 2.96336237e-07 4.13080194e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.93682991e-01 8.01945913e-02 8.60137125e-04 ! x y z +-3.00211229e+00 -1.09716713e+01 -4.61987646e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +251 2.96336237e-07 1.47202714e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.62521286e-03 1.07932666e-01 9.21258947e-03 ! x y z +-1.90745546e+01 4.32493326e-01 7.36730003e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +252 2.96336237e-07 9.84586089e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.93436932e-01 2.08666171e-01 -2.43478761e-02 ! x y z +-2.14463901e+00 -7.06205653e+00 2.51727127e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +253 2.96336237e-07 4.05663959e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.86097517e-01 2.33456587e-01 -1.08350477e-02 ! x y z +-8.99668896e+00 -7.14573611e+00 4.07612357e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +254 2.96336237e-07 2.37179565e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.71798627e-01 -3.08238112e-02 8.89335024e-03 ! x y z +2.66177065e+00 -1.47887456e+01 1.02118590e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +255 2.96336237e-07 4.28362153e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.13801328e+00 2.87532506e-01 1.47893186e-01 ! x y z +-3.23274753e-01 3.52229850e+00 7.47743284e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +256 2.96336237e-07 8.17125843e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.14249606e-01 -5.90426302e-01 2.59329017e-02 ! x y z +7.94241903e+00 1.54650663e+00 3.23598839e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +257 2.96336237e-07 1.55283036e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.59976639e-02 -1.06543878e-01 2.13050029e-02 ! x y z +1.76171284e+01 -5.83528097e+00 4.89958154e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +258 2.96336237e-07 8.43446325e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.24649851e-01 5.26871225e-01 -5.27598342e-02 ! x y z +-6.79074911e+00 -4.17565801e+00 1.63147786e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +259 2.96336237e-07 2.14715069e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.05388127e-02 -1.28239443e-01 1.90288338e-02 ! x y z +1.28278629e+01 -9.18941535e+00 -8.36108150e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +260 2.96336237e-07 4.04704141e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.83402108e-01 9.11584818e-02 8.45233768e-03 ! x y z +-3.50935750e+00 1.09523478e+01 -6.38774699e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +261 2.96336237e-07 1.62617133e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.51952882e-02 1.17037220e-01 3.94518479e-03 ! x y z +-1.77472607e+01 -3.81596629e+00 2.11550976e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +262 2.96336237e-07 1.78052773e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.19829138e-02 -1.15550238e-01 7.84987673e-03 ! x y z +1.52270917e+01 -8.23117147e+00 -6.61169827e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +263 2.96336237e-07 2.40641246e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.30305098e-01 1.17761215e-01 -2.35439060e-02 ! x y z +-9.74178836e+00 -1.11635168e+01 -1.82094726e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +264 2.96336237e-07 5.83292472e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.18630577e-01 9.36751674e-02 1.24384864e-03 ! x y z +-2.08878837e+00 -9.35000019e+00 6.17962317e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +265 2.96336237e-07 4.65039402e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.52414264e-01 2.31441933e-01 -1.56746702e-02 ! x y z +-7.24824143e+00 7.90473829e+00 -2.04045930e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +266 2.96336237e-07 2.83049642e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.05785578e-01 2.99864764e-02 -1.73141242e-02 ! x y z +-1.94317166e+00 1.36035665e+01 4.18889844e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +267 2.96336237e-07 5.59111892e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.08343025e-01 -5.61538698e-02 -1.81981829e-03 ! x y z +1.31395033e+00 -9.69037598e+00 2.51093082e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +268 2.96336237e-07 4.56043200e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.91622087e-01 1.65243467e-01 -2.18471468e-02 ! x y z +-5.33588475e+00 -9.43665612e+00 -1.19835404e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +269 2.96336237e-07 4.22161804e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.47658278e+00 -1.84309704e+00 -3.75630701e-01 ! x y z +2.12363705e+00 -2.86038000e+00 3.46870723e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +270 2.96336237e-07 2.89581607e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.96491417e-01 -2.07401519e+00 -4.69537306e-02 ! x y z +4.18517251e+00 9.94833269e-01 -2.36464829e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +271 2.96336237e-07 2.79186011e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.03672369e+00 1.76655589e+00 1.81010951e-01 ! x y z +-3.78172776e+00 -2.19429373e+00 -2.89502014e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +272 2.96336237e-07 6.19323910e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.46810215e-01 -3.83848737e-01 -7.60627917e-03 ! x y z +7.81959921e+00 5.03050350e+00 -6.46092663e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +273 2.96336237e-07 1.36331345e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.50043265e-01 9.40515952e-01 1.07283101e-02 ! x y z +-5.87667764e+00 -2.18985929e+00 1.69169176e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +274 2.96336237e-07 2.24478987e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.25859435e-01 -1.06093260e-01 -1.72452243e-02 ! x y z +9.75363768e+00 1.18470676e+01 -1.67286465e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +275 2.96336237e-07 2.33847980e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.16756944e-01 1.26472606e-01 4.13500138e-03 ! x y z +-1.11182509e+01 -1.02764188e+01 4.05916035e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +276 2.96336237e-07 7.23664553e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.53057857e-01 -2.79563410e-01 2.05600031e-02 ! x y z +4.53217581e+00 -7.31948561e+00 1.49284406e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +277 2.96336237e-07 4.87764482e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.72004945e+00 3.14969018e+00 1.75974204e-01 ! x y z +-2.90999105e+00 -1.58214562e+00 -1.23326783e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +278 2.96336237e-07 1.59320602e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.86393148e-01 -1.13689426e+00 3.75475631e-02 ! x y z +5.62341185e+00 -1.42142955e+00 -1.63208843e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +279 2.96336237e-07 1.54384183e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.64445542e-02 -1.07772480e-01 1.38203119e-03 ! x y z +1.76084964e+01 5.90543469e+00 -1.36448031e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +280 2.96336237e-07 4.67617477e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.27257020e-02 -3.36603320e-01 -7.18747059e-03 ! x y z +1.03515592e+01 2.20008795e+00 1.61724473e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +281 2.96336237e-07 3.06888017e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.86567801e-02 -2.03217183e-01 7.66179285e-03 ! x y z +1.17991108e+01 5.65678690e+00 -1.85868605e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +282 2.96336237e-07 1.63367151e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.20226801e-01 5.32732415e-03 -4.52859140e-03 ! x y z +-8.58448346e-01 -1.80125367e+01 1.53562080e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +283 2.96336237e-07 3.56522917e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.53305250e-01 5.48751540e-02 -4.36792330e-02 ! x y z +-2.78346860e+00 -1.18762585e+01 1.13001490e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +284 2.96336237e-07 2.91636527e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.14329785e-01 -4.85464161e-03 -1.43382046e-02 ! x y z +3.31983285e-01 1.35442696e+01 3.66465712e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +285 2.96336237e-07 2.47229444e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.72001149e-01 1.80932953e+00 -1.14508837e-01 ! x y z +-4.63466043e+00 4.34705161e-01 -9.29035921e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +286 2.96336237e-07 1.93360884e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.43669654e-02 -1.04582340e-01 -2.08243669e-02 ! x y z +1.23747734e+01 -1.11431296e+01 -6.74003277e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +287 2.96336237e-07 6.11984953e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.71540818e-02 4.48539246e-01 2.96686219e-02 ! x y z +-9.18476340e+00 6.61768116e-01 -1.71761040e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +288 2.96336237e-07 4.28263707e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.10609661e-01 4.06095913e-02 -3.74040484e-02 ! x y z +-1.43723777e+00 1.10915843e+01 1.91845378e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +289 2.96336237e-07 1.74105543e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.02422963e-02 1.27815148e-01 1.78156320e-03 ! x y z +-1.74882467e+01 -1.40662504e+00 2.19081747e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +290 2.96336237e-07 1.51148580e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.91495928e-02 -1.04087681e-01 -5.41684969e-03 ! x y z +1.75843626e+01 6.52789912e+00 1.65333603e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +291 2.96336237e-07 2.17346731e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.55690504e-02 1.27758558e-01 -1.55404831e-02 ! x y z +-1.25717007e+01 9.37316892e+00 -2.07496427e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +292 2.96336237e-07 1.19445522e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.68946733e-01 7.98683376e-01 -2.40782247e-02 ! x y z +-6.03118091e+00 2.80488176e+00 7.73235795e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +293 2.96336237e-07 1.52781756e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.00363979e-02 1.12022203e-01 -3.81575949e-03 ! x y z +-1.86227442e+01 1.62815433e+00 -1.16154580e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +294 2.96336237e-07 3.48956791e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.61696538e-01 -1.98378629e-01 -2.39219925e-02 ! x y z +9.57353831e+00 -7.85706870e+00 4.37960504e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +295 2.96336237e-07 2.54779562e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.12974618e-03 1.87847559e-01 1.34312994e-03 ! x y z +-1.44703736e+01 -4.85579057e-01 -3.07556816e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +296 2.96336237e-07 6.25074756e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.04655355e-01 -4.48375772e-01 1.35991775e-02 ! x y z +9.00969592e+00 2.09776569e+00 -3.00129080e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +297 2.96336237e-07 2.28217924e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.50278346e-02 -1.50228234e-01 2.15633643e-03 ! x y z +1.36682390e+01 6.83088672e+00 -1.35156613e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +298 2.96336237e-07 9.47719963e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.96051323e-01 -6.68809127e-01 4.12417478e-02 ! x y z +7.18447620e+00 2.14100800e+00 5.79800824e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +299 2.96336237e-07 3.14070492e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.13209231e+00 -2.01862562e+00 -6.84442746e-02 ! x y z +3.57218440e+00 -2.02387760e+00 4.22422023e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +300 2.96336237e-07 4.20431176e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.42391696e-01 -2.73705937e-01 -3.19347026e-02 ! x y z +9.97827462e+00 -5.22667951e+00 4.32787777e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +301 2.96336237e-07 9.94203262e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.72336776e-01 7.10845264e-01 -3.52014364e-02 ! x y z +-7.07980619e+00 1.66489668e+00 -1.00855792e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +302 2.96336237e-07 1.86832252e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.10701384e-01 8.18918120e-02 -1.68984869e-03 ! x y z +-9.99799831e+00 1.35699692e+01 1.54216520e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +303 2.96336237e-07 2.51327916e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.15695021e-01 1.44524010e-01 -6.17031135e-03 ! x y z +-1.12995953e+01 -9.09938000e+00 -1.58905923e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +304 2.96336237e-07 1.95006335e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.34548438e-01 -4.37926057e-02 2.44262881e-02 ! x y z +5.17817300e+00 1.57521224e+01 -2.96260854e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +305 2.96336237e-07 1.62536925e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.97288406e-03 -1.19651937e-01 2.32058884e-03 ! x y z +1.81062557e+01 4.02564492e-01 -1.34341433e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +306 2.96336237e-07 2.35856429e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.63295263e-01 5.85123195e-02 2.51767646e-03 ! x y z +-5.07708796e+00 -1.41444440e+01 -1.43082957e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +307 2.96336237e-07 3.36584122e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.64045301e-02 2.39329068e-01 3.43130630e-02 ! x y z +-1.22055648e+01 2.63928819e+00 1.68790846e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +308 2.96336237e-07 2.35713166e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.64581706e-01 -5.36397223e-02 -1.42777001e-02 ! x y z +4.61129154e+00 1.43368142e+01 -6.25559052e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +309 2.96336237e-07 1.80105465e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.85740962e-02 1.18786229e-01 -6.56202856e-03 ! x y z +-1.54663562e+01 -7.53644091e+00 1.35408336e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +310 2.96336237e-07 4.92254230e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.48297591e+00 1.01694819e+00 5.59513929e-02 ! x y z +-9.24784874e-01 3.16320271e+00 9.44239169e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +311 2.96336237e-07 1.60638450e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.93322100e-01 1.12469609e+00 -2.22993750e-01 ! x y z +-5.59442359e+00 -1.38913452e+00 3.48403322e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +312 2.96336237e-07 2.29533892e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.65402441e-02 -1.55441440e-01 -2.52316138e-03 ! x y z +1.40284075e+01 6.01637541e+00 -6.43866723e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +313 2.96336237e-07 4.55994413e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.27905375e-01 6.78699175e-02 -1.79777606e-02 ! x y z +-2.14975909e+00 -1.06030243e+01 -9.32497343e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +314 2.96336237e-07 2.05893516e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.46950207e-01 3.66158970e-02 4.73692468e-03 ! x y z +-3.95133574e+00 1.54799604e+01 2.35533458e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +315 2.96336237e-07 1.71035386e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.03975142e+00 7.12426695e-01 -4.24473083e-02 ! x y z +-3.14715363e+00 4.54521854e+00 -8.41166687e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +316 2.96336237e-07 3.64808571e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.28395262e-02 2.67757757e-01 -1.69778173e-03 ! x y z +-1.18840609e+01 -1.00030821e+00 2.15824929e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +317 2.96336237e-07 5.67789053e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.55673979e-01 3.30106710e-01 -6.83834991e-03 ! x y z +-7.68547512e+00 -5.93124955e+00 6.57145614e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +318 2.96336237e-07 1.78691335e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.31059297e-02 -1.09142388e-01 5.36605245e-03 ! x y z +1.44091108e+01 -9.61902644e+00 6.78196326e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +319 2.96336237e-07 1.52284782e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.11465787e-01 1.17702250e-02 -5.60041093e-03 ! x y z +-1.98141532e+00 1.86459254e+01 4.64702035e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +320 2.96336237e-07 2.22873167e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.61921599e-01 2.76658410e-02 1.51288955e-03 ! x y z +-2.58058649e+00 1.50877909e+01 2.41909079e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +321 2.96336237e-07 1.66574309e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.05896568e-01 -6.16778889e-02 -5.40333761e-03 ! x y z +9.02534711e+00 -1.55060679e+01 7.55381114e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +322 2.96336237e-07 3.11980489e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.12141531e-01 8.69468810e-02 1.49958803e-02 ! x y z +-5.02629091e+00 1.20233190e+01 1.42500243e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +323 2.96336237e-07 3.63628531e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.89645687e-02 -2.48572626e-01 -1.26248709e-02 ! x y z +1.11738835e+01 -4.51858526e+00 1.45409387e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +324 2.96336237e-07 1.58479502e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.08902661e-01 -4.04543846e-02 9.72484544e-03 ! x y z +6.18170668e+00 1.72185121e+01 2.09387639e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +325 2.96336237e-07 2.78359613e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.98092646e-01 5.22944708e-02 -9.07845731e-03 ! x y z +-3.39070024e+00 1.32282608e+01 2.44397272e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +326 2.96336237e-07 2.68359631e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.85680463e-01 -6.28590761e-02 2.48874179e-02 ! x y z +4.61888312e+00 1.33244757e+01 -9.84428095e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +327 2.96336237e-07 3.58926235e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.80921446e-01 1.92203956e-01 -1.49860478e-02 ! x y z +-8.90940541e+00 -8.32243014e+00 8.22222040e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +328 2.96336237e-07 1.48223341e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.86026375e-02 1.07513050e-01 3.59087940e-03 ! x y z +-1.86630325e+01 3.26370801e+00 -1.64002618e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +329 2.96336237e-07 6.50495354e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.62782223e-01 3.98105694e-01 4.74931344e-02 ! x y z +-7.58956373e+00 4.91880838e+00 7.19427712e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +330 2.96336237e-07 7.16951074e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.00633530e-01 3.44432827e-01 -1.72260762e-02 ! x y z +-5.62992253e+00 -6.54762524e+00 -1.99011243e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +331 2.96336237e-07 1.42901597e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.02975298e-01 2.14174721e-02 1.48404774e-03 ! x y z +-3.96359997e+00 1.89693360e+01 -4.17945195e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +332 2.96336237e-07 2.71071976e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.72915192e+00 9.88331941e-01 1.39049311e-01 ! x y z +-2.21605736e+00 -3.85168644e+00 -1.68554191e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +333 2.96336237e-07 2.18892887e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.09179779e-02 -1.54966380e-01 -1.87629802e-02 ! x y z +1.50663981e+01 -3.73259050e+00 -1.87052084e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +334 2.96336237e-07 1.17725194e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.91062992e-02 8.62312897e-01 9.71322333e-02 ! x y z +-6.72169407e+00 -1.02893330e-01 -4.97198301e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +335 2.96336237e-07 1.43213789e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.63303674e-02 -4.26286128e-02 -2.25361083e-03 ! x y z +7.82792290e+00 -1.76245093e+01 -1.79379737e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +336 2.96336237e-07 2.98892609e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.69388680e-02 1.97766935e-01 9.58504561e-03 ! x y z +-1.19246307e+01 5.75952764e+00 1.86101992e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +337 2.96336237e-07 1.84152463e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.28334483e-02 9.87299526e-02 -6.49193674e-03 ! x y z +-1.23921443e+01 -1.14970058e+01 2.27150876e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +338 2.96336237e-07 3.54365437e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.34201835e+00 1.11034535e+00 3.40140510e-01 ! x y z +-1.62800086e+00 -3.51354391e+00 2.89386799e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +339 2.96336237e-07 8.24324168e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.83102856e-01 -5.37287777e-01 -4.81656574e-03 ! x y z +7.12623472e+00 3.75887202e+00 2.72635851e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +340 2.96336237e-07 5.00875626e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.34702365e+00 -2.84145989e+00 -1.50021535e-01 ! x y z +2.49982661e+00 2.03809037e+00 5.50072319e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +341 2.96336237e-07 1.50360139e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.12153547e-02 6.30370227e-02 -2.65423537e-03 ! x y z +-1.07335938e+01 1.54962274e+01 -3.11835645e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +342 2.96336237e-07 1.37325935e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.50572893e-02 -2.90402691e-02 1.80092933e-02 ! x y z +5.90493876e+00 -1.88689938e+01 6.73450412e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +343 2.96336237e-07 1.10150090e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.84924690e-01 6.41714973e-01 1.02600171e-01 ! x y z +-5.50680791e+00 4.25131479e+00 -5.64104984e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +344 2.96336237e-07 2.49641599e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.71018252e-01 6.65136036e-02 8.59918173e-03 ! x y z +-5.24864684e+00 1.36223248e+01 -1.41505546e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +345 2.96336237e-07 7.86393262e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.37590836e-01 -4.69553031e-01 3.39849242e-03 ! x y z +6.70312905e+00 -4.82878448e+00 3.48894069e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +346 2.96336237e-07 3.38867959e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.04261592e-01 -2.26561631e-01 -3.27950347e-04 ! x y z +1.12594640e+01 -5.20036639e+00 -2.14487658e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +347 2.96336237e-07 4.26441447e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.72086667e-01 2.61018307e-01 -3.09025518e-02 ! x y z +-9.24236643e+00 -6.23248882e+00 -1.17166464e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +348 2.96336237e-07 6.44410689e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.27740142e-01 3.44029507e-01 -2.92230023e-03 ! x y z +-6.54706751e+00 -6.25033209e+00 -1.03197793e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +349 2.96336237e-07 5.42256721e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.37616598e-01 2.02980052e-01 6.60788522e-02 ! x y z +-5.18840076e+00 -8.45536631e+00 -6.44059955e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +350 2.96336237e-07 4.79538909e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.95024985e-03 3.52976307e-01 6.66766848e-04 ! x y z +-1.05750536e+01 -1.91498252e-01 -8.88302564e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +351 2.96336237e-07 2.80094606e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.44917298e-01 1.46896616e-01 -3.00771109e-03 ! x y z +-9.83128145e+00 9.72294093e+00 2.30274431e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +352 2.96336237e-07 2.56232072e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.43577814e-01 -1.22681677e-01 6.14664113e-04 ! x y z +9.39168710e+00 1.09855888e+01 -1.45190396e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +353 2.96336237e-07 4.05817714e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.76150978e-01 1.14306049e-01 -5.53696630e-03 ! x y z +-4.39889142e+00 -1.06113876e+01 3.34799914e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +354 2.96336237e-07 1.92799688e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.14824480e-01 8.32536168e-02 1.29067249e-03 ! x y z +-9.75891742e+00 -1.35052597e+01 1.02642147e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +355 2.96336237e-07 4.77388990e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.50594061e+00 1.89487799e-01 -1.10776418e-01 ! x y z +-1.74898078e-01 3.34584841e+00 1.55982954e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +356 2.96336237e-07 1.15900447e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.28679880e-01 1.64171099e-01 1.12408174e-01 ! x y z +-1.32032553e+00 6.68266447e+00 -3.77178284e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +357 2.96336237e-07 1.78326922e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.27246483e+00 -2.07431597e-01 2.51295285e-01 ! x y z +8.79452000e-01 -5.41123016e+00 -1.29786724e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +358 2.96336237e-07 3.96972985e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.76041471e-01 2.28173826e-01 -5.01314047e-02 ! x y z +-9.09876816e+00 -7.17798953e+00 -7.71119240e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +359 2.96336237e-07 2.95574866e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.01303558e-01 -7.90205748e-02 2.32529552e-02 ! x y z +4.77963431e+00 1.25445250e+01 1.21208674e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +360 2.96336237e-07 1.48333629e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.08091507e+00 -1.52920948e-01 -3.52003300e-02 ! x y z +8.49131305e-01 -5.95132813e+00 -1.27166412e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +361 2.96336237e-07 9.93434183e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.93585604e-01 -7.04354333e-01 1.99030539e-02 ! x y z +7.08789902e+00 -1.95471330e+00 -1.97463547e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +362 2.96336237e-07 5.46335011e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.83832083e-01 1.01400790e-01 -6.82830848e-02 ! x y z +-2.37393539e+00 -9.56981770e+00 -8.27672711e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +363 2.96336237e-07 3.88174651e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.12836866e-01 -2.62714235e-01 -2.23240748e-03 ! x y z +1.06544118e+01 -4.59156390e+00 1.86168167e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +364 2.96336237e-07 1.39684715e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.65674301e-01 -9.94396924e-01 -4.97890722e-02 ! x y z +5.97611628e+00 -1.58585732e+00 -1.49128145e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +365 2.96336237e-07 2.63016257e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.05181886e-01 -1.62659678e-01 3.75498822e-03 ! x y z +1.19079955e+01 -7.67224971e+00 1.75916456e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +366 2.96336237e-07 2.74989426e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.26068740e-02 -1.80296451e-01 3.06740069e-03 ! x y z +1.23572716e+01 -6.38260377e+00 -1.07462337e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +367 2.96336237e-07 3.48022342e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.16971931e-01 -1.35786427e-01 1.30123170e-02 ! x y z +6.53305331e+00 1.05234893e+01 8.03873001e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +368 2.96336237e-07 3.64436086e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.59780993e-01 6.09682199e-02 2.74509603e-02 ! x y z +-2.70228190e+00 1.18097033e+01 -7.08162175e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +369 2.96336237e-07 8.46983204e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.22106687e-01 1.53829631e-02 -4.51201744e-02 ! x y z +-1.98166504e-01 -7.95159095e+00 8.60968175e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +370 2.96336237e-07 2.79966610e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.96084098e-01 6.03701947e-02 2.03429473e-02 ! x y z +-4.00626565e+00 -1.32335109e+01 5.88204163e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +371 2.96336237e-07 5.42129386e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.32804448e-01 3.76268189e-01 2.32702428e-02 ! x y z +-9.34106532e+00 3.32885748e+00 -5.83997787e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +372 2.96336237e-07 6.29442732e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.93351137e-01 -3.58675292e-01 -1.35339509e-02 ! x y z +7.14375596e+00 -5.84118455e+00 -1.56498352e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +373 2.96336237e-07 2.80975739e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.99311343e-01 5.52678059e-02 8.50660489e-04 ! x y z +-3.68576775e+00 -1.33188519e+01 -9.69110262e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +374 2.96336237e-07 1.81660771e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.09322328e-01 1.05761672e+00 -1.24033041e-01 ! x y z +-4.27549892e+00 -3.32755566e+00 -4.19461137e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +375 2.96336237e-07 1.63925954e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.02851334e-02 8.99386865e-02 6.21423455e-03 ! x y z +-1.35022683e+01 1.20270766e+01 3.54967412e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +376 2.96336237e-07 2.95713583e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.17802385e-01 2.28533210e-03 -7.79538718e-04 ! x y z +-1.45445253e-01 -1.34618028e+01 7.02830863e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +377 2.96336237e-07 2.08112975e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.82043397e-02 -1.36771303e-01 7.52965763e-03 ! x y z +1.43908386e+01 -7.15698539e+00 3.65283635e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +378 2.96336237e-07 1.55935417e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.15587490e-02 9.71369829e-02 -3.02386329e-03 ! x y z +-1.55151080e+01 -9.91160961e+00 -1.91553301e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +379 2.96336237e-07 1.25889732e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.82560979e-01 -9.09843620e-01 9.48818739e-03 ! x y z +6.39229955e+00 -1.28106823e+00 5.22457788e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +380 2.96336237e-07 2.12561572e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.23108009e-01 -1.32617278e+00 1.23662701e-01 ! x y z +4.25370146e+00 2.65982371e+00 2.10168530e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +381 2.96336237e-07 9.77292699e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.10615145e-01 1.11068105e-01 -6.40369136e-03 ! x y z +-1.13341270e+00 -7.27360365e+00 -8.60646993e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +382 2.96336237e-07 8.65057596e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.64144451e-02 6.32798503e-01 4.83297027e-03 ! x y z +-7.79463296e+00 -9.41303617e-01 -5.19602064e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +383 2.96336237e-07 4.16694780e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.87795800e-02 2.97221164e-01 -3.70513499e-02 ! x y z +-1.10257888e+01 2.58340095e+00 2.36037441e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +384 2.96336237e-07 1.28879730e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.04909817e-02 9.45845669e-01 1.26414532e-02 ! x y z +-6.42408731e+00 5.52782678e-01 8.84100450e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +385 2.96336237e-07 4.17093904e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.00250010e-01 -4.61717434e-02 4.54437632e-02 ! x y z +1.65626222e+00 1.12062055e+01 4.79470271e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +386 2.96336237e-07 6.42411770e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.20189451e-01 4.56439271e-01 -3.43259226e-02 ! x y z +-8.81936352e+00 2.35383445e+00 2.96741433e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +387 2.96336237e-07 2.97492800e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.16025925e-01 3.67289756e-02 2.05891276e-04 ! x y z +-2.24944633e+00 -1.32322049e+01 1.06228131e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +388 2.96336237e-07 3.73329704e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.12578184e-01 -2.51071118e-01 -3.24633349e-03 ! x y z +1.09246995e+01 -4.88819098e+00 -3.52020662e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +389 2.96336237e-07 4.14696261e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.36304268e+00 -2.71276067e+00 -3.42951553e-01 ! x y z +3.14534902e+00 -1.65403279e+00 5.37973524e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +390 2.96336237e-07 3.36608807e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.42820725e-01 3.46024676e-02 3.75755809e-02 ! x y z +-1.64163701e+00 -1.24702352e+01 8.78352591e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +391 2.96336237e-07 5.94668489e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.41070611e-01 3.63922922e-01 3.80359426e-02 ! x y z +-7.91980525e+00 -5.15491507e+00 -8.75416896e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +392 2.96336237e-07 2.13567453e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.16213940e+00 -1.05899627e+00 6.10323500e-02 ! x y z +3.37229977e+00 -3.67334562e+00 4.67278447e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +393 2.96336237e-07 8.88140076e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.85392094e-01 -4.37105729e-01 3.12169935e-02 ! x y z +5.20303191e+00 -5.77180451e+00 -7.98137265e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +394 2.96336237e-07 7.24437484e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.61820493e-01 2.66353997e-01 2.17965804e-02 ! x y z +-4.24887830e+00 -7.43429555e+00 8.19523242e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +395 2.96336237e-07 6.65300130e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.62221188e-01 1.60781889e-01 7.33018371e-03 ! x y z +-2.93895152e+00 8.49233635e+00 -3.92816950e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +396 2.96336237e-07 7.16134489e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.47706740e-01 -2.77957916e-01 -1.85035016e-02 ! x y z +4.57102613e+00 -7.34757403e+00 -1.19957865e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +397 2.96336237e-07 1.92376584e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.88328782e-02 1.00482109e-01 -1.34781469e-02 ! x y z +-1.19672505e+01 1.14783531e+01 -2.02223637e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +398 2.96336237e-07 2.69462718e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.56618135e-02 -1.95179692e-01 -2.56357128e-02 ! x y z +1.39771705e+01 -1.75913056e+00 -6.02418142e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +399 2.96336237e-07 5.55902193e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.85511389e-01 -1.36099464e-01 -2.96613144e-02 ! x y z +3.18804063e+00 -9.21908363e+00 1.02571066e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +400 2.96336237e-07 5.64862235e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.12182283e-01 -2.72484470e-01 4.07795393e-02 ! x y z +6.19773943e+00 7.33314751e+00 1.59866153e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +401 2.96336237e-07 3.56339876e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.62099711e-01 -1.00892918e-02 1.62109221e-03 ! x y z +4.70613382e-01 1.22581236e+01 3.52052855e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +402 2.96336237e-07 1.61041437e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15583132e-01 2.43382033e-02 9.50065586e-03 ! x y z +-3.80718147e+00 1.78518032e+01 5.52783825e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +403 2.96336237e-07 5.29594349e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.05609539e-01 3.29682657e-01 3.47732583e-02 ! x y z +-8.47434628e+00 5.36846670e+00 -7.50738558e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +404 2.96336237e-07 6.80601190e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.04944854e-01 -2.95970631e-01 -2.59948939e-03 ! x y z +5.21385720e+00 -7.15795730e+00 4.94364928e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +405 2.96336237e-07 3.60706427e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.98415475e-01 -1.76282053e-01 8.95959811e-03 ! x y z +8.06477417e+00 -9.11262800e+00 -8.04042263e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +406 2.96336237e-07 1.22185244e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.50656218e-01 7.80652266e-01 -5.66794931e-03 ! x y z +-5.72481687e+00 -3.30946010e+00 -2.74239813e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +407 2.96336237e-07 2.24692639e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.20076564e-02 1.52461263e-01 -1.66579633e-02 ! x y z +-1.42210536e+01 5.52271861e+00 -2.45125040e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +408 2.96336237e-07 3.01920495e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.37548329e-01 1.74628245e-01 -3.14059950e-04 ! x y z +-1.04659256e+01 8.24037653e+00 -4.78988926e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +409 2.96336237e-07 7.19185417e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.48465166e-01 -2.79691978e-01 1.66983254e-02 ! x y z +4.56350910e+00 -7.34292846e+00 -2.10492338e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +410 2.96336237e-07 2.56051675e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.85944658e-01 -2.77858214e-03 -3.04556434e-02 ! x y z +1.69348588e-01 -1.44728752e+01 4.25617604e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +411 2.96336237e-07 1.41373242e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.57939644e-01 -9.72362754e-01 9.71190219e-02 ! x y z +5.78057114e+00 -2.08525173e+00 4.40592327e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +412 2.96336237e-07 1.88511528e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.34885906e-01 -3.20150550e-02 -7.83482504e-03 ! x y z +3.88157821e+00 1.64046707e+01 -3.59851959e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +413 2.96336237e-07 2.27441077e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.22714051e-01 -1.13915237e-01 -1.01688160e-03 ! x y z +1.04326996e+01 1.12651273e+01 3.88159864e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +414 2.96336237e-07 6.89843026e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.30829755e-01 -2.68506119e-01 8.26621958e-04 ! x y z +4.66297846e+00 -7.48964199e+00 1.15495731e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +415 2.96336237e-07 8.26615711e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.74197899e-01 -5.43602536e-01 -4.29449805e-03 ! x y z +7.11308249e+00 -3.59570455e+00 1.14704901e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +416 2.96336237e-07 4.53486252e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.35582867e-02 3.22357548e-01 -2.71008582e-02 ! x y z +-1.04320563e+01 -2.80914233e+00 -1.18728351e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +417 2.96336237e-07 4.24891295e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.86985797e-01 1.24642087e-01 2.31224096e-04 ! x y z +-4.47483315e+00 -1.03045069e+01 2.88495560e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +418 2.96336237e-07 9.87915013e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.20631660e-01 5.98098282e-02 -7.61709018e-02 ! x y z +-7.17860422e-01 -7.24472311e+00 1.15563596e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +419 2.96336237e-07 1.55024247e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.35156071e-01 7.78478954e-01 4.52480826e-02 ! x y z +-4.00131250e+00 4.25179653e+00 6.63408429e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +420 2.96336237e-07 1.70693696e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.12082937e-02 -1.14865207e-01 1.05466758e-03 ! x y z +1.60352488e+01 -7.11498918e+00 2.45969909e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +421 2.96336237e-07 8.54889179e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.82364301e-01 -2.35786349e-01 -5.03085394e-02 ! x y z +2.90118527e+00 -7.33264171e+00 6.24122661e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +422 2.96336237e-07 2.06759317e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.41969344e+00 5.46475329e-01 -2.75174874e-02 ! x y z +-1.81658616e+00 -4.75431993e+00 -2.61454444e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +423 2.96336237e-07 1.43176681e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.68588764e-01 -5.79721560e-01 1.44555313e-01 ! x y z +3.40325467e+00 5.08661448e+00 -6.51907329e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +424 2.96336237e-07 2.92359728e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.97666602e-02 2.11166252e-01 -1.17087721e-02 ! x y z +-1.32176825e+01 -2.55941044e+00 -1.52335687e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +425 2.96336237e-07 2.02675932e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.53168207e-02 -1.42171945e-01 4.61423367e-03 ! x y z +1.54907880e+01 -4.94299964e+00 -1.77986296e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +426 2.96336237e-07 2.16684285e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.54847711e+00 -3.30904648e-01 -2.03004907e-01 ! x y z +1.03397055e+00 -4.86225620e+00 1.15869835e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +427 2.96336237e-07 1.55313392e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.12093570e-02 9.51509221e-02 -1.71687947e-02 ! x y z +-1.55998841e+01 -1.00728646e+01 -2.63595862e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +428 2.96336237e-07 6.31130819e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.34969553e-02 4.63360586e-01 -1.87530887e-02 ! x y z +-9.17524778e+00 6.43565776e-01 -5.44346029e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +429 2.96336237e-07 1.83521468e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.34485639e-01 -2.62016560e-03 -1.35071107e-02 ! x y z +7.47594237e-02 -1.68864601e+01 2.61653309e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +430 2.96336237e-07 2.39309130e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.63939940e-01 -6.15326804e-02 -1.84454836e-02 ! x y z +5.01651888e+00 -1.39589861e+01 2.10673063e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +431 2.96336237e-07 2.93091033e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.36454071e-01 1.67420190e-01 2.31157124e-03 ! x y z +-1.04670318e+01 8.55064839e+00 -6.49096834e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +432 2.96336237e-07 4.22263109e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.60437990e-01 3.05129261e+00 4.89087031e-01 ! x y z +-3.53781459e+00 -4.06922362e-01 -6.08435339e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +433 2.96336237e-07 7.48573854e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.47518755e-02 5.44565306e-01 1.16419465e-02 ! x y z +-8.35003295e+00 1.31556143e+00 -4.25106838e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +434 2.96336237e-07 7.30614080e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.55024567e-01 2.85462982e-01 2.34849534e-02 ! x y z +-4.55328116e+00 -7.26309227e+00 7.69716795e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +435 2.96336237e-07 1.38969036e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.01667846e-02 7.45119946e-02 9.93371195e-04 ! x y z +-1.42999379e+01 1.34614816e+01 1.65501165e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +436 2.96336237e-07 2.97791322e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.38715001e-01 -1.64751522e-01 -4.22198947e-02 ! x y z +1.02952577e+01 -8.58293358e+00 -3.42918908e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +437 2.96336237e-07 1.70873229e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.02735594e-02 -1.23592443e-01 1.46946078e-02 ! x y z +1.74459801e+01 2.83547417e+00 -2.38379975e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +438 2.96336237e-07 7.28616991e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.86775760e-01 -2.06021084e-01 -9.10048444e-02 ! x y z +3.34626573e+00 7.90263542e+00 1.02025325e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +439 2.96336237e-07 1.35991176e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.02400818e-02 -7.03889648e-02 -1.23708027e-02 ! x y z +1.41211931e+01 1.39006563e+01 1.08576673e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +440 2.96336237e-07 1.87977460e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.46315901e-01 1.22685859e+00 1.52157688e-02 ! x y z +-4.70252112e+00 -2.47549242e+00 4.25683364e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +441 2.96336237e-07 1.99751638e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.28398210e-03 1.46740000e-01 7.92684483e-03 ! x y z +-1.63576039e+01 -8.26094255e-01 2.38645839e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +442 2.96336237e-07 2.45251621e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.67123503e-02 -1.74017282e-01 1.47575177e-02 ! x y z +1.42738524e+01 -3.77230021e+00 4.89179037e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +443 2.96336237e-07 2.71954726e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.74868597e-01 9.54796146e-02 2.13928818e-02 ! x y z +-6.65021169e+00 1.23302849e+01 -8.28868729e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +444 2.96336237e-07 2.40120483e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.27247667e-01 1.50687224e+00 -6.09014414e-02 ! x y z +-4.00962724e+00 -2.48167195e+00 -2.06220661e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +445 2.96336237e-07 1.28146659e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.29512661e-01 -8.33678655e-01 -1.00503750e-01 ! x y z +5.75433130e+00 -2.88687173e+00 -6.64292970e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +446 2.96336237e-07 2.21454047e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.53292870e-01 5.48794077e-02 -1.03566499e-02 ! x y z +-5.26757054e+00 -1.46208727e+01 6.42185817e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +447 2.96336237e-07 3.71317328e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.72380007e-01 -2.09794020e-02 -4.48877896e-03 ! x y z +9.01380369e-01 1.19705549e+01 -7.28828651e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +448 2.96336237e-07 1.88133306e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.36629235e-02 -1.33287212e-01 1.70068999e-02 ! x y z +1.62171433e+01 4.32627342e+00 1.84307871e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +449 2.96336237e-07 2.82967444e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.32972925e-01 1.60363672e-01 2.62532313e-03 ! x y z +-1.05962488e+01 -8.78492767e+00 3.39026344e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +450 2.96336237e-07 1.97476666e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.14667974e-01 8.60420612e-02 -2.41968058e-02 ! x y z +-1.00740249e+01 -1.29298760e+01 1.73225479e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +451 2.96336237e-07 1.24560075e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.99044641e-01 6.94415774e-01 -2.72189745e-02 ! x y z +-4.95406800e+00 4.28653731e+00 3.31209230e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +452 2.96336237e-07 2.48697738e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.60387987e-01 -8.55569874e-02 -2.17110739e-02 ! x y z +6.66346394e+00 1.29684727e+01 -1.78603358e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +453 2.96336237e-07 1.66926391e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.19091709e-02 -1.18611467e-01 6.93991962e-04 ! x y z +1.70595380e+01 4.57810905e+00 -3.12057238e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +454 2.96336237e-07 5.44556123e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.21229996e-01 2.40071132e-01 -9.66251321e-04 ! x y z +-5.94994824e+00 -7.94081626e+00 -5.79077084e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +455 2.96336237e-07 6.41822118e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.48225673e-01 -1.48251167e-01 -1.62402065e-02 ! x y z +2.79897756e+00 -8.57698534e+00 1.49583909e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +456 2.96336237e-07 3.30547629e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.86095015e-01 -1.55506128e-01 2.39343721e-02 ! x y z +7.94956344e+00 9.77556087e+00 1.75948163e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +457 2.96336237e-07 8.87191145e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.37324082e-01 -3.71096574e-01 1.40059736e-02 ! x y z +4.41299141e+00 -6.39105431e+00 3.88065657e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +458 2.96336237e-07 7.93953146e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.42917106e-01 -5.66898954e-01 -1.70393543e-02 ! x y z +7.96327449e+00 -2.01468266e+00 1.25216253e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +459 2.96336237e-07 2.69623577e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.25885000e-02 -1.88370549e-01 8.01319278e-03 ! x y z +1.33515062e+01 -4.37290691e+00 1.13110545e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +460 2.96336237e-07 6.88113661e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.36878817e-02 5.01468870e-01 -3.49387791e-02 ! x y z +-8.73675688e+00 -1.14770527e+00 -5.34876959e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +461 2.96336237e-07 3.63505260e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.29585488e-01 -1.34800853e-01 2.88054342e-02 ! x y z +6.13218401e+00 -1.04784085e+01 -3.35334988e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +462 2.96336237e-07 4.48600356e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.80904494e-01 1.72983824e-01 2.39099476e-02 ! x y z +-5.66892025e+00 -9.31281392e+00 6.09045924e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +463 2.96336237e-07 4.60421201e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.37402744e-01 2.15490530e-02 2.57295112e-02 ! x y z +-7.22874362e-01 -1.07589434e+01 -4.21222948e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +464 2.96336237e-07 5.14296808e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.50742029e-01 -2.82234982e-01 -2.94391082e-02 ! x y z +7.63843944e+00 -6.77837022e+00 -3.04010490e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +465 2.96336237e-07 6.66724405e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.80450534e-01 -3.10806357e-01 3.06213287e-03 ! x y z +5.66471824e+00 6.94483108e+00 9.24105070e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +466 2.96336237e-07 5.86356219e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.53301328e-02 4.28458971e-01 1.31347115e-02 ! x y z +-9.45379180e+00 1.23817457e+00 -6.03268825e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +467 2.96336237e-07 2.94669732e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.11978979e-01 3.99104729e-02 2.49901868e-02 ! x y z +-2.32258920e+00 1.32046443e+01 -1.40139404e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +468 2.96336237e-07 2.80867894e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.08747588e+00 -1.71879511e+00 3.78360474e-01 ! x y z +3.69842118e+00 -2.32368911e+00 6.68941522e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +469 2.96336237e-07 3.45065089e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.04953230e-01 -1.48069140e-01 -2.62804192e-02 ! x y z +7.16157278e+00 -1.01193616e+01 1.25927513e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +470 2.96336237e-07 4.69733726e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.84029652e-02 -3.35038325e-01 2.50633642e-04 ! x y z +1.02947402e+01 -2.72986635e+00 -5.74793960e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +471 2.96336237e-07 4.18657783e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.67389609e-02 2.94933763e-01 2.20228610e-02 ! x y z +-1.07314933e+01 3.01395895e+00 1.97635356e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +472 2.96336237e-07 3.21458680e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.17769643e-01 9.06562121e-02 -2.14940438e-02 ! x y z +-5.04519229e+00 1.17994339e+01 -1.38944344e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +473 2.96336237e-07 3.26326331e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.35770292e+00 -3.69216175e-01 -2.68917545e-01 ! x y z +6.64782930e-01 3.98788156e+00 3.28458551e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +474 2.96336237e-07 8.21429873e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.56084537e-02 -6.02584980e-01 3.87591085e-02 ! x y z +7.97734690e+00 -4.29857311e-01 -1.25323125e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +475 2.96336237e-07 8.83749527e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.43818011e-02 -6.48128586e-01 -5.07797525e-02 ! x y z +7.76024201e+00 5.42566020e-01 -7.00809703e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +476 2.96336237e-07 1.09821035e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.63672881e-01 7.63519991e-01 -4.65831578e-02 ! x y z +-6.60168883e+00 -2.27863704e+00 -7.83476422e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +477 2.96336237e-07 1.37334600e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.93911296e-01 -1.97273622e-01 -6.33817221e-03 ! x y z +1.19142617e+00 -6.02121881e+00 1.10339274e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +478 2.96336237e-07 1.07104699e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.74830200e-01 5.40122002e-01 9.49532824e-03 ! x y z +-4.80149648e+00 -5.13565644e+00 7.88810664e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +479 2.96336237e-07 1.38042525e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.61834016e-02 9.79775804e-02 7.20783264e-03 ! x y z +-1.89353132e+01 5.18816885e+00 -1.68983838e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +480 2.96336237e-07 5.10978276e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.66903284e-01 6.91149116e-02 -5.01968098e-02 ! x y z +-1.85318085e+00 -1.00593554e+01 -2.75616160e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +481 2.96336237e-07 3.05274909e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.71729164e-01 -1.40980333e-01 3.45145092e-02 ! x y z +8.50264083e+00 1.01157393e+01 -9.78829565e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +482 2.96336237e-07 7.59583015e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.74863167e-01 -4.87288914e-01 -7.01091981e-03 ! x y z +7.29926377e+00 -4.12480370e+00 5.13053423e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +483 2.96336237e-07 5.02618655e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.98738496e-02 3.63192226e-01 2.03347619e-02 ! x y z +-1.01387678e+01 1.92473563e+00 1.55630941e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +484 2.96336237e-07 1.49466787e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.08546583e+00 -1.77271688e-01 1.48019030e-02 ! x y z +9.61232521e-01 -5.91530968e+00 -9.21884448e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +485 2.96336237e-07 1.84096963e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.13395394e-01 -7.05886785e-02 2.37638570e-02 ! x y z +9.13457331e+00 1.43767027e+01 -8.44936245e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +486 2.96336237e-07 1.53863823e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.78394029e-02 -9.61026782e-02 -1.60359293e-02 ! x y z +1.59663299e+01 9.66929005e+00 -2.84587179e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +487 2.96336237e-07 3.08205176e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.15422727e-01 1.94890266e-01 8.56867922e-03 ! x y z +-1.13546945e+01 -6.71532963e+00 -6.41539415e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +488 2.96336237e-07 1.45829767e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.25199647e-02 -5.03219272e-02 2.10496182e-02 ! x y z +9.15952325e+00 1.68438130e+01 -1.66829844e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +489 2.96336237e-07 5.60589128e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.92688131e-01 1.16571621e-01 5.18783048e-02 ! x y z +-2.81164605e+00 9.36227202e+00 2.43625132e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +490 2.96336237e-07 2.18575036e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.57192142e-01 3.50036711e-02 1.24490771e-03 ! x y z +-3.42010231e+00 1.52757278e+01 -1.12298984e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +491 2.96336237e-07 1.96739500e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.88624087e-02 1.39124359e-01 -9.02129479e-03 ! x y z +-1.59048400e+01 -4.47159171e+00 -3.90067015e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +492 2.96336237e-07 2.15913074e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.55584668e-01 3.17335414e-02 6.41741208e-03 ! x y z +-3.09008864e+00 -1.54338076e+01 9.24390160e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +493 2.96336237e-07 1.62567352e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19461645e+00 -8.83644411e-02 -2.61179095e-03 ! x y z +4.25024298e-01 -5.72376019e+00 -4.65699708e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +494 2.96336237e-07 1.42504876e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.46323736e-02 -1.01955043e-01 -3.55389051e-03 ! x y z +1.88487562e+01 -4.53688143e+00 -6.06593359e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +495 2.96336237e-07 5.38016367e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.98038356e+00 -3.40535260e+00 -4.66042110e-01 ! x y z +2.70747247e+00 -1.60138376e+00 2.17920750e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +496 2.96336237e-07 1.05967929e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.07313263e-02 -7.76659974e-01 -5.69065282e-02 ! x y z +7.07563163e+00 -5.84817707e-01 3.12535117e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +497 2.96336237e-07 3.97562064e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.78863913e+00 8.29018944e-01 3.31578789e-01 ! x y z +-1.06249962e+00 -3.51171701e+00 -1.50617364e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +498 2.96336237e-07 1.64010346e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19312604e-01 6.93617890e-03 -1.66125280e-02 ! x y z +-9.67362351e-01 -1.80606482e+01 -6.64959086e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +499 2.96336237e-07 2.35165304e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.67083527e-02 -1.72316262e-01 -3.77617658e-03 ! x y z +1.50252499e+01 -1.48031463e+00 3.11671094e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +500 2.96336237e-07 2.37291382e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.42837068e+00 -1.00814045e+00 -5.13788961e-03 ! x y z +2.73953272e+00 3.88140381e+00 -6.32240209e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +501 2.96336237e-07 8.36411429e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.23810047e-01 5.73523706e-01 2.23891100e-02 ! x y z +-7.43705090e+00 2.87749193e+00 7.03965829e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +502 2.96336237e-07 4.23744274e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.29428284e-01 -2.10230652e-01 -2.69694466e-02 ! x y z +7.61962290e+00 -8.24358240e+00 -5.32437540e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +503 2.96336237e-07 2.80990992e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.39607016e-02 1.91767602e-01 -2.43899192e-02 ! x y z +-1.28301360e+01 4.69731488e+00 -2.01320121e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +504 2.96336237e-07 2.10323912e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.23915003e-02 1.35674808e-01 -1.89893003e-02 ! x y z +-1.38645742e+01 7.66898473e+00 1.92306704e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +505 2.96336237e-07 1.40586241e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.79792818e-02 -6.81422303e-02 -3.99266216e-05 ! x y z +1.28465439e+01 -1.47026621e+01 -4.09588458e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +506 2.96336237e-07 2.61644240e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.85232115e-01 5.36288795e-02 -6.65183829e-03 ! x y z +-3.97027669e+00 -1.37312546e+01 -2.03560707e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +507 2.96336237e-07 1.83025109e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.37652645e-02 1.32666931e-01 -3.29140196e-03 ! x y z +-1.68344741e+01 -3.02898827e+00 -4.84909032e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +508 2.96336237e-07 2.00385674e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.58952901e-01 1.10088428e+00 2.11129960e-01 ! x y z +-3.91006081e+00 -3.38903362e+00 -5.25833510e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +509 2.96336237e-07 2.10409880e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.45070891e-02 -1.22625130e-01 -8.21405938e-03 ! x y z +1.26393972e+01 -9.73581830e+00 -1.12303107e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +510 2.96336237e-07 3.44196049e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.35866189e-01 9.28315354e-02 -1.28285948e-03 ! x y z +-4.57176896e+00 -1.16107525e+01 -2.50452619e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +511 2.96336237e-07 1.58326635e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.51746622e-01 6.70204769e-01 2.52434901e-02 ! x y z +-3.35134130e+00 4.75908858e+00 2.84487230e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +512 2.96336237e-07 1.88062826e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.96139949e-02 -1.24558414e-01 -1.28354607e-02 ! x y z +1.52137734e+01 -7.26806241e+00 -2.12454466e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +513 2.96336237e-07 1.69557622e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.04758010e-01 6.78623954e-02 3.72999244e-03 ! x y z +-9.45160423e+00 1.47535363e+01 -3.03166321e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +514 2.96336237e-07 1.86915616e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.25033228e-01 5.23558394e-02 -2.32494756e-02 ! x y z +-6.67105471e+00 -1.55675151e+01 7.08584215e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +515 2.96336237e-07 2.37212396e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.25364198e-02 -1.69346444e-01 -1.06788137e-02 ! x y z +1.42635079e+01 -3.76132657e+00 2.79486328e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +516 2.96336237e-07 4.87550708e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.54310915e-01 6.05134652e-02 -6.53974311e-03 ! x y z +-1.75726370e+00 -1.03156503e+01 -4.43085251e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +517 2.96336237e-07 3.77494352e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.36713205e-01 -2.41367591e-01 -1.99006867e-02 ! x y z +1.01604142e+01 5.91358715e+00 -1.92832189e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +518 2.96336237e-07 7.25955810e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.88703537e-01 -3.66782723e-01 -3.95139801e-03 ! x y z +5.85998079e+00 6.21645634e+00 -9.59639662e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +519 2.96336237e-07 1.32620305e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.33345329e-02 -9.73694597e-01 -5.95991625e-02 ! x y z +6.35786090e+00 2.01006206e-01 1.18822475e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +520 2.96336237e-07 1.39487685e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.15930352e-02 4.43288352e-02 1.37885447e-02 ! x y z +-8.54263494e+00 1.76547673e+01 -7.83403605e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +521 2.96336237e-07 1.59293630e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.59646180e-02 -7.89984657e-02 1.21394860e-02 ! x y z +1.24654876e+01 1.31181324e+01 -2.95214546e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +522 2.96336237e-07 1.98247277e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.30817476e-01 -6.46309480e-02 -6.56300943e-03 ! x y z +7.22843846e+00 1.47325007e+01 -9.61333526e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +523 2.96336237e-07 2.12070858e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.68896882e-02 1.40477764e-01 1.61707214e-02 ! x y z +-1.43381301e+01 6.80655094e+00 3.22001948e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +524 2.96336237e-07 5.13604328e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.58234319e-01 1.20461127e-01 -1.21864145e-02 ! x y z +-3.24155378e+00 -9.69030255e+00 -1.92293262e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +525 2.96336237e-07 4.10902358e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.45377903e+00 1.76485940e+00 4.33485313e-02 ! x y z +-2.11172628e+00 -2.93273226e+00 -1.25768796e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +526 2.96336237e-07 1.49304338e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.94115625e-02 6.38050179e-02 8.59670957e-04 ! x y z +-1.10150464e+01 1.54365794e+01 4.37366407e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +527 2.96336237e-07 2.86881087e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.89637459e-01 9.31542402e-02 -9.14067738e-03 ! x y z +-5.99723059e+00 1.22602491e+01 4.95210380e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +528 2.96336237e-07 1.55558944e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.13400087e-01 -8.69466529e-03 -1.32599317e-02 ! x y z +1.72514459e+00 -1.83063899e+01 -2.62908926e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +529 2.96336237e-07 2.15638745e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.47995018e-01 5.75461361e-02 1.75652969e-03 ! x y z +-5.71848999e+00 1.46865069e+01 -5.14295377e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +530 2.96336237e-07 2.10629647e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.37509872e-01 -7.21985691e-02 9.82476434e-04 ! x y z +7.38932340e+00 1.41055794e+01 5.77939589e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +531 2.96336237e-07 3.19581465e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.89229200e-03 2.31683820e-01 4.27609062e-02 ! x y z +-1.29059816e+01 -4.04340421e-01 7.89790953e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +532 2.96336237e-07 3.80292466e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.29332026e-02 2.75088091e-01 -2.29074633e-03 ! x y z +-1.16534692e+01 -2.25226228e+00 1.73926099e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +533 2.96336237e-07 8.08615790e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.31548001e-01 5.81644937e-01 -1.92828250e-02 ! x y z +-7.91943835e+00 1.77979999e+00 -4.07451925e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +534 2.96336237e-07 9.37824352e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.11546674e-01 -4.52679827e-01 -9.71334944e-02 ! x y z +5.05766923e+00 5.59911288e+00 5.97503175e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +535 2.96336237e-07 2.39755970e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.61851139e-01 6.37804133e-02 3.19767135e-02 ! x y z +-5.65849551e+00 -1.37628870e+01 -1.18447683e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +536 2.96336237e-07 3.92931879e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.51012389e-01 -2.46606087e-01 7.53479358e-03 ! x y z +9.96362197e+00 6.10470212e+00 9.01395516e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +537 2.96336237e-07 5.26277224e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.50289584e-01 -1.65676588e-01 5.67832345e-03 ! x y z +4.28508529e+00 -9.00879595e+00 1.54200267e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +538 2.96336237e-07 1.42636182e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.75445959e-01 5.69629175e-01 -1.08396720e-01 ! x y z +-3.36296391e+00 5.12654357e+00 -1.58238342e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +539 2.96336237e-07 4.03332109e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.24937685e-01 2.67583033e-01 -2.89409684e-02 ! x y z +-1.04552212e+01 4.88787128e+00 3.92694408e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +540 2.96336237e-07 1.51996823e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.10722600e+00 1.73548896e-01 -2.20777532e-02 ! x y z +-9.22071822e-01 -5.85858030e+00 3.51680681e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +541 2.96336237e-07 3.94721319e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.91630441e-01 -2.18416612e-01 6.71268569e-03 ! x y z +8.70314928e+00 -7.67030314e+00 -1.13964851e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +542 2.96336237e-07 9.01095584e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.43626399e-01 6.36081444e-01 1.25576531e-01 ! x y z +-7.50316582e+00 1.74429262e+00 -2.76987385e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +543 2.96336237e-07 4.26708936e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.51859852e-01 -2.75296435e-01 -1.80321879e-03 ! x y z +9.81312713e+00 5.40527617e+00 -8.07894004e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +544 2.96336237e-07 2.09631430e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19646120e-01 -9.38928734e-02 2.66190406e-02 ! x y z +9.98049746e+00 -1.24600020e+01 9.15594008e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +545 2.96336237e-07 2.91322807e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.44624039e-02 2.09694106e-01 1.47358113e-02 ! x y z +-1.32394182e+01 -2.74490731e+00 -8.25024319e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +546 2.96336237e-07 3.71641059e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.48858646e-02 -2.67804958e-01 -3.40132278e-02 ! x y z +1.17526334e+01 2.12720619e+00 -1.28483496e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +547 2.96336237e-07 2.21213140e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.05902475e-01 1.23466476e-01 1.11122575e-02 ! x y z +-1.15218808e+01 1.01052113e+01 -2.66718528e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +548 2.96336237e-07 6.33840222e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.33468133e-02 4.62176323e-01 -3.94042822e-02 ! x y z +-9.13439328e+00 1.04329843e+00 -1.38557746e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +549 2.96336237e-07 4.39863596e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.65066452e-01 3.13215256e+00 -4.79875796e-01 ! x y z +-3.41576805e+00 -6.89596386e-01 2.41535843e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +550 2.96336237e-07 2.69688250e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.70494651e-01 1.01389806e-01 1.13846483e-02 ! x y z +-7.16363306e+00 -1.21143389e+01 7.56698890e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +551 2.96336237e-07 1.87425525e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.37092662e-01 1.47070424e-02 -6.42290350e-03 ! x y z +-1.82777623e+00 -1.68068813e+01 5.02981376e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +552 2.96336237e-07 1.87449787e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.70463571e-02 -1.19985347e-01 -1.34352121e-02 ! x y z +1.47646213e+01 8.23106039e+00 2.28690720e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +553 2.96336237e-07 7.52709177e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.42639429e-01 -1.09943868e-01 -2.21172532e-02 ! x y z +1.67832514e+00 -8.26484008e+00 -4.04191328e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +554 2.96336237e-07 1.99863766e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19921410e+00 -8.53319367e-01 1.61413409e-02 ! x y z +3.00269256e+00 -4.21903206e+00 9.42205511e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +555 2.96336237e-07 2.28586675e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.59777449e-01 -5.28881823e-02 -2.92518092e-03 ! x y z +4.81948118e+00 1.45380762e+01 7.80128461e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +556 2.96336237e-07 2.99582435e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.29411621e+00 1.78281849e+00 1.11116640e-01 ! x y z +-3.41610643e+00 -2.44942993e+00 -4.84742527e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +557 2.96336237e-07 8.81117215e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.35008466e-01 1.31435413e-01 -1.46413679e-02 ! x y z +-1.58449106e+00 -7.63523076e+00 -3.02586995e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +558 2.96336237e-07 2.44024025e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.27616010e-02 -1.64056091e-01 9.32142368e-03 ! x y z +1.35389561e+01 5.94751097e+00 -1.02013369e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +559 2.96336237e-07 8.09745189e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.00072858e-01 3.23316707e-01 3.38141528e-02 ! x y z +-4.27710487e+00 6.75782783e+00 -1.49194244e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +560 2.96336237e-07 3.35304996e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.40791718e-01 -2.01902823e-01 2.16741965e-02 ! x y z +1.03799556e+01 7.19829477e+00 -3.62821649e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +561 2.96336237e-07 3.50732384e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.12899814e+00 1.42939356e+00 3.23469933e-01 ! x y z +-2.17681574e+00 -3.24414472e+00 6.11039816e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +562 2.96336237e-07 1.81351661e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.21898926e-02 1.05086314e-01 -6.77716277e-05 ! x y z +-1.35449400e+01 1.06218556e+01 1.84672746e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +563 2.96336237e-07 3.70963516e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.27034014e-01 2.69465591e+00 -2.27882453e-01 ! x y z +-3.73239917e+00 -6.13975293e-01 -2.89358782e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +564 2.96336237e-07 1.85538359e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.36452659e-02 -9.94674735e-02 -3.90578610e-03 ! x y z +1.23354529e+01 -1.14836238e+01 -2.19300428e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +565 2.96336237e-07 1.59609305e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.73730630e-01 1.07455170e+00 1.81100951e-02 ! x y z +-5.28646474e+00 -2.32640775e+00 -5.36238492e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +566 2.96336237e-07 3.83981235e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.32629110e-01 1.60450925e-01 -2.84219537e-03 ! x y z +-6.71072850e+00 9.73443437e+00 -8.12755507e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +567 2.96336237e-07 1.41144464e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.88297358e-02 9.60042376e-02 9.37391450e-03 ! x y z +-1.80706494e+01 7.18534788e+00 1.18855694e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +568 2.96336237e-07 1.51926723e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.21119394e-02 6.24740196e-02 -1.16898070e-02 ! x y z +-1.06308898e+01 -1.54270819e+01 1.31585604e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +569 2.96336237e-07 3.18834942e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.81085072e-01 -1.49111264e-01 -1.22381880e-02 ! x y z +8.22661447e+00 1.00159591e+01 -1.87418050e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +570 2.96336237e-07 2.76040969e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.78575101e-01 -1.87758885e+00 3.51506542e-02 ! x y z +4.03074608e+00 -1.68418282e+00 -5.82453464e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +571 2.96336237e-07 1.50235923e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.60738225e-02 -8.87329905e-02 2.31718431e-03 ! x y z +1.51492466e+01 1.12746331e+01 -4.03263310e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +572 2.96336237e-07 1.41960489e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.09346681e-02 5.14951673e-02 3.64324554e-03 ! x y z +-9.59034656e+00 -1.68799980e+01 -7.91768623e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +573 2.96336237e-07 1.76446528e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.29985747e-01 -1.59036645e-03 3.93649392e-03 ! x y z +1.93847745e-01 1.74138292e+01 2.50074551e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +574 2.96336237e-07 4.88945166e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.46311157e+00 -9.14252085e-01 -3.48610571e-01 ! x y z +8.54465379e-01 -3.19883187e+00 -1.26377589e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +575 2.96336237e-07 3.11866777e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.12294429e-01 -8.35805260e-02 -2.42273615e-02 ! x y z +4.92904842e+00 1.20534557e+01 1.64014359e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +576 2.96336237e-07 1.48760031e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24207381e-02 1.08722229e-01 -9.47808556e-04 ! x y z +-1.87932169e+01 -2.14040298e+00 -1.85576118e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +577 2.96336237e-07 3.87436377e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.56799683e+00 -1.24763797e+00 5.66021649e-03 ! x y z +1.62627663e+00 3.34292534e+00 -3.76455778e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +578 2.96336237e-07 1.16389287e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.44401067e-01 5.62584309e-01 5.79511708e-02 ! x y z +-4.45779140e+00 -5.11418166e+00 1.14508903e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +579 2.96336237e-07 7.55726903e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.28182526e-02 -5.44691691e-01 -8.20485799e-02 ! x y z +8.32087566e+00 1.19399306e+00 4.02689629e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +580 2.96336237e-07 7.44095731e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.24635829e-01 5.33869637e-01 1.50316921e-02 ! x y z +-8.24635362e+00 1.95018858e+00 -3.63964929e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +581 2.96336237e-07 6.40404367e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.69467391e-01 4.36355014e-01 5.83964390e-02 ! x y z +-8.53604431e+00 -3.27613954e+00 -2.90794852e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +582 2.96336237e-07 4.17029826e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.60906602e-02 3.01432661e-01 -1.90984647e-02 ! x y z +-1.11036840e+01 -1.97930310e+00 1.13510485e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +583 2.96336237e-07 6.14266528e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.27467175e-01 3.91731461e-01 -5.04600203e-04 ! x y z +-8.07095903e+00 -4.68031825e+00 -5.71919851e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +584 2.96336237e-07 2.18598885e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.62271901e-02 -1.54540898e-01 -2.65585886e-02 ! x y z +1.52570786e+01 3.55344727e+00 1.22218432e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +585 2.96336237e-07 1.51631116e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.07832444e-02 -6.36200842e-02 -1.33144249e-02 ! x y z +1.09313736e+01 -1.52307509e+01 -1.48953721e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +586 2.96336237e-07 1.38036572e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.91749307e-02 8.88729285e-02 -6.36406080e-04 ! x y z +-1.72469187e+01 9.54491204e+00 -7.05594229e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +587 2.96336237e-07 1.43854413e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.23403936e-02 7.71844338e-02 -8.39500380e-03 ! x y z +-1.40989009e+01 1.31187303e+01 -7.64787423e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +588 2.96336237e-07 1.04584583e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.19019526e-01 -4.55774501e-01 -5.86070392e-02 ! x y z +4.25411040e+00 5.60431169e+00 1.28928884e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +589 2.96336237e-07 6.91565422e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.92164797e-03 -5.09070142e-01 -1.05625324e-02 ! x y z +8.80208381e+00 5.89235329e-02 2.83030007e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +590 2.96336237e-07 1.60450446e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.76763840e-02 -1.03250821e-01 -2.35168325e-03 ! x y z +1.58765844e+01 -8.90933533e+00 1.41106303e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +591 2.96336237e-07 1.21525461e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.04983136e-01 7.36448723e-01 8.20833448e-02 ! x y z +-5.43930432e+00 -3.77325399e+00 3.51455868e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +592 2.96336237e-07 2.23798852e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.22283337e-02 1.64769781e+00 2.73366451e-02 ! x y z +-4.89029510e+00 -1.55691533e-01 2.51345980e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +593 2.96336237e-07 2.48541288e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.75601377e-01 -4.70165867e-02 -2.19260970e-02 ! x y z +3.60823292e+00 1.41545302e+01 -1.48105034e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +594 2.96336237e-07 1.11622544e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.96645903e-01 -7.98044760e-01 2.04579528e-02 ! x y z +6.72281589e+00 1.64954714e+00 -3.17131703e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +595 2.96336237e-07 2.38634159e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.60463085e-02 -1.70858650e-01 -2.28151059e-02 ! x y z +1.45855513e+01 2.85087086e+00 1.69894649e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +596 2.96336237e-07 5.97331168e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.28662273e-01 -9.17330164e-02 -3.82734106e-02 ! x y z +1.94592874e+00 -9.25024513e+00 5.92353521e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +597 2.96336237e-07 2.67868225e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.63475007e-02 -1.77137918e-01 1.41083788e-03 ! x y z +1.27296681e+01 6.19800971e+00 -3.29690764e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +598 2.96336237e-07 1.81821597e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.30757598e-02 -1.11353949e-01 -1.40962489e-02 ! x y z +1.43527379e+01 9.12650252e+00 2.33278920e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +599 2.96336237e-07 6.94275197e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.02482808e-01 8.18401487e-02 -4.84234405e-02 ! x y z +-1.51031900e+00 8.57435180e+00 -1.18026589e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +600 2.96336237e-07 3.25134987e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.46227703e+00 -1.87594396e+00 2.45026033e-01 ! x y z +3.17551882e+00 -2.51759932e+00 -3.37504561e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +601 2.96336237e-07 8.03783069e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.69874202e-01 1.59465770e-01 1.35551450e-02 ! x y z +-2.19867661e+00 -7.86092835e+00 2.84630093e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +602 2.96336237e-07 3.12174638e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.74974581e-02 -2.16560994e-01 1.02688120e-03 ! x y z +1.23335326e+01 -4.41162723e+00 5.32348653e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +603 2.96336237e-07 1.90518686e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.21851956e+00 6.77989624e-01 1.68433634e-01 ! x y z +-2.59340742e+00 -4.61670361e+00 -2.04740034e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +604 2.96336237e-07 5.63929521e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.91433941e-02 4.10002809e-01 -2.04495741e-04 ! x y z +-9.60487064e+00 1.61194455e+00 5.10206236e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +605 2.96336237e-07 8.16273503e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.49233759e-02 5.97511742e-01 3.07716540e-02 ! x y z +-8.05513568e+00 -7.69105637e-01 5.26573500e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +606 2.96336237e-07 3.25799451e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.74566337e+00 1.62101485e+00 -2.87608071e-01 ! x y z +-2.77124269e+00 2.95845630e+00 -1.47490738e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +607 2.96336237e-07 8.18469440e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.40350917e-01 4.97473380e-01 1.41150953e-02 ! x y z +-6.67596681e+00 -4.57042779e+00 1.18431878e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +608 2.96336237e-07 2.61815684e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.83073308e-01 -6.15956666e-02 2.50370546e-05 ! x y z +4.54736224e+00 1.35416066e+01 -9.29234355e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +609 2.96336237e-07 5.90625249e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.16894922e-01 1.20061003e-01 -3.17923636e-02 ! x y z +-2.62881151e+00 9.15316489e+00 2.66002108e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +610 2.96336237e-07 3.27023679e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.12197902e-01 1.12217856e-01 -2.02426741e-02 ! x y z +-5.79267316e+00 -1.12761097e+01 -1.77860138e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +611 2.96336237e-07 5.06876426e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.72533883e+00 4.16240206e-02 2.60752165e-01 ! x y z +-2.42882755e-02 3.24591487e+00 -1.75584896e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +612 2.96336237e-07 4.35066251e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.65258650e-02 3.17545541e-01 5.57474330e-03 ! x y z +-1.09635234e+01 -1.60736686e+00 8.38908971e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +613 2.96336237e-07 1.44594811e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.69273956e-03 1.06161650e-01 6.24217721e-03 ! x y z +-1.91745027e+01 -1.10664853e+00 1.35563944e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +614 2.96336237e-07 1.03732981e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.43380912e-01 1.70012029e-01 4.98369944e-02 ! x y z +-1.64856227e+00 -6.93061377e+00 -9.48448729e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +615 2.96336237e-07 1.85397989e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.97069191e-02 -1.33432298e-01 -2.90588842e-03 ! x y z +1.65432860e+01 -3.70609919e+00 9.76895217e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +616 2.96336237e-07 3.05998157e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.79995669e+00 1.31310730e+00 -3.14167634e-01 ! x y z +-2.51433364e+00 3.31022362e+00 -5.43846538e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +617 2.96336237e-07 1.93349590e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.59856145e-02 -1.26189079e-01 2.06258266e-03 ! x y z +1.47368402e+01 7.71794514e+00 6.82895014e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +618 2.96336237e-07 1.64910584e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.12201131e-02 -1.13788907e-01 -1.04423714e-02 ! x y z +1.69533477e+01 6.04658594e+00 9.99480874e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +619 2.96336237e-07 2.78867604e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.79960014e-01 -9.84416632e-02 -1.14695792e-02 ! x y z +6.47555761e+00 -1.20947922e+01 1.97631665e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +620 2.96336237e-07 2.29590806e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.38831743e-02 -1.56637787e-01 -5.44913095e-04 ! x y z +1.41412568e+01 -5.76960987e+00 -1.81307125e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +621 2.96336237e-07 6.07952654e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.31076749e-02 4.44770577e-01 -2.69105921e-02 ! x y z +-9.28431439e+00 9.51562560e-01 1.05373719e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +622 2.96336237e-07 2.60616309e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.62195318e+00 -1.00414075e+00 -2.01269243e-01 ! x y z +2.40937187e+00 3.83958181e+00 2.20145937e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +623 2.96336237e-07 3.17007569e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.74894078e-02 2.11096358e-01 -2.12767971e-02 ! x y z +-1.17897768e+01 -5.48276470e+00 -1.53192365e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +624 2.96336237e-07 1.73058888e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.21269776e-01 1.05191933e+00 5.70958780e-03 ! x y z +-4.56330149e+00 -3.13833277e+00 5.10947665e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +625 2.96336237e-07 4.59707954e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.18164002e-01 -1.12382324e-01 -2.56211982e-02 ! x y z +3.49691320e+00 1.01776699e+01 -9.59116440e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +626 2.96336237e-07 2.90842802e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.08473102e-01 -3.31363673e-02 3.43212785e-02 ! x y z +2.34128435e+00 -1.33172807e+01 1.44220076e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +627 2.96336237e-07 5.36171517e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.06069706e-02 -3.92604714e-01 -6.27682450e-03 ! x y z +9.94635357e+00 -1.02888499e+00 -2.56258168e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +628 2.96336237e-07 2.34501910e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.97847552e-02 -1.71731987e-01 6.21563982e-04 ! x y z +1.50047181e+01 -1.74400102e+00 3.25375895e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +629 2.96336237e-07 1.68004213e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.61556068e-02 1.22586319e-01 2.89469087e-03 ! x y z +-1.75716440e+01 2.24742207e+00 2.35724001e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +630 2.96336237e-07 7.72355252e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.66959670e-01 5.41159508e-01 6.47139993e-02 ! x y z +-7.94299578e+00 2.37921987e+00 6.08495263e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +631 2.96336237e-07 2.48680427e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.54746301e+00 9.79549940e-01 1.37386754e-02 ! x y z +-2.49006210e+00 -3.91857439e+00 -4.84244593e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +632 2.96336237e-07 9.87189929e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.75814969e-01 5.49394824e-01 -6.75028908e-03 ! x y z +-5.57316874e+00 4.82404978e+00 -8.46510735e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +633 2.96336237e-07 2.48700392e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.13440967e+00 -1.42740496e+00 -1.43900279e-01 ! x y z +3.64628331e+00 2.88370926e+00 9.05202264e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +634 2.96336237e-07 1.22624079e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.50027759e-01 3.03919432e-01 -3.89397702e-02 ! x y z +-2.17331704e+00 -6.18490989e+00 -8.35699763e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +635 2.96336237e-07 1.95212683e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.43508634e-01 9.61590776e-03 -2.66628653e-03 ! x y z +-1.10861680e+00 -1.64452545e+01 1.62127088e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +636 2.96336237e-07 1.42151811e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.88077433e-02 9.26009149e-02 -4.77508872e-04 ! x y z +-1.71715553e+01 -9.05409774e+00 6.36022316e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +637 2.96336237e-07 1.36841800e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.61300492e-02 -5.24525766e-02 2.10503553e-03 ! x y z +1.02646384e+01 -1.68225460e+01 1.65770983e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +638 2.96336237e-07 3.22418068e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.04979098e+00 2.10768441e+00 -3.28384390e-01 ! x y z +-3.65209869e+00 1.78997499e+00 -2.12982563e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +639 2.96336237e-07 2.55628249e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.83254766e-02 -1.69103168e-01 -2.68396490e-02 ! x y z +1.31375483e+01 6.08907729e+00 -7.53970153e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +640 2.96336237e-07 3.56086215e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.52215182e+00 -6.91927079e-01 2.10009718e-01 ! x y z +9.81071068e-01 3.72148840e+00 4.78695157e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +641 2.96336237e-07 2.67952194e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.51825845e-01 -1.82200452e+00 9.99127967e-02 ! x y z +4.13441811e+00 -1.69161526e+00 2.23011355e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +642 2.96336237e-07 4.99866167e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.34810260e-01 2.82703815e-01 -2.70759398e-02 ! x y z +-7.97130925e+00 -6.58852727e+00 3.04460856e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +643 2.96336237e-07 2.47457326e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.70047519e-02 -1.54387529e-01 8.60629155e-05 ! x y z +1.24575751e+01 7.82628279e+00 -1.03634289e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +644 2.96336237e-07 9.02799508e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.77078192e-01 -6.03173215e-01 -1.16308385e-02 ! x y z +7.01464945e+00 -3.20993713e+00 -2.38006625e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +645 2.96336237e-07 1.81590994e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.26267849e-01 4.41761979e-02 -3.17532195e-04 ! x y z +-5.66959937e+00 -1.62010641e+01 6.75535787e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +646 2.96336237e-07 1.96941495e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.12488161e-01 9.07010040e-02 1.27616170e-02 ! x y z +-1.03477535e+01 -1.28476622e+01 8.78319668e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +647 2.96336237e-07 1.82537837e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.14753600e-02 -1.06847712e-01 -7.17562457e-03 ! x y z +1.35709637e+01 1.02049864e+01 2.20082000e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +648 2.96336237e-07 1.00119083e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.04622320e-01 7.29429970e-01 1.98364101e-02 ! x y z +-7.23958912e+00 -1.02326913e+00 -3.41589914e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +649 2.96336237e-07 1.79202509e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.77193806e-02 -1.22786147e-01 -6.70466919e-03 ! x y z +1.61420621e+01 -6.24014257e+00 1.45591414e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +650 2.96336237e-07 5.42431268e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.06313948e-01 2.55000734e-01 -2.98772206e-02 ! x y z +-6.30401155e+00 -7.65376512e+00 -6.46737982e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +651 2.96336237e-07 8.85457056e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.28646118e-01 5.60638098e-01 -3.90279435e-02 ! x y z +-6.72640705e+00 3.91862876e+00 -3.84343314e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +652 2.96336237e-07 8.69444888e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.33090644e-01 6.26309924e-01 9.64740768e-04 ! x y z +-7.54819440e+00 1.60316156e+00 -1.45671040e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +653 2.96336237e-07 5.87401673e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.14697073e-01 1.19556556e-01 -2.68827274e-02 ! x y z +-2.59704069e+00 9.16782045e+00 7.43337809e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +654 2.96336237e-07 1.59013651e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.16911984e-01 -4.37587793e-03 -5.33484662e-03 ! x y z +8.12471927e-01 1.80783705e+01 3.10294675e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +655 2.96336237e-07 8.36705872e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.48019453e-01 5.08826915e-01 9.94632487e-03 ! x y z +-6.60455450e+00 -4.50726346e+00 -2.66580871e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +656 2.96336237e-07 8.17610063e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.67001886e-01 1.95275866e-01 -5.11224376e-02 ! x y z +-2.64346055e+00 7.65795167e+00 -3.92230198e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +657 2.96336237e-07 3.06425265e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.54162472e-01 1.64889686e-01 -1.76906052e-03 ! x y z +-9.65890230e+00 -9.03109577e+00 -6.41735952e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +658 2.96336237e-07 4.45673389e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.95293449e-02 -3.27551135e-01 1.00342026e-02 ! x y z +1.09289742e+01 -6.36621063e-01 6.34262612e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +659 2.96336237e-07 2.48969379e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.76295309e-02 1.78460689e-01 3.34461224e-02 ! x y z +-1.44691735e+01 -2.05068504e+00 -1.03554645e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +660 2.96336237e-07 2.26662026e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.54367400e-01 5.61249663e-02 3.01735853e-02 ! x y z +-5.22022469e+00 -1.44578060e+01 2.13775173e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +661 2.96336237e-07 5.50974109e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.66919357e-01 -3.05181421e-01 1.34880314e-02 ! x y z +7.38408344e+00 -6.51128956e+00 -6.60606038e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +662 2.96336237e-07 8.55378317e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.21838947e-01 1.00510446e-01 5.94890361e-03 ! x y z +-1.26449895e+00 7.81492839e+00 -9.51481519e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +663 2.96336237e-07 2.18473995e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.58896173e-01 2.54864919e-02 -8.86766247e-03 ! x y z +-2.39489861e+00 -1.54043484e+01 -1.24003094e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +664 2.96336237e-07 4.62987226e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.39108884e+00 -3.41381320e-01 -2.06725196e-01 ! x y z +3.52829788e-01 -3.36535657e+00 -3.12175626e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +665 2.96336237e-07 6.67532011e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.98506546e-01 2.87890329e-01 3.20314889e-04 ! x y z +-5.26105549e+00 7.25500259e+00 2.16614276e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +666 2.96336237e-07 1.64225912e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.80160179e-03 -1.20953221e-01 -8.26885241e-04 ! x y z +1.80161409e+01 8.56881733e-01 5.85017542e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +667 2.96336237e-07 1.39284342e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.43663334e-02 -4.04917452e-02 -1.41840103e-03 ! x y z +7.67509475e+00 -1.78212667e+01 -2.74308257e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +668 2.96336237e-07 3.05506947e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.18096786e-01 5.47862694e-02 1.22033159e-04 ! x y z +-3.22302313e+00 -1.28382921e+01 -6.85661779e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +669 2.96336237e-07 4.60709805e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.57346031e-01 -2.14809528e-01 5.25928460e-02 ! x y z +7.00410293e+00 8.14788939e+00 -9.54249904e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +670 2.96336237e-07 4.75705120e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.38192441e-01 -8.71324154e-02 -2.49117325e-02 ! x y z +2.73369362e+00 1.01852786e+01 1.27598730e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +671 2.96336237e-07 6.12008048e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.87329492e-01 -3.43360708e-01 -5.35680567e-02 ! x y z +7.16973922e+00 -6.00971255e+00 7.16830949e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +672 2.96336237e-07 2.67891351e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.68981404e-01 -1.00952878e-01 1.04747480e-02 ! x y z +7.07386897e+00 1.20861941e+01 2.08944534e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +673 2.96336237e-07 1.89630800e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.34092705e-01 -3.90259040e-02 -3.49303130e-03 ! x y z +4.70812898e+00 1.61321555e+01 3.65040401e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +674 2.96336237e-07 4.34622125e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.14567860e-01 -2.55115590e-02 -5.39750673e-02 ! x y z +7.46788611e-01 1.10448520e+01 -8.55881460e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +675 2.96336237e-07 1.47217456e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.15421738e-02 -7.12083854e-02 7.53014508e-03 ! x y z +1.24093622e+01 -1.43914609e+01 -1.55092798e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +676 2.96336237e-07 1.55274570e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.13175766e-01 9.36768631e-03 -1.34865492e-02 ! x y z +-1.55716135e+00 1.85139313e+01 -2.18799281e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +677 2.96336237e-07 1.50852021e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.00980674e-01 -4.42411201e-02 1.54326835e-02 ! x y z +7.70960399e+00 -1.70958215e+01 1.50425854e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +678 2.96336237e-07 6.28416077e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.77460346e-01 3.70257597e-01 -1.64084101e-03 ! x y z +-7.39296590e+00 5.53864801e+00 1.62874740e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +679 2.96336237e-07 5.66784502e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.95291209e-01 3.68153577e-01 -3.43886851e-02 ! x y z +-8.56485072e+00 4.43489062e+00 -1.10910329e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +680 2.96336237e-07 3.02299454e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.20314746e-01 2.30193377e-02 2.28679452e-02 ! x y z +-1.56352382e+00 1.30692125e+01 2.00209749e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +681 2.96336237e-07 2.66676492e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.28473948e-01 1.48717575e-01 4.97279884e-03 ! x y z +-1.07141774e+01 -9.25784287e+00 3.86781278e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +682 2.96336237e-07 1.89030652e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.13421857e-01 8.00367857e-02 1.07242712e-02 ! x y z +-9.68269795e+00 1.37714218e+01 -3.79363829e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +683 2.96336237e-07 3.28209745e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.55079565e-01 -1.81568668e-01 3.94908336e-02 ! x y z +9.76719582e+00 8.17181961e+00 -8.68047943e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +684 2.96336237e-07 1.47614576e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.33338150e-03 -1.07162361e-01 -1.55844717e-02 ! x y z +1.89736432e+01 -1.72967015e+00 5.91809027e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +685 2.96336237e-07 2.31500094e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.48558630e-02 1.68090226e-01 1.44542919e-02 ! x y z +-1.48681377e+01 -1.95682922e+00 -2.56714677e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +686 2.96336237e-07 2.17961346e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.41257219e+00 7.66999937e-01 5.21575111e-02 ! x y z +-2.36919106e+00 4.33264129e+00 3.47163159e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +687 2.96336237e-07 1.31586235e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.40689808e-01 -2.02107769e-01 -1.28530420e-01 ! x y z +1.27223992e+00 -6.22883483e+00 4.36970856e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +688 2.96336237e-07 4.93902528e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.29555037e-02 3.51463487e-01 -4.41681603e-02 ! x y z +-1.01413457e+01 -2.33960594e+00 4.32885638e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +689 2.96336237e-07 9.27562833e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.91780834e-01 -6.17101305e-01 6.89876590e-03 ! x y z +6.83213914e+00 3.24740272e+00 8.10445442e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +690 2.96336237e-07 1.70375378e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.77577664e-01 -1.04422878e+00 -1.47844481e-01 ! x y z +4.71586400e+00 3.04484717e+00 1.32742001e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +691 2.96336237e-07 1.49824251e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.00947433e-01 4.30203383e-02 -1.07927959e-02 ! x y z +-7.47744808e+00 1.73815534e+01 -5.64357734e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +692 2.96336237e-07 1.95787248e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.36486867e-01 -4.29040442e-02 1.74057694e-02 ! x y z +5.17312765e+00 -1.55289939e+01 2.48315414e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +693 2.96336237e-07 5.40369345e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.46015843e-01 -3.09002792e-01 5.16028199e-02 ! x y z +7.83217430e+00 -6.06050964e+00 9.78933382e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +694 2.96336237e-07 1.38423036e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.61435327e-02 3.16197878e-02 1.10748892e-02 ! x y z +-6.20730027e+00 1.86927145e+01 5.93162186e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +695 2.96336237e-07 7.86364273e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.54291489e-01 -5.20391238e-01 -1.71072882e-02 ! x y z +7.40932705e+00 3.62782414e+00 2.08073134e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +696 2.96336237e-07 2.32154019e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.00178769e-01 1.38361895e-01 3.33173100e-03 ! x y z +-1.23114612e+01 8.92317320e+00 -2.56428551e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +697 2.96336237e-07 9.57341303e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.54078551e-01 5.41272052e-01 -5.15201201e-03 ! x y z +-5.70000001e+00 -4.77211403e+00 7.09601795e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +698 2.96336237e-07 9.86433966e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.70530144e-01 -2.79332772e-01 -5.71451814e-03 ! x y z +2.84255519e+00 -6.79608842e+00 3.05108624e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +699 2.96336237e-07 5.34739107e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.59267494e-01 2.94514280e-01 -3.43645558e-02 ! x y z +-7.39986431e+00 6.64708852e+00 1.13462624e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +700 2.96336237e-07 1.18255245e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.50663530e-02 -8.61224889e-01 -9.31108722e-02 ! x y z +6.67657648e+00 -6.86667844e-01 -4.82351137e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +701 2.96336237e-07 8.64275703e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.21703884e-01 -5.85897448e-01 -1.07804357e-01 ! x y z +7.39160105e+00 -2.69823954e+00 -5.32587057e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +702 2.96336237e-07 1.79332496e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.19558909e-02 -1.25100921e-01 2.54897360e-03 ! x y z +1.64081635e+01 5.47703354e+00 -4.22098817e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +703 2.96336237e-07 1.40183109e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.25967529e-02 9.39116725e-02 1.57706640e-03 ! x y z +-1.78022771e+01 -8.08500074e+00 -9.78083679e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +704 2.96336237e-07 1.55400949e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.09788141e-01 3.06090183e-02 9.80068508e-03 ! x y z +-4.98161452e+00 1.79021840e+01 -5.50442980e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +705 2.96336237e-07 1.08036306e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.92820222e-01 5.27219922e-01 6.98178633e-02 ! x y z +-4.69455781e+00 5.24104184e+00 1.50273822e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +706 2.96336237e-07 3.33647425e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.26177781e-02 2.44332016e-01 -2.53825733e-02 ! x y z +-1.25330063e+01 4.62608070e-01 -1.75191830e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +707 2.96336237e-07 1.89891167e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.00627232e-02 1.12884466e-01 -2.02052654e-02 ! x y z +-1.37126247e+01 9.70744519e+00 -1.06588127e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +708 2.96336237e-07 6.35397976e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.08460061e-01 -2.28905674e-01 -1.09808862e-03 ! x y z +4.48242345e+00 8.00742527e+00 -2.54245798e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +709 2.96336237e-07 3.46806832e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.74909884e-02 2.52112904e-01 -1.93462139e-02 ! x y z +-1.22890269e+01 -1.80330491e+00 2.59885202e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +710 2.96336237e-07 4.47338526e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.47859055e-01 -2.17088330e-01 3.63522719e-03 ! x y z +7.21250107e+00 -8.23317856e+00 -3.88904998e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +711 2.96336237e-07 4.33786703e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.79187908e-02 3.14003265e-01 -1.60742457e-02 ! x y z +-1.08749681e+01 -1.94809943e+00 1.16215469e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +712 2.96336237e-07 2.28876823e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.92386859e-02 -1.53417405e-01 1.13292987e-02 ! x y z +1.39310300e+01 6.30651908e+00 1.08308644e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +713 2.96336237e-07 1.37027223e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.37429467e-02 -8.43380623e-02 1.37614002e-02 ! x y z +1.66905353e+01 1.06030722e+01 -6.29605094e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +714 2.96336237e-07 3.80242418e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.23923334e-03 -2.79770536e-01 1.87303502e-02 ! x y z +1.17687135e+01 -8.38117263e-03 -1.45649390e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +715 2.96336237e-07 1.27104916e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.22752523e-01 -1.04874434e-01 1.05184050e-01 ! x y z +6.11259758e-01 -6.40304112e+00 -9.68822077e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +716 2.96336237e-07 1.51129238e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.66971912e-02 9.54175641e-02 6.76189973e-03 ! x y z +-1.61018580e+01 -9.65359879e+00 1.71843068e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +717 2.96336237e-07 5.06569442e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.78182721e-01 -3.28126081e-01 6.27665584e-03 ! x y z +9.02087694e+00 -4.89229828e+00 -5.62933559e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +718 2.96336237e-07 3.38714273e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.22013174e-01 2.15118788e-01 3.16865325e-02 ! x y z +-1.08240548e+01 6.31361718e+00 -1.18775407e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +719 2.96336237e-07 8.52900215e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.44970347e-01 -4.43371892e-01 2.98143491e-03 ! x y z +5.59534421e+00 -5.61639540e+00 4.31085351e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +720 2.96336237e-07 1.45044025e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.57772504e-01 1.00717550e+00 -2.65893967e-03 ! x y z +-5.72279752e+00 -2.04173741e+00 -6.45738812e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +721 2.96336237e-07 3.99581125e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.94046461e-01 1.05711434e-02 -7.46864290e-03 ! x y z +-4.37198242e-01 -1.15392490e+01 8.82417505e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +722 2.96336237e-07 4.66300401e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.51111996e-02 3.30680671e-01 3.27957346e-02 ! x y z +-1.03955183e+01 -2.67603231e+00 7.03046550e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +723 2.96336237e-07 1.61606243e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.46408296e-02 -1.10294415e-01 1.19016279e-03 ! x y z +1.68277169e+01 6.76472666e+00 -1.71983882e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +724 2.96336237e-07 3.01449021e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.54971919e-02 -2.18816192e-01 -1.30043696e-02 ! x y z +1.31606761e+01 2.12562796e+00 2.16506067e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +725 2.96336237e-07 1.95876801e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.39787377e-02 1.42466513e-01 -1.73912071e-02 ! x y z +-1.64701793e+01 1.55443170e+00 -4.75899271e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +726 2.96336237e-07 1.82235772e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.28357389e-01 -3.85149702e-02 1.38051704e-03 ! x y z +4.95862851e+00 1.64399907e+01 -4.19222694e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +727 2.96336237e-07 2.20848197e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.29211470e+00 9.82793714e-01 2.29605808e-02 ! x y z +-2.98640291e+00 -3.92982410e+00 2.46156038e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +728 2.96336237e-07 8.10812797e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.72365409e-01 1.65443426e-01 -4.07694230e-02 ! x y z +-2.27690414e+00 -7.79581543e+00 3.89075937e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +729 2.96336237e-07 1.13271650e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.96366656e-01 -8.10941753e-01 6.19428946e-03 ! x y z +6.67055470e+00 -1.62129397e+00 -4.29289810e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +730 2.96336237e-07 3.27270092e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.08768319e-03 2.37472284e-01 -4.12437673e-02 ! x y z +-1.27738539e+01 -3.90572029e-01 -6.45025516e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +731 2.96336237e-07 9.75230677e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.71612528e-01 2.55091143e-01 -1.08856716e-02 ! x y z +-2.62175803e+00 -6.93215398e+00 -5.26371643e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +732 2.96336237e-07 1.14282862e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.28343431e-01 8.09552332e-01 3.18147119e-02 ! x y z +-6.59285238e+00 -1.85363625e+00 3.26816565e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +733 2.96336237e-07 4.57255737e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.72995057e-01 1.96674115e-01 1.89425811e-02 ! x y z +-6.25082573e+00 -8.77263010e+00 1.02416414e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +734 2.96336237e-07 1.57788631e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.07292480e-01 4.38255693e-02 -6.57722817e-03 ! x y z +-7.00129615e+00 1.70626814e+01 -5.77078145e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +735 2.96336237e-07 1.49426986e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.41277140e-01 1.04657012e+00 -2.37175216e-04 ! x y z +-5.69365623e+00 1.85458785e+00 1.49390316e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +736 2.96336237e-07 1.46371094e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.50979679e-02 9.77563812e-02 -5.40625571e-03 ! x y z +-1.71338587e+01 -7.73175403e+00 3.59995854e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +737 2.96336237e-07 8.60809962e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.08339130e-01 -3.76606194e-01 -2.54741750e-02 ! x y z +4.67593917e+00 -6.35088602e+00 4.90667590e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +738 2.96336237e-07 2.25511936e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.41112112e-02 -1.42810683e-01 -5.61155322e-03 ! x y z +1.32920422e+01 -7.84161211e+00 5.27300913e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +739 2.96336237e-07 8.34398714e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.04076336e-01 -6.05037276e-01 4.62779889e-03 ! x y z +7.90620815e+00 -1.36317572e+00 7.16133501e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +740 2.96336237e-07 3.86473095e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.45676749e-01 -2.44761377e-01 -1.70039207e-04 ! x y z +1.01143354e+01 -6.01829087e+00 -1.64257773e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +741 2.96336237e-07 1.44062574e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.11409581e-02 1.01366786e-01 3.37142167e-03 ! x y z +-1.83784234e+01 -5.59491726e+00 -1.75754317e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +742 2.96336237e-07 2.10670223e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.42756570e-02 1.48767894e-01 -7.47526922e-03 ! x y z +-1.52102044e+01 -4.46154274e+00 1.55839730e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +743 2.96336237e-07 3.47395487e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.87399606e-02 2.40086691e-01 8.39527737e-03 ! x y z +-1.16391358e+01 -4.30715964e+00 1.62253027e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +744 2.96336237e-07 2.41612369e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.59847822e-01 -7.78912369e-02 -2.79933133e-03 ! x y z +6.45722219e+00 1.33582344e+01 -1.41814384e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +745 2.96336237e-07 5.62841738e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.67783441e-01 -1.88112027e-01 -3.66908206e-02 ! x y z +4.51970595e+00 -8.55011751e+00 -1.27453603e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +746 2.96336237e-07 2.85973478e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.87340286e-02 2.02501001e-01 9.53927121e-04 ! x y z +-1.31337144e+01 3.80198275e+00 -3.16193501e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +747 2.96336237e-07 5.95551959e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.03791593e-01 -1.69904082e-01 -6.50308023e-03 ! x y z +3.68544597e+00 -8.75361554e+00 -9.31493130e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +748 2.96336237e-07 3.19408740e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.99271792e-01 -1.24925257e-01 -1.17272214e-02 ! x y z +6.87700521e+00 -1.09635307e+01 3.25594587e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +749 2.96336237e-07 2.13454604e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.13788529e-02 1.39877760e-01 6.20617922e-03 ! x y z +-1.41062308e+01 7.11408069e+00 1.30607967e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +750 2.96336237e-07 1.85627069e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.70740837e-01 1.18273267e+00 1.46513513e-01 ! x y z +-4.67937890e+00 -2.63414160e+00 -1.62840322e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +751 2.96336237e-07 3.43809092e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.77225524e-02 2.44116536e-01 -2.56050642e-03 ! x y z +-1.20270840e+01 3.33222152e+00 -6.48574349e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +752 2.96336237e-07 7.35165209e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.46569942e-01 -3.05390477e-01 -2.59738601e-02 ! x y z +4.84253624e+00 -7.00233034e+00 -6.22963893e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +753 2.96336237e-07 1.44046780e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.12181523e-02 9.30276707e-02 -2.38731661e-03 ! x y z +-1.68593697e+01 9.28547961e+00 8.80032674e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +754 2.96336237e-07 1.65675697e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.92401795e-03 1.20855892e-01 -1.29763995e-02 ! x y z +-1.78802245e+01 -1.30361565e+00 1.58587358e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +755 2.96336237e-07 3.35710072e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.98381649e+00 -1.46945238e+00 8.82931312e-02 ! x y z +2.37729058e+00 -3.17603082e+00 5.07654331e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +756 2.96336237e-07 2.39474302e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.40759877e-02 -1.49188991e-01 3.71490400e-03 ! x y z +1.26430647e+01 -7.98027215e+00 4.72436149e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +757 2.96336237e-07 2.24727983e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.49291922e-01 6.89621953e-02 1.89443712e-02 ! x y z +-6.29748750e+00 -1.40269094e+01 1.43503629e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +758 2.96336237e-07 1.36903625e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.45433508e-02 -3.49515856e-02 -1.36235215e-03 ! x y z +6.87357031e+00 1.85578630e+01 3.35768428e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +759 2.96336237e-07 2.56419603e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.80373021e-01 -5.23896698e-02 -1.73939888e-02 ! x y z +4.06523011e+00 1.38878785e+01 3.94343986e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +760 2.96336237e-07 3.25231400e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.57169455e-01 1.80630824e-01 2.63513787e-03 ! x y z +-9.68853732e+00 8.43039016e+00 -5.99555931e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +761 2.96336237e-07 6.03475105e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.96975792e-01 -1.99491862e-01 4.23510905e-03 ! x y z +4.20175449e+00 -8.29760116e+00 1.54587372e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +762 2.96336237e-07 1.56746826e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.87951837e-02 -1.11722739e-01 4.96502435e-03 ! x y z +1.78993787e+01 -4.62297661e+00 -1.60481112e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +763 2.96336237e-07 4.45913950e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.18149275e-01 -8.20549546e-02 3.28697191e-03 ! x y z +2.74378352e+00 1.06043897e+01 -3.47225806e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +764 2.96336237e-07 2.08739896e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.24963013e-02 1.47802685e-01 -5.76624735e-03 ! x y z +-1.53462200e+01 -4.46459071e+00 -9.15239696e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +765 2.96336237e-07 5.97697854e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.69825901e-01 3.48176588e-01 2.06086605e-02 ! x y z +-7.45054034e+00 5.80493722e+00 -4.12093929e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +766 2.96336237e-07 5.46205392e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.98765254e-01 -5.06451707e-02 1.90791311e-02 ! x y z +1.29936072e+00 -9.74252968e+00 1.21330236e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +767 2.96336237e-07 1.95084867e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15754910e+00 8.44515062e-01 -1.10369558e-01 ! x y z +-3.09604461e+00 4.22862828e+00 1.66431009e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +768 2.96336237e-07 2.14379358e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.45496851e-01 6.02285828e-02 1.53262995e-02 ! x y z +-5.69568903e+00 1.44640592e+01 -2.71794913e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +769 2.96336237e-07 1.36376011e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.16746464e-02 -4.08796449e-02 -4.21604762e-03 ! x y z +8.04516261e+00 1.81061616e+01 -5.86258896e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +770 2.96336237e-07 3.96279271e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.91497357e-01 -1.25827804e-02 -2.22593450e-03 ! x y z +5.16558607e-01 1.16226576e+01 -3.35841077e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +771 2.96336237e-07 6.98353046e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.05278633e-01 -7.05350184e-04 1.00584152e-01 ! x y z +6.74014005e-02 8.74198837e+00 -2.84753241e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +772 2.96336237e-07 2.84611008e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.13649986e-01 1.73786159e-01 -3.01906324e-02 ! x y z +-1.14044543e+01 7.57198327e+00 7.55388639e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +773 2.96336237e-07 3.30188593e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.40145414e+00 2.58777830e-01 2.86003963e-01 ! x y z +-4.34118228e-01 4.00517775e+00 1.88131934e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +774 2.96336237e-07 1.60864116e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.07063855e-01 8.64861563e-01 3.63582142e-02 ! x y z +-4.21428860e+00 -3.91074893e+00 -5.85011077e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +775 2.96336237e-07 4.05780221e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.23082874e-01 -1.98802277e-01 -5.68618210e-03 ! x y z +7.64624723e+00 -8.57974044e+00 1.61315604e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +776 2.96336237e-07 5.18260733e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.19086034e-01 -2.01522876e-01 5.91418839e-02 ! x y z +5.56261241e+00 8.41471026e+00 -1.23452315e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +777 2.96336237e-07 2.57733838e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.24796008e-01 1.43235233e-01 -6.10296921e-03 ! x y z +-1.07365902e+01 9.41183269e+00 1.89444490e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +778 2.96336237e-07 1.15136431e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.50989126e-01 -7.61777481e-01 -1.22315070e-01 ! x y z +6.21139362e+00 -2.78349994e+00 -5.20130582e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +779 2.96336237e-07 1.90695656e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.55583476e-02 -1.24068548e-01 7.95673151e-04 ! x y z +1.48265503e+01 7.85964951e+00 -9.23654116e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +780 2.96336237e-07 1.83013176e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.68560707e-02 1.19742523e-01 2.45759749e-02 ! x y z +-1.53753704e+01 -7.46515829e+00 8.24032729e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +781 2.96336237e-07 1.90099023e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.95571535e-02 -1.21574111e-01 4.94936102e-03 ! x y z +1.45492235e+01 8.33685157e+00 4.80579455e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +782 2.96336237e-07 1.57663010e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.91267404e-03 1.15263255e-01 -1.24769946e-02 ! x y z +-1.83622878e+01 9.64435617e-01 -1.33153714e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +783 2.96336237e-07 1.92821763e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.05750147e-02 -1.36180634e-01 -1.40457536e-03 ! x y z +1.59662042e+01 4.76900258e+00 -1.20891179e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +784 2.96336237e-07 6.78590424e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.62987916e-01 1.88752961e-01 -1.22175236e-02 ! x y z +-3.33880359e+00 -8.22666695e+00 -2.48451687e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +785 2.96336237e-07 1.37804911e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.01245883e-01 -7.59918468e-03 -1.24965799e-03 ! x y z +1.45029829e+00 -1.96389498e+01 -9.36095104e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +786 2.96336237e-07 3.40736161e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.03327376e-01 -1.47196088e-01 2.16269551e-04 ! x y z +7.33821311e+00 -1.00968075e+01 1.20635461e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +787 2.96336237e-07 3.13198357e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.10522670e-01 -9.23503065e-02 -1.83906271e-02 ! x y z +5.27416412e+00 -1.19725839e+01 -2.73697364e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +788 2.96336237e-07 7.90794183e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.43054916e-01 4.65452751e-01 -6.97292734e-02 ! x y z +-6.64100241e+00 -4.73017450e+00 1.14716537e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +789 2.96336237e-07 1.91051293e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.06904372e-01 -9.03592611e-02 -1.36375226e-02 ! x y z +1.06598084e+01 -1.28237143e+01 1.67191250e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +790 2.96336237e-07 6.00254148e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.42054354e-01 2.76474387e-01 4.61746412e-02 ! x y z +-5.72326799e+00 7.34546342e+00 -1.59290388e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +791 2.96336237e-07 2.18061483e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.10989936e-02 1.55065276e-01 -3.96283386e-03 ! x y z +-1.51659906e+01 -4.02310592e+00 -2.36886124e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +792 2.96336237e-07 4.54092681e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.22626314e-01 3.10657283e-01 2.02442843e-02 ! x y z +-9.90769766e+00 4.02152600e+00 -1.89960252e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +793 2.96336237e-07 1.04880774e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.30134262e-01 -2.30158523e-01 -1.01229995e-01 ! x y z +2.23111241e+00 -6.76215625e+00 -6.62698164e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +794 2.96336237e-07 5.99986034e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.39383791e-02 -4.39535025e-01 -2.89795976e-02 ! x y z +9.41405631e+00 -7.07882123e-01 -5.11111084e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +795 2.96336237e-07 2.81816070e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.27473860e-02 -2.02912146e-01 9.20809248e-03 ! x y z +1.33399421e+01 -2.89398906e+00 -1.96719273e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +796 2.96336237e-07 1.90143483e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.35805578e-02 -1.21762479e-01 -2.72249472e-02 ! x y z +1.48294564e+01 -7.86235135e+00 4.76623520e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +797 2.96336237e-07 4.84505077e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.58210729e-01 3.15357201e-01 -5.39763009e-02 ! x y z +-9.42179059e+00 -4.64922098e+00 4.54164100e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +798 2.96336237e-07 1.57927955e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.32587461e-02 1.06408741e-01 -1.83663835e-02 ! x y z +-1.70720088e+01 6.55692347e+00 -2.22138349e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +799 2.96336237e-07 5.02169534e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.33867019e-01 -1.55702732e-01 3.15324013e-02 ! x y z +4.16434398e+00 -9.29456595e+00 -1.75677469e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +800 2.96336237e-07 2.65217346e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.19428731e-03 1.93721907e-01 2.23513970e-02 ! x y z +-1.41929355e+01 1.82427616e-01 1.11187381e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +801 2.96336237e-07 9.95553651e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.18104124e-01 7.24180969e-01 3.71298844e-03 ! x y z +-7.23829629e+00 -1.17308051e+00 -6.82836239e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +802 2.96336237e-07 2.63510864e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.16708785e-01 -1.75642880e+00 1.71868108e-01 ! x y z +4.08441108e+00 1.86952949e+00 -2.91644838e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +803 2.96336237e-07 4.47215613e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.29902594e-01 5.20319376e-03 3.36301243e-03 ! x y z +-1.51755396e-01 1.08923456e+01 -8.81913672e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +804 2.96336237e-07 9.54169744e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.57207976e-01 4.18798823e-01 -9.01260352e-02 ! x y z +-4.52237521e+00 -5.97264162e+00 2.04989422e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +805 2.96336237e-07 1.78184251e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.46206930e-02 1.22962820e-01 1.11185827e-02 ! x y z +-1.61312447e+01 5.58188582e+00 3.04368193e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +806 2.96336237e-07 7.75528379e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.92343451e-01 5.39059185e-01 -2.03180184e-03 ! x y z +-7.80963705e+00 -2.78877458e+00 -2.70364383e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +807 2.96336237e-07 2.93378541e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.35417557e-01 -1.68089209e-01 6.77269174e-03 ! x y z +1.04318724e+01 -8.45651984e+00 -1.60764481e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +808 2.96336237e-07 1.83924266e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.33202394e-02 -1.06731490e-01 -6.08186958e-03 ! x y z +1.34405930e+01 -1.05036930e+01 3.87638201e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +809 2.96336237e-07 6.01560211e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.31593507e-01 9.10988156e-02 -4.67389387e-02 ! x y z +-1.89081534e+00 -9.21658494e+00 -6.19530485e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +810 2.96336237e-07 1.38880895e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.92815071e-02 -8.27331562e-02 1.02160651e-02 ! x y z +1.57006393e+01 1.15437864e+01 2.48788988e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +811 2.96336237e-07 6.47671609e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.70028758e-01 8.14557517e-02 -1.31662731e-02 ! x y z +-1.56659992e+00 8.95269848e+00 -3.05632686e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +812 2.96336237e-07 1.85698708e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.29531190e+00 -3.90803731e-01 -1.86749129e-01 ! x y z +1.63541179e+00 -5.08120468e+00 -6.73536116e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +813 2.96336237e-07 8.66325758e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.28098060e-01 6.24427959e-01 -3.01078691e-02 ! x y z +-7.68037805e+00 -1.54138026e+00 7.05198231e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +814 2.96336237e-07 2.64890458e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.60835069e-02 1.74984420e-01 6.92031751e-03 ! x y z +-1.27575411e+01 -6.24654564e+00 -7.16183589e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +815 2.96336237e-07 1.01622150e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.54546877e-01 5.94593281e-01 2.17346994e-02 ! x y z +-5.75254727e+00 -4.37943025e+00 -6.61999084e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +816 2.96336237e-07 3.47725188e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.33463975e-01 -1.04601093e-01 -1.44765966e-02 ! x y z +5.05640214e+00 1.13275921e+01 -3.50041920e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +817 2.96336237e-07 2.80294608e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.95293513e+00 6.59020697e-01 -7.47004103e-02 ! x y z +-1.38481735e+00 4.13723798e+00 3.54955844e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +818 2.96336237e-07 2.23555446e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.43597434e-01 1.46145201e+00 1.51442865e-01 ! x y z +-4.36453071e+00 -2.21842302e+00 4.54519439e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +819 2.96336237e-07 2.76515018e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.70681768e-01 1.05789831e-01 3.47417261e-02 ! x y z +-7.17355389e+00 -1.18859586e+01 9.33743336e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +820 2.96336237e-07 2.51275026e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.84907623e-01 1.10926490e-02 -5.24876010e-03 ! x y z +-8.66709101e-01 -1.45603333e+01 -1.11843348e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +821 2.96336237e-07 3.24394147e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.83918335e-01 -1.52738306e-01 -1.05216388e-02 ! x y z +8.20245863e+00 -9.86931729e+00 -1.95543108e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +822 2.96336237e-07 9.08362345e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.63764000e-01 4.76496886e-01 7.60509245e-02 ! x y z +-5.46224157e+00 -5.38230373e+00 4.07669098e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +823 2.96336237e-07 4.35564664e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.18903487e-02 3.07309894e-01 4.45982498e-03 ! x y z +-1.06254996e+01 3.16479402e+00 4.07059713e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +824 2.96336237e-07 7.97506520e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.29812762e-01 5.73692010e-01 -1.83404362e-02 ! x y z +-7.94432365e+00 -1.82489734e+00 -7.22094748e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +825 2.96336237e-07 1.70596872e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24087493e-01 1.75596414e-02 -7.10589845e-03 ! x y z +-2.45408068e+00 -1.75715112e+01 -2.34400922e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +826 2.96336237e-07 3.32276137e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.04138004e+00 -2.21245905e+00 1.07898856e-01 ! x y z +3.63415934e+00 -1.70734376e+00 7.32242436e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +827 2.96336237e-07 5.05504963e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.05217246e-01 3.55992666e-01 3.01419741e-02 ! x y z +-9.74965046e+00 2.98253670e+00 -1.42154062e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +828 2.96336237e-07 6.35310566e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.79006519e-01 -3.71275571e-01 -6.25741630e-02 ! x y z +7.35971685e+00 5.42534000e+00 7.23377362e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +829 2.96336237e-07 1.75131903e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.38183789e-02 -1.16957008e-01 -8.51045037e-03 ! x y z +1.58479495e+01 -7.15719852e+00 -1.87588018e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +830 2.96336237e-07 1.83785152e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.11713068e-01 -7.60749470e-02 7.11799714e-03 ! x y z +9.60814241e+00 1.37790064e+01 -3.09368364e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +831 2.96336237e-07 1.38889628e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.28797319e-02 -5.98054470e-02 -3.92102409e-03 ! x y z +1.14549412e+01 1.56784693e+01 3.00643526e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +832 2.96336237e-07 4.67566456e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.64453190e-01 2.20328306e-01 8.77678241e-03 ! x y z +-6.83993978e+00 -8.23984441e+00 -2.59382036e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +833 2.96336237e-07 2.29079426e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.33867230e-01 1.02094609e-01 1.35744189e-02 ! x y z +-9.31644191e+00 1.19315952e+01 2.08356137e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +834 2.96336237e-07 2.17268490e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.12175486e-02 1.59685363e-01 4.33533758e-03 ! x y z +-1.56270590e+01 -1.07710196e+00 -1.00125820e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +835 2.96336237e-07 5.92418156e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.33772768e-01 -3.06567722e-02 3.57591899e-02 ! x y z +6.41814108e-01 -9.48535782e+00 -3.21209829e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +836 2.96336237e-07 2.81431102e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.96297586e-01 6.23879555e-02 2.46105900e-02 ! x y z +-4.21971226e+00 -1.31246422e+01 -3.44864221e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +837 2.96336237e-07 3.07778766e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.36438064e-01 -2.21499344e+00 -2.51339484e-01 ! x y z +4.08215628e+00 -8.17954096e-01 1.09231196e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +838 2.96336237e-07 1.49883538e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.07903966e-01 9.68615644e-01 1.40347581e-01 ! x y z +-5.22155509e+00 -2.84521869e+00 6.96929019e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +839 2.96336237e-07 2.03064870e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.49153932e+00 -3.71744808e-02 1.13198886e-01 ! x y z +1.30042895e-01 5.13217767e+00 -1.33550776e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +840 2.96336237e-07 1.16669173e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.82239224e-01 -7.66512256e-01 -5.40722936e-02 ! x y z +6.02109242e+00 3.05597380e+00 -6.82915706e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +841 2.96336237e-07 1.73542128e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24302244e+00 2.87995611e-01 -7.27903186e-02 ! x y z +-1.29170625e+00 -5.36240055e+00 6.87059649e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +842 2.96336237e-07 2.53253250e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.45887845e-01 -1.14432909e-01 2.05422853e-02 ! x y z +8.83225803e+00 1.14874137e+01 1.28290491e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +843 2.96336237e-07 1.86343650e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.20794936e-01 6.50751338e-02 3.01806778e-03 ! x y z +-8.05101802e+00 -1.49268229e+01 -2.34993259e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +844 2.96336237e-07 2.91585060e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.33840620e-01 1.62948437e-01 -3.94762442e-02 ! x y z +-1.05604329e+01 8.49301750e+00 -7.57330670e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +845 2.96336237e-07 4.33641742e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.64844730e-02 3.18567365e-01 -1.89580047e-02 ! x y z +-1.10511370e+01 6.26839446e-01 9.81356286e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +846 2.96336237e-07 5.23159554e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.83806176e-01 3.07445885e-02 -7.62473852e-03 ! x y z +-7.71131851e-01 1.00172082e+01 1.27842409e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +847 2.96336237e-07 2.45363196e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.28603287e-02 -1.72499663e-01 -6.70407441e-04 ! x y z +1.41129376e+01 4.33805144e+00 -1.09349295e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +848 2.96336237e-07 7.71920598e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.41383198e-01 -5.46517765e-01 6.31103971e-02 ! x y z +8.07781171e+00 2.07109998e+00 -1.65437689e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +849 2.96336237e-07 2.38076491e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.68230140e-01 -4.99864739e-02 9.93911474e-04 ! x y z +4.29080967e+00 1.43649433e+01 -4.45544550e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +850 2.96336237e-07 3.61190002e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.39229416e-01 -2.26117099e-01 -1.89557099e-02 ! x y z +1.03238670e+01 6.41445943e+00 -6.82154245e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +851 2.96336237e-07 1.43701583e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.05334367e-01 -5.88342997e-03 -7.39022185e-03 ! x y z +9.34404274e-01 -1.92081544e+01 1.94467601e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +852 2.96336237e-07 2.94382046e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.76796973e-01 1.22086113e-01 2.71560749e-02 ! x y z +-7.80302729e+00 -1.09203965e+01 -1.54257532e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +853 2.96336237e-07 3.61816615e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.63935378e+00 3.92577206e-01 5.58889721e-02 ! x y z +-5.68417046e-01 3.80079266e+00 2.38218119e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +854 2.96336237e-07 1.04058174e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.41474367e-01 4.09278147e-01 -9.13878568e-02 ! x y z +-3.77245356e+00 -6.06492544e+00 -7.08923899e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +855 2.96336237e-07 3.50749263e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.64588415e+00 -1.98709677e+00 -2.10707154e-02 ! x y z +3.01427815e+00 2.49640165e+00 -3.29050750e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +856 2.96336237e-07 4.21215046e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.28177803e-01 2.09346140e-01 -8.86469721e-03 ! x y z +-7.64040942e+00 -8.31566885e+00 3.17844887e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +857 2.96336237e-07 2.55894722e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.69915289e-01 -8.07963428e-02 -8.69486692e-03 ! x y z +6.20427852e+00 1.30746686e+01 -5.61629542e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +858 2.96336237e-07 3.49941684e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.41586422e-01 -8.75868996e-02 -1.91367530e-02 ! x y z +4.14283118e+00 1.16394134e+01 -7.79179320e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +859 2.96336237e-07 2.33403020e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.96343926e-02 1.54596451e-01 2.80564952e-02 ! x y z +-1.38520014e+01 6.12441009e+00 6.32972344e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +860 2.96336237e-07 3.01283362e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.87821170e-02 2.10846290e-01 -6.45993325e-03 ! x y z +-1.26728544e+01 -4.15218221e+00 -3.47590281e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +861 2.96336237e-07 1.10138681e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.46280924e-01 2.84376690e-01 -1.40630278e-01 ! x y z +-2.45516821e+00 6.53052599e+00 1.67831098e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +862 2.96336237e-07 5.94655788e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.17123920e-01 -1.30294016e-01 -2.65663817e-02 ! x y z +2.85914494e+00 9.05041867e+00 3.59414687e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +863 2.96336237e-07 6.44824888e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.30323865e-01 -3.41749855e-01 -5.98643656e-04 ! x y z +6.53717863e+00 -6.30277372e+00 -7.35989851e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +864 2.96336237e-07 1.83380366e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.35064054e+00 1.30390794e-02 -3.59445881e-02 ! x y z +-3.89893059e-02 -5.35425160e+00 -7.33677656e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +865 2.96336237e-07 2.66358551e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.26440226e-03 -1.94235411e-01 -2.52108346e-02 ! x y z +1.41939022e+01 3.39456231e-01 4.09461701e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +866 2.96336237e-07 2.41460705e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.68943560e-01 4.37840341e-02 3.41997637e-02 ! x y z +-3.80325128e+00 -1.44016730e+01 -3.47404051e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +867 2.96336237e-07 2.18146590e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.02171216e-03 1.59744507e-01 -1.57180521e-02 ! x y z +-1.55815889e+01 -9.81125482e-01 -1.29415165e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +868 2.96336237e-07 7.49727890e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15348975e-01 -5.39236587e-01 -3.67022155e-02 ! x y z +8.22539784e+00 1.69889434e+00 9.13795594e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +869 2.96336237e-07 1.66746626e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.96378463e-02 7.14811319e-02 2.52567429e-03 ! x y z +-1.04482494e+01 -1.45126980e+01 -1.59011767e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +870 2.96336237e-07 3.12499086e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.23404648e-01 -5.17797494e-02 2.19115552e-02 ! x y z +2.75082902e+00 -1.26760306e+01 -1.72499665e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +871 2.96336237e-07 2.30591857e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.67255801e-01 2.95893697e-02 3.86584626e-03 ! x y z +-2.64610937e+00 1.48112516e+01 2.43371752e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +872 2.96336237e-07 2.20464325e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.98869920e-02 -1.54454260e-01 9.91647705e-04 ! x y z +1.48383421e+01 -4.81159769e+00 6.67476566e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +873 2.96336237e-07 2.73455177e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.81891843e-01 -8.04957405e-02 -2.97691135e-02 ! x y z +5.41143422e+00 1.28399026e+01 -1.55928055e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +874 2.96336237e-07 2.69166226e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.45534477e-02 1.83627561e-01 1.18716779e-03 ! x y z +-1.30791260e+01 5.31071354e+00 -1.90314435e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +875 2.96336237e-07 2.22289446e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.31541536e+00 9.55601785e-01 -1.99523279e-01 ! x y z +-2.86101353e+00 -3.98319651e+00 -1.94866199e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +876 2.96336237e-07 1.87776831e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.48672114e-02 -9.84868239e-02 -2.04933844e-02 ! x y z +1.22951452e+01 -1.14825138e+01 -1.60304683e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +877 2.96336237e-07 2.02119064e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.38546495e-02 -1.14620943e-01 1.50136750e-02 ! x y z +1.26398292e+01 1.01893591e+01 -1.22056825e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +878 2.96336237e-07 1.73898508e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.26334493e-01 1.62484731e-02 1.35757709e-02 ! x y z +-2.30447457e+00 -1.73914442e+01 -6.32762537e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +879 2.96336237e-07 3.88617411e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.16141402e-01 -1.85611436e-01 -2.28078577e-02 ! x y z +7.65970634e+00 -8.92502982e+00 8.70731485e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +880 2.96336237e-07 9.22226305e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.33855336e-01 -4.19729502e-01 -2.89981903e-02 ! x y z +4.69784954e+00 -5.99633599e+00 1.33357967e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +881 2.96336237e-07 5.53689641e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.84206591e-01 -2.92729920e-01 -7.01303144e-03 ! x y z +7.03980325e+00 6.86295812e+00 -1.81345987e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +882 2.96336237e-07 1.82784536e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.04816908e-02 1.27746163e-01 1.45200659e-02 ! x y z +-1.60832782e+01 -5.35559802e+00 2.27780462e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +883 2.96336237e-07 1.96061539e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.43783914e-01 1.09840151e-02 -3.50444257e-03 ! x y z +-1.28269754e+00 -1.64917510e+01 6.19425588e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +884 2.96336237e-07 5.42371339e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.28607506e-01 2.25901058e-01 1.62474180e-02 ! x y z +-5.57048514e+00 8.16506928e+00 -1.14852283e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +885 2.96336237e-07 1.39430004e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.11470781e-03 -1.02386627e-01 -4.25299809e-03 ! x y z +1.94866408e+01 1.23623098e+00 -1.86208733e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +886 2.96336237e-07 4.00590763e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.39598277e-02 2.93166761e-01 -9.91120102e-03 ! x y z +-1.14532513e+01 1.35235256e+00 7.62770022e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +887 2.96336237e-07 5.58125448e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.97656063e-01 -1.05866853e-01 -1.23592980e-02 ! x y z +2.52113313e+00 -9.44032210e+00 -5.27701479e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +888 2.96336237e-07 2.16605842e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.12518274e-02 -1.50962888e-01 5.76470993e-04 ! x y z +1.48991302e+01 5.05845218e+00 -4.88861723e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +889 2.96336237e-07 3.16438766e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.72179174e-01 2.09727484e+00 2.98625971e-01 ! x y z +-3.73956577e+00 1.71132050e+00 1.54619512e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +890 2.96336237e-07 4.58774736e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.42342805e-01 3.31723938e+00 -4.62991305e-01 ! x y z +-3.36881435e+00 4.89818944e-01 3.14505168e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +891 2.96336237e-07 2.12439165e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.21509721e-02 1.42216353e-01 2.06105927e-02 ! x y z +-1.43486334e+01 -6.55189788e+00 1.78756293e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +892 2.96336237e-07 4.28739806e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.83981146e-01 -2.53222839e-01 -4.20286665e-02 ! x y z +8.84722195e+00 6.67574571e+00 -1.46999461e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +893 2.96336237e-07 1.65173197e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.89941625e-01 1.06200541e+00 -4.08263292e-03 ! x y z +-4.96862900e+00 2.76348413e+00 -4.67544309e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +894 2.96336237e-07 1.67633277e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.66124557e-01 7.56639506e-01 1.39884543e-01 ! x y z +-3.44831921e+00 4.46372912e+00 -3.72261138e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +895 2.96336237e-07 1.16379791e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.31312126e-01 1.48179632e-01 -1.48577578e-01 ! x y z +-1.18066108e+00 6.68141979e+00 2.40819604e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +896 2.96336237e-07 2.93634154e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.56985396e-01 2.05461664e+00 1.56156383e-01 ! x y z +-3.98541177e+00 -1.33307628e+00 7.70635270e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +897 2.96336237e-07 2.47414346e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.22222583e-02 -1.66163844e-01 -2.10403956e-02 ! x y z +1.34968778e+01 5.82162583e+00 4.38995265e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +898 2.96336237e-07 1.62248295e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.82766579e-02 -8.99179417e-02 -9.20971151e-03 ! x y z +1.36688298e+01 1.15665387e+01 3.06056053e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +899 2.96336237e-07 3.12229870e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.61781161e-01 1.62879099e-01 -6.13390653e-03 ! x y z +-9.28876514e+00 -9.25275592e+00 -5.04074622e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +900 2.96336237e-07 2.12037735e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.08823734e-02 1.25171844e-01 2.00405753e-02 ! x y z +-1.29043439e+01 -9.00781054e+00 -2.40146487e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +901 2.96336237e-07 2.27328940e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.00029884e-02 1.64219591e-01 -1.33125235e-02 ! x y z +-1.48642586e+01 -2.92358425e+00 -2.49187966e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +902 2.96336237e-07 2.78378124e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.99708416e-01 4.62944772e-02 -5.19548286e-03 ! x y z +-3.14307367e+00 1.35039935e+01 -5.01572582e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +903 2.96336237e-07 8.69089301e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.06266720e-01 6.31558944e-01 -8.63032351e-03 ! x y z +-7.66630289e+00 -1.27506932e+00 1.09799430e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +904 2.96336237e-07 4.26290995e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.89167595e-01 -1.22104105e-01 3.04334429e-03 ! x y z +4.30885916e+00 -1.01619667e+01 1.99214208e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +905 2.96336237e-07 5.79722917e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.37452276e-01 3.54896969e-01 -1.81102293e-04 ! x y z +-7.98826275e+00 5.34944230e+00 -1.56159547e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +906 2.96336237e-07 7.44757006e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.40895435e-01 6.39101780e-02 6.45558261e-02 ! x y z +-1.13693141e+00 -8.30858382e+00 -1.29088552e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +907 2.96336237e-07 1.17402335e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.62588916e-01 -8.40632953e-01 -1.18585707e-01 ! x y z +6.63496883e+00 1.22248558e+00 4.17387063e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +908 2.96336237e-07 1.85107456e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.10138740e-01 -1.32773578e+00 -2.04755836e-02 ! x y z +5.23842889e+00 -1.22253816e+00 -1.06249442e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +909 2.96336237e-07 2.34624867e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.68540683e-01 2.03533946e-02 -3.22348717e-02 ! x y z +-1.86308838e+00 -1.50001052e+01 1.27031136e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +910 2.96336237e-07 1.50073317e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.08604598e-01 -1.71938386e-02 1.11741132e-02 ! x y z +3.09661839e+00 -1.85887938e+01 1.45401826e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +911 2.96336237e-07 1.96195016e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.10353169e-02 1.34775623e-01 1.08160966e-02 ! x y z +-1.53889719e+01 5.66515837e+00 2.05851916e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +912 2.96336237e-07 1.45944107e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.49136582e-01 -8.45203217e-01 -1.43881979e-01 ! x y z +4.82956125e+00 3.57846326e+00 7.53097945e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +913 2.96336237e-07 4.90064459e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.53583686e-01 -7.20546248e-02 9.86953167e-03 ! x y z +2.07635143e+00 -1.02411066e+01 -4.06831624e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +914 2.96336237e-07 3.49713935e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.54012855e-01 6.11234741e-03 -3.92095928e-02 ! x y z +-1.69596779e-01 -1.23755774e+01 -8.17088081e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +915 2.96336237e-07 1.38594107e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-9.99634051e-02 -2.07062387e-02 6.87734336e-04 ! x y z +3.98937852e+00 -1.92554495e+01 1.01125327e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +916 2.96336237e-07 1.93337579e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.31497624e-01 5.44125715e-02 1.02400831e-02 ! x y z +-6.43350515e+00 -1.52169370e+01 -1.79464599e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +917 2.96336237e-07 2.45706841e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.69201523e-01 -6.46480013e-02 2.95742207e-03 ! x y z +5.25729533e+00 1.37827831e+01 3.31924280e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +918 2.96336237e-07 8.66069184e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.51306653e-01 5.31977230e-01 4.31592404e-02 ! x y z +-6.50098636e+00 -4.34418809e+00 7.40633791e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +919 2.96336237e-07 1.66154614e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.91157903e-01 -8.35309990e-01 -7.35761154e-02 ! x y z +3.86512882e+00 -4.14535001e+00 3.80544359e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +920 2.96336237e-07 1.60364538e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.43049114e-01 -1.09454958e+00 3.00533875e-02 ! x y z +5.35766399e+00 -2.17066324e+00 -7.62193922e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +921 2.96336237e-07 1.39767654e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.81583879e-02 1.02708440e+00 -2.18433877e-02 ! x y z +-6.05859003e+00 -4.38708795e-01 -1.20085012e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +922 2.96336237e-07 1.75603350e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.22237886e+00 -3.85503006e-01 -1.74667600e-01 ! x y z +1.63793961e+00 -5.27267834e+00 1.78264954e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +923 2.96336237e-07 7.62156310e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.72188596e-01 2.94636288e-01 7.33872818e-02 ! x y z +-4.42616248e+00 -7.12220415e+00 6.97702601e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +924 2.96336237e-07 1.70892318e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15690219e-01 4.81224079e-02 1.08303908e-02 ! x y z +-6.95791059e+00 1.60002014e+01 3.12244832e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +925 2.96336237e-07 3.47506158e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.37164057e-01 -9.63363228e-02 -1.53446103e-03 ! x y z +4.67308935e+00 1.15045133e+01 -1.12506365e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +926 2.96336237e-07 3.11290019e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.27998477e+00 -2.47726635e-01 9.90544394e-02 ! x y z +4.10011732e-01 4.05539473e+00 7.50632237e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +927 2.96336237e-07 3.35469224e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.89819446e-01 -1.58125529e-01 2.25026841e-03 ! x y z +8.10498877e+00 -9.70111130e+00 -9.97403119e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +928 2.96336237e-07 4.25310529e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.50014428e-01 1.82723047e-01 4.83040730e-02 ! x y z +-6.66224222e+00 9.01971974e+00 4.05093305e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +929 2.96336237e-07 2.42315663e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.78158028e-01 1.07970702e-02 -5.27059743e-03 ! x y z +-8.78446275e-01 -1.48319048e+01 -4.83066213e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +930 2.96336237e-07 1.66654604e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.85222762e-02 -1.07924522e-01 -6.72574518e-05 ! x y z +1.57101877e+01 8.51452165e+00 1.48635303e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +931 2.96336237e-07 1.14585326e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.33599367e-01 1.39645697e-01 -5.05377000e-04 ! x y z +-1.13342702e+00 -6.73470103e+00 -4.44620673e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +932 2.96336237e-07 3.18563975e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.82743222e-01 1.47360893e-01 -4.52351230e-03 ! x y z +-8.12727932e+00 1.00965316e+01 1.81325702e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +933 2.96336237e-07 1.73018531e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19630719e-01 -4.35024842e-02 3.47481229e-03 ! x y z +6.03705569e+00 -1.63923067e+01 2.25892158e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +934 2.96336237e-07 1.79291082e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.20004960e-01 5.27303194e-02 1.74934568e-02 ! x y z +-6.71498644e+00 -1.58181122e+01 1.67974997e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +935 2.96336237e-07 3.86333802e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.67332562e-01 9.65056973e-02 1.02104652e-02 ! x y z +-3.96103654e+00 -1.10743769e+01 7.47383823e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +936 2.96336237e-07 1.80206607e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.22504840e-01 -5.05748446e-02 7.88442782e-03 ! x y z +6.56425549e+00 -1.59354302e+01 -4.95675892e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +937 2.96336237e-07 1.38524143e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.56550514e-02 5.48163769e-02 -6.48107916e-03 ! x y z +-1.06108906e+01 -1.65930609e+01 7.45965376e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +938 2.96336237e-07 5.12194286e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.66331305e-01 7.92208766e-02 -4.43755522e-02 ! x y z +-2.32433368e+00 -9.82538831e+00 1.61832063e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +939 2.96336237e-07 3.61240067e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.44717545e-01 -1.03514924e-01 -9.04524590e-03 ! x y z +4.74612714e+00 1.12254092e+01 2.73100978e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +940 2.96336237e-07 2.00397143e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.73297473e-03 -1.46641295e-01 -1.69648762e-02 ! x y z +1.63013657e+01 3.30655606e-01 -1.23672548e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +941 2.96336237e-07 3.01652106e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.34310878e-01 -1.76910553e-01 5.93960210e-04 ! x y z +1.06194326e+01 -8.06307261e+00 -6.25621621e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +942 2.96336237e-07 1.73182356e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24895992e+00 1.14359414e-01 -2.37267504e-01 ! x y z +-5.54627913e-01 -5.52446218e+00 2.85518718e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +943 2.96336237e-07 2.69009978e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.83398224e-02 1.71711429e-01 -8.61604988e-03 ! x y z +-1.22447949e+01 7.01623231e+00 4.87460756e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +944 2.96336237e-07 2.90014965e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.15244680e+00 -1.78768066e+00 -2.05346911e-01 ! x y z +3.61174380e+00 2.32905320e+00 1.64056694e-04 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +945 2.96336237e-07 2.13303967e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.06566657e-01 -1.13718299e-01 -1.97286159e-02 ! x y z +1.14089146e+01 1.09256119e+01 -1.34633089e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +946 2.96336237e-07 2.55201254e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.38969266e-03 1.85886966e-01 2.69598651e-02 ! x y z +-1.44618393e+01 6.56990874e-01 4.86907483e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +947 2.96336237e-07 1.65493084e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.95749009e-02 1.10853163e-01 1.00708900e-02 ! x y z +-1.64441325e+01 7.32750101e+00 1.14142182e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +948 2.96336237e-07 4.00349742e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.48211660e-01 -1.59684926e-01 5.37953418e-03 ! x y z +6.24248312e+00 -9.70659091e+00 -6.43539666e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +949 2.96336237e-07 2.85479014e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.06025842e-01 -3.65965775e-02 1.88648875e-02 ! x y z +2.48635818e+00 1.34575153e+01 -8.79312234e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +950 2.96336237e-07 1.38588803e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.15379940e-01 8.79436847e-01 -2.49066442e-02 ! x y z +-5.37661341e+00 3.13650316e+00 -1.30999749e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +951 2.96336237e-07 1.05264406e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.57715049e-01 1.60731162e-01 -2.24247590e-02 ! x y z +-1.43844401e+00 -6.94192235e+00 -8.46373555e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +952 2.96336237e-07 1.61532953e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.14577362e+00 3.18573115e-01 3.86801838e-02 ! x y z +-1.52356768e+00 -5.53580079e+00 4.59032515e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +953 2.96336237e-07 1.70510618e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.65374748e-01 1.22871246e+00 5.06370772e-02 ! x y z +-5.46868214e+00 1.17952865e+00 1.70892375e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +954 2.96336237e-07 1.31957791e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.70293492e-01 -6.88887998e-01 1.48868000e-01 ! x y z +4.52889114e+00 -4.46543113e+00 -3.31525052e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +955 2.96336237e-07 4.10243348e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.99447071e-01 -3.88609000e-02 1.37093908e-02 ! x y z +1.47763097e+00 1.13300768e+01 -1.04419973e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +956 2.96336237e-07 2.41668950e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.71607343e-02 -1.75792727e-01 -9.92237389e-03 ! x y z +1.46885594e+01 2.23111918e+00 8.23545754e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +957 2.96336237e-07 9.46597319e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.17728779e-01 -4.64898703e-01 -9.54315460e-03 ! x y z +5.03848958e+00 -5.60834135e+00 9.14749650e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +958 2.96336237e-07 1.86952063e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.37418815e-01 2.17152862e-03 7.02002324e-03 ! x y z +-2.08256274e-01 -1.69097914e+01 1.03655936e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +959 2.96336237e-07 3.70339256e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.70523456e+00 1.93879228e-01 -2.83408971e-01 ! x y z +-3.26981757e-01 -3.75857508e+00 4.97961043e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +960 2.96336237e-07 3.73508869e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.35325027e-01 2.39444221e-01 -1.84735354e-03 ! x y z +-1.04212016e+01 5.90862644e+00 2.39671578e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +961 2.96336237e-07 3.94424971e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.85895725e-01 -5.23770142e-02 -1.30994233e-02 ! x y z +1.95713875e+00 1.12527852e+01 -2.24343765e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +962 2.96336237e-07 2.05001826e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.27016727e-02 1.37371226e-01 -3.56702957e-03 ! x y z +-1.47049219e+01 6.71072403e+00 -1.13817163e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +963 2.96336237e-07 7.08589148e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.74474733e-02 5.18079679e-01 3.15321610e-02 ! x y z +-8.63547685e+00 -9.36137434e-01 -3.31970530e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +964 2.96336237e-07 1.49478376e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.81601720e-02 -1.04826753e-01 -1.87658164e-02 ! x y z +1.81987061e+01 -5.09219745e+00 1.04907276e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +965 2.96336237e-07 1.05860994e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.11294223e-01 -5.88750869e-01 -3.15903391e-04 ! x y z +5.31006560e+00 4.61049759e+00 -1.08263227e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +966 2.96336237e-07 2.27588242e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.67054832e-01 1.50088123e-02 2.42972682e-03 ! x y z +-1.37743126e+00 -1.51795886e+01 -1.69545065e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +967 2.96336237e-07 9.99270509e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.92359212e-01 7.09564300e-01 2.76351418e-02 ! x y z +-7.06199692e+00 -1.93782306e+00 2.42778297e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +968 2.96336237e-07 1.29115850e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.25385750e-01 -2.20645679e-01 -2.84606271e-04 ! x y z +1.49138284e+00 6.26585228e+00 -3.83501324e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +969 2.96336237e-07 1.60735945e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.86583287e-01 8.61444208e-01 1.94780081e-01 ! x y z +-4.28480290e+00 -3.87607292e+00 -1.79161904e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +970 2.96336237e-07 3.47091730e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.47316085e+00 4.04918805e-01 -5.01180317e-01 ! x y z +-6.38173445e-01 -3.87868782e+00 2.87383943e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +971 2.96336237e-07 3.38571096e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.06531044e-01 -2.25146584e-01 -1.53808308e-02 ! x y z +1.13376962e+01 -5.27742157e+00 -1.30136647e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +972 2.96336237e-07 5.09440047e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.43441183e-01 -3.38953248e-01 6.93233183e-02 ! x y z +9.43734744e+00 4.05627731e+00 3.02446887e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +973 2.96336237e-07 1.22978155e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.96389839e-01 8.46748525e-01 -1.11950598e-01 ! x y z +-6.24804681e+00 -2.12634083e+00 4.37285738e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +974 2.96336237e-07 8.65038857e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.96337825e-01 3.99343165e-01 6.83019861e-03 ! x y z +-4.92398369e+00 -6.12383879e+00 -4.77785888e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +975 2.96336237e-07 2.96107958e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.62746960e-01 2.10641893e+00 -5.87372037e-02 ! x y z +-4.09768661e+00 -1.08483602e+00 3.63389985e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +976 2.96336237e-07 6.79914022e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.37778435e-01 -2.44848013e-01 -1.26117469e-02 ! x y z +4.27847832e+00 -7.70046909e+00 9.63388518e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +977 2.96336237e-07 4.82810698e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.36859265e+00 -3.27723362e+00 -1.33670888e-01 ! x y z +3.07804542e+00 -1.28010646e+00 -4.33275230e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +978 2.96336237e-07 1.41645102e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.57548591e-02 -1.00154783e-01 1.39502332e-02 ! x y z +1.87604397e+01 -4.96889822e+00 -1.27121063e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +979 2.96336237e-07 5.10977756e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.79620029e-01 3.27337489e-01 -4.38527641e-02 ! x y z +-9.01255700e+00 -4.81706789e+00 8.35611885e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +980 2.96336237e-07 2.59838671e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.16845914e-02 -1.90161824e-01 -7.41123853e-05 ! x y z +1.42640322e+01 1.62614734e+00 3.93699290e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +981 2.96336237e-07 3.85651707e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.72402627e-01 -7.93168677e-02 4.05576025e-03 ! x y z +3.28030103e+00 -1.12640382e+01 1.28413044e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +982 2.96336237e-07 7.67792671e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.44312157e-01 5.46675491e-01 1.54945194e-02 ! x y z +-8.06950886e+00 2.14424229e+00 -2.69010784e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +983 2.96336237e-07 1.36799784e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.62938451e-01 -8.31730782e-01 -8.56698693e-02 ! x y z +5.13353612e+00 3.53762914e+00 -5.33256758e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +984 2.96336237e-07 4.08041880e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.46281030e-01 2.59844570e-01 3.58061298e-02 ! x y z +-1.00138605e+01 5.51759986e+00 9.07457705e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +985 2.96336237e-07 4.07272682e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.30190326e-01 2.69860092e-01 -1.00134699e-02 ! x y z +-1.03277699e+01 -4.98812713e+00 -4.77085445e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +986 2.96336237e-07 1.90818234e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.67718988e-02 1.23536697e-01 -5.03497855e-03 ! x y z +-1.47398486e+01 7.91260881e+00 -1.06969287e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +987 2.96336237e-07 2.07916241e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.01999173e-01 1.14183625e-01 4.14367511e-03 ! x y z +-1.19651990e+01 1.06850701e+01 -6.21734279e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +988 2.96336237e-07 5.35625520e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.06643842e-01 2.45162080e-01 -3.89741089e-02 ! x y z +-6.14824603e+00 -7.84600684e+00 -8.38101136e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +989 2.96336237e-07 3.12896277e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.03140847e-01 2.06490535e-01 -7.21872574e-03 ! x y z +-1.16833807e+01 5.84045664e+00 -2.76008440e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +990 2.96336237e-07 1.40131191e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.03904870e-02 9.44675844e-02 8.86243696e-03 ! x y z +-1.80049300e+01 -7.67036658e+00 -4.15499830e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +991 2.96336237e-07 2.33080776e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.23791398e+00 -1.19150241e+00 -7.11736278e-02 ! x y z +3.32202144e+00 3.43579966e+00 2.80623088e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +992 2.96336237e-07 2.63696766e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.07015938e-01 -1.83968564e+00 3.80167288e-01 ! x y z +4.34289672e+00 1.17069801e+00 -1.47741160e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +993 2.96336237e-07 1.64020704e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.17831022e-03 1.20641706e-01 -4.33108327e-03 ! x y z +-1.79025093e+01 -8.46836411e-01 -2.33672715e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +994 2.96336237e-07 1.23769572e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.97190753e-01 7.65691844e-02 -1.42083825e-01 ! x y z +-5.13604774e-01 -6.55492239e+00 -2.80837706e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +995 2.96336237e-07 2.26020475e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.48185454e+00 7.46321653e-01 1.42354362e-01 ! x y z +-2.14625796e+00 -4.34398631e+00 4.72517326e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +996 2.96336237e-07 2.62157216e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.25172579e-01 -1.46915266e-01 9.01088569e-03 ! x y z +1.08477449e+01 -9.28178020e+00 -6.04832616e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +997 2.96336237e-07 1.80696664e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.30879183e-01 2.12348715e-02 1.11371504e-02 ! x y z +-2.72513460e+00 -1.70077334e+01 3.11224576e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +998 2.96336237e-07 1.48356192e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.17454161e-01 -1.00990947e+00 -6.68005279e-05 ! x y z +5.55398155e+00 2.29724534e+00 2.96839485e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +999 2.96336237e-07 6.54223940e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.48540666e-02 -4.73509483e-01 -6.16171667e-02 ! x y z +8.92680781e+00 -1.31485883e+00 7.12200476e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1000 2.96336237e-07 2.38604708e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.88897076e-01 -1.57230791e+00 1.43343763e-02 ! x y z +4.22895643e+00 2.12916212e+00 4.84307179e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1001 2.96336237e-07 1.64126121e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.16745684e-01 -3.15007989e-02 3.40734839e-03 ! x y z +4.66911820e+00 -1.74172880e+01 -9.88294520e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1002 2.96336237e-07 1.06470041e-02 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.74074444e-01 3.57247588e+00 1.22712296e-01 ! x y z +-3.23751959e+00 6.12821445e-01 5.64932650e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1003 2.96336237e-07 4.84814521e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.51182789e-02 1.51240274e-01 -2.16267083e-02 ! x y z +-1.41415961e+01 -5.84210883e+00 1.76846605e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1004 2.96336237e-07 1.31673428e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.27916091e-01 -1.37918863e-01 -2.71529391e-02 ! x y z +2.86419355e+00 -8.91041758e+00 -6.01317699e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1005 2.96336237e-07 3.21721504e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.09148352e+00 1.09184215e-01 -8.29110680e-02 ! x y z +-6.63759102e-01 -5.85966440e+00 1.05196899e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1006 2.96336237e-07 3.96552292e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24129761e-01 -5.37708141e-02 1.04456196e-02 ! x y z +6.60909031e+00 -1.55833259e+01 -2.05655592e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1007 2.96336237e-07 4.19165053e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.17225747e-01 8.21558748e-02 -4.23269930e-03 ! x y z +-9.52731933e+00 -1.35953626e+01 -4.95702545e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1008 2.96336237e-07 5.22168686e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.65706774e-01 -6.61525764e-02 -3.20363277e-03 ! x y z +5.50113300e+00 1.38082680e+01 6.18414881e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1009 2.96336237e-07 6.20600588e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.56484900e-01 1.43278911e-01 -5.06980793e-04 ! x y z +-9.19973551e+00 1.00692057e+01 -2.17110400e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1010 2.96336237e-07 3.95433171e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.25058673e+00 4.92783652e-01 -1.42343853e-01 ! x y z +-2.02074681e+00 4.97909860e+00 -5.80519071e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1011 2.96336237e-07 6.67942889e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.23132417e-01 3.69719368e-02 2.90644682e-02 ! x y z +-2.11525095e+00 -1.29929152e+01 2.84767847e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1012 2.96336237e-07 3.70395497e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.16360394e-01 5.00900190e-02 -6.17753068e-03 ! x y z +-6.95453975e+00 1.61862870e+01 6.35036321e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1013 2.96336237e-07 2.58435335e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.78683362e-01 9.73989333e-02 -9.38461997e-03 ! x y z +-7.32427667e-01 -6.63854489e+00 -1.33630739e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1014 2.96336237e-07 9.25804779e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.00962293e-01 8.03406362e-02 -5.54929609e-02 ! x y z +-2.99296223e+00 -1.07423882e+01 6.77917660e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1015 2.96336237e-07 2.08185619e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.36389989e-01 3.18692338e-01 9.36078741e-03 ! x y z +-3.33548840e+00 -6.65785191e+00 -9.18683758e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1016 2.96336237e-07 4.18608733e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.43010948e-01 4.81790633e-04 1.71369666e-03 ! x y z +-5.29468391e-02 -1.66171276e+01 2.82598835e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1017 2.96336237e-07 5.06594524e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.47658927e-01 8.84455219e-02 -1.94988516e-02 ! x y z +-7.71114929e+00 1.29700652e+01 4.34118486e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1018 2.96336237e-07 1.37325283e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.41194112e-01 1.60577039e-01 1.73742504e-03 ! x y z +-3.13590065e+00 8.61664225e+00 -3.01150012e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1019 2.96336237e-07 3.49839062e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.76801700e-01 1.03724041e+00 -1.44302668e-01 ! x y z +-5.02989010e+00 2.71169287e+00 -6.16925428e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1020 2.96336237e-07 5.08423673e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.23284921e-02 -1.68510141e-01 -9.20461387e-03 ! x y z +1.45280934e+01 -3.57985540e+00 -1.67457194e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1021 2.96336237e-07 2.88136692e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.56687149e-01 -8.71432369e-01 -3.07901282e-03 ! x y z +5.61701404e+00 -2.93701537e+00 8.14466659e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1022 2.96336237e-07 1.18694160e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.24048870e-01 -3.85993119e-01 -2.85301417e-02 ! x y z +9.37852789e+00 -2.97372717e+00 -4.23128322e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1023 2.96336237e-07 8.96459515e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.53276998e-01 -1.73081976e-01 -1.13169035e-03 ! x y z +6.39426668e+00 9.36386297e+00 5.26735434e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1024 2.96336237e-07 3.02450304e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.88838983e-02 -1.01821976e-01 6.54567242e-04 ! x y z +1.91821714e+01 3.55946988e+00 -8.43912795e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1025 2.96336237e-07 1.05654855e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.38464238e-02 -3.53644429e-01 -5.17728954e-03 ! x y z +1.01773856e+01 2.11438730e+00 1.08970005e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1026 2.96336237e-07 4.55847563e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.07892079e-02 -1.55411559e-01 4.23696601e-03 ! x y z +1.58725780e+01 -1.09253615e+00 4.42578222e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1027 2.96336237e-07 2.59703578e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.07944130e-01 -6.33539686e-01 1.25298354e-01 ! x y z +4.73176841e+00 4.67105756e+00 5.91252976e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1028 2.96336237e-07 4.95937323e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.38261779e-01 9.84481414e-02 -2.77272739e-03 ! x y z +-8.68764136e+00 -1.23055878e+01 -2.32120158e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1029 2.96336237e-07 8.25295670e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.15312805e-01 1.79067589e-01 -3.85403858e-02 ! x y z +-7.33967694e+00 9.13787549e+00 1.42230313e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1030 2.96336237e-07 2.93353480e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.57228267e-02 8.89156341e-02 -9.55076715e-03 ! x y z +-1.73678855e+01 9.17771303e+00 2.57320503e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1031 2.96336237e-07 2.27668619e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.81106960e-01 -7.26498645e-01 1.56124406e-02 ! x y z +6.63191368e+00 2.57565486e+00 -4.46604449e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1032 2.96336237e-07 1.42093473e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +4.66035760e-01 1.34677980e-01 1.51474078e-02 ! x y z +-2.48711618e+00 8.66288977e+00 -4.31348547e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1033 2.96336237e-07 5.09843210e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.49256391e-01 -8.98552957e-02 8.03161856e-03 ! x y z +7.67000539e+00 -1.28888894e+01 -1.13596382e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1034 2.96336237e-07 2.84104498e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.67047329e-01 9.28377081e-01 1.17555844e-01 ! x y z +-6.11851787e+00 1.74304133e+00 1.28534970e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1035 2.96336237e-07 1.10279238e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.94562813e-01 -2.35512967e-01 -9.44091625e-03 ! x y z +6.30750817e+00 -7.94331886e+00 1.30443469e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1036 2.96336237e-07 3.23798109e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.89380141e-02 -9.36563886e-02 3.79456685e-03 ! x y z +1.59807157e+01 -1.00540926e+01 1.17743202e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1037 2.96336237e-07 9.44551536e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.25748690e-01 2.29346442e-01 2.69765311e-02 ! x y z +-7.87715725e+00 7.75524591e+00 -2.21822295e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1038 2.96336237e-07 1.43736909e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.58403406e-01 -4.61724349e-01 5.68464249e-02 ! x y z +8.34916992e+00 -3.02775882e+00 -1.20511907e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1039 2.96336237e-07 1.54656595e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.24393405e-01 6.21171025e-02 1.87747805e-03 ! x y z +-9.93775138e-01 8.46832981e+00 -1.46881518e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1040 2.96336237e-07 6.02900758e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.74552181e-02 -2.05437138e-01 -1.10303979e-03 ! x y z +1.37405990e+01 1.15091503e+00 -1.13712483e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1041 2.96336237e-07 4.87636153e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.26963530e-02 -1.44856828e-01 -6.37855396e-05 ! x y z +1.33567034e+01 -7.62604409e+00 -5.92237759e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1042 2.96336237e-07 2.00284670e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.06838668e-02 6.84254725e-01 9.12913403e-03 ! x y z +-7.58232021e+00 -3.44409180e-01 1.93699933e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1043 2.96336237e-07 3.11769323e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.00801700e-01 3.47624129e-02 -2.99039627e-03 ! x y z +-6.17605701e+00 1.81276908e+01 1.75096524e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1044 2.96336237e-07 8.16029827e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.36231606e-01 -2.43461847e-01 -3.84641919e-03 ! x y z +1.03273243e+01 -5.81026018e+00 1.03402054e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1045 2.96336237e-07 2.40073156e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.78147625e-01 4.56003365e-01 7.46575617e-02 ! x y z +-3.83380119e+00 5.76751152e+00 -3.95322885e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1046 2.96336237e-07 3.40848950e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.09041757e-02 -1.04632567e-01 -6.11195864e-03 ! x y z +1.63194834e+01 -8.09100239e+00 2.65772836e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1047 2.96336237e-07 2.97356522e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +8.18035965e-02 -6.02983301e-02 -1.45641272e-04 ! x y z +1.16966126e+01 1.58596094e+01 5.19810521e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1048 2.96336237e-07 1.49726682e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.97534722e-01 1.15947877e-01 -4.33078255e-02 ! x y z +-1.92732259e+00 -8.51844523e+00 -7.75528723e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1049 2.96336237e-07 8.85265431e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.02692645e-01 -1.40124988e-02 -4.41042733e-03 ! x y z +5.27292112e-01 -1.13562805e+01 9.27252443e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1050 2.96336237e-07 1.11824292e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.73992545e-01 -6.98394173e-02 -3.67233300e-02 ! x y z +1.93140005e+00 -9.94855540e+00 -7.77421387e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1051 2.96336237e-07 1.20020469e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.15392539e-01 -2.62139778e-01 -1.51623802e-02 ! x y z +6.24901693e+00 -7.54616708e+00 4.34791226e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1052 2.96336237e-07 3.23257150e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.27973678e-02 5.95891531e-02 6.38364525e-03 ! x y z +-1.02606373e+01 1.58031691e+01 1.58657612e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1053 2.96336237e-07 5.81276260e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.86537730e-01 -6.32545793e-02 2.64190341e-02 ! x y z +4.34995894e+00 -1.33483995e+01 -1.24179804e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1054 2.96336237e-07 2.65103417e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.60715492e-01 4.79257662e-01 1.15238363e-01 ! x y z +-3.58339492e+00 5.46023497e+00 9.44881220e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1055 2.96336237e-07 3.37850032e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.03189345e-01 5.10823801e-02 8.54272991e-03 ! x y z +-8.07533814e+00 1.65808836e+01 -1.39166928e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1056 2.96336237e-07 1.67715490e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.44868474e-01 -1.75228361e-01 3.64405664e-02 ! x y z +2.58334069e+00 7.78885401e+00 -1.21757856e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1057 2.96336237e-07 4.31237497e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.46690021e+00 5.90166143e-03 -1.40576632e-01 ! x y z +-4.81290244e-02 -5.16316655e+00 3.76887531e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1058 2.96336237e-07 6.74071813e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.07621519e-01 2.03716913e-01 2.58020698e-03 ! x y z +-1.15721686e+01 6.11760527e+00 -1.74200379e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1059 2.96336237e-07 4.91411975e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.00718011e+00 -1.34799155e+00 3.53469553e-02 ! x y z +3.86824988e+00 2.88497454e+00 -3.57267475e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1060 2.96336237e-07 2.32551536e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.13013746e-01 5.01226320e-01 6.87559253e-02 ! x y z +-4.48337459e+00 -5.39911255e+00 -6.58257106e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1061 2.96336237e-07 8.23105536e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.88915443e+00 2.08215730e+00 -4.66570027e-02 ! x y z +-2.72298812e+00 2.48170068e+00 6.91140791e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1062 2.96336237e-07 1.60390650e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +3.51445528e-01 4.21052262e-01 4.72627688e-03 ! x y z +-6.51084959e+00 5.43792465e+00 3.07567169e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1063 2.96336237e-07 6.64003256e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.13349199e+00 7.83666356e-01 -4.85010866e-02 ! x y z +-1.42923283e+00 3.90610912e+00 2.00447908e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1064 2.96336237e-07 2.78356000e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.78637601e-01 -8.14174318e-01 1.09168535e-01 ! x y z +5.47313452e+00 -3.32371119e+00 -7.49892982e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1065 2.96336237e-07 1.07861022e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.75992202e-02 -3.58102214e-01 7.86041978e-03 ! x y z +9.84720379e+00 -2.45225267e+00 -2.02122454e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1066 2.96336237e-07 5.23798120e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.65381782e-01 -6.87581228e-02 -4.48553759e-03 ! x y z +5.58315921e+00 1.35541913e+01 -2.31531244e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1067 2.96336237e-07 1.04394794e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.75697797e-01 3.10379687e-01 -1.54170027e-02 ! x y z +-9.14752704e+00 -5.14399835e+00 6.50547327e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1068 2.96336237e-07 4.94499829e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.43036749e-02 -1.51391839e-01 -8.05748123e-03 ! x y z +1.36980055e+01 -6.77168736e+00 8.06088207e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1069 2.96336237e-07 7.74460554e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +5.87839160e-02 -2.56591928e-01 2.89755970e-02 ! x y z +1.18512335e+01 2.54918268e+00 -1.44614828e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1070 2.96336237e-07 3.05335424e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.51194255e-03 -1.04143895e-01 -3.38992275e-03 ! x y z +1.94042987e+01 -1.20318977e+00 -3.41601478e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1071 2.96336237e-07 4.34434410e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.46013065e-01 -8.17783348e-03 -2.54165956e-02 ! x y z +6.36165066e-01 1.62398626e+01 -1.41188845e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1072 2.96336237e-07 6.38740328e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.64403679e-01 1.40592776e-01 -2.94350247e-02 ! x y z +-8.57202067e+00 -1.02838769e+01 -1.28273744e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1073 2.96336237e-07 5.89611193e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.91767566e-01 -5.30006077e-02 -3.26097154e-02 ! x y z +3.70757015e+00 -1.34916225e+01 1.12725577e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1074 2.96336237e-07 3.34491447e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.51833151e-03 1.14301988e-01 -3.30329730e-03 ! x y z +-1.84593496e+01 -3.39995502e-01 2.05813309e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1075 2.96336237e-07 7.72021864e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.55829128e-01 -2.12910607e-01 5.71720540e-03 ! x y z +9.86279771e+00 -7.23377860e+00 -1.06144560e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1076 2.96336237e-07 8.33130623e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.23285908e-01 1.76744500e-01 5.43874553e-03 ! x y z +-7.29359278e+00 9.23557485e+00 3.45093345e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1077 2.96336237e-07 1.26094230e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.57679876e-01 -3.45418056e-01 1.14265971e-02 ! x y z +7.56449148e+00 -5.68969528e+00 -1.40828207e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1078 2.96336237e-07 3.37741082e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.14736221e-01 -1.14306465e+00 -1.19423170e-01 ! x y z +5.76845511e+00 -6.57143361e-01 6.81382086e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1079 2.96336237e-07 3.08203016e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-8.12650434e-02 -6.69588561e-02 5.10876930e-03 ! x y z +1.22941828e+01 -1.46898735e+01 2.71339914e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1080 2.96336237e-07 1.06429820e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.46017723e-02 3.61341639e-01 -1.24947094e-02 ! x y z +-1.03239751e+01 -1.27008334e+00 2.06236097e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1081 2.96336237e-07 7.37152169e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.29915702e-02 2.43518428e-01 1.62289138e-02 ! x y z +-1.20614056e+01 3.18917143e+00 -9.77157436e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1082 2.96336237e-07 1.13260750e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.65165244e-02 -3.83371639e-01 1.09899518e-02 ! x y z +9.97813790e+00 -1.46471938e+00 -8.96509684e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1083 2.96336237e-07 2.99942952e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.19355999e-02 -1.01904322e-01 -4.36932856e-03 ! x y z +1.93361108e+01 -2.38073808e+00 2.07853556e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1084 2.96336237e-07 4.46804808e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.49983331e-01 -2.31137074e-02 -1.64942321e-02 ! x y z +2.67649857e+00 -1.56830821e+01 -2.38430930e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1085 2.96336237e-07 3.81392853e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-6.93090078e-02 1.09200339e-01 1.62157581e-02 ! x y z +-1.47268421e+01 -9.26025807e+00 -5.71019852e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1086 2.96336237e-07 4.39454416e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-5.77801902e-02 1.38488040e-01 -1.33495928e-03 ! x y z +-1.49794567e+01 -6.23745343e+00 -3.15543375e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1087 2.96336237e-07 3.19023763e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +9.86061778e-02 -4.64504747e-02 -2.35609030e-03 ! x y z +8.10232111e+00 1.72222595e+01 2.87260072e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1088 2.96336237e-07 5.88826960e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.12881161e-01 -1.66512529e-01 1.04882472e-02 ! x y z +1.15834503e+01 7.84245355e+00 -4.15451085e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1089 2.96336237e-07 3.29142954e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +6.03947069e-02 -9.42815116e-02 1.22518872e-02 ! x y z +1.55324442e+01 1.02255659e+01 2.08559910e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1090 2.96336237e-07 9.29289292e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-3.03564395e+00 9.39921312e-01 -8.34546688e-02 ! x y z +-1.04774397e+00 -3.35741960e+00 2.04065024e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1091 2.96336237e-07 8.12478270e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.07965592e-01 2.55749684e-01 3.07345392e-03 ! x y z +-1.09890599e+01 -4.63836951e+00 -7.78187575e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1092 2.96336237e-07 5.24578727e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.18514063e-01 -1.34391504e-01 -7.58923152e-03 ! x y z +1.10995932e+01 9.82416558e+00 -6.43092939e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1093 2.96336237e-07 4.30209233e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +1.02782557e+00 -1.04306613e+00 1.37070993e-01 ! x y z +3.70249669e+00 3.60207922e+00 -3.98760733e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1094 2.96336237e-07 5.41608855e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.18695664e-02 1.70384024e-01 1.00567477e-02 ! x y z +-1.34452661e+01 5.65442673e+00 6.27537319e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1095 2.96336237e-07 3.36019031e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.85805986e-03 -1.14708749e-01 -1.45165778e-03 ! x y z +1.84912316e+01 -7.93490580e-01 1.20332304e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1096 2.96336237e-07 1.18372071e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-4.01987800e-01 3.37867792e-02 -2.62216127e-02 ! x y z +-8.65498606e-01 -9.81378983e+00 8.38681506e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1097 2.96336237e-07 6.38873550e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.13156407e-01 4.33357320e-02 -1.99137422e-02 ! x y z +-2.87166590e+00 1.29244592e+01 -2.33394631e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1098 2.96336237e-07 5.54987043e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.73818991e-01 -7.61492221e-02 2.58917243e-03 ! x y z +5.75918692e+00 -1.31742043e+01 -1.11378786e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1099 2.96336237e-07 4.22013250e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.32231765e-01 5.74613727e-02 -9.19312917e-03 ! x y z +-6.56941527e+00 -1.51493572e+01 -4.93757362e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1100 2.96336237e-07 3.57874114e-04 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-1.22341493e-01 4.89018051e-03 -8.50115374e-04 ! x y z +-7.44602891e-01 -1.79337569e+01 1.12998645e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1101 2.96336237e-07 2.81928574e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.30053266e-01 9.29205486e-01 -1.10295185e-01 ! x y z +-6.12890823e+00 1.61718447e+00 8.96097437e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1102 2.96336237e-07 1.73071242e-02 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-2.32694955e-02 2.50350947e-01 -3.12224781e-02 ! x y z +-1.24340259e+01 -1.14737108e+00 1.46788159e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1103 2.96336237e-07 8.83612426e-02 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +-7.13882041e-01 -1.79593230e+00 -6.20490790e-02 ! x y z +4.18110608e+00 -1.65201225e+00 -4.67688900e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1104 2.96336237e-07 2.45752603e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.08585088e-02 7.14556640e-02 -1.36094941e-03 ! x y z +-1.39251555e+01 1.37203539e+01 -3.19364899e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1105 2.96336237e-07 3.71502554e-03 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +2.05965081e-02 1.42710299e-01 3.73644793e-03 ! x y z +-1.63585519e+01 2.35884313e+00 3.59514969e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1106 2.96336237e-07 2.09799076e-02 ! ID / G*Mass / Rhill +7.07980829e-06 ! Radius +7.94472230e-01 -1.41835347e-01 1.01358631e-01 ! x y z +1.20564438e+00 6.85997610e+00 1.47041027e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot diff --git a/examples/symba_clement_2018/sun_MsunAUYR.in b/examples/symba_clement_2018/sun_MsunAUYR.in new file mode 100644 index 000000000..ceb04eea1 --- /dev/null +++ b/examples/symba_clement_2018/sun_MsunAUYR.in @@ -0,0 +1,7 @@ +0 ! id +39.476926408897626 ! G*Mass +0.004650467260962157 ! Radius +0.0 !4.7535806948127355e-12 ! J2 +0.0 !-2.2473967953572827e-18 ! J4 +0.0 0.0 0.07 ! Principle axes moments of inertia +11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) diff --git a/examples/symba_clement_2018/tp.in b/examples/symba_clement_2018/tp.in new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/examples/symba_clement_2018/tp.in @@ -0,0 +1 @@ +0 From 5fb1e6323ac32a32f48791a3352c811a33dc558c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 09:57:28 -0400 Subject: [PATCH 102/315] Added better io reporting energy output file --- examples/symba_chambers_2013/param.in | 3 ++- examples/symba_clement_2018/param.in | 3 ++- src/io/io.f90 | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 52b09a882..28500d32b 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -18,6 +18,7 @@ OUT_STAT REPLACE CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of EXTRA_FORCE no ! no extra user-defined forces +DISCARD_OUT discard.out BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file MU2KG 1.98847e30 ! (M_sun-> kg) @@ -25,7 +26,7 @@ DU2M 1.495979e11 ! distance unit to meters (AU --> m) TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes +ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes -DISCARD_OUT discard.out SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index f90f0f89e..79890595e 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -19,13 +19,14 @@ CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded +DISCARD_OUT discard.out RHILL_PRESENT yes ! Hill's sphere radii in input file MU2KG 1.98847e30 ! (M_sun-> kg) DU2M 1.495979e11 ! distance unit to meters (AU --> m) TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes +ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes -DISCARD_OUT discard.out SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/src/io/io.f90 b/src/io/io.f90 index 3f7a98cfc..4aa3b88a3 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -624,6 +624,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "ROTATION = ", param%lrotation write(*,*) "TIDES = ", param%ltides write(*,*) "ENERGY = ",param%lenergy + if (param%lenergy) write(*,*) "ENERGY_OUT = ",trim(adjustl(param%energy_out)) write(*,*) "MU2KG = ",param%MU2KG write(*,*) "TU2S = ",param%TU2S write(*,*) "DU2M = ",param%DU2M From 55f745dff0ac43d1a398d439997750aabcd21510 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 11:05:07 -0400 Subject: [PATCH 103/315] Changed whole array operations from (:) to (1:self%nbody) in order to only apply operations on valid array elements --- src/util/util_set.f90 | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/util/util_set.f90 b/src/util/util_set.f90 index 86e021ab6..4e686eec8 100644 --- a/src/util/util_set.f90 +++ b/src/util/util_set.f90 @@ -77,7 +77,7 @@ module subroutine util_set_mu_pl(self, cb) class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - if (self%nbody > 0) self%mu(:) = cb%Gmass + self%Gmass(:) + if (self%nbody > 0) self%mu(1:self%nbody) = cb%Gmass + self%Gmass(1:self%nbody) return end subroutine util_set_mu_pl @@ -92,7 +92,8 @@ module subroutine util_set_mu_tp(self, cb) class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - if (self%nbody > 0) self%mu(:) = cb%Gmass + if (self%nbody == 0) return + self%mu(1:self%nbody) = cb%Gmass return end subroutine util_set_mu_tp @@ -107,10 +108,10 @@ module subroutine util_set_rhill(self,cb) class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object - if (self%nbody > 0) then - call self%xv2el(cb) - self%rhill(:) = self%a(:) * (self%Gmass(:) / cb%Gmass / 3)**THIRD - end if + if (self%nbody == 0) return + + call self%xv2el(cb) + self%rhill(1:self%nbody) = self%a(1:self%nbody) * (self%Gmass(1:self%nbody) / cb%Gmass / 3)**THIRD return end subroutine util_set_rhill @@ -127,10 +128,10 @@ module subroutine util_set_rhill_approximate(self,cb) ! Internals real(DP), dimension(:), allocatable :: rh - if (self%nbody > 0) then - rh(:) = .mag. self%xh(:,:) - self%rhill(:) = rh(:) * (self%Gmass(:) / cb%Gmass / 3)**THIRD - end if + if (self%nbody == 0) return + + rh(1:self%nbody) = .mag. self%xh(:,1:self%nbody) + self%rhill(1:self%nbody) = rh(1:self%nbody) * (self%Gmass(1:self%nbody) / cb%Gmass / 3)**THIRD return end subroutine util_set_rhill_approximate From c6b7a00089a47c2440304eeed032a4f5e872606f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 14:50:33 -0400 Subject: [PATCH 104/315] Added explicit array range for a bunch of whole array operations. Also fixed a lingering bug in RMVS that was causing the planet accelerations to be miscalculated after an encounter was done if oblateness was turned on --- src/discard/discard.f90 | 6 +- src/helio/helio_kick.f90 | 8 +- src/kick/kick.f90 | 2 + src/rmvs/rmvs_encounter_check.f90 | 9 +- src/rmvs/rmvs_kick.f90 | 6 +- src/rmvs/rmvs_step.f90 | 244 ++++++++++++++-------------- src/symba/symba_collision.f90 | 40 ++--- src/symba/symba_drift.f90 | 30 ++-- src/symba/symba_encounter_check.f90 | 8 +- src/symba/symba_io.f90 | 52 +++--- src/symba/symba_kick.f90 | 22 +-- src/whm/whm_kick.f90 | 28 ++-- 12 files changed, 234 insertions(+), 221 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index 9c8044c61..2998e8804 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -53,7 +53,7 @@ module subroutine discard_pl(self, system, param) class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameter if (self%nbody == 0) return - self%ldiscard(:) = .false. + self%ldiscard(1:self%nbody) = .false. return end subroutine discard_pl @@ -86,9 +86,9 @@ module subroutine discard_tp(self, system, param) if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) call discard_cb_tp(tp, system, param) if (param%qmin >= 0.0_DP) call discard_peri_tp(tp, system, param) if (param%lclose) call discard_pl_tp(tp, system, param) - if (any(tp%ldiscard)) then + if (any(tp%ldiscard(1:ntp))) then allocate(ldiscard, source=tp%ldiscard) - call tp%spill(system%tp_discards, ldiscard, ldestructive=.true.) + call tp%spill(system%tp_discards, ldiscard(1:ntp), ldestructive=.true.) end if end associate diff --git a/src/helio/helio_kick.f90 b/src/helio/helio_kick.f90 index eebd17f53..8e7571a0b 100644 --- a/src/helio/helio_kick.f90 +++ b/src/helio/helio_kick.f90 @@ -65,9 +65,9 @@ module subroutine helio_kick_getacch_tp(self, system, param, t, lbeg) associate(tp => self, cb => system%cb, pl => system%pl, npl => system%pl%nbody) system%lbeg = lbeg if (system%lbeg) then - call tp%accel_int(pl%Gmass(:), pl%xbeg(:,:), npl) + call tp%accel_int(pl%Gmass(1:npl), pl%xbeg(:,1:npl), npl) else - call tp%accel_int(pl%Gmass(:), pl%xend(:,:), npl) + call tp%accel_int(pl%Gmass(1:npl), pl%xend(:,1:npl), npl) end if if (param%loblatecb) call tp%accel_obl(system) if (param%lextra_force) call tp%accel_user(system, param, t, lbeg) @@ -99,7 +99,7 @@ module subroutine helio_kick_vb_pl(self, system, param, t, dt, lbeg) if (self%nbody == 0) return associate(pl => self, npl => self%nbody) - pl%ah(:,:) = 0.0_DP + pl%ah(:, 1:npl) = 0.0_DP call pl%accel(system, param, t, lbeg) if (lbeg) then call pl%set_beg_end(xbeg = pl%xh) @@ -136,7 +136,7 @@ module subroutine helio_kick_vb_tp(self, system, param, t, dt, lbeg) if (self%nbody == 0) return associate(tp => self, ntp => self%nbody) - tp%ah(:,:) = 0.0_DP + tp%ah(:, 1:ntp) = 0.0_DP call tp%accel(system, param, t, lbeg) do concurrent(i = 1:ntp, tp%lmask(i)) tp%vb(:, i) = tp%vb(:, i) + tp%ah(:, i) * dt diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index c41bf7649..af704c13c 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -64,6 +64,8 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) real(DP) :: rji2, irij3, fac, r2 real(DP), dimension(NDIM) :: dx + if ((self%nbody == 0) .or. (npl == 0)) return + associate(tp => self, ntp => self%nbody) do concurrent(i = 1:ntp, tp%lmask(i)) do j = 1, npl diff --git a/src/rmvs/rmvs_encounter_check.f90 b/src/rmvs/rmvs_encounter_check.f90 index e4c441472..4cb119e48 100644 --- a/src/rmvs/rmvs_encounter_check.f90 +++ b/src/rmvs/rmvs_encounter_check.f90 @@ -23,13 +23,14 @@ module function rmvs_encounter_check_tp(self, system, dt) result(lencounter) real(DP), dimension(system%pl%nbody) :: r2crit logical :: lflag + lencounter = .false. if (self%nbody == 0) return select type(pl => system%pl) class is (rmvs_pl) associate(tp => self, ntp => self%nbody, npl => pl%nbody, rts => system%rts) - r2crit(:) = (rts * pl%rhill(:))**2 - tp%plencP(:) = 0 + r2crit(1:npl) = (rts * pl%rhill(1:npl))**2 + tp%plencP(1:ntp) = 0 do j = 1, npl do i = 1, ntp if ((.not.tp%lmask(i)).or.(tp%plencP(i) /= 0)) cycle @@ -41,9 +42,9 @@ module function rmvs_encounter_check_tp(self, system, dt) result(lencounter) lflag = rmvs_chk_ind(r2, v2, vdotr, dt, r2crit(j)) if (lflag) tp%plencP(i) = j end do - pl%nenc(j) = count(tp%plencP(:) == j) + pl%nenc(j) = count(tp%plencP(1:ntp) == j) end do - lencounter = any(pl%nenc(:) > 0) + lencounter = any(pl%nenc(1:npl) > 0) end associate end select return diff --git a/src/rmvs/rmvs_kick.f90 b/src/rmvs/rmvs_kick.f90 index 018ada8f3..5d9514763 100644 --- a/src/rmvs/rmvs_kick.f90 +++ b/src/rmvs/rmvs_kick.f90 @@ -61,7 +61,9 @@ module subroutine rmvs_kick_getacch_tp(self, system, param, t, lbeg) end if ! Swap the planetocentric and heliocentric position vectors and central body masses - tp%xh(:,:) = tp%xheliocentric(:,:) + do concurrent(i = 1:ntp, tp%lmask(i)) + tp%xh(:, i) = tp%xheliocentric(:, i) + end do GMcb_original = cb%Gmass cb%Gmass = tp%cb_heliocentric%Gmass @@ -71,7 +73,7 @@ module subroutine rmvs_kick_getacch_tp(self, system, param, t, lbeg) if (param%lgr) call tp%accel_gr(param) ! Put everything back the way we found it - tp%xh(:,:) = xh_original(:,:) + call move_alloc(xh_original, tp%xh) cb%Gmass = GMcb_original end associate diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index c801ee16f..b8cfcd688 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -21,6 +21,8 @@ module subroutine rmvs_step_system(self, param, t, dt) real(DP), dimension(:,:), allocatable :: xbeg, xend, vbeg integer(I4B) :: i + if (self%tp%nbody == 0) call whm_step_system(self, param, t, dt) + select type(cb => self%cb) class is (rmvs_cb) select type(pl => self%pl) @@ -36,11 +38,11 @@ module subroutine rmvs_step_system(self, param, t, dt) lencounter = tp%encounter_check(system, dt) if (lencounter) then lfirstpl = pl%lfirst - pl%outer(0)%x(:,:) = xbeg(:,:) - pl%outer(0)%v(:,:) = vbeg(:,:) + pl%outer(0)%x(:, 1:npl) = xbeg(:, 1:npl) + pl%outer(0)%v(:, 1:npl) = vbeg(:, 1:npl) call pl%step(system, param, t, dt) - pl%outer(NTENC)%x(:,:) = pl%xh(:,:) - pl%outer(NTENC)%v(:,:) = pl%vh(:,:) + pl%outer(NTENC)%x(:, 1:npl) = pl%xh(:, 1:npl) + pl%outer(NTENC)%v(:, 1:npl) = pl%vh(:, 1:npl) call rmvs_interp_out(cb, pl, dt) call rmvs_step_out(cb, pl, tp, system, param, t, dt) tp%lmask(1:ntp) = .not. tp%lmask(1:ntp) @@ -89,10 +91,10 @@ subroutine rmvs_interp_out(cb, pl, dt) allocate(GMcb(npl)) allocate(dto(npl)) allocate(iflag(npl)) - dto(:) = dt / dntenc - GMcb(:) = cb%Gmass - xtmp(:,:) = pl%outer(0)%x(:, :) - vtmp(:,:) = pl%outer(0)%v(:, :) + dto(1:npl) = dt / dntenc + GMcb(1:npl) = cb%Gmass + xtmp(:,1:npl) = pl%outer(0)%x(:, 1:npl) + vtmp(:,1:npl) = pl%outer(0)%v(:, 1:npl) do outer_index = 1, NTENC - 1 call drift_one(GMcb(1:npl), xtmp(1,1:npl), xtmp(2,1:npl), xtmp(3,1:npl), & vtmp(1,1:npl), vtmp(2,1:npl), vtmp(3,1:npl), & @@ -110,11 +112,11 @@ subroutine rmvs_interp_out(cb, pl, dt) end do end if frac = 1.0_DP - outer_index / dntenc - pl%outer(outer_index)%x(:, :) = frac * xtmp(:,:) - pl%outer(outer_index)%v(:, :) = frac * vtmp(:,:) + pl%outer(outer_index)%x(:, 1:npl) = frac * xtmp(:, 1:npl) + pl%outer(outer_index)%v(:, 1:npl) = frac * vtmp(:, 1:npl) end do - xtmp(:,:) = pl%outer(NTENC)%x(:, :) - vtmp(:,:) = pl%outer(NTENC)%v(:, :) + xtmp(:, 1:npl) = pl%outer(NTENC)%x(:, 1:npl) + vtmp(:, 1:npl) = pl%outer(NTENC)%v(:, 1:npl) do outer_index = NTENC - 1, 1, -1 call drift_one(GMcb(1:npl), xtmp(1,1:npl), xtmp(2,1:npl), xtmp(3,1:npl), & vtmp(1,1:npl), vtmp(2,1:npl), vtmp(3,1:npl), & @@ -132,8 +134,8 @@ subroutine rmvs_interp_out(cb, pl, dt) end do end if frac = outer_index / dntenc - pl%outer(outer_index)%x(:, :) = pl%outer(outer_index)%x(:, :) + frac * xtmp(:,:) - pl%outer(outer_index)%v(:, :) = pl%outer(outer_index)%v(:, :) + frac * vtmp(:,:) + pl%outer(outer_index)%x(:, 1:npl) = pl%outer(outer_index)%x(:, 1:npl) + frac * xtmp(:, 1:npl) + pl%outer(outer_index)%v(:, 1:npl) = pl%outer(outer_index)%v(:, 1:npl) + frac * vtmp(:, 1:npl) end do end associate @@ -165,16 +167,16 @@ subroutine rmvs_step_out(cb, pl, tp, system, param, t, dt) associate(npl => pl%nbody, ntp => tp%nbody) dto = dt / NTENC - where(tp%plencP(:) == 0) - tp%lmask(:) = .false. + where(tp%plencP(1:ntp) == 0) + tp%lmask(1:ntp) = .false. elsewhere - tp%lperi(:) = .false. + tp%lperi(1:ntp) = .false. end where do outer_index = 1, NTENC outer_time = t + (outer_index - 1) * dto - call pl%set_beg_end(xbeg = pl%outer(outer_index - 1)%x(:, :), & - vbeg = pl%outer(outer_index - 1)%v(:, :), & - xend = pl%outer(outer_index )%x(:, :)) + call pl%set_beg_end(xbeg = pl%outer(outer_index - 1)%x(:, 1:npl), & + vbeg = pl%outer(outer_index - 1)%v(:, 1:npl), & + xend = pl%outer(outer_index )%x(:, 1:npl)) system%rts = RHPSCALE lencounter = tp%encounter_check(system, dto) if (lencounter) then @@ -192,8 +194,8 @@ subroutine rmvs_step_out(cb, pl, tp, system, param, t, dt) do j = 1, npl if (pl%nenc(j) == 0) cycle tp%lfirst = .true. - where((tp%plencP(:) == j) .and. (.not.tp%lmask(:))) - tp%lmask(:) = .true. + where((tp%plencP(1:ntp) == j) .and. (.not.tp%lmask(1:ntp))) + tp%lmask(1:ntp) = .true. end where end do end do @@ -222,7 +224,7 @@ subroutine rmvs_interp_in(cb, pl, system, param, dt, outer_index) ! Internals integer(I4B) :: i, inner_index real(DP) :: frac, dntphenc - real(DP), dimension(:,:), allocatable :: xtmp, vtmp, xh_original + real(DP), dimension(:,:), allocatable :: xtmp, vtmp, xh_original, ah_original real(DP), dimension(:), allocatable :: GMcb, dti integer(I4B), dimension(:), allocatable :: iflag @@ -230,32 +232,33 @@ subroutine rmvs_interp_in(cb, pl, system, param, dt, outer_index) dntphenc = real(NTPHENC, kind=DP) ! Set the endpoints of the inner region from the outer region values in the current outer step index - pl%inner(0)%x(:,:) = pl%outer(outer_index - 1)%x(:, :) - pl%inner(0)%v(:,:) = pl%outer(outer_index - 1)%v(:, :) - pl%inner(NTPHENC)%x(:,:) = pl%outer(outer_index)%x(:, :) - pl%inner(NTPHENC)%v(:,:) = pl%outer(outer_index)%v(:, :) + pl%inner(0)%x(:, 1:npl) = pl%outer(outer_index - 1)%x(:, 1:npl) + pl%inner(0)%v(:, 1:npl) = pl%outer(outer_index - 1)%v(:, 1:npl) + pl%inner(NTPHENC)%x(:, 1:npl) = pl%outer(outer_index)%x(:, 1:npl) + pl%inner(NTPHENC)%v(:, 1:npl) = pl%outer(outer_index)%v(:, 1:npl) allocate(xtmp,mold=pl%xh) allocate(vtmp,mold=pl%vh) allocate(GMcb(npl)) allocate(dti(npl)) allocate(iflag(npl)) - dti(:) = dt / dntphenc - GMcb(:) = cb%Gmass - xtmp(:, :) = pl%inner(0)%x(:, :) - vtmp(:, :) = pl%inner(0)%v(:, :) + dti(1:npl) = dt / dntphenc + GMcb(1:npl) = cb%Gmass + xtmp(:, 1:npl) = pl%inner(0)%x(:, 1:npl) + vtmp(:, 1:npl) = pl%inner(0)%v(:, 1:npl) if ((param%loblatecb) .or. (param%ltides)) then allocate(xh_original, source=pl%xh) - pl%xh(:, :) = xtmp(:, :) ! Temporarily replace heliocentric position with inner substep values to calculate the oblateness terms + allocate(ah_original, source=pl%ah) + pl%xh(:, 1:npl) = xtmp(:, 1:npl) ! Temporarily replace heliocentric position with inner substep values to calculate the oblateness terms end if if (param%loblatecb) then call pl%accel_obl(system) - pl%inner(0)%aobl(:, :) = pl%aobl(:, :) ! Save the oblateness acceleration on the planet for this substep + pl%inner(0)%aobl(:, 1:npl) = pl%aobl(:, 1:npl) ! Save the oblateness acceleration on the planet for this substep end if if (param%ltides) then call pl%accel_tides(system) - pl%inner(0)%atide(:, :) = pl%atide(:, :) ! Save the oblateness acceleration on the planet for this substep + pl%inner(0)%atide(:, 1:npl) = pl%atide(:, 1:npl) ! Save the oblateness acceleration on the planet for this substep end if do inner_index = 1, NTPHENC - 1 @@ -275,12 +278,12 @@ subroutine rmvs_interp_in(cb, pl, system, param, dt, outer_index) end do end if frac = 1.0_DP - inner_index / dntphenc - pl%inner(inner_index)%x(:, :) = frac * xtmp(:,:) - pl%inner(inner_index)%v(:, :) = frac * vtmp(:,:) + pl%inner(inner_index)%x(:, 1:npl) = frac * xtmp(:, 1:npl) + pl%inner(inner_index)%v(:, 1:npl) = frac * vtmp(:, 1:npl) end do - xtmp(:,:) = pl%inner(NTPHENC)%x(:, :) - vtmp(:,:) = pl%inner(NTPHENC)%v(:, :) + xtmp(:, 1:npl) = pl%inner(NTPHENC)%x(:, 1:npl) + vtmp(:, 1:npl) = pl%inner(NTPHENC)%v(:, 1:npl) do inner_index = NTPHENC - 1, 1, -1 call drift_one(GMcb(1:npl), xtmp(1,1:npl), xtmp(2,1:npl), xtmp(3,1:npl), & @@ -299,31 +302,32 @@ subroutine rmvs_interp_in(cb, pl, system, param, dt, outer_index) end do end if frac = inner_index / dntphenc - pl%inner(inner_index)%x(:, :) = pl%inner(inner_index)%x(:, :) + frac * xtmp(:, :) - pl%inner(inner_index)%v(:, :) = pl%inner(inner_index)%v(:, :) + frac * vtmp(:, :) + pl%inner(inner_index)%x(:, 1:npl) = pl%inner(inner_index)%x(:, 1:npl) + frac * xtmp(:, 1:npl) + pl%inner(inner_index)%v(:, 1:npl) = pl%inner(inner_index)%v(:, 1:npl) + frac * vtmp(:, 1:npl) if (param%loblatecb) then - pl%xh(:,:) = pl%inner(inner_index)%x(:, :) + pl%xh(:,1:npl) = pl%inner(inner_index)%x(:, 1:npl) call pl%accel_obl(system) - pl%inner(inner_index)%aobl(:, :) = pl%aobl(:, :) + pl%inner(inner_index)%aobl(:, 1:npl) = pl%aobl(:, 1:npl) end if if (param%ltides) then call pl%accel_tides(system) - pl%inner(inner_index)%atide(:, :) = pl%atide(:, :) + pl%inner(inner_index)%atide(:, 1:npl) = pl%atide(:, 1:npl) end if end do if (param%loblatecb) then ! Calculate the final value of oblateness accelerations at the final inner substep - pl%xh(:,:) = pl%inner(NTPHENC)%x(:, :) + pl%xh(:, 1:npl) = pl%inner(NTPHENC)%x(:, 1:npl) call pl%accel_obl(system) - pl%inner(NTPHENC)%aobl(:, :) = pl%aobl(:, :) + pl%inner(NTPHENC)%aobl(:, 1:npl) = pl%aobl(:, 1:npl) end if if (param%ltides) then call pl%accel_tides(system) - pl%inner(NTPHENC)%atide(:, :) = pl%atide(:, :) + pl%inner(NTPHENC)%atide(:, 1:npl) = pl%atide(:, 1:npl) end if - ! Put the planet positions back into place + ! Put the planet positions and accelerations back into place if (allocated(xh_original)) call move_alloc(xh_original, pl%xh) + if (allocated(ah_original)) call move_alloc(ah_original, pl%ah) end associate return @@ -371,7 +375,7 @@ subroutine rmvs_step_in(cb, pl, tp, param, outer_time, dto) ! now step the encountering test particles fully through the inner encounter lfirsttp = .true. do inner_index = 1, NTPHENC ! Integrate over the encounter region, using the "substitute" planetocentric systems at each level - plenci%xh(:,:) = plenci%inner(inner_index - 1)%x(:,:) + plenci%xh(:, 1:npl) = plenci%inner(inner_index - 1)%x(:, 1:npl) call plenci%set_beg_end(xbeg = plenci%inner(inner_index - 1)%x, & xend = plenci%inner(inner_index)%x) @@ -428,7 +432,7 @@ subroutine rmvs_make_planetocentric(param, cb, pl, tp) ! There are inner encounters with this planet if (allocated(encmask)) deallocate(encmask) allocate(encmask(ntp)) - encmask(:) = tp%plencP(:) == i + encmask(1:ntp) = tp%plencP(1:ntp) == i allocate(rmvs_tp :: pl%planetocentric(i)%tp) ! Create encountering test particle structure select type(cbenci => pl%planetocentric(i)%cb) @@ -438,51 +442,53 @@ subroutine rmvs_make_planetocentric(param, cb, pl, tp) select type(tpenci => pl%planetocentric(i)%tp) class is (rmvs_tp) tpenci%lplanetocentric = .true. - call tpenci%setup(pl%nenc(i), param) - tpenci%cb_heliocentric = cb - tpenci%ipleP = i - tpenci%lmask(:) = .true. - tpenci%status(:) = ACTIVE - ! Grab all the encountering test particles and convert them to a planetocentric frame - tpenci%id(:) = pack(tp%id(:), encmask(:)) - do j = 1, NDIM - tpenci%xheliocentric(j, :) = pack(tp%xh(j,:), encmask(:)) - tpenci%xh(j, :) = tpenci%xheliocentric(j, :) - pl%inner(0)%x(j, i) - tpenci%vh(j, :) = pack(tp%vh(j,:), encmask(:)) - pl%inner(0)%v(j, i) - end do - tpenci%lperi(:) = pack(tp%lperi(:), encmask(:)) - tpenci%plperP(:) = pack(tp%plperP(:), encmask(:)) - ! Make sure that the test particles get the planetocentric value of mu - allocate(cbenci%inner(0:NTPHENC)) - do inner_index = 0, NTPHENC - allocate(plenci%inner(inner_index)%x, mold=pl%inner(inner_index)%x) - allocate(plenci%inner(inner_index)%v, mold=pl%inner(inner_index)%x) - allocate(cbenci%inner(inner_index)%x(NDIM,1)) - allocate(cbenci%inner(inner_index)%v(NDIM,1)) - cbenci%inner(inner_index)%x(:,1) = pl%inner(inner_index)%x(:, i) - cbenci%inner(inner_index)%v(:,1) = pl%inner(inner_index)%v(:, i) - plenci%inner(inner_index)%x(:,1) = -cbenci%inner(inner_index)%x(:,1) - plenci%inner(inner_index)%v(:,1) = -cbenci%inner(inner_index)%v(:,1) - - if (param%loblatecb) then - allocate(plenci%inner(inner_index)%aobl, mold=pl%inner(inner_index)%aobl) - allocate(cbenci%inner(inner_index)%aobl(NDIM,1)) - cbenci%inner(inner_index)%aobl(:,1) = pl%inner(inner_index)%aobl(:, i) - end if - - if (param%ltides) then - allocate(plenci%inner(inner_index)%atide, mold=pl%inner(inner_index)%atide) - allocate(cbenci%inner(inner_index)%atide(NDIM,1)) - cbenci%inner(inner_index)%atide(:,1) = pl%inner(inner_index)%atide(:, i) - end if - - do j = 2, npl - ipc2hc = plenci%plind(j) - plenci%inner(inner_index)%x(:,j) = pl%inner(inner_index)%x(:, ipc2hc) - cbenci%inner(inner_index)%x(:,1) - plenci%inner(inner_index)%v(:,j) = pl%inner(inner_index)%v(:, ipc2hc) - cbenci%inner(inner_index)%v(:,1) + associate(nenci => pl%nenc(i)) + call tpenci%setup(nenci, param) + tpenci%cb_heliocentric = cb + tpenci%ipleP = i + tpenci%lmask(1:nenci) = .true. + tpenci%status(1:nenci) = ACTIVE + ! Grab all the encountering test particles and convert them to a planetocentric frame + tpenci%id(1:nenci) = pack(tp%id(1:ntp), encmask(1:ntp)) + do j = 1, NDIM + tpenci%xheliocentric(j, 1:nenci) = pack(tp%xh(j,1:ntp), encmask(:)) + tpenci%xh(j, 1:nenci) = tpenci%xheliocentric(j, 1:nenci) - pl%inner(0)%x(j, i) + tpenci%vh(j, 1:nenci) = pack(tp%vh(j, 1:ntp), encmask(1:ntp)) - pl%inner(0)%v(j, i) + end do + tpenci%lperi(1:nenci) = pack(tp%lperi(1:ntp), encmask(1:ntp)) + tpenci%plperP(1:nenci) = pack(tp%plperP(1:ntp), encmask(1:ntp)) + ! Make sure that the test particles get the planetocentric value of mu + allocate(cbenci%inner(0:NTPHENC)) + do inner_index = 0, NTPHENC + allocate(plenci%inner(inner_index)%x, mold=pl%inner(inner_index)%x) + allocate(plenci%inner(inner_index)%v, mold=pl%inner(inner_index)%x) + allocate(cbenci%inner(inner_index)%x(NDIM,1)) + allocate(cbenci%inner(inner_index)%v(NDIM,1)) + cbenci%inner(inner_index)%x(:,1) = pl%inner(inner_index)%x(:, i) + cbenci%inner(inner_index)%v(:,1) = pl%inner(inner_index)%v(:, i) + plenci%inner(inner_index)%x(:,1) = -cbenci%inner(inner_index)%x(:,1) + plenci%inner(inner_index)%v(:,1) = -cbenci%inner(inner_index)%v(:,1) + + if (param%loblatecb) then + allocate(plenci%inner(inner_index)%aobl, mold=pl%inner(inner_index)%aobl) + allocate(cbenci%inner(inner_index)%aobl(NDIM,1)) + cbenci%inner(inner_index)%aobl(:,1) = pl%inner(inner_index)%aobl(:, i) + end if + + if (param%ltides) then + allocate(plenci%inner(inner_index)%atide, mold=pl%inner(inner_index)%atide) + allocate(cbenci%inner(inner_index)%atide(NDIM,1)) + cbenci%inner(inner_index)%atide(:,1) = pl%inner(inner_index)%atide(:, i) + end if + + do j = 2, npl + ipc2hc = plenci%plind(j) + plenci%inner(inner_index)%x(:,j) = pl%inner(inner_index)%x(:, ipc2hc) - cbenci%inner(inner_index)%x(:,1) + plenci%inner(inner_index)%v(:,j) = pl%inner(inner_index)%v(:, ipc2hc) - cbenci%inner(inner_index)%v(:,1) + end do end do - end do - call tpenci%set_mu(cbenci) + call tpenci%set_mu(cbenci) + end associate end select end select end select @@ -599,31 +605,33 @@ subroutine rmvs_end_planetocentric(pl, tp) class is (rmvs_pl) select type(tpenci => pl%planetocentric(i)%tp) class is (rmvs_tp) - if (allocated(tpind)) deallocate(tpind) - allocate(tpind(pl%nenc(i))) - ! Index array of encountering test particles - if (allocated(encmask)) deallocate(encmask) - allocate(encmask(ntp)) - encmask(:) = tp%plencP(:) == i - tpind(:) = pack([(j,j=1,ntp)], encmask(:)) - - ! Copy the results of the integration back over and shift back to heliocentric reference - tp%status(tpind(1:pl%nenc(i))) = tpenci%status(1:pl%nenc(i)) - tp%lmask(tpind(1:pl%nenc(i))) = tpenci%lmask(1:pl%nenc(i)) - do j = 1, NDIM - tp%xh(j, tpind(1:pl%nenc(i))) = tpenci%xh(j,1:pl%nenc(i)) + pl%inner(NTPHENC)%x(j, i) - tp%vh(j, tpind(1:pl%nenc(i))) = tpenci%vh(j,1:pl%nenc(i)) + pl%inner(NTPHENC)%v(j, i) - end do - tp%lperi(tpind(1:pl%nenc(i))) = tpenci%lperi(1:pl%nenc(i)) - tp%plperP(tpind(1:pl%nenc(i))) = tpenci%plperP(1:pl%nenc(i)) - deallocate(pl%planetocentric(i)%tp) - deallocate(cbenci%inner) - do inner_index = 0, NTPHENC - deallocate(plenci%inner(inner_index)%x) - deallocate(plenci%inner(inner_index)%v) - if (allocated(plenci%inner(inner_index)%aobl)) deallocate(plenci%inner(inner_index)%aobl) - if (allocated(plenci%inner(inner_index)%atide)) deallocate(plenci%inner(inner_index)%atide) - end do + associate(nenci => pl%nenc(i)) + if (allocated(tpind)) deallocate(tpind) + allocate(tpind(nenci)) + ! Index array of encountering test particles + if (allocated(encmask)) deallocate(encmask) + allocate(encmask(ntp)) + encmask(1:ntp) = tp%plencP(1:ntp) == i + tpind(1:nenci) = pack([(j,j=1,ntp)], encmask(1:ntp)) + + ! Copy the results of the integration back over and shift back to heliocentric reference + tp%status(tpind(1:nenci)) = tpenci%status(1:nenci) + tp%lmask(tpind(1:nenci)) = tpenci%lmask(1:nenci) + do j = 1, NDIM + tp%xh(j, tpind(1:nenci)) = tpenci%xh(j,1:nenci) + pl%inner(NTPHENC)%x(j, i) + tp%vh(j, tpind(1:nenci)) = tpenci%vh(j,1:nenci) + pl%inner(NTPHENC)%v(j, i) + end do + tp%lperi(tpind(1:nenci)) = tpenci%lperi(1:nenci) + tp%plperP(tpind(1:nenci)) = tpenci%plperP(1:nenci) + deallocate(pl%planetocentric(i)%tp) + deallocate(cbenci%inner) + do inner_index = 0, NTPHENC + deallocate(plenci%inner(inner_index)%x) + deallocate(plenci%inner(inner_index)%v) + if (allocated(plenci%inner(inner_index)%aobl)) deallocate(plenci%inner(inner_index)%aobl) + if (allocated(plenci%inner(inner_index)%atide)) deallocate(plenci%inner(inner_index)%atide) + end do + end associate end select end select end select diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 7c49009f2..b00a4a8e6 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -841,32 +841,32 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ibiggest = maxloc(pl%Gmass(family(:)), dim=1) ! Copy over identification, information, and physical properties of the new bodies from the fragment list - plnew%id(:) = id_frag(:) + plnew%id(1:nfrag) = id_frag(1:nfrag) system%maxid = system%maxid + nfrag - plnew%xb(:,:) = xb_frag(:, :) - plnew%vb(:,:) = vb_frag(:, :) + plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) + plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) do i = 1, nfrag plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) end do - plnew%mass(:) = m_frag(:) - plnew%Gmass(:) = param%GU * m_frag(:) - plnew%radius(:) = rad_frag(:) - plnew%density(:) = m_frag(:) / rad_frag(:) + plnew%mass(1:nfrag) = m_frag(1:nfrag) + plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) + plnew%radius(1:nfrag) = rad_frag(1:nfrag) + plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) select case(status) case(DISRUPTION) - plnew%info(:)%origin_type = "Disruption" - plnew%status(:) = NEW_PARTICLE - plnew%info(:)%origin_time = param%t + plnew%info(1:nfrag)%origin_type = "Disruption" + plnew%status(1:nfrag) = NEW_PARTICLE + plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do case(SUPERCATASTROPHIC) - plnew%info(:)%origin_type = "Supercatastrophic" - plnew%status(:) = NEW_PARTICLE - plnew%info(:)%origin_time = param%t + plnew%info(1:nfrag)%origin_type = "Supercatastrophic" + plnew%status(1:nfrag) = NEW_PARTICLE + plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) @@ -887,8 +887,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, end select if (param%lrotation) then - plnew%Ip(:,:) = Ip_frag(:,:) - plnew%rot(:,:) = rot_frag(:,:) + plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) + plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) end if if (param%ltides) then @@ -899,11 +899,11 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, call plnew%set_mu(cb) !Copy over or set integration parameters for new bodies - plnew%lcollision(:) = .false. - plnew%ldiscard(:) = .false. - plnew%lmtiny(:) = plnew%Gmass(:) > param%GMTINY - plnew%levelg(:) = pl%levelg(ibiggest) - plnew%levelm(:) = pl%levelm(ibiggest) + plnew%lcollision(1:nfrag) = .false. + plnew%ldiscard(1:nfrag) = .false. + plnew%lmtiny(1:nfrag) = plnew%Gmass(1:nfrag) > param%GMTINY + plnew%levelg(1:nfrag) = pl%levelg(ibiggest) + plnew%levelm(1:nfrag) = pl%levelm(ibiggest) ! Append the new merged body to the list and record how many we made nstart = pl_adds%nbody + 1 diff --git a/src/symba/symba_drift.f90 b/src/symba/symba_drift.f90 index c4efee05f..e3bbc3660 100644 --- a/src/symba/symba_drift.f90 +++ b/src/symba/symba_drift.f90 @@ -14,13 +14,14 @@ module subroutine symba_drift_pl(self, system, param, dt) real(DP), intent(in) :: dt !! Stepsize if (self%nbody == 0) return - - select type(system) - class is (symba_nbody_system) - self%lmask(:) = self%status(:) /= INACTIVE .and. self%levelg(:) == system%irec - call helio_drift_body(self, system, param, dt) - self%lmask(:) = self%status(:) /= INACTIVE - end select + associate(pl => self, npl => self%nbody) + select type(system) + class is (symba_nbody_system) + pl%lmask(1:npl) = pl%status(1:npl) /= INACTIVE .and. pl%levelg(1:npl) == system%irec + call helio_drift_body(pl, system, param, dt) + pl%lmask(1:npl) = pl%status(1:npl) /= INACTIVE + end select + end associate return end subroutine symba_drift_pl @@ -38,13 +39,14 @@ module subroutine symba_drift_tp(self, system, param, dt) real(DP), intent(in) :: dt !! Stepsize if (self%nbody == 0) return - - select type(system) - class is (symba_nbody_system) - self%lmask(:) = self%status(:) /= INACTIVE .and. self%levelg(:) == system%irec - call helio_drift_body(self, system, param, dt) - self%lmask(:) = self%status(:) /= INACTIVE - end select + associate (tp => self, ntp => self%nbody) + select type(system) + class is (symba_nbody_system) + tp%lmask(1:ntp) = tp%status(1:ntp) /= INACTIVE .and. tp%levelg(1:ntp) == system%irec + call helio_drift_body(tp, system, param, dt) + tp%lmask(1:ntp) = tp%status(1:ntp) /= INACTIVE + end select + end associate return end subroutine symba_drift_tp diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index eb230b7e0..fe593bf7c 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -177,14 +177,14 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc call pltpenc_list%resize(nenc) pltpenc_list%status(1:nenc) = ACTIVE pltpenc_list%level(1:nenc) = irec - pltpenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(:,:), lencounter(:,:)) - pltpenc_list%index1(1:nenc) = pack(spread([(i, i = 1, npl)], dim=1, ncopies=ntp), lencounter(:,:)) - pltpenc_list%index2(1:nenc) = pack(spread([(i, i = 1, ntp)], dim=2, ncopies=npl), lencounter(:,:)) + pltpenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(1:ntp, 1:npl), lencounter(1:ntp, 1:npl)) + pltpenc_list%index1(1:nenc) = pack(spread([(i, i = 1, npl)], dim=1, ncopies=ntp), lencounter(1:ntp, 1:npl)) + pltpenc_list%index2(1:nenc) = pack(spread([(i, i = 1, ntp)], dim=2, ncopies=npl), lencounter(1:ntp, 1:npl)) pltpenc_list%id1(1:nenc) = pl%id(pltpenc_list%index1(1:nenc)) pltpenc_list%id2(1:nenc) = tp%id(pltpenc_list%index2(1:nenc)) select type(pl) class is (symba_pl) - pl%lencounter(:) = .false. + pl%lencounter(1:npl) = .false. do k = 1, nenc pl%lencounter(pltpenc_list%index1(k)) = .true. end do diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 775efa962..5ab525e23 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -273,34 +273,36 @@ module subroutine symba_io_read_particle(system, param) class is (symba_pl) select type(tp => system%tp) class is (symba_tp) - do - lmatch = .false. - read(LUN, err = 667, iomsg = errmsg) id - - if (idx == cb%id) then - read(LUN, err = 667, iomsg = errmsg) cb%info - lmatch = .true. - else - if (pl%nbody > 0) then - idx = findloc(pl%id(:), id, dim=1) - if (idx /= 0) then - read(LUN, err = 667, iomsg = errmsg) pl%info(idx) - lmatch = .true. + associate(npl => pl%nbody, ntp => tp%nbody) + do + lmatch = .false. + read(LUN, err = 667, iomsg = errmsg) id + + if (idx == cb%id) then + read(LUN, err = 667, iomsg = errmsg) cb%info + lmatch = .true. + else + if (npl > 0) then + idx = findloc(pl%id(1:npl), id, dim=1) + if (idx /= 0) then + read(LUN, err = 667, iomsg = errmsg) pl%info(idx) + lmatch = .true. + end if end if - end if - if (.not.lmatch .and. tp%nbody > 0) then - idx = findloc(tp%id(:), id, dim=1) - if (idx /= 0) then - read(LUN, err = 667, iomsg = errmsg) tp%info(idx) - lmatch = .true. + if (.not.lmatch .and. ntp > 0) then + idx = findloc(tp%id(1:ntp), id, dim=1) + if (idx /= 0) then + read(LUN, err = 667, iomsg = errmsg) tp%info(idx) + lmatch = .true. + end if end if end if - end if - if (.not.lmatch) then - write(*,*) 'Particle id ',id,' not found. Skipping' - read(LUN, err = 667, iomsg = errmsg) tmpinfo - end if - end do + if (.not.lmatch) then + write(*,*) 'Particle id ',id,' not found. Skipping' + read(LUN, err = 667, iomsg = errmsg) tmpinfo + end if + end do + end associate close(unit = LUN, err = 667, iomsg = errmsg) end select end select diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index ccf56e039..1eabf9b6d 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -126,9 +126,9 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) class is (symba_pl) select type(tp => system%tp) class is (symba_tp) - associate(ind1 => self%index1, ind2 => self%index2) - if (pl%nbody > 0) pl%lmask(:) = pl%status(:) /= INACTIVE - if (tp%nbody > 0) tp%lmask(:) = tp%status(:) /= INACTIVE + associate(ind1 => self%index1, ind2 => self%index2, npl => pl%nbody, ntp => tp%nbody, nenc => self%nenc) + if (npl > 0) pl%lmask(1:npl) = pl%status(1:npl) /= INACTIVE + if (ntp > 0) tp%lmask(1:ntp) = tp%status(1:ntp) /= INACTIVE irm1 = irec - 1 @@ -139,13 +139,13 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) end if if (isplpl) then - pl%ah(:,ind1(1:self%nenc)) = 0.0_DP - pl%ah(:,ind2(1:self%nenc)) = 0.0_DP + pl%ah(:,ind1(1:nenc)) = 0.0_DP + pl%ah(:,ind2(1:nenc)) = 0.0_DP else - tp%ah(:,ind2(1:self%nenc)) = 0.0_DP + tp%ah(:,ind2(1:nenc)) = 0.0_DP end if - do k = 1, self%nenc + do k = 1, nenc if (isplpl) then lgoodlevel = (pl%levelg(ind1(k)) >= irm1) .and. (pl%levelg(ind2(k)) >= irm1) else @@ -176,15 +176,15 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) faci = fac * pl%Gmass(ind1(k)) if (isplpl) then facj = fac * pl%Gmass(ind2(k)) - pl%ah(:,ind1(k)) = pl%ah(:,ind1(k)) + facj * dx(:) - pl%ah(:,ind2(k)) = pl%ah(:,ind2(k)) - faci * dx(:) + pl%ah(:, ind1(k)) = pl%ah(:, ind1(k)) + facj * dx(:) + pl%ah(:, ind2(k)) = pl%ah(:, ind2(k)) - faci * dx(:) else - tp%ah(:,ind2(k)) = tp%ah(:,ind2(k)) - faci * dx(:) + tp%ah(:, ind2(k)) = tp%ah(:, ind2(k)) - faci * dx(:) end if end if end do if (isplpl) then - do k = 1, self%nenc + do k = 1, nenc pl%vb(:,ind1(k)) = pl%vb(:,ind1(k)) + sgn * dt * pl%ah(:,ind1(k)) pl%vb(:,ind2(k)) = pl%vb(:,ind2(k)) + sgn * dt * pl%ah(:,ind2(k)) pl%ah(:,ind1(k)) = 0.0_DP diff --git a/src/whm/whm_kick.f90 b/src/whm/whm_kick.f90 index 2da00c332..f831ce15b 100644 --- a/src/whm/whm_kick.f90 +++ b/src/whm/whm_kick.f90 @@ -80,17 +80,17 @@ module subroutine whm_kick_getacch_tp(self, system, param, t, lbeg) system%lbeg = lbeg if (lbeg) then - ah0(:) = whm_kick_getacch_ah0(pl%Gmass(:), pl%xbeg(:,:), npl) + ah0(:) = whm_kick_getacch_ah0(pl%Gmass(1:npl), pl%xbeg(:, 1:npl), npl) do concurrent(i = 1:ntp, tp%lmask(i)) tp%ah(:, i) = tp%ah(:, i) + ah0(:) end do - call tp%accel_int(pl%Gmass(:), pl%xbeg(:,:), npl) + call tp%accel_int(pl%Gmass(1:npl), pl%xbeg(:, 1:npl), npl) else - ah0(:) = whm_kick_getacch_ah0(pl%Gmass(:), pl%xend(:,:), npl) + ah0(:) = whm_kick_getacch_ah0(pl%Gmass(1:npl), pl%xend(:, 1:npl), npl) do concurrent(i = 1:ntp, tp%lmask(i)) tp%ah(:, i) = tp%ah(:, i) + ah0(:) end do - call tp%accel_int(pl%Gmass(:), pl%xend(:,:), npl) + call tp%accel_int(pl%Gmass(1:npl), pl%xend(:, 1:npl), npl) end if if (param%loblatecb) call tp%accel_obl(system) @@ -213,13 +213,13 @@ module subroutine whm_kick_vh_pl(self, system, param, t, dt, lbeg) if (lbeg) then if (pl%lfirst) then call pl%h2j(cb) - pl%ah(:,:) = 0.0_DP + pl%ah(:, 1:npl) = 0.0_DP call pl%accel(system, param, t, lbeg) pl%lfirst = .false. end if call pl%set_beg_end(xbeg = pl%xh) else - pl%ah(:,:) = 0.0_DP + pl%ah(:, 1:npl) = 0.0_DP call pl%accel(system, param, t, lbeg) call pl%set_beg_end(xend = pl%xh) end if @@ -254,20 +254,16 @@ module subroutine whm_kick_vh_tp(self, system, param, t, dt, lbeg) associate(tp => self, ntp => self%nbody) if (tp%lfirst) then - where(tp%lmask(1:ntp)) - tp%ah(1,1:ntp) = 0.0_DP - tp%ah(2,1:ntp) = 0.0_DP - tp%ah(3,1:ntp) = 0.0_DP - end where + do concurrent(i = 1:ntp, tp%lmask(i)) + tp%ah(:, i) = 0.0_DP + end do call tp%accel(system, param, t, lbeg=.true.) tp%lfirst = .false. end if if (.not.lbeg) then - where(tp%lmask(1:ntp)) - tp%ah(1,1:ntp) = 0.0_DP - tp%ah(2,1:ntp) = 0.0_DP - tp%ah(3,1:ntp) = 0.0_DP - end where + do concurrent(i = 1:ntp, tp%lmask(i)) + tp%ah(:, i) = 0.0_DP + end do call tp%accel(system, param, t, lbeg) end if do concurrent(i = 1:ntp, tp%lmask(i)) From 70bfb25a8639475970bceac6787518850721c625 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 16:48:59 -0400 Subject: [PATCH 105/315] Fixed some indexing issues with SyMBA recursion levels and tried to make the kick routine cleaner --- src/symba/symba_kick.f90 | 138 ++++++++++++++++++++++++--------------- src/symba/symba_step.f90 | 4 +- 2 files changed, 86 insertions(+), 56 deletions(-) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index 1eabf9b6d..b531e447a 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -109,10 +109,12 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) integer(I4B), intent(in) :: irec !! Current recursion level integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration ! Internals - integer(I4B) :: k, irm1, irecl + integer(I4B) :: i, irm1, irecl, ngood real(DP) :: r, rr, ri, ris, rim1, r2, ir3, fac, faci, facj real(DP), dimension(NDIM) :: dx - logical :: isplpl, lgoodlevel + logical :: isplpl + logical, dimension(self%nenc) :: lgoodlevel + integer(I4B), dimension(:), allocatable :: good_idx if (self%nenc == 0) return @@ -138,63 +140,91 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) irecl = irec end if - if (isplpl) then - pl%ah(:,ind1(1:nenc)) = 0.0_DP - pl%ah(:,ind2(1:nenc)) = 0.0_DP - else - tp%ah(:,ind2(1:nenc)) = 0.0_DP - end if - - do k = 1, nenc + do i = 1, nenc if (isplpl) then - lgoodlevel = (pl%levelg(ind1(k)) >= irm1) .and. (pl%levelg(ind2(k)) >= irm1) + lgoodlevel(i) = (pl%levelg(ind1(i)) >= irm1) .and. (pl%levelg(ind2(i)) >= irm1) else - lgoodlevel = (pl%levelg(ind1(k)) >= irm1) .and. (tp%levelg(ind2(k)) >= irm1) - end if - if ((self%status(k) /= INACTIVE) .and. lgoodlevel) then - if (isplpl) then - ri = ((pl%rhill(ind1(k)) + pl%rhill(ind2(k)))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) - rim1 = ri * (RSHELL**2) - dx(:) = pl%xh(:,ind2(k)) - pl%xh(:,ind1(k)) - else - ri = ((pl%rhill(ind1(k)))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) - rim1 = ri * (RSHELL**2) - dx(:) = tp%xh(:,ind2(k)) - pl%xh(:,ind1(k)) - end if - r2 = dot_product(dx(:), dx(:)) - if (r2 < rim1) then - fac = 0.0_DP - else if (r2 < ri) then - ris = sqrt(ri) - r = sqrt(r2) - rr = (ris - r) / (ris * (1.0_DP - RSHELL)) - fac = (r2**(-1.5_DP)) * (1.0_DP - 3 * (rr**2) + 2 * (rr**3)) - else - ir3 = 1.0_DP / (r2 * sqrt(r2)) - fac = ir3 - end if - faci = fac * pl%Gmass(ind1(k)) - if (isplpl) then - facj = fac * pl%Gmass(ind2(k)) - pl%ah(:, ind1(k)) = pl%ah(:, ind1(k)) + facj * dx(:) - pl%ah(:, ind2(k)) = pl%ah(:, ind2(k)) - faci * dx(:) - else - tp%ah(:, ind2(k)) = tp%ah(:, ind2(k)) - faci * dx(:) - end if + lgoodlevel(i) = (pl%levelg(ind1(i)) >= irm1) .and. (tp%levelg(ind2(i)) >= irm1) end if + lgoodlevel(i) = (self%status(i) == ACTIVE) .and. lgoodlevel(i) end do - if (isplpl) then - do k = 1, nenc - pl%vb(:,ind1(k)) = pl%vb(:,ind1(k)) + sgn * dt * pl%ah(:,ind1(k)) - pl%vb(:,ind2(k)) = pl%vb(:,ind2(k)) + sgn * dt * pl%ah(:,ind2(k)) - pl%ah(:,ind1(k)) = 0.0_DP - pl%ah(:,ind2(k)) = 0.0_DP - end do - else - do k = 1, self%nenc - tp%vb(:,ind2(k)) = tp%vb(:,ind2(k)) + sgn * dt * tp%ah(:,ind2(k)) - tp%ah(:,ind2(k)) = 0.0_DP + ngood = count(lgoodlevel(:)) + if (ngood > 0) then + allocate(good_idx(ngood)) + good_idx(:) = pack([(i, i = 1, nenc)], lgoodlevel(:)) + + if (isplpl) then + do i = 1, ngood + associate(i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) + pl%ah(:,i1) = 0.0_DP + pl%ah(:,i2) = 0.0_DP + end associate + end do + else + do i = 1, ngood + associate(i2 => ind2(good_idx(i))) + tp%ah(:,i2) = 0.0_DP + end associate + end do + end if + + do i = 1, ngood + associate(k => good_idx(i), i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) + if (isplpl) then + ri = ((pl%rhill(i1) + pl%rhill(i2))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) + rim1 = ri * (RSHELL**2) + dx(:) = pl%xh(:,i2) - pl%xh(:,i1) + else + ri = ((pl%rhill(i1))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) + rim1 = ri * (RSHELL**2) + dx(:) = tp%xh(:,i2) - pl%xh(:,i1) + end if + r2 = dot_product(dx(:), dx(:)) + if (r2 < rim1) then + fac = 0.0_DP + lgoodlevel(k) = .false. + cycle + end if + if (r2 < ri) then + ris = sqrt(ri) + r = sqrt(r2) + rr = (ris - r) / (ris * (1.0_DP - RSHELL)) + fac = (r2**(-1.5_DP)) * (1.0_DP - 3 * (rr**2) + 2 * (rr**3)) + else + ir3 = 1.0_DP / (r2 * sqrt(r2)) + fac = ir3 + end if + faci = fac * pl%Gmass(i1) + if (isplpl) then + facj = fac * pl%Gmass(i2) + pl%ah(:, i1) = pl%ah(:, i1) + facj * dx(:) + pl%ah(:, i2) = pl%ah(:, i2) - faci * dx(:) + else + tp%ah(:, i2) = tp%ah(:, i2) - faci * dx(:) + end if + end associate end do + ngood = count(lgoodlevel(:)) + if (ngood == 0) return + good_idx(1:ngood) = pack([(i, i = 1, nenc)], lgoodlevel(:)) + + if (isplpl) then + do i = 1, ngood + associate(i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) + pl%vb(:,i1) = pl%vb(:,i1) + sgn * dt * pl%ah(:,i1) + pl%vb(:,i2) = pl%vb(:,i2) + sgn * dt * pl%ah(:,i2) + pl%ah(:,ind1(1:nenc)) = 0.0_DP + pl%ah(:,ind2(1:nenc)) = 0.0_DP + end associate + end do + else + do i = 1, ngood + associate(i2 => ind2(good_idx(i))) + tp%vb(:,i2) = tp%vb(:,i2) + sgn * dt * tp%ah(:,i2) + tp%ah(:,i2) = 0.0_DP + end associate + end do + end if end if end associate end select diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 249c73a82..1988b4fbc 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -243,8 +243,8 @@ module subroutine symba_step_reset_system(self, param) end do pl%nplenc(:) = 0 pl%ntpenc(:) = 0 - pl%levelg(:) = 0 - pl%levelm(:) = 0 + pl%levelg(:) = -1 + pl%levelm(:) = -1 pl%lencounter = .false. pl%lcollision = .false. system%plplenc_list%nenc = 0 From 5d8588061616d8e3def9b585e7f3616399166fd7 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 17:59:32 -0400 Subject: [PATCH 106/315] Fixed recursion level problem in SyMBA --- src/symba/symba_encounter_check.f90 | 26 +++++++++++++++++++++----- src/symba/symba_step.f90 | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index fe593bf7c..372a40996 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -46,10 +46,18 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) plplenc_list%id2(1:nenc) = pl%id(plplenc_list%index2(1:nenc)) do k = 1, nenc - plplenc_list%status(k) = ACTIVE - plplenc_list%level(k) = irec - pl%lencounter(plplenc_list%index1(k)) = .true. - pl%lencounter(plplenc_list%index2(k)) = .true. + associate(i => plplenc_list%index1(k), j => plplenc_list%index2(k)) + plplenc_list%status(k) = ACTIVE + plplenc_list%level(k) = irec + pl%lencounter(i) = .true. + pl%lencounter(j) = .true. + pl%levelg(i) = irec + pl%levelm(i) = irec + pl%levelg(j) = irec + pl%levelm(j) = irec + pl%nplenc(i) = pl%nplenc(i) + 1 + pl%nplenc(j) = pl%nplenc(j) + 1 + end associate end do end associate end if @@ -186,7 +194,15 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc class is (symba_pl) pl%lencounter(1:npl) = .false. do k = 1, nenc - pl%lencounter(pltpenc_list%index1(k)) = .true. + associate(plind => pltpenc_list%index1(k), tpind => pltpenc_list%index2(k)) + pl%lencounter(plind) = .true. + pl%levelg(plind) = irec + pl%levelm(plind) = irec + tp%levelg(tpind) = irec + tp%levelm(tpind) = irec + pl%ntpenc(plind) = pl%ntpenc(plind) + 1 + tp%nplenc(tpind) = tp%nplenc(tpind) + 1 + end associate end do end select end associate diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 1988b4fbc..2b68c1f1d 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -255,7 +255,7 @@ module subroutine symba_step_reset_system(self, param) tp%nplenc(:) = 0 tp%levelg(:) = 0 tp%levelm(:) = 0 - system%pltpenc_list%nenc = 0 + system%pltpenc_list%nenc = 0 end if call system%pl_adds%setup(0, param) From b63c173bcf62014ee7439aa632bef82aa0a94211 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 18:15:27 -0400 Subject: [PATCH 107/315] Fixed more encounter level depth index values --- src/symba/symba_step.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 2b68c1f1d..cde5aff29 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -33,6 +33,7 @@ module subroutine symba_step_system(self, param, t, dt) pl%lfirst = .true. tp%lfirst = .true. else + self%irec = -1 call helio_step_system(self, param, t, dt) end if end select @@ -253,8 +254,8 @@ module subroutine symba_step_reset_system(self, param) if (tp%nbody > 0) then tp%nplenc(:) = 0 - tp%levelg(:) = 0 - tp%levelm(:) = 0 + tp%levelg(:) = -1 + tp%levelm(:) = -1 system%pltpenc_list%nenc = 0 end if From d709d55591586909fba5a55d16d6459b553d2b5d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 20:29:49 -0400 Subject: [PATCH 108/315] Maintenence on SyMBA to try to track down an auto-paralellization bug --- Makefile.Defines | 12 +++---- src/modules/symba_classes.f90 | 4 +-- src/symba/symba_step.f90 | 60 +++++++++++++++++++---------------- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 4a283b655..7bb6ae32e 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -54,24 +54,24 @@ VTUNE_FLAGS = -g -O2 -vec -simd -shared-intel -qopenmp -debug inline-debug-info IDEBUG = -O0 -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin -init=snan,arrays STRICTREAL = -fp-model strict -fp-model no-except -prec-div -prec-sqrt -assume protect-parens SIMDVEC = -simd -xhost -align all -assume contiguous_assumed_shape -vecabi=cmdtarget -prec-div -prec-sqrt -assume protect-parens -PAR = -parallel -qopenmp +PAR = -qopenmp #-parallel Something goes wrong in SyMBA at the moment with auto-paralellization enabled HEAPARR = -heap-arrays 1048576 -OPTIMIZE = -qopt-report=5 +OPTREPORT = -qopt-report=5 #gfortran flags -GDEBUG = -g -O0 -fbacktrace -fbounds-check +GDEBUG = -g -Og -fbacktrace -fbounds-check GPRODUCTION = -O3 GPAR = -fopenmp -ftree-parallelize-loops=4 GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries -#FFLAGS = $(IDEBUG) $(HEAPARR) -FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(SIMDVEC) $(PAR) $(HEAPARR) +#FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) +FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) FORTRAN = ifort #AR = xiar #FORTRAN = gfortran -#FFLAGS = -ffree-line-length-none $(GDEBUG) #$(GMEM) +#FFLAGS = -ffree-line-length-none $(GPRODUCTION) $(GPAR) #$(GDEBUG) $(GMEM) AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 05698d44c..056e6f390 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -497,8 +497,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) implicit none class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - real(DP), value :: t - integer(I4B), value :: ireci !! input recursion level + real(DP), intent(in) :: t + integer(I4B), intent(in) :: ireci !! input recursion level end subroutine symba_step_recur_system module subroutine symba_step_reset_system(self, param) diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index cde5aff29..ed5985c0b 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -146,8 +146,8 @@ module recursive subroutine symba_step_recur_system(self, param, t, ireci) ! Arguments class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - real(DP), value :: t - integer(I4B), value :: ireci !! input recursion level + real(DP), intent(in) :: t + integer(I4B), intent(in) :: ireci !! input recursion level ! Internals integer(I4B) :: i, j, irecp, nloops real(DP) :: dtl, dth @@ -235,32 +235,38 @@ module subroutine symba_step_reset_system(self, param) class is (symba_pl) select type(tp => system%tp) class is (symba_tp) - if (pl%nbody > 0) then - pl%lcollision(:) = .false. - pl%kin(:)%parent = [(i, i=1, pl%nbody)] - pl%kin(:)%nchild = 0 - do i = 1, pl%nbody - if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) - end do - pl%nplenc(:) = 0 - pl%ntpenc(:) = 0 - pl%levelg(:) = -1 - pl%levelm(:) = -1 - pl%lencounter = .false. - pl%lcollision = .false. - system%plplenc_list%nenc = 0 - system%plplcollision_list%nenc = 0 - end if - - if (tp%nbody > 0) then - tp%nplenc(:) = 0 - tp%levelg(:) = -1 - tp%levelm(:) = -1 - system%pltpenc_list%nenc = 0 - end if + associate(npl => pl%nbody, ntp => tp%nbody) + if (npl > 0) then + pl%lcollision(1:npl) = .false. + pl%kin(1:npl)%parent = [(i, i=1, npl)] + pl%kin(1:npl)%nchild = 0 + do i = 1, npl + if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) + end do + pl%nplenc(1:npl) = 0 + pl%ntpenc(1:npl) = 0 + pl%levelg(1:npl) = -1 + pl%levelm(1:npl) = -1 + pl%lencounter(1:npl) = .false. + pl%lcollision(1:npl) = .false. + pl%ldiscard(1:npl) = .false. + pl%lmask(1:npl) = .true. + system%plplenc_list%nenc = 0 + system%plplcollision_list%nenc = 0 + end if + + if (ntp > 0) then + tp%nplenc(1:ntp) = 0 + tp%levelg(1:ntp) = -1 + tp%levelm(1:ntp) = -1 + tp%lmask(1:ntp) = .true. + pl%ldiscard(1:npl) = .false. + system%pltpenc_list%nenc = 0 + end if - call system%pl_adds%setup(0, param) - call system%pl_discards%setup(0, param) + call system%pl_adds%setup(0, param) + call system%pl_discards%setup(0, param) + end associate end select end select end associate From b80d6828dbfb1677a28b362dc6f61f466e515b70 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 18 Aug 2021 22:52:25 -0400 Subject: [PATCH 109/315] Fixed bug in which accelerations were accidentally zeroed out for all encountering bodies --- src/symba/symba_kick.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index b531e447a..b3449e04e 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -213,8 +213,8 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) associate(i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) pl%vb(:,i1) = pl%vb(:,i1) + sgn * dt * pl%ah(:,i1) pl%vb(:,i2) = pl%vb(:,i2) + sgn * dt * pl%ah(:,i2) - pl%ah(:,ind1(1:nenc)) = 0.0_DP - pl%ah(:,ind2(1:nenc)) = 0.0_DP + pl%ah(:,i1) = 0.0_DP + pl%ah(:,i2) = 0.0_DP end associate end do else From 18b497e66f230140f51272087b54356150bb0761 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 18 Aug 2021 23:56:48 -0400 Subject: [PATCH 110/315] Initialize central body bookkeeping terms and corrected missing G in pe calc --- src/io/io.f90 | 7 +++++++ src/symba/symba_discard.f90 | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 4aa3b88a3..23f64f26a 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -909,6 +909,13 @@ module subroutine io_read_cb_in(self, param) if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. if (param%rmin < 0.0) param%rmin = self%radius + + select type(cb => self) + class is (symba_cb) + cb%M0 = cb%mass + cb%R0 = cb%radius + cb%L0(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) + end select return diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index bf70f15dd..2bf7b2a90 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -92,7 +92,7 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) system%Mescape = system%Mescape + pl%mass(ipl) do i = 1, pl%nbody if (i == ipl) cycle - pe = pe - pl%mass(i) * pl%mass(ipl) / norm2(pl%xb(:, ipl) - pl%xb(:, i)) + pe = pe - pl%Gmass(i) * pl%mass(ipl) / norm2(pl%xb(:, ipl) - pl%xb(:, i)) end do Ltot(:) = 0.0_DP From 8ba4272f6c5e4b0aa5f710ee20065da2508cf264 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 19 Aug 2021 00:06:25 -0400 Subject: [PATCH 111/315] Added explicit ranges to whole array operations --- src/symba/symba_util.f90 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index a80c8e646..08b5728e8 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -455,15 +455,15 @@ module subroutine symba_util_rearray_pl(self, system, param) end if ! Reset all of the status flags for this body - where(pl%status(:) /= INACTIVE) - pl%status(:) = ACTIVE - pl%ldiscard(:) = .false. - pl%lcollision(:) = .false. - pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY - pl%lmask(:) = .true. + where(pl%status(1:pl%nbody) /= INACTIVE) + pl%status(1:pl%nbody) = ACTIVE + pl%ldiscard(1:pl%nbody) = .false. + pl%lcollision(1:pl%nbody) = .false. + pl%lmtiny(1:pl%nbody) = pl%Gmass(1:pl%nbody) > param%GMTINY + pl%lmask(1:pl%nbody) = .true. elsewhere - pl%ldiscard(:) = .true. - pl%lmask(:) = .false. + pl%ldiscard(1:pl%nbody) = .true. + pl%lmask(1:pl%nbody) = .false. end where pl%nplm = count(pl%lmtiny(1:pl%nbody) .and. pl%lmask(1:pl%nbody)) From 5b9e3babfa06e7cb665d96335bb48534726a5525 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 08:06:29 -0400 Subject: [PATCH 112/315] Added missing parameters to thdump writer --- src/io/io.f90 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 23f64f26a..592b22c8f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -719,6 +719,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "T0"; write(param_value,Rfmt) param%t0; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TSTOP"; write(param_value, Rfmt) param%tstop; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "DT"; write(param_value, Rfmt) param%dt; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "CB_IN"; write(param_value, Afmt) trim(adjustl(param%incbfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TP_in"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -749,9 +750,11 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Lfmt) param%discard_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + if (param%discard_out /= "") write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + if (param%lenergy) write(param_name, Afmt) "ENERGY_OUT"; write(param_value, Lfmt) param%energy_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "GR"; write(param_value, Lfmt) param%lgr; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) From cf8523a106f56c05eb9fb7ac63ef6133a0fa56b0 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 08:16:50 -0400 Subject: [PATCH 113/315] Refactored read_in subroutines for naming consistency --- src/io/io.f90 | 10 +++++----- src/modules/swiftest_classes.f90 | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 592b22c8f..f463493bd 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -721,7 +721,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "DT"; write(param_value, Rfmt) param%dt; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CB_IN"; write(param_value, Afmt) trim(adjustl(param%incbfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TP_in"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "TP_IN"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%istep_out > 0) then write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -784,7 +784,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) end subroutine io_param_writer - module subroutine io_read_body_in(self, param) + module subroutine io_read_in_body(self, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Read in either test particle or massive body data @@ -873,10 +873,10 @@ module subroutine io_read_body_in(self, param) 667 continue write(*,*) 'Error reading in initial conditions file: ',trim(adjustl(errmsg)) return - end subroutine io_read_body_in + end subroutine io_read_in_body - module subroutine io_read_cb_in(self, param) + module subroutine io_read_in_cb(self, param) !! author: David A. Minton !! !! Reads in central body data @@ -925,7 +925,7 @@ module subroutine io_read_cb_in(self, param) 667 continue write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine io_read_cb_in + end subroutine io_read_in_cb function io_read_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index aed6f23b0..39b782ed2 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -128,7 +128,7 @@ module swiftest_classes real(DP), dimension(NDIM) :: L0 = 0.0_DP !! Initial angular momentum of the central body real(DP), dimension(NDIM) :: dL = 0.0_DP !! Change in angular momentum of the central body contains - procedure :: initialize => io_read_cb_in !! I/O routine for reading in central body data + procedure :: initialize => io_read_in_cb !! I/O routine for reading in central body data procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body procedure :: write_frame => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body end type swiftest_cb @@ -174,7 +174,7 @@ module swiftest_classes procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators - procedure :: initialize => io_read_body_in !! Read in body initial conditions from a file + procedure :: initialize => io_read_in_body !! Read in body initial conditions from a file procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body @@ -610,17 +610,17 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) character(len=*), intent(inout) :: iomsg !! Message to pass if iostat /= 0 end subroutine io_param_writer - module subroutine io_read_body_in(self, param) + module subroutine io_read_in_body(self, param) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_read_body_in + end subroutine io_read_in_body - module subroutine io_read_cb_in(self, param) + module subroutine io_read_in_cb(self, param) implicit none class(swiftest_cb), intent(inout) :: self !! Swiftest central body object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_read_cb_in + end subroutine io_read_in_cb module subroutine io_read_param_in(self, param_file_name) implicit none From f75623fc1ab895527782994a32dff7756862056d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 08:20:18 -0400 Subject: [PATCH 114/315] Refactored read_in subroutines for naming consistency --- src/io/io.f90 | 4 ++-- src/modules/swiftest_classes.f90 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index f463493bd..f2cd4d2f5 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1169,7 +1169,7 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) return end function io_read_hdr - module subroutine io_read_param_in(self, param_file_name) + module subroutine io_read_in_param(self, param_file_name) !! author: David A. Minton !! !! Read in parameters for the integration @@ -1201,7 +1201,7 @@ module subroutine io_read_param_in(self, param_file_name) 667 continue write(*,*) "Error reading parameter file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine io_read_param_in + end subroutine io_read_in_param module subroutine io_toupper(string) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 39b782ed2..0c11e4895 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -81,7 +81,7 @@ module swiftest_classes procedure :: reader => io_param_reader procedure :: writer => io_param_writer procedure :: dump => io_dump_param - procedure :: read_from_file => io_read_param_in + procedure :: read_from_file => io_read_in_param end type swiftest_parameters !******************************************************************************************************************************** @@ -622,11 +622,11 @@ module subroutine io_read_in_cb(self, param) class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine io_read_in_cb - module subroutine io_read_param_in(self, param_file_name) + module subroutine io_read_in_param(self, param_file_name) implicit none class(swiftest_parameters), intent(inout) :: self !! Current run configuration parameters character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) - end subroutine io_read_param_in + end subroutine io_read_in_param module subroutine io_read_frame_body(self, iu, param, form) implicit none From fc6c8a67762b0a8195f95bfb72a38cc85e1c1a00 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 09:10:19 -0400 Subject: [PATCH 115/315] IO changes to get dump files working correctly --- src/io/io.f90 | 70 ++++++++++++++++++-------------- src/main/swiftest_driver.f90 | 2 +- src/modules/swiftest_classes.f90 | 19 +++------ src/modules/swiftest_globals.f90 | 2 +- src/setup/setup.f90 | 8 ++-- 5 files changed, 51 insertions(+), 50 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index f2cd4d2f5..df9fd6f50 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -157,8 +157,12 @@ module subroutine io_dump_swiftest(self, param) dump_file_name = trim(adjustl(param%intpfile)) end select open(unit = iu, file = dump_file_name, form = "UNFORMATTED", status = 'replace', err = 667, iomsg = errmsg) + select type(self) + class is (swiftest_body) + write(iu, err = 667, iomsg = errmsg) self%nbody + end select call self%write_frame(iu, param) - close(LUN, err = 667, iomsg = errmsg) + close(iu, err = 667, iomsg = errmsg) return @@ -205,6 +209,7 @@ module subroutine io_dump_system(self, param) dump_param%intpfile = trim(adjustl(DUMP_TP_FILE(idx))) dump_param%out_form = XV dump_param%out_stat = 'APPEND' + dump_param%in_type = REAL8_TYPE dump_param%T0 = param%t call dump_param%dump(param_file_name) @@ -1006,9 +1011,9 @@ module subroutine io_read_frame_body(self, iu, param, form) if (.not.allocated(self%capom)) allocate(self%capom(n)) if (.not.allocated(self%omega)) allocate(self%omega(n)) if (.not.allocated(self%capm)) allocate(self%capm(n)) - read(iu, err = 667, iomsg = errmsg) self%a(:) - read(iu, err = 667, iomsg = errmsg) self%e(:) - read(iu, err = 667, iomsg = errmsg) self%inc(:) + read(iu, err = 667, iomsg = errmsg) self%a(:) + read(iu, err = 667, iomsg = errmsg) self%e(:) + read(iu, err = 667, iomsg = errmsg) self%inc(:) read(iu, err = 667, iomsg = errmsg) self%capom(:) read(iu, err = 667, iomsg = errmsg) self%omega(:) read(iu, err = 667, iomsg = errmsg) self%capm(:) @@ -1044,7 +1049,14 @@ module subroutine io_read_frame_body(self, iu, param, form) return 667 continue - write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + select type (self) + class is (swiftest_pl) + write(*,*) "Error reading massive body file: " // trim(adjustl(errmsg)) + class is (swiftest_tp) + write(*,*) "Error reading test particle file: " // trim(adjustl(errmsg)) + class default + write(*,*) "Error reading body file: " // trim(adjustl(errmsg)) + end select call util_exit(FAILURE) end subroutine io_read_frame_body @@ -1065,16 +1077,20 @@ module subroutine io_read_frame_cb(self, iu, param, form) ! Internals character(len=STRMAX) :: errmsg - read(iu, err = 667, iomsg = errmsg) self%id !read(iu, err = 667, iomsg = errmsg) self%name + read(iu, err = 667, iomsg = errmsg) self%id read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius read(iu, err = 667, iomsg = errmsg) self%j2rp2 read(iu, err = 667, iomsg = errmsg) self%j4rp4 if (param%lrotation) then - read(iu, err = 667, iomsg = errmsg) self%Ip(:) - read(iu, err = 667, iomsg = errmsg) self%rot(:) + read(iu, err = 667, iomsg = errmsg) self%Ip(1) + read(iu, err = 667, iomsg = errmsg) self%Ip(2) + read(iu, err = 667, iomsg = errmsg) self%Ip(3) + read(iu, err = 667, iomsg = errmsg) self%rot(1) + read(iu, err = 667, iomsg = errmsg) self%rot(2) + read(iu, err = 667, iomsg = errmsg) self%rot(3) end if if (param%ltides) then read(iu, err = 667, iomsg = errmsg) self%k2 @@ -1094,29 +1110,22 @@ module subroutine io_read_frame_system(self, iu, param, form) !! Read a frame (header plus records for each massive body and active test particle) from a output binary file implicit none ! Arguments - class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") + character(*), intent(in) :: form !! Input format code ("XV" or "EL") ! Internals - logical, save :: lfirst = .true. character(len=STRMAX) :: errmsg integer(I4B) :: ierr - iu = BINUNIT - if (lfirst) then - open(unit = iu, file = param%outfile, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - lfirst = .false. - end if ierr = io_read_hdr(iu, param%t, self%pl%nbody, self%tp%nbody, param%out_form, param%out_type) if (ierr /= 0) then - write(*, *) "Swiftest error:" - write(*, *) " Binary output file already exists or cannot be accessed" - return + write(errmsg, *) "Cannot read header." + goto 667 end if - call self%cb%read_frame(iu, param, form) - call self%pl%read_frame(iu, param, form) - call self%tp%read_frame(iu, param, form) + call self%cb%read_frame(iu, param, param%out_form) + call self%pl%read_frame(iu, param, param%out_form) + call self%tp%read_frame(iu, param, param%out_form) return @@ -1137,7 +1146,7 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) ! Arguments integer(I4B), intent(in) :: iu integer(I4B), intent(out) :: npl, ntp - character(*), intent(out) :: out_form + character(*), intent(out) :: out_form real(DP), intent(out) :: t character(*), intent(in) :: out_type ! Result @@ -1147,19 +1156,18 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) character(len=STRMAX) :: errmsg select case (out_type) - case (REAL4_TYPE, SWIFTER_REAL4_TYPE) - read(iu, iostat = ierr, err = 667, iomsg = errmsg) ttmp, npl, ntp, out_form - if (ierr /= 0) return + case (REAL4_TYPE) + read(iu, iostat = ierr, err = 667, iomsg = errmsg) ttmp t = ttmp - case (REAL8_TYPE, SWIFTER_REAL8_TYPE) + case (REAL8_TYPE) read(iu, iostat = ierr, err = 667, iomsg = errmsg) t - read(iu, iostat = ierr, err = 667, iomsg = errmsg) npl - read(iu, iostat = ierr, err = 667, iomsg = errmsg) ntp - read(iu, iostat = ierr, err = 667, iomsg = errmsg) out_form case default write(errmsg,*) trim(adjustl(out_type)) // ' is an unrecognized file type' ierr = -1 end select + read(iu, iostat = ierr, err = 667, iomsg = errmsg) npl + read(iu, iostat = ierr, err = 667, iomsg = errmsg) ntp + read(iu, iostat = ierr, err = 667, iomsg = errmsg) out_form return diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 5e28452e0..a97ba46b0 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -35,7 +35,7 @@ program swiftest_driver param%integrator = integrator call setup_construct_system(nbody_system, param) - call param%read_from_file(param_file_name) + call param%read_in(param_file_name) associate(t => param%t, & t0 => param%t0, & diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 0c11e4895..8d447158f 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -78,10 +78,10 @@ module swiftest_classes logical :: lyarkovsky = .false. !! Turn on Yarkovsky effect logical :: lyorp = .false. !! Turn on YORP effect contains - procedure :: reader => io_param_reader - procedure :: writer => io_param_writer - procedure :: dump => io_dump_param - procedure :: read_from_file => io_read_in_param + procedure :: reader => io_param_reader + procedure :: writer => io_param_writer + procedure :: dump => io_dump_param + procedure :: read_in => io_read_in_param end type swiftest_parameters !******************************************************************************************************************************** @@ -93,7 +93,6 @@ module swiftest_classes contains !! The minimal methods that all systems must have procedure :: dump => io_dump_swiftest - procedure(abstract_initialize), deferred :: initialize procedure(abstract_read_frame), deferred :: read_frame procedure(abstract_write_frame), deferred :: write_frame end type swiftest_base @@ -128,7 +127,7 @@ module swiftest_classes real(DP), dimension(NDIM) :: L0 = 0.0_DP !! Initial angular momentum of the central body real(DP), dimension(NDIM) :: dL = 0.0_DP !! Change in angular momentum of the central body contains - procedure :: initialize => io_read_in_cb !! I/O routine for reading in central body data + procedure :: read_in => io_read_in_cb !! I/O routine for reading in central body data procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body procedure :: write_frame => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body end type swiftest_cb @@ -174,7 +173,7 @@ module swiftest_classes procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators - procedure :: initialize => io_read_in_body !! Read in body initial conditions from a file + procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body @@ -356,12 +355,6 @@ subroutine abstract_accel(self, system, param, t, lbeg) logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine abstract_accel - subroutine abstract_initialize(self, param) - import swiftest_base, swiftest_parameters - class(swiftest_base), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine abstract_initialize - subroutine abstract_kick_body(self, system, param, t, dt, lbeg) import swiftest_body, swiftest_nbody_system, swiftest_parameters, DP implicit none diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 454f454f5..17c5d9b19 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -107,7 +107,7 @@ module swiftest_globals character(*), dimension(2), parameter :: DUMP_CB_FILE = ['dump_cb1.bin', 'dump_cb2.bin' ] character(*), dimension(2), parameter :: DUMP_PL_FILE = ['dump_pl1.bin', 'dump_pl2.bin' ] character(*), dimension(2), parameter :: DUMP_TP_FILE = ['dump_tp1.bin', 'dump_tp2.bin' ] - character(*), dimension(2), parameter :: DUMP_PARAM_FILE = ['dump_param1.dat', 'dump_param2.dat'] + character(*), dimension(2), parameter :: DUMP_PARAM_FILE = ['dump_param1.in', 'dump_param2.in'] !> Default file names that can be changed by the user in the parameters file character(*), parameter :: CB_INFILE = 'cb.in' diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index ea15bf1fe..d56f2becb 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -133,10 +133,10 @@ module subroutine setup_initialize_system(self, param) ! Arguments class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - - call self%cb%initialize(param) - call self%pl%initialize(param) - call self%tp%initialize(param) + + call self%cb%read_in(param) + call self%pl%read_in(param) + call self%tp%read_in(param) call self%validate_ids(param) call self%set_msys() call self%pl%set_mu(self%cb) From 2648f866caee72b9e8ed0f3c2b357c84fea3421d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 09:13:09 -0400 Subject: [PATCH 116/315] Fixed output formatting for file names in parameter file writer --- src/io/io.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index df9fd6f50..ae23e15fe 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -755,11 +755,11 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Lfmt) param%discard_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Afmt) trim(adjustl(param%discard_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%discard_out /= "") write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%lenergy) write(param_name, Afmt) "ENERGY_OUT"; write(param_value, Lfmt) param%energy_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + if (param%lenergy) write(param_name, Afmt) "ENERGY_OUT"; write(param_value, Afmt) trim(adjustl(param%energy_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "GR"; write(param_value, Lfmt) param%lgr; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) From 206a5abd81cb3d93455e56efbd67ef8a7465d38c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 09:17:41 -0400 Subject: [PATCH 117/315] Fixed issue where dump files were not being written if there were no bodies of a given type --- src/io/io.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index ae23e15fe..7b7e568ed 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -214,8 +214,8 @@ module subroutine io_dump_system(self, param) call dump_param%dump(param_file_name) call self%cb%dump(dump_param) - if (self%pl%nbody > 0) call self%pl%dump(dump_param) - if (self%tp%nbody > 0) call self%tp%dump(dump_param) + call self%pl%dump(dump_param) + call self%tp%dump(dump_param) idx = idx + 1 if (idx > NDUMPFILES) idx = 1 From ecf6985ad80b2613de91006239126d951e087a61 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 09:19:24 -0400 Subject: [PATCH 118/315] Added dump files to ignore list now that parameter dump files have the extention .in for naming consistency --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 67bc9fa6b..fe0a24d5d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ !README.md !README.swifter !*.in +dump* !example/cleanup !example/swifter_symba_omp !Makefile From 061cbcaf0c9a33ae712ee5183485dcd258415d97 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 09:25:10 -0400 Subject: [PATCH 119/315] Added end of file exception handling in the particle information file reader --- src/symba/symba_io.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 5ab525e23..06472aae9 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -276,7 +276,7 @@ module subroutine symba_io_read_particle(system, param) associate(npl => pl%nbody, ntp => tp%nbody) do lmatch = .false. - read(LUN, err = 667, iomsg = errmsg) id + read(LUN, err = 667, iomsg = errmsg, end = 333) id if (idx == cb%id) then read(LUN, err = 667, iomsg = errmsg) cb%info @@ -308,6 +308,7 @@ module subroutine symba_io_read_particle(system, param) end select end select + 333 continue return 667 continue From 285cebfd6d854f9cf6ef7cb6b25de044b65a8a98 Mon Sep 17 00:00:00 2001 From: Dana Date: Thu, 19 Aug 2021 10:07:10 -0400 Subject: [PATCH 120/315] Changed NF90_HDF5 to NF90_NETCDF4 (HDF5 cmode flag is depreciated) --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 6cd4c7d3e..a91097c88 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1804,7 +1804,7 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) case('NEW', 'REPLACE', 'UNKNOWN') !! Create the new output file, deleting any previously existing output file of the same name - call check( nf90_create(param%outfile, NF90_HDF5, ncid) ) + call check( nf90_create(param%outfile, NF90_NETCDF4, ncid) ) !! Calculate the number of outputs needed to cover the entire simulation time noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output From c39f6f66fd339d9e91d50b76b6de679ffb5ee863 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 10:07:45 -0400 Subject: [PATCH 121/315] Consolidated the ASCII and binary versions of body reading into read_frame_body to better manage the order in which things are read, as the Ip and rot variables were mismatched. The consequence of this is now the ability to read in orbital elements as initial conditions. Yay finally --- src/io/io.f90 | 206 ++++++++++++++++++------------- src/modules/swiftest_classes.f90 | 15 +-- 2 files changed, 124 insertions(+), 97 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 7b7e568ed..ce1aced7c 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -208,6 +208,7 @@ module subroutine io_dump_system(self, param) dump_param%inplfile = trim(adjustl(DUMP_PL_FILE(idx))) dump_param%intpfile = trim(adjustl(DUMP_TP_FILE(idx))) dump_param%out_form = XV + dump_param%in_form = XV dump_param%out_stat = 'APPEND' dump_param%in_type = REAL8_TYPE dump_param%T0 = param%t @@ -409,6 +410,9 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) case ("IN_TYPE") call io_toupper(param_value) param%in_type = param_value + case ("IN_FORM") + call io_toupper(param_value) + param%in_form = param_value case ("ISTEP_OUT") read(param_value, *) param%istep_out case ("BIN_OUT") @@ -611,6 +615,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "BIN_OUT = ",trim(adjustl(param%outfile)) write(*,*) "OUT_TYPE = ",trim(adjustl(param%out_type)) write(*,*) "OUT_FORM = ",trim(adjustl(param%out_form)) + write(*,*) "IN_FORM = ",trim(adjustl(param%in_form)) write(*,*) "OUT_STAT = ",trim(adjustl(param%out_stat)) write(*,*) "ISTEP_DUMP = ",param%istep_dump write(*,*) "CHK_CLOSE = ",param%lclose @@ -728,6 +733,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TP_IN"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "IN_FORM"; write(param_value, Afmt) trim(adjustl(param%in_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%istep_out > 0) then write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "BIN_OUT"; write(param_value, Afmt) trim(adjustl(param%outfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -803,11 +809,10 @@ module subroutine io_read_in_body(self, param) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN - integer(I4B) :: i, nbody + integer(I4B) :: nbody logical :: is_ascii, is_pl character(len=:), allocatable :: infile real(DP) :: t - real(QP) :: val character(STRMAX) :: errmsg ! Select the appropriate polymorphic class (test particle or massive body) @@ -825,52 +830,21 @@ module subroutine io_read_in_body(self, param) case(ASCII_TYPE) open(unit = iu, file = infile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) read(iu, *, err = 667, iomsg = errmsg) nbody - call self%setup(nbody, param) - if (nbody > 0) then - do i = 1, nbody - select type(self) - class is (swiftest_pl) - if (param%lrhill_present) then - read(iu, *, err = 667, iomsg = errmsg) self%id(i), val, self%rhill(i) - else - read(iu, *, err = 667, iomsg = errmsg) self%id(i), val - end if - self%Gmass(i) = real(val, kind=DP) - self%mass(i) = real(val / param%GU, kind=DP) - if (param%lclose) read(iu, *, err = 667, iomsg = errmsg) self%radius(i) - class is (swiftest_tp) - read(iu, *, err = 667, iomsg = errmsg) self%id(i) - end select - read(iu, *, err = 667, iomsg = errmsg) self%xh(1, i), self%xh(2, i), self%xh(3, i) - read(iu, *, err = 667, iomsg = errmsg) self%vh(1, i), self%vh(2, i), self%vh(3, i) - select type (self) - class is (swiftest_pl) - if (param%lrotation) then - read(iu, *, err = 667, iomsg = errmsg) self%Ip(1, i), self%Ip(2, i), self%Ip(3, i) - read(iu, *, err = 667, iomsg = errmsg) self%rot(1, i), self%rot(2, i), self%rot(3, i) - end if - if (param%ltides) then - read(iu, *, err = 667, iomsg = errmsg) self%k2(i) - read(iu, *, err = 667, iomsg = errmsg) self%Q(i) - end if - end select - self%status(i) = ACTIVE - self%lmask(i) = .true. - end do - end if - case (REAL4_TYPE, REAL8_TYPE) !, SWIFTER_REAL4_TYPE, SWIFTER_REAL8_TYPE) + case (REAL4_TYPE, REAL8_TYPE) open(unit=iu, file=infile, status='old', form='UNFORMATTED', err = 667, iomsg = errmsg) read(iu, err = 667, iomsg = errmsg) nbody - call self%setup(nbody, param) - if (nbody > 0) then - call self%read_frame(iu, param, XV) - self%status(:) = ACTIVE - self%lmask(:) = .true. - end if case default write(errmsg,*) trim(adjustl(param%in_type)) // ' is an unrecognized file type' goto 667 end select + + call self%setup(nbody, param) + if (nbody > 0) then + call self%read_frame(iu, param) + self%status(:) = ACTIVE + self%lmask(:) = .true. + end if + close(iu, err = 667, iomsg = errmsg) return @@ -911,7 +885,7 @@ module subroutine io_read_in_cb(self, param) end if else open(unit = iu, file = param%incbfile, status = 'old', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - call self%read_frame(iu, param, XV) + call self%read_frame(iu, param) end if close(iu, err = 667, iomsg = errmsg) @@ -984,7 +958,7 @@ function io_read_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & end function io_read_encounter - module subroutine io_read_frame_body(self, iu, param, form) + module subroutine io_read_frame_body(self, iu, param) !! author: David A. Minton !! !! Reads a frame of output of either test particle or massive body data from a binary output file @@ -996,53 +970,107 @@ module subroutine io_read_frame_body(self, iu, param, form) class(swiftest_body), intent(inout) :: self !! Swiftest particle object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") ! Internals character(len=STRMAX) :: errmsg + integer(I4B) :: i + real(QP) :: val + + if ((param%in_form /= EL) .and. (param%in_form /= XV)) then + write(errmsg, *) trim(adjustl(param%in_form)) // " is not a recognized format code for input files." + goto 667 + end if associate(n => self%nbody) - read(iu, err = 667, iomsg = errmsg) self%id(:) - !read(iu, err = 667, iomsg = errmsg) self%name(1:n) - select case (form) - case (EL) + + if (param%in_form == EL) then if (.not.allocated(self%a)) allocate(self%a(n)) if (.not.allocated(self%e)) allocate(self%e(n)) if (.not.allocated(self%inc)) allocate(self%inc(n)) if (.not.allocated(self%capom)) allocate(self%capom(n)) if (.not.allocated(self%omega)) allocate(self%omega(n)) if (.not.allocated(self%capm)) allocate(self%capm(n)) - read(iu, err = 667, iomsg = errmsg) self%a(:) - read(iu, err = 667, iomsg = errmsg) self%e(:) - read(iu, err = 667, iomsg = errmsg) self%inc(:) - read(iu, err = 667, iomsg = errmsg) self%capom(:) - read(iu, err = 667, iomsg = errmsg) self%omega(:) - read(iu, err = 667, iomsg = errmsg) self%capm(:) - case (XV) - read(iu, err = 667, iomsg = errmsg) self%xh(1, :) - read(iu, err = 667, iomsg = errmsg) self%xh(2, :) - read(iu, err = 667, iomsg = errmsg) self%xh(3, :) - read(iu, err = 667, iomsg = errmsg) self%vh(1, :) - read(iu, err = 667, iomsg = errmsg) self%vh(2, :) - read(iu, err = 667, iomsg = errmsg) self%vh(3, :) - end select - select type(pl => self) - class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - read(iu, err = 667, iomsg = errmsg) pl%Gmass(:) - pl%mass(:) = pl%Gmass(:) / param%GU - if (param%lrhill_present) read(iu, err = 667, iomsg = errmsg) pl%rhill(:) - if (param%lclose) read(iu, err = 667, iomsg = errmsg) pl%radius(:) - if (param%lrotation) then - read(iu, err = 667, iomsg = errmsg) pl%rot(1, :) - read(iu, err = 667, iomsg = errmsg) pl%rot(2, :) - read(iu, err = 667, iomsg = errmsg) pl%rot(3, :) - read(iu, err = 667, iomsg = errmsg) pl%Ip(1, :) - read(iu, err = 667, iomsg = errmsg) pl%Ip(2, :) - read(iu, err = 667, iomsg = errmsg) pl%Ip(3, :) - end if - if (param%ltides) then - read(iu, err = 667, iomsg = errmsg) pl%k2(1:n) - read(iu, err = 667, iomsg = errmsg) pl%Q(1:n) - end if + end if + + select case(param%in_type) + case (REAL4_TYPE, REAL8_TYPE) + read(iu, err = 667, iomsg = errmsg) self%id(:) + + select case (param%in_form) + case (XV) + read(iu, err = 667, iomsg = errmsg) self%xh(1, :) + read(iu, err = 667, iomsg = errmsg) self%xh(2, :) + read(iu, err = 667, iomsg = errmsg) self%xh(3, :) + read(iu, err = 667, iomsg = errmsg) self%vh(1, :) + read(iu, err = 667, iomsg = errmsg) self%vh(2, :) + read(iu, err = 667, iomsg = errmsg) self%vh(3, :) + case (EL) + read(iu, err = 667, iomsg = errmsg) self%a(:) + read(iu, err = 667, iomsg = errmsg) self%e(:) + read(iu, err = 667, iomsg = errmsg) self%inc(:) + read(iu, err = 667, iomsg = errmsg) self%capom(:) + read(iu, err = 667, iomsg = errmsg) self%omega(:) + read(iu, err = 667, iomsg = errmsg) self%capm(:) + end select + + select type(pl => self) + class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body + read(iu, err = 667, iomsg = errmsg) pl%Gmass(:) + pl%mass(:) = pl%Gmass(:) / param%GU + if (param%lrhill_present) read(iu, err = 667, iomsg = errmsg) pl%rhill(:) + if (param%lclose) read(iu, err = 667, iomsg = errmsg) pl%radius(:) + if (param%lrotation) then + read(iu, err = 667, iomsg = errmsg) pl%Ip(1, :) + read(iu, err = 667, iomsg = errmsg) pl%Ip(2, :) + read(iu, err = 667, iomsg = errmsg) pl%Ip(3, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(1, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(2, :) + read(iu, err = 667, iomsg = errmsg) pl%rot(3, :) + end if + if (param%ltides) then + read(iu, err = 667, iomsg = errmsg) pl%k2(1:n) + read(iu, err = 667, iomsg = errmsg) pl%Q(1:n) + end if + end select + + case (ASCII_TYPE) + do i = 1, n + + select type(self) + class is (swiftest_pl) + if (param%lrhill_present) then + read(iu, *, err = 667, iomsg = errmsg) self%id(i), val, self%rhill(i) + else + read(iu, *, err = 667, iomsg = errmsg) self%id(i), val + end if + self%Gmass(i) = real(val, kind=DP) + self%mass(i) = real(val / param%GU, kind=DP) + if (param%lclose) read(iu, *, err = 667, iomsg = errmsg) self%radius(i) + class is (swiftest_tp) + read(iu, *, err = 667, iomsg = errmsg) self%id(i) + end select + + select case(param%in_form) + case (XV) + read(iu, *, err = 667, iomsg = errmsg) self%xh(1, i), self%xh(2, i), self%xh(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%vh(1, i), self%vh(2, i), self%vh(3, i) + case (EL) + read(iu, *, err = 667, iomsg = errmsg) self%a(i), self%e(i), self%inc(i) + read(iu, *, err = 667, iomsg = errmsg) self%capom(i), self%omega(i), self%capm(i) + end select + + select type (self) + class is (swiftest_pl) + if (param%lrotation) then + read(iu, *, err = 667, iomsg = errmsg) self%Ip(1, i), self%Ip(2, i), self%Ip(3, i) + read(iu, *, err = 667, iomsg = errmsg) self%rot(1, i), self%rot(2, i), self%rot(3, i) + end if + if (param%ltides) then + read(iu, *, err = 667, iomsg = errmsg) self%k2(i) + read(iu, *, err = 667, iomsg = errmsg) self%Q(i) + end if + end select + + end do end select end associate @@ -1061,7 +1089,7 @@ module subroutine io_read_frame_body(self, iu, param, form) end subroutine io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param, form) + module subroutine io_read_frame_cb(self, iu, param) !! author: David A. Minton !! !! Reads a frame of output of central body data to the binary output file @@ -1073,7 +1101,6 @@ module subroutine io_read_frame_cb(self, iu, param, form) class(swiftest_cb), intent(inout) :: self !! Swiftest central body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") ! Internals character(len=STRMAX) :: errmsg @@ -1104,7 +1131,7 @@ module subroutine io_read_frame_cb(self, iu, param, form) end subroutine io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param, form) + module subroutine io_read_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Read a frame (header plus records for each massive body and active test particle) from a output binary file @@ -1113,7 +1140,6 @@ module subroutine io_read_frame_system(self, iu, param, form) class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") ! Internals character(len=STRMAX) :: errmsg integer(I4B) :: ierr @@ -1123,9 +1149,13 @@ module subroutine io_read_frame_system(self, iu, param, form) write(errmsg, *) "Cannot read header." goto 667 end if - call self%cb%read_frame(iu, param, param%out_form) - call self%pl%read_frame(iu, param, param%out_form) - call self%tp%read_frame(iu, param, param%out_form) + call self%cb%read_frame(iu, param) + call self%pl%read_frame(iu, param) + call self%tp%read_frame(iu, param) + if (param%in_form == EL) then + call self%pl%el2xv(self%cb) + call self%tp%el2xv(self%cb) + end if return diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 8d447158f..6d450b044 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -24,7 +24,8 @@ module swiftest_classes character(STRMAX) :: incbfile = CB_INFILE !! Name of input file for the central body character(STRMAX) :: inplfile = PL_INFILE !! Name of input file for massive bodies character(STRMAX) :: intpfile = TP_INFILE !! Name of input file for test particles - character(STRMAX) :: in_type = ASCII_TYPE !! Format of input data files + character(STRMAX) :: in_type = ASCII_TYPE !! Data representation type of input data files + character(STRMAX) :: in_form = XV !! Format of input data files (EL or XV) integer(I4B) :: istep_out = -1 !! Number of time steps between binary outputs character(STRMAX) :: outfile = BIN_OUTFILE !! Name of output binary file character(STRMAX) :: out_type = REAL8_TYPE !! Binary format of output file @@ -366,12 +367,11 @@ subroutine abstract_kick_body(self, system, param, t, dt, lbeg) logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. end subroutine abstract_kick_body - subroutine abstract_read_frame(self, iu, param, form) + subroutine abstract_read_frame(self, iu, param) import DP, I4B, swiftest_base, swiftest_parameters class(swiftest_base), intent(inout) :: self !! Swiftest base object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") end subroutine abstract_read_frame subroutine abstract_set_mu(self, cb) @@ -621,28 +621,25 @@ module subroutine io_read_in_param(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) end subroutine io_read_in_param - module subroutine io_read_frame_body(self, iu, param, form) + module subroutine io_read_frame_body(self, iu, param) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") end subroutine io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param, form) + module subroutine io_read_frame_cb(self, iu, param) implicit none class(swiftest_cb), intent(inout) :: self !! Swiftest central body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") end subroutine io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param, form) + module subroutine io_read_frame_system(self, iu, param) implicit none class(swiftest_nbody_system),intent(inout) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") end subroutine io_read_frame_system module subroutine io_write_discard(self, param) From 52fd48ed01dbb47074ce362db2393c9efda1a110 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 10:16:02 -0400 Subject: [PATCH 122/315] Added back the firstkick logical to manage restarted kicks --- src/setup/setup.f90 | 2 ++ src/symba/symba_step.f90 | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index d56f2becb..7ee72fd3b 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -143,6 +143,8 @@ module subroutine setup_initialize_system(self, param) call self%tp%set_mu(self%cb) call self%pl%eucl_index() if (.not.param%lrhill_present) call self%pl%set_rhill(self%cb) + self%pl%lfirst = param%lfirstkick + self%tp%lfirst = param%lfirstkick return end subroutine setup_initialize_system diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index ed5985c0b..fe2d74b1a 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -28,10 +28,8 @@ module subroutine symba_step_system(self, param, t, dt) call self%reset(param) lencounter = pl%encounter_check(self, dt, 0) .or. tp%encounter_check(self, dt, 0) if (lencounter) then - tp%lfirst = pl%lfirst call self%interp(param, t, dt) - pl%lfirst = .true. - tp%lfirst = .true. + param%lfirstkick = .true. else self%irec = -1 call helio_step_system(self, param, t, dt) @@ -266,6 +264,9 @@ module subroutine symba_step_reset_system(self, param) call system%pl_adds%setup(0, param) call system%pl_discards%setup(0, param) + + tp%lfirst = param%lfirstkick + pl%lfirst = param%lfirstkick end associate end select end select From 792aa129556209b9ae12cdedd89ad75636e098b3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 10:20:41 -0400 Subject: [PATCH 123/315] Prevent duplicate frames from being written in a restart --- src/main/swiftest_driver.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index a97ba46b0..0dc7641d1 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -50,8 +50,8 @@ program swiftest_driver iout = istep_out idump = istep_dump nloops = ceiling(tstop / dt, kind=I8B) - if (istep_out > 0) call nbody_system%write_frame(iu, param) - call nbody_system%dump(param) + if (istep_out > 0 .and. (.not.param%lrestart)) call nbody_system%write_frame(iu, param) + if (.not.param%lrestart) call nbody_system%dump(param) !> Define the maximum number of threads nthreads = 1 ! In the *serial* case From 7182995e0d0b082037268433db249eef56816f12 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 11:30:49 -0400 Subject: [PATCH 124/315] Improved handling of restarts. Now the code will check whether or not a restarted run would duplicate output frames in the bin.dat file. If so, skip writing until the simulation time is greater than the time of the last frame of the old output. --- src/io/io.f90 | 125 ++++++++++++++++++++++++------- src/main/swiftest_driver.f90 | 14 +++- src/modules/swiftest_classes.f90 | 40 ++++++---- 3 files changed, 134 insertions(+), 45 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index ce1aced7c..e2171b169 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -299,6 +299,45 @@ module function io_get_args(integrator, param_file_name) result(ierr) end function io_get_args + module function io_get_old_t_final_system(self, param) result(old_t_final) + !! author: David A. Minton + !! + !! Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the binary output. + !! + implicit none + ! Arguments + class(swiftest_nbody_system), intent(in) :: self + class(swiftest_parameters), intent(in) :: param + ! Result + real(DP) :: old_t_final + ! Internals + class(swiftest_nbody_system), allocatable :: tmpsys + class(swiftest_parameters), allocatable :: tmpparam + integer(I4B), parameter :: LUN = 76 + integer(I4B) :: ierr, iu = LUN + character(len=STRMAX) :: errmsg + + old_t_final = 0.0_DP + allocate(tmpsys, source=self) + allocate(tmpparam, source=param) + + ierr = 0 + open(unit = iu, file = param%outfile, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + do + ierr = tmpsys%read_frame(iu, tmpparam) + if (ierr /= 0) exit + end do + if (is_iostat_end(ierr)) then + old_t_final = tmpparam%t + return + end if + + 667 continue + write(*,*) "Error reading binary output file. " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end function io_get_old_t_final_system + + module function io_get_token(buffer, ifirst, ilast, ierr) result(token) !! author: David A. Minton !! @@ -814,6 +853,7 @@ module subroutine io_read_in_body(self, param) character(len=:), allocatable :: infile real(DP) :: t character(STRMAX) :: errmsg + integer(I4B) :: ierr ! Select the appropriate polymorphic class (test particle or massive body) select type(self) @@ -839,15 +879,15 @@ module subroutine io_read_in_body(self, param) end select call self%setup(nbody, param) + ierr = 0 if (nbody > 0) then - call self%read_frame(iu, param) + ierr = self%read_frame(iu, param) self%status(:) = ACTIVE self%lmask(:) = .true. end if - close(iu, err = 667, iomsg = errmsg) - return + if (ierr == 0) return 667 continue write(*,*) 'Error reading in initial conditions file: ',trim(adjustl(errmsg)) @@ -870,6 +910,7 @@ module subroutine io_read_in_cb(self, param) integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN character(len=STRMAX) :: errmsg + integer(I4B) :: ierr if (param%in_type == 'ASCII') then open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) @@ -885,20 +926,22 @@ module subroutine io_read_in_cb(self, param) end if else open(unit = iu, file = param%incbfile, status = 'old', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - call self%read_frame(iu, param) + ierr = self%read_frame(iu, param) end if close(iu, err = 667, iomsg = errmsg) - if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. - if (param%rmin < 0.0) param%rmin = self%radius - - select type(cb => self) - class is (symba_cb) - cb%M0 = cb%mass - cb%R0 = cb%radius - cb%L0(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) - end select - + if (ierr == 0) then + + if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. + if (param%rmin < 0.0) param%rmin = self%radius + + select type(cb => self) + class is (symba_cb) + cb%M0 = cb%mass + cb%R0 = cb%radius + cb%L0(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) + end select + end if return 667 continue @@ -958,7 +1001,7 @@ function io_read_encounter(t, id1, id2, Gmass1, Gmass2, radius1, radius2, & end function io_read_encounter - module subroutine io_read_frame_body(self, iu, param) + module function io_read_frame_body(self, iu, param) result(ierr) !! author: David A. Minton !! !! Reads a frame of output of either test particle or massive body data from a binary output file @@ -970,11 +1013,15 @@ module subroutine io_read_frame_body(self, iu, param) class(swiftest_body), intent(inout) :: self !! Swiftest particle object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + ! Result + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals character(len=STRMAX) :: errmsg integer(I4B) :: i real(QP) :: val + if (self%nbody == 0) return + if ((param%in_form /= EL) .and. (param%in_form /= XV)) then write(errmsg, *) trim(adjustl(param%in_form)) // " is not a recognized format code for input files." goto 667 @@ -1074,6 +1121,7 @@ module subroutine io_read_frame_body(self, iu, param) end select end associate + ierr = 0 return 667 continue @@ -1086,10 +1134,10 @@ module subroutine io_read_frame_body(self, iu, param) write(*,*) "Error reading body file: " // trim(adjustl(errmsg)) end select call util_exit(FAILURE) - end subroutine io_read_frame_body + end function io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param) + module function io_read_frame_cb(self, iu, param) result(ierr) !! author: David A. Minton !! !! Reads a frame of output of central body data to the binary output file @@ -1101,6 +1149,8 @@ module subroutine io_read_frame_cb(self, iu, param) class(swiftest_cb), intent(inout) :: self !! Swiftest central body object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + ! Result + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals character(len=STRMAX) :: errmsg @@ -1123,15 +1173,17 @@ module subroutine io_read_frame_cb(self, iu, param) read(iu, err = 667, iomsg = errmsg) self%k2 read(iu, err = 667, iomsg = errmsg) self%Q end if + + ierr = 0 return 667 continue write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine io_read_frame_cb + end function io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param) + module function io_read_frame_system(self, iu, param) result(ierr) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Read a frame (header plus records for each massive body and active test particle) from a output binary file @@ -1140,18 +1192,34 @@ module subroutine io_read_frame_system(self, iu, param) class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + ! Result + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals character(len=STRMAX) :: errmsg - integer(I4B) :: ierr ierr = io_read_hdr(iu, param%t, self%pl%nbody, self%tp%nbody, param%out_form, param%out_type) + if (is_iostat_end(ierr)) return ! Reached the end of the frames + if (ierr /= 0) then - write(errmsg, *) "Cannot read header." + write(errmsg, *) "Cannot read frame header." goto 667 end if - call self%cb%read_frame(iu, param) - call self%pl%read_frame(iu, param) - call self%tp%read_frame(iu, param) + ierr = self%cb%read_frame(iu, param) + if (ierr /= 0) then + write(errmsg, *) "Cannot read central body frame." + goto 667 + end if + ierr = self%pl%read_frame(iu, param) + if (ierr /= 0) then + write(errmsg, *) "Cannot read massive body frame." + goto 667 + end if + ierr = self%tp%read_frame(iu, param) + if (ierr /= 0) then + write(errmsg, *) "Cannot read test particle frame." + goto 667 + end if + if (param%in_form == EL) then call self%pl%el2xv(self%cb) call self%tp%el2xv(self%cb) @@ -1161,8 +1229,7 @@ module subroutine io_read_frame_system(self, iu, param) 667 continue write(*,*) "Error reading system frame: " // trim(adjustl(errmsg)) - call util_exit(FAILURE) - end subroutine io_read_frame_system + end function io_read_frame_system function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) @@ -1187,10 +1254,10 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) select case (out_type) case (REAL4_TYPE) - read(iu, iostat = ierr, err = 667, iomsg = errmsg) ttmp + read(iu, iostat = ierr, err = 667, iomsg = errmsg, end = 333) ttmp t = ttmp case (REAL8_TYPE) - read(iu, iostat = ierr, err = 667, iomsg = errmsg) t + read(iu, iostat = ierr, err = 667, iomsg = errmsg, end = 333) t case default write(errmsg,*) trim(adjustl(out_type)) // ' is an unrecognized file type' ierr = -1 @@ -1203,6 +1270,8 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) 667 continue write(*,*) "Error reading header: " // trim(adjustl(errmsg)) + 333 continue + return return end function io_read_hdr diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 0dc7641d1..3a274e596 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -19,6 +19,7 @@ program swiftest_driver integer(I8B) :: iout !! Output cadence counter integer(I8B) :: nloops !! Number of steps to take in the simulation integer(I4B) :: iu !! Unit number of binary file + real(DP) :: old_t_final = 0.0_DP !! Output time at which writing should start, in order to prevent duplicate lines being written for restarts ierr = io_get_args(integrator, param_file_name) if (ierr /= 0) then @@ -50,8 +51,15 @@ program swiftest_driver iout = istep_out idump = istep_dump nloops = ceiling(tstop / dt, kind=I8B) - if (istep_out > 0 .and. (.not.param%lrestart)) call nbody_system%write_frame(iu, param) - if (.not.param%lrestart) call nbody_system%dump(param) + ! Prevent duplicate frames from being written if this is a restarted run + if (param%lrestart) then + old_t_final = nbody_system%get_old_t_final(param) + else + old_t_final = t0 + if (istep_out > 0) call nbody_system%write_frame(iu, param) + call nbody_system%dump(param) + end if + !> Define the maximum number of threads nthreads = 1 ! In the *serial* case @@ -73,7 +81,7 @@ program swiftest_driver if (istep_out > 0) then iout = iout - 1 if (iout == 0) then - call nbody_system%write_frame(iu, param) + if (t > old_t_final) call nbody_system%write_frame(iu, param) iout = istep_out end if end if diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 6d450b044..9a674c830 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -306,6 +306,7 @@ module swiftest_classes procedure :: discard => discard_system !! Perform a discard step on the system procedure :: conservation_report => io_conservation_report !! Compute energy and momentum and print out the change with time procedure :: dump => io_dump_system !! Dump the state of the system to a file + procedure :: get_old_t_final => io_get_old_t_final_system !! Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the binary output. procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file procedure :: write_discard => io_write_discard !! Write out information about discarded test particles procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file @@ -367,12 +368,13 @@ subroutine abstract_kick_body(self, system, param, t, dt, lbeg) logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. end subroutine abstract_kick_body - subroutine abstract_read_frame(self, iu, param) + function abstract_read_frame(self, iu, param) result(ierr) import DP, I4B, swiftest_base, swiftest_parameters class(swiftest_base), intent(inout) :: self !! Swiftest base object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine abstract_read_frame + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful + end function abstract_read_frame subroutine abstract_set_mu(self, cb) import swiftest_body, swiftest_cb @@ -572,6 +574,13 @@ module function io_get_args(integrator, param_file_name) result(ierr) integer(I4B) :: ierr !! I/O error code end function io_get_args + module function io_get_old_t_final_system(self, param) result(old_t_final) + implicit none + class(swiftest_nbody_system), intent(in) :: self + class(swiftest_parameters), intent(in) :: param + real(DP) :: old_t_final + end function io_get_old_t_final_system + module function io_get_token(buffer, ifirst, ilast, ierr) result(token) implicit none character(len=*), intent(in) :: buffer !! Input string buffer @@ -621,26 +630,29 @@ module subroutine io_read_in_param(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) end subroutine io_read_in_param - module subroutine io_read_frame_body(self, iu, param) + module function io_read_frame_body(self, iu, param) result(ierr) implicit none - class(swiftest_body), intent(inout) :: self !! Swiftest body object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_read_frame_body + class(swiftest_body), intent(inout) :: self !! Swiftest body object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful + end function io_read_frame_body - module subroutine io_read_frame_cb(self, iu, param) + module function io_read_frame_cb(self, iu, param) result(ierr) implicit none - class(swiftest_cb), intent(inout) :: self !! Swiftest central body object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_read_frame_cb + class(swiftest_cb), intent(inout) :: self !! Swiftest central body object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful + end function io_read_frame_cb - module subroutine io_read_frame_system(self, iu, param) + module function io_read_frame_system(self, iu, param) result(ierr) implicit none class(swiftest_nbody_system),intent(inout) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_read_frame_system + integer(I4B) :: ierr !! Error code: returns 0 if the read is successful + end function io_read_frame_system module subroutine io_write_discard(self, param) implicit none From ba6f4824aeb7d66e1b58563d2f2571a7415cc970 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 12:15:09 -0400 Subject: [PATCH 125/315] Fixed bad array deallocations in setup, and fixed bad array range problem in reading in old frames. --- src/io/io.f90 | 5 ++++- src/setup/setup.f90 | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index e2171b169..f7532e7b9 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1196,9 +1196,12 @@ module function io_read_frame_system(self, iu, param) result(ierr) integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals character(len=STRMAX) :: errmsg + integer(I4B) :: npl, ntp - ierr = io_read_hdr(iu, param%t, self%pl%nbody, self%tp%nbody, param%out_form, param%out_type) + ierr = io_read_hdr(iu, param%t, npl, ntp, param%out_form, param%out_type) if (is_iostat_end(ierr)) return ! Reached the end of the frames + call self%pl%setup(npl, param) + call self%tp%setup(ntp, param) if (ierr /= 0) then write(errmsg, *) "Cannot read frame header." diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 7ee72fd3b..0a2664feb 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -264,8 +264,8 @@ module subroutine setup_pl(self, n, param) end if if (param%lrotation) then - if (allocated(self%rot)) deallocate(self%rhill) - if (allocated(self%Ip)) deallocate(self%rhill) + if (allocated(self%rot)) deallocate(self%rot) + if (allocated(self%Ip)) deallocate(self%Ip) allocate(self%rot(NDIM, n)) allocate(self%Ip(NDIM, n)) self%rot(:,:) = 0.0_DP @@ -273,9 +273,9 @@ module subroutine setup_pl(self, n, param) end if if (param%ltides) then - if (allocated(self%k2)) deallocate(self%rhill) - if (allocated(self%Q)) deallocate(self%rhill) - if (allocated(self%tlag)) deallocate(self%rhill) + if (allocated(self%k2)) deallocate(self%k2) + if (allocated(self%Q)) deallocate(self%Q) + if (allocated(self%tlag)) deallocate(self%tlag) allocate(self%k2(n)) allocate(self%Q(n)) allocate(self%tlag(n)) From 988773feb66750e6afae5bb84e8fd562c616b8fe Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 12:25:13 -0400 Subject: [PATCH 126/315] Improved formatting of discard reporting to get rid of blank spaces around particle ids --- src/discard/discard.f90 | 10 +++++++--- src/symba/symba_discard.f90 | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index 2998e8804..f6e5dcf57 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -112,6 +112,7 @@ subroutine discard_cb_tp(tp, system, param) ! Internals integer(I4B) :: i real(DP) :: energy, vb2, rb2, rh2, rmin2, rmax2, rmaxu2 + character(len=STRMAX) :: idstr associate(ntp => tp%nbody, cb => system%cb, t => param%t, Gmtot => system%Gmtot) rmin2 = max(param%rmin * param%rmin, cb%radius * cb%radius) @@ -122,12 +123,14 @@ subroutine discard_cb_tp(tp, system, param) rh2 = dot_product(tp%xh(:, i), tp%xh(:, i)) if ((param%rmax >= 0.0_DP) .and. (rh2 > rmax2)) then tp%status(i) = DISCARDED_RMAX - write(*, *) "Particle ", tp%id(i), " too far from sun at t = ", t + write(idstr, *) tp%id(i) + write(*, *) "Particle " // trim(adjustl(idstr)) // " too far from the central body at t = ", t tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then tp%status(i) = DISCARDED_RMIN - write(*, *) "Particle ", tp%id(i), " too close to sun at t = ", t + write(idstr, *) tp%id(i) + write(*, *) "Particle " // trim(adjustl(idstr)) // " too close to the central body at t = ", t tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if (param%rmaxu >= 0.0_DP) then @@ -136,7 +139,8 @@ subroutine discard_cb_tp(tp, system, param) energy = 0.5_DP * vb2 - Gmtot / sqrt(rb2) if ((energy > 0.0_DP) .and. (rb2 > rmaxu2)) then tp%status(i) = DISCARDED_RMAXU - write(*, *) "Particle ", tp%id(i), " is unbound and too far from barycenter at t = ", t + write(idstr, *) tp%id(i) + write(*, *) "Particle " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = ", t tp%ldiscard(i) = .true. tp%lmask(i) = .false. end if diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 2bf7b2a90..dfc8c615f 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -20,6 +20,7 @@ subroutine symba_discard_cb_pl(pl, system, param) ! Internals integer(I4B) :: i, j real(DP) :: energy, vb2, rb2, rh2, rmin2, rmax2, rmaxu2 + character(len=STRMAX) :: idstr associate(npl => pl%nbody, cb => system%cb) call system%set_msys() @@ -33,12 +34,14 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMAX - write(*, *) "Massive body ", pl%id(i), " too far from the central body at t = ", param%t + write(idstr, *) pl%id(i) + write(*, *) "Massive body " // trim(adjustl(idstr)) // " too far from the central body at t = ", param%t else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMIN - write(*, *) "Massive body ", pl%id(i), " too close to the central body at t = ", param%t + write(idstr, *) pl%id(i) + write(*, *) "Massive body " // trim(adjustl(idstr)) // " too close to the central body at t = ", param%t else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) vb2 = dot_product(pl%vb(:,i), pl%vb(:,i)) @@ -47,7 +50,8 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMAXU - write(*, *) "Massive body ", pl%id(i), " is unbound and too far from barycenter at t = ", param%t + write(idstr, *) pl%id(i) + write(*, *) "Massive body " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = ", param%t end if end if end if From fa9932f8401ca71fca6c4a740165638e98aace83 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 12:28:37 -0400 Subject: [PATCH 127/315] Improved formatting of discard reporting to get rid of blank spaces around time stamp --- src/discard/discard.f90 | 13 ++++++++----- src/symba/symba_discard.f90 | 11 +++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index f6e5dcf57..5c6f704e1 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -112,9 +112,9 @@ subroutine discard_cb_tp(tp, system, param) ! Internals integer(I4B) :: i real(DP) :: energy, vb2, rb2, rh2, rmin2, rmax2, rmaxu2 - character(len=STRMAX) :: idstr + character(len=STRMAX) :: idstr, timestr - associate(ntp => tp%nbody, cb => system%cb, t => param%t, Gmtot => system%Gmtot) + associate(ntp => tp%nbody, cb => system%cb, Gmtot => system%Gmtot) rmin2 = max(param%rmin * param%rmin, cb%radius * cb%radius) rmax2 = param%rmax**2 rmaxu2 = param%rmaxu**2 @@ -124,13 +124,15 @@ subroutine discard_cb_tp(tp, system, param) if ((param%rmax >= 0.0_DP) .and. (rh2 > rmax2)) then tp%status(i) = DISCARDED_RMAX write(idstr, *) tp%id(i) - write(*, *) "Particle " // trim(adjustl(idstr)) // " too far from the central body at t = ", t + write(timestr, *) param%t + write(*, *) "Particle " // trim(adjustl(idstr)) // " too far from the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then tp%status(i) = DISCARDED_RMIN write(idstr, *) tp%id(i) - write(*, *) "Particle " // trim(adjustl(idstr)) // " too close to the central body at t = ", t + write(timestr, *) param%t + write(*, *) "Particle " // trim(adjustl(idstr)) // " too close to the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if (param%rmaxu >= 0.0_DP) then @@ -140,7 +142,8 @@ subroutine discard_cb_tp(tp, system, param) if ((energy > 0.0_DP) .and. (rb2 > rmaxu2)) then tp%status(i) = DISCARDED_RMAXU write(idstr, *) tp%id(i) - write(*, *) "Particle " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = ", t + write(timestr, *) param%t + write(*, *) "Particle " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. end if diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index dfc8c615f..7f3ed3b21 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -20,7 +20,7 @@ subroutine symba_discard_cb_pl(pl, system, param) ! Internals integer(I4B) :: i, j real(DP) :: energy, vb2, rb2, rh2, rmin2, rmax2, rmaxu2 - character(len=STRMAX) :: idstr + character(len=STRMAX) :: idstr, timestr associate(npl => pl%nbody, cb => system%cb) call system%set_msys() @@ -35,13 +35,15 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMAX write(idstr, *) pl%id(i) - write(*, *) "Massive body " // trim(adjustl(idstr)) // " too far from the central body at t = ", param%t + write(timestr, *) param%t + write(*, *) "Massive body " // trim(adjustl(idstr)) // " too far from the central body at t = " // trim(adjustl(timestr)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMIN write(idstr, *) pl%id(i) - write(*, *) "Massive body " // trim(adjustl(idstr)) // " too close to the central body at t = ", param%t + write(timestr, *) param%t + write(*, *) "Massive body " // trim(adjustl(idstr)) // " too close to the central body at t = " // trim(adjustl(timestr)) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) vb2 = dot_product(pl%vb(:,i), pl%vb(:,i)) @@ -51,7 +53,8 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMAXU write(idstr, *) pl%id(i) - write(*, *) "Massive body " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = ", param%t + write(timestr, *) param%t + write(*, *) "Massive body " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) end if end if end if From d86888fcb7eb723820c9b304c7f30214e2e91ff8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 12:42:22 -0400 Subject: [PATCH 128/315] Switched to tracking initial G*M instead of M and G*Mescape instead of Mescape --- src/io/io.f90 | 29 +++++++++++++++-------------- src/modules/swiftest_classes.f90 | 6 +++--- src/modules/symba_classes.f90 | 4 ++-- src/symba/symba_discard.f90 | 10 +++++----- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index f7532e7b9..37a69a6ec 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -17,7 +17,7 @@ module subroutine io_conservation_report(self, param, lterminal) real(DP), save :: ke_orbit_last, ke_spin_last, pe_last, Eorbit_last real(DP) :: ke_orbit_now, ke_spin_now, pe_now, Eorbit_now real(DP) :: Eorbit_error, Etotal_error, Ecoll_error - real(DP) :: Mtot_now, Merror + real(DP) :: GMtot_now, Merror real(DP) :: Lmag_now, Lerror character(len=STRMAX) :: errmsg character(len=*), parameter :: EGYFMT = '(ES23.16,10(",",ES23.16,:))' ! Format code for all simulation output @@ -28,8 +28,8 @@ module subroutine io_conservation_report(self, param, lterminal) "; D(Eorbit+Ecollisions)/|E0| = ", ES12.5, & "; DM/M0 = ", ES12.5)' - associate(system => self, pl => self%pl, cb => self%cb, npl => self%pl%nbody, Ecollisions => self%Ecollisions, Lescape => self%Lescape, Mescape => self%Mescape, & - Euntracked => self%Euntracked, Eorbit_orig => param%Eorbit_orig, Mtot_orig => param%Mtot_orig, & + associate(system => self, pl => self%pl, cb => self%cb, npl => self%pl%nbody, Ecollisions => self%Ecollisions, Lescape => self%Lescape, GMescape => self%GMescape, & + Euntracked => self%Euntracked, Eorbit_orig => param%Eorbit_orig, GMtot_orig => param%GMtot_orig, & Ltot_orig => param%Ltot_orig(:), Lmag_orig => param%Lmag_orig, Lorbit_orig => param%Lorbit_orig(:), Lspin_orig => param%Lspin_orig(:), & lfirst => param%lfirstenergy) if (param%energy_out /= "") then @@ -50,10 +50,10 @@ module subroutine io_conservation_report(self, param, lterminal) Lspin_now = system%Lspin Eorbit_now = ke_orbit_now + ke_spin_now + pe_now Ltot_now(:) = Lorbit_now(:) + Lspin_now(:) + Lescape(:) - Mtot_now = cb%mass + sum(pl%mass(1:npl)) + system%Mescape + GMtot_now = cb%Gmass + sum(pl%Gmass(1:npl)) + system%GMescape if (lfirst) then Eorbit_orig = Eorbit_now - Mtot_orig = Mtot_now + GMtot_orig = GMtot_now Lorbit_orig(:) = Lorbit_now(:) Lspin_orig(:) = Lspin_now(:) Ltot_orig(:) = Ltot_now(:) @@ -62,7 +62,7 @@ module subroutine io_conservation_report(self, param, lterminal) end if if (param%energy_out /= "") then - write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, Ecollisions, Ltot_now, Mtot_now + write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, Ecollisions, Ltot_now, GMtot_now close(EGYIU, err = 667, iomsg = errmsg) end if if (.not.lfirst .and. lterminal) then @@ -71,7 +71,7 @@ module subroutine io_conservation_report(self, param, lterminal) Eorbit_error = (Eorbit_now - Eorbit_orig) / abs(Eorbit_orig) Ecoll_error = Ecollisions / abs(Eorbit_orig) Etotal_error = (Eorbit_now - Ecollisions - Eorbit_orig - Euntracked) / abs(Eorbit_orig) - Merror = (Mtot_now - Mtot_orig) / Mtot_orig + Merror = (GMtot_now - GMtot_orig) / GMtot_orig write(*, egytermfmt) Lerror, Ecoll_error, Etotal_error, Merror ! if (Ecoll_error > 0.0_DP) then ! write(*,*) 'Something has gone wrong! Collisional energy should not be positive!' @@ -527,8 +527,8 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) if (param_value == "NO" .or. param_value == 'F') param%lfirstenergy = .false. case("EORBIT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%Eorbit_orig - case("MTOT_ORIG") - read(param_value, *, err = 667, iomsg = iomsg) param%Mtot_orig + case("GMTOT_ORIG") + read(param_value, *, err = 667, iomsg = iomsg) param%GMtot_orig case("LTOT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(1) do i = 2, NDIM @@ -558,8 +558,8 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *, err = 667, iomsg = iomsg) param%Lescape(i) end do - case("MESCAPE") - read(param_value, *, err = 667, iomsg = iomsg) param%Mescape + case("GMESCAPE") + read(param_value, *, err = 667, iomsg = iomsg) param%GMescape case("ECOLLISIONS") read(param_value, *, err = 667, iomsg = iomsg) param%Ecollisions case("EUNTRACKED") @@ -812,13 +812,13 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) if (param%lenergy) then write(param_name, Afmt) "FIRSTENERGY"; write(param_value, Lfmt) param%lfirstenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EORBIT_ORIG"; write(param_value, Rfmt) param%Eorbit_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "MTOT_ORIG"; write(param_value, Rfmt) param%Mtot_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GMTOT_ORIG"; write(param_value, Rfmt) param%GMtot_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(unit, '("LTOT_ORIG ",3(1X,ES25.17))') param%Ltot_orig(:) write(unit, '("LORBIT_ORIG",3(1X,ES25.17))') param%Lorbit_orig(:) write(unit, '("LSPIN_ORIG ",3(1X,ES25.17))') param%Lspin_orig(:) write(unit, '("LESCAPE ",3(1X,ES25.17))') param%Lescape(:) - write(param_name, Afmt) "MESCAPE"; write(param_value, Rfmt) param%Mescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GMescape"; write(param_value, Rfmt) param%GMescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if @@ -937,7 +937,8 @@ module subroutine io_read_in_cb(self, param) select type(cb => self) class is (symba_cb) - cb%M0 = cb%mass + cb%GM0 = cb%Gmass + cb%dGM = 0.0_DP cb%R0 = cb%radius cb%L0(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) end select diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 9a674c830..465170151 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -60,14 +60,14 @@ module swiftest_classes ! Initial values to pass to the energy report subroutine (usually only used in the case of a restart, otherwise these will be updated with initial conditions values) real(DP) :: Eorbit_orig = 0.0_DP !! Initial orbital energy - real(DP) :: Mtot_orig = 0.0_DP !! Initial system mass + real(DP) :: GMtot_orig = 0.0_DP !! Initial system mass real(DP) :: Lmag_orig = 0.0_DP !! Initial total angular momentum magnitude real(DP), dimension(NDIM) :: Ltot_orig = 0.0_DP !! Initial total angular momentum vector real(DP), dimension(NDIM) :: Lorbit_orig = 0.0_DP !! Initial orbital angular momentum real(DP), dimension(NDIM) :: Lspin_orig = 0.0_DP !! Initial spin angular momentum vector real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector real(DP), dimension(NDIM) :: Lescape = 0.0_DP !! Angular momentum of bodies that escaped the system (used for bookeeping) - real(DP) :: Mescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) + real(DP) :: GMescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) real(DP) :: Ecollisions = 0.0_DP !! Energy lost from system due to collisions real(DP) :: Euntracked = 0.0_DP !! Energy gained from system due to escaped bodies logical :: lfirstenergy = .true. !! This is the first time computing energe @@ -291,7 +291,7 @@ module swiftest_classes real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector real(DP), dimension(NDIM) :: Lescape = 0.0_DP !! Angular momentum of bodies that escaped the system (used for bookeeping) - real(DP) :: Mescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) + real(DP) :: GMescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) real(DP) :: Ecollisions = 0.0_DP !! Energy lost from system due to collisions real(DP) :: Euntracked = 0.0_DP !! Energy gained from system due to escaped bodies logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 056e6f390..9384a11a6 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -55,8 +55,8 @@ module symba_classes !******************************************************************************************************************************* !> SyMBA central body particle class type, extends(helio_cb) :: symba_cb - real(DP) :: M0 = 0.0_DP !! Initial mass of the central body - real(DP) :: dM = 0.0_DP !! Change in mass of the central body + real(DP) :: GM0 = 0.0_DP !! Initial G*mass of the central body + real(DP) :: dGM = 0.0_DP !! Change in G*mass of the central body real(DP) :: R0 = 0.0_DP !! Initial radius of the central body real(DP) :: dR = 0.0_DP !! Change in the radius of the central body type(symba_particle_info) :: info diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 7f3ed3b21..32879a9a5 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -85,7 +85,7 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) class is (symba_cb) ! Add the potential and kinetic energy of the lost body to the records - pe = -cb%mass * pl%mass(ipl) / norm2(pl%xb(:, ipl) - cb%xb(:)) + pe = -cb%Gmass * pl%mass(ipl) / norm2(pl%xb(:, ipl) - cb%xb(:)) ke_orbit = 0.5_DP * pl%mass(ipl) * dot_product(pl%vb(:, ipl), pl%vb(:, ipl)) if (param%lrotation) then ke_spin = 0.5_DP * pl%mass(ipl) * pl%radius(ipl)**2 * pl%Ip(3, ipl) * dot_product(pl%rot(:, ipl), pl%rot(:, ipl)) @@ -96,7 +96,7 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) ! Add the pre-collision ke of the central body to the records ! Add planet mass to central body accumulator if (lescape_body) then - system%Mescape = system%Mescape + pl%mass(ipl) + system%GMescape = system%GMescape + pl%Gmass(ipl) do i = 1, pl%nbody if (i == ipl) cycle pe = pe - pl%Gmass(i) * pl%mass(ipl) / norm2(pl%xb(:, ipl) - pl%xb(:, i)) @@ -133,10 +133,10 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) ke_orbit = ke_orbit + 0.5_DP * cb%mass * dot_product(cb%vb(:), cb%vb(:)) if (param%lrotation) ke_spin = ke_spin + 0.5_DP * cb%mass * cb%radius**2 * cb%Ip(3) * dot_product(cb%rot(:), cb%rot(:)) ! Update mass of central body to be consistent with its total mass - cb%dM = cb%dM + pl%mass(ipl) + cb%dGM = cb%dGM + pl%Gmass(ipl) cb%dR = cb%dR + 1.0_DP / 3.0_DP * (pl%radius(ipl) / cb%radius)**3 - 2.0_DP / 9.0_DP * (pl%radius(ipl) / cb%radius)**6 - cb%mass = cb%M0 + cb%dM - cb%Gmass = param%GU * cb%mass + cb%Gmass = cb%GM0 + cb%dGM + cb%mass = cb%Gmass / param%GU cb%radius = cb%R0 + cb%dR param%rmin = cb%radius ! Add planet angular momentum to central body accumulator From b482943d590fefe57f3c0a6296bced0806d8b10b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 14:01:14 -0400 Subject: [PATCH 129/315] Removed all initial properties values from the system object and keep it now in the parameter object. I may move this back (and out of param) later, but for now, this is where they live. Fixed up some bookeeping mismatched resulting from having these variables in two places. --- src/io/io.f90 | 68 ++++++++++----------------- src/modules/swiftest_classes.f90 | 9 +--- src/modules/symba_classes.f90 | 12 ++--- src/symba/symba_collision.f90 | 20 ++++---- src/symba/symba_discard.f90 | 16 +++---- src/util/util_get_energy_momentum.f90 | 4 ++ 6 files changed, 55 insertions(+), 74 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 37a69a6ec..670d98db8 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -14,11 +14,10 @@ module subroutine io_conservation_report(self, param, lterminal) ! Internals real(DP), dimension(NDIM) :: Ltot_now, Lorbit_now, Lspin_now real(DP), dimension(NDIM), save :: Ltot_last, Lorbit_last, Lspin_last - real(DP), save :: ke_orbit_last, ke_spin_last, pe_last, Eorbit_last real(DP) :: ke_orbit_now, ke_spin_now, pe_now, Eorbit_now real(DP) :: Eorbit_error, Etotal_error, Ecoll_error - real(DP) :: GMtot_now, Merror - real(DP) :: Lmag_now, Lerror + real(DP) :: GMtot_now + real(DP) :: Lerror, Merror character(len=STRMAX) :: errmsg character(len=*), parameter :: EGYFMT = '(ES23.16,10(",",ES23.16,:))' ! Format code for all simulation output character(len=*), parameter :: EGYHEADER = '("t,Eorbit,Ecollisions,Lx,Ly,Lz,Mtot")' @@ -28,12 +27,9 @@ module subroutine io_conservation_report(self, param, lterminal) "; D(Eorbit+Ecollisions)/|E0| = ", ES12.5, & "; DM/M0 = ", ES12.5)' - associate(system => self, pl => self%pl, cb => self%cb, npl => self%pl%nbody, Ecollisions => self%Ecollisions, Lescape => self%Lescape, GMescape => self%GMescape, & - Euntracked => self%Euntracked, Eorbit_orig => param%Eorbit_orig, GMtot_orig => param%GMtot_orig, & - Ltot_orig => param%Ltot_orig(:), Lmag_orig => param%Lmag_orig, Lorbit_orig => param%Lorbit_orig(:), Lspin_orig => param%Lspin_orig(:), & - lfirst => param%lfirstenergy) + associate(system => self, pl => self%pl, cb => self%cb, npl => self%pl%nbody) if (param%energy_out /= "") then - if (lfirst .and. (param%out_stat /= "OLD")) then + if (param%lfirstenergy .and. (param%out_stat /= "OLD")) then open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "replace", action = "write", err = 667, iomsg = errmsg) write(EGYIU,EGYHEADER, err = 667, iomsg = errmsg) else @@ -46,48 +42,34 @@ module subroutine io_conservation_report(self, param, lterminal) ke_orbit_now = system%ke_orbit ke_spin_now = system%ke_spin pe_now = system%pe - Lorbit_now = system%Lorbit - Lspin_now = system%Lspin + Lorbit_now(:) = system%Lorbit(:) + Lspin_now(:) = system%Lspin(:) Eorbit_now = ke_orbit_now + ke_spin_now + pe_now - Ltot_now(:) = Lorbit_now(:) + Lspin_now(:) + Lescape(:) - GMtot_now = cb%Gmass + sum(pl%Gmass(1:npl)) + system%GMescape - if (lfirst) then - Eorbit_orig = Eorbit_now - GMtot_orig = GMtot_now - Lorbit_orig(:) = Lorbit_now(:) - Lspin_orig(:) = Lspin_now(:) - Ltot_orig(:) = Ltot_now(:) - Lmag_orig = norm2(Ltot_orig(:)) - lfirst = .false. + Ltot_now(:) = system%Ltot(:) + param%Lescape(:) + GMtot_now = system%GMtot + param%GMescape + + if (param%lfirstenergy) then + param%Eorbit_orig = Eorbit_now + param%GMtot_orig = GMtot_now + param%Lorbit_orig(:) = Lorbit_now(:) + param%Lspin_orig(:) = Lspin_now(:) + param%Ltot_orig(:) = Ltot_now(:) + param%lfirstenergy = .false. end if if (param%energy_out /= "") then - write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, Ecollisions, Ltot_now, GMtot_now + write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, param%Ecollisions, Ltot_now, GMtot_now close(EGYIU, err = 667, iomsg = errmsg) end if - if (.not.lfirst .and. lterminal) then - Lmag_now = norm2(Ltot_now) - Lerror = norm2(Ltot_now - Ltot_orig) / Lmag_orig - Eorbit_error = (Eorbit_now - Eorbit_orig) / abs(Eorbit_orig) - Ecoll_error = Ecollisions / abs(Eorbit_orig) - Etotal_error = (Eorbit_now - Ecollisions - Eorbit_orig - Euntracked) / abs(Eorbit_orig) - Merror = (GMtot_now - GMtot_orig) / GMtot_orig + + if (.not.param%lfirstenergy .and. lterminal) then + Lerror = norm2(Ltot_now(:) - param%Ltot_orig(:)) / norm2(param%Ltot_orig(:)) + Eorbit_error = (Eorbit_now - param%Eorbit_orig) / abs(param%Eorbit_orig) + Ecoll_error = param%Ecollisions / abs(param%Eorbit_orig) + Etotal_error = (Eorbit_now - param%Ecollisions - param%Eorbit_orig - param%Euntracked) / abs(param%Eorbit_orig) + Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig write(*, egytermfmt) Lerror, Ecoll_error, Etotal_error, Merror - ! if (Ecoll_error > 0.0_DP) then - ! write(*,*) 'Something has gone wrong! Collisional energy should not be positive!' - ! write(*,*) 'dke_orbit: ',(ke_orbit_now - ke_orbit_last) / abs(Eorbit_orig) - ! write(*,*) 'dke_spin : ',(ke_spin_now - ke_spin_last) / abs(Eorbit_orig) - ! write(*,*) 'dpe : ',(pe_now - pe_last) / abs(Eorbit_orig) - ! write(*,*) - ! end if end if - ke_orbit_last = ke_orbit_now - ke_spin_last = ke_spin_now - pe_last = pe_now - Eorbit_last = Eorbit_now - Lorbit_last(:) = Lorbit_now(:) - Lspin_last(:) = Lspin_now(:) - Ltot_last(:) = Ltot_now(:) end associate return @@ -212,6 +194,7 @@ module subroutine io_dump_system(self, param) dump_param%out_stat = 'APPEND' dump_param%in_type = REAL8_TYPE dump_param%T0 = param%t + call dump_param%dump(param_file_name) call self%cb%dump(dump_param) @@ -536,7 +519,6 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(i) end do - param%Lmag_orig = norm2(param%Ltot_orig(:)) case("LORBIT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%Lorbit_orig(1) do i = 2, NDIM diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 465170151..f08e8eb05 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -61,11 +61,9 @@ module swiftest_classes ! Initial values to pass to the energy report subroutine (usually only used in the case of a restart, otherwise these will be updated with initial conditions values) real(DP) :: Eorbit_orig = 0.0_DP !! Initial orbital energy real(DP) :: GMtot_orig = 0.0_DP !! Initial system mass - real(DP) :: Lmag_orig = 0.0_DP !! Initial total angular momentum magnitude real(DP), dimension(NDIM) :: Ltot_orig = 0.0_DP !! Initial total angular momentum vector real(DP), dimension(NDIM) :: Lorbit_orig = 0.0_DP !! Initial orbital angular momentum real(DP), dimension(NDIM) :: Lspin_orig = 0.0_DP !! Initial spin angular momentum vector - real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector real(DP), dimension(NDIM) :: Lescape = 0.0_DP !! Angular momentum of bodies that escaped the system (used for bookeeping) real(DP) :: GMescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) real(DP) :: Ecollisions = 0.0_DP !! Energy lost from system due to collisions @@ -283,17 +281,14 @@ module swiftest_classes class(swiftest_tp), allocatable :: tp !! Test particle data structure class(swiftest_tp), allocatable :: tp_discards !! Discarded test particle data structure class(swiftest_pl), allocatable :: pl_discards !! Discarded massive body particle data structure - real(DP) :: Gmtot = 0.0_DP !! Total system mass - used for barycentric coordinate conversion + real(DP) :: GMtot = 0.0_DP !! Total system mass - used for barycentric coordinate conversion real(DP) :: ke_orbit = 0.0_DP !! System orbital kinetic energy real(DP) :: ke_spin = 0.0_DP !! System spin kinetic energy real(DP) :: pe = 0.0_DP !! System potential energy real(DP) :: te = 0.0_DP !! System total energy real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector - real(DP), dimension(NDIM) :: Lescape = 0.0_DP !! Angular momentum of bodies that escaped the system (used for bookeeping) - real(DP) :: GMescape = 0.0_DP !! Mass of bodies that escaped the system (used for bookeeping) - real(DP) :: Ecollisions = 0.0_DP !! Energy lost from system due to collisions - real(DP) :: Euntracked = 0.0_DP !! Energy gained from system due to escaped bodies + real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated !! separately from massive bodies. Massive body variables are saved at half steps, and passed to !! the test particles diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 9384a11a6..f2b9134d8 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -215,14 +215,14 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) implicit none class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_collision_resolve_fragmentations module subroutine symba_collision_resolve_mergers(self, system, param) implicit none class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_collision_resolve_mergers module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, irec) @@ -309,7 +309,7 @@ end function symba_encounter_check_tp module function symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -321,7 +321,7 @@ end function symba_collision_casedisruption module function symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -333,7 +333,7 @@ end function symba_collision_casehitandrun module function symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collisio @@ -343,7 +343,7 @@ end function symba_collision_casemerge module function symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) implicit none class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index b00a4a8e6..5ba08558c 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -13,7 +13,7 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass implicit none ! Arguments class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -106,7 +106,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, implicit none ! Arguments class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -213,7 +213,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad implicit none ! Arguments class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -269,7 +269,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad ! Assume prinicpal axis rotation on 3rd Ip axis rot_frag(:,1) = L_spin_new(:) / (Ip_frag(3,1) * m_frag(1) * rad_frag(1)**2) else ! If spin is not enabled, we will consider the lost pre-collision angular momentum as "escaped" and add it to our bookkeeping variable - system%Lescape(:) = system%Lescape(:) + L_orb_old(:) + param%Lescape(:) = param%Lescape(:) + L_orb_old(:) end if ! Keep track of the component of potential energy due to the pre-impact family for book-keeping @@ -280,8 +280,8 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad pe = pe - pl%Gmass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) end do end do - system%Ecollisions = system%Ecollisions + pe - system%Euntracked = system%Euntracked - pe + param%Ecollisions = param%Ecollisions + pe + param%Euntracked = param%Euntracked - pe status = MERGED call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) @@ -300,7 +300,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, implicit none ! Arguments class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision @@ -930,7 +930,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) ! Arguments class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions ! Internals ! Internals integer(I4B), dimension(:), allocatable :: family !! List of indices of all bodies inovlved in the collision @@ -1023,7 +1023,7 @@ module subroutine symba_collision_resolve_mergers(self, system, param) ! Arguments class(symba_plplenc), intent(inout) :: self !! SyMBA pl-pl encounter list class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions ! Internals integer(I4B), dimension(:), allocatable :: family !! List of indices of all bodies inovlved in the collision integer(I4B), dimension(2) :: idx_parent !! Index of the two bodies considered the "parents" of the collision @@ -1119,7 +1119,7 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir if (param%lenergy) then call system%get_energy_and_momentum(param) Eorbit_after = system%te - system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) + param%Ecollisions = param%Ecollisions + (Eorbit_after - Eorbit_before) end if end select diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 32879a9a5..193461bc7 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -96,7 +96,7 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) ! Add the pre-collision ke of the central body to the records ! Add planet mass to central body accumulator if (lescape_body) then - system%GMescape = system%GMescape + pl%Gmass(ipl) + param%GMescape = param%GMescape + pl%Gmass(ipl) do i = 1, pl%nbody if (i == ipl) cycle pe = pe - pl%Gmass(i) * pl%mass(ipl) / norm2(pl%xb(:, ipl) - pl%xb(:, i)) @@ -119,8 +119,8 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) Ltot(:) = Ltot(:) - Lpl(:) end do Ltot(:) = Ltot(:) - cb%mass * (cb%xb(:) .cross. cb%vb(:)) - system%Lescape(:) = system%Lescape(:) + Ltot(:) - if (param%lrotation) system%Lescape(:) = system%Lescape + pl%mass(ipl) * pl%radius(ipl)**2 * pl%Ip(3, ipl) * pl%rot(:, ipl) + param%Lescape(:) = param%Lescape(:) + Ltot(:) + if (param%lrotation) param%Lescape(:) = param%Lescape + pl%mass(ipl) * pl%radius(ipl)**2 * pl%Ip(3, ipl) * pl%rot(:, ipl) else xcom(:) = (pl%mass(ipl) * pl%xb(:, ipl) + cb%mass * cb%xb(:)) / (cb%mass + pl%mass(ipl)) @@ -154,11 +154,11 @@ subroutine symba_discard_conserve_mtm(pl, system, param, ipl, lescape_body) ! We must do this for proper book-keeping, since we can no longer track this body's contribution to energy directly if (lescape_body) then - system%Ecollisions = system%Ecollisions + ke_orbit + ke_spin + pe - system%Euntracked = system%Euntracked - (ke_orbit + ke_spin + pe) + param%Ecollisions = param%Ecollisions + ke_orbit + ke_spin + pe + param%Euntracked = param%Euntracked - (ke_orbit + ke_spin + pe) else - system%Ecollisions = system%Ecollisions + pe - system%Euntracked = system%Euntracked - pe + param%Ecollisions = param%Ecollisions + pe + param%Euntracked = param%Euntracked - pe end if end select @@ -313,7 +313,7 @@ module subroutine symba_discard_pl(self, system, param) if (param%lenergy) then call system%get_energy_and_momentum(param) Eorbit_after = system%te - system%Ecollisions = system%Ecollisions + (Eorbit_after - Eorbit_before) + param%Ecollisions = param%Ecollisions + (Eorbit_after - Eorbit_before) end if end associate diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index dffdc29ae..4243070ac 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -28,6 +28,7 @@ module subroutine util_get_energy_momentum_system(self, param) associate(system => self, pl => self%pl, npl => self%pl%nbody, cb => self%cb) system%Lorbit(:) = 0.0_DP system%Lspin(:) = 0.0_DP + system%Ltot(:) = 0.0_DP system%ke_orbit = 0.0_DP system%ke_spin = 0.0_DP @@ -38,8 +39,10 @@ module subroutine util_get_energy_momentum_system(self, param) Lplspinx(:) = 0.0_DP Lplspiny(:) = 0.0_DP Lplspinz(:) = 0.0_DP + lstatus(1:npl) = pl%status(1:npl) /= INACTIVE + system%GMtot = cb%Gmass + sum(pl%Gmass(1:npl), lstatus(1:npl)) kecb = cb%mass * dot_product(cb%vb(:), cb%vb(:)) Lcborbit(:) = cb%mass * (cb%xb(:) .cross. cb%vb(:)) @@ -121,6 +124,7 @@ module subroutine util_get_energy_momentum_system(self, param) end if system%te = system%ke_orbit + system%ke_spin + system%pe + system%Ltot(:) = system%Lorbit(:) + system%Lspin(:) end associate return From 5835450415d3f7a032f4507a0aba351cd7fab15a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 14:09:51 -0400 Subject: [PATCH 130/315] Fixed typo that was prevening the central body id to be matched in an old particle.dat file --- src/symba/symba_io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 06472aae9..1c0981232 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -278,7 +278,7 @@ module subroutine symba_io_read_particle(system, param) lmatch = .false. read(LUN, err = 667, iomsg = errmsg, end = 333) id - if (idx == cb%id) then + if (id == cb%id) then read(LUN, err = 667, iomsg = errmsg) cb%info lmatch = .true. else From b2c8178c4061eb602ef07c4034a82049b793c9c3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 14:13:49 -0400 Subject: [PATCH 131/315] Updated param files for the two solar system examples --- examples/symba_chambers_2013/param.in | 7 +++---- examples/symba_clement_2018/param.in | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 28500d32b..31ce47985 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -8,8 +8,8 @@ CB_IN sun_MsunAUYR.in PL_IN pl_chambers_2013.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 6250 ! output cadence -ISTEP_DUMP 6250 ! system dump cadence +ISTEP_OUT 625 ! output cadence +ISTEP_DUMP 625 ! system dump cadence BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 ! double precision real output @@ -18,7 +18,6 @@ OUT_STAT REPLACE CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of EXTRA_FORCE no ! no extra user-defined forces -DISCARD_OUT discard.out BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file MU2KG 1.98847e30 ! (M_sun-> kg) @@ -26,7 +25,7 @@ DU2M 1.495979e11 ! distance unit to meters (AU --> m) TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes -ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes +DISCARD_OUT discard.out SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index 79890595e..f4c163875 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -27,6 +27,7 @@ TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes ENERGY_OUT energy.dat +ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 From 3ff35d28f1c695214104e9d6937417cd2105e4d8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 14:15:52 -0400 Subject: [PATCH 132/315] Updated example input files for the collision regime test cases --- examples/symba_energy_momentum/param.escape.in | 10 +++------- examples/symba_energy_momentum/param.sun.in | 6 ++++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/symba_energy_momentum/param.escape.in b/examples/symba_energy_momentum/param.escape.in index 90d118017..5f8ef2d0d 100644 --- a/examples/symba_energy_momentum/param.escape.in +++ b/examples/symba_energy_momentum/param.escape.in @@ -9,20 +9,16 @@ ISTEP_OUT 1 ! output cadence every year BIN_OUT bin.escape.dat PARTICLE_OUT particle.escape.dat OUT_TYPE REAL8 ! double precision real output -OUT_FORM XV ! osculating element output +OUT_FORM EL ! osculating element output OUT_STAT REPLACE ISTEP_DUMP 1 ! system dump cadence -J2 0.0 ! no J2 term -J4 0.0 ! no J4 term CHK_CLOSE yes ! check for planetary close encounters -CHK_RMIN 0.00465047 ! check for close solar encounters in AU CHK_RMAX 10000.0 ! discard outside of -CHK_EJECT -1.0 ! ignore this check -CHK_QMIN -1.0 ! ignore this check ENC_OUT enc.escape.dat +DISCARD_OUT discard.escape.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded -RHILL_PRESENT no ! Hill's sphere radii in input file +RHILL_PRESENT yes ! Hill's sphere radii in input file GMTINY 1.0e-16 FRAGMENTATION yes MU2KG 1.98908e30 diff --git a/examples/symba_energy_momentum/param.sun.in b/examples/symba_energy_momentum/param.sun.in index a7748b19c..351d8adb2 100644 --- a/examples/symba_energy_momentum/param.sun.in +++ b/examples/symba_energy_momentum/param.sun.in @@ -19,15 +19,17 @@ CHK_RMIN 0.005 CHK_RMAX 1e2 CHK_EJECT -1.0 ! ignore this check CHK_QMIN -1.0 ! ignore this check -ENC_OUT enc.escape.dat +ENC_OUT enc.sun.dat +DISCARD_OUT discard.sun.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT no ! Hill's sphere radii in input file GMTINY 1.0e-16 -FRAGMENTATION yes +FRAGMENTATION no MU2KG 1.98908e30 TU2S 3.1556925e7 DU2M 1.49598e11 ENERGY yes +ENERGY_OUT energy.sun.out ROTATION yes SEED 8 1230834 2346113 123409874 -123121105 -767545 -534058022 343309814 -12535638 From 87239f072e999abe0002b83b691e74132171c934 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 14:49:06 -0400 Subject: [PATCH 133/315] Reverted back to saving energy.dat --- examples/symba_chambers_2013/param.in | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 31ce47985..2e263e1b5 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -25,6 +25,7 @@ DU2M 1.495979e11 ! distance unit to meters (AU --> m) TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes +ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes DISCARD_OUT discard.out From eecfde4201ccecdf80de4980265fe66d77a34bdd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 16:04:15 -0400 Subject: [PATCH 134/315] Save dinon pl-pl collsion discarded bodies to pl_discards --- src/symba/symba_discard.f90 | 7 +++++++ src/symba/symba_io.f90 | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 193461bc7..acd233cba 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -179,14 +179,21 @@ subroutine symba_discard_nonplpl(pl, system, param) class(symba_pl), intent(inout) :: pl !! SyMBA test particle object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + logical, dimension(pl%nbody) :: ldiscard ! First check for collisions with the central body associate(npl => pl%nbody, cb => system%cb) if (npl == 0) return + ldiscard(1:npl) = pl%ldiscard(1:npl) ! Don't include any bodies that were previously flagged for discard in here if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then call symba_discard_cb_pl(pl, system, param) end if if (param%qmin >= 0.0_DP .and. npl > 0) call symba_discard_peri_pl(pl, system, param) + if (any(.not.ldiscard(1:npl) .and. pl%ldiscard(1:npl))) then + ldiscard(1:npl) = .not.ldiscard(1:npl) .and. pl%ldiscard(1:npl) + call system%pl_discards%append(pl, ldiscard) + end if end associate return diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 1c0981232..634eb1083 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -298,7 +298,6 @@ module subroutine symba_io_read_particle(system, param) end if end if if (.not.lmatch) then - write(*,*) 'Particle id ',id,' not found. Skipping' read(LUN, err = 667, iomsg = errmsg) tmpinfo end if end do From bf220916e9de2b47f42a091a024a33dd44015e0d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 16:08:29 -0400 Subject: [PATCH 135/315] Got rid of some old cruft and fixed formatting of param writer --- src/io/io.f90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 670d98db8..16af0ca10 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -13,7 +13,6 @@ module subroutine io_conservation_report(self, param, lterminal) logical, intent(in) :: lterminal !! Indicates whether to output information to the terminal screen ! Internals real(DP), dimension(NDIM) :: Ltot_now, Lorbit_now, Lspin_now - real(DP), dimension(NDIM), save :: Ltot_last, Lorbit_last, Lspin_last real(DP) :: ke_orbit_now, ke_spin_now, pe_now, Eorbit_now real(DP) :: Eorbit_error, Etotal_error, Ecoll_error real(DP) :: GMtot_now @@ -68,7 +67,7 @@ module subroutine io_conservation_report(self, param, lterminal) Ecoll_error = param%Ecollisions / abs(param%Eorbit_orig) Etotal_error = (Eorbit_now - param%Ecollisions - param%Eorbit_orig - param%Euntracked) / abs(param%Eorbit_orig) Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig - write(*, egytermfmt) Lerror, Ecoll_error, Etotal_error, Merror + write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror end if end associate @@ -800,7 +799,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(unit, '("LSPIN_ORIG ",3(1X,ES25.17))') param%Lspin_orig(:) write(unit, '("LESCAPE ",3(1X,ES25.17))') param%Lescape(:) - write(param_name, Afmt) "GMescape"; write(param_value, Rfmt) param%GMescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GMESCAPE"; write(param_value, Rfmt) param%GMescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if From 2a1e81dd8ae92a99b2220a6b729fecdd08d01144 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 16:32:48 -0400 Subject: [PATCH 136/315] Added module interface for orbel_xv2el in anticipation of incorporating it into the Python code --- src/modules/swiftest_classes.f90 | 13 +++++++++++++ src/orbel/orbel.f90 | 16 ++++++++++++---- src/python/orbel.f90 | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 src/python/orbel.f90 diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index f08e8eb05..1ee3bdf80 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -775,6 +775,19 @@ module pure subroutine orbel_xv2aqt(mu, x, v, a, q, capm, tperi) real(DP), intent(out) :: tperi !! time of pericenter passage end subroutine orbel_xv2aqt + module pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) + implicit none + real(DP), intent(in) :: mu !! Gravitational constant + real(DP), dimension(:), intent(in) :: x !! Position vector + real(DP), dimension(:), intent(in) :: v !! Velocity vector + real(DP), intent(out) :: a !! semimajor axis + real(DP), intent(out) :: e !! eccentricity + real(DP), intent(out) :: inc !! inclination + real(DP), intent(out) :: capom !! longitude of ascending node + real(DP), intent(out) :: omega !! argument of periapsis + real(DP), intent(out) :: capm !! mean anomaly + end subroutine orbel_xv2el + module subroutine orbel_xv2el_vec(self, cb) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object diff --git a/src/orbel/orbel.f90 b/src/orbel/orbel.f90 index f1ab88825..c07200b14 100644 --- a/src/orbel/orbel.f90 +++ b/src/orbel/orbel.f90 @@ -890,7 +890,7 @@ module subroutine orbel_xv2el_vec(self, cb) end do end subroutine orbel_xv2el_vec - pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) + module pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) !! author: David A. Minton !! !! Compute osculating orbital elements from relative Cartesian position and velocity @@ -906,9 +906,17 @@ pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) !! Adapted from David E. Kaufmann's Swifter routine: orbel_xv2el.f90 !! Adapted from Martin Duncan's Swift routine orbel_xv2el.f implicit none - real(DP), intent(in) :: mu - real(DP), dimension(:), intent(in) :: x, v - real(DP), intent(out) :: a, e, inc, capom, omega, capm + ! Arguments + real(DP), intent(in) :: mu !! Gravitational constant + real(DP), dimension(:), intent(in) :: x !! Position vector + real(DP), dimension(:), intent(in) :: v !! Velocity vector + real(DP), intent(out) :: a !! semimajor axis + real(DP), intent(out) :: e !! eccentricity + real(DP), intent(out) :: inc !! inclination + real(DP), intent(out) :: capom !! longitude of ascending node + real(DP), intent(out) :: omega !! argument of periapsis + real(DP), intent(out) :: capm !! mean anomaly + ! Internals integer(I4B) :: iorbit_type real(DP) :: r, v2, h2, h, rdotv, energy, fac, u, w, cw, sw, face, cape, tmpf, capf real(DP), dimension(NDIM) :: hvec diff --git a/src/python/orbel.f90 b/src/python/orbel.f90 new file mode 100644 index 000000000..4dd26a68d --- /dev/null +++ b/src/python/orbel.f90 @@ -0,0 +1,32 @@ +module orbel + use swiftest + private + public :: xv2el +contains + pure elemental subroutine xv2el(mu, px, py, pz, vx, vy, vz, a, e, inc, capom, omega, capm) + use module_interfaces, only : orbel_xv2el + implicit none + ! Arguments + real*8, intent(in) :: mu, px, py, pz, vx, vy, vz + real*8, intent(out) :: a, e, inc, capom, omega, capm + !$f2py intent(in) mu + !$f2py intent(in) px + !$f2py intent(in) py + !$f2py intent(in) pz + !$f2py intent(in) vx + !$f2py intent(in) vy + !$f2py intent(in) vz + !$f2py intent(out) a + !$f2py intent(out) e + !$f2py intent(out) inc + !$f2py intent(out) capom + !$f2py intent(out) omega + !$f2py intent(out) capm + ! Internals + real*8, dimension(3) :: x, v + x = [px, py, pz] + v = [vx, vy, vz] + call orbel_xv2el(x, v, mu, a, e, inc, capom, omega, capm) + return + end subroutine xv2el +end module orbel \ No newline at end of file From 64a94142874af6ced49cc3f448ea3fa7c96111ba Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 18:03:11 -0400 Subject: [PATCH 137/315] Fixed array index problem that was causing spurious mass loss --- src/symba/symba_util.f90 | 43 +++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 08b5728e8..710936001 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -417,22 +417,24 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(in) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k + integer(I4B) :: i, j, k, npl logical, dimension(:), allocatable :: lmask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter - associate(pl => self, pl_adds => system%pl_adds) + associate(pl => self, pl_adds => system%pl_adds, nadd => system%pl_adds%nbody) + npl = pl%nbody ! Deallocate any temporary variables if (allocated(pl%xbeg)) deallocate(pl%xbeg) if (allocated(pl%xend)) deallocate(pl%xend) ! Remove the discards and destroy the list, as the system already tracks pl_discards elsewhere - allocate(lmask, source=pl%ldiscard(:)) - lmask(:) = lmask(:) .or. pl%status(:) == INACTIVE + allocate(lmask(npl)) + lmask(1:npl) = pl%ldiscard(1:npl) .or. pl%status(1:npl) == INACTIVE allocate(tmp, mold=self) call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) + npl = pl%nbody call tmp%setup(0,param) deallocate(tmp) deallocate(lmask) @@ -442,39 +444,40 @@ module subroutine symba_util_rearray_pl(self, system, param) call plplenc_old%copy(system%plplenc_list) ! Add in any new bodies - if (pl_adds%nbody > 0) then + if (nadd > 0) then ! Append the adds to the main pl object - call pl%append(pl_adds, lsource_mask=[(.true., i=1, pl_adds%nbody)]) + call pl%append(pl_adds, lsource_mask=[(.true., i=1, nadd)]) + npl = pl%nbody - allocate(lmask(pl%nbody)) - lmask(:) = pl%status(1:pl%nbody) == NEW_PARTICLE + allocate(lmask(npl)) + lmask(1:npl) = pl%status(1:npl) == NEW_PARTICLE - call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, pl%nbody)], lmask)) + call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, npl)], lmask)) deallocate(lmask) end if ! Reset all of the status flags for this body - where(pl%status(1:pl%nbody) /= INACTIVE) - pl%status(1:pl%nbody) = ACTIVE - pl%ldiscard(1:pl%nbody) = .false. - pl%lcollision(1:pl%nbody) = .false. - pl%lmtiny(1:pl%nbody) = pl%Gmass(1:pl%nbody) > param%GMTINY - pl%lmask(1:pl%nbody) = .true. + where(pl%status(1:npl) /= INACTIVE) + pl%status(1:npl) = ACTIVE + pl%ldiscard(1:npl) = .false. + pl%lcollision(1:npl) = .false. + pl%lmtiny(1:npl) = pl%Gmass(1:npl) > param%GMTINY + pl%lmask(1:npl) = .true. elsewhere - pl%ldiscard(1:pl%nbody) = .true. - pl%lmask(1:pl%nbody) = .false. + pl%ldiscard(1:npl) = .true. + pl%lmask(1:npl) = .false. end where - pl%nplm = count(pl%lmtiny(1:pl%nbody) .and. pl%lmask(1:pl%nbody)) + pl%nplm = count(pl%lmtiny(1:npl) .and. pl%lmask(1:npl)) ! Reindex the new list of bodies call pl%sort("mass", ascending=.false.) call pl%eucl_index() ! Reset the kinship trackers - pl%kin(1:pl%nbody)%nchild = 0 - pl%kin(1:pl%nbody)%parent = [(i, i=1, pl%nbody)] + pl%kin(1:npl)%nchild = 0 + pl%kin(1:npl)%parent = [(i, i=1, npl)] ! Re-build the encounter list lencounter = pl%encounter_check(system, param%dt, 0) From 9e744865483a2417c5a649237b3bd9b31b2c4a34 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 18:40:09 -0400 Subject: [PATCH 138/315] Trying gfortran, as it might be faster than ifort. --- Makefile.Defines | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 7bb6ae32e..6b35a612e 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -61,17 +61,17 @@ OPTREPORT = -qopt-report=5 #gfortran flags GDEBUG = -g -Og -fbacktrace -fbounds-check GPRODUCTION = -O3 -GPAR = -fopenmp -ftree-parallelize-loops=4 +GPAR = -fopenmp #-ftree-parallelize-loops=4 GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) -FORTRAN = ifort +#FFLAGS = -init=snan,arrays -no-wrap-margin -O0 -g -traceback $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) +#FORTRAN = ifort #AR = xiar -#FORTRAN = gfortran -#FFLAGS = -ffree-line-length-none $(GPRODUCTION) $(GPAR) #$(GDEBUG) $(GMEM) +FORTRAN = gfortran +FFLAGS = -ffree-line-length-none $(GPAR) $(GPRODUCTION) #$(GMEM) AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only From 47d879cdf7ec7ee24e6f40144f98f2afb07ad937 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 19 Aug 2021 18:40:48 -0400 Subject: [PATCH 139/315] Added ability to generate orbital element input files --- python/swiftest/swiftest/io.py | 88 +++++++++++++------- python/swiftest/swiftest/simulation_class.py | 1 + 2 files changed, 61 insertions(+), 28 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 4e46ad808..e8601f133 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -762,8 +762,14 @@ def swiftest_xr2infile(ds, param, framenum=-1): else: print(i.values, pli['GMass'].values, file=plfile) print(pli['Radius'].values, file=plfile) - print(pli['px'].values, pli['py'].values, pli['pz'].values, file=plfile) - print(pli['vx'].values, pli['vy'].values, pli['vz'].values, file=plfile) + if param['IN_FORM'] == 'XV': + print(pli['px'].values, pli['py'].values, pli['pz'].values, file=plfile) + print(pli['vx'].values, pli['vy'].values, pli['vz'].values, file=plfile) + elif param['IN_FORM'] == 'EL': + print(pli['a'].values, pli['e'].values, pli['inc'].values, file=plfile) + print(pli['capom'].values, pli['omega'].values, pli['capm'].values, file=plfile) + else: + print(f"{param['IN_FORM']} is not a valid input format type.") plfile.close() # TP file @@ -772,8 +778,14 @@ def swiftest_xr2infile(ds, param, framenum=-1): for i in tp.id: tpi = tp.sel(id=i) print(i.values, file=tpfile) - print(tpi['px'].values, tpi['py'].values, tpi['pz'].values, file=tpfile) - print(tpi['vx'].values, tpi['vy'].values, tpi['vz'].values, file=tpfile) + if param['IN_FORM'] == 'XV': + print(tpi['px'].values, tpi['py'].values, tpi['pz'].values, file=tpfile) + print(tpi['vx'].values, tpi['vy'].values, tpi['vz'].values, file=tpfile) + elif param['IN_FORM'] == 'EL': + print(tpi['a'].values, tpi['e'].values, tpi['inc'].values, file=tpfile) + print(tpi['capom'].values, tpi['omega'].values, tpi['capm'].values, file=tpfile) + else: + print(f"{param['IN_FORM']} is not a valid input format type.") tpfile.close() elif param['IN_TYPE'] == 'REAL8': # Now make Swiftest files @@ -788,23 +800,33 @@ def swiftest_xr2infile(ds, param, framenum=-1): plfile = FortranFile(param['PL_IN'], 'w') npl = pl.id.count().values plid = pl.id.values - px = pl['px'].values - py = pl['py'].values - pz = pl['pz'].values - vx = pl['vx'].values - vy = pl['vy'].values - vz = pl['vz'].values + if param['IN_FORM'] == 'XV': + v1 = pl['px'].values + v2 = pl['py'].values + v3 = pl['pz'].values + v4 = pl['vx'].values + v5 = pl['vy'].values + v6 = pl['vz'].values + elif param['IN_FORM'] == 'EL': + v1 = pl['a'].values + v2 = pl['e'].values + v3 = pl['inc'].values + v4 = pl['capom'].values + v5 = pl['omega'].values + v6 = pl['capm'].values + else: + print(f"{param['IN_FORM']} is not a valid input format type.") Gmass = pl['GMass'].values radius = pl['Radius'].values plfile.write_record(npl) plfile.write_record(plid) - plfile.write_record(px) - plfile.write_record(py) - plfile.write_record(pz) - plfile.write_record(vx) - plfile.write_record(vy) - plfile.write_record(vz) + plfile.write_record(v1) + plfile.write_record(v2) + plfile.write_record(v3) + plfile.write_record(v4) + plfile.write_record(v5) + plfile.write_record(v6) plfile.write_record(Gmass) if param['RHILL_PRESENT'] == 'YES': rhill = pl['Rhill'].values @@ -814,20 +836,30 @@ def swiftest_xr2infile(ds, param, framenum=-1): tpfile = FortranFile(param['TP_IN'], 'w') ntp = tp.id.count().values tpid = tp.id.values - px = tp['px'].values - py = tp['py'].values - pz = tp['pz'].values - vx = tp['vx'].values - vy = tp['vy'].values - vz = tp['vz'].values + if param['IN_FORM'] == 'XV': + v1 = tp['px'].values + v2 = tp['py'].values + v3 = tp['pz'].values + v4 = tp['vx'].values + v5 = tp['vy'].values + v6 = tp['vz'].values + elif param['IN_FORM'] == 'EL': + v1 = tp['a'].values + v2 = tp['e'].values + v3 = tp['inc'].values + v4 = tp['capom'].values + v5 = tp['omega'].values + v6 = tp['capm'].values + else: + print(f"{param['IN_FORM']} is not a valid input format type.") tpfile.write_record(ntp) tpfile.write_record(tpid) - tpfile.write_record(px) - tpfile.write_record(py) - tpfile.write_record(pz) - tpfile.write_record(vx) - tpfile.write_record(vy) - tpfile.write_record(vz) + tpfile.write_record(v1) + tpfile.write_record(v2) + tpfile.write_record(v3) + tpfile.write_record(v4) + tpfile.write_record(v5) + tpfile.write_record(v6) else: print(f"{param['IN_TYPE']} is an unknown file type") diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index 6b737d076..c602cbe8c 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -20,6 +20,7 @@ def __init__(self, codename="Swiftest", param_file=""): 'TP_IN': "tp.in", 'CB_IN': "cb.in", 'IN_TYPE': "ASCII", + 'IN_FORM': "XV", 'ISTEP_OUT': "1", 'ISTEP_DUMP': "1", 'BIN_OUT': "bin.dat", From f9e1ebe99ed7a1bf5ad194794dd65c3f3b9cc451 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 19 Aug 2021 22:23:59 -0400 Subject: [PATCH 140/315] Set all angles in EL mode to be in degrees --- src/io/io.f90 | 15 +++++++++++---- src/modules/swiftest_globals.f90 | 3 ++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 16af0ca10..5d1aef6df 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1101,6 +1101,13 @@ module function io_read_frame_body(self, iu, param) result(ierr) end do end select + + if (param%in_form == EL) then + self%inc(1:n) = self%inc(1:n) * DEG2RAD + self%capom(1:n) = self%capom(1:n) * DEG2RAD + self%omega(1:n) = self%omega(1:n) * DEG2RAD + self%capm(1:n) = self%capm(1:n) * DEG2RAD + end if end associate ierr = 0 @@ -1482,10 +1489,10 @@ module subroutine io_write_frame_body(self, iu, param) case (EL) write(iu, err = 667, iomsg = errmsg) self%a(1:n) write(iu, err = 667, iomsg = errmsg) self%e(1:n) - write(iu, err = 667, iomsg = errmsg) self%inc(1:n) - write(iu, err = 667, iomsg = errmsg) self%capom(1:n) - write(iu, err = 667, iomsg = errmsg) self%omega(1:n) - write(iu, err = 667, iomsg = errmsg) self%capm(1:n) + write(iu, err = 667, iomsg = errmsg) self%inc(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%capom(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%omega(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%capm(1:n) * RAD2DEG case (XV) write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 17c5d9b19..ad886e4f7 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -22,7 +22,8 @@ module swiftest_globals real(DP), parameter :: PI3BY2 = 4.712388980384689857693965074919254326296_DP !! Definition of /(3 \pi / 2\) real(DP), parameter :: TWOPI = 6.283185307179586476925286766559005768394_DP !! Definition of 2 \pi real(DP), parameter :: THIRD = 0.333333333333333333333333333333333333333_DP !! Definition of 1 / 3 - real(DP), parameter :: DEGRAD = 180.0_DP/PI !! Definition of conversion factor from degrees to radians + real(DP), parameter :: DEG2RAD = PI / 180.0_DP !! Definition of conversion factor from degrees to radians + real(DP), parameter :: RAD2DEG = 180.0_DP / PI !! Definition of conversion factor from degrees to radians integer(I4B), parameter :: LOWERCASE_BEGIN = iachar('a') !! ASCII character set parameter for lower to upper conversion - start of lowercase integer(I4B), parameter :: LOWERCASE_END = iachar('z') !! ASCII character set parameter for lower to upper conversion - end of lowercase From 5365d6efa38684fd6773414c7e698976ee35e4c2 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 19 Aug 2021 22:27:54 -0400 Subject: [PATCH 141/315] Switched to using degrees for orbital element angles --- python/swiftest/swiftest/init_cond.py | 16 ++++++++-------- python/swiftest/swiftest/tool.py | 12 +++--------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index f9a7378c0..17eb90d87 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -174,17 +174,17 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): p6.append(pldata[key].vectors()['vz'][0] * VCONV) p7.append(pldata[key].elements()['a'][0] * DCONV) p8.append(pldata[key].elements()['e'][0]) - p9.append(pldata[key].elements()['incl'][0] * np.pi / 180.0) - p10.append(pldata[key].elements()['Omega'][0] * np.pi / 180.0) - p11.append(pldata[key].elements()['w'][0] * np.pi / 180.0) - p12.append(pldata[key].elements()['M'][0] * np.pi / 180.0) + p9.append(pldata[key].elements()['incl'][0]) + p10.append(pldata[key].elements()['Omega'][0]) + p11.append(pldata[key].elements()['w'][0]) + p12.append(pldata[key].elements()['M'][0]) elif param['OUT_FORM'] == 'EL': p1.append(pldata[key].elements()['a'][0] * DCONV) p2.append(pldata[key].elements()['e'][0]) - p3.append(pldata[key].elements()['incl'][0] * np.pi / 180.0) - p4.append(pldata[key].elements()['Omega'][0] * np.pi / 180.0) - p5.append(pldata[key].elements()['w'][0] * np.pi / 180.0) - p6.append(pldata[key].elements()['M'][0] * np.pi / 180.0) + p3.append(pldata[key].elements()['incl'][0]) + p4.append(pldata[key].elements()['Omega'][0]) + p5.append(pldata[key].elements()['w'][0]) + p6.append(pldata[key].elements()['M'][0]) p7.append(pldata[key].vectors()['x'][0] * DCONV) p8.append(pldata[key].vectors()['y'][0] * DCONV) p9.append(pldata[key].vectors()['z'][0] * DCONV) diff --git a/python/swiftest/swiftest/tool.py b/python/swiftest/swiftest/tool.py index a96610bc2..37e1c6ba9 100644 --- a/python/swiftest/swiftest/tool.py +++ b/python/swiftest/swiftest/tool.py @@ -8,10 +8,10 @@ """ def wrap_angle(angle): - while np.any(angle >= 2 * np.pi): - angle[angle >= 2 * np.pi] -= 2 * np.pi + while np.any(angle >= 360.0 ): + angle[angle >= 360.0] -= 360.0 while np.any(angle < 0.0): - angle[angle < 0.0] += 2 * np.pi + angle[angle < 0.0] += 360.0 return angle def follow_swift(ds, ifol=None, nskp=None): @@ -50,15 +50,9 @@ def follow_swift(ds, ifol=None, nskp=None): intxt = input('Input the print frequency\n') nskp = int(intxt) - dr = 180.0 / np.pi fol['obar'] = fol['capom'] + fol['omega'] fol['obar'] = fol['obar'].fillna(0) fol['obar'] = wrap_angle(fol['obar']) - fol['obar'] = fol['obar'] * dr - fol['inc'] = fol['inc'] * dr - fol['capom'] = fol['capom'] * dr - fol['omega'] = fol['omega'] * dr - fol['capm'] = fol['capm'] * dr fol['peri'] = fol['a'] * (1.0 - fol['e']) fol['apo'] = fol['a'] * (1.0 + fol['e']) From 728cacf690dcb796154fcaf31c5b43aa2e14ff6e Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 00:22:46 -0400 Subject: [PATCH 142/315] Fixed issues reading in orbital element initial conditions --- examples/in_form_el/cb.in | 5 +++ examples/in_form_el/param.in | 35 +++++++++++++++++ examples/in_form_el/pl.in | 33 ++++++++++++++++ examples/in_form_el/tp.in | 76 ++++++++++++++++++++++++++++++++++++ src/io/io.f90 | 5 --- src/setup/setup.f90 | 4 ++ 6 files changed, 153 insertions(+), 5 deletions(-) create mode 100644 examples/in_form_el/cb.in create mode 100644 examples/in_form_el/param.in create mode 100644 examples/in_form_el/pl.in create mode 100644 examples/in_form_el/tp.in diff --git a/examples/in_form_el/cb.in b/examples/in_form_el/cb.in new file mode 100644 index 000000000..673a79459 --- /dev/null +++ b/examples/in_form_el/cb.in @@ -0,0 +1,5 @@ +0 +0.0002959122081920778 +0.004650467260962157 +4.7535806948127355e-12 +-2.2473967953572827e-18 diff --git a/examples/in_form_el/param.in b/examples/in_form_el/param.in new file mode 100644 index 000000000..409cd2d2b --- /dev/null +++ b/examples/in_form_el/param.in @@ -0,0 +1,35 @@ +! VERSION Swiftest parameter input from file param.in +T0 0.0 +TSTOP 365250000000.0 +DT 5.0 +ISTEP_OUT 7305000 +ISTEP_DUMP 7305000 +OUT_FORM EL +OUT_TYPE REAL8 +OUT_STAT REPLACE +IN_TYPE ASCII +PL_IN pl.in +TP_IN tp.in +CB_IN cb.in +BIN_OUT bin.dat +CHK_QMIN 0.004650467260962157 +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +MU2KG 1.988409870698051e+30 +TU2S 86400.0 +DU2M 149597870700.0 +IN_FORM EL +ENC_OUT enc.dat +EXTRA_FORCE NO +DISCARD_OUT discard.out +BIG_DISCARD NO +CHK_CLOSE YES +RHILL_PRESENT YES +FRAGMENTATION NO +ROTATION NO +TIDES NO +ENERGY NO +GR YES diff --git a/examples/in_form_el/pl.in b/examples/in_form_el/pl.in new file mode 100644 index 000000000..55748b408 --- /dev/null +++ b/examples/in_form_el/pl.in @@ -0,0 +1,33 @@ +8 +1 4.9125474498983625e-11 0.0014751256791533402 +1.6306381826061646e-05 +0.38710383731080894 0.24071190040066506 8.640070276952633 +30.683987164281632 57.949871930463694 151.08868778597147 +2 7.243452483873647e-10 0.0067591154147628296 +4.0453784346544176e-05 +0.7233315774753523 0.02498272794314777 2.4772002857938187 +125.76075677093282 6.742571718202682 350.2972657114627 +3 8.997011382166019e-10 0.010044745408888887 +4.25875607065041e-05 +0.9999904186618421 0.05232751342856539 2.0722848768764717 +113.84624589363827 312.12453079628943 148.9860363695549 +4 9.549535102761465e-11 0.007246758104365299 +2.2657408050928896e-05 +1.5236293140305446 0.005382832120155795 4.468216946001687 +325.6098790099478 152.40711385323957 110.04936074450407 +5 2.825345908631355e-07 0.3552714410085414 +0.0004673261703049093 +5.203095539549931 0.03063821583296288 1.3661365597246853 +113.82182400586191 303.52091573107697 96.03226696213453 +6 8.459715183006416e-08 0.43765112940564116 +0.00038925687730393614 +9.579329287028964 0.08182512713593486 2.54624964218005 +100.32672664745415 306.8523855342038 64.14978871000847 +7 1.2920249163736674e-08 0.4695173932519177 +0.00016953449859497232 +19.185526866180975 0.02725895554029442 0.6468816262831063 +75.84341829565291 203.1828812930829 337.91763726094723 +8 1.5243589003230834e-08 0.7812638143548571 +0.00016458790412449367 +30.033406636357004 0.014808837377897958 1.0172902231424474 +112.31047122167676 61.6982073585126 219.66063286932612 diff --git a/examples/in_form_el/tp.in b/examples/in_form_el/tp.in new file mode 100644 index 000000000..48e97fb82 --- /dev/null +++ b/examples/in_form_el/tp.in @@ -0,0 +1,76 @@ +25 +1030101 +1.9298376430729873 0.012639757841142886 24.991702977377773 +341.74785371597466 248.1210122966632 133.62225322652563 +1030102 +1.9576788467130908 0.027970945719088838 25.55968189226752 +168.9126943096874 174.5978360268346 251.14179333855816 +1030103 +1.967626111006107 0.09226955476091864 1.5279774530000956 +343.6507149897438 15.943105536008861 203.03043240705532 +1030104 +1.9481905063928624 0.0011928078627614026 13.712706682327513 +65.70102045298484 272.5349689212673 248.3878548054673 +1030105 +1.9770133412534745 0.07760502570359305 21.113956523745326 +352.7420976555242 265.31463697173825 90.20915048805514 +1030106 +1.9218154288668319 0.024539743705313734 6.3122997131518 +96.26526838131817 245.40058043017729 203.1458881543752 +1030107 +1.8804043534140047 0.051960914508786316 5.641080857843637 +135.37074231372475 310.57579433118855 92.01889766237802 +1030108 +1.905574620628057 0.0094526649542939 27.795518144975087 +257.055868633706 262.18164024081847 174.33454380356292 +1030109 +1.9610371451706512 0.0642394856575368 11.238178270217231 +155.06613544539204 179.7982091248266 227.65351567825778 +1030110 +1.8442099887042422 0.06774466132861966 7.7755827872476635 +53.89722157548661 231.27772356054047 224.74925586092095 +1030111 +1.918614204096997 0.09311188233380624 22.656238093717935 +8.91787503082778 121.09392635435141 61.064615587866086 +1030112 +1.846083421031052 0.058817512099736215 23.17733139808657 +204.2210767808533 325.0096873835248 80.8104389106319 +1030113 +1.877211316979287 0.09545803603787674 22.75125883423326 +338.55088656488704 260.97440743659024 358.27993618149003 +1030114 +1.847699999560908 0.04422349734135026 24.400107433270254 +175.41066398268853 271.9213024922804 40.10860995923193 +1030115 +1.9693855972875431 0.01087613268562867 18.3688586644925 +288.07225817085316 351.2861239674453 138.17614312177193 +1030116 +1.8499142747340205 0.05785154439430367 18.680424125046468 +170.34777680935684 121.2501486818594 116.63207933400314 +1030117 +1.8484833703421926 0.027361686628703055 12.35340287511839 +77.72361263316543 170.96254103643864 153.80655599509745 +1030118 +1.8844066519945433 0.012253504795668403 28.11812027401767 +5.816089316051807 234.40531004184038 284.0432510837761 +1030119 +1.8321110668963587 0.05520820027904241 4.246848772229706 +195.98962278787414 196.26877791689589 296.01468603344676 +1030120 +1.9298252957677076 0.04051603959563857 11.38835718089586 +14.020062127093711 350.7131191785245 61.91415736777295 +1030121 +1.8296584872076656 0.02265081514507832 19.242848763922552 +170.21169721403766 255.88594273947075 131.4644380844818 +1030122 +1.8699958208259342 0.08248881864547655 6.775274873263883 +131.47697608382563 36.70815817760613 166.48187957273242 +1030123 +1.8427387543178881 0.07305783679736073 5.034586865380743 +311.1450141807796 214.40263993828856 332.6408661254218 +1030124 +1.8567511528637752 0.014548178017731906 8.946207161705699 +27.813385444122652 111.5675183218652 201.4816583454089 +1030125 +1.8846946839402372 0.06619567127431686 13.271555732235106 +271.1533808977903 174.59924852630596 257.0822687250529 diff --git a/src/io/io.f90 b/src/io/io.f90 index 5d1aef6df..67d4665ab 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1212,11 +1212,6 @@ module function io_read_frame_system(self, iu, param) result(ierr) goto 667 end if - if (param%in_form == EL) then - call self%pl%el2xv(self%cb) - call self%tp%el2xv(self%cb) - end if - return 667 continue diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 0a2664feb..049a0acf3 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -141,6 +141,10 @@ module subroutine setup_initialize_system(self, param) call self%set_msys() call self%pl%set_mu(self%cb) call self%tp%set_mu(self%cb) + if (param%in_form == EL) then + call self%pl%el2xv(self%cb) + call self%tp%el2xv(self%cb) + end if call self%pl%eucl_index() if (.not.param%lrhill_present) call self%pl%set_rhill(self%cb) self%pl%lfirst = param%lfirstkick From 5439a697f60b6cd3ea266e4eb5326f82b25f345d Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 20 Aug 2021 08:08:21 -0400 Subject: [PATCH 143/315] Updated animation scripts --- examples/symba_chambers_2013/aescattermovie.py | 17 +++++++++-------- examples/symba_clement_2018/aescattermovie.py | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index 195720404..c37affa0a 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -5,19 +5,21 @@ from matplotlib import animation import matplotlib.colors as mcolors -radscale = 50 +titletext = "Chambers (2013)" +radscale = 2000 AU = 1.0 xmin = 0.0 xmax = 2.00 ymin = 1e-4 ymax = 1.0 +framejump = 10 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" def __init__(self, ds, param): frame = 0 - nframes = ds['time'].size + nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param self.ds['radmarker'] = self.ds['Radius'].fillna(0) @@ -28,8 +30,8 @@ def __init__(self, ds, param): 'Supercatastrophic' : 'xkcd:shocking pink', 'Hit and run fragment' : 'xkcd:baby poop green'} - self.stream = self.data_stream(frame) # Setup the figure and axes... + #self.stream = self.data_stream(0) fig = plt.figure(figsize=(8,4.5), dpi=300) plt.tight_layout(pad=0) # set up the figure @@ -63,7 +65,7 @@ def setup_plot(self): self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, ha="center") - self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + self.title.set_text(f"{titletext} - Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") slist = self.scatters(pl, radmarker, origin) self.s0 = slist[0] self.s1 = slist[1] @@ -74,7 +76,7 @@ def setup_plot(self): def data_stream(self, frame=0): while True: - d = self.ds.isel(time=frame) + d = self.ds.isel(time = frame) d = d.where(np.invert(np.isnan(d['a'])), drop=True) Radius = d['radmarker'].values GMass = d['GMass'].values @@ -87,14 +89,13 @@ def data_stream(self, frame=0): t = self.ds.coords['time'].values[frame] - frame += 1 yield t, name, GMass, Radius, npl, np.c_[a, e], radmarker, origin def update(self,frame): """Update the scatter plot.""" - t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(framejump * frame)) - self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + self.title.set_text(f"{titletext} - Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") # We need to return the updated artist for FuncAnimation to draw.. # Note that it expects a sequence of artists, thus the trailing comma. diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py index 195720404..2a59fb8a2 100755 --- a/examples/symba_clement_2018/aescattermovie.py +++ b/examples/symba_clement_2018/aescattermovie.py @@ -5,19 +5,21 @@ from matplotlib import animation import matplotlib.colors as mcolors -radscale = 50 +titletext = "Clement et al. (2018)" +radscale = 2000 AU = 1.0 xmin = 0.0 xmax = 2.00 ymin = 1e-4 ymax = 1.0 +framejump = 1 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" def __init__(self, ds, param): frame = 0 - nframes = ds['time'].size + nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param self.ds['radmarker'] = self.ds['Radius'].fillna(0) @@ -28,8 +30,8 @@ def __init__(self, ds, param): 'Supercatastrophic' : 'xkcd:shocking pink', 'Hit and run fragment' : 'xkcd:baby poop green'} - self.stream = self.data_stream(frame) # Setup the figure and axes... + #self.stream = self.data_stream(0) fig = plt.figure(figsize=(8,4.5), dpi=300) plt.tight_layout(pad=0) # set up the figure @@ -63,7 +65,7 @@ def setup_plot(self): self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, ha="center") - self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + self.title.set_text(f"{titletext} - Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") slist = self.scatters(pl, radmarker, origin) self.s0 = slist[0] self.s1 = slist[1] @@ -74,7 +76,7 @@ def setup_plot(self): def data_stream(self, frame=0): while True: - d = self.ds.isel(time=frame) + d = self.ds.isel(time = frame) d = d.where(np.invert(np.isnan(d['a'])), drop=True) Radius = d['radmarker'].values GMass = d['GMass'].values @@ -87,14 +89,13 @@ def data_stream(self, frame=0): t = self.ds.coords['time'].values[frame] - frame += 1 yield t, name, GMass, Radius, npl, np.c_[a, e], radmarker, origin def update(self,frame): """Update the scatter plot.""" - t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(framejump * frame)) - self.title.set_text(f"Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") + self.title.set_text(f"{titletext} - Time = ${t*1e-6:6.3f}$ My with ${npl:4.0f}$ particles") # We need to return the updated artist for FuncAnimation to draw.. # Note that it expects a sequence of artists, thus the trailing comma. From b1f15a5c62410041826ddb49174fbcd4fda4c340 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 20 Aug 2021 08:23:50 -0400 Subject: [PATCH 144/315] Updated example files and scripts to match what I'm currently running on the cluster --- examples/symba_chambers_2013/aescattermovie.py | 1 - examples/symba_chambers_2013/param.in | 4 ++-- examples/symba_clement_2018/aescattermovie.py | 1 - examples/symba_clement_2018/param.in | 5 ++--- examples/symba_mars_disk/aescattermovie.py | 11 ++++++----- examples/symba_mars_disk/param.in | 7 ++++--- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index c37affa0a..ed1dc4bdc 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -31,7 +31,6 @@ def __init__(self, ds, param): 'Hit and run fragment' : 'xkcd:baby poop green'} # Setup the figure and axes... - #self.stream = self.data_stream(0) fig = plt.figure(figsize=(8,4.5), dpi=300) plt.tight_layout(pad=0) # set up the figure diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 2e263e1b5..bf59cfb97 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -8,8 +8,8 @@ CB_IN sun_MsunAUYR.in PL_IN pl_chambers_2013.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 625 ! output cadence -ISTEP_DUMP 625 ! system dump cadence +ISTEP_OUT 6250 ! output cadence +ISTEP_DUMP 6250 ! system dump cadence BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 ! double precision real output diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py index 2a59fb8a2..b0d5eef0e 100755 --- a/examples/symba_clement_2018/aescattermovie.py +++ b/examples/symba_clement_2018/aescattermovie.py @@ -31,7 +31,6 @@ def __init__(self, ds, param): 'Hit and run fragment' : 'xkcd:baby poop green'} # Setup the figure and axes... - #self.stream = self.data_stream(0) fig = plt.figure(figsize=(8,4.5), dpi=300) plt.tight_layout(pad=0) # set up the figure diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index f4c163875..86c852f45 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -19,15 +19,14 @@ CHK_CLOSE yes ! check for planetary close encounters CHK_RMAX 100000.0 ! discard outside of EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded -DISCARD_OUT discard.out RHILL_PRESENT yes ! Hill's sphere radii in input file MU2KG 1.98847e30 ! (M_sun-> kg) DU2M 1.495979e11 ! distance unit to meters (AU --> m) TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) GMTINY 1e-10 ENERGY yes -ENERGY_OUT energy.dat -ENERGY_OUT energy.dat ROTATION yes FRAGMENTATION yes +DISCARD_OUT discard.out SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 +ENERGY_OUT energy.out diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index e490da45c..46fec5f09 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -5,12 +5,14 @@ from matplotlib import animation import matplotlib.colors as mcolors -radscale = 50 +titletext = "High M - High e" +radscale = 1000 RMars = 3389500.0 xmin = 1.0 xmax = 10.0 ymin = 1e-6 ymax = 1.0 +framejump = 1 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" @@ -28,7 +30,6 @@ def __init__(self, ds, param): 'Supercatastrophic' : 'xkcd:shocking pink', 'Hit and run fragment' : 'xkcd:baby poop green'} - self.stream = self.data_stream(frame) # Setup the figure and axes... fig = plt.figure(figsize=(8,4.5), dpi=300) plt.tight_layout(pad=0) @@ -63,7 +64,7 @@ def setup_plot(self): self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, ha="center") - self.title.set_text(f'Time = ${t / 24 / 3600:4.1f}$ days with ${npl:f}$ particles') + self.title.set_text(f"{titletext} - Time = ${t / 24 / 3600:4.1f}$ days with ${npl:f}$ particles") slist = self.scatters(pl, radmarker, origin) self.s0 = slist[0] self.s1 = slist[1] @@ -92,9 +93,9 @@ def data_stream(self, frame=0): def update(self,frame): """Update the scatter plot.""" - t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(frame)) + t, name, GMass, Radius, npl, pl, radmarker, origin = next(self.data_stream(framejump * frame)) - self.title.set_text(f'Time = ${t / 24 / 3600:4.1f}$ days with ${npl:4.0f}$ particles') + self.title.set_text(f"{titletext} - Time = ${t / 24 / 3600:4.1f}$ days with ${npl:4.0f}$ particles") # We need to return the updated artist for FuncAnimation to draw.. # Note that it expects a sequence of artists, thus the trailing comma. diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index e28e08370..f5760d345 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,13 +1,13 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 6000000.0 +TSTOP 100000000.0 DT 600.0 CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 1 -ISTEP_DUMP 1 +ISTEP_OUT 100 +ISTEP_DUMP 100 BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 @@ -32,3 +32,4 @@ DU2M 1.0 TU2S 1.0 SEED 2 3080983 2220830 DISCARD_OUT discard.out +ENERGY_OUT energy.out From 5e80def9e21bb259b4d9338949c8f3a393117d9c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 09:52:27 -0400 Subject: [PATCH 145/315] Restructured code so that the eucl method falls under util and is now accessed using %index. Now include sorting in that so that pl arrays are always sorted prior to indexing, rather than remembering to do it each time. --- Makefile | 6 - .../swiftest_vs_swifter.ipynb | 4 +- .../8pl_16tp_encounters/param.swifter.in | 6 +- .../8pl_16tp_encounters/param.swiftest.in | 6 +- .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 84 +- examples/symba_chambers_2013/.gitignore | 1 + .../symba_chambers_2013/savestate2/param.in | 32 + .../savestate2/pl_chambers_2013.in | 937 +++++++++++ .../savestate2/sun_MsunAUYR.in | 7 + examples/symba_chambers_2013/savestate2/tp.in | 1 + .../swiftest_vs_swifter.ipynb | 1440 +---------------- .../swiftest_symba_vs_swifter_symba.ipynb | 32 +- .../mars_disk/param.swifter.in | 2 +- .../mars_disk/param.swiftest.in | 4 +- .../mars_disk/swiftest_vs_swifter.ipynb | 451 +++++- src/fragmentation/fragmentation.f90 | 33 +- src/helio/helio_util.f90 | 21 + src/modules/helio_classes.f90 | 7 + src/modules/swiftest_classes.f90 | 7 +- src/modules/symba_classes.f90 | 7 + src/modules/whm_classes.f90 | 8 + src/{python => python_bindings}/orbel.f90 | 4 +- src/setup/setup.f90 | 2 +- src/symba/symba_collision.f90 | 1 - src/symba/symba_setup.f90 | 20 +- src/symba/symba_util.f90 | 54 +- src/{eucl/eucl.f90 => util/util_index.f90} | 13 +- src/util/util_resize.f90 | 1 - src/util/util_spill.f90 | 4 + src/whm/whm_setup.f90 | 1 - src/whm/whm_util.f90 | 16 + 31 files changed, 1627 insertions(+), 1585 deletions(-) create mode 100644 examples/symba_chambers_2013/.gitignore create mode 100644 examples/symba_chambers_2013/savestate2/param.in create mode 100644 examples/symba_chambers_2013/savestate2/pl_chambers_2013.in create mode 100644 examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in create mode 100644 examples/symba_chambers_2013/savestate2/tp.in create mode 100644 src/helio/helio_util.f90 rename src/{python => python_bindings}/orbel.f90 (87%) rename src/{eucl/eucl.f90 => util/util_index.f90} (73%) diff --git a/Makefile b/Makefile index 94dfbceeb..374174b6d 100644 --- a/Makefile +++ b/Makefile @@ -91,11 +91,6 @@ lib: ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \ ln -s $(SWIFTEST_HOME)/Makefile .; \ make libdir - cd $(SWIFTEST_HOME)/src/eucl; \ - rm -f Makefile.Defines Makefile; \ - ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \ - ln -s $(SWIFTEST_HOME)/Makefile .; \ - make libdir cd $(SWIFTEST_HOME)/src/fragmentation; \ rm -f Makefile.Defines Makefile; \ ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \ @@ -193,7 +188,6 @@ clean: cd $(SWIFTEST_HOME)/src/modules; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/discard; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/drift; rm -f Makefile.Defines Makefile *.gc* - cd $(SWIFTEST_HOME)/src/eucl; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/fragmentation; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/gr; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/helio; rm -f Makefile.Defines Makefile *.gc* diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb index 20122244c..aa7e8e5e3 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb @@ -81,8 +81,8 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, "execution_count": 6, diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in index 741d5ac99..acd0bd0ce 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swifter.in @@ -1,9 +1,9 @@ ! VERSION Swifter parameter file converted from Swiftest T0 0.0 -TSTOP 36525.0 +TSTOP 9500.0 DT 1.0 -ISTEP_OUT 10 -ISTEP_DUMP 10 +ISTEP_OUT 100 +ISTEP_DUMP 100 OUT_FORM XV OUT_TYPE REAL8 OUT_STAT UNKNOWN diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in index 633613b13..f924ebb95 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/param.swiftest.in @@ -1,9 +1,9 @@ ! VERSION Swiftest parameter input T0 0.0 -TSTOP 36525.0 +TSTOP 9500.0 DT 1.0 -ISTEP_OUT 10 -ISTEP_DUMP 10 +ISTEP_OUT 100 +ISTEP_DUMP 100 OUT_FORM XV OUT_TYPE REAL8 OUT_STAT UNKNOWN diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb index 86a6d8098..382459e3b 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -21,9 +21,9 @@ "output_type": "stream", "text": [ "Reading Swifter file param.swifter.in\n", - "Reading in time 3.650e+03\n", + "Reading in time 9.500e+03\n", "Creating Dataset\n", - "Successfully converted 366 output frames.\n", + "Successfully converted 96 output frames.\n", "Swifter simulation data stored as xarray DataSet .ds\n" ] } @@ -45,9 +45,9 @@ "output_type": "stream", "text": [ "Reading Swiftest file param.swiftest.in\n", - "Reading in time 3.650e+03\n", + "Reading in time 9.500e+03\n", "Creating Dataset\n", - "Successfully converted 366 output frames.\n", + "Successfully converted 96 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] } @@ -104,7 +104,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAElCAYAAADDUxRwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAlIElEQVR4nO3de5xVdb3/8ddbLqKCkgIKDAgiCoiKQOAt8hIcMAvFyxG11Cyyo6XHPER5foX1K81+qXi0zDSvHcljmah4BT0aaoKKCeIkgslwUUSRm8jFz++PtbDtuGdmz95rbu738/HYj1mX7/quz3fNnv2Z71prf5ciAjMzs1Jt19QBmJnZp4MTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQLHOSJku6PZ3uKWmdpFZNHVdtJH1OUmVTxwF1x9KYx1TS45K+nk6fJunhnHWHSXo1jeU4SbtLekLSWkm/bOjYrPlxQrFPkPS6pC9UW3ampL/Ut66IeCMi2kfE1uwirB9JIWnv2spExJMRsW9jxVSb6rFU/3001TGNiN9HxKicRT8Grklj+TMwAXgb2DkivtuYsVnz4IRiZU9S66aOoYXaE5hfbf7lKOLb0v4dfDo4oVhRJHWT9EdJKyUtlvSdGsr1SnsIrXO2mybpHUkLJX0jp2wrST+Q9Fp62uQ5ST3Sdf0kPZJuVynp5JztbpZ0raT70+3+KqlPuu6JtNiL6amZf5V0hKQqSd+TtAK4aduynDp7SPpT2r5Vkq6poX2TJd0l6Q/pvp+XdGDO+v7paaPVkuZL+nLOumMkvZxut1TSRenyj2KRdBvQE7g3jX9iPY/pZEl3Sro13c98SUNr+b2OlPSKpPfSNitn3Ue9VEmvAXvlxHUHcAYwMZ3/gqTtJE1Kf5+r0jh2rfa+OFvSG8DMdPnXJC2Q9K6khyTtmbP/kHROeprt3fR3nhvfN9Jt16bHdXDO8cn7XpU0TNIcSWskvSnpipqOjRUgIvzy62Mv4HXgC9WWnQn8JZ3eDngO+CHQluSDZRHwL+n6ycDt6XQvIIDW6fz/Ar8C2gGDgJXA0em6/wBeAvYl+SA7ENgN2AlYApwFtAYGk5xa2S/d7mbgHWBYuv73wNSc2APYO2f+CGAL8HNge2CHdFlVur4V8CJwZbrvdsDhNRyrycBm4ESgDXARsDidbgMsBH6QHqejgLXAvum2y4HPpdOfAQbnxFdV0++jnsd0MrAROCZt16XAMzW0pROwJqct/54ep69Xfw/UENfNwP/Nmb8AeAaoSI/zb4A7qrXh1vQY7wAclx6v/unv8T+Bp6r9Hu8DOpIk2ZXA6HTdScBS4LMk7529SXpMdb1Xnwa+kk63Bw5u6r+/lvxq8gD8an6v9INiHbA657WBfyaU4cAb1bb5PnBTOj2ZPAkF6AFsBTrkbHcpcHM6XQmMzRPPvwJPVlv2G+BH6fTNwA05644BXsmZz5dQNgHtqi3bllAOST+sWhdwrCaT8wGdfoAtBz6XvlYA2+WsvwOYnE6/AXyT5JoD+WLJ+X3kTSgFHNPJwKM56wYA79fQlq9Wa4uAKopPKAtIE1s635Uk+bbOacNeOesfAM6udiw3AHvm/B4Pz1l/JzApnX4IOD9Pm+p6rz4BXAJ0auq/u0/Dy6e8rCbHRUTHbS/g33LW7Ql0S0/jrJa0muS/8N3rqLMb8E5ErM1Z9g+gezrdA3gtz3Z7AsOr7e80YI+cMitypjeQ/LdZm5URsbGGdT2Af0TEljrq2GbJtomI+JDkQ7hb+lqSLtsmt70nkCS/f0j6X0mHFLi/XHUdU/jksWmn/NcsulVrS+TOF2FP4O6c39kCkuSX+z5ZUq38lJzy75Aktdrasu33XNt7p7b36tnAPsArkmZLOrberbSP+EKYFWMJsDgi+tZzu2XArpI65HwA9iQ5VbGt3j7AvDz7+9+IGFlswHnUduF4CdBTUusCk0qPbROStiM5xbNs2zpJ2+UklZ7A3wEiYjYwVlIb4DyS/7g/qqvAWOs6pvWxvFpbVEM8hVoCfC0iZlVfIalXOhnVyv80In5f5L761LC8xvdqRLwKjE9/b+OAuyTtFhHri4ih7LmHYsV4FliTXtTeQcnF9IGSPlvbRhGxBHgKuFRSO0kHkPyHuO0D5AbgJ5L6KnGApN1IzpvvI+krktqkr89K6l9gvG+SnDuvT/uWA5dJ2imN9bBayg+RNC79r/8C4AOSawd/BdaTXKhuI+kI4EvAVEltlXyvY5eI2Exy7aKm24BrjL+AY1of9wP75bTlO3y8F1hf1wE/3XZhXVJnSWPrKP99Sful5XeRdFKB+7oBuEjSkPS9s3e631rfq5JOl9Q5Tfir07qa7Bb3ls4Jxeotku8/fInkAvBikgvkNwC7FLD5eJLz58uAu0mugzySrruC5L/0h0k+YG8Edkj/8x4FnJJut4J/XlAvxGTglvSUx8l1Fc5p394k1zmqSK7j1OSedP27wFeAcRGxOSI2AV8GxpAco18BX42IV9LtvgK8LmkNcA5weg31Xwr8Zxr/RXnW13ZMCxYRb5Nc3L4MWAX0BT7Ru6iHKcA04GFJa0mS7PBa9n83ye91anpM5pEcu0Ji/x/gp8B/k9z48Gdg1wLeq6OB+ZLWpfGeUsupUKuD0gtTZlYESZNJLvjXlAzMyoZ7KGZmlgknFDMzy4RPeZmZWSbcQzEzs0w4oZjVg/KMxPxpoWpjhJnVlxOKWTXph+p6JYMcLpV0hRr5eS4qYMh9s+bGCcUsvwMjoj1wNHAq8I06ypuVPScUs1qkX0J8EhhYfV069PnT6RcOl0u6RlLbnPV1Dbeed6h25R9yv5Ok+9J9vSPpyXS4kE+QdGg6LtV76c9Dc9Y9LuknkmYpGeb9YUmd8tRxkqTnqi37rqQ/1+8IWjlxQjGrhaQBJKMGv5Bn9VaSId47kYxQfDQfH0QT4FiSIdUPBE4G/iWt9ziSQQrHAZ1JktYdABExIt32wEiehvgH4Lsk39jvTDKw4Q/IM8aXkueN3A9cTTL0/xXA/ekQNtucSvIogC4kQ7rn+/b9NKB3teFtTgduy1PWDHBCMavJ85LeBe4lGarjpuoFIuK5iHgmIrZExOskQ+p/vlqxyyJidUS8ATxGMgQIJMPWXxoRC9IBKH8GDFLOA6Wq2Uwy/Pue6bAuT0b+e/6/CLwaEbelcd0BvEIy/Mg2N0XE3yPifZKhbgZVryQiPgD+QDocTDq+Vi+ScdXM8nJCMctvcER8JiL6RMR/VhuCHgBJ+6SnoVakY0/9jKS3kqum4dYLGao91y9IHj71sKRFkibVUK4byfD1ueoazr6mof5vAU5NT9N9BbgzTTRmeTmhmBXv1yT//feNiJ1JTkOp9k0+sgT4Zu4zZyJih4h4Kl/hiFgbEd+NiL1IehsXSjo6T9FlJMkqV1HD2UfEMyQPIvscyWkyn+6yWjmhmBWvA8moyOsk9QO+VY9t6xqq/WND1ks6Nh2SXfxzqPt8w6xPJxnq/1RJrSX9K8lTGos9VXUrcA2wJSL+UmQdViacUMyKdxHJf+5rgd+SXHMoSAFDtU/m40Pu9wUeJXk089PAryLi8Tz1riK5EeC7JEPQTwSOTYemL8ZtJHe4uXdidfJYXmZWI0k7AG+RXFN6tanjsebNPRQzq823gNlOJlYIj9ljZnlJep3kJoPjmjYSayl8ysvMzDLhU15mZpaJsj7l1alTp+jVq1dTh2Fm1qI899xzb0dE5+rLyzqh9OrVizlz5jR1GGZmLYqk6qMxAD7lZWZmGXFCMTOzTDihmJlZJsr6GoqZWVPYvHkzVVVVbNy4salDqVW7du2oqKigTZs2BZV3QjEza2RVVVV06NCBXr16kfMQz2YlIli1ahVVVVX07t27oG18ysvMrJFt3LiR3XbbrdkmEwBJ7LbbbvXqRTmhmJk1geacTLapb4xOKGZmlgknFDOzFurQQw/Nu/zMM8/krrvuauRonFDMzFqsp57K+8ToJuO7vMzMWqj27duzbt06IoJvf/vbzJw5k969e9NUo8i7h2Jm1sLdfffdVFZW8tJLL/Hb3/62yXouTihmZi3cE088wfjx42nVqhXdunXjqKOOapI4nFDMzD4FmsNtyE4oZmYt3IgRI5g6dSpbt25l+fLlPPbYY00Shy/Km5m1cMcffzwzZ85k//33Z5999uHzn/98k8ThhGJm1kKtW7cOSE53XXPNNU0cjU95mZlZRpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiZlamvva1r9GlSxcGDhyYSX1OKGZmZerMM8/kwQcfzKy+ZpVQJI2WVClpoaRJedZL0tXp+r9JGlxtfStJL0i6r/GiNjNrmUaMGMGuu+6aWX3N5pvykloB1wIjgSpgtqRpEfFyTrExQN/0NRz4dfpzm/OBBcDOjRK0mVmJLrl3Pi8vW5NpnQO67cyPvrRfpnUWojn1UIYBCyNiUURsAqYCY6uVGQvcGolngI6SugJIqgC+CNzQmEGbmVmi2fRQgO7Akpz5Kj7e+6ipTHdgOXAVMBHoUNtOJE0AJgD07NmzpIDNzErVFD2JhtKceij5BvOv/hzLvGUkHQu8FRHP1bWTiLg+IoZGxNDOnTsXE6eZmeXRnBJKFdAjZ74CWFZgmcOAL0t6neRU2VGSbm+4UM3MWr7x48dzyCGHUFlZSUVFBTfeeGNJ9TWnU16zgb6SegNLgVOAU6uVmQacJ2kqyemw9yJiOfD99IWkI4CLIuL0RorbzKxFuuOOOzKtr9kklIjYIuk84CGgFfC7iJgv6Zx0/XXAdOAYYCGwATirqeI1M7OPazYJBSAippMkjdxl1+VMB3BuHXU8DjzeAOGZmVktmtM1FDMza8GcUMzMLBNOKGZmlgknFDMzy4QTiplZGVqyZAlHHnkk/fv3Z7/99mPKlCkl19ms7vIyM7PG0bp1a375y18yePBg1q5dy5AhQxg5ciQDBgwouk73UMzMylDXrl0ZPDh5AkiHDh3o378/S5cuLalO91DMzJrSA5NgxUvZ1rnH/jDmsoKLv/7667zwwgsMH159PN76cQ/FzKyMrVu3jhNOOIGrrrqKnXcu7VFS7qGYmTWlevQksrZ582ZOOOEETjvtNMaNG1dyfe6hmJmVoYjg7LPPpn///lx44YWZ1OmEYmZWhmbNmsVtt93GzJkzGTRoEIMGDWL69Ol1b1gLn/IyMytDhx9+OMl4u9lxD8XMzDLhhGJmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFDOzMrRx40aGDRvGgQceyH777cePfvSjkuv091DMzMrQ9ttvz8yZM2nfvj2bN2/m8MMPZ8yYMRx88MFF1+keiplZGZJE+/btgWRMr82bNyOppDrdQzEza0I/f/bnvPLOK5nW2W/Xfnxv2PfqLLd161aGDBnCwoULOffccz18vZmZFadVq1bMnTuXqqoqnn32WebNm1dSfe6hmJk1oUJ6Eg2tY8eOHHHEETz44IMMHDiw6HrcQzEzK0MrV65k9erVALz//vs8+uij9OvXr6Q63UMxMytDy5cv54wzzmDr1q18+OGHnHzyyRx77LEl1emEYmZWhg444ABeeOGFTOv0KS8zM8uEE4qZmWWiWSUUSaMlVUpaKGlSnvWSdHW6/m+SBqfLe0h6TNICSfMlnd/40ZuZlbdmk1AktQKuBcYAA4DxkgZUKzYG6Ju+JgC/TpdvAb4bEf2Bg4Fz82xrZmYNqNkkFGAYsDAiFkXEJmAqMLZambHArZF4BugoqWtELI+I5wEiYi2wAOjemMGbmZW75pRQugNLcuar+GRSqLOMpF7AQcBfsw/RzMxq0pwSSr5RyaI+ZSS1B/4IXBARa/LuRJogaY6kOStXriw6WDOzT4OtW7dy0EEHlfwdFCjgeyiSehZY1+qaPsQLVAX0yJmvAJYVWkZSG5Jk8vuI+FNNO4mI64HrAYYOHVo9YZmZlZUpU6bQv39/1qwp5eM7UcgXG28h6QXUNq5xADcDt5YQy2ygr6TewFLgFODUamWmAedJmgoMB96LiOVKxly+EVgQEVeUEIOZWdmoqqri/vvv5+KLL+aKK0r/6KwzoUTEkdWXSdojIlaUvPeP72eLpPOAh4BWwO8iYr6kc9L11wHTgWOAhcAG4Kx088OArwAvSZqbLvtBREzPMkYzs6yt+NnP+GBBtsPXb9+/H3v84Ad1lrvgggu4/PLLWbt2bSb7LXbola8Cl2cSQY40AUyvtuy6nOkAzs2z3V+ovQdlZmY57rvvPrp06cKQIUN4/PHHM6mz2IQyVtIG4JGIqMwkEjOzMlRIT6IhzJo1i2nTpjF9+nQ2btzImjVrOP3007n99tuLrrPYu7zGkZx2Ol7SDUXv3czMmsSll15KVVUVr7/+OlOnTuWoo44qKZlAkT2UiHgTeDB9mZmZFddDkXStpJvT6VGZRmRmZo3qiCOO4L777iu5nmJPeW0CFqXTR5UchZmZtXjFJpQNwC7plwkL/eKjmZl9ihV7l9c7wPskowPPyi4cMzNrqerVQ5HUUdJNwAnpoluBoZlHZWZmLU69eigRsVrSZUAv4G3gAKDGcbPMzKx8FHPK62xgcUQ8BDyXcTxmZtZCFZNQ3gXOkbQv8CIwNyJeyDYsMzNraL169aJDhw60atWK1q1bM2fOnJLqq3dCiYhLJc0A/g4MAkYATihmZi3QY489RqdOnTKpq94JRdKPSUYDnkvSO3k8k0jMzKxFK6aH8kNJu5M8ZvcESX0i4hvZh2Zm9un35J1/5+0l6zKts1OP9nzu5H3qLCeJUaNGIYlvfvObTJgwoaT9Fvs9lG8Cv4kIj+VlZtZCzZo1i27duvHWW28xcuRI+vXrx4gRI4qur9iE8jvgW5J2Innk7tyiIzAzK2OF9CQaSrdu3QDo0qULxx9/PM8++2xJCaXYoVe+Q5KMWgNXF713MzNrEuvXr//oSY3r16/n4YcfZuDAgSXVWWwP5TWgL3BPRPx7SRGYmVmje/PNNzn++OMB2LJlC6eeeiqjR48uqc5iE8p8YAlwtqRfRMRnS4rCzMwa1V577cWLL76YaZ3FJpR9gJXA9SRfdDQzszJX7DWUfiRfZrwIKO0+MzMz+1QoNqF0BL4HTAQ2ZhaNmZm1WMWe8vox0C8iKiV9mGVAZmbWMhXUQ5HUStJySV8HiIiqiHg0nZ7UkAGamVnLUFBCiYitwDygT8OGY2ZmLVV9rqHsCEyUNEfStPR1T0MFZmZmDWv16tWceOKJ9OvXj/79+/P000+XVF99rqEckv4cnL4AoqS9m5lZkzn//PMZPXo0d911F5s2bWLDhg0l1VefhNK7pD2ZmVmzsWbNGp544gluvvlmANq2bUvbtm1LqrPghBIR/yhpT2Zm9gmP3Xw9b/1jUaZ1dtlzL448s/avCC5atIjOnTtz1lln8eKLLzJkyBCmTJnCTjvtVPR+i/0eipmZtWBbtmzh+eef51vf+hYvvPACO+20E5dddllJdRb7PRQzM8tAXT2JhlJRUUFFRQXDhw8H4MQTTyw5odS7hyLpSyXtsfa6R0uqlLRQ0ie+36LE1en6v0kaXOi2Zmb2T3vssQc9evSgsrISgBkzZjBgwICS6iymh/JT4N6S9pqHpFbAtcBIoAqYLWlaRLycU2wMybD5fYHhwK+B4QVua2ZmOf7rv/6L0047jU2bNrHXXntx0003lVRfMQlFJe2xZsOAhRGxCEDSVGAskJsUxgK3RkQAz0jqKKkr0KuAbTNzw8TLeb+0myHMrIwN++II3ly6oklj2C5g0KBBzJkzJ7s6i9imob570p3kGSvbVKXLCilTyLYASJqQfjlzzsqVK0sO2szMEs3pony+nk/15FVTmUK2TRZGXE/yHBeGDh1aVHL8+uUTi9nMzAyABQsWsHv3PZo6jMw1p4RSBfTIma8AlhVYpm0B25qZWQMq5pTXm5lHkZgN9JXUW1Jb4BRgWrUy04Cvpnd7HQy8FxHLC9zWzMwaUL17KBExsiECiYgtks4DHgJaAb+LiPmSzknXXwdMB44BFgIbgLNq27Yh4jQzs/ya0ykvImI6SdLIXXZdznQA5xa6rZmZNR4PvWJmVoYqKysZNGjQR6+dd96Zq666qqQ6i+qhSLowIq5Ip/eNiMqSojAzs0a17777MnfuXAC2bt1K9+7dOf7440uqs14JRVJH4Eqgn6SNwN+As0mvZZiZWcszY8YM+vTpw5577llSPfVKKBGxGjhL0heBFcAo4E8lRWBmVsZW3/sam5atz7TOtt12ouOXCn9i+9SpUxk/fnzJ+y32GsrnSW4fPphk/CwzM2uBNm3axLRp0zjppJNKrqvYu7w6At8DJpKc8jIzsyLUpyfREB544AEGDx7M7rvvXnJdxSaUHwP9IqJS0oclR2FmZk3ijjvuyOR0FxR5yisiqiLi0XTazx4xM2uBNmzYwCOPPMK4ceMyqa+ohCLpWkk3p9OjMonEzMwa1Y477siqVavYZZddMqmv2Ivym4BF6fRRmURiZmYtWrEJZQOwi6Q2QM8M4zEzsxaq2Ivy7wDvkzx2d1Z24ZiZWUtVrx5K+sjdm4AT0kW3AkMzj8rMzFqcen9TXtJlJM9wfxs4AH9T3szMKO6U19nA4oh4CHgu43jMzKyFKuai/LvAOZKuknSWpIOyDsrMzBrelVdeyX777cfAgQMZP348GzduLKm+eieUiLgU+AYwGVgMjCgpAjMza3RLly7l6quvZs6cOcybN4+tW7cyderUkuqs9ykvST8meczuXGBuRDxeUgRmZtYktmzZwvvvv0+bNm3YsGED3bp1K6m+Yp4p/0NJPyTp3ZwgqU9EfKOkKMzMytQDDzzAihUrMq1zjz32YMyYMbWW6d69OxdddBE9e/Zkhx12YNSoUYwaVdrAJ8V+sfF3QH9gN+BXJUVgZmaN7t133+Wee+5h8eLFLFu2jPXr13P77beXVGexX2z8DsnwK62BKfg6iplZUerqSTSURx99lN69e9O5c2cAxo0bx1NPPcXpp59edJ3F9lBeA9oB90SEk4mZWQvTs2dPnnnmGTZs2EBEMGPGDPr3719SncUmlPnATOBsSbNLisDMzBrd8OHDOfHEExk8eDD7778/H374IRMmTCipzmJPefUh+T7K9elPMzNrYS655BIuueSSzOorNqEsiYiZkroCb2UWjZmZtVjFnvIaLakCuA64MsN4zMyshSo2oXQEvgdMBD7ILBozszIREU0dQp3qG2OxCeXHJHd4VQJbi6zDzKwstWvXjlWrVjXrpBIRrFq1inbt2hW8TUHXUCS1AqqA/xMRN0REVTpPREwqJlgzs3JVUVFBVVUVK1eubOpQatWuXTsqKioKLl9QQomIrZLmkdzdZWZmJWjTpg29e/du6jAyV59TXjsCEyXNkTQtfd2TRRCSdpX0iKRX05+fqaHcaEmVkhZKmpSz/BeSXpH0N0l3S+qYRVxmZla4+iSUQwABg4Fjc15ZmATMiIi+wIx0/mPS027XAmOAAcB4SQPS1Y8AAyPiAODvwPczisvMzApUn++hNGT/bCxwRDp9C/A4yV1kuYYBCyNiEYCkqel2L0fEwznlngFObMBYzcwsjzoTiqSe6WTe2xFy1q+OiDVFxrF7RCwHiIjlkrrkKdMdWJIzXwUMz1Pua8AfiozDzMyKVEgP5RaSZKJaygRwM3BrTQUkPQrskWfVxQXEQA37/1iSk3QxsAX4fS1xTAAmQDI4mpmZZaPOhBIRR2axo4j4Qk3rJL0pqWvaO6lpOJcqoEfOfAWwLKeOM0iu6RwdtdzcHRHXk4xBxtChQ5vvTeBmZi1MsV9szNo04Ix0+gwg391js4G+knpLaguckm6HpNEk11y+HBEbGiFeMzOrprkklMuAkZJeBUam80jqJmk6QERsAc4DHgIWAHdGxPx0+2uADsAjkuZKuq6xG2BmVu6KHW04UxGxCjg6z/JlwDE589OB6XnK7d2gAZqZWZ2aSw/FzMxaOCcUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMOKGYmVkmnFDMzCwTTihmZpYJJxQzM8uEE4qZmWXCCcXMzDLhhGJmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFDMzy4QTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMOKGYmVkmmkVCkbSrpEckvZr+/EwN5UZLqpS0UNKkPOsvkhSSOjV81GZmlqtZJBRgEjAjIvoCM9L5j5HUCrgWGAMMAMZLGpCzvgcwEnijUSI2M7OPaS4JZSxwSzp9C3BcnjLDgIURsSgiNgFT0+22uRKYCEQDxmlmZjVoLgll94hYDpD+7JKnTHdgSc58VboMSV8GlkbEi3XtSNIESXMkzVm5cmXpkZuZGQCtG2tHkh4F9siz6uJCq8izLCTtmNYxqpBKIuJ64HqAoUOHujdjZpaRRksoEfGFmtZJelNS14hYLqkr8FaeYlVAj5z5CmAZ0AfoDbwoadvy5yUNi4gVmTXAzMxq1VxOeU0DzkinzwDuyVNmNtBXUm9JbYFTgGkR8VJEdImIXhHRiyTxDHYyMTNrXM0loVwGjJT0KsmdWpcBSOomaTpARGwBzgMeAhYAd0bE/CaK18zMqmm0U161iYhVwNF5li8DjsmZnw5Mr6OuXlnHZ2ZmdWsuPRQzM2vhnFDMzCwTTihmZpYJJxQzM8uEE4qZmWXCCcXMzDLhhGJmZplwQjEzs0w4oZiZWSacUMzMLBNOKGZmlgknFDMzy4QTipmZZcIJxczMMuGEYmZmmXBCMTOzTDihmJlZJpxQzMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiZmaZcEIxM7NMKCKaOoYmI2kl8I8iN+8EvJ1hOC2N2+/2u/3la8+I6Fx9YVknlFJImhMRQ5s6jqbi9rv9bn/5tr8mPuVlZmaZcEIxM7NMOKEU7/qmDqCJuf3lze23T/A1FDMzy4R7KGZmlgknFDMzy4QTShEkjZZUKWmhpElNHU8WJPWQ9JikBZLmSzo/Xb6rpEckvZr+/EzONt9Pj0GlpH/JWT5E0kvpuqslqSnaVAxJrSS9IOm+dL5s2i+po6S7JL2Svg8OKbP2/3v63p8n6Q5J7cqp/ZmICL/q8QJaAa8BewFtgReBAU0dVwbt6goMTqc7AH8HBgCXA5PS5ZOAn6fTA9K2bw/0To9Jq3Tds8AhgIAHgDFN3b56HIcLgf8G7kvny6b9wC3A19PptkDHcmk/0B1YDOyQzt8JnFku7c/q5R5K/Q0DFkbEoojYBEwFxjZxTCWLiOUR8Xw6vRZYQPJHNpbkg4b053Hp9FhgakR8EBGLgYXAMEldgZ0j4ulI/rpuzdmmWZNUAXwRuCFncVm0X9LOwAjgRoCI2BQRqymT9qdaAztIag3sCCyjvNpfMieU+usOLMmZr0qXfWpI6gUcBPwV2D0ilkOSdIAuabGajkP3dLr68pbgKmAi8GHOsnJp/17ASuCm9JTfDZJ2okzaHxFLgf8HvAEsB96LiIcpk/ZnxQml/vKdD/3U3HstqT3wR+CCiFhTW9E8y6KW5c2apGOBtyLiuUI3ybOsxbaf5L/zwcCvI+IgYD3JKZ6afKran14bGUty+qobsJOk02vbJM+yFtv+rDih1F8V0CNnvoKka9ziSWpDkkx+HxF/She/mXbjSX++lS6v6ThUpdPVlzd3hwFflvQ6yWnMoyTdTvm0vwqoioi/pvN3kSSYcmn/F4DFEbEyIjYDfwIOpXzanwknlPqbDfSV1FtSW+AUYFoTx1Sy9E6UG4EFEXFFzqppwBnp9BnAPTnLT5G0vaTeQF/g2fS0wFpJB6d1fjVnm2YrIr4fERUR0YvkdzozIk6nfNq/Algiad900dHAy5RJ+0lOdR0sacc07qNJriOWS/uz0dR3BbTEF3AMyV1QrwEXN3U8GbXpcJKu+d+AuenrGGA3YAbwavpz15xtLk6PQSU5d7IAQ4F56bprSEdkaCkv4Aj+eZdX2bQfGATMSd8DfwY+U2btvwR4JY39NpI7uMqm/Vm8PPSKmZllwqe8zMwsE04oZmaWCScUMzPLhBOKmZllwgnFzMwy4YRiloF0pN5/y5nvJumuBtrXcZJ+WMO6denPzpIebIj9m9XECcUsGx2BjxJKRCyLiBMbaF8TgV/VViAiVgLLJR3WQDGYfYITilk2LgP6SJor6ReSekmaByDpTEl/lnSvpMWSzpN0YToI4zOSdk3L9ZH0oKTnJD0pqV/1nUjaB/ggIt5O53tLelrSbEk/qVb8z8BpDdpqsxxOKGbZmAS8FhGDIuI/8qwfCJxK8viDnwIbIhmE8WmS4TkArge+HRFDgIvI3ws5DHg+Z34KyYCOnwVWVCs7B/hcke0xq7fWTR2AWZl4LJLnzKyV9B5wb7r8JeCAdJTnQ4H/yXnA3/Z56ulKMsz8NocBJ6TTtwE/z1n3FsnIuWaNwgnFrHF8kDP9Yc78hyR/h9sBqyNiUB31vA/sUm1ZTeMntUvLmzUKn/Iyy8ZakkcnFyWSZ88slnQSJKM/SzowT9EFwN4587NIRkeGT14v2YdkkEKzRuGEYpaBiFgFzJI0T9IviqzmNOBsSS8C88n/aOkngIP0z/Ni5wPnSprNJ3suRwL3FxmLWb15tGGzFkbSFODeiHi0jnJPAGMj4t3GiczKnXsoZi3Pz4AdaysgqTNwhZOJNSb3UMzMLBPuoZiZWSacUMzMLBNOKGZmlgknFDMzy4QTipmZZeL/A1vB1qmwiL6pAAAAAElFTkSuQmCC\n", "text/plain": [ "
    " ] @@ -130,7 +130,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -163,7 +163,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -198,7 +198,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -230,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -587,27 +587,73 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'px' ()>\n",
    -       "array(-9.71445147e-15)\n",
    +       "
    <xarray.Dataset>\n",
    +       "Dimensions:  (id: 16)\n",
            "Coordinates:\n",
    -       "    id       int64 101\n",
    -       "    time     float64 1.14e+03
    " + " * id (id) int64 101 102 103 104 105 106 107 ... 111 112 113 114 115 116\n", + " time float64 500.0\n", + "Data variables:\n", + " GMass (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", + " Radius (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", + " px (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", + " py (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", + " pz (id) float64 0.0 0.0 0.0 0.0 -1.775e-18 ... 0.0 -1.388e-17 0.0 0.0\n", + " vx (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 -3.469e-18\n", + " vy (id) float64 0.0 0.0 0.0 0.0 ... -4.337e-19 2.168e-19 0.0\n", + " vz (id) float64 0.0 0.0 -1.084e-19 ... -4.066e-20 -1.355e-20\n", + " rmag (id) float64 0.0 0.0 0.0 0.0 1.775e-18 ... 0.0 1.388e-17 0.0 0.0\n", + " vmag (id) float64 0.0 0.0 1.084e-19 0.0 ... 4.4e-19 2.206e-19 3.469e-18
    " ], "text/plain": [ - "\n", - "array(-9.71445147e-15)\n", + "\n", + "Dimensions: (id: 16)\n", "Coordinates:\n", - " id int64 101\n", - " time float64 1.14e+03" + " * id (id) int64 101 102 103 104 105 106 107 ... 111 112 113 114 115 116\n", + " time float64 500.0\n", + "Data variables:\n", + " GMass (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", + " Radius (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", + " px (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", + " py (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", + " pz (id) float64 0.0 0.0 0.0 0.0 -1.775e-18 ... 0.0 -1.388e-17 0.0 0.0\n", + " vx (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 -3.469e-18\n", + " vy (id) float64 0.0 0.0 0.0 0.0 ... -4.337e-19 2.168e-19 0.0\n", + " vz (id) float64 0.0 0.0 -1.084e-19 ... -4.066e-20 -1.355e-20\n", + " rmag (id) float64 0.0 0.0 0.0 0.0 1.775e-18 ... 0.0 1.388e-17 0.0 0.0\n", + " vmag (id) float64 0.0 0.0 1.084e-19 0.0 ... 4.4e-19 2.206e-19 3.469e-18" ] }, - "execution_count": 28, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "swiftdiff['px'].sel(id=101).isel(time=114)" + "swiftdiff.sel(id=tpidx).isel(time=5)" ] }, { diff --git a/examples/symba_chambers_2013/.gitignore b/examples/symba_chambers_2013/.gitignore new file mode 100644 index 000000000..18e3d4488 --- /dev/null +++ b/examples/symba_chambers_2013/.gitignore @@ -0,0 +1 @@ +savestate/* diff --git a/examples/symba_chambers_2013/savestate2/param.in b/examples/symba_chambers_2013/savestate2/param.in new file mode 100644 index 000000000..2e263e1b5 --- /dev/null +++ b/examples/symba_chambers_2013/savestate2/param.in @@ -0,0 +1,32 @@ +! +! Parameter file for Chambers 2013 in units of Msun, AU, year +! +T0 0.0e0 +TSTOP 1e8 ! simulation length in years +DT 0.016 ! stepsize in years +CB_IN sun_MsunAUYR.in +PL_IN pl_chambers_2013.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 625 ! output cadence +ISTEP_DUMP 625 ! system dump cadence +BIN_OUT bin.dat +PARTICLE_OUT particle.dat +OUT_TYPE REAL8 ! double precision real output +OUT_FORM EL ! osculating element output +OUT_STAT REPLACE +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMAX 100000.0 ! discard outside of +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD no ! output all planets if anything discarded +RHILL_PRESENT yes ! Hill's sphere radii in input file +MU2KG 1.98847e30 ! (M_sun-> kg) +DU2M 1.495979e11 ! distance unit to meters (AU --> m) +TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) +GMTINY 1e-10 +ENERGY yes +ENERGY_OUT energy.dat +ROTATION yes +FRAGMENTATION yes +DISCARD_OUT discard.out +SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in b/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in new file mode 100644 index 000000000..1ba4c845e --- /dev/null +++ b/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in @@ -0,0 +1,937 @@ +156 ! Solar System in unit system AU, M_sun, and years +500 3.76722155e-02 1.08899907e-02 ! ID / G*Mass / Rhill Jupiter +4.67326079e-04 ! Radius +3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z +1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz +0.0 0.0 0.2756 ! ip +-81.01800465 -2388.16786145 5008.65350675 ! rot +600 1.12798314e-02 1.99069165e-02 ! ID / G*Mass / Rhill Saturn +3.89256801e-04 ! Radius +5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z +1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz +0.0 0.0 0.22 ! ip +445.81155409 381.95827345 5182.3159189 ! rot +4 1.10539569e-05 2.76930511e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +2.72988779e-01 1.29092883e+00 1.33913146e-01 ! x y z +-5.30347096e+00 1.10519810e+00 4.11733597e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +5 1.10539569e-05 2.47028309e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-7.52767237e-01 -7.89903716e-01 4.41780109e-01 ! x y z +3.97724375e+00 -4.13307219e+00 -7.22805540e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +6 1.10539569e-05 1.32328966e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.20377608e-01 -7.87272103e-02 7.12067297e-02 ! x y z +1.02503121e+00 7.84536983e+00 -1.81237075e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +7 1.10539569e-05 9.44674456e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.98175547e-02 -4.40604282e-01 -6.26515066e-02 ! x y z +9.16286233e+00 1.29526313e+00 1.28292031e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +8 1.10539569e-05 2.10455183e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-7.37344424e-01 -6.59393259e-01 -3.39334297e-02 ! x y z +4.23617128e+00 -4.72560240e+00 1.90202709e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +9 1.10539569e-05 7.93127033e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-3.72282885e-01 1.00137160e-02 4.74495877e-02 ! x y z +-5.53222723e-02 -1.01517333e+01 1.56417032e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +10 1.10539569e-05 3.72890834e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-1.71148151e+00 4.03705975e-02 -4.41629664e-01 ! x y z +-5.30815676e-01 -4.44829638e+00 1.51595205e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +11 1.10539569e-05 1.24950838e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +2.86212864e-01 5.18828229e-01 -9.65137375e-03 ! x y z +-7.11468376e+00 3.99045778e+00 4.08951506e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +12 1.10539569e-05 1.29201140e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.01579717e-01 -1.24985784e-01 -6.68579475e-02 ! x y z +1.03137581e+00 6.97294287e+00 -3.70526296e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +13 1.10539569e-05 8.45210453e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +1.66504352e-01 3.65136786e-01 -2.37270588e-02 ! x y z +-9.01075623e+00 4.10307061e+00 -1.73991242e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +14 1.10539569e-05 1.80973111e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-1.00013418e-01 8.46049108e-01 1.29409189e-01 ! x y z +-6.69397403e+00 -6.88216193e-01 -6.43089317e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +15 1.10539569e-05 6.77162299e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-6.64074759e-02 -2.85943101e-01 -1.33132689e-01 ! x y z +1.04794195e+01 -3.18219029e+00 1.50287735e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +16 1.10539569e-05 2.22462802e-03 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +6.93683497e-01 -7.97060245e-01 -1.56701341e-03 ! x y z +4.27957357e+00 3.72233196e+00 -2.27779518e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +17 1.10539569e-05 9.07412459e-04 ! ID / G*Mass / Rhill +2.36555201e-05 ! Radius +-4.30243754e-01 3.92163409e-02 1.61581635e-02 ! x y z +-8.96241375e-01 -9.13377010e+00 -2.60722121e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +18 1.10539569e-06 2.16228637e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.49171166e-01 9.89231336e-01 9.47431817e-02 ! x y z +-5.97909060e+00 -1.61462871e+00 5.17955232e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +19 1.10539569e-06 2.44552162e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.13055691e+00 -2.73349719e-01 -8.64446048e-04 ! x y z +1.35697138e+00 5.66139385e+00 -8.67279260e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +20 1.10539569e-06 2.69931846e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.95952391e-01 8.54202216e-01 5.12437562e-01 ! x y z +-4.18257122e+00 -3.66903213e+00 -4.16936339e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +21 1.10539569e-06 3.64709598e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.50222087e+00 2.48717046e-01 -8.19081229e-01 ! x y z +-8.04975551e-01 -4.71387035e+00 7.84362176e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +22 1.10539569e-06 1.17536449e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.44682948e-01 -4.96503483e-01 -8.53414160e-02 ! x y z +7.40695872e+00 -3.28819700e+00 -2.14066023e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +23 1.10539569e-06 1.50460742e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.36805798e-01 -5.86582522e-01 3.17351611e-01 ! x y z +6.83507157e+00 3.05184627e+00 5.35881505e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +24 1.10539569e-06 2.39048166e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.80090550e-01 1.00147849e+00 -3.41420172e-01 ! x y z +-5.59868356e+00 -1.78046309e+00 9.70115472e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +25 1.10539569e-06 2.01027356e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.39485525e-01 6.02196012e-01 2.65945142e-02 ! x y z +-4.01389113e+00 -4.93502846e+00 -9.72482631e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +26 1.10539569e-06 3.44715330e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.30456826e-01 1.57570303e+00 -1.09595941e-01 ! x y z +-4.64706737e+00 -1.19846831e+00 1.04119454e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +27 1.10539569e-06 1.76967616e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.35819630e-01 -4.18940068e-01 -5.26182368e-02 ! x y z +3.13485099e+00 -5.73938205e+00 1.82527292e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +28 1.10539569e-06 4.06342312e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.54229262e-01 -1.76044238e+00 -1.80128626e-01 ! x y z +4.18274269e+00 -1.75246993e+00 -1.48893698e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +29 1.10539569e-06 6.51392241e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.97001957e-02 -2.83866631e-01 1.02094271e-01 ! x y z +1.06859367e+01 -3.16734146e+00 -1.78495005e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +30 1.10539569e-06 1.50723858e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.50547968e-01 5.85483214e-01 -2.02242303e-01 ! x y z +-6.51912702e+00 -3.31902976e+00 1.50673282e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +31 1.10539569e-06 9.91191586e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.34148347e-02 -4.67706829e-01 -4.50777179e-04 ! x y z +9.07741521e+00 1.03526094e+00 6.27189957e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +32 1.10539569e-06 1.27434773e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.76081124e-01 -1.72561939e-01 2.32546498e-02 ! x y z +2.26640367e+00 -7.48739107e+00 2.18424337e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +33 1.10539569e-06 1.88899665e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.21441400e-01 8.67808697e-01 6.09525334e-02 ! x y z +-6.38752841e+00 1.69289574e+00 -5.34224727e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +34 1.10539569e-06 2.51153352e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.27618072e-01 -9.85796209e-01 -2.48455975e-01 ! x y z +4.57388053e+00 3.25533389e+00 -1.21335726e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +35 1.10539569e-06 1.31898109e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.04370616e-01 5.13132374e-01 1.83051491e-01 ! x y z +-6.94545994e+00 3.58830246e+00 1.54416575e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +36 1.10539569e-06 1.31747151e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.72209409e-01 5.58609144e-01 -5.24341572e-02 ! x y z +-7.11229047e+00 -3.50089370e+00 -8.23500441e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +37 1.10539569e-06 8.04475879e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.84218244e-01 3.32444349e-01 -3.37468460e-02 ! x y z +-8.87199586e+00 4.71912663e+00 -1.61815818e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +38 1.10539569e-06 8.53415964e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.71574947e-01 2.99863851e-01 2.77485703e-02 ! x y z +-7.27373701e+00 6.59527467e+00 -9.50013137e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +39 1.10539569e-06 1.54874159e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.42177998e-01 4.64346195e-01 -1.77247174e-01 ! x y z +-4.32593022e+00 -5.71371010e+00 -1.52200642e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +40 1.10539569e-06 1.11811225e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.37513378e-01 4.78960335e-01 -4.18799485e-02 ! x y z +-7.64314149e+00 3.80464264e+00 -4.40507044e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +41 1.10539569e-06 6.46344589e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.17502253e-01 2.74368057e-01 6.52591009e-02 ! x y z +-1.04985621e+01 -4.38785797e+00 -5.95356835e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +42 1.10539569e-06 3.14895117e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.08577487e+00 -1.03445606e+00 -1.55590020e-01 ! x y z +3.53014787e+00 3.59960362e+00 7.43100049e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +43 1.10539569e-06 3.30212225e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.85350014e-01 -1.34034680e+00 7.46972274e-01 ! x y z +4.81219105e+00 1.19508883e+00 -3.85665415e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +44 1.10539569e-06 7.23534141e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.13136821e-02 3.42286865e-01 -3.05898632e-02 ! x y z +-1.01368906e+01 -6.23201390e-01 -3.40648593e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +45 1.10539569e-06 2.39770005e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.04671093e+00 1.11212978e-01 -4.33163084e-01 ! x y z +-3.60007968e-01 -5.84725364e+00 -6.15822401e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +46 1.10539569e-06 3.11101805e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.28031558e+00 6.71820187e-01 3.13521220e-01 ! x y z +-2.10656104e+00 -4.54924436e+00 1.23122282e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +47 1.10539569e-06 9.97006532e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.03695384e-01 -3.60967985e-01 5.51306924e-02 ! x y z +6.85056674e+00 -5.91778788e+00 -9.60485047e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +48 1.10539569e-06 7.74544738e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.54176241e-01 6.02822917e-02 7.63020359e-02 ! x y z +-1.61729423e+00 -1.02381855e+01 4.69477979e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +49 1.10539569e-06 2.60533414e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.70647812e-01 -1.14442870e+00 -2.16624680e-04 ! x y z +5.22089775e+00 2.15396431e+00 6.97355593e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +50 1.10539569e-06 1.73280111e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.47538292e-02 -7.76819569e-01 -2.57912415e-01 ! x y z +6.69507282e+00 -1.17185683e+00 1.33518772e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +51 1.10539569e-06 3.17790663e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.65614001e-01 -1.36216721e+00 3.04841771e-02 ! x y z +4.55635977e+00 2.26593667e+00 1.30678452e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +52 1.10539569e-06 7.23862851e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.31702394e-01 -9.11930665e-02 2.41707377e-02 ! x y z +2.70205684e+00 -1.02322038e+01 -1.45694907e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +53 1.10539569e-06 4.09271910e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.43010053e-01 1.89928569e+00 1.63915030e-01 ! x y z +-4.44471826e+00 8.12964188e-01 1.91799605e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +54 1.10539569e-06 9.00526678e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.76279203e-01 3.69578224e-01 -1.37212342e-01 ! x y z +-8.58447413e+00 -3.12914501e+00 2.65447958e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +55 1.10539569e-06 1.66875324e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.45616929e-01 -2.47231702e-01 -1.19477629e-01 ! x y z +2.19161600e+00 -6.68909269e+00 -1.07794911e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +56 1.10539569e-06 2.61296171e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.21771549e+00 8.22263396e-02 -2.28049506e-01 ! x y z +-7.77955309e-01 -5.04420236e+00 2.39397114e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +57 1.10539569e-06 7.84583650e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.35031870e-01 -1.49752491e-01 7.21876006e-02 ! x y z +3.53139295e+00 -9.14063147e+00 -3.02347388e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +58 1.10539569e-06 8.15353611e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.16127731e-01 2.19457827e-01 -2.86640647e-02 ! x y z +-5.75118301e+00 -8.30744977e+00 -7.52286441e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +59 1.10539569e-06 9.46502491e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.14567897e-01 -1.70158031e-01 -2.06385746e-02 ! x y z +3.52462324e+00 8.64965730e+00 9.71699819e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +60 1.10539569e-06 1.06023870e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.68326520e-01 3.43200640e-01 -3.18358134e-03 ! x y z +-5.99833054e+00 6.50593164e+00 -3.52076060e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +61 1.10539569e-06 2.85747597e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.22743812e+00 4.54544048e-01 -3.53405167e-01 ! x y z +-2.13063294e+00 4.75488906e+00 -1.41396521e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +62 1.10539569e-06 1.11156710e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.90230366e-01 8.52524184e-02 1.64539092e-01 ! x y z +-1.33697442e+00 -8.59490437e+00 4.64492986e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +63 1.10539569e-06 7.47979433e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.26924952e-01 1.39246422e-01 -4.37240131e-02 ! x y z +-4.02802590e+00 9.60769401e+00 9.33600395e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +64 1.10539569e-06 2.36256862e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.11787086e+00 1.27230662e-01 -2.97194116e-02 ! x y z +-6.51392127e-01 -5.87014579e+00 -2.95793081e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +65 1.10539569e-06 1.36083964e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.68540327e-01 1.32853908e-01 -2.74248856e-01 ! x y z +-2.28636154e+00 -7.40032660e+00 1.15230861e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +66 1.10539569e-06 2.12644561e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-9.02814420e-01 4.51623081e-01 3.31973730e-02 ! x y z +-2.80126142e+00 -5.58560982e+00 -1.92746316e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +67 1.10539569e-06 8.14605985e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.85382182e-01 1.43901530e-03 1.15478430e-02 ! x y z +-2.59844799e-02 -1.01271155e+01 4.30703613e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +68 1.10539569e-06 9.27538405e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.61232954e-01 2.20844429e-01 -1.22567174e-01 ! x y z +-4.75444340e+00 8.15211658e+00 6.72406103e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +69 1.10539569e-06 1.70813096e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +7.62285263e-01 2.77535790e-01 7.50460161e-03 ! x y z +-2.38561781e+00 6.55492046e+00 -5.72763423e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +70 1.10539569e-06 2.71135229e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.33966979e-01 1.05145872e+00 -3.79026357e-01 ! x y z +-4.80055687e+00 2.37239115e+00 -1.45444659e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +71 1.10539569e-06 9.29779721e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.09086355e-01 -4.25927399e-01 -5.92609052e-02 ! x y z +8.83426715e+00 -1.97333711e+00 -2.57514440e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +72 1.10539569e-06 2.48562722e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.52243615e-01 -1.03472811e+00 -9.20470885e-03 ! x y z +5.14745205e+00 -2.71638935e+00 1.85243774e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +73 1.10539569e-06 1.57390173e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.37564413e-01 -7.02794064e-01 -1.30853933e-01 ! x y z +6.84384400e+00 -2.13579218e+00 -7.74318491e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +74 1.10539569e-06 1.33469063e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.24670248e-01 -3.60722160e-01 -5.89339466e-03 ! x y z +4.43972950e+00 6.48102200e+00 9.11331663e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +75 1.10539569e-06 6.47192566e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.61797829e-02 -3.04486498e-01 4.89626567e-03 ! x y z +1.10606484e+01 2.04593839e+00 -1.21551157e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +76 1.10539569e-06 1.47162297e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.43061104e-01 -6.84452631e-01 -2.55174546e-02 ! x y z +7.11009943e+00 1.43236802e+00 1.93726736e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +77 1.10539569e-06 8.63668982e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.85992031e-02 -4.08122100e-01 2.78731319e-02 ! x y z +9.76823729e+00 -6.46270469e-01 6.80833278e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +78 1.10539569e-06 2.36804818e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +6.91157068e-01 -7.91937234e-01 3.82540684e-01 ! x y z +4.02153165e+00 4.19828096e+00 1.29880450e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +79 1.10539569e-06 9.14394348e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.51098607e-01 2.59366529e-01 -1.55386862e-02 ! x y z +-5.06657998e+00 -7.18889701e+00 -3.53716670e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +80 1.10539569e-06 1.26910472e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.23152493e-01 3.88117899e-01 -2.00809903e-01 ! x y z +-4.53578552e+00 6.18184215e+00 2.34837457e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +81 1.10539569e-06 6.33003056e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.28512111e-01 2.64697808e-01 -7.13482769e-02 ! x y z +-9.33728759e+00 5.41684777e+00 3.59675928e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +82 1.10539569e-06 2.22271119e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.71802215e-01 -9.92089651e-01 5.32987899e-02 ! x y z +5.68468560e+00 2.17000210e+00 -9.37982171e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +83 1.10539569e-06 1.74051421e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +7.86568140e-01 2.32350855e-01 6.38082505e-02 ! x y z +-1.88303694e+00 6.63245612e+00 -8.28072975e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +84 1.10539569e-06 9.31517858e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.72567042e-01 -2.35531924e-01 4.96465701e-02 ! x y z +4.70939503e+00 -7.96544948e+00 -1.77358479e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +85 1.10539569e-06 2.46953975e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.20593248e-01 1.08358397e+00 3.52755169e-01 ! x y z +-5.53042972e+00 1.53963953e+00 2.87126462e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +86 1.10539569e-06 1.50876657e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.56037714e-01 -4.53117788e-01 -4.40686710e-02 ! x y z +4.32334289e+00 -5.53881012e+00 2.32535969e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +87 1.10539569e-06 6.79814743e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.71412212e-01 -2.72520775e-01 2.76595629e-02 ! x y z +9.35632724e+00 -5.87401170e+00 1.71700376e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +88 1.10539569e-06 1.37728604e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.52644996e-01 4.52246640e-01 1.36128602e-01 ! x y z +-5.47133577e+00 5.50145396e+00 -3.76988545e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +89 1.10539569e-06 1.75150424e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.17549909e-01 -7.69243942e-01 2.30477642e-01 ! x y z +6.02966869e+00 -2.44216734e+00 -2.26348882e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +90 1.10539569e-06 1.82243275e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.53300892e-01 1.05420241e-01 6.10357233e-03 ! x y z +-7.23180710e-01 6.14709501e+00 -2.81238589e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +91 1.10539569e-06 1.04051592e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.76117727e-02 -4.92462500e-01 -7.89640418e-03 ! x y z +8.70186553e+00 7.97359443e-01 -1.82242405e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +92 1.10539569e-06 9.04059360e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.13222540e-01 -3.73863988e-01 -4.13231963e-04 ! x y z +8.30795424e+00 -4.74104957e+00 -9.20828866e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +93 1.10539569e-06 2.08546876e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.00253331e-02 9.90845414e-01 3.30248466e-02 ! x y z +-6.29625004e+00 -2.72856242e-01 4.06580221e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +94 1.10539569e-06 6.61548636e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.95782619e-01 1.07222597e-01 -2.12686228e-02 ! x y z +-3.48575733e+00 1.03058724e+01 2.52560893e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +95 1.10539569e-06 1.26032554e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.86024380e-01 -5.25659190e-01 -1.93449627e-02 ! x y z +6.91385395e+00 -3.87796179e+00 1.75371157e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +96 1.10539569e-06 2.28076998e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.65990862e-01 6.01183979e-01 2.43471322e-01 ! x y z +-3.24575804e+00 5.02670056e+00 -8.53001170e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +97 1.10539569e-06 7.05221824e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.39637261e-01 -3.01107928e-01 -4.31558543e-02 ! x y z +9.00360957e+00 -4.71459755e+00 3.83918395e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +98 1.10539569e-06 6.39269462e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.44254383e-01 -1.79341582e-01 -1.04974267e-03 ! x y z +6.75937463e+00 9.18023255e+00 7.52738258e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +99 1.10539569e-06 1.79085174e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.13843608e-01 1.99633270e-01 -1.80207407e-01 ! x y z +-1.29939496e+00 -6.46953788e+00 -1.46932255e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +100 1.10539569e-06 1.32458326e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.32126102e-01 -2.47196136e-02 -2.42353871e-02 ! x y z +2.92190575e-01 -7.70428120e+00 1.58876111e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +101 1.10539569e-06 1.52095833e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-6.91088291e-01 -1.16411821e-01 -1.71283865e-01 ! x y z +1.53252063e+00 -7.10600791e+00 -1.39483264e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +102 1.10539569e-06 1.58389732e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.73673516e-01 -4.82303150e-01 -6.92080251e-02 ! x y z +4.56925372e+00 -5.55908510e+00 8.00568861e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +103 1.10539569e-06 6.78999949e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.70326377e-01 1.68246296e-01 4.59682324e-02 ! x y z +-6.01982148e+00 9.02506097e+00 2.30638849e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +104 1.10539569e-06 1.01600407e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.27129315e-01 -1.60689947e-01 1.56748833e-01 ! x y z +2.47314908e+00 -8.47972366e+00 -1.94836513e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +105 1.10539569e-06 2.39114531e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +9.42557812e-01 5.29448416e-01 3.49342967e-01 ! x y z +-3.26429676e+00 4.46194553e+00 2.04186289e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +106 1.10539569e-06 7.00793819e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.89445458e-01 1.51184189e-01 6.04053839e-02 ! x y z +-4.58420182e+00 9.69365003e+00 -2.04005101e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +107 1.10539569e-06 1.90283015e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.56335053e-01 -2.54662167e-01 1.41334047e-01 ! x y z +2.10228445e+00 5.79525323e+00 -2.36721595e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +108 1.10539569e-06 2.96231967e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.36313774e+00 -1.39484993e-03 -3.33851852e-01 ! x y z +-1.80152731e-01 -5.22233557e+00 9.45811316e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +109 1.10539569e-06 1.11806853e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.46999479e-01 4.69183085e-01 1.48273567e-02 ! x y z +-7.62737255e+00 4.03088377e+00 -2.87208744e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +110 1.10539569e-06 3.12227105e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +8.92685552e-01 -1.19778080e+00 7.96108948e-02 ! x y z +4.05065890e+00 2.97803027e+00 -9.38454309e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +111 1.10539569e-06 2.24585100e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.16543398e-01 6.44376993e-01 2.28097541e-01 ! x y z +-3.89719354e+00 -4.47060943e+00 -1.39962365e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +112 1.10539569e-06 3.76823843e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.19421123e+00 1.32084250e+00 -7.72400022e-02 ! x y z +-3.08133686e+00 2.88161171e+00 2.10766368e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +113 1.10539569e-06 1.85829977e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.64160987e-01 6.79541760e-01 1.90515744e-02 ! x y z +-5.13431676e+00 4.27566051e+00 6.03635853e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +114 1.10539569e-06 3.49744654e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.56537224e+00 5.82910904e-01 -8.86453767e-02 ! x y z +-1.64314439e+00 4.51635617e+00 5.81379936e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +115 1.10539569e-06 2.44627752e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.21489220e-01 -9.80146980e-01 3.22082629e-01 ! x y z +4.69945017e+00 -3.07448039e+00 -1.66849603e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +116 1.10539569e-06 1.48946902e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.60792560e-01 -6.87644911e-01 3.66413788e-02 ! x y z +6.37303278e+00 -1.67465930e+00 -3.52540571e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +117 1.10539569e-06 9.48472009e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.15102464e-01 -1.75149973e-01 -2.85549434e-02 ! x y z +3.17699950e+00 8.02980191e+00 -3.56193766e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +118 1.10539569e-06 1.46132866e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.45225828e-01 5.98258841e-01 -7.45003268e-02 ! x y z +-6.51260143e+00 -3.60690443e+00 1.16008799e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +119 1.10539569e-06 9.12611171e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.84725575e-01 -3.85457639e-01 -5.09774260e-02 ! x y z +8.51718303e+00 -4.26677573e+00 1.26149786e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +120 1.10539569e-06 1.22021916e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.44841297e-01 -5.39901332e-01 1.54755735e-01 ! x y z +7.76971331e+00 1.39084378e+00 -2.38817543e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +121 1.10539569e-06 6.51657309e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.95970426e-02 -3.07995454e-01 -2.51102574e-02 ! x y z +1.12576282e+01 -6.78821641e-01 -4.95031697e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +122 1.10539569e-06 8.35698784e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +3.58295595e-01 -4.07805583e-02 -1.62744429e-01 ! x y z +5.65842623e-02 9.77741717e+00 -2.12236760e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +123 1.10539569e-06 1.08014635e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.57112225e-01 3.26038545e-01 -1.68902691e-01 ! x y z +-5.23071639e+00 -6.75806936e+00 -2.04006316e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +124 1.10539569e-06 1.02550770e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.30953626e-01 -1.21419747e-01 -1.92524368e-01 ! x y z +2.35863321e+00 -8.68071542e+00 1.79033554e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +125 1.10539569e-06 6.95814419e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.10223043e-02 3.29698672e-01 -2.33216443e-02 ! x y z +-1.05036416e+01 -1.18257626e-01 2.99156731e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +126 1.10539569e-06 1.21782856e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.37540070e-01 -4.68051579e-01 3.12017441e-02 ! x y z +6.67938807e+00 -4.87057933e+00 -1.80758676e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +127 1.10539569e-06 1.27648491e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.70107622e-01 3.81394049e-01 2.94976958e-02 ! x y z +-5.04123374e+00 6.27657958e+00 5.88259014e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +128 1.10539569e-06 1.62877006e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.55138385e-01 -6.23311530e-01 5.02376028e-02 ! x y z +5.28132760e+00 -4.06425983e+00 -2.57712837e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +129 1.10539569e-06 2.66986578e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.13493035e-02 -1.22710114e+00 -3.17757228e-01 ! x y z +5.28592709e+00 -7.54459447e-01 1.59593511e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +130 1.10539569e-06 6.56076786e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.44014453e-01 -1.91481938e-01 3.64286209e-02 ! x y z +6.89410930e+00 -7.97798070e+00 3.86568598e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +131 1.10539569e-06 1.47791991e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-8.58860487e-02 6.98105661e-01 -6.05263656e-02 ! x y z +-7.39418369e+00 -8.88083586e-01 3.68318815e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +132 1.10539569e-06 1.18316891e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.30463297e-01 5.39537186e-01 8.94135251e-02 ! x y z +-7.91933257e+00 2.19758719e+00 -1.62232353e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +133 1.10539569e-06 1.53219837e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.10956489e-01 -7.21494396e-01 5.19355079e-02 ! x y z +7.24010486e+00 -1.09301700e+00 -1.60852706e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +134 1.10539569e-06 6.43300411e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.88041757e-02 -3.04722867e-01 -3.14812865e-02 ! x y z +1.07993595e+01 -1.40429215e+00 2.96552456e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +135 1.10539569e-06 8.51935749e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.86591612e-01 -4.29771812e-02 -1.05863039e-01 ! x y z +1.97234762e+00 -9.03918811e+00 -3.56317371e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +136 1.10539569e-06 7.63507559e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.88157405e-01 2.88666278e-01 1.10921677e-01 ! x y z +-8.87614786e+00 -5.45415368e+00 -8.46055713e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +137 1.10539569e-06 8.42313899e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.55471151e-01 3.65848047e-01 -8.97493453e-03 ! x y z +-9.20044180e+00 -3.87411273e+00 -4.84829815e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +138 1.10539569e-06 6.72600246e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.87375637e-01 -1.36801833e-01 -1.72137474e-02 ! x y z +4.76338219e+00 1.00717170e+01 2.97994928e-03 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +139 1.10539569e-06 1.02461717e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.70166209e-01 -4.01549931e-01 6.36091815e-02 ! x y z +7.45419134e+00 4.96228856e+00 -6.59900898e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +140 1.10539569e-06 6.87840289e-04 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.61307437e-01 -2.72164290e-01 8.71883296e-02 ! x y z +8.60206869e+00 6.06917549e+00 2.98663214e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +141 1.10539569e-06 3.92140957e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.78539217e+00 5.34215902e-01 -1.20626554e-01 ! x y z +-1.35880150e+00 -4.33539223e+00 6.63369806e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +142 1.10539569e-06 2.70800787e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-2.31436788e-01 5.48162971e-01 1.64734173e-02 ! x y z +-7.51357402e+00 -3.16907615e+00 -1.32982328e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +143 1.10539569e-06 2.04544912e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.94940717e-01 -3.37625386e-01 -4.75480276e-02 ! x y z +6.93658760e+00 6.20070236e+00 -1.01079366e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +144 1.10539569e-06 6.37587428e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +9.71735603e-01 -9.61566886e-01 3.24968572e-01 ! x y z +3.81159593e+00 3.54522020e+00 -1.00291449e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +145 1.10539569e-06 2.08933536e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.75759753e-01 4.21380582e-01 6.28003104e-02 ! x y z +-8.52008102e+00 3.47130251e+00 9.83757295e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +146 1.10539569e-06 1.50397186e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-1.39588743e-02 -3.30180335e-01 -1.05230287e-02 ! x y z +1.07866352e+01 -4.97967898e-01 1.76757426e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +147 1.10539569e-06 3.38562140e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-7.29920730e-01 5.89061070e-02 -1.20920053e-01 ! x y z +-7.74235710e-01 -7.10977778e+00 1.52865443e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +148 1.10539569e-06 2.32741739e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +4.96020721e-01 7.20447253e-02 -1.09717020e-01 ! x y z +-2.02019828e+00 7.69560863e+00 -3.69254498e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +149 1.10539569e-06 2.12332437e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-4.28791847e-01 -1.88187724e-01 1.60873382e-02 ! x y z +3.57426531e+00 -8.26404401e+00 -1.76157927e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +150 1.10539569e-06 1.76485902e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.55182279e-01 1.52620292e-01 -6.22833990e-02 ! x y z +-3.88412930e+00 -9.19453465e+00 -7.37459129e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +151 1.10539569e-06 1.57284431e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-3.47785192e-01 9.69744008e-03 -5.97342340e-03 ! x y z +-3.78784685e-01 -1.06242178e+01 1.68422812e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +152 1.10539569e-06 5.30159037e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.29951992e-01 1.09612807e+00 -3.27460884e-01 ! x y z +-5.22124087e+00 1.65375984e+00 1.97215321e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +153 1.10539569e-06 2.55861101e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.21007349e-02 5.32952897e-01 -1.70855331e-01 ! x y z +-8.35827288e+00 -7.84724150e-01 2.96312578e-02 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +154 1.10539569e-06 7.10383113e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +-5.72959788e-01 -1.44639128e+00 -1.28014693e-01 ! x y z +4.55403004e+00 -1.72466270e+00 -1.28754288e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +155 1.10539569e-06 1.36743334e-03 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +2.14648375e-01 2.10911522e-01 -9.00355256e-03 ! x y z +-7.51711446e+00 7.37660713e+00 -4.51391831e+00 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +156 1.10539569e-06 2.65261394e-02 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +5.50228741e-02 3.86702728e-01 2.53976723e-02 ! x y z +-9.89354846e+00 1.39418207e+00 5.42336207e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +157 1.10539569e-06 4.92529404e-02 ! ID / G*Mass / Rhill +1.09799198e-05 ! Radius +1.00902512e+00 -1.88090001e-01 3.31281617e-01 ! x y z +1.00573195e+00 5.95735671e+00 3.15059243e-01 ! vx vy vz +4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip +0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot diff --git a/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in b/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in new file mode 100644 index 000000000..ceb04eea1 --- /dev/null +++ b/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in @@ -0,0 +1,7 @@ +0 ! id +39.476926408897626 ! G*Mass +0.004650467260962157 ! Radius +0.0 !4.7535806948127355e-12 ! J2 +0.0 !-2.2473967953572827e-18 ! J4 +0.0 0.0 0.07 ! Principle axes moments of inertia +11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) diff --git a/examples/symba_chambers_2013/savestate2/tp.in b/examples/symba_chambers_2013/savestate2/tp.in new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/examples/symba_chambers_2013/savestate2/tp.in @@ -0,0 +1 @@ +0 diff --git a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb index 79543cb09..6c5bc45e4 100644 --- a/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/1pl_1pl_encounter/swiftest_vs_swifter.ipynb @@ -81,8 +81,8 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, "execution_count": 6, @@ -91,7 +91,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAERCAYAAABy/XBZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXEklEQVR4nO3df5TddX3n8ef7JoGUEkChgcQhJhp+JBAadeSXFpAfrdJuWGFlYW0lK8oJWKhl2W62nG2Le0QsehZ2TduN/FjisuYIAlk9ECoFCotGGhAEEjEqESZE8gOjppQfkvf+ce8Mk2HmZiZz73zvfL/Pxzlzztzvr/uaO3Pvez7fz/f7+URmIkmqnlrRASRJxbAASFJFWQAkqaIsAJJUURYASaooC4AkVdS4KwARcUNEbIqIJ1t0vJURsS0ivjlgeUTEZyPihxGxNiIuacXzSVKnGHcFAPhfwAdbeLyrgT8aZPlC4GDg8MycAyxv4XNKUuHGXQHIzAeAF/svi4h3Nv6TfyQiHoyIw0dwvH8AfjXIqguBz2TmjsZ2m0aTW5I6zbgrAENYClycme8BLgP+pgXHfCfwbyNidUTcFRGHtOCYktQxJhYdYLQiYm/geOCWiOhdvGdj3ZnAZwbZbUNm/t4uDr0n8HJmdjeOcwPwO61JLUnFG/cFgHorZltmzh+4IjNvA27bzeP2AF9vfH87cONuHkeSOtK4PwWUmb8EnomIj0Df1Tu/3YJD3wGc3Pj+ROCHLTimJHWMGG+jgUbEV4GTgAOAF4C/BO4F/haYBkwClmfmYKd+Bjveg8DhwN7AVuD8zLw7IvYDbgZmANuBRZn5eEt/GEkq0LgrAJKk1hj3p4AkSbtnXHUCH3DAATlz5syiY0jSuPLII49syczfGrh8XBWAmTNnsnr16qJjSNK4EhE/HWy5p4AkqaIsAJJUURYASaooC4AkVZQFQJIqqtACEBEfjIinI+JHEbG4yCySVDWFFYCImAAsAT4EzAXOjYi5ReWRpKop8j6Ao4EfZeZPACJiOXAGsKbVT/TszZcQLzzR6sNKqoCX3jqXwxYuKTpGWxRZAN4GPNfvcQ9wzMCNIuIC4AKAGTNm7NYTbdj2ErHtX3ZrX0nVtubFLRz40qvst9ceRUdpuSILQAyy7E0j02XmUuozftHd3b1bI9cd96nrdmc3SRW37Dvr+cyKp1iwo5yDZhbZCdxDfdL1Xl3A8wVlkaQ36Z1lcEdJR00usgD8E3BIRMyKiD2Ac4D/W2AeSdpJrfc8RTk//4s7BZSZv46IPwbuBiYAN2TmU0XlkaSBan0tgIKDtEmho4Fm5p3AnUVmkKSh9DYAPAUkSRVTsw9Akqqp8flPST//LQCSNJTeFoAFQJIqptb4hPQUkCRVTGAfgCRVUm8fQFkvA7UASNIQ3ugDKGcFsABI0hD6CkDBOdrFAiBJQ6j1nQIqZwmwAEjSEPr6AHYUm6NdLACSNARHA5WkivJGMEmqqN4+gCxpN7AFQJKGUPbhoC0AkjQUrwKSpGryRjBJqqiaQ0FIUjV5FZAkVVTYByBJ1eRw0JJUUTWnhJSkaqrV7AOQpEpyNFBJqiz7ACSpkuwDkKSKqjkctCRVkzeCSVJFeSOYJFVUOBaQJFWTo4FKUkU5IYwkVZRTQkpSRYUtAEmqpui7EaycFcACIElD8EYwSaqovsHgdhSbo10KKQARcXVE/CAivh8Rt0fEfkXkkKRm+i4DLThHuxTVAvgWcGRmHgX8EPjPBeWQpCF5J3AbZObfZ+avGw9XAV1F5JCkZsIbwdru48BdQ62MiAsiYnVErN68efMYxpJUdbWSDwUxsV0Hjoh7gIMGWXV5Zq5obHM58Gvg5qGOk5lLgaUA3d3dJf01SOpEZb8KqG0FIDNPbbY+Is4D/gA4JcvavpI0rkXJJ4RpWwFoJiI+CPwn4MTMfKmIDJK0Kw4G1x5fAqYA34qIxyLi7wrKIUlDajQA7ANopcycXcTzStJIlL0PoBOuApKkjuSUkJJUUdH4hLQFIEkVYwtAkirqjU7gclYAC4AkDcEpISWposIpISWpmuwDkKSK6hsOuqTngCwAkjQE+wAkqaJqTggjSdUUTgkpSdVVC0cDlaRKighPAUlSFdXCTmBJqiRbAJJUUbWgtL3AFgBJaqJmC0CSqimwD0CSKskWgCRVVISDwUlSJdVq4Y1gklRF9VNARadoDwuAJDVR7wQuZwWwAEhSE2ELQJKqycHgJKmiahFeBSRJVVQfDK6cFcACIElN2AcgSRUV9gFIUjXVIso6GKgFQJKasQ9AkirKO4ElqapsAUhSNdXvA7AASFLl1BwOuj0i4rKIyIg4oMgckjQUJ4Rpg4g4GDgNeLaoDJI0HHYCt95/A/4MSnuJraQSsA+gxSJiAbAhMx8fxrYXRMTqiFi9efPmMUgnSW+o1crbApjYrgNHxD3AQYOsuhz4c+B3h3OczFwKLAXo7u4u6a9BUqcqcwugbQUgM08dbHlEzANmAY9HBEAX8GhEHJ2ZP2tXHknaHWUeDK5tBWAomfkEMLX3cUSsB7ozc8tYZ5GkXXFKSEmqqDLfBzDmLYCBMnNm0RkkaSjeByBJFVXpKSEjYuogyw5rTxxJ6ixR8cHgHoyIs3sfRMR/AG5vXyRJ6hxR8T6Ak4ClEfER4EBgLXB0O0NJUqeoRfDr3FF0jLbYZQsgMzcCK4HjgJnAsszc3uZcktQRytwJvMsWQER8C9gIHEn9pq0bIuKBzLys3eEkqWgR5R2wbDh9AHcBf56Z2zLzSeB44BftjSVJnaHqU0JOAe6OiAcj4lPA/pn5X9ucS5I6Qr0TuJwVYDh9AFdk5hHAp4DpwD82BnqTpNIrcx/ASG4E2wT8DNhKv7F8JKnMyjwUxHBuBLswIu4H/gE4APhkZh7V7mCS1AmqPhro24FPZ+Zjbc4iSR2nVuI+gF0WgMxcPBZBJKkTBfYBSFIllXlKSAuAJDURJZ4S0gIgSU1UejhoSaoyp4SUpIqqhX0AklRJ3gksSRUV9gFIUjWV+UYwC4AkNRH2AUhSNdkHIEkVVebB4CwAktRELaCsk0JaACSpiapPCSlJlVXvBC5nBbAASFITtQh2lLQJYAGQpCaiylNCSlKV1SJK2gVsAZCkpmr2AUhSNYU3gklSNTkUhCRVVM0pISWpmmpeBSRJ1eRgcG0QERdHxNMR8VRE/HVROSSpmfqcwEWnaI+JRTxpRHwAOAM4KjNfiYipReSQpF2JCKA+KUzv92VRVAvgQuCqzHwFIDM3FZRDkpqq9RWAgoO0QVEF4FDgdyLiuxHxjxHx3qE2jIgLImJ1RKzevHnzGEaUpN7hoMt5M1jbTgFFxD3AQYOsurzxvG8BjgXeC3wtIt6Rg1xrlZlLgaUA3d3d5fsNSOpotUYFKGM/QNsKQGaeOtS6iLgQuK3xgf9wROwADgD8F19SRypjC6CoU0B3ACcDRMShwB7AloKySNKQytwHUMhVQMANwA0R8STwKnDeYKd/JKlovX0AWcIxQQspAJn5KvCHRTy3JI1EbwugjH0A3gksSU1Eia8CsgBIUhN9N4LtKDhIG1gAJKmJMt8HYAGQpCb6rgIqOEc7WAAkqQlbAJJUVX1XAVkAJKlS+u4DKN/nvwVAkpqp2QKQpGqyBSBJFRW2ACSpmnrnACvh578FQJKasQ9Akiqq1viUdDA4SaqYWr9J4cvGAiBJTUSJh4MuakKYlnnttdfo6enh5ZdfLjpKISZPnkxXVxeTJk0qOopUSm90ApevAoz7AtDT08OUKVOYOXNmX6Wuisxk69at9PT0MGvWrKLjSKXkhDAd7OWXX2b//fev3Ic/1Jum+++/f2VbP9JYKPOUkOO+AACV/PDvVeWfXRoLfX0ATggjSdXicNDayfHHHz/o8oULF3LrrbeOcRpJ7dQ3JWT5Pv8tALvj29/+dtERJI2RMrcAxv1VQEXYe++92b59O5nJxRdfzL333susWbNKeZmYVHVOCalB3X777Tz99NM88cQTfPnLX7ZlIJVQlLgFYAEYhQceeIBzzz2XCRMmMH36dE4++eSiI0lqsXAoCA3FyzClcnujD6DYHO1gARiFE044geXLl/P666+zceNG7rvvvqIjSWqxvjuBS1gB7AQehQ9/+MPce++9zJs3j0MPPZQTTzyx6EiSWiz67gQuHwvAbti+fTtQP/3zpS99qeA0ktrJCWEkqaKcElKSKqpWswUgSZXkVUCSVFHeByBJFVVzMDhJqqbeTmD7AFokIuZHxKqIeCwiVkfE0UXkaJXnnnuOD3zgA8yZM4cjjjiCa6+99k3bZCaXXHIJs2fP5qijjuLRRx8tIKmkkXJKyNb7a+CKzJwP/EXj8bg1ceJEvvjFL7J27VpWrVrFkiVLWLNmzU7b3HXXXaxbt45169axdOlSLrzwwoLSShqJMg8GV9SNYAns0/h+X+D5Vhz0im88xZrnf9mKQ/WZO30f/vJfHdF0m2nTpjFt2jQApkyZwpw5c9iwYQNz587t22bFihV87GMfIyI49thj2bZtGxs3buzbT1JnKnMfQFEF4NPA3RHxBeqtkMGn2AIi4gLgAoAZM2aMSbjRWL9+Pd/73vc45phjdlq+YcMGDj744L7HXV1dbNiwwQIgdbha4zxJGa8CalsBiIh7gIMGWXU5cArwp5n59Yg4G7geOHWw42TmUmApQHd3d9PfwK7+U2+37du3c9ZZZ3HNNdewzz777LRusD8eRxKVOl9Q3j6AthWAzBz0Ax0gIpYBf9J4eAtwXbtyjJXXXnuNs846i49+9KOceeaZb1rf1dXFc8891/e4p6eH6dOnj2VESbuhzFNCFtUJ/DzQO3TmycC6gnK0RGZy/vnnM2fOHC699NJBt1mwYAHLli0jM1m1ahX77ruvp3+kcSBKPBhcUX0AnwSujYiJwMs0zvGPVw899BBf+cpXmDdvHvPnzwfgyiuv5NlnnwVg0aJFnH766dx5553Mnj2bvfbaixtvvLHAxJKGq1biM7WFFIDM/H/Ae4p47nZ4//vfv8sOoohgyZIlY5RIUqs4HLQkVVTffQA7is3RDhYASWrCFoAkVVSZp4S0AEhSEzWHg5akanIwOEmqqDIPBmcBaIGPf/zjTJ06lSOPPLJv2Ysvvshpp53GIYccwmmnncbPf/7zvnWf+9znmD17Nocddhh33333oMdstr+ksRNOCalmFi5cyMqVK3dadtVVV3HKKaewbt06TjnlFK666ioA1qxZw/Lly3nqqadYuXIlF110Ea+//vqbjjnU/pLGVq2vF7h8FaCoO4Hb467F8LMnWnvMg+bBh5p/+J5wwgmsX79+p2UrVqzg/vvvB+C8887jpJNO4vOf/zwrVqzgnHPOYc8992TWrFnMnj2bhx9+mOOOO25Y+0saW/YBaMReeOGFvrF+pk2bxqZNm4Chh4Ue7v6SxlaZp4QsVwtgF/+pdwKHhZbGF1sAGrEDDzyQjRs3ArBx40amTp0KDH9Y6KH2lzS2osQTwlgA2mTBggXcdNNNANx0002cccYZfcuXL1/OK6+8wjPPPMO6des4+uijh72/pLHllJBq6txzz+X+++9ny5YtdHV1ccUVV7B48WLOPvtsrr/+embMmMEtt9wCwBFHHMHZZ5/N3LlzmThxIkuWLGHChAkAfOITn2DRokV0d3cPub+ksdU7HPT/fODHfG31c803bqMrz5zHe2e+taXHjPHUrOnu7s7Vq1fvtGzt2rXMmTOnoESdwddAap/M5PMrn+bZF/+50BwXnTSbI9+2727tGxGPZGb3wOW2ACSpiYhg8YcOLzpGW9gHIEkVVYoCMJ5OY7ValX92SaMz7gvA5MmT2bp1ayU/CDOTrVu3Mnny5KKjSBqHxn0fQFdXFz09PWzevLnoKIWYPHkyXV1dRceQNA6N+wIwadIkZs2aVXQMSRp3xv0pIEnS7rEASFJFWQAkqaLG1Z3AEbEZ+Olu7n4AsKWFcdqh0zOab/Q6PWOn54POz9iJ+d6emb81cOG4KgCjERGrB7sVupN0ekbzjV6nZ+z0fND5GTs9X3+eApKkirIASFJFVakALC06wDB0ekbzjV6nZ+z0fND5GTs9X5/K9AFIknZWpRaAJKkfC4AkVVQpCkBEfDAino6IH0XE4kHWR0T898b670fEu4e7b5H5IuLgiLgvItZGxFMR8SedlK/f+gkR8b2I+GY78o02Y0TsFxG3RsQPGq/lcR2W708bv98nI+KrEdGW4V2HkfHwiPhORLwSEZeNZN8i843V+2Q0Gfutb/t7ZUQyc1x/AROAHwPvAPYAHgfmDtjmdOAuIIBjge8Od9+C800D3t34fgrww07K12/9pcD/Ab7Zab/jxrqbgE80vt8D2K9T8gFvA54BfqPx+GvAwoJew6nAe4HPApeNZN+C87X9fTLajGP1XhnpVxlaAEcDP8rMn2Tmq8By4IwB25wBLMu6VcB+ETFtmPsWli8zN2bmowCZ+StgLfUPjI7IBxARXcDvA9e1OFdLMkbEPsAJwPUAmflqZm7rlHyNdROB34iIicBewPMtzjesjJm5KTP/CXhtpPsWmW+M3iejyghj9l4ZkTIUgLcBz/V73MObf/lDbTOcfYvM1yciZgLvAr7bYfmuAf4M2NHiXMN9/l1t8w5gM3Bjo+l9XUT8Zqfky8wNwBeAZ4GNwC8y8+9bnG+4Gdux73C15Dna+D6B0We8hva/V0akDAUgBlk28NrWobYZzr6jNZp89ZURewNfBz6dmb9sYbZdPnezbSLiD4BNmflIizMNNJrXcCLwbuBvM/NdwD8DrT6HPZrX8C3U/4ucBUwHfjMi/rDF+YZ8/jHYd7hG/Rxtfp/AKDKO4XtlRMpQAHqAg/s97uLNTeihthnOvkXmIyImUf+jvjkzb2txttHmex+wICLWU28OnxwR/7vDMvYAPZnZ+x/hrdQLQqfkOxV4JjM3Z+ZrwG3A8S3ON9yM7dh3uEb1HGPwPoHRZRyr98rIFN0JMdov6v/h/YT6f1C9HTNHDNjm99m5A+7h4e5bcL4AlgHXdOLrN2Cbk2hfJ/CoMgIPAoc1vv8r4OpOyQccAzxF/dx/UO+wvriI17Dftn/Fzp2sHfE+aZKv7e+T0WYcsK5t75UR/0xFB2jRL+Z06j3/PwYubyxbBCzq9weypLH+CaC72b6dkg94P/Um5veBxxpfp3dKvgHHaOsf9Sh/x/OB1Y3X8Q7gLR2W7wrgB8CTwFeAPQt6DQ+i/l/uL4Ftje/36aD3yaD5xup9MtrXcKzeKyP5cigISaqoMvQBSJJ2gwVAkirKAiBJFWUBkKSKsgBIUkVZAFRZjVFCL+r3eHpE3Nqm5/rXEfEXu9jmCxFxcjueXxqMl4GqshrjxnwzM48cg+f6NrAgM7c02ebtwJcz83fbnUcCWwCqtquAd0bEYxFxdUTMjIgnASJiYUTcERHfiIhnIuKPI+LSxoByqyLirY3t3hkRKyPikYh4MCIOH/gkEXEo8EpmbomIKY3jTWqs2yci1kfEpMz8KbB/RBw0hq+BKswCoCpbDPw4M+dn5n8cZP2RwL+jPgzwZ4GXsj6g3HeAjzW2WUp96Ib3AJcBfzPIcd4H9B+u+H7qQ0MAnAN8PevjANHY7n2j/LmkYZlYdACpg93X+MD+VUT8AvhGY/kTwFGN0SePB26J6Bsocs9BjjON+pDUva6jPizwHcC/Bz7Zb90m6qOCSm1nAZCG9kq/73f0e7yD+nunBmzLzPm7OM6/APv2PsjMhxqnm04EJmTmk/22ndzYXmo7TwGpyn5FfQrB3ZL1MeefiYiPQN+8v789yKZrgdkDli0DvgrcOGD5odQHhZPazgKgysrMrcBDjcnYr97Nw3wUOD8iHqc+rPNgUyU+ALwr+p0nAm4G3kK9CAB9Y9rPpj5yqdR2XgYqjYGIuBb4Rmbe03j8b4AzMvOP+m3zYeqTm/+XgmKqYuwDkMbGldQnfyEi/gfwIepjy/c3EfjiGOdShdkCkKSKsg9AkirKAiBJFWUBkKSKsgBIUkVZACSpov4/+QGZUlrJI0YAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -106,1440 +106,6 @@ "swiftdiff['vx'].plot.line(x=\"time (y)\")" ] }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'vx' (time (y): 221)>\n",
    -       "array([ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "...\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n",
    -       "       -8.8817842e-16])\n",
    -       "Coordinates:\n",
    -       "    id        float64 2.0\n",
    -       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    " - ], - "text/plain": [ - "\n", - "array([ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - "...\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16, -8.8817842e-16, -8.8817842e-16, -8.8817842e-16,\n", - " -8.8817842e-16])\n", - "Coordinates:\n", - " id float64 2.0\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftdiff['vx'].sel(id=2)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'vx' (time (y): 221)>\n",
    -       "array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n",
    -       "       nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n",
    -       "Coordinates:\n",
    -       "    id        float64 100.0\n",
    -       "  * time (y)  (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    " - ], - "text/plain": [ - "\n", - "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])\n", - "Coordinates:\n", - " id float64 100.0\n", - " * time (y) (time (y)) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftdiff.sel(id=100)['vx']" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'vx' (time: 221)>\n",
    -       "array([ 0.        , -0.02730963, -0.05461883, -0.08192718, -0.10923426,\n",
    -       "       -0.13653965, -0.16384292, -0.19114364, -0.21844141, -0.24573578,\n",
    -       "       -0.27302634, -0.30031266, -0.32759433, -0.35487091, -0.38214199,\n",
    -       "       -0.40940715, -0.43666596, -0.463918  , -0.49116285, -0.51840009,\n",
    -       "       -0.5456293 , -0.57285005, -0.60006193, -0.62726452, -0.6544574 ,\n",
    -       "       -0.68164014, -0.70881234, -0.73597358, -0.76312342, -0.79026147,\n",
    -       "       -0.8173873 , -0.8445005 , -0.87160064, -0.89868733, -0.92576014,\n",
    -       "       -0.95281866, -0.97986247, -1.00689117, -1.03390434, -1.06090158,\n",
    -       "       -1.08788246, -1.11484659, -1.14179356, -1.16872296, -1.19563437,\n",
    -       "       -1.22252741, -1.24940165, -1.27625671, -1.30309216, -1.32990762,\n",
    -       "       -1.35670269, -1.38347696, -1.41023003, -1.43696151, -1.463671  ,\n",
    -       "       -1.4903581 , -1.51702243, -1.54366359, -1.57028119, -1.59687484,\n",
    -       "       -1.62344416, -1.64998874, -1.67650822, -1.70300221, -1.72947032,\n",
    -       "       -1.75591217, -1.78232739, -1.8087156 , -1.83507643, -1.8614095 ,\n",
    -       "       -1.88771444, -1.91399088, -1.94023846, -1.96645681, -1.99264557,\n",
    -       "       -2.01880437, -2.04493287, -2.0710307 , -2.09709752, -2.12313297,\n",
    -       "       -2.1491367 , -2.17510838, -2.20104766, -2.2269542 , -2.25282767,\n",
    -       "       -2.27866774, -2.30447407, -2.33024634, -2.35598424, -2.38168744,\n",
    -       "       -2.40735563, -2.43298851, -2.45858576, -2.48414708, -2.50967219,\n",
    -       "       -2.53516079, -2.56061259, -2.58602731, -2.61140468, -2.63674443,\n",
    -       "...\n",
    -       "       -3.28166908, -3.30592115, -3.33013189, -3.3543014 , -3.37842979,\n",
    -       "       -3.40251722, -3.42656386, -3.45056991, -3.47453562, -3.49846126,\n",
    -       "       -3.52234715, -3.54619364, -3.57000113, -3.59377005, -3.61750092,\n",
    -       "       -3.64119426, -3.66485068, -3.68847086, -3.71205553, -3.73560548,\n",
    -       "       -3.75912161, -3.78260489, -3.80605637, -3.82947723, -3.85286873,\n",
    -       "       -3.87623226, -3.89956936, -3.92288168, -3.94617105, -3.96943947,\n",
    -       "       -3.99268912, -4.01592242, -4.03914199, -4.06235073, -4.08555183,\n",
    -       "       -4.10874879, -4.13194551, -4.15514625, -4.17835577, -4.20157933,\n",
    -       "       -4.2248228 , -4.24809272, -4.2713964 , -4.29474206, -4.31813893,\n",
    -       "       -4.34159746, -4.36512951, -4.38874856, -4.41247007, -4.43631182,\n",
    -       "       -4.46029439, -4.48444172, -4.50878191, -4.53334814, -4.55817998,\n",
    -       "       -4.58332498, -4.60884098, -4.63479915, -4.66128825, -4.68842081,\n",
    -       "       -4.71634199, -4.7452432 , -4.77538326, -4.80712299, -4.84098468,\n",
    -       "       -4.87776098, -4.91873117, -4.96614064, -5.02443531, -5.10428159,\n",
    -       "       -5.24263186, -5.9750488 ,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan,         nan,         nan,         nan,         nan,\n",
    -       "               nan])\n",
    -       "Coordinates:\n",
    -       "    id       int64 100\n",
    -       "  * time     (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506
    " - ], - "text/plain": [ - "\n", - "array([ 0. , -0.02730963, -0.05461883, -0.08192718, -0.10923426,\n", - " -0.13653965, -0.16384292, -0.19114364, -0.21844141, -0.24573578,\n", - " -0.27302634, -0.30031266, -0.32759433, -0.35487091, -0.38214199,\n", - " -0.40940715, -0.43666596, -0.463918 , -0.49116285, -0.51840009,\n", - " -0.5456293 , -0.57285005, -0.60006193, -0.62726452, -0.6544574 ,\n", - " -0.68164014, -0.70881234, -0.73597358, -0.76312342, -0.79026147,\n", - " -0.8173873 , -0.8445005 , -0.87160064, -0.89868733, -0.92576014,\n", - " -0.95281866, -0.97986247, -1.00689117, -1.03390434, -1.06090158,\n", - " -1.08788246, -1.11484659, -1.14179356, -1.16872296, -1.19563437,\n", - " -1.22252741, -1.24940165, -1.27625671, -1.30309216, -1.32990762,\n", - " -1.35670269, -1.38347696, -1.41023003, -1.43696151, -1.463671 ,\n", - " -1.4903581 , -1.51702243, -1.54366359, -1.57028119, -1.59687484,\n", - " -1.62344416, -1.64998874, -1.67650822, -1.70300221, -1.72947032,\n", - " -1.75591217, -1.78232739, -1.8087156 , -1.83507643, -1.8614095 ,\n", - " -1.88771444, -1.91399088, -1.94023846, -1.96645681, -1.99264557,\n", - " -2.01880437, -2.04493287, -2.0710307 , -2.09709752, -2.12313297,\n", - " -2.1491367 , -2.17510838, -2.20104766, -2.2269542 , -2.25282767,\n", - " -2.27866774, -2.30447407, -2.33024634, -2.35598424, -2.38168744,\n", - " -2.40735563, -2.43298851, -2.45858576, -2.48414708, -2.50967219,\n", - " -2.53516079, -2.56061259, -2.58602731, -2.61140468, -2.63674443,\n", - "...\n", - " -3.28166908, -3.30592115, -3.33013189, -3.3543014 , -3.37842979,\n", - " -3.40251722, -3.42656386, -3.45056991, -3.47453562, -3.49846126,\n", - " -3.52234715, -3.54619364, -3.57000113, -3.59377005, -3.61750092,\n", - " -3.64119426, -3.66485068, -3.68847086, -3.71205553, -3.73560548,\n", - " -3.75912161, -3.78260489, -3.80605637, -3.82947723, -3.85286873,\n", - " -3.87623226, -3.89956936, -3.92288168, -3.94617105, -3.96943947,\n", - " -3.99268912, -4.01592242, -4.03914199, -4.06235073, -4.08555183,\n", - " -4.10874879, -4.13194551, -4.15514625, -4.17835577, -4.20157933,\n", - " -4.2248228 , -4.24809272, -4.2713964 , -4.29474206, -4.31813893,\n", - " -4.34159746, -4.36512951, -4.38874856, -4.41247007, -4.43631182,\n", - " -4.46029439, -4.48444172, -4.50878191, -4.53334814, -4.55817998,\n", - " -4.58332498, -4.60884098, -4.63479915, -4.66128825, -4.68842081,\n", - " -4.71634199, -4.7452432 , -4.77538326, -4.80712299, -4.84098468,\n", - " -4.87776098, -4.91873117, -4.96614064, -5.02443531, -5.10428159,\n", - " -5.24263186, -5.9750488 , nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan,\n", - " nan])\n", - "Coordinates:\n", - " id int64 100\n", - " * time (time) float64 0.0 0.0006845 0.001369 ... 0.1492 0.1499 0.1506" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftersim.ds.sel(id=100)['vx']" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb b/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb index 76094351b..dec0bb58b 100644 --- a/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb +++ b/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb @@ -163,7 +163,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -198,7 +198,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -587,28 +587,18 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'px' (id: 16)>\n",
    -       "array([ 0.0000000e+00,  0.0000000e+00,  4.4408921e-16,  0.0000000e+00,\n",
    -       "        0.0000000e+00, -4.4408921e-16,  4.4408921e-16,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,\n",
    -       "        0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00])\n",
    +       "
    <xarray.DataArray 'px' (id: 8)>\n",
    +       "array([0., 0., 0., 0., 0., 0., 0., 0.])\n",
            "Coordinates:\n",
    -       "  * id       (id) int64 101 102 103 104 105 106 107 ... 111 112 113 114 115 116\n",
    -       "    time     float64 110.0
    " + " * id (id) int64 1 2 3 4 5 6 7 8\n", + " time float64 11.0
    " ], "text/plain": [ - "\n", - "array([ 0.0000000e+00, 0.0000000e+00, 4.4408921e-16, 0.0000000e+00,\n", - " 0.0000000e+00, -4.4408921e-16, 4.4408921e-16, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,\n", - " 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00])\n", + "\n", + "array([0., 0., 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", - " * id (id) int64 101 102 103 104 105 106 107 ... 111 112 113 114 115 116\n", - " time float64 110.0" + " * id (id) int64 1 2 3 4 5 6 7 8\n", + " time float64 11.0" ] }, "execution_count": 13, @@ -617,7 +607,7 @@ } ], "source": [ - "swiftdiff['px'].sel(id=tpidx).isel(time=10)" + "swiftdiff['px'].sel(id=plidx).isel(time=1)" ] }, { diff --git a/examples/symba_swifter_comparison/mars_disk/param.swifter.in b/examples/symba_swifter_comparison/mars_disk/param.swifter.in index 4bdc100aa..79e415a10 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swifter.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swifter.in @@ -1,5 +1,5 @@ T0 0.0 -TSTOP 3000.0 +TSTOP 4200.0 DT 600.0 PL_IN pl.swifter.in TP_IN tp.in diff --git a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in index 8427450f7..26da39092 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in @@ -1,6 +1,6 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 3000.0 +TSTOP 4200.0 DT 600.0 PL_IN pl.swiftest.in TP_IN tp.in @@ -24,7 +24,7 @@ BIG_DISCARD no RHILL_PRESENT yes GMTINY 1000.0 ENERGY yes -FRAGMENTATION yes +FRAGMENTATION no ROTATION yes MU2KG 1.0 DU2M 1.0 diff --git a/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb index 960e37a53..96c456367 100644 --- a/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/mars_disk/swiftest_vs_swifter.ipynb @@ -21,9 +21,9 @@ "output_type": "stream", "text": [ "Reading Swifter file param.swifter.in\n", - "Reading in time 2.520e+03\n", + "Reading in time 4.200e+03\n", "Creating Dataset\n", - "Successfully converted 43 output frames.\n", + "Successfully converted 8 output frames.\n", "Swifter simulation data stored as xarray DataSet .ds\n" ] } @@ -43,9 +43,9 @@ "output_type": "stream", "text": [ "Reading Swiftest file param.swiftest.in\n", - "Reading in time 2.520e+03\n", + "Reading in time 4.200e+03\n", "Creating Dataset\n", - "Successfully converted 43 output frames.\n", + "Successfully converted 8 output frames.\n", "\n", "Adding particle info to Dataset\n", "Swiftest simulation data stored as xarray DataSet .ds\n" @@ -80,7 +80,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -109,16 +109,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "last = swiftdiff.isel(time=-2)" + "last = swiftdiff.isel(time=1)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -127,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -485,44 +485,429 @@ " fill: currentColor;\n", "}\n", "
    <xarray.Dataset>\n",
    -       "Dimensions:  (id: 1)\n",
    +       "Dimensions:  ()\n",
            "Coordinates:\n",
    -       "  * id       (id) float64 85.0\n",
    -       "    time     float64 2.46e+03\n",
    +       "    id       float64 1.13e+03\n",
    +       "    time     float64 600.0\n",
            "Data variables:\n",
    -       "    GMass    (id) float64 0.0\n",
    -       "    Radius   (id) float64 0.0\n",
    -       "    px       (id) float64 0.0\n",
    -       "    py       (id) float64 0.0\n",
    -       "    pz       (id) float64 -1.819e-12\n",
    -       "    vx       (id) float64 0.0\n",
    -       "    vy       (id) float64 0.0\n",
    -       "    vz       (id) float64 -1.11e-16
    " + " GMass float64 0.0\n", + " Radius float64 0.0\n", + " px float64 0.0\n", + " py float64 0.0\n", + " pz float64 2.547e-11\n", + " vx float64 -3.286e-11\n", + " vy float64 8.617e-11\n", + " vz float64 -2.795e-11" ], "text/plain": [ "\n", - "Dimensions: (id: 1)\n", + "Dimensions: ()\n", "Coordinates:\n", - " * id (id) float64 85.0\n", - " time float64 2.46e+03\n", + " id float64 1.13e+03\n", + " time float64 600.0\n", "Data variables:\n", - " GMass (id) float64 0.0\n", - " Radius (id) float64 0.0\n", - " px (id) float64 0.0\n", - " py (id) float64 0.0\n", - " pz (id) float64 -1.819e-12\n", - " vx (id) float64 0.0\n", - " vy (id) float64 0.0\n", - " vz (id) float64 -1.11e-16" + " GMass float64 0.0\n", + " Radius float64 0.0\n", + " px float64 0.0\n", + " py float64 0.0\n", + " pz float64 2.547e-11\n", + " vx float64 -3.286e-11\n", + " vy float64 8.617e-11\n", + " vz float64 -2.795e-11" ] }, - "execution_count": 11, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "badval" + "badval.sel(id=1130)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'px' (time: 8)>\n",
    +       "array([ 0.00000000e+00, -4.65661287e-10, -4.09223139e-06, -1.73607841e-05,\n",
    +       "       -4.62410972e-05,  3.44669074e-03, -3.59948692e-01,  2.63233909e+00])\n",
    +       "Coordinates:\n",
    +       "    id       float64 2.0\n",
    +       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 3e+03 3.6e+03 4.2e+03
    " + ], + "text/plain": [ + "\n", + "array([ 0.00000000e+00, -4.65661287e-10, -4.09223139e-06, -1.73607841e-05,\n", + " -4.62410972e-05, 3.44669074e-03, -3.59948692e-01, 2.63233909e+00])\n", + "Coordinates:\n", + " id float64 2.0\n", + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 3e+03 3.6e+03 4.2e+03" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "swiftdiff.sel(id=2)['px']" ] }, { diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index d4a94627e..501ed050a 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -432,10 +432,6 @@ subroutine calculate_system_energy(linclude_fragments) logical, dimension(:), allocatable :: lexclude_tmp logical :: lk_plpl - ! Because we're making a copy of symba_pl with the excludes/fragments appended, we need to deallocate the - ! big k_plpl array and recreate it when we're done, otherwise we run the risk of blowing up the memory by - ! allocating two of these ginormous arrays simulteouously. This is not particularly efficient, but as this - ! subroutine should be called relatively infrequently, it shouldn't matter too much. ! Build the internal planet list out of the non-excluded bodies and optionally with fragments appended. This ! will get passed to the energy calculation subroutine so that energy is computed exactly the same way is it @@ -447,34 +443,23 @@ subroutine calculate_system_energy(linclude_fragments) elsewhere tmpsys%pl%status(1:npl_new) = ACTIVE end where - - select type(plwksp => tmpsys%pl) - class is (symba_pl) - select type(param) - class is (symba_parameters) - if (linclude_fragments) call add_fragments_to_tmpsys() ! Adds or updates the fragment properties to their current values - plwksp%nplm = count(plwksp%Gmass > param%Gmtiny / mscale) - end select - end select - + + + ! Because we're making a copy of symba_pl with the excludes/fragments appended, we need to deallocate the + ! big k_plpl array and recreate it when we're done, otherwise we run the risk of blowing up the memory by + ! allocating two of these ginormous arrays simulteouously. This is not particularly efficient, but as this + ! subroutine should be called relatively infrequently, it shouldn't matter too much. lk_plpl = allocated(pl%k_plpl) if (lk_plpl) deallocate(pl%k_plpl) - call tmpsys%pl%eucl_index() + call tmpsys%pl%index(param) call tmpsys%get_energy_and_momentum(param) ! Restore the big array deallocate(tmpsys%pl%k_plpl) - select type(pl) - class is (symba_pl) - select type(param) - class is (symba_parameters) - pl%nplm = count(pl%Gmass > param%Gmtiny) - end select - end select - - if (lk_plpl) call pl%eucl_index() + + if (lk_plpl) call pl%index(param) ! Calculate the current fragment energy and momentum balances if (linclude_fragments) then diff --git a/src/helio/helio_util.f90 b/src/helio/helio_util.f90 new file mode 100644 index 000000000..3b5ee6116 --- /dev/null +++ b/src/helio/helio_util.f90 @@ -0,0 +1,21 @@ +submodule(helio_classes) s_helio_eucl + use swiftest +contains + + module subroutine helio_util_index_eucl_plpl(self, param) + !! author: David A. Minton + !! + !! Wrapper for the indexing method for WHM massive bodies. Sorts the massive bodies by heliocentric distance and then flattens the pl-pl upper triangular matrix + implicit none + ! Arguments + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + call self%sort("mass", ascending=.false.) + call util_index_eucl_plpl(self, param) + + return + end subroutine helio_util_index_eucl_plpl + +end submodule s_helio_eucl + diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index efa326a0f..156f0ea50 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -38,6 +38,7 @@ module helio_classes contains procedure :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates procedure :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun + procedure :: index => helio_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: accel_gr => helio_gr_kick_getacch_pl !! Acceleration term arising from the post-Newtonian correction procedure :: gr_pos_kick => helio_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction procedure :: accel => helio_kick_getacch_pl !! Compute heliocentric accelerations of massive bodies @@ -212,6 +213,12 @@ module subroutine helio_step_tp(self, system, param, t, dt) real(DP), intent(in) :: t !! Current simulation time real(DP), intent(in) :: dt !! Stepsizee end subroutine helio_step_tp + + module subroutine helio_util_index_eucl_plpl(self, param) + implicit none + class(helio_pl), intent(inout) :: self !! Helio massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine helio_util_index_eucl_plpl end interface end module helio_classes diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 1ee3bdf80..6a85bba3e 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -216,7 +216,7 @@ module swiftest_classes ! Massive body-specific concrete methods ! These are concrete because they are the same implemenation for all integrators procedure :: discard => discard_pl !! Placeholder method for discarding massive bodies - procedure :: eucl_index => eucl_dist_index_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix + procedure :: index => util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: accel_int => kick_getacch_int_pl !! Compute direct cross (third) term heliocentric accelerations of massive bodies procedure :: accel_obl => obl_acc_pl !! Compute the barycentric accelerations of bodies due to the oblateness of the central body procedure :: setup => setup_pl !! A base constructor that sets the number of bodies and allocates and initializes all arrays @@ -452,9 +452,10 @@ module pure elemental subroutine drift_one(mu, px, py, pz, vx, vy, vz, dt, iflag integer(I4B), intent(out) :: iflag !! iflag : error status flag for Danby drift (0 = OK, nonzero = ERROR) end subroutine drift_one - module subroutine eucl_dist_index_plpl(self) + module subroutine util_index_eucl_plpl(self, param) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index f2b9134d8..cf809453b 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -84,6 +84,7 @@ module symba_classes type(symba_particle_info), dimension(:), allocatable :: info contains procedure :: make_family => symba_collision_make_family_pl !! When a single body is involved in more than one collision in a single step, it becomes part of a family + procedure :: index => symba_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: discard => symba_discard_pl !! Process massive body discards procedure :: drift => symba_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level procedure :: encounter_check => symba_encounter_check_pl !! Checks if massive bodies are going through close encounters with each other @@ -352,6 +353,12 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casesupercatastrophic + module subroutine symba_util_index_eucl_plpl(self, param) + implicit none + class(symba_pl), intent(inout) :: self !! SyMBA massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_util_index_eucl_plpl + module subroutine symba_io_write_discard(self, param) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 0b9caebcc..1b8d13b45 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -34,6 +34,7 @@ module whm_classes procedure :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates procedure :: vh2vj => whm_coord_vh2vj_pl !! Convert velocity vectors from heliocentric to Jacobi coordinates procedure :: drift => whm_drift_pl !! Loop through massive bodies and call Danby drift routine to jacobi coordinates + procedure :: index => whm_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: accel_gr => whm_gr_kick_getacch_pl !! Acceleration term arising from the post-Newtonian correction procedure :: gr_pos_kick => whm_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction procedure :: accel => whm_kick_getacch_pl !! Compute heliocentric accelerations of massive bodies @@ -108,6 +109,13 @@ module subroutine whm_drift_pl(self, system, param, dt) real(DP), intent(in) :: dt !! Stepsize end subroutine whm_drift_pl + module subroutine whm_util_index_eucl_plpl(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(whm_pl), intent(inout) :: self !! WHM massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine whm_util_index_eucl_plpl + !> Get heliocentric accelration of massive bodies module subroutine whm_kick_getacch_pl(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_cb, swiftest_parameters diff --git a/src/python/orbel.f90 b/src/python_bindings/orbel.f90 similarity index 87% rename from src/python/orbel.f90 rename to src/python_bindings/orbel.f90 index 4dd26a68d..59f24e8b2 100644 --- a/src/python/orbel.f90 +++ b/src/python_bindings/orbel.f90 @@ -4,7 +4,7 @@ module orbel public :: xv2el contains pure elemental subroutine xv2el(mu, px, py, pz, vx, vy, vz, a, e, inc, capom, omega, capm) - use module_interfaces, only : orbel_xv2el + use swiftest_classes, only : orbel_xv2el implicit none ! Arguments real*8, intent(in) :: mu, px, py, pz, vx, vy, vz @@ -26,7 +26,7 @@ pure elemental subroutine xv2el(mu, px, py, pz, vx, vy, vz, a, e, inc, capom, om real*8, dimension(3) :: x, v x = [px, py, pz] v = [vx, vy, vz] - call orbel_xv2el(x, v, mu, a, e, inc, capom, omega, capm) + call orbel_xv2el(mu, x(:), v(:), a, e, inc, capom, omega, capm) return end subroutine xv2el end module orbel \ No newline at end of file diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 049a0acf3..4a253a263 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -145,7 +145,7 @@ module subroutine setup_initialize_system(self, param) call self%pl%el2xv(self%cb) call self%tp%el2xv(self%cb) end if - call self%pl%eucl_index() + call self%pl%index(param) if (.not.param%lrhill_present) call self%pl%set_rhill(self%cb) self%pl%lfirst = param%lfirstkick self%tp%lfirst = param%lfirstkick diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 5ba08558c..4ca907fe6 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -901,7 +901,6 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, !Copy over or set integration parameters for new bodies plnew%lcollision(1:nfrag) = .false. plnew%ldiscard(1:nfrag) = .false. - plnew%lmtiny(1:nfrag) = plnew%Gmass(1:nfrag) > param%GMTINY plnew%levelg(1:nfrag) = pl%levelg(ibiggest) plnew%levelm(1:nfrag) = pl%levelm(ibiggest) diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 67f8063b5..166f6e804 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -77,19 +77,13 @@ module subroutine symba_setup_initialize_system(self, param) call system%pltpenc_list%setup(0) call system%plplenc_list%setup(0) call system%plplcollision_list%setup(0) - select type(pl => system%pl) - class is (symba_pl) - call pl%sort("mass", ascending=.false.) - select type(param) - class is (symba_parameters) - pl%lmtiny(:) = pl%Gmass(:) > param%GMTINY - pl%nplm = count(pl%lmtiny(:)) - if (param%lrestart) then - call symba_io_read_particle(system, param) - else - call symba_setup_initialize_particle_info(system, param) - end if - end select + select type(param) + class is (symba_parameters) + if (param%lrestart) then + call symba_io_read_particle(system, param) + else + call symba_setup_initialize_particle_info(system, param) + end if end select end associate diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 710936001..05b4d9aa9 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -208,7 +208,7 @@ module subroutine symba_util_copy_encounter(self, source) return end subroutine symba_util_copy_encounter - + module subroutine symba_util_fill_arr_info(keeps, inserts, lfill_list) !! author: David A. Minton @@ -320,6 +320,52 @@ module subroutine symba_util_fill_tp(self, inserts, lfill_list) end subroutine symba_util_fill_tp + module subroutine symba_util_index_eucl_plpl(self, param) + !! author: Jacob R. Elliott and David A. Minton + !! + !! Turns i,j indices into k index for use in the Euclidean distance matrix. This also sets the lmtiny flag and computes the + !! number of interactions that excludes semi-interacting bodies with each other (Gmass < GMTINY). + !! This method will also sort the bodies in descending order by Mass + !! + !! Reference: + !! + !! Mélodie Angeletti, Jean-Marie Bonny, Jonas Koko. Parallel Euclidean distance matrix computation on big datasets *. + !! 2019. hal-0204751 + implicit none + ! Arguments + class(symba_pl), intent(inout) :: self !! SyMBA massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I8B) :: i, j, counter, npl, nplm + + associate(pl => self, nplpl => self%nplpl, nplplm => self%nplplm) + npl = int(self%nbody, kind=I8B) + call pl%sort("mass", ascending=.false.) + + select type(param) + class is (symba_parameters) + pl%lmtiny(1:npl) = pl%Gmass(1:npl) < param%GMTINY + end select + pl%nplm = count(.not. pl%lmtiny(1:npl)) + + nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column + nplplm = (nplm * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column + if (allocated(self%k_plpl)) deallocate(self%k_plpl) ! Reset the index array if it's been set previously + allocate(self%k_plpl(2, nplpl)) + do i = 1, npl + counter = (i - 1_I8B) * npl - i * (i - 1_I8B) / 2_I8B + 1_I8B + do j = i + 1_I8B, npl + self%k_plpl(1, counter) = i + self%k_plpl(2, counter) = j + counter = counter + 1_I8B + end do + end do + end associate + + return + end subroutine symba_util_index_eucl_plpl + + module subroutine symba_util_peri_pl(self, system, param) !! author: David A. Minton !! @@ -462,18 +508,14 @@ module subroutine symba_util_rearray_pl(self, system, param) pl%status(1:npl) = ACTIVE pl%ldiscard(1:npl) = .false. pl%lcollision(1:npl) = .false. - pl%lmtiny(1:npl) = pl%Gmass(1:npl) > param%GMTINY pl%lmask(1:npl) = .true. elsewhere pl%ldiscard(1:npl) = .true. pl%lmask(1:npl) = .false. end where - pl%nplm = count(pl%lmtiny(1:npl) .and. pl%lmask(1:npl)) - ! Reindex the new list of bodies - call pl%sort("mass", ascending=.false.) - call pl%eucl_index() + call pl%index(param) ! Reset the kinship trackers pl%kin(1:npl)%nchild = 0 diff --git a/src/eucl/eucl.f90 b/src/util/util_index.f90 similarity index 73% rename from src/eucl/eucl.f90 rename to src/util/util_index.f90 index af1646e4c..f852a492a 100644 --- a/src/eucl/eucl.f90 +++ b/src/util/util_index.f90 @@ -1,8 +1,8 @@ -submodule (swiftest_classes) s_eucl +submodule (swiftest_classes) s_util_index use swiftest contains - module subroutine eucl_dist_index_plpl(self) + module subroutine util_index_eucl_plpl(self, param) !! author: Jacob R. Elliott and David A. Minton !! !! Turns i,j indices into k index for use in the Euclidean distance matrix @@ -13,13 +13,14 @@ module subroutine eucl_dist_index_plpl(self) !! 2019. hal-0204751 implicit none ! Arguments - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body objec + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals integer(I8B) :: i, j, counter, npl npl = int(self%nbody, kind=I8B) associate(nplpl => self%nplpl) - nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, nplm x npl, minus first column + nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column if (allocated(self%k_plpl)) deallocate(self%k_plpl) ! Reset the index array if it's been set previously allocate(self%k_plpl(2, nplpl)) do i = 1, npl @@ -33,6 +34,6 @@ module subroutine eucl_dist_index_plpl(self) end associate return - end subroutine eucl_dist_index_plpl + end subroutine util_index_eucl_plpl - end submodule s_eucl +end submodule s_util_index diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index 80d87209c..1dee5fdb3 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -270,7 +270,6 @@ module subroutine util_resize_pl(self, nnew) call util_resize(self%k2, nnew) call util_resize(self%Q, nnew) call util_resize(self%tlag, nnew) - call self%eucl_index() return end subroutine util_resize_pl diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 954406d95..77e00cf66 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -39,6 +39,7 @@ module subroutine util_spill_arr_char_string(keeps, discards, lspill_list, ldest return end subroutine util_spill_arr_char_string + module subroutine util_spill_arr_DP(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton @@ -78,6 +79,7 @@ module subroutine util_spill_arr_DP(keeps, discards, lspill_list, ldestructive) return end subroutine util_spill_arr_DP + module subroutine util_spill_arr_DPvec(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton !! @@ -120,6 +122,7 @@ module subroutine util_spill_arr_DPvec(keeps, discards, lspill_list, ldestructiv return end subroutine util_spill_arr_DPvec + module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton !! @@ -157,6 +160,7 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) return end subroutine util_spill_arr_I4B + module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index ad44fbefb..3510769a7 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -79,7 +79,6 @@ module subroutine whm_setup_initialize_system(self, param) call setup_initialize_system(self, param) ! First we need to make sure that the massive bodies are sorted by heliocentric distance before computing jacobies call util_set_ir3h(self%pl) - call self%pl%sort("ir3h", ascending=.false.) ! Make sure that the discard list gets allocated initially call self%tp_discards%setup(0, param) diff --git a/src/whm/whm_util.f90 b/src/whm/whm_util.f90 index 537866d0e..6689e78cb 100644 --- a/src/whm/whm_util.f90 +++ b/src/whm/whm_util.f90 @@ -67,6 +67,22 @@ module subroutine whm_util_fill_pl(self, inserts, lfill_list) end subroutine whm_util_fill_pl + module subroutine whm_util_index_eucl_plpl(self, param) + !! author: David A. Minton + !! + !! Wrapper for the indexing method for WHM massive bodies. Sorts the massive bodies by heliocentric distance and then flattens the pl-pl upper triangular matrix + implicit none + ! Arguments + class(whm_pl), intent(inout) :: self !! WHM massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + call self%sort("ir3h", ascending=.false.) + call util_index_eucl_plpl(self, param) + + return + end subroutine whm_util_index_eucl_plpl + + module subroutine whm_util_resize_pl(self, nnew) !! author: David A. Minton !! From 45c61b48a28a656fa16931656140957845dfe4eb Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 09:53:22 -0400 Subject: [PATCH 146/315] Removed folder used during testing --- .../symba_chambers_2013/savestate2/param.in | 32 - .../savestate2/pl_chambers_2013.in | 937 ------------------ .../savestate2/sun_MsunAUYR.in | 7 - examples/symba_chambers_2013/savestate2/tp.in | 1 - 4 files changed, 977 deletions(-) delete mode 100644 examples/symba_chambers_2013/savestate2/param.in delete mode 100644 examples/symba_chambers_2013/savestate2/pl_chambers_2013.in delete mode 100644 examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in delete mode 100644 examples/symba_chambers_2013/savestate2/tp.in diff --git a/examples/symba_chambers_2013/savestate2/param.in b/examples/symba_chambers_2013/savestate2/param.in deleted file mode 100644 index 2e263e1b5..000000000 --- a/examples/symba_chambers_2013/savestate2/param.in +++ /dev/null @@ -1,32 +0,0 @@ -! -! Parameter file for Chambers 2013 in units of Msun, AU, year -! -T0 0.0e0 -TSTOP 1e8 ! simulation length in years -DT 0.016 ! stepsize in years -CB_IN sun_MsunAUYR.in -PL_IN pl_chambers_2013.in -TP_IN tp.in -IN_TYPE ASCII -ISTEP_OUT 625 ! output cadence -ISTEP_DUMP 625 ! system dump cadence -BIN_OUT bin.dat -PARTICLE_OUT particle.dat -OUT_TYPE REAL8 ! double precision real output -OUT_FORM EL ! osculating element output -OUT_STAT REPLACE -CHK_CLOSE yes ! check for planetary close encounters -CHK_RMAX 100000.0 ! discard outside of -EXTRA_FORCE no ! no extra user-defined forces -BIG_DISCARD no ! output all planets if anything discarded -RHILL_PRESENT yes ! Hill's sphere radii in input file -MU2KG 1.98847e30 ! (M_sun-> kg) -DU2M 1.495979e11 ! distance unit to meters (AU --> m) -TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) -GMTINY 1e-10 -ENERGY yes -ENERGY_OUT energy.dat -ROTATION yes -FRAGMENTATION yes -DISCARD_OUT discard.out -SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 diff --git a/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in b/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in deleted file mode 100644 index 1ba4c845e..000000000 --- a/examples/symba_chambers_2013/savestate2/pl_chambers_2013.in +++ /dev/null @@ -1,937 +0,0 @@ -156 ! Solar System in unit system AU, M_sun, and years -500 3.76722155e-02 1.08899907e-02 ! ID / G*Mass / Rhill Jupiter -4.67326079e-04 ! Radius -3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z -1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz -0.0 0.0 0.2756 ! ip --81.01800465 -2388.16786145 5008.65350675 ! rot -600 1.12798314e-02 1.99069165e-02 ! ID / G*Mass / Rhill Saturn -3.89256801e-04 ! Radius -5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z -1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz -0.0 0.0 0.22 ! ip -445.81155409 381.95827345 5182.3159189 ! rot -4 1.10539569e-05 2.76930511e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -2.72988779e-01 1.29092883e+00 1.33913146e-01 ! x y z --5.30347096e+00 1.10519810e+00 4.11733597e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -5 1.10539569e-05 2.47028309e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --7.52767237e-01 -7.89903716e-01 4.41780109e-01 ! x y z -3.97724375e+00 -4.13307219e+00 -7.22805540e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -6 1.10539569e-05 1.32328966e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.20377608e-01 -7.87272103e-02 7.12067297e-02 ! x y z -1.02503121e+00 7.84536983e+00 -1.81237075e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -7 1.10539569e-05 9.44674456e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.98175547e-02 -4.40604282e-01 -6.26515066e-02 ! x y z -9.16286233e+00 1.29526313e+00 1.28292031e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -8 1.10539569e-05 2.10455183e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --7.37344424e-01 -6.59393259e-01 -3.39334297e-02 ! x y z -4.23617128e+00 -4.72560240e+00 1.90202709e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -9 1.10539569e-05 7.93127033e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --3.72282885e-01 1.00137160e-02 4.74495877e-02 ! x y z --5.53222723e-02 -1.01517333e+01 1.56417032e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -10 1.10539569e-05 3.72890834e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --1.71148151e+00 4.03705975e-02 -4.41629664e-01 ! x y z --5.30815676e-01 -4.44829638e+00 1.51595205e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -11 1.10539569e-05 1.24950838e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -2.86212864e-01 5.18828229e-01 -9.65137375e-03 ! x y z --7.11468376e+00 3.99045778e+00 4.08951506e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -12 1.10539569e-05 1.29201140e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.01579717e-01 -1.24985784e-01 -6.68579475e-02 ! x y z -1.03137581e+00 6.97294287e+00 -3.70526296e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -13 1.10539569e-05 8.45210453e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -1.66504352e-01 3.65136786e-01 -2.37270588e-02 ! x y z --9.01075623e+00 4.10307061e+00 -1.73991242e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -14 1.10539569e-05 1.80973111e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --1.00013418e-01 8.46049108e-01 1.29409189e-01 ! x y z --6.69397403e+00 -6.88216193e-01 -6.43089317e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -15 1.10539569e-05 6.77162299e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --6.64074759e-02 -2.85943101e-01 -1.33132689e-01 ! x y z -1.04794195e+01 -3.18219029e+00 1.50287735e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -16 1.10539569e-05 2.22462802e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.93683497e-01 -7.97060245e-01 -1.56701341e-03 ! x y z -4.27957357e+00 3.72233196e+00 -2.27779518e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -17 1.10539569e-05 9.07412459e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --4.30243754e-01 3.92163409e-02 1.61581635e-02 ! x y z --8.96241375e-01 -9.13377010e+00 -2.60722121e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -18 1.10539569e-06 2.16228637e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.49171166e-01 9.89231336e-01 9.47431817e-02 ! x y z --5.97909060e+00 -1.61462871e+00 5.17955232e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -19 1.10539569e-06 2.44552162e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.13055691e+00 -2.73349719e-01 -8.64446048e-04 ! x y z -1.35697138e+00 5.66139385e+00 -8.67279260e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -20 1.10539569e-06 2.69931846e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.95952391e-01 8.54202216e-01 5.12437562e-01 ! x y z --4.18257122e+00 -3.66903213e+00 -4.16936339e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -21 1.10539569e-06 3.64709598e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.50222087e+00 2.48717046e-01 -8.19081229e-01 ! x y z --8.04975551e-01 -4.71387035e+00 7.84362176e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -22 1.10539569e-06 1.17536449e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.44682948e-01 -4.96503483e-01 -8.53414160e-02 ! x y z -7.40695872e+00 -3.28819700e+00 -2.14066023e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -23 1.10539569e-06 1.50460742e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.36805798e-01 -5.86582522e-01 3.17351611e-01 ! x y z -6.83507157e+00 3.05184627e+00 5.35881505e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -24 1.10539569e-06 2.39048166e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.80090550e-01 1.00147849e+00 -3.41420172e-01 ! x y z --5.59868356e+00 -1.78046309e+00 9.70115472e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -25 1.10539569e-06 2.01027356e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.39485525e-01 6.02196012e-01 2.65945142e-02 ! x y z --4.01389113e+00 -4.93502846e+00 -9.72482631e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -26 1.10539569e-06 3.44715330e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.30456826e-01 1.57570303e+00 -1.09595941e-01 ! x y z --4.64706737e+00 -1.19846831e+00 1.04119454e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -27 1.10539569e-06 1.76967616e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.35819630e-01 -4.18940068e-01 -5.26182368e-02 ! x y z -3.13485099e+00 -5.73938205e+00 1.82527292e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -28 1.10539569e-06 4.06342312e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.54229262e-01 -1.76044238e+00 -1.80128626e-01 ! x y z -4.18274269e+00 -1.75246993e+00 -1.48893698e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -29 1.10539569e-06 6.51392241e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.97001957e-02 -2.83866631e-01 1.02094271e-01 ! x y z -1.06859367e+01 -3.16734146e+00 -1.78495005e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -30 1.10539569e-06 1.50723858e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.50547968e-01 5.85483214e-01 -2.02242303e-01 ! x y z --6.51912702e+00 -3.31902976e+00 1.50673282e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -31 1.10539569e-06 9.91191586e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.34148347e-02 -4.67706829e-01 -4.50777179e-04 ! x y z -9.07741521e+00 1.03526094e+00 6.27189957e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -32 1.10539569e-06 1.27434773e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.76081124e-01 -1.72561939e-01 2.32546498e-02 ! x y z -2.26640367e+00 -7.48739107e+00 2.18424337e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -33 1.10539569e-06 1.88899665e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.21441400e-01 8.67808697e-01 6.09525334e-02 ! x y z --6.38752841e+00 1.69289574e+00 -5.34224727e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -34 1.10539569e-06 2.51153352e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.27618072e-01 -9.85796209e-01 -2.48455975e-01 ! x y z -4.57388053e+00 3.25533389e+00 -1.21335726e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -35 1.10539569e-06 1.31898109e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.04370616e-01 5.13132374e-01 1.83051491e-01 ! x y z --6.94545994e+00 3.58830246e+00 1.54416575e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -36 1.10539569e-06 1.31747151e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.72209409e-01 5.58609144e-01 -5.24341572e-02 ! x y z --7.11229047e+00 -3.50089370e+00 -8.23500441e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -37 1.10539569e-06 8.04475879e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.84218244e-01 3.32444349e-01 -3.37468460e-02 ! x y z --8.87199586e+00 4.71912663e+00 -1.61815818e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -38 1.10539569e-06 8.53415964e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.71574947e-01 2.99863851e-01 2.77485703e-02 ! x y z --7.27373701e+00 6.59527467e+00 -9.50013137e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -39 1.10539569e-06 1.54874159e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.42177998e-01 4.64346195e-01 -1.77247174e-01 ! x y z --4.32593022e+00 -5.71371010e+00 -1.52200642e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -40 1.10539569e-06 1.11811225e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.37513378e-01 4.78960335e-01 -4.18799485e-02 ! x y z --7.64314149e+00 3.80464264e+00 -4.40507044e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -41 1.10539569e-06 6.46344589e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.17502253e-01 2.74368057e-01 6.52591009e-02 ! x y z --1.04985621e+01 -4.38785797e+00 -5.95356835e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -42 1.10539569e-06 3.14895117e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.08577487e+00 -1.03445606e+00 -1.55590020e-01 ! x y z -3.53014787e+00 3.59960362e+00 7.43100049e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -43 1.10539569e-06 3.30212225e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.85350014e-01 -1.34034680e+00 7.46972274e-01 ! x y z -4.81219105e+00 1.19508883e+00 -3.85665415e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -44 1.10539569e-06 7.23534141e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.13136821e-02 3.42286865e-01 -3.05898632e-02 ! x y z --1.01368906e+01 -6.23201390e-01 -3.40648593e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -45 1.10539569e-06 2.39770005e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.04671093e+00 1.11212978e-01 -4.33163084e-01 ! x y z --3.60007968e-01 -5.84725364e+00 -6.15822401e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -46 1.10539569e-06 3.11101805e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.28031558e+00 6.71820187e-01 3.13521220e-01 ! x y z --2.10656104e+00 -4.54924436e+00 1.23122282e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -47 1.10539569e-06 9.97006532e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.03695384e-01 -3.60967985e-01 5.51306924e-02 ! x y z -6.85056674e+00 -5.91778788e+00 -9.60485047e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -48 1.10539569e-06 7.74544738e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.54176241e-01 6.02822917e-02 7.63020359e-02 ! x y z --1.61729423e+00 -1.02381855e+01 4.69477979e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -49 1.10539569e-06 2.60533414e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.70647812e-01 -1.14442870e+00 -2.16624680e-04 ! x y z -5.22089775e+00 2.15396431e+00 6.97355593e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -50 1.10539569e-06 1.73280111e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.47538292e-02 -7.76819569e-01 -2.57912415e-01 ! x y z -6.69507282e+00 -1.17185683e+00 1.33518772e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -51 1.10539569e-06 3.17790663e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.65614001e-01 -1.36216721e+00 3.04841771e-02 ! x y z -4.55635977e+00 2.26593667e+00 1.30678452e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -52 1.10539569e-06 7.23862851e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.31702394e-01 -9.11930665e-02 2.41707377e-02 ! x y z -2.70205684e+00 -1.02322038e+01 -1.45694907e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -53 1.10539569e-06 4.09271910e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.43010053e-01 1.89928569e+00 1.63915030e-01 ! x y z --4.44471826e+00 8.12964188e-01 1.91799605e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -54 1.10539569e-06 9.00526678e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.76279203e-01 3.69578224e-01 -1.37212342e-01 ! x y z --8.58447413e+00 -3.12914501e+00 2.65447958e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -55 1.10539569e-06 1.66875324e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.45616929e-01 -2.47231702e-01 -1.19477629e-01 ! x y z -2.19161600e+00 -6.68909269e+00 -1.07794911e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -56 1.10539569e-06 2.61296171e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.21771549e+00 8.22263396e-02 -2.28049506e-01 ! x y z --7.77955309e-01 -5.04420236e+00 2.39397114e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -57 1.10539569e-06 7.84583650e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.35031870e-01 -1.49752491e-01 7.21876006e-02 ! x y z -3.53139295e+00 -9.14063147e+00 -3.02347388e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -58 1.10539569e-06 8.15353611e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.16127731e-01 2.19457827e-01 -2.86640647e-02 ! x y z --5.75118301e+00 -8.30744977e+00 -7.52286441e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -59 1.10539569e-06 9.46502491e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.14567897e-01 -1.70158031e-01 -2.06385746e-02 ! x y z -3.52462324e+00 8.64965730e+00 9.71699819e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -60 1.10539569e-06 1.06023870e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.68326520e-01 3.43200640e-01 -3.18358134e-03 ! x y z --5.99833054e+00 6.50593164e+00 -3.52076060e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -61 1.10539569e-06 2.85747597e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.22743812e+00 4.54544048e-01 -3.53405167e-01 ! x y z --2.13063294e+00 4.75488906e+00 -1.41396521e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -62 1.10539569e-06 1.11156710e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.90230366e-01 8.52524184e-02 1.64539092e-01 ! x y z --1.33697442e+00 -8.59490437e+00 4.64492986e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -63 1.10539569e-06 7.47979433e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.26924952e-01 1.39246422e-01 -4.37240131e-02 ! x y z --4.02802590e+00 9.60769401e+00 9.33600395e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -64 1.10539569e-06 2.36256862e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.11787086e+00 1.27230662e-01 -2.97194116e-02 ! x y z --6.51392127e-01 -5.87014579e+00 -2.95793081e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -65 1.10539569e-06 1.36083964e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.68540327e-01 1.32853908e-01 -2.74248856e-01 ! x y z --2.28636154e+00 -7.40032660e+00 1.15230861e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -66 1.10539569e-06 2.12644561e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --9.02814420e-01 4.51623081e-01 3.31973730e-02 ! x y z --2.80126142e+00 -5.58560982e+00 -1.92746316e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -67 1.10539569e-06 8.14605985e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.85382182e-01 1.43901530e-03 1.15478430e-02 ! x y z --2.59844799e-02 -1.01271155e+01 4.30703613e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -68 1.10539569e-06 9.27538405e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.61232954e-01 2.20844429e-01 -1.22567174e-01 ! x y z --4.75444340e+00 8.15211658e+00 6.72406103e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -69 1.10539569e-06 1.70813096e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -7.62285263e-01 2.77535790e-01 7.50460161e-03 ! x y z --2.38561781e+00 6.55492046e+00 -5.72763423e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -70 1.10539569e-06 2.71135229e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.33966979e-01 1.05145872e+00 -3.79026357e-01 ! x y z --4.80055687e+00 2.37239115e+00 -1.45444659e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -71 1.10539569e-06 9.29779721e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.09086355e-01 -4.25927399e-01 -5.92609052e-02 ! x y z -8.83426715e+00 -1.97333711e+00 -2.57514440e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -72 1.10539569e-06 2.48562722e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.52243615e-01 -1.03472811e+00 -9.20470885e-03 ! x y z -5.14745205e+00 -2.71638935e+00 1.85243774e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -73 1.10539569e-06 1.57390173e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.37564413e-01 -7.02794064e-01 -1.30853933e-01 ! x y z -6.84384400e+00 -2.13579218e+00 -7.74318491e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -74 1.10539569e-06 1.33469063e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.24670248e-01 -3.60722160e-01 -5.89339466e-03 ! x y z -4.43972950e+00 6.48102200e+00 9.11331663e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -75 1.10539569e-06 6.47192566e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.61797829e-02 -3.04486498e-01 4.89626567e-03 ! x y z -1.10606484e+01 2.04593839e+00 -1.21551157e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -76 1.10539569e-06 1.47162297e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.43061104e-01 -6.84452631e-01 -2.55174546e-02 ! x y z -7.11009943e+00 1.43236802e+00 1.93726736e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -77 1.10539569e-06 8.63668982e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.85992031e-02 -4.08122100e-01 2.78731319e-02 ! x y z -9.76823729e+00 -6.46270469e-01 6.80833278e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -78 1.10539569e-06 2.36804818e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.91157068e-01 -7.91937234e-01 3.82540684e-01 ! x y z -4.02153165e+00 4.19828096e+00 1.29880450e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -79 1.10539569e-06 9.14394348e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.51098607e-01 2.59366529e-01 -1.55386862e-02 ! x y z --5.06657998e+00 -7.18889701e+00 -3.53716670e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -80 1.10539569e-06 1.26910472e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.23152493e-01 3.88117899e-01 -2.00809903e-01 ! x y z --4.53578552e+00 6.18184215e+00 2.34837457e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -81 1.10539569e-06 6.33003056e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.28512111e-01 2.64697808e-01 -7.13482769e-02 ! x y z --9.33728759e+00 5.41684777e+00 3.59675928e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -82 1.10539569e-06 2.22271119e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.71802215e-01 -9.92089651e-01 5.32987899e-02 ! x y z -5.68468560e+00 2.17000210e+00 -9.37982171e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -83 1.10539569e-06 1.74051421e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -7.86568140e-01 2.32350855e-01 6.38082505e-02 ! x y z --1.88303694e+00 6.63245612e+00 -8.28072975e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -84 1.10539569e-06 9.31517858e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.72567042e-01 -2.35531924e-01 4.96465701e-02 ! x y z -4.70939503e+00 -7.96544948e+00 -1.77358479e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -85 1.10539569e-06 2.46953975e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.20593248e-01 1.08358397e+00 3.52755169e-01 ! x y z --5.53042972e+00 1.53963953e+00 2.87126462e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -86 1.10539569e-06 1.50876657e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.56037714e-01 -4.53117788e-01 -4.40686710e-02 ! x y z -4.32334289e+00 -5.53881012e+00 2.32535969e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -87 1.10539569e-06 6.79814743e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.71412212e-01 -2.72520775e-01 2.76595629e-02 ! x y z -9.35632724e+00 -5.87401170e+00 1.71700376e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -88 1.10539569e-06 1.37728604e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.52644996e-01 4.52246640e-01 1.36128602e-01 ! x y z --5.47133577e+00 5.50145396e+00 -3.76988545e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -89 1.10539569e-06 1.75150424e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.17549909e-01 -7.69243942e-01 2.30477642e-01 ! x y z -6.02966869e+00 -2.44216734e+00 -2.26348882e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -90 1.10539569e-06 1.82243275e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.53300892e-01 1.05420241e-01 6.10357233e-03 ! x y z --7.23180710e-01 6.14709501e+00 -2.81238589e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -91 1.10539569e-06 1.04051592e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.76117727e-02 -4.92462500e-01 -7.89640418e-03 ! x y z -8.70186553e+00 7.97359443e-01 -1.82242405e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -92 1.10539569e-06 9.04059360e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.13222540e-01 -3.73863988e-01 -4.13231963e-04 ! x y z -8.30795424e+00 -4.74104957e+00 -9.20828866e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -93 1.10539569e-06 2.08546876e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.00253331e-02 9.90845414e-01 3.30248466e-02 ! x y z --6.29625004e+00 -2.72856242e-01 4.06580221e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -94 1.10539569e-06 6.61548636e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.95782619e-01 1.07222597e-01 -2.12686228e-02 ! x y z --3.48575733e+00 1.03058724e+01 2.52560893e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -95 1.10539569e-06 1.26032554e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.86024380e-01 -5.25659190e-01 -1.93449627e-02 ! x y z -6.91385395e+00 -3.87796179e+00 1.75371157e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -96 1.10539569e-06 2.28076998e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.65990862e-01 6.01183979e-01 2.43471322e-01 ! x y z --3.24575804e+00 5.02670056e+00 -8.53001170e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -97 1.10539569e-06 7.05221824e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.39637261e-01 -3.01107928e-01 -4.31558543e-02 ! x y z -9.00360957e+00 -4.71459755e+00 3.83918395e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -98 1.10539569e-06 6.39269462e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.44254383e-01 -1.79341582e-01 -1.04974267e-03 ! x y z -6.75937463e+00 9.18023255e+00 7.52738258e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -99 1.10539569e-06 1.79085174e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.13843608e-01 1.99633270e-01 -1.80207407e-01 ! x y z --1.29939496e+00 -6.46953788e+00 -1.46932255e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -100 1.10539569e-06 1.32458326e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.32126102e-01 -2.47196136e-02 -2.42353871e-02 ! x y z -2.92190575e-01 -7.70428120e+00 1.58876111e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -101 1.10539569e-06 1.52095833e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.91088291e-01 -1.16411821e-01 -1.71283865e-01 ! x y z -1.53252063e+00 -7.10600791e+00 -1.39483264e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -102 1.10539569e-06 1.58389732e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.73673516e-01 -4.82303150e-01 -6.92080251e-02 ! x y z -4.56925372e+00 -5.55908510e+00 8.00568861e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -103 1.10539569e-06 6.78999949e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.70326377e-01 1.68246296e-01 4.59682324e-02 ! x y z --6.01982148e+00 9.02506097e+00 2.30638849e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -104 1.10539569e-06 1.01600407e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.27129315e-01 -1.60689947e-01 1.56748833e-01 ! x y z -2.47314908e+00 -8.47972366e+00 -1.94836513e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -105 1.10539569e-06 2.39114531e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -9.42557812e-01 5.29448416e-01 3.49342967e-01 ! x y z --3.26429676e+00 4.46194553e+00 2.04186289e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -106 1.10539569e-06 7.00793819e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.89445458e-01 1.51184189e-01 6.04053839e-02 ! x y z --4.58420182e+00 9.69365003e+00 -2.04005101e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -107 1.10539569e-06 1.90283015e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.56335053e-01 -2.54662167e-01 1.41334047e-01 ! x y z -2.10228445e+00 5.79525323e+00 -2.36721595e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -108 1.10539569e-06 2.96231967e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.36313774e+00 -1.39484993e-03 -3.33851852e-01 ! x y z --1.80152731e-01 -5.22233557e+00 9.45811316e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -109 1.10539569e-06 1.11806853e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.46999479e-01 4.69183085e-01 1.48273567e-02 ! x y z --7.62737255e+00 4.03088377e+00 -2.87208744e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -110 1.10539569e-06 3.12227105e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.92685552e-01 -1.19778080e+00 7.96108948e-02 ! x y z -4.05065890e+00 2.97803027e+00 -9.38454309e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -111 1.10539569e-06 2.24585100e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.16543398e-01 6.44376993e-01 2.28097541e-01 ! x y z --3.89719354e+00 -4.47060943e+00 -1.39962365e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -112 1.10539569e-06 3.76823843e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.19421123e+00 1.32084250e+00 -7.72400022e-02 ! x y z --3.08133686e+00 2.88161171e+00 2.10766368e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -113 1.10539569e-06 1.85829977e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.64160987e-01 6.79541760e-01 1.90515744e-02 ! x y z --5.13431676e+00 4.27566051e+00 6.03635853e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -114 1.10539569e-06 3.49744654e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.56537224e+00 5.82910904e-01 -8.86453767e-02 ! x y z --1.64314439e+00 4.51635617e+00 5.81379936e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -115 1.10539569e-06 2.44627752e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.21489220e-01 -9.80146980e-01 3.22082629e-01 ! x y z -4.69945017e+00 -3.07448039e+00 -1.66849603e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -116 1.10539569e-06 1.48946902e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.60792560e-01 -6.87644911e-01 3.66413788e-02 ! x y z -6.37303278e+00 -1.67465930e+00 -3.52540571e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -117 1.10539569e-06 9.48472009e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.15102464e-01 -1.75149973e-01 -2.85549434e-02 ! x y z -3.17699950e+00 8.02980191e+00 -3.56193766e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -118 1.10539569e-06 1.46132866e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.45225828e-01 5.98258841e-01 -7.45003268e-02 ! x y z --6.51260143e+00 -3.60690443e+00 1.16008799e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -119 1.10539569e-06 9.12611171e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.84725575e-01 -3.85457639e-01 -5.09774260e-02 ! x y z -8.51718303e+00 -4.26677573e+00 1.26149786e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -120 1.10539569e-06 1.22021916e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.44841297e-01 -5.39901332e-01 1.54755735e-01 ! x y z -7.76971331e+00 1.39084378e+00 -2.38817543e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -121 1.10539569e-06 6.51657309e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.95970426e-02 -3.07995454e-01 -2.51102574e-02 ! x y z -1.12576282e+01 -6.78821641e-01 -4.95031697e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -122 1.10539569e-06 8.35698784e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.58295595e-01 -4.07805583e-02 -1.62744429e-01 ! x y z -5.65842623e-02 9.77741717e+00 -2.12236760e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -123 1.10539569e-06 1.08014635e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.57112225e-01 3.26038545e-01 -1.68902691e-01 ! x y z --5.23071639e+00 -6.75806936e+00 -2.04006316e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -124 1.10539569e-06 1.02550770e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.30953626e-01 -1.21419747e-01 -1.92524368e-01 ! x y z -2.35863321e+00 -8.68071542e+00 1.79033554e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -125 1.10539569e-06 6.95814419e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.10223043e-02 3.29698672e-01 -2.33216443e-02 ! x y z --1.05036416e+01 -1.18257626e-01 2.99156731e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -126 1.10539569e-06 1.21782856e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.37540070e-01 -4.68051579e-01 3.12017441e-02 ! x y z -6.67938807e+00 -4.87057933e+00 -1.80758676e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -127 1.10539569e-06 1.27648491e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.70107622e-01 3.81394049e-01 2.94976958e-02 ! x y z --5.04123374e+00 6.27657958e+00 5.88259014e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -128 1.10539569e-06 1.62877006e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.55138385e-01 -6.23311530e-01 5.02376028e-02 ! x y z -5.28132760e+00 -4.06425983e+00 -2.57712837e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -129 1.10539569e-06 2.66986578e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.13493035e-02 -1.22710114e+00 -3.17757228e-01 ! x y z -5.28592709e+00 -7.54459447e-01 1.59593511e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -130 1.10539569e-06 6.56076786e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.44014453e-01 -1.91481938e-01 3.64286209e-02 ! x y z -6.89410930e+00 -7.97798070e+00 3.86568598e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -131 1.10539569e-06 1.47791991e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.58860487e-02 6.98105661e-01 -6.05263656e-02 ! x y z --7.39418369e+00 -8.88083586e-01 3.68318815e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -132 1.10539569e-06 1.18316891e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.30463297e-01 5.39537186e-01 8.94135251e-02 ! x y z --7.91933257e+00 2.19758719e+00 -1.62232353e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -133 1.10539569e-06 1.53219837e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.10956489e-01 -7.21494396e-01 5.19355079e-02 ! x y z -7.24010486e+00 -1.09301700e+00 -1.60852706e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -134 1.10539569e-06 6.43300411e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.88041757e-02 -3.04722867e-01 -3.14812865e-02 ! x y z -1.07993595e+01 -1.40429215e+00 2.96552456e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -135 1.10539569e-06 8.51935749e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.86591612e-01 -4.29771812e-02 -1.05863039e-01 ! x y z -1.97234762e+00 -9.03918811e+00 -3.56317371e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -136 1.10539569e-06 7.63507559e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.88157405e-01 2.88666278e-01 1.10921677e-01 ! x y z --8.87614786e+00 -5.45415368e+00 -8.46055713e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -137 1.10539569e-06 8.42313899e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.55471151e-01 3.65848047e-01 -8.97493453e-03 ! x y z --9.20044180e+00 -3.87411273e+00 -4.84829815e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -138 1.10539569e-06 6.72600246e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.87375637e-01 -1.36801833e-01 -1.72137474e-02 ! x y z -4.76338219e+00 1.00717170e+01 2.97994928e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -139 1.10539569e-06 1.02461717e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.70166209e-01 -4.01549931e-01 6.36091815e-02 ! x y z -7.45419134e+00 4.96228856e+00 -6.59900898e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -140 1.10539569e-06 6.87840289e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.61307437e-01 -2.72164290e-01 8.71883296e-02 ! x y z -8.60206869e+00 6.06917549e+00 2.98663214e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -141 1.10539569e-06 3.92140957e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.78539217e+00 5.34215902e-01 -1.20626554e-01 ! x y z --1.35880150e+00 -4.33539223e+00 6.63369806e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -142 1.10539569e-06 2.70800787e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.31436788e-01 5.48162971e-01 1.64734173e-02 ! x y z --7.51357402e+00 -3.16907615e+00 -1.32982328e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -143 1.10539569e-06 2.04544912e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.94940717e-01 -3.37625386e-01 -4.75480276e-02 ! x y z -6.93658760e+00 6.20070236e+00 -1.01079366e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -144 1.10539569e-06 6.37587428e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -9.71735603e-01 -9.61566886e-01 3.24968572e-01 ! x y z -3.81159593e+00 3.54522020e+00 -1.00291449e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -145 1.10539569e-06 2.08933536e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.75759753e-01 4.21380582e-01 6.28003104e-02 ! x y z --8.52008102e+00 3.47130251e+00 9.83757295e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -146 1.10539569e-06 1.50397186e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.39588743e-02 -3.30180335e-01 -1.05230287e-02 ! x y z -1.07866352e+01 -4.97967898e-01 1.76757426e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -147 1.10539569e-06 3.38562140e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.29920730e-01 5.89061070e-02 -1.20920053e-01 ! x y z --7.74235710e-01 -7.10977778e+00 1.52865443e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -148 1.10539569e-06 2.32741739e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.96020721e-01 7.20447253e-02 -1.09717020e-01 ! x y z --2.02019828e+00 7.69560863e+00 -3.69254498e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -149 1.10539569e-06 2.12332437e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.28791847e-01 -1.88187724e-01 1.60873382e-02 ! x y z -3.57426531e+00 -8.26404401e+00 -1.76157927e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -150 1.10539569e-06 1.76485902e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.55182279e-01 1.52620292e-01 -6.22833990e-02 ! x y z --3.88412930e+00 -9.19453465e+00 -7.37459129e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -151 1.10539569e-06 1.57284431e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.47785192e-01 9.69744008e-03 -5.97342340e-03 ! x y z --3.78784685e-01 -1.06242178e+01 1.68422812e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -152 1.10539569e-06 5.30159037e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.29951992e-01 1.09612807e+00 -3.27460884e-01 ! x y z --5.22124087e+00 1.65375984e+00 1.97215321e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -153 1.10539569e-06 2.55861101e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.21007349e-02 5.32952897e-01 -1.70855331e-01 ! x y z --8.35827288e+00 -7.84724150e-01 2.96312578e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -154 1.10539569e-06 7.10383113e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.72959788e-01 -1.44639128e+00 -1.28014693e-01 ! x y z -4.55403004e+00 -1.72466270e+00 -1.28754288e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -155 1.10539569e-06 1.36743334e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.14648375e-01 2.10911522e-01 -9.00355256e-03 ! x y z --7.51711446e+00 7.37660713e+00 -4.51391831e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -156 1.10539569e-06 2.65261394e-02 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.50228741e-02 3.86702728e-01 2.53976723e-02 ! x y z --9.89354846e+00 1.39418207e+00 5.42336207e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -157 1.10539569e-06 4.92529404e-02 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.00902512e+00 -1.88090001e-01 3.31281617e-01 ! x y z -1.00573195e+00 5.95735671e+00 3.15059243e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot diff --git a/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in b/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in deleted file mode 100644 index ceb04eea1..000000000 --- a/examples/symba_chambers_2013/savestate2/sun_MsunAUYR.in +++ /dev/null @@ -1,7 +0,0 @@ -0 ! id -39.476926408897626 ! G*Mass -0.004650467260962157 ! Radius -0.0 !4.7535806948127355e-12 ! J2 -0.0 !-2.2473967953572827e-18 ! J4 -0.0 0.0 0.07 ! Principle axes moments of inertia -11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) diff --git a/examples/symba_chambers_2013/savestate2/tp.in b/examples/symba_chambers_2013/savestate2/tp.in deleted file mode 100644 index 573541ac9..000000000 --- a/examples/symba_chambers_2013/savestate2/tp.in +++ /dev/null @@ -1 +0,0 @@ -0 From c2db7c08ce8a7ce0aeceae65a322b28d0a1ae7db Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 09:55:57 -0400 Subject: [PATCH 147/315] Added missing use statements --- src/modules/helio_classes.f90 | 1 + src/modules/symba_classes.f90 | 1 + 2 files changed, 2 insertions(+) diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 156f0ea50..dcfcdde2e 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -215,6 +215,7 @@ module subroutine helio_step_tp(self, system, param, t, dt) end subroutine helio_step_tp module subroutine helio_util_index_eucl_plpl(self, param) + use swiftest_classes, only : swiftest_parameters implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index cf809453b..7a2599a46 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -354,6 +354,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, end function symba_collision_casesupercatastrophic module subroutine symba_util_index_eucl_plpl(self, param) + use swiftest_classes, only : swiftest_parameters implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters From e31cda21633de4ce8aea0a539882264571d9fdfd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 10:49:12 -0400 Subject: [PATCH 148/315] Cleaned up fragmentation code and fixed issues related to adding sorting to the index method in the calculation of the system energy --- src/fragmentation/fragmentation.f90 | 72 ++++++++++++++++------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 501ed050a..f020fa36f 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -100,7 +100,6 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, call reset_fragments() call define_coordinate_system() - call construct_temporary_system() ! Calculate the initial energy of the system without the collisional family call calculate_system_energy(linclude_fragments=.false.) @@ -150,25 +149,25 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, end do call restore_scale_factors() - write(*, "(' -------------------------------------------------------------------------------------')") - write(*, "(' Final diagnostic')") - write(*, "(' -------------------------------------------------------------------------------------')") - call calculate_system_energy(linclude_fragments=.true.) - if (lfailure) then - write(*,*) "symba_frag_pos failed after: ",try," tries" - do ii = 1, nfrag - vb_frag(:, ii) = vcom(:) - end do - else - write(*,*) "symba_frag_pos succeeded after: ",try," tries" - write(*, "(' dL_tot should be very small' )") - write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before - write(*, "(' dE_tot should be negative and equal to Qloss' )") - write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) - write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) - write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) - end if - write(*, "(' -------------------------------------------------------------------------------------')") + ! write(*, "(' -------------------------------------------------------------------------------------')") + ! write(*, "(' Final diagnostic')") + ! write(*, "(' -------------------------------------------------------------------------------------')") + ! call calculate_system_energy(linclude_fragments=.true.) + ! if (lfailure) then + ! write(*,*) "symba_frag_pos failed after: ",try," tries" + ! do ii = 1, nfrag + ! vb_frag(:, ii) = vcom(:) + ! end do + ! else + ! write(*,*) "symba_frag_pos succeeded after: ",try," tries" + ! write(*, "(' dL_tot should be very small' )") + ! write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before + ! write(*, "(' dE_tot should be negative and equal to Qloss' )") + ! write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) + ! write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) + ! write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) + ! end if + ! write(*, "(' -------------------------------------------------------------------------------------')") call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily @@ -355,7 +354,7 @@ subroutine construct_temporary_system() associate(pl => system%pl, npl => system%pl%nbody, cb => system%cb) if (size(lexclude) /= npl + nfrag) then - allocate(lexclude_tmp(npl_new)) + allocate(lexclude_tmp(npl + nfrag)) lexclude_tmp(1:npl) = lexclude(1:npl) call move_alloc(lexclude_tmp, lexclude) end if @@ -364,8 +363,9 @@ subroutine construct_temporary_system() elsewhere lexclude(1:npl) = .false. end where - lexclude(npl+1:npl_new) = .true. + lexclude(npl+1:(npl + nfrag)) = .true. if (allocated(tmpparam)) deallocate(tmpparam) + if (allocated(tmpsys)) deallocate(tmpsys) allocate(tmpparam, source=param) call setup_construct_system(tmpsys, param) call tmpsys%tp%setup(0, param) @@ -388,8 +388,11 @@ subroutine add_fragments_to_tmpsys() implicit none ! Internals integer(I4B) :: i + class(swiftest_pl), allocatable :: pl_discards + logical, dimension(:), allocatable :: lexclude_tmp associate(pl => system%pl, npl => system%pl%nbody) + npl_new = npl + nfrag tmpsys%pl%mass(npl+1:npl_new) = m_frag(1:nfrag) tmpsys%pl%Gmass(npl+1:npl_new) = m_frag(1:nfrag) * tmpparam%GU @@ -407,11 +410,20 @@ subroutine add_fragments_to_tmpsys() ! Disable the collisional family for subsequent energy calculations and coordinate shifts lexclude(family(:)) = .true. lexclude(npl+1:npl_new) = .false. - where(lexclude(:)) - tmpsys%pl%status(:) = INACTIVE + where(lexclude(1:npl_new)) + tmpsys%pl%status(1:npl_new) = INACTIVE elsewhere - tmpsys%pl%status(:) = ACTIVE + tmpsys%pl%status(1:npl_new) = ACTIVE end where + allocate(pl_discards, mold=tmpsys%pl) + call tmpsys%pl%spill(pl_discards, lspill_list=lexclude(1:npl_new), ldestructive=.true.) + npl_new = count(.not.lexclude(:)) + + if (size(lexclude) /= npl_new) then + allocate(lexclude_tmp(npl_new)) + call move_alloc(lexclude_tmp, lexclude) + end if + lexclude(1:npl_new) = .false. end associate @@ -438,13 +450,6 @@ subroutine calculate_system_energy(linclude_fragments) ! is in the main program. This will temporarily expand the planet list in a temporary system object called tmpsys to feed it into symba_energy associate(pl => system%pl, npl => system%pl%nbody, cb => system%cb) - where (lexclude(1:npl_new)) - tmpsys%pl%status(1:npl_new) = INACTIVE - elsewhere - tmpsys%pl%status(1:npl_new) = ACTIVE - end where - - ! Because we're making a copy of symba_pl with the excludes/fragments appended, we need to deallocate the ! big k_plpl array and recreate it when we're done, otherwise we run the risk of blowing up the memory by ! allocating two of these ginormous arrays simulteouously. This is not particularly efficient, but as this @@ -452,6 +457,9 @@ subroutine calculate_system_energy(linclude_fragments) lk_plpl = allocated(pl%k_plpl) if (lk_plpl) deallocate(pl%k_plpl) + call construct_temporary_system() + if (linclude_fragments) call add_fragments_to_tmpsys() + call tmpsys%pl%index(param) call tmpsys%get_energy_and_momentum(param) From a08a341c26553b2779174c568259de76ee460dbe Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 11:30:20 -0400 Subject: [PATCH 149/315] Fixed uninitialized error flag bug --- src/io/io.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 67d4665ab..2fdc0efa9 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -905,6 +905,7 @@ module subroutine io_read_in_cb(self, param) read(iu, *, err = 667, iomsg = errmsg) self%Ip(1), self%Ip(2), self%Ip(3) read(iu, *, err = 667, iomsg = errmsg) self%rot(1), self%rot(2), self%rot(3) end if + ierr = 0 else open(unit = iu, file = param%incbfile, status = 'old', form = 'UNFORMATTED', err = 667, iomsg = errmsg) ierr = self%read_frame(iu, param) From a621047c2990ef9096a50ed46fdb527f6f19d4f6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 11:33:24 -0400 Subject: [PATCH 150/315] Updated example notebook sand Makefile --- Makefile.Defines | 12 +++++++----- .../swiftest_symba_vs_swifter_symba.ipynb | 6 +++--- .../mars_disk/param.swiftest.in | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 6b35a612e..1663e016c 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -54,24 +54,26 @@ VTUNE_FLAGS = -g -O2 -vec -simd -shared-intel -qopenmp -debug inline-debug-info IDEBUG = -O0 -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin -init=snan,arrays STRICTREAL = -fp-model strict -fp-model no-except -prec-div -prec-sqrt -assume protect-parens SIMDVEC = -simd -xhost -align all -assume contiguous_assumed_shape -vecabi=cmdtarget -prec-div -prec-sqrt -assume protect-parens -PAR = -qopenmp #-parallel Something goes wrong in SyMBA at the moment with auto-paralellization enabled +PAR = -qopenmp #-parallel #Something goes wrong in SyMBA at the moment with auto-paralellization enabled HEAPARR = -heap-arrays 1048576 OPTREPORT = -qopt-report=5 +IPRODUCTION = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) #gfortran flags -GDEBUG = -g -Og -fbacktrace -fbounds-check -GPRODUCTION = -O3 +GDEBUG = -g -Og -fbacktrace -fbounds-check -ffree-line-length-none GPAR = -fopenmp #-ftree-parallelize-loops=4 GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries +GPRODUCTION = -O3 -ffree-line-length-none $(GPAR) #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -#FFLAGS = -init=snan,arrays -no-wrap-margin -O0 -g -traceback $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) +#FFLAGS = $(IPRODUCTION) #FORTRAN = ifort #AR = xiar FORTRAN = gfortran -FFLAGS = -ffree-line-length-none $(GPAR) $(GPRODUCTION) #$(GMEM) +#FFLAGS = $(GDEBUG) #$(GMEM) #$(GPAR) +FFLAGS = $(GPRODUCTION) AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb b/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb index dec0bb58b..ca5040a17 100644 --- a/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb +++ b/examples/symba_swifter_comparison/8pl_16tp_encounters/swiftest_symba_vs_swifter_symba.ipynb @@ -163,7 +163,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -198,7 +198,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -591,7 +591,7 @@ "array([0., 0., 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", " * id (id) int64 1 2 3 4 5 6 7 8\n", - " time float64 11.0" + " time float64 11.0" ], "text/plain": [ "\n", diff --git a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in index 26da39092..e36498f4b 100644 --- a/examples/symba_swifter_comparison/mars_disk/param.swiftest.in +++ b/examples/symba_swifter_comparison/mars_disk/param.swiftest.in @@ -24,7 +24,8 @@ BIG_DISCARD no RHILL_PRESENT yes GMTINY 1000.0 ENERGY yes -FRAGMENTATION no +ENERGY_OUT energy.dat +FRAGMENTATION yes ROTATION yes MU2KG 1.0 DU2M 1.0 From 9a9788269772fa0383aae27d7d05838f16ed8dea Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 12:08:24 -0400 Subject: [PATCH 151/315] Added new input parameter for SyMBA called minGMfrag that is the minimum fragment that can be produced in a collision. If it is not set, it will automatically be set to GMTINY which is what is currently done. --- .../symba_swifter_comparison/mtiny_test/cb.in | 7 + .../mtiny_test/param.swifter.in | 27 + .../mtiny_test/param.swiftest.in | 33 + .../mtiny_test/pl.swifter.in | 6004 +++++++++++ .../mtiny_test/pl.swiftest.in | 9001 +++++++++++++++++ .../mtiny_test/swiftest_vs_swifter.ipynb | 549 + .../symba_swifter_comparison/mtiny_test/tp.in | 1 + src/modules/symba_classes.f90 | 9 +- src/symba/symba_io.f90 | 26 +- 9 files changed, 15643 insertions(+), 14 deletions(-) create mode 100644 examples/symba_swifter_comparison/mtiny_test/cb.in create mode 100644 examples/symba_swifter_comparison/mtiny_test/param.swifter.in create mode 100644 examples/symba_swifter_comparison/mtiny_test/param.swiftest.in create mode 100644 examples/symba_swifter_comparison/mtiny_test/pl.swifter.in create mode 100644 examples/symba_swifter_comparison/mtiny_test/pl.swiftest.in create mode 100644 examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb create mode 100644 examples/symba_swifter_comparison/mtiny_test/tp.in diff --git a/examples/symba_swifter_comparison/mtiny_test/cb.in b/examples/symba_swifter_comparison/mtiny_test/cb.in new file mode 100644 index 000000000..c9dafacfd --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/cb.in @@ -0,0 +1,7 @@ +0 ! id +4.28388662e+13 ! G*mass +3389500.0 ! radius +0.0 ! J2 +0.0 ! J4 +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot diff --git a/examples/symba_swifter_comparison/mtiny_test/param.swifter.in b/examples/symba_swifter_comparison/mtiny_test/param.swifter.in new file mode 100644 index 000000000..79e415a10 --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/param.swifter.in @@ -0,0 +1,27 @@ +T0 0.0 +TSTOP 4200.0 +DT 600.0 +PL_IN pl.swifter.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT UNKNOWN +J2 0.0 +J4 0.0 +CHK_CLOSE yes +CHK_RMIN 3389500.0 +CHK_RMAX 3389500000.0 +CHK_EJECT 3389500000.0 +CHK_QMIN 3389500.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 3389500.0 338950000000.0 +ENC_OUT /dev/null +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes +WALLTIME yes +ENERGY yes diff --git a/examples/symba_swifter_comparison/mtiny_test/param.swiftest.in b/examples/symba_swifter_comparison/mtiny_test/param.swiftest.in new file mode 100644 index 000000000..fac8b5b4b --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/param.swiftest.in @@ -0,0 +1,33 @@ +!Parameter file for the SyMBA-RINGMOONS test +T0 0.0 +TSTOP 4200.0 +DT 600.0 +PL_IN pl.swiftest.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swiftest.dat +PARTICLE_OUT particle.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT REPLACE +CHK_CLOSE yes +CHK_RMIN 3389500.0 +CHK_RMAX 3389500000.0 +CHK_EJECT 3389500000.0 +CHK_QMIN 3389500.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 3389500.0 338950000000.0 +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes +GMTINY 540000.0 +ENERGY yes +ENERGY_OUT energy.dat +FRAGMENTATION no +ROTATION yes +MU2KG 1.0 +DU2M 1.0 +TU2S 1.0 +SEED 2 3080983 2220830 diff --git a/examples/symba_swifter_comparison/mtiny_test/pl.swifter.in b/examples/symba_swifter_comparison/mtiny_test/pl.swifter.in new file mode 100644 index 000000000..09a72ef61 --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/pl.swifter.in @@ -0,0 +1,6004 @@ +1501 ! Mars System in SI units +1 4.28388662e+13 +.0 .0 .0 ! x y z +.0 .0 .0 !vx vy vz +727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +1.24108926e+04 !particle radius in m +-8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z +9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz +231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +8.87389776e+03 !particle radius in m +-8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z +1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz +2 9.90685589e+04 8.35558297e+03 ! particle number mass Rhill +7.07643092e+03 !particle radius in m +-2.35807426e+06 8.60445552e+06 1.25224401e+04 ! x y z +-2.13373621e+03 -5.91159549e+02 -1.46482980e+00 ! vx vy vz +3 3.17438752e+04 6.69500494e+03 ! particle number mass Rhill +4.84234399e+03 !particle radius in m +-8.01160007e+06 -6.93642997e+06 1.51456130e+04 ! x y z +1.31205897e+03 -1.53256580e+03 -1.41252951e-01 ! vx vy vz +4 3.98556011e+05 1.56022902e+04 ! particle number mass Rhill +1.12546530e+04 !particle radius in m +8.10802666e+05 1.07743901e+07 2.02908991e+04 ! x y z +-1.97583939e+03 1.47020293e+02 2.81847341e-01 ! vx vy vz +5 1.44988335e+05 1.52187807e+04 ! particle number mass Rhill +5.45209420e+03 !particle radius in m +1.19634122e+07 -8.10716246e+06 -5.95532256e+04 ! x y z +9.82512278e+02 1.42576317e+03 8.88854207e+00 ! vx vy vz +6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill +7.50714229e+03 !particle radius in m +-9.39611249e+06 3.86341011e+06 4.12677461e+04 ! x y z +-8.05714130e+02 -1.87378063e+03 1.44571432e+01 ! vx vy vz +7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill +7.78923399e+03 !particle radius in m +-4.75251420e+06 -1.21243281e+07 -4.63584868e+04 ! x y z +1.67483168e+03 -6.72935315e+02 -2.51894419e+00 ! vx vy vz +8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill +9.51941869e+03 !particle radius in m +-1.85450966e+06 -1.34716389e+07 8.25492639e+04 ! x y z +1.75187299e+03 -2.73602528e+02 -3.13786565e+00 ! vx vy vz +9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill +1.02445905e+04 !particle radius in m +1.23514674e+07 2.68920661e+05 1.39262437e+04 ! x y z +-5.46299990e+01 1.85637492e+03 8.88156878e+00 ! vx vy vz +10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill +1.00413666e+04 !particle radius in m +-3.23931710e+06 -9.01689172e+06 -4.12799209e+04 ! x y z +2.01018172e+03 -6.80970287e+02 7.47887585e+00 ! vx vy vz +11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill +9.41021993e+03 !particle radius in m +-8.22383274e+06 6.53912283e+06 -4.14927827e+04 ! x y z +-1.24361728e+03 -1.57101590e+03 1.15408315e+01 ! vx vy vz +12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill +5.66402670e+03 !particle radius in m +1.08162501e+06 1.60434368e+07 -1.90513596e+05 ! x y z +-1.63320995e+03 9.41371249e+01 -1.08583324e+00 ! vx vy vz +13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill +9.68422654e+03 !particle radius in m +8.87638562e+06 -3.42494393e+06 3.77051239e+04 ! x y z +7.17031490e+02 1.98991002e+03 1.65715407e+00 ! vx vy vz +14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill +1.17150625e+04 !particle radius in m +8.43240423e+06 -8.47557599e+06 9.53685695e+04 ! x y z +1.37244856e+03 1.29766742e+03 6.52389482e-01 ! vx vy vz +15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill +1.12329581e+04 !particle radius in m +9.22664947e+06 8.30989011e+06 -5.74831096e+04 ! x y z +-1.25111883e+03 1.34059241e+03 8.55955292e+00 ! vx vy vz +16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill +1.02921516e+04 !particle radius in m +-4.08982641e+06 1.42813091e+07 2.62466604e+04 ! x y z +-1.63050329e+03 -4.70983328e+02 5.42658810e+00 ! vx vy vz +17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill +3.92489041e+03 !particle radius in m +8.28836769e+06 -4.56966319e+06 -1.00925184e+04 ! x y z +1.01075458e+03 1.85603564e+03 9.12767608e-01 ! vx vy vz +18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill +1.30688534e+04 !particle radius in m +-7.36104027e+06 -1.05891946e+07 7.75267384e+04 ! x y z +1.50650168e+03 -1.03626339e+03 6.92830281e+00 ! vx vy vz +19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill +1.08748232e+04 !particle radius in m +-1.16432549e+07 7.04896042e+06 1.31826777e+04 ! x y z +-9.22639859e+02 -1.52066967e+03 -1.15982407e+01 ! vx vy vz +20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill +4.65478777e+03 !particle radius in m +1.54278872e+07 -4.66477914e+06 2.89150511e+04 ! x y z +4.74802657e+02 1.56436208e+03 1.16558658e+00 ! vx vy vz +21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill +6.56131734e+03 !particle radius in m +8.25405514e+06 -3.99894087e+06 -1.03017471e+05 ! x y z +9.55530709e+02 1.91876743e+03 -2.12478228e+01 ! vx vy vz +22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill +7.27184654e+03 !particle radius in m +-1.01048660e+07 -7.25267430e+05 3.72763878e+04 ! x y z +1.50338830e+02 -2.04513843e+03 -6.64737882e+00 ! vx vy vz +23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill +4.60100051e+03 !particle radius in m +1.08085981e+07 8.91343848e+05 -8.59837690e+04 ! x y z +-1.73598988e+02 1.98921090e+03 7.39675166e+00 ! vx vy vz +24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill +1.28174811e+04 !particle radius in m +-1.95760874e+07 2.13874411e+06 9.87141675e+04 ! x y z +-1.78019032e+02 -1.46067517e+03 7.47552271e+00 ! vx vy vz +25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill +1.30658530e+04 !particle radius in m +-5.15587895e+06 1.31093030e+07 2.34999443e+04 ! x y z +-1.60915655e+03 -6.75665775e+02 -1.41401807e-02 ! vx vy vz +26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill +1.03100883e+04 !particle radius in m +-1.04206598e+07 1.04694469e+07 3.71773715e+04 ! x y z +-1.22193412e+03 -1.15184993e+03 -7.42970615e+00 ! vx vy vz +27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill +1.02339628e+04 !particle radius in m +-8.37104048e+06 -7.31013791e+06 1.37822827e+05 ! x y z +1.31083458e+03 -1.50225202e+03 1.24188931e+01 ! vx vy vz +28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill +8.66551286e+03 !particle radius in m +-1.37026179e+07 6.52187486e+06 4.74483726e+04 ! x y z +-7.21171063e+02 -1.51233609e+03 4.06777653e+00 ! vx vy vz +29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill +1.07329828e+04 !particle radius in m +7.27063487e+05 9.63835599e+06 7.97365647e+04 ! x y z +-2.09031891e+03 1.45245810e+02 -8.30488647e+00 ! vx vy vz +30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill +9.57114700e+03 !particle radius in m +7.25596696e+06 -7.23053656e+06 1.87472853e+03 ! x y z +1.43916819e+03 1.45132061e+03 9.58485615e+00 ! vx vy vz +31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill +6.15153311e+03 !particle radius in m +-7.29036745e+06 1.20321492e+07 2.47342157e+04 ! x y z +-1.50263763e+03 -8.87670849e+02 -4.72544240e+00 ! vx vy vz +32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill +1.10887000e+04 !particle radius in m +-4.85214384e+06 9.94913086e+06 -1.36593449e+05 ! x y z +-1.77462439e+03 -8.70796881e+02 -4.04772339e+00 ! vx vy vz +33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill +6.11423561e+03 !particle radius in m +-8.57362843e+06 -5.69257679e+06 -1.86992418e+04 ! x y z +1.16808481e+03 -1.69357760e+03 1.48289207e-01 ! vx vy vz +34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill +4.95430775e+03 !particle radius in m +-1.19543227e+04 1.04662309e+07 -2.75529146e+04 ! x y z +-2.03252516e+03 -1.02408335e+01 -9.64298816e+00 ! vx vy vz +35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill +9.66880578e+03 !particle radius in m +-1.68361528e+06 9.15840339e+06 -9.34661786e+04 ! x y z +-2.10432868e+03 -3.67110160e+02 2.17992849e+01 ! vx vy vz +36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill +8.50653728e+03 !particle radius in m +7.61819019e+06 6.79194080e+06 -4.97100639e+04 ! x y z +-1.37259731e+03 1.51157244e+03 2.28319862e+01 ! vx vy vz +37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill +1.13756647e+04 !particle radius in m +-8.27002578e+05 -1.07584936e+07 -8.18905340e+04 ! x y z +1.98624835e+03 -1.45613526e+02 -2.22634090e+00 ! vx vy vz +38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill +1.23267605e+04 !particle radius in m +8.40661307e+06 -1.79965632e+07 -1.83341147e+05 ! x y z +1.32267980e+03 6.38873327e+02 -4.32228630e+00 ! vx vy vz +39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill +9.43036290e+03 !particle radius in m +7.47325276e+06 7.65731082e+06 2.72651622e+04 ! x y z +-1.39038210e+03 1.40779235e+03 -7.40097961e+00 ! vx vy vz +40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill +7.79381648e+03 !particle radius in m +-9.14822275e+06 5.65579867e+05 1.54779239e+04 ! x y z +-1.53215921e+02 -2.16863876e+03 -1.41098203e+01 ! vx vy vz +41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill +1.16307473e+04 !particle radius in m +-5.60611609e+06 9.45764489e+06 -1.08254759e+05 ! x y z +-1.70147881e+03 -1.00583116e+03 -1.54758662e+01 ! vx vy vz +42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill +1.01814300e+04 !particle radius in m +-1.66612775e+07 5.22172921e+06 -2.86187005e+04 ! x y z +-4.30163112e+02 -1.50298858e+03 1.29664314e+00 ! vx vy vz +43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill +1.24316568e+04 !particle radius in m +3.27505920e+06 -9.55860249e+06 -5.64452508e+04 ! x y z +1.95132421e+03 6.74732817e+02 -1.39202732e+01 ! vx vy vz +44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill +3.90909524e+03 !particle radius in m +1.52951536e+06 -8.90157648e+06 -8.46439916e+04 ! x y z +2.14907459e+03 3.37495875e+02 -8.51148141e+00 ! vx vy vz +45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill +4.54215111e+03 !particle radius in m +8.06820634e+06 -4.23727397e+06 -3.35114261e+04 ! x y z +1.02022988e+03 1.90034431e+03 -4.99905529e+00 ! vx vy vz +46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill +8.53422917e+03 !particle radius in m +-8.77755612e+06 2.67256349e+06 2.67913370e+04 ! x y z +-6.14674972e+02 -2.07327300e+03 8.52604410e+00 ! vx vy vz +47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill +1.10146390e+04 !particle radius in m +2.70600522e+06 -9.90290693e+06 3.76996678e+04 ! x y z +1.96230063e+03 5.74973963e+02 -1.26240524e+01 ! vx vy vz +48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill +6.62124902e+03 !particle radius in m +-6.67312956e+06 6.21207172e+06 -4.02351915e+03 ! x y z +-1.48608180e+03 -1.57249051e+03 1.60424143e+00 ! vx vy vz +49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill +5.42109743e+03 !particle radius in m +-6.18076768e+06 8.34028857e+06 6.32429656e+04 ! x y z +-1.63237248e+03 -1.20222734e+03 4.88968977e+00 ! vx vy vz +50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill +1.13804352e+04 !particle radius in m +5.85188296e+06 1.72848338e+07 9.71123353e+04 ! x y z +-1.44962394e+03 4.67717479e+02 -1.00039018e+01 ! vx vy vz +51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill +5.01581856e+03 !particle radius in m +7.64956565e+06 7.07155375e+06 1.22619349e+05 ! x y z +-1.38177043e+03 1.50469594e+03 5.48084097e+00 ! vx vy vz +52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill +3.91946036e+03 !particle radius in m +8.19731246e+06 5.46984950e+06 3.09134904e+04 ! x y z +-1.14400536e+03 1.75729614e+03 -1.68472307e+01 ! vx vy vz +53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill +5.56718137e+03 !particle radius in m +-7.08694323e+06 6.97654393e+06 1.57444613e+04 ! x y z +-1.43699629e+03 -1.48696944e+03 1.09569025e+01 ! vx vy vz +54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill +1.00450073e+04 !particle radius in m +8.33364079e+06 -4.88517773e+06 7.16288059e+04 ! x y z +1.11170923e+03 1.81264092e+03 6.00546346e-01 ! vx vy vz +55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill +6.58674280e+03 !particle radius in m +-9.33769960e+06 9.14931622e+06 -1.61970964e+04 ! x y z +-1.24590275e+03 -1.29664452e+03 6.60457748e+00 ! vx vy vz +56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill +8.93749433e+03 !particle radius in m +-9.38351744e+06 2.21172448e+06 -6.82548828e+04 ! x y z +-4.82800182e+02 -2.03545597e+03 -5.73581498e+00 ! vx vy vz +57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill +4.35272973e+03 !particle radius in m +1.87895940e+06 -8.56248718e+06 -3.00496615e+04 ! x y z +2.17444079e+03 4.47176832e+02 -1.19261276e+01 ! vx vy vz +58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill +1.11807470e+04 !particle radius in m +8.32914883e+06 6.99509139e+06 3.96475596e+03 ! x y z +-1.25015649e+03 1.51958279e+03 -4.03731794e+00 ! vx vy vz +59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill +5.35230171e+03 !particle radius in m +1.40169380e+07 1.14833336e+06 8.97154952e+04 ! x y z +-1.67134532e+02 1.72504621e+03 -4.99628204e+00 ! vx vy vz +60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill +9.94627977e+03 !particle radius in m +6.25929466e+06 6.41436879e+06 2.03611835e+04 ! x y z +-1.56963361e+03 1.52043093e+03 1.04032604e+01 ! vx vy vz +61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill +1.29906317e+04 !particle radius in m +6.59380692e+06 6.26136699e+06 5.26920752e+02 ! x y z +-1.52860150e+03 1.56995044e+03 -5.04992194e+00 ! vx vy vz +62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill +5.50619929e+03 !particle radius in m +-3.18458810e+06 8.95887994e+06 6.14079574e+04 ! x y z +-1.98254651e+03 -6.98894893e+02 -6.28253660e-01 ! vx vy vz +63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill +9.81501110e+03 !particle radius in m +3.21556801e+06 8.85736420e+06 1.68758030e+04 ! x y z +-2.01862696e+03 7.01940495e+02 -7.77962553e+00 ! vx vy vz +64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill +7.23368562e+03 !particle radius in m +6.87944610e+06 1.31239767e+07 8.47895296e+04 ! x y z +-1.52033935e+03 7.81668854e+02 8.53929151e+00 ! vx vy vz +65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill +4.38175744e+03 !particle radius in m +-7.12317437e+06 7.79679451e+06 1.14295538e+05 ! x y z +-1.45772671e+03 -1.35257658e+03 -8.92909999e+00 ! vx vy vz +66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill +6.45312806e+03 !particle radius in m +-7.50346488e+06 4.59614758e+06 -1.78561776e+04 ! x y z +-1.17484683e+03 -1.88471092e+03 2.06051741e+00 ! vx vy vz +67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill +5.04443190e+03 !particle radius in m +-9.72849273e+06 -4.49090647e+06 9.42367849e+04 ! x y z +8.55743475e+02 -1.81695360e+03 -2.08602456e+00 ! vx vy vz +68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill +1.24464529e+04 !particle radius in m +-9.38461254e+06 6.94991468e+06 -5.96507119e+04 ! x y z +-1.15295098e+03 -1.53950357e+03 3.51558529e+00 ! vx vy vz +69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill +1.25735358e+04 !particle radius in m +-7.41691843e+05 -1.00833740e+07 -5.60539800e+04 ! x y z +2.04132497e+03 -1.60740204e+02 -2.66722707e+00 ! vx vy vz +70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill +8.72818623e+03 !particle radius in m +-1.55585013e+07 -7.11561291e+06 3.93194543e+03 ! x y z +6.65437196e+02 -1.43702009e+03 -7.23293961e+00 ! vx vy vz +71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill +8.08736691e+03 !particle radius in m +-3.34597213e+06 -8.19414991e+06 6.06177774e+04 ! x y z +2.03861032e+03 -8.50240184e+02 5.81078899e+00 ! vx vy vz +72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill +1.15287399e+04 !particle radius in m +1.97016279e+06 -9.71556312e+06 -9.30987397e+03 ! x y z +2.03815672e+03 3.86141142e+02 -6.70148607e+00 ! vx vy vz +73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill +9.70989454e+03 !particle radius in m +-1.23610305e+07 -1.14674155e+07 1.26044785e+04 ! x y z +1.08318223e+03 -1.17487397e+03 -3.70767753e+00 ! vx vy vz +74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill +4.86667460e+03 !particle radius in m +6.60995348e+06 1.33054967e+07 -1.05591305e+03 ! x y z +-1.53012251e+03 7.44076876e+02 -1.33826451e+00 ! vx vy vz +75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill +1.01917171e+04 !particle radius in m +7.08025559e+06 6.63712140e+06 8.28590703e+04 ! x y z +-1.43411418e+03 1.51197736e+03 -1.05467488e+01 ! vx vy vz +76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill +8.99162185e+03 !particle radius in m +-7.28273678e+06 -7.57343022e+06 -3.32239292e+04 ! x y z +1.43763945e+03 -1.39069870e+03 1.98407302e+01 ! vx vy vz +77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill +1.03376021e+04 !particle radius in m +9.90338765e+05 -9.02823668e+06 -1.20306983e+04 ! x y z +2.16293198e+03 2.29403632e+02 1.02563280e+00 ! vx vy vz +78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill +1.14607582e+04 !particle radius in m +7.24980777e+06 6.13973485e+06 4.31080507e+04 ! x y z +-1.36304394e+03 1.62331327e+03 -1.35525280e+01 ! vx vy vz +79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill +5.60647602e+03 !particle radius in m +1.67269227e+07 2.38546079e+06 3.97527319e+04 ! x y z +-2.22376967e+02 1.58567381e+03 -8.67277559e-01 ! vx vy vz +80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill +5.23039108e+03 !particle radius in m +1.04063991e+07 -2.47414364e+06 2.55875518e+04 ! x y z +4.41751921e+02 1.96103152e+03 -4.73452379e+00 ! vx vy vz +81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill +9.83393818e+03 !particle radius in m +6.53964743e+06 -9.91913737e+06 9.96407478e+04 ! x y z +1.55366935e+03 1.06687009e+03 -2.02851694e+01 ! vx vy vz +82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill +6.73293314e+03 !particle radius in m +7.88901212e+06 4.39968813e+06 4.59555939e+04 ! x y z +-1.07086350e+03 1.89616918e+03 7.27266270e-01 ! vx vy vz +83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill +1.22637545e+04 !particle radius in m +-3.20114591e+05 9.47888835e+06 9.88766449e+03 ! x y z +-2.12931637e+03 -7.10990071e+01 1.07017003e+01 ! vx vy vz +84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill +6.90749219e+03 !particle radius in m +9.14219160e+06 8.75278019e+06 -4.92172540e+04 ! x y z +-1.29548970e+03 1.30726587e+03 -1.50278883e+01 ! vx vy vz +85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill +8.47614716e+03 !particle radius in m +-1.38612397e+07 6.86502447e+06 -1.61982632e+04 ! x y z +-7.48338598e+02 -1.49504839e+03 1.44565317e-01 ! vx vy vz +86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill +5.74019158e+03 !particle radius in m +1.25478256e+07 -2.77052958e+05 1.12717341e+03 ! x y z +4.85806635e+01 1.82811230e+03 -1.79057921e+01 ! vx vy vz +87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill +5.29092447e+03 !particle radius in m +1.40993545e+06 1.16245820e+07 -3.61782966e+04 ! x y z +-1.89457813e+03 2.30174579e+02 1.28253693e+00 ! vx vy vz +88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill +9.92395993e+03 !particle radius in m +1.00651315e+07 -8.63755855e+06 -2.94583233e+04 ! x y z +1.16408014e+03 1.36020820e+03 -5.13543123e+00 ! vx vy vz +89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill +1.20526803e+04 !particle radius in m +2.98890445e+06 1.22541433e+07 2.56056735e+04 ! x y z +-1.78538758e+03 4.40494099e+02 -2.21749367e+00 ! vx vy vz +90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill +4.35975582e+03 !particle radius in m +5.19540663e+06 -9.11850659e+06 6.55061213e+04 ! x y z +1.75856318e+03 9.95618038e+02 1.03697665e+01 ! vx vy vz +91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill +5.41642563e+03 !particle radius in m +4.97139511e+06 -1.11941305e+07 -1.40627719e+05 ! x y z +1.71256583e+03 7.58315920e+02 -4.27199322e+00 ! vx vy vz +92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill +6.88890644e+03 !particle radius in m +1.25156536e+07 -1.83009831e+06 -1.83401376e+04 ! x y z +2.71538728e+02 1.82389745e+03 -1.16128548e+01 ! vx vy vz +93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill +4.92766241e+03 !particle radius in m +-4.24848440e+06 -1.14141124e+07 -3.56440379e+04 ! x y z +1.77145707e+03 -6.72445172e+02 -1.27477365e+01 ! vx vy vz +94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill +5.12796820e+03 !particle radius in m +-2.67257221e+06 8.24864699e+06 -3.60351703e+04 ! x y z +-2.13740103e+03 -6.84795253e+02 -6.19432137e+00 ! vx vy vz +95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill +3.97477538e+03 !particle radius in m +3.38794467e+06 -1.65102444e+07 1.31352407e+05 ! x y z +1.55800648e+03 3.20903339e+02 1.95779030e-01 ! vx vy vz +96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill +5.60787672e+03 !particle radius in m +3.25966423e+06 9.75900867e+06 3.76712868e+04 ! x y z +-1.92824453e+03 6.78004645e+02 2.13894611e+01 ! vx vy vz +97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill +5.02914497e+03 !particle radius in m +-8.82496169e+06 1.17570086e+06 -2.77994253e+03 ! x y z +-3.06986654e+02 -2.17589269e+03 -3.00417185e+00 ! vx vy vz +98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill +1.26054254e+04 !particle radius in m +-8.96181392e+06 -8.08537511e+06 -9.49567974e+03 ! x y z +1.24755669e+03 -1.37614946e+03 4.00147116e+00 ! vx vy vz +99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill +3.83342071e+03 !particle radius in m +1.05138352e+07 -2.53028835e+06 -2.47118873e+04 ! x y z +4.70010064e+02 1.92569661e+03 -1.14250111e+01 ! vx vy vz +100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill +1.23894990e+04 !particle radius in m +-8.86717935e+06 -3.01884801e+06 5.43577921e+03 ! x y z +6.99055272e+02 -2.04010264e+03 8.96596820e+00 ! vx vy vz +101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill +8.04335643e+03 !particle radius in m +1.42373839e+07 3.02611132e+06 -1.43164181e+04 ! x y z +-4.03733107e+02 1.68169148e+03 7.10932541e+00 ! vx vy vz +102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill +9.07798396e+03 !particle radius in m +-6.09504895e+06 8.50655715e+06 -5.34991934e+04 ! x y z +-1.62687481e+03 -1.19574157e+03 5.21976127e+00 ! vx vy vz +103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill +3.95640633e+03 !particle radius in m +3.72306724e+06 9.02743458e+06 4.19786502e+04 ! x y z +-1.94834474e+03 7.84745897e+02 -7.86691937e+00 ! vx vy vz +104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill +1.06463568e+04 !particle radius in m +5.64202715e+06 -8.82003156e+06 9.37432782e+03 ! x y z +1.69914027e+03 1.09005087e+03 8.81006839e+00 ! vx vy vz +105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill +5.68865819e+03 !particle radius in m +-1.08304546e+07 -5.16566260e+06 -4.58380354e+04 ! x y z +8.08725156e+02 -1.70426515e+03 -1.40809084e+01 ! vx vy vz +106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill +1.06640002e+04 !particle radius in m +9.97312286e+06 -1.70160094e+06 4.10359397e+04 ! x y z +3.34859938e+02 2.01251950e+03 -1.05202781e+00 ! vx vy vz +107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill +7.85135736e+03 !particle radius in m +7.03958663e+06 7.71716479e+06 -8.94733922e+03 ! x y z +-1.49839830e+03 1.36772144e+03 -1.09915777e+00 ! vx vy vz +108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill +3.80442303e+03 !particle radius in m +1.15617458e+07 -4.37264141e+06 4.98550747e+04 ! x y z +6.45606485e+02 1.75989881e+03 1.00504151e+00 ! vx vy vz +109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill +7.55084889e+03 !particle radius in m +6.33009492e+06 8.26456632e+06 4.39267321e+04 ! x y z +-1.63555236e+03 1.22749817e+03 -2.79591207e+00 ! vx vy vz +110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill +5.24028103e+03 !particle radius in m +-1.23116789e+06 -1.76328069e+07 4.15688915e+04 ! x y z +1.54978172e+03 -1.14789962e+02 3.52623567e+00 ! vx vy vz +111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill +1.09298010e+04 !particle radius in m +5.03800785e+06 7.38464714e+06 6.56936601e+04 ! x y z +-1.79789878e+03 1.24241563e+03 -1.87814487e+00 ! vx vy vz +112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill +4.24258369e+03 !particle radius in m +-1.16819556e+07 2.21702225e+06 -1.76770966e+03 ! x y z +-3.36108070e+02 -1.84613620e+03 1.27905806e+01 ! vx vy vz +113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill +1.04890693e+04 !particle radius in m +1.00037167e+07 3.61161669e+06 -5.98746596e+04 ! x y z +-7.04121449e+02 1.87165808e+03 1.87226479e-01 ! vx vy vz +114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill +6.72997694e+03 !particle radius in m +-8.02245740e+06 -4.15017483e+06 1.94427373e+04 ! x y z +9.95701473e+02 -1.91465293e+03 9.55414968e+00 ! vx vy vz +115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill +4.37893861e+03 !particle radius in m +-4.99256633e+06 7.35143538e+06 -6.25201967e+04 ! x y z +-1.82686822e+03 -1.23953720e+03 -3.37208923e+00 ! vx vy vz +116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill +9.76924055e+03 !particle radius in m +-2.12824530e+06 9.48297181e+06 4.56720468e+03 ! x y z +-2.04325211e+03 -4.78944866e+02 1.39609484e+01 ! vx vy vz +117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill +4.12337692e+03 !particle radius in m +-1.42745447e+07 -5.79867689e+06 -1.70313904e+04 ! x y z +6.32626042e+02 -1.53908540e+03 1.67461109e+01 ! vx vy vz +118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill +8.79476284e+03 !particle radius in m +3.38987773e+06 1.01890371e+07 3.97150856e+04 ! x y z +-1.89204657e+03 6.21657437e+02 -2.83215087e+01 ! vx vy vz +119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill +4.83385440e+03 !particle radius in m +1.36440026e+07 -9.23862046e+06 -5.31108803e+04 ! x y z +9.02323684e+02 1.33920162e+03 1.66233464e+00 ! vx vy vz +120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill +8.13388768e+03 !particle radius in m +-3.69977113e+06 -1.52467920e+07 -1.34829610e+05 ! x y z +1.61925599e+03 -3.72623284e+02 7.50289619e+00 ! vx vy vz +121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill +9.36399150e+03 !particle radius in m +1.82794011e+07 6.84958710e+06 1.41781869e+04 ! x y z +-5.47821288e+02 1.37308430e+03 -7.00506636e+00 ! vx vy vz +122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill +4.56803304e+03 !particle radius in m +1.18968647e+07 1.33707826e+07 -1.11221176e+05 ! x y z +-1.16553280e+03 1.03288779e+03 1.42253495e+01 ! vx vy vz +123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill +4.67906973e+03 !particle radius in m +-1.96455999e+07 -2.60429318e+06 -9.25749294e+04 ! x y z +1.97567654e+02 -1.46047680e+03 3.96763228e+00 ! vx vy vz +124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill +7.05460271e+03 !particle radius in m +-2.68241356e+06 9.67860718e+06 -3.52723705e+04 ! x y z +-1.98385491e+03 -5.75973374e+02 4.82531781e+00 ! vx vy vz +125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill +7.35090499e+03 !particle radius in m +-1.66338998e+06 1.06654130e+07 -1.15436526e+05 ! x y z +-1.97394994e+03 -3.24337570e+02 1.49148403e+00 ! vx vy vz +126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill +1.15778235e+04 !particle radius in m +5.73133232e+06 -6.88742280e+06 -9.91791004e+03 ! x y z +1.69108314e+03 1.40100447e+03 8.39576992e+00 ! vx vy vz +127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill +9.74792278e+03 !particle radius in m +1.16505540e+07 1.24190497e+07 3.29845083e+04 ! x y z +-1.14848373e+03 1.08164128e+03 1.94732937e-01 ! vx vy vz +128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill +5.57197333e+03 !particle radius in m +-9.45920013e+06 -1.21129886e+06 4.53752885e+04 ! x y z +2.60756743e+02 -2.09880469e+03 -1.84679906e+01 ! vx vy vz +129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill +1.29160713e+04 !particle radius in m +8.30827394e+06 4.94291767e+06 9.57082698e+03 ! x y z +-1.06905700e+03 1.81887550e+03 -1.59783959e+01 ! vx vy vz +130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill +6.28724063e+03 !particle radius in m +9.92654375e+06 -1.39802998e+06 4.49817877e+02 ! x y z +2.59014431e+02 2.03619473e+03 -1.49038139e+01 ! vx vy vz +131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill +3.98022020e+03 !particle radius in m +2.81061041e+06 9.89835484e+06 -9.78582159e+04 ! x y z +-1.95518409e+03 5.78271402e+02 1.18622238e+01 ! vx vy vz +132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill +5.77530198e+03 !particle radius in m +-5.58547024e+06 -9.86469957e+06 6.83294173e+04 ! x y z +1.69539459e+03 -9.41024851e+02 -1.14165406e+01 ! vx vy vz +133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill +6.26805874e+03 !particle radius in m +8.08999866e+06 6.84273025e+06 1.04867849e+03 ! x y z +-1.27946500e+03 1.55545684e+03 8.91891880e+00 ! vx vy vz +134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill +9.74422649e+03 !particle radius in m +9.18575665e+06 -5.49644544e+06 -5.52894905e+03 ! x y z +1.01968981e+03 1.71970787e+03 -3.39617822e-01 ! vx vy vz +135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill +4.33654694e+03 !particle radius in m +1.80833036e+06 -9.23065450e+06 4.90226701e+04 ! x y z +2.08275022e+03 4.17014758e+02 6.63087350e+00 ! vx vy vz +136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill +6.60858198e+03 !particle radius in m +1.18507627e+07 2.26553726e+06 2.21133096e+03 ! x y z +-3.50610095e+02 1.84373395e+03 -2.60885445e-01 ! vx vy vz +137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill +7.13226721e+03 !particle radius in m +2.21659927e+07 -6.92493598e+06 -4.28421451e+04 ! x y z +4.19436458e+02 1.29376942e+03 -6.14053149e+00 ! vx vy vz +138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill +8.09831906e+03 !particle radius in m +-6.92437867e+06 -6.69629009e+06 -5.72228921e+04 ! x y z +1.49689718e+03 -1.48846576e+03 -1.37808252e+01 ! vx vy vz +139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill +1.01750117e+04 !particle radius in m +-6.66985595e+06 -7.23797041e+06 -1.53286702e+04 ! x y z +1.53320998e+03 -1.42766264e+03 2.90451170e+00 ! vx vy vz +140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill +1.25638046e+04 !particle radius in m +-8.86868024e+06 7.20105731e+05 -2.22950048e+03 ! x y z +-1.95841451e+02 -2.19258513e+03 -3.67523850e-01 ! vx vy vz +141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill +1.20137567e+04 !particle radius in m +5.67690574e+06 -1.03162373e+07 -9.41350622e+04 ! x y z +1.67246075e+03 9.20785969e+02 -1.99251255e+01 ! vx vy vz +142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill +5.23260806e+03 !particle radius in m +5.50551593e+06 -1.45584653e+07 5.27718687e+04 ! x y z +1.54616130e+03 5.79954533e+02 7.51811204e+00 ! vx vy vz +143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill +1.20845494e+04 !particle radius in m +-3.47796098e+06 -8.90927004e+06 9.65028764e+03 ! x y z +1.97386652e+03 -7.53987246e+02 -3.28779531e+00 ! vx vy vz +144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill +7.74350141e+03 !particle radius in m +7.74574172e+06 5.95714791e+06 -1.05471596e+04 ! x y z +-1.25035431e+03 1.67733844e+03 -1.65757527e+00 ! vx vy vz +145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill +4.08711498e+03 !particle radius in m +-1.98199827e+07 7.29300766e+06 -1.29061581e+05 ! x y z +-4.89201522e+02 -1.32406236e+03 8.40261667e+00 ! vx vy vz +146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill +9.69135174e+03 !particle radius in m +1.13588614e+07 1.27104515e+07 1.21608339e+05 ! x y z +-1.17212059e+03 1.06703576e+03 1.25962854e+01 ! vx vy vz +147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill +1.07960507e+04 !particle radius in m +-6.88558621e+06 6.34193128e+06 -5.71723545e+04 ! x y z +-1.41834644e+03 -1.59442296e+03 3.00905420e+00 ! vx vy vz +148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill +5.95367439e+03 !particle radius in m +2.58947797e+06 1.59613455e+07 1.59042158e+05 ! x y z +-1.60287570e+03 2.41814174e+02 -1.67580989e+00 ! vx vy vz +149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill +5.64691333e+03 !particle radius in m +1.27274825e+07 3.00655471e+06 8.98397391e+03 ! x y z +-4.31699175e+02 1.77274933e+03 -1.26354778e+01 ! vx vy vz +150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill +5.08343859e+03 !particle radius in m +-7.10630600e+06 -7.28840877e+06 -2.23411110e+03 ! x y z +1.47897945e+03 -1.43505611e+03 -2.71839174e+00 ! vx vy vz +151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill +4.64223699e+03 !particle radius in m +6.38222762e+06 -6.74069777e+06 8.75842881e+04 ! x y z +1.60375261e+03 1.44358800e+03 -9.05519600e-01 ! vx vy vz +152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill +8.12086478e+03 !particle radius in m +-1.56702566e+07 4.26618807e+06 5.21823445e+04 ! x y z +-4.05029139e+02 -1.57894139e+03 2.53582968e+00 ! vx vy vz +153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill +9.30546634e+03 !particle radius in m +-8.73094270e+06 5.67791265e+06 2.17614432e+04 ! x y z +-1.10821669e+03 -1.70422433e+03 2.11567045e+01 ! vx vy vz +154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill +5.54672703e+03 !particle radius in m +-1.01683371e+07 1.10819821e+06 1.64139763e+04 ! x y z +-2.62188936e+02 -2.02918021e+03 8.77276633e+00 ! vx vy vz +155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill +4.01652823e+03 !particle radius in m +4.35525820e+06 1.08005096e+07 7.15657051e+04 ! x y z +-1.78452573e+03 7.14211418e+02 1.85217607e+01 ! vx vy vz +156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill +8.23178885e+03 !particle radius in m +1.33640503e+06 -1.35991318e+07 1.26981224e+05 ! x y z +1.75325272e+03 1.99801637e+02 9.12185103e+00 ! vx vy vz +157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill +7.10947055e+03 !particle radius in m +-6.82381137e+06 5.53567185e+06 7.84751624e+03 ! x y z +-1.38395700e+03 -1.73645326e+03 7.57405795e+00 ! vx vy vz +158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill +4.80346108e+03 !particle radius in m +3.89840794e+06 1.10854924e+07 3.76242516e+03 ! x y z +-1.80675419e+03 6.21051875e+02 -1.71817477e+01 ! vx vy vz +159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill +6.55725922e+03 !particle radius in m +-1.97874775e+06 -8.77567582e+06 -2.75052193e+03 ! x y z +2.14929146e+03 -4.63042632e+02 1.42528242e+01 ! vx vy vz +160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill +1.04379733e+04 !particle radius in m +-3.69568353e+06 8.70958011e+06 1.23991773e+02 ! x y z +-1.95889951e+03 -8.30413409e+02 3.23324109e+00 ! vx vy vz +161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill +4.12198879e+03 !particle radius in m +-7.46635757e+06 8.75996756e+06 -3.38546703e+04 ! x y z +-1.47538097e+03 -1.25605788e+03 1.14970804e+01 ! vx vy vz +162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill +7.66776863e+03 !particle radius in m +5.08163706e+06 1.05043562e+07 -2.49011889e+04 ! x y z +-1.73355443e+03 8.04079694e+02 -1.88007028e+00 ! vx vy vz +163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill +4.64199906e+03 !particle radius in m +4.39449717e+06 -7.93852417e+06 4.36583437e+04 ! x y z +1.88869963e+03 1.05420912e+03 5.50586344e+00 ! vx vy vz +164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill +1.07424793e+04 !particle radius in m +8.63623502e+06 -7.74644884e+06 1.85384542e+04 ! x y z +1.26494539e+03 1.43300151e+03 7.04221650e+00 ! vx vy vz +165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill +9.85657615e+03 !particle radius in m +-6.15368525e+05 1.49121598e+07 -4.67932565e+04 ! x y z +-1.68745762e+03 -4.92212694e+01 -1.94039771e+00 ! vx vy vz +166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill +6.99747229e+03 !particle radius in m +8.64904319e+06 5.91192747e+06 -6.14206652e+04 ! x y z +-1.13126693e+03 1.64851790e+03 -1.89192778e+01 ! vx vy vz +167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill +8.71931949e+03 !particle radius in m +-7.78414392e+06 4.96208659e+06 -1.63838108e+04 ! x y z +-1.12672930e+03 -1.82241793e+03 -5.96425105e+00 ! vx vy vz +168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill +4.23710232e+03 !particle radius in m +9.85857087e+06 -4.25461587e+05 -7.76455058e+04 ! x y z +8.06687493e+01 2.07960003e+03 3.28242575e+00 ! vx vy vz +169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill +1.00719866e+04 !particle radius in m +-3.92871528e+06 -2.24319020e+07 2.77551401e+04 ! x y z +1.34770576e+03 -2.35192176e+02 -6.19147736e+00 ! vx vy vz +170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill +7.23647883e+03 !particle radius in m +-9.85059665e+06 -8.52205655e+06 -5.48573039e+04 ! x y z +1.18464366e+03 -1.37030272e+03 9.99031014e-01 ! vx vy vz +171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill +9.97940619e+03 !particle radius in m +-1.95744716e+06 -1.40658438e+07 -8.96628033e+04 ! x y z +1.72553028e+03 -2.22255484e+02 -2.68715792e+00 ! vx vy vz +172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill +9.75068673e+03 !particle radius in m +-1.83887109e+07 -4.94937710e+06 4.13740137e+04 ! x y z +4.02207087e+02 -1.44472494e+03 7.82771281e+00 ! vx vy vz +173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill +1.18333139e+04 !particle radius in m +6.28107583e+06 -7.96489519e+06 1.00181104e+05 ! x y z +1.61474462e+03 1.25899281e+03 3.25360113e+00 ! vx vy vz +174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill +6.66516052e+03 !particle radius in m +8.57815199e+06 2.93408991e+06 1.00482256e+04 ! x y z +-7.00269987e+02 2.05582007e+03 1.47496098e+00 ! vx vy vz +175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill +7.54796479e+03 !particle radius in m +3.89386447e+06 -1.18916453e+07 4.75801024e+03 ! x y z +1.79017897e+03 5.72333272e+02 1.35429336e+01 ! vx vy vz +176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill +5.87384040e+03 !particle radius in m +-1.12819097e+07 -2.03828249e+07 -4.17849171e+04 ! x y z +1.20129982e+03 -6.40831904e+02 -7.21062138e+00 ! vx vy vz +177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill +9.04694786e+03 !particle radius in m +-3.48844270e+06 -1.39807096e+07 -9.80376409e+04 ! x y z +1.67545999e+03 -4.23493775e+02 9.57144799e+00 ! vx vy vz +178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill +5.80834687e+03 !particle radius in m +-6.99241637e+06 -6.97891492e+06 1.17078416e+04 ! x y z +1.45466387e+03 -1.49110516e+03 -7.97644872e+00 ! vx vy vz +179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill +7.27807466e+03 !particle radius in m +2.29671869e+07 -4.77992661e+06 -2.29056888e+05 ! x y z +2.66633595e+02 1.31300250e+03 8.11268595e+00 ! vx vy vz +180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill +7.37859561e+03 !particle radius in m +1.12799199e+07 -5.64371881e+06 -4.86158248e+04 ! x y z +8.25574521e+02 1.64707498e+03 1.79426055e+01 ! vx vy vz +181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill +4.55114695e+03 !particle radius in m +-8.97901930e+06 1.40018499e+06 -1.17315967e+04 ! x y z +-3.50813576e+02 -2.14111191e+03 1.58430709e+00 ! vx vy vz +182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill +9.69448137e+03 !particle radius in m +-1.27934972e+07 5.80764481e+05 -6.60656959e+04 ! x y z +-8.73661010e+01 -1.83147573e+03 9.29252102e+00 ! vx vy vz +183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill +1.23062037e+04 !particle radius in m +-6.51355993e+06 -1.80095300e+07 -1.28499713e+05 ! x y z +1.42185635e+03 -5.15444029e+02 4.71976246e+00 ! vx vy vz +184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill +1.23109627e+04 !particle radius in m +-1.35063597e+06 1.04263703e+07 -1.65523047e+04 ! x y z +-1.99638943e+03 -2.63418025e+02 -1.41194780e+01 ! vx vy vz +185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill +3.71369106e+03 !particle radius in m +-9.22486496e+06 2.96866634e+06 -1.89865927e+03 ! x y z +-6.64441635e+02 -2.00340641e+03 -1.17076646e+01 ! vx vy vz +186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill +6.29750468e+03 !particle radius in m +7.10721350e+06 7.67585026e+06 -3.24513481e+03 ! x y z +-1.50133478e+03 1.36725034e+03 -1.87929113e+01 ! vx vy vz +187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill +8.63385286e+03 !particle radius in m +-3.50855266e+06 -8.47958104e+06 5.43121964e+04 ! x y z +2.01378047e+03 -8.30225015e+02 -6.42928682e+00 ! vx vy vz +188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill +5.95402041e+03 !particle radius in m +-1.71845688e+07 2.92835680e+06 1.80160654e+04 ! x y z +-2.68908847e+02 -1.54460993e+03 5.60740384e+00 ! vx vy vz +189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill +9.54950570e+03 !particle radius in m +-9.06623165e+06 -4.20136967e+06 -2.06364196e+04 ! x y z +8.54458713e+02 -1.90544528e+03 6.22285906e+00 ! vx vy vz +190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill +1.19619247e+04 !particle radius in m +5.25849667e+06 8.80426419e+06 1.08815572e+04 ! x y z +-1.77864099e+03 1.00939651e+03 -2.77090468e+00 ! vx vy vz +191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill +6.74935610e+03 !particle radius in m +4.62808704e+06 1.40254648e+07 2.62029474e+04 ! x y z +-1.61136420e+03 5.34010697e+02 -6.77858294e-01 ! vx vy vz +192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill +5.20619396e+03 !particle radius in m +2.01424278e+07 3.41792942e+05 1.94882104e+05 ! x y z +-2.93420884e+01 1.45364435e+03 -7.07412419e-01 ! vx vy vz +193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill +1.06486075e+04 !particle radius in m +8.37083337e+06 -1.79540915e+07 -5.91009347e+04 ! x y z +1.33428010e+03 6.17563374e+02 2.42512024e+00 ! vx vy vz +194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill +5.04887899e+03 !particle radius in m +9.18834937e+06 4.09046541e+05 5.54581813e+03 ! x y z +-7.23751549e+01 2.15950913e+03 6.85354866e-01 ! vx vy vz +195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill +6.36561457e+03 !particle radius in m +2.40599869e+06 -1.36259877e+07 7.24745280e+03 ! x y z +1.74094787e+03 3.07239990e+02 8.10516402e+00 ! vx vy vz +196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill +3.87967973e+03 !particle radius in m +-1.16034100e+07 -1.77480486e+06 -1.62127720e+04 ! x y z +2.83834839e+02 -1.87461386e+03 5.96638672e-01 ! vx vy vz +197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill +6.85511860e+03 !particle radius in m +1.47515573e+07 -2.57581761e+05 -5.23662055e+04 ! x y z +1.10532093e+01 1.70024862e+03 8.28609927e-01 ! vx vy vz +198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill +1.23039299e+04 !particle radius in m +1.13163190e+07 -7.84357347e+06 1.03407930e+04 ! x y z +1.01120595e+03 1.44577732e+03 -5.19143023e+00 ! vx vy vz +199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill +5.75530148e+03 !particle radius in m +-3.32812125e+06 -9.44533791e+06 -4.90376566e+04 ! x y z +1.95676637e+03 -6.51606826e+02 -5.70434278e+00 ! vx vy vz +200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill +1.24729785e+04 !particle radius in m +1.06811374e+07 -4.93512180e+06 -2.54549899e+04 ! x y z +7.94618978e+02 1.74255873e+03 -9.79841366e+00 ! vx vy vz +201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill +1.17522845e+04 !particle radius in m +1.08275316e+07 3.16975354e+06 -1.83616872e+04 ! x y z +-5.71210349e+02 1.85480914e+03 -5.53165520e+00 ! vx vy vz +202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill +1.19662231e+04 !particle radius in m +-8.93938095e+06 -1.07672320e+06 2.20211931e+02 ! x y z +2.21513596e+02 -2.17140814e+03 -5.31579057e+00 ! vx vy vz +203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill +6.94294309e+03 !particle radius in m +-1.11274091e+07 6.99042019e+06 4.20463158e+03 ! x y z +-9.73175474e+02 -1.52053333e+03 -7.28310775e+00 ! vx vy vz +204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill +9.44639204e+03 !particle radius in m +4.40522655e+06 -1.23917208e+07 -1.61713907e+04 ! x y z +1.70009079e+03 6.02493125e+02 -3.82502681e+00 ! vx vy vz +205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill +6.43759473e+03 !particle radius in m +8.84972010e+06 5.65746303e+06 4.89598915e+04 ! x y z +-1.07695732e+03 1.71417278e+03 -2.68488868e+00 ! vx vy vz +206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill +5.88752122e+03 !particle radius in m +-5.79952078e+06 8.88645462e+06 -2.44580541e+04 ! x y z +-1.68074658e+03 -1.10169885e+03 -6.29194406e-01 ! vx vy vz +207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill +1.25432938e+04 !particle radius in m +-8.14410389e+06 -3.97016042e+06 -9.88813618e+04 ! x y z +9.01368103e+02 -1.96430805e+03 -4.40735560e+00 ! vx vy vz +208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill +1.04148028e+04 !particle radius in m +7.46448044e+06 -4.58544507e+06 1.76340315e+04 ! x y z +1.15401750e+03 1.90545254e+03 -7.27693077e+00 ! vx vy vz +209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill +1.12804852e+04 !particle radius in m +-2.08884933e+06 -1.02835429e+07 6.42079933e+03 ! x y z +1.99534972e+03 -4.16589585e+02 -4.18338876e+00 ! vx vy vz +210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill +7.47765824e+03 !particle radius in m +3.36937988e+06 -9.91809680e+06 5.89060808e+04 ! x y z +1.88421155e+03 6.84396854e+02 -2.08220150e+00 ! vx vy vz +211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill +9.05273758e+03 !particle radius in m +-7.24117471e+06 -9.21469921e+06 -3.61410851e+04 ! x y z +1.49902224e+03 -1.18897591e+03 9.80133706e-01 ! vx vy vz +212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill +1.25609127e+04 !particle radius in m +-3.74450435e+06 -8.15891931e+06 2.77691948e+04 ! x y z +1.97501199e+03 -9.06036575e+02 -2.45381289e-01 ! vx vy vz +213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill +8.46042215e+03 !particle radius in m +7.14052519e+06 1.53102112e+07 1.62981971e+05 ! x y z +-1.44016584e+03 6.81333291e+02 -1.60906032e+00 ! vx vy vz +214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill +1.30715050e+04 !particle radius in m +-1.03399269e+07 2.85213950e+05 -3.22137865e+04 ! x y z +-5.00043408e+01 -2.01781826e+03 1.16086899e+01 ! vx vy vz +215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill +1.28466493e+04 !particle radius in m +4.61126913e+06 7.68167619e+06 3.21015460e+03 ! x y z +-1.87745924e+03 1.11654918e+03 8.74586750e+00 ! vx vy vz +216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill +1.00516869e+04 !particle radius in m +-7.63901209e+05 9.38473527e+06 2.09296480e+04 ! x y z +-2.13149182e+03 -1.53874003e+02 1.07619871e+00 ! vx vy vz +217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill +4.49233328e+03 !particle radius in m +-3.50142507e+06 1.29584846e+07 4.99036110e+03 ! x y z +-1.71988301e+03 -4.67120020e+02 -1.52874482e+00 ! vx vy vz +218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill +3.93575293e+03 !particle radius in m +2.89549121e+05 9.73817170e+06 7.30475924e+03 ! x y z +-2.10637979e+03 6.28009545e+01 2.73575242e+01 ! vx vy vz +219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill +5.55621969e+03 !particle radius in m +-8.69236370e+06 2.60571730e+06 1.87543471e+04 ! x y z +-6.41047725e+02 -2.08196126e+03 -9.78180600e+00 ! vx vy vz +220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill +1.17336811e+04 !particle radius in m +1.16999055e+07 -8.45214750e+05 -1.23088793e+04 ! x y z +1.51868140e+02 1.88990987e+03 5.91582506e+00 ! vx vy vz +221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill +1.23451688e+04 !particle radius in m +1.04932440e+07 6.34593749e+06 -5.14735307e+04 ! x y z +-9.55788059e+02 1.61305183e+03 7.38311147e+00 ! vx vy vz +222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill +9.05651521e+03 !particle radius in m +-1.00872411e+07 -7.19383413e+06 1.02683109e+05 ! x y z +1.09632503e+03 -1.47708699e+03 2.53571970e+00 ! vx vy vz +223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill +8.39272259e+03 !particle radius in m +-1.29868607e+07 9.20702284e+06 -1.02202794e+05 ! x y z +-9.58764873e+02 -1.33478274e+03 7.40636311e+00 ! vx vy vz +224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill +1.03677203e+04 !particle radius in m +2.69271095e+06 9.12085234e+06 -6.31280178e+04 ! x y z +-2.04468399e+03 6.49763127e+02 -6.41633267e+00 ! vx vy vz +225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill +9.48618629e+03 !particle radius in m +-1.04843536e+07 -2.82530322e+06 -6.63351271e+03 ! x y z +5.35179489e+02 -1.90917831e+03 -8.89095603e+00 ! vx vy vz +226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill +1.16195447e+04 !particle radius in m +8.55294018e+06 -2.42617769e+06 2.52020611e+04 ! x y z +6.43758212e+02 2.11770030e+03 -2.00995235e+00 ! vx vy vz +227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill +1.23569961e+04 !particle radius in m +9.56160063e+06 2.03876951e+05 -1.15187717e+04 ! x y z +-2.08727307e+01 2.13182274e+03 -6.37368295e+00 ! vx vy vz +228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill +3.80903228e+03 !particle radius in m +8.39735110e+06 -4.64919497e+06 -4.03636604e+04 ! x y z +1.02402689e+03 1.86350550e+03 3.48961376e+00 ! vx vy vz +229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill +7.62073270e+03 !particle radius in m +1.14766676e+07 -2.46673442e+06 -6.18541161e+03 ! x y z +3.81520272e+02 1.87089502e+03 -6.28495237e+00 ! vx vy vz +230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill +4.79251234e+03 !particle radius in m +7.65927810e+06 5.58691775e+06 6.38708550e+04 ! x y z +-1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz +232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill +4.85987440e+03 !particle radius in m +1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z +-2.71027694e+02 1.59383670e+03 4.71948132e+00 ! vx vy vz +233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill +7.30665510e+03 !particle radius in m +-2.08216759e+06 -9.23350326e+06 -8.76611629e+04 ! x y z +2.08240223e+03 -4.40249465e+02 -1.27767388e+01 ! vx vy vz +234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill +5.32422025e+03 !particle radius in m +8.73066827e+06 -2.21328634e+05 -3.34004359e+04 ! x y z +4.79166308e+01 2.23450529e+03 -9.11532147e+00 ! vx vy vz +235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill +1.18628272e+04 !particle radius in m +1.62631471e+07 4.67259161e+06 2.64032894e+04 ! x y z +-4.50841052e+02 1.52122597e+03 1.13312253e+01 ! vx vy vz +236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill +7.00538757e+03 !particle radius in m +5.98003979e+05 -1.57345854e+07 -2.89481346e+04 ! x y z +1.64606847e+03 7.79210619e+01 -6.19029962e+00 ! vx vy vz +237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill +7.47416865e+03 !particle radius in m +-8.48106759e+06 4.91431093e+06 -8.66403288e+04 ! x y z +-1.03310578e+03 -1.80626108e+03 1.07091841e+01 ! vx vy vz +238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill +1.21404101e+04 !particle radius in m +-1.84578837e+07 9.47798697e+05 -1.11240327e+05 ! x y z +-8.38856040e+01 -1.52441650e+03 -4.87143776e+00 ! vx vy vz +239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill +1.17785087e+04 !particle radius in m +-5.76687798e+06 9.89435129e+06 4.39168015e+04 ! x y z +-1.66547278e+03 -9.63693666e+02 4.18572107e+00 ! vx vy vz +240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill +5.60953779e+03 !particle radius in m +-1.82862969e+06 8.61926907e+06 -1.75357465e+04 ! x y z +-2.15498233e+03 -4.93004829e+02 7.64196538e+00 ! vx vy vz +241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill +7.71421647e+03 !particle radius in m +3.76525777e+06 -1.03931378e+07 -7.52318459e+04 ! x y z +1.83850823e+03 6.78500036e+02 -6.89947122e+00 ! vx vy vz +242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill +8.65284640e+03 !particle radius in m +-6.33335198e+06 -5.98167685e+06 -3.08011537e+04 ! x y z +1.53763163e+03 -1.62109001e+03 -2.47037358e+00 ! vx vy vz +243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill +6.23522281e+03 !particle radius in m +9.90333087e+06 -4.01192277e+06 6.04079611e+04 ! x y z +7.43355257e+02 1.83366572e+03 -1.58715640e+00 ! vx vy vz +244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill +1.30331280e+04 !particle radius in m +-5.98502411e+06 1.07946936e+07 4.97027123e+03 ! x y z +-1.61657634e+03 -8.93801164e+02 -1.07876442e+01 ! vx vy vz +245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill +9.63310475e+03 !particle radius in m +-6.59615203e+06 -1.12304386e+07 9.72528165e+04 ! x y z +1.57957874e+03 -9.09183472e+02 3.54133115e-01 ! vx vy vz +246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill +6.79194010e+03 !particle radius in m +8.96651461e+06 1.05824022e+06 -2.00386304e+04 ! x y z +-2.80453416e+02 2.17973889e+03 1.20973693e+00 ! vx vy vz +247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill +9.18776116e+03 !particle radius in m +1.47368687e+06 1.52540290e+07 1.91344142e+05 ! x y z +-1.67085873e+03 1.59690705e+02 -2.30924434e+00 ! vx vy vz +248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill +9.24689597e+03 !particle radius in m +-1.31122397e+06 1.35322324e+07 5.51107975e+04 ! x y z +-1.76733822e+03 -1.66895030e+02 1.40149353e+01 ! vx vy vz +249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill +8.25926956e+03 !particle radius in m +6.67718106e+06 -6.31157792e+06 2.26609344e+04 ! x y z +1.50456951e+03 1.52943679e+03 8.18042830e+00 ! vx vy vz +250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill +1.06839624e+04 !particle radius in m +-9.16360265e+06 6.32922451e+06 2.58199480e+03 ! x y z +-1.14874981e+03 -1.60466496e+03 1.97944632e+01 ! vx vy vz +251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill +6.68610634e+03 !particle radius in m +-1.15940056e+07 4.46540148e+06 -5.91615241e+04 ! x y z +-6.61054922e+02 -1.74552414e+03 3.85473780e+00 ! vx vy vz +252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill +5.97652691e+03 !particle radius in m +7.27954173e+05 8.98873006e+06 3.22170920e+04 ! x y z +-2.16869199e+03 1.52559195e+02 -7.62441611e+00 ! vx vy vz +253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill +9.95113166e+03 !particle radius in m +-7.91834556e+06 1.12541780e+07 -7.01445845e+04 ! x y z +-1.45888232e+03 -1.02209811e+03 -1.64204126e+01 ! vx vy vz +254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill +5.79684738e+03 !particle radius in m +-1.33826547e+07 -7.97098248e+06 5.10482753e+03 ! x y z +8.38898161e+02 -1.43447217e+03 1.26393376e+00 ! vx vy vz +255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill +6.55636334e+03 !particle radius in m +1.00439607e+07 -4.85348750e+06 1.01261466e+05 ! x y z +8.20741840e+02 1.77276708e+03 -5.85913488e-01 ! vx vy vz +256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill +6.70339268e+03 !particle radius in m +2.04930949e+06 -9.32239452e+06 -2.24373576e+04 ! x y z +2.07456592e+03 4.98065963e+02 1.20751769e-02 ! vx vy vz +257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill +6.51070352e+03 !particle radius in m +-2.17215478e+07 -8.78835015e+06 -4.01495560e+04 ! x y z +5.14278406e+02 -1.24501793e+03 7.48973214e+00 ! vx vy vz +258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill +1.11459543e+04 !particle radius in m +1.20260148e+07 1.50890452e+06 -8.61170776e+04 ! x y z +-2.28727670e+02 1.85884268e+03 1.03561533e+01 ! vx vy vz +259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill +8.95337335e+03 !particle radius in m +6.77964628e+06 6.80088173e+06 3.59640048e+04 ! x y z +-1.51037716e+03 1.46534327e+03 4.36610744e+00 ! vx vy vz +260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill +7.26477146e+03 !particle radius in m +1.93741347e+07 4.35856951e+06 -7.05507935e+02 ! x y z +-2.95958141e+02 1.44257652e+03 3.98161720e+00 ! vx vy vz +261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill +1.17954044e+04 !particle radius in m +-1.36515521e+07 5.47808328e+06 2.30862197e+04 ! x y z +-6.21116352e+02 -1.59076755e+03 -4.14797264e+00 ! vx vy vz +262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill +1.01304435e+04 !particle radius in m +1.29557484e+07 -3.33144253e+06 5.90527945e+04 ! x y z +4.53468556e+02 1.72544679e+03 8.55651480e+00 ! vx vy vz +263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill +4.29537029e+03 !particle radius in m +1.22881970e+07 4.73181161e+06 8.31929270e+04 ! x y z +-6.58468588e+02 1.69384960e+03 -1.28940832e+01 ! vx vy vz +264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill +5.31616352e+03 !particle radius in m +1.42705581e+07 -5.59919890e+06 -1.20173006e+04 ! x y z +6.15518752e+02 1.56633732e+03 -3.00095341e+00 ! vx vy vz +265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill +1.30497175e+04 !particle radius in m +1.22157187e+07 1.21158385e+07 -1.89187958e+04 ! x y z +-1.13185306e+03 1.10567360e+03 -1.20248978e+01 ! vx vy vz +266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill +5.38815059e+03 !particle radius in m +3.95878049e+06 -8.23148660e+06 5.75314545e+04 ! x y z +1.96980210e+03 9.25868395e+02 1.73432582e+01 ! vx vy vz +267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill +1.17101897e+04 !particle radius in m +-3.77919432e+06 1.07609723e+07 -5.23499337e+04 ! x y z +-1.82204789e+03 -6.43288095e+02 1.18800083e+01 ! vx vy vz +268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill +6.69695574e+03 !particle radius in m +-1.05319563e+07 9.02628865e+06 7.76373874e+04 ! x y z +-1.14418489e+03 -1.35282145e+03 -8.67554957e-01 ! vx vy vz +269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill +4.25091189e+03 !particle radius in m +1.11472461e+07 3.88496928e+06 2.24744875e+04 ! x y z +-6.24929449e+02 1.77558367e+03 1.82397206e+01 ! vx vy vz +270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill +9.99413848e+03 !particle radius in m +7.13225296e+06 7.84741088e+06 7.08528372e+04 ! x y z +-1.47773160e+03 1.36033625e+03 -6.05338364e+00 ! vx vy vz +271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill +4.41976293e+03 !particle radius in m +1.57340361e+07 -9.25306632e+06 1.05005348e+05 ! x y z +7.63951994e+02 1.32212390e+03 -5.72592279e+00 ! vx vy vz +272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill +7.48688169e+03 !particle radius in m +1.78996895e+07 -3.23122702e+06 -8.50474408e+04 ! x y z +2.79448983e+02 1.51858349e+03 1.07776473e+01 ! vx vy vz +273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill +9.82017615e+03 !particle radius in m +-1.25291109e+06 8.92261901e+06 6.19393261e+04 ! x y z +-2.15215968e+03 -3.42916287e+02 5.69467556e+00 ! vx vy vz +274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill +6.92499799e+03 !particle radius in m +3.17829891e+06 -1.10142305e+07 -2.69804501e+04 ! x y z +1.85575994e+03 5.54347759e+02 -8.57029148e-01 ! vx vy vz +275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill +7.71454664e+03 !particle radius in m +-1.52137099e+06 1.03039110e+07 -2.28129443e+04 ! x y z +-2.01239392e+03 -3.00583105e+02 1.82997128e+01 ! vx vy vz +276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill +1.24308761e+04 !particle radius in m +7.58255782e+06 -6.89244058e+06 -4.22200409e+04 ! x y z +1.36574672e+03 1.52351062e+03 -3.42663337e+00 ! vx vy vz +277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill +1.25439096e+04 !particle radius in m +-8.20564828e+06 8.24671241e+06 -1.78987991e+05 ! x y z +-1.37211179e+03 -1.35613094e+03 5.81977986e-01 ! vx vy vz +278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill +9.84359343e+03 !particle radius in m +8.14883976e+06 -1.20311130e+07 2.81646262e+04 ! x y z +1.42418230e+03 9.71290645e+02 -1.65557105e+01 ! vx vy vz +279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill +1.23336592e+04 !particle radius in m +2.74582126e+06 -8.71763630e+06 6.44092995e+04 ! x y z +2.06453659e+03 6.75538119e+02 -1.84554482e+01 ! vx vy vz +280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill +1.06035211e+04 !particle radius in m +7.67980194e+06 -6.41178879e+06 9.39794316e+04 ! x y z +1.32508200e+03 1.58960541e+03 -1.68646923e+00 ! vx vy vz +281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill +1.01232471e+04 !particle radius in m +1.08862914e+07 -1.69171267e+06 1.06890002e+04 ! x y z +2.66940523e+02 1.93825037e+03 -3.17829482e+00 ! vx vy vz +282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill +9.07368751e+03 !particle radius in m +-2.12855771e+07 -6.22047593e+06 4.09709267e+04 ! x y z +3.86441604e+02 -1.32836590e+03 2.12243761e-02 ! vx vy vz +283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill +1.06903372e+04 !particle radius in m +1.19425206e+06 -8.91233794e+06 3.55973631e+04 ! x y z +2.17359618e+03 2.49148190e+02 5.23202275e-01 ! vx vy vz +284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill +3.74060212e+03 !particle radius in m +9.56786350e+06 4.49949446e+05 3.82232625e+04 ! x y z +-9.15404876e+01 2.12884256e+03 -8.93875847e+00 ! vx vy vz +285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill +7.94450563e+03 !particle radius in m +2.52449139e+06 -8.63435263e+06 3.47588448e+03 ! x y z +2.08621300e+03 5.91911411e+02 -3.57309299e+00 ! vx vy vz +286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill +4.91211126e+03 !particle radius in m +1.30335501e+07 -9.18110749e+05 -5.93800312e+04 ! x y z +1.10189733e+02 1.82033941e+03 -1.02966654e+01 ! vx vy vz +287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill +1.07411202e+04 !particle radius in m +-8.43406318e+06 -5.93404434e+06 2.36715133e+04 ! x y z +1.16500133e+03 -1.67478526e+03 9.48734166e+00 ! vx vy vz +288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill +5.59848141e+03 !particle radius in m +1.45797657e+06 -1.20421345e+07 -3.75037404e+04 ! x y z +1.87575411e+03 2.26832585e+02 1.21113356e+01 ! vx vy vz +289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill +9.61704013e+03 !particle radius in m +7.82736208e+06 -4.81216442e+06 6.09982286e+04 ! x y z +1.09482209e+03 1.86309298e+03 2.82110626e+01 ! vx vy vz +290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill +1.26459448e+04 !particle radius in m +-1.04983951e+07 -9.78210039e+06 4.04999757e+04 ! x y z +1.16976801e+03 -1.28733444e+03 3.36107675e+00 ! vx vy vz +291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill +8.00145320e+03 !particle radius in m +-8.88059070e+06 -1.48350388e+06 -3.65798996e+04 ! x y z +3.63914783e+02 -2.15370844e+03 -4.03870858e+00 ! vx vy vz +292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill +4.34941489e+03 !particle radius in m +1.71799482e+06 -1.11150786e+07 -1.11600323e+04 ! x y z +1.89156931e+03 3.37161187e+02 -5.00763335e+00 ! vx vy vz +293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill +4.29486797e+03 !particle radius in m +1.22676746e+07 -7.93082840e+06 -7.55901444e+04 ! x y z +9.10780310e+02 1.43519257e+03 -9.59182854e+00 ! vx vy vz +294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill +1.10726580e+04 !particle radius in m +6.08378238e+06 -7.87148142e+06 -2.39812665e+04 ! x y z +1.65441655e+03 1.27707568e+03 -1.18584893e+01 ! vx vy vz +295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill +1.15859081e+04 !particle radius in m +5.05198031e+06 1.16964703e+07 1.98330665e+04 ! x y z +-1.69333923e+03 7.02450436e+02 2.04857518e+01 ! vx vy vz +296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill +8.69558011e+03 !particle radius in m +-2.23024582e+06 1.75885326e+07 3.84168836e+04 ! x y z +-1.54534740e+03 -1.88777263e+02 1.39357869e+01 ! vx vy vz +297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill +6.71590808e+03 !particle radius in m +1.11164532e+07 8.01001814e+06 1.06625699e+05 ! x y z +-1.04365443e+03 1.44565605e+03 2.11662748e+01 ! vx vy vz +298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill +1.11542662e+04 !particle radius in m +-1.17258082e+06 -1.22657889e+07 4.54924052e+04 ! x y z +1.84907037e+03 -1.95731556e+02 1.04424396e+01 ! vx vy vz +299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill +5.76789746e+03 !particle radius in m +8.87472318e+06 -1.41477847e+06 9.96850714e+03 ! x y z +3.48170496e+02 2.16686116e+03 6.86996341e+00 ! vx vy vz +300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill +9.35014220e+03 !particle radius in m +-1.06755868e+07 -2.26215221e+06 -1.03098190e+04 ! x y z +4.22938170e+02 -1.92356457e+03 -6.44322506e+00 ! vx vy vz +301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill +6.35246381e+03 !particle radius in m +-1.15286614e+07 6.85922305e+05 -2.50421030e+03 ! x y z +-1.47622259e+02 -1.91263388e+03 -2.66811177e+00 ! vx vy vz +302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill +7.25614557e+03 !particle radius in m +-1.14907610e+07 3.12025122e+06 -5.05043492e+04 ! x y z +-4.96419350e+02 -1.84148364e+03 1.23574710e+01 ! vx vy vz +303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill +1.02673671e+04 !particle radius in m +3.52540674e+06 1.12335432e+07 5.00575123e+04 ! x y z +-1.81448873e+03 5.96787301e+02 1.05390435e+00 ! vx vy vz +304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill +7.63921866e+03 !particle radius in m +-1.63903863e+07 9.01968445e+06 -1.03768934e+05 ! x y z +-7.30657688e+02 -1.32744569e+03 -3.28089387e+00 ! vx vy vz +305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill +1.06009616e+04 !particle radius in m +1.01396523e+07 -4.81960415e+06 4.30193977e+03 ! x y z +8.23199841e+02 1.75908251e+03 4.33811421e+00 ! vx vy vz +306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill +1.05483834e+04 !particle radius in m +1.06454895e+07 5.05879867e+06 5.08283132e+04 ! x y z +-8.22304047e+02 1.73567086e+03 1.93532669e+00 ! vx vy vz +307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill +7.81533428e+03 !particle radius in m +-1.60755914e+07 -7.66558706e+05 1.42941147e+04 ! x y z +6.22982075e+01 -1.61863536e+03 -1.60725073e+00 ! vx vy vz +308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill +1.15883574e+04 !particle radius in m +-1.46060477e+06 -8.99385191e+06 -3.08209444e+04 ! x y z +2.13011898e+03 -3.25298595e+02 2.80216541e+00 ! vx vy vz +309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill +1.12624422e+04 !particle radius in m +-1.41660966e+06 8.99035717e+06 1.40528615e+04 ! x y z +-2.12617696e+03 -3.75024767e+02 -9.07028597e+00 ! vx vy vz +310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill +1.21525746e+04 !particle radius in m +8.84712919e+06 3.96421798e+06 1.13803740e+04 ! x y z +-8.83218100e+02 1.91945493e+03 3.31259998e+00 ! vx vy vz +311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill +5.67364039e+03 !particle radius in m +6.88657663e+06 -1.05966202e+07 1.71451160e+03 ! x y z +1.56481452e+03 9.63079720e+02 1.94534764e+01 ! vx vy vz +312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill +7.43259427e+03 !particle radius in m +-8.85269678e+06 5.44905716e+06 -5.60825695e+04 ! x y z +-1.07596431e+03 -1.72186966e+03 1.77805310e+01 ! vx vy vz +313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill +1.19513059e+04 !particle radius in m +3.11450797e+06 -1.37495078e+07 -3.57099214e+04 ! x y z +1.70202965e+03 3.85543507e+02 -4.49001111e+00 ! vx vy vz +314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill +1.10220195e+04 !particle radius in m +-9.00924085e+06 4.66367866e+06 1.26574464e+04 ! x y z +-9.50214730e+02 -1.81339232e+03 -1.20100516e-01 ! vx vy vz +315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill +5.04841672e+03 !particle radius in m +-1.08865724e+07 1.89436312e+06 -5.35372336e+04 ! x y z +-3.54360414e+02 -1.92451382e+03 8.24540973e-02 ! vx vy vz +316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill +4.15403541e+03 !particle radius in m +1.55751438e+07 6.03420204e+06 -2.57378814e+04 ! x y z +-5.81737732e+02 1.49479237e+03 -7.62983212e+00 ! vx vy vz +317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill +1.15117238e+04 !particle radius in m +1.06056911e+07 8.74976261e+04 -1.72290821e+03 ! x y z +-1.77150357e+01 2.02140459e+03 -2.31012980e+01 ! vx vy vz +318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill +1.11945004e+04 !particle radius in m +-6.72042968e+06 -1.07531738e+07 5.09281015e+04 ! x y z +1.56397473e+03 -9.57368328e+02 -1.25364327e+01 ! vx vy vz +319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill +7.53816353e+03 !particle radius in m +4.10458407e+06 -1.13623664e+07 -9.48469623e+04 ! x y z +1.78215300e+03 6.13680096e+02 -7.93502985e+00 ! vx vy vz +320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill +7.54041364e+03 !particle radius in m +8.42747503e+06 -6.97349936e+06 -2.15671129e+04 ! x y z +1.26552336e+03 1.51523836e+03 2.12892191e+00 ! vx vy vz +321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill +6.76488745e+03 !particle radius in m +-1.31213742e+07 -4.58561120e+06 1.53600301e+04 ! x y z +5.82359194e+02 -1.66882713e+03 1.14079207e+01 ! vx vy vz +322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill +6.58324849e+03 !particle radius in m +-7.56393159e+06 7.09659926e+06 -4.65315976e+04 ! x y z +-1.36862256e+03 -1.51081343e+03 1.13488899e+01 ! vx vy vz +323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill +8.49453445e+03 !particle radius in m +4.46247777e+06 -8.10645059e+06 1.43618351e+04 ! x y z +1.90934802e+03 1.00293881e+03 8.21819949e+00 ! vx vy vz +324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill +6.81841660e+03 !particle radius in m +-9.96034566e+06 4.35537723e+06 -1.20286093e+04 ! x y z +-7.67471215e+02 -1.83079175e+03 -1.31980560e+01 ! vx vy vz +325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill +1.08946542e+04 !particle radius in m +-1.14760721e+07 3.70943531e+06 -9.49844421e+04 ! x y z +-5.95286906e+02 -1.76496467e+03 3.00728950e+00 ! vx vy vz +326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill +1.25068862e+04 !particle radius in m +-1.57425262e+07 -1.71485068e+06 5.83418789e+04 ! x y z +1.83396886e+02 -1.64215306e+03 1.76834645e+01 ! vx vy vz +327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill +1.14129344e+04 !particle radius in m +-5.50533612e+06 -7.29539312e+06 -4.19582765e+04 ! x y z +1.70576164e+03 -1.34793657e+03 3.36918899e+00 ! vx vy vz +328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill +7.58200769e+03 !particle radius in m +-1.84334893e+06 9.13437442e+06 -6.98626074e+03 ! x y z +-2.09435634e+03 -4.13549777e+02 1.31091798e+01 ! vx vy vz +329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill +1.16362363e+04 !particle radius in m +-8.24556722e+05 1.30406598e+07 9.22800110e+04 ! x y z +-1.80291385e+03 -1.14208577e+02 5.06777815e+00 ! vx vy vz +330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill +8.28218455e+03 !particle radius in m +-9.92787386e+06 7.89436638e+06 5.47155159e+04 ! x y z +-1.15186100e+03 -1.44221325e+03 -1.43299470e+01 ! vx vy vz +331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill +5.69676070e+03 !particle radius in m +-1.72820033e+07 -1.54859445e+07 -1.76600870e+05 ! x y z +9.00952544e+02 -1.00938815e+03 5.52976287e+00 ! vx vy vz +332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill +1.17273100e+04 !particle radius in m +7.54874149e+06 -7.34865635e+06 1.58691383e+04 ! x y z +1.40447688e+03 1.44745232e+03 -1.19902506e+00 ! vx vy vz +333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill +7.57115197e+03 !particle radius in m +6.70925482e+06 1.02233476e+07 -8.94168570e+04 ! x y z +-1.57673538e+03 1.00346927e+03 -1.54449677e+01 ! vx vy vz +334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill +1.07187619e+04 !particle radius in m +-9.38875782e+06 -1.03278172e+06 4.07424683e+04 ! x y z +2.57699240e+02 -2.12423408e+03 -1.75552004e+00 ! vx vy vz +335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill +7.85184231e+03 !particle radius in m +9.27514180e+06 3.60605892e+06 -8.97298126e+03 ! x y z +-7.45316219e+02 1.94032830e+03 2.50725751e+01 ! vx vy vz +336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill +5.81259090e+03 !particle radius in m +2.84715606e+05 -8.96387040e+06 -7.61793089e+04 ! x y z +2.17642987e+03 7.44775849e+01 5.43474351e+00 ! vx vy vz +337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill +1.05845019e+04 !particle radius in m +4.23618089e+06 8.82455069e+06 -3.58009197e+04 ! x y z +-1.88592236e+03 9.06205367e+02 -1.32060735e+01 ! vx vy vz +338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill +9.03321920e+03 !particle radius in m +8.99412766e+06 -6.25093595e+06 5.78854309e+04 ! x y z +1.13268666e+03 1.63171487e+03 -3.80887879e+00 ! vx vy vz +339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill +1.06850859e+04 !particle radius in m +8.95756676e+06 -5.04120234e+06 4.46604404e+04 ! x y z +9.97476295e+02 1.78291720e+03 1.83929026e+01 ! vx vy vz +340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill +1.09897543e+04 !particle radius in m +-6.88398435e+06 -9.59185877e+06 5.44110030e+04 ! x y z +1.53704986e+03 -1.12804795e+03 1.33934445e+01 ! vx vy vz +341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill +6.75416723e+03 !particle radius in m +4.06115845e+06 9.20664592e+06 1.44995295e+04 ! x y z +-1.87321421e+03 8.55264917e+02 4.54558328e+00 ! vx vy vz +342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill +4.24346826e+03 !particle radius in m +5.83709056e+06 1.18773019e+07 -1.78313453e+04 ! x y z +-1.60438748e+03 8.04911839e+02 7.87147192e-01 ! vx vy vz +343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill +1.27557328e+04 !particle radius in m +-9.82331264e+06 -1.72475014e+06 -4.50474397e+04 ! x y z +3.80035552e+02 -2.02006276e+03 1.41607704e+01 ! vx vy vz +344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill +6.59694858e+03 !particle radius in m +-9.75150606e+06 1.14173962e+06 1.90738112e+04 ! x y z +-2.44986733e+02 -2.07228361e+03 4.28819137e-01 ! vx vy vz +345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill +1.25314767e+04 !particle radius in m +8.89271698e+06 -2.80889036e+06 -9.05088712e+04 ! x y z +6.43083392e+02 2.05152117e+03 5.84263642e+00 ! vx vy vz +346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill +5.48083372e+03 !particle radius in m +5.55138431e+05 8.96699891e+06 -2.02907914e+03 ! x y z +-2.16543193e+03 1.17824020e+02 1.89028293e+01 ! vx vy vz +347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill +1.01136344e+04 !particle radius in m +1.08689498e+07 6.77891019e+06 -1.57957399e+05 ! x y z +-9.58257682e+02 1.54874788e+03 -4.38996175e+00 ! vx vy vz +348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill +1.19617045e+04 !particle radius in m +-3.46641057e+06 1.06366697e+07 -4.89091419e+04 ! x y z +-1.87369781e+03 -5.85557096e+02 2.64347289e+00 ! vx vy vz +349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill +1.29314335e+04 !particle radius in m +7.28383532e+06 5.25991927e+06 -2.74032882e+04 ! x y z +-1.28268765e+03 1.77447224e+03 6.54106986e+00 ! vx vy vz +350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill +5.50052892e+03 !particle radius in m +-4.06177152e+06 -1.52948510e+07 1.69121808e+05 ! x y z +1.57226331e+03 -4.40552105e+02 -4.07139830e+00 ! vx vy vz +351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill +4.79923872e+03 !particle radius in m +-9.47543528e+06 -9.79695598e+05 -1.53056931e+04 ! x y z +2.01324530e+02 -2.10617058e+03 -1.48150840e+00 ! vx vy vz +352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill +8.40797283e+03 !particle radius in m +-1.79473215e+07 9.78097521e+05 5.91571461e+04 ! x y z +-1.10933113e+02 -1.54125298e+03 1.80243489e+01 ! vx vy vz +353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill +8.72299905e+03 !particle radius in m +-4.10705239e+06 2.02615072e+07 8.49438827e+04 ! x y z +-1.41774938e+03 -2.76831824e+02 -8.09634112e+00 ! vx vy vz +354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill +4.25918528e+03 !particle radius in m +9.20347813e+05 1.11635810e+07 4.32283845e+04 ! x y z +-1.94746867e+03 1.65365528e+02 5.45495799e+00 ! vx vy vz +355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill +1.11681152e+04 !particle radius in m +1.02476212e+07 1.57307556e+06 1.24769819e+04 ! x y z +-3.20593926e+02 2.01506970e+03 6.12888669e+00 ! vx vy vz +356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill +9.67932473e+03 !particle radius in m +-9.41529174e+06 -1.45196651e+06 -3.72716178e+03 ! x y z +3.30034223e+02 -2.10697891e+03 -9.10557070e+00 ! vx vy vz +357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill +7.16468942e+03 !particle radius in m +9.63405331e+06 9.48657460e+06 -1.16765431e+05 ! x y z +-1.25212013e+03 1.25762974e+03 -8.79471164e+00 ! vx vy vz +358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill +6.23859022e+03 !particle radius in m +1.28395429e+07 1.67358191e+05 3.52526511e+04 ! x y z +-4.79000239e+01 1.82109236e+03 -7.08024284e+00 ! vx vy vz +359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill +1.05194783e+04 !particle radius in m +1.69906243e+05 1.31567065e+07 -2.83802597e+04 ! x y z +-1.79852464e+03 -2.60855891e+01 1.09479469e+01 ! vx vy vz +360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill +1.30502985e+04 !particle radius in m +-8.71409354e+06 -5.07378044e+06 -2.89973508e+04 ! x y z +1.01955016e+03 -1.80816198e+03 1.72703995e+01 ! vx vy vz +361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill +1.10169094e+04 !particle radius in m +-1.32773676e+07 9.58326159e+06 1.68929446e+04 ! x y z +-9.40100121e+02 -1.31837280e+03 -1.11767857e+00 ! vx vy vz +362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill +9.57459397e+03 !particle radius in m +-8.40811158e+06 5.08930784e+06 5.82263133e+04 ! x y z +-1.10041478e+03 -1.79532449e+03 1.45771724e+00 ! vx vy vz +363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill +3.98308125e+03 !particle radius in m +1.04113372e+07 -6.20697428e+06 -4.84867208e+03 ! x y z +9.45840262e+02 1.61620978e+03 2.47832189e-01 ! vx vy vz +364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill +9.15799677e+03 !particle radius in m +-8.01518815e+06 -5.01852324e+06 5.17503273e+04 ! x y z +1.12426091e+03 -1.82440187e+03 2.07206048e-02 ! vx vy vz +365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill +7.21107035e+03 !particle radius in m +2.07944449e+06 8.94904149e+06 4.13797547e+04 ! x y z +-2.09851241e+03 4.60858305e+02 2.54918811e+01 ! vx vy vz +366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill +7.12123600e+03 !particle radius in m +9.71543544e+06 -3.75196256e+06 7.97368753e+04 ! x y z +7.42718545e+02 1.90076456e+03 1.83014984e+00 ! vx vy vz +367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill +8.68766895e+03 !particle radius in m +1.76238307e+07 7.35273671e+06 8.70758386e+04 ! x y z +-5.77591306e+02 1.37259271e+03 3.08504041e+00 ! vx vy vz +368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill +1.18860727e+04 !particle radius in m +1.05252406e+07 1.01023349e+07 1.18854193e+04 ! x y z +-1.19069656e+03 1.22779101e+03 7.21918511e+00 ! vx vy vz +369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill +1.05401406e+04 !particle radius in m +-2.44589262e+06 9.98155585e+06 -7.16098465e+04 ! x y z +-2.01199959e+03 -4.94158200e+02 1.76332595e+01 ! vx vy vz +370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill +1.14368147e+04 !particle radius in m +-1.71313810e+07 1.65684524e+05 7.09374774e+04 ! x y z +-1.73247831e+01 -1.58285349e+03 5.23281867e+00 ! vx vy vz +371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill +1.10288797e+04 !particle radius in m +5.96055313e+06 8.26822848e+06 -6.95116782e+04 ! x y z +-1.67280349e+03 1.20494456e+03 -5.49043884e+00 ! vx vy vz +372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill +4.32451704e+03 !particle radius in m +-4.58351543e+06 8.68653626e+06 -2.19181580e+04 ! x y z +-1.82145003e+03 -9.87506692e+02 -1.02913863e+01 ! vx vy vz +373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill +5.91337055e+03 !particle radius in m +1.46092641e+06 1.62085257e+07 9.35785200e+04 ! x y z +-1.61693894e+03 1.23715914e+02 1.88035614e+01 ! vx vy vz +374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill +6.91398214e+03 !particle radius in m +8.37967759e+06 2.86987872e+06 4.97540416e+02 ! x y z +-6.79497178e+02 2.09457077e+03 -7.48586459e+00 ! vx vy vz +375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill +7.72793689e+03 !particle radius in m +1.00544998e+07 -4.23649556e+06 1.69842871e+04 ! x y z +7.79559289e+02 1.80935311e+03 -9.45690780e-01 ! vx vy vz +376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill +5.52345548e+03 !particle radius in m +4.97012699e+06 7.77763306e+06 -1.08049137e+05 ! x y z +-1.81754065e+03 1.16817211e+03 7.93709072e+00 ! vx vy vz +377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill +1.16622408e+04 !particle radius in m +-8.56556120e+06 -3.00745478e+06 2.68959103e+04 ! x y z +7.41957227e+02 -2.02442760e+03 5.97293652e+00 ! vx vy vz +378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill +3.85423811e+03 !particle radius in m +-9.89914954e+06 1.64381375e+06 1.86441037e+04 ! x y z +-3.29902217e+02 -2.03621690e+03 -1.49125925e+01 ! vx vy vz +379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill +9.71972363e+03 !particle radius in m +-1.33296527e+07 -1.79984260e+07 -6.91244815e+03 ! x y z +1.12052368e+03 -8.18620884e+02 -1.17030012e+00 ! vx vy vz +380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill +8.10053368e+03 !particle radius in m +2.47744290e+05 1.08515872e+07 8.05332988e+04 ! x y z +-1.98242921e+03 4.60702324e+01 -8.10883988e+00 ! vx vy vz +381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill +9.01222011e+03 !particle radius in m +-1.04485761e+07 -3.19315171e+06 -6.87163868e+04 ! x y z +5.84305730e+02 -1.88680612e+03 1.24994521e+01 ! vx vy vz +382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill +7.38646156e+03 !particle radius in m +-4.30915405e+06 1.13988191e+07 -1.87898899e+03 ! x y z +-1.74153886e+03 -6.58302615e+02 5.64269794e+00 ! vx vy vz +383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill +4.00465955e+03 !particle radius in m +1.07629692e+07 1.37789153e+07 5.87066489e+04 ! x y z +-1.23476438e+03 9.58354279e+02 -1.51457433e+01 ! vx vy vz +384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill +8.23094873e+03 !particle radius in m +-2.26919155e+06 -2.23065641e+07 1.71429522e+05 ! x y z +1.36729685e+03 -1.26785143e+02 1.53512073e+00 ! vx vy vz +385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill +4.90670043e+03 !particle radius in m +-8.76057602e+06 -2.98488729e+06 3.16441575e+04 ! x y z +7.01564230e+02 -2.04784374e+03 6.54428080e+00 ! vx vy vz +386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill +1.18338596e+04 !particle radius in m +7.33432561e+06 1.58195231e+07 -1.25526941e+05 ! x y z +-1.41716350e+03 6.50084435e+02 1.99363998e+00 ! vx vy vz +387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill +5.31334038e+03 !particle radius in m +9.67909368e+06 -3.14679172e+06 1.01149877e+04 ! x y z +6.30534017e+02 1.94451859e+03 1.40841719e-01 ! vx vy vz +388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill +6.60251226e+03 !particle radius in m +3.58575623e+06 -8.28340933e+06 2.06786831e+04 ! x y z +2.01251169e+03 8.71048387e+02 4.13835680e+00 ! vx vy vz +389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill +8.17577418e+03 !particle radius in m +-1.59444867e+07 -9.43202143e+06 -1.03432964e+05 ! x y z +7.76368044e+02 -1.31648260e+03 -1.97011404e+00 ! vx vy vz +390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill +3.92504366e+03 !particle radius in m +8.15294773e+06 -4.83168922e+06 -2.23196035e+04 ! x y z +1.12438877e+03 1.80730928e+03 -9.96110137e+00 ! vx vy vz +391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill +5.55020210e+03 !particle radius in m +1.15608807e+07 -1.72289132e+06 8.78681619e+04 ! x y z +2.64558251e+02 1.88351104e+03 -1.22676546e+00 ! vx vy vz +392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill +7.45917792e+03 !particle radius in m +5.94153104e+05 1.04675287e+07 -7.76838952e+04 ! x y z +-2.01022149e+03 1.00791259e+02 2.73869669e+00 ! vx vy vz +393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill +6.80580498e+03 !particle radius in m +9.10704389e+06 5.66556444e+06 -1.21395685e+05 ! x y z +-1.06310456e+03 1.70305461e+03 1.52195271e+01 ! vx vy vz +394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill +7.63395485e+03 !particle radius in m +-6.14994249e+06 -1.27900562e+07 -1.88907757e+04 ! x y z +1.55814359e+03 -7.78224426e+02 2.73440877e-01 ! vx vy vz +395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill +7.02952878e+03 !particle radius in m +-8.80385560e+06 3.77151207e+06 -1.21818940e+05 ! x y z +-8.47944944e+02 -1.95313347e+03 -1.70763192e+01 ! vx vy vz +396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill +1.20172005e+04 !particle radius in m +1.08664166e+07 5.36923937e+06 -8.13196573e+04 ! x y z +-8.16624638e+02 1.69027839e+03 8.34673628e+00 ! vx vy vz +397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill +6.38540043e+03 !particle radius in m +-5.47268707e+06 7.90131264e+06 3.38529547e+04 ! x y z +-1.73122732e+03 -1.20437649e+03 1.62011748e+00 ! vx vy vz +398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill +1.16499575e+04 !particle radius in m +1.10121047e+07 -6.14561995e+06 5.51425169e+04 ! x y z +8.91208138e+02 1.62668641e+03 -4.00812310e+00 ! vx vy vz +399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill +5.79050854e+03 !particle radius in m +-3.82515764e+06 1.42902315e+07 -2.47878060e+04 ! x y z +-1.63598310e+03 -4.85341065e+02 -2.82331478e+00 ! vx vy vz +400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill +1.20288397e+04 !particle radius in m +-1.84053839e+06 9.22666914e+06 -1.87382012e+04 ! x y z +-2.10070573e+03 -4.25824187e+02 -2.45200413e+00 ! vx vy vz +401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill +6.14242713e+03 !particle radius in m +-7.35737221e+06 -9.68920345e+06 5.93390680e+04 ! x y z +1.50053722e+03 -1.12338599e+03 -1.30933156e+01 ! vx vy vz +402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill +9.83970306e+03 !particle radius in m +-8.70682368e+06 5.56356570e+06 -6.56478138e+04 ! x y z +-1.11346390e+03 -1.70326053e+03 1.28466204e+00 ! vx vy vz +403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill +5.96724810e+03 !particle radius in m +7.02500514e+06 -1.38238984e+07 6.74566304e+04 ! x y z +1.48675948e+03 7.65020748e+02 8.19788003e+00 ! vx vy vz +404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill +1.17076027e+04 !particle radius in m +-9.79856030e+06 2.12372760e+06 1.89480336e+04 ! x y z +-4.48830087e+02 -2.02736841e+03 -1.23694959e+01 ! vx vy vz +405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill +8.52806763e+03 !particle radius in m +-1.01558817e+07 -2.10873547e+07 -2.03636345e+05 ! x y z +1.20616652e+03 -5.87121724e+02 -4.30533916e+00 ! vx vy vz +406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill +8.67447176e+03 !particle radius in m +1.10980559e+07 1.19228306e+07 -2.89204661e+04 ! x y z +-1.18553044e+03 1.09632262e+03 8.12769922e+00 ! vx vy vz +407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill +6.48784045e+03 !particle radius in m +1.00683282e+07 -1.06678967e+05 -7.08192900e+04 ! x y z +7.59653606e-01 2.03836538e+03 -2.00978691e+01 ! vx vy vz +408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill +9.86938263e+03 !particle radius in m +8.35393830e+06 3.60269502e+06 -6.29338444e+04 ! x y z +-8.43508227e+02 1.99248181e+03 2.35695291e+01 ! vx vy vz +409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill +9.08852133e+03 !particle radius in m +7.15716844e+06 2.23969109e+07 -2.43128655e+05 ! x y z +-1.28744111e+03 4.04784490e+02 -9.98522887e+00 ! vx vy vz +410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill +7.97538482e+03 !particle radius in m +9.79101038e+06 -7.57582171e+06 -6.16544234e+03 ! x y z +1.14324704e+03 1.46779509e+03 -4.09524183e-01 ! vx vy vz +411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill +1.21026921e+04 !particle radius in m +1.92900217e+07 -9.92716086e+06 -8.71066703e+04 ! x y z +6.46615886e+02 1.23877023e+03 -8.06944804e+00 ! vx vy vz +412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill +1.12884701e+04 !particle radius in m +7.63578761e+05 -1.05163176e+07 -1.40125740e+03 ! x y z +1.99506811e+03 1.28492643e+02 -1.21964426e+00 ! vx vy vz +413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill +1.09158716e+04 !particle radius in m +6.16240208e+05 1.16898273e+07 -2.31871163e+03 ! x y z +-1.92072024e+03 1.14544858e+02 -1.24842975e+01 ! vx vy vz +414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill +4.93459624e+03 !particle radius in m +1.03595473e+07 -4.35809471e+06 -5.55598025e+04 ! x y z +7.59957188e+02 1.81039627e+03 -9.27171494e+00 ! vx vy vz +415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill +9.30593115e+03 !particle radius in m +-8.58951099e+05 1.20741593e+07 8.58096722e+03 ! x y z +-1.85656009e+03 -1.31659982e+02 -7.07088670e-01 ! vx vy vz +416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill +7.71593034e+03 !particle radius in m +1.34936412e+07 9.22411406e+05 -1.28097766e+05 ! x y z +-1.21347788e+02 1.77352752e+03 6.09816980e+00 ! vx vy vz +417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill +4.06146670e+03 !particle radius in m +8.93667242e+06 -4.37387871e+06 4.75249766e+04 ! x y z +9.07116732e+02 1.86034352e+03 -2.16160032e+01 ! vx vy vz +418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill +5.10279049e+03 !particle radius in m +2.97443729e+06 1.12987732e+07 -7.15478904e+04 ! x y z +-1.84937662e+03 4.88975049e+02 -1.62129744e+01 ! vx vy vz +419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill +9.84038492e+03 !particle radius in m +-1.20782110e+07 5.42799080e+06 -2.14298463e+04 ! x y z +-7.60124760e+02 -1.64210069e+03 1.17910321e+00 ! vx vy vz +420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill +8.19645631e+03 !particle radius in m +-1.66687778e+07 3.40131310e+06 -8.13780785e+04 ! x y z +-3.27574668e+02 -1.54958699e+03 7.60005752e+00 ! vx vy vz +421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill +1.10674500e+04 !particle radius in m +8.04465463e+06 7.94262975e+06 3.50880055e+04 ! x y z +-1.38047284e+03 1.36038061e+03 9.60840796e+00 ! vx vy vz +422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill +9.32873342e+03 !particle radius in m +8.72948534e+06 2.25552201e+06 -6.67651980e+03 ! x y z +-5.17110071e+02 2.09745799e+03 -1.26305103e+01 ! vx vy vz +423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill +3.97264243e+03 !particle radius in m +1.59911238e+07 -5.78123234e+06 -4.96452199e+04 ! x y z +5.52053054e+02 1.48435519e+03 -7.76218367e-02 ! vx vy vz +424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill +9.94269530e+03 !particle radius in m +-7.16058601e+06 5.68697632e+06 2.50735615e+04 ! x y z +-1.32041167e+03 -1.70209713e+03 -5.51776816e+00 ! vx vy vz +425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill +1.05009525e+04 !particle radius in m +-1.96591682e+06 -9.56765462e+06 -5.49582524e+04 ! x y z +2.05754068e+03 -4.30221705e+02 -6.52205972e+00 ! vx vy vz +426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill +8.22033835e+03 !particle radius in m +-1.32036875e+07 -6.42805082e+06 -2.13137156e+04 ! x y z +7.40576713e+02 -1.53667373e+03 -1.66122663e+00 ! vx vy vz +427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill +1.28408960e+04 !particle radius in m +7.26511252e+06 1.02544271e+07 -1.28126970e+04 ! x y z +-1.50567288e+03 1.06151555e+03 -1.91621752e+00 ! vx vy vz +428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill +5.50382909e+03 !particle radius in m +-9.70398421e+06 5.43301598e+06 -7.10765156e+04 ! x y z +-9.66770489e+02 -1.69237365e+03 -3.28188506e+00 ! vx vy vz +429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill +1.28572603e+04 !particle radius in m +2.96216400e+05 -9.44659905e+06 6.39430618e+04 ! x y z +2.13334160e+03 5.10827881e+01 -3.06567932e+00 ! vx vy vz +430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill +3.72381283e+03 !particle radius in m +-7.59639515e+06 5.48032752e+06 -2.40679326e+03 ! x y z +-1.21575451e+03 -1.75481888e+03 -1.69366205e+01 ! vx vy vz +431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill +6.21604216e+03 !particle radius in m +4.26014597e+06 8.47244148e+06 -4.52841666e+04 ! x y z +-1.89773381e+03 9.86947142e+02 2.27005651e+00 ! vx vy vz +432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill +7.04464148e+03 !particle radius in m +5.86869928e+06 6.95435059e+06 -3.04780435e+04 ! x y z +-1.65434811e+03 1.39969038e+03 3.34387968e+00 ! vx vy vz +433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill +1.15473588e+04 !particle radius in m +-8.24315322e+06 -5.69586696e+06 2.20302861e+04 ! x y z +1.15852208e+03 -1.69773981e+03 2.26551767e+01 ! vx vy vz +434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill +4.57262149e+03 !particle radius in m +-2.90925512e+06 8.79933915e+06 6.42165783e+04 ! x y z +-2.03971713e+03 -6.70860975e+02 7.91657343e+00 ! vx vy vz +435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill +1.29780877e+04 !particle radius in m +9.24506088e+06 5.42020869e+06 3.55011834e+04 ! x y z +-9.90032731e+02 1.74244918e+03 -6.84359361e+00 ! vx vy vz +436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill +3.72768740e+03 !particle radius in m +1.49390033e+07 5.03002569e+06 -6.08660675e+04 ! x y z +-5.02338251e+02 1.56332178e+03 -1.67781569e+01 ! vx vy vz +437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill +1.05170553e+04 !particle radius in m +1.23161243e+07 1.68843020e+06 2.12877558e+04 ! x y z +-2.39425053e+02 1.84057327e+03 1.32413609e+01 ! vx vy vz +438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill +1.27277329e+04 !particle radius in m +8.91889708e+06 -5.54747107e+05 4.66922419e+04 ! x y z +1.62589921e+02 2.18077019e+03 -1.86548050e+01 ! vx vy vz +439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill +8.96414991e+03 !particle radius in m +-5.82188250e+06 -6.93015474e+06 8.83731418e+03 ! x y z +1.65500621e+03 -1.40856285e+03 -4.08918572e+01 ! vx vy vz +440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill +1.03907754e+04 !particle radius in m +-7.35080590e+06 -7.29055125e+06 -1.20861111e+03 ! x y z +1.39392385e+03 -1.47392682e+03 -1.29937331e+01 ! vx vy vz +441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill +4.93452768e+03 !particle radius in m +-1.22300071e+07 4.00505750e+06 -4.82429747e+04 ! x y z +-5.99234873e+02 -1.71878148e+03 -9.59996458e+00 ! vx vy vz +442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill +5.23080275e+03 !particle radius in m +1.90445756e+06 1.53190995e+07 1.28393938e+05 ! x y z +-1.65070889e+03 1.86078304e+02 1.21713635e+00 ! vx vy vz +443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill +3.95409460e+03 !particle radius in m +1.16512710e+06 9.58806430e+06 6.00184281e+03 ! x y z +-2.08431325e+03 2.50023373e+02 -4.86726355e+00 ! vx vy vz +444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill +5.07066194e+03 !particle radius in m +2.90940058e+06 8.85967621e+06 -3.67911262e+04 ! x y z +-2.05184488e+03 6.57972025e+02 3.77722174e+00 ! vx vy vz +445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill +1.02592460e+04 !particle radius in m +1.02030674e+07 -2.25656251e+06 -2.42931768e+04 ! x y z +4.02033391e+02 1.97779610e+03 -4.56432654e+00 ! vx vy vz +446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill +4.30171134e+03 !particle radius in m +-2.21966207e+06 -8.53462824e+06 5.98951302e+03 ! x y z +2.13957370e+03 -5.72879766e+02 -9.73511724e+00 ! vx vy vz +447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill +9.83577325e+03 !particle radius in m +-5.82677409e+06 -8.25640044e+06 -1.85310721e+04 ! x y z +1.68912824e+03 -1.20023426e+03 -1.46688747e+01 ! vx vy vz +448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill +9.39909127e+03 !particle radius in m +-4.15446158e+05 -1.04064911e+07 -6.01445752e+04 ! x y z +2.04307655e+03 -9.44888304e+01 -1.29270899e+01 ! vx vy vz +449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill +5.23703394e+03 !particle radius in m +1.44949245e+06 -1.38726585e+07 1.28983420e+04 ! x y z +1.74524417e+03 1.89418829e+02 -1.27510818e+00 ! vx vy vz +450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill +6.74226629e+03 !particle radius in m +-1.02673257e+07 5.51832525e+06 7.68510549e+04 ! x y z +-9.09826047e+02 -1.68325012e+03 -9.74521738e+00 ! vx vy vz +451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill +1.14295731e+04 !particle radius in m +9.99103043e+06 1.06885708e+07 7.94231343e+04 ! x y z +-1.28100100e+03 1.14298665e+03 7.74179187e+00 ! vx vy vz +452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill +1.13206181e+04 !particle radius in m +4.41133703e+06 8.86113052e+06 -4.90493478e+04 ! x y z +-1.86573176e+03 9.32322270e+02 -1.20417460e+01 ! vx vy vz +453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill +7.33201534e+03 !particle radius in m +-1.05312274e+07 1.06309083e+06 -3.40508748e+04 ! x y z +-2.12025256e+02 -1.99070933e+03 2.76988985e+00 ! vx vy vz +454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill +6.76474935e+03 !particle radius in m +-9.13190511e+06 -9.87045448e+05 4.65363249e+04 ! x y z +2.72813658e+02 -2.14939314e+03 -6.89232508e+00 ! vx vy vz +455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill +8.56661866e+03 !particle radius in m +-9.55165901e+06 3.32037562e+06 -5.74639097e+04 ! x y z +-7.05014643e+02 -1.94468153e+03 -9.68692941e+00 ! vx vy vz +456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill +8.48722461e+03 !particle radius in m +-2.79080237e+06 -1.49534280e+07 6.61250908e+04 ! x y z +1.66874204e+03 -2.93565278e+02 -6.04868304e+00 ! vx vy vz +457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill +6.82030227e+03 !particle radius in m +1.76076614e+06 -8.89107995e+06 4.77043786e+04 ! x y z +2.14748256e+03 4.04932388e+02 -1.26152318e+01 ! vx vy vz +458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill +1.02690639e+04 !particle radius in m +8.52637393e+06 2.63618253e+06 -5.22911736e+04 ! x y z +-6.60976767e+02 2.09577153e+03 3.42675226e+00 ! vx vy vz +459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill +5.35754408e+03 !particle radius in m +1.08528417e+07 5.02794391e+05 -2.76918530e+04 ! x y z +-1.27726381e+02 1.98516729e+03 -1.12360782e+01 ! vx vy vz +460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill +1.18534842e+04 !particle radius in m +-7.11955030e+06 6.48411163e+06 -1.64876744e+04 ! x y z +-1.43123341e+03 -1.55444238e+03 -1.21086898e+01 ! vx vy vz +461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill +9.10252919e+03 !particle radius in m +7.73539416e+06 4.91837100e+06 3.79759434e+04 ! x y z +-1.16029500e+03 1.85248711e+03 2.31086993e+00 ! vx vy vz +462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill +1.02339004e+04 !particle radius in m +8.76407090e+06 -2.02266717e+06 -1.17355053e+04 ! x y z +4.87045225e+02 2.14976445e+03 -1.12592644e+01 ! vx vy vz +463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill +1.16832115e+04 !particle radius in m +-5.85624077e+06 -7.65100688e+06 -6.81073848e+04 ! x y z +1.69101430e+03 -1.25110313e+03 -1.69620610e+01 ! vx vy vz +464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill +4.63065609e+03 !particle radius in m +-4.73064294e+06 1.23174391e+07 -1.15616945e+05 ! x y z +-1.67622870e+03 -6.40214154e+02 -2.40259531e+00 ! vx vy vz +465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill +6.75204041e+03 !particle radius in m +1.21865621e+07 4.96824670e+06 1.38201935e+04 ! x y z +-6.90512507e+02 1.66991832e+03 1.81886433e+00 ! vx vy vz +466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill +9.95606737e+03 !particle radius in m +1.16681691e+07 6.27755146e+06 -9.89757611e+04 ! x y z +-8.82483897e+02 1.58231102e+03 -7.45315405e-01 ! vx vy vz +467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill +5.99441701e+03 !particle radius in m +-9.82574233e+06 -6.12952303e+06 1.96949177e+04 ! x y z +1.01952580e+03 -1.64506613e+03 1.17311172e+01 ! vx vy vz +468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill +1.16562377e+04 !particle radius in m +-7.66867450e+06 -6.71467472e+06 1.82936899e+04 ! x y z +1.37697709e+03 -1.54141508e+03 -1.04916179e+01 ! vx vy vz +469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill +7.22008053e+03 !particle radius in m +6.68731996e+06 1.21566043e+07 -5.02348380e+04 ! x y z +-1.55626881e+03 8.62955881e+02 7.13319505e+00 ! vx vy vz +470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill +4.52448294e+03 !particle radius in m +5.58226973e+05 -1.33893338e+07 3.23944444e+04 ! x y z +1.78341617e+03 5.70175526e+01 2.01164673e+01 ! vx vy vz +471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill +8.03922694e+03 !particle radius in m +2.69184570e+06 8.96128856e+06 -1.43912663e+04 ! x y z +-2.03943626e+03 6.16982327e+02 1.53458951e+01 ! vx vy vz +472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill +1.09006261e+04 !particle radius in m +-1.76847286e+07 -6.05601018e+05 1.06870104e+04 ! x y z +8.13556990e+01 -1.55405464e+03 1.07736989e+01 ! vx vy vz +473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill +5.96239346e+03 !particle radius in m +-4.46692197e+06 -8.22773588e+06 -3.36712950e+04 ! x y z +1.90929541e+03 -1.00567083e+03 1.30091738e+01 ! vx vy vz +474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill +3.86203494e+03 !particle radius in m +1.09873618e+07 1.89353789e+07 1.37058307e+05 ! x y z +-1.20089709e+03 6.97166990e+02 -1.15971142e+00 ! vx vy vz +475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill +1.20678989e+04 !particle radius in m +8.92466133e+06 -1.21792450e+06 3.61100410e+04 ! x y z +3.10051974e+02 2.14937296e+03 -1.41043166e+01 ! vx vy vz +476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill +8.91193791e+03 !particle radius in m +-5.85289838e+05 1.08674619e+07 3.13865857e+04 ! x y z +-1.97212405e+03 -1.17677554e+02 -3.37938196e+00 ! vx vy vz +477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill +6.40717392e+03 !particle radius in m +2.71862051e+06 -9.05514497e+06 -5.54339403e+02 ! x y z +2.04451063e+03 5.93924832e+02 -2.26401878e+01 ! vx vy vz +478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill +1.01917795e+04 !particle radius in m +-4.06364003e+06 8.41274452e+06 3.61206264e+04 ! x y z +-1.92276154e+03 -9.27433732e+02 1.11784546e+01 ! vx vy vz +479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill +7.03132016e+03 !particle radius in m +-1.19933178e+07 -3.73131347e+06 1.49826992e+03 ! x y z +5.46200488e+02 -1.75445228e+03 -4.43292318e-01 ! vx vy vz +480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill +4.01835133e+03 !particle radius in m +-2.24454214e+07 -7.37433557e+06 5.58803594e+04 ! x y z +4.48331646e+02 -1.26886747e+03 -5.97172099e+00 ! vx vy vz +481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill +4.48393645e+03 !particle radius in m +-1.00569236e+07 1.52027585e+06 5.50467478e+04 ! x y z +-2.73653938e+02 -2.04195337e+03 2.77105641e+00 ! vx vy vz +482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill +4.73706563e+03 !particle radius in m +1.42492815e+06 -9.15917062e+06 -2.25858696e+04 ! x y z +2.12298306e+03 3.34049377e+02 1.00298878e+01 ! vx vy vz +483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill +5.32956636e+03 !particle radius in m +-7.74886856e+06 6.98419572e+06 4.81094824e+02 ! x y z +-1.36287826e+03 -1.51437942e+03 -1.68752883e+01 ! vx vy vz +484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill +8.98855782e+03 !particle radius in m +-9.13222067e+06 7.31343022e+06 -3.08093425e+04 ! x y z +-1.21046156e+03 -1.49256909e+03 -3.15355485e-01 ! vx vy vz +485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill +6.01378842e+03 !particle radius in m +6.06087158e+06 -9.69417839e+06 6.23119551e+04 ! x y z +1.63826093e+03 1.03252872e+03 -8.91138112e+00 ! vx vy vz +486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill +4.62821986e+03 !particle radius in m +1.42036863e+07 3.21005959e+05 -1.52147935e+05 ! x y z +-2.29346938e+01 1.73911536e+03 2.41934076e+00 ! vx vy vz +487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill +1.02114099e+04 !particle radius in m +2.47060933e+06 -8.49038937e+06 -1.64092125e+04 ! x y z +2.11333925e+03 6.27764025e+02 3.26978709e+00 ! vx vy vz +488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill +1.22853727e+04 !particle radius in m +-1.70653039e+07 2.72173559e+06 1.07972032e+05 ! x y z +-2.36876536e+02 -1.54619144e+03 -7.91920171e+00 ! vx vy vz +489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill +7.87339511e+03 !particle radius in m +9.29964742e+06 2.61866241e+06 1.18151327e+04 ! x y z +-6.01432781e+02 2.01893065e+03 -9.18340859e-01 ! vx vy vz +490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill +1.05061229e+04 !particle radius in m +5.46329309e+06 -8.17615351e+06 3.23278517e+03 ! x y z +1.73194521e+03 1.16682128e+03 -2.32849453e+00 ! vx vy vz +491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill +4.20213010e+03 !particle radius in m +-9.38612532e+06 8.96174000e+06 1.24251608e+04 ! x y z +-1.26134064e+03 -1.32562137e+03 -9.16926524e+00 ! vx vy vz +492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill +5.49869230e+03 !particle radius in m +1.34404207e+06 -1.34982267e+07 -9.98145158e+04 ! x y z +1.77251874e+03 1.58186229e+02 -1.18233653e+01 ! vx vy vz +493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill +5.34935064e+03 !particle radius in m +1.59657590e+07 -1.84107184e+06 7.91634963e+04 ! x y z +1.77740752e+02 1.61004155e+03 -8.76452331e-01 ! vx vy vz +494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill +3.81807480e+03 !particle radius in m +-1.95422324e+07 4.27225532e+06 -1.15437134e+04 ! x y z +-3.47390066e+02 -1.42742043e+03 -9.37392480e+00 ! vx vy vz +495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill +7.27427657e+03 !particle radius in m +-8.32827018e+06 6.50246828e+06 1.07863935e+04 ! x y z +-1.19572995e+03 -1.60254308e+03 1.23423582e+00 ! vx vy vz +496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill +8.73601721e+03 !particle radius in m +-1.07074688e+07 2.34621575e+06 5.93641138e+04 ! x y z +-4.22982902e+02 -1.94965020e+03 -1.96471998e+01 ! vx vy vz +497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill +1.15512484e+04 !particle radius in m +4.51979494e+06 1.22520862e+07 -1.38847489e+04 ! x y z +-1.72593078e+03 6.48260700e+02 -7.40684356e+00 ! vx vy vz +498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill +6.64309194e+03 !particle radius in m +2.92552013e+06 -1.35219163e+07 -7.24169872e+04 ! x y z +1.71212479e+03 3.82693746e+02 1.13508153e+01 ! vx vy vz +499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill +1.01949726e+04 !particle radius in m +8.44057923e+05 -1.07213279e+07 5.42825433e+04 ! x y z +1.98524585e+03 1.59641509e+02 -2.17308444e+00 ! vx vy vz +500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill +1.24273391e+04 !particle radius in m +-5.70564751e+06 -1.28061077e+07 7.89815585e+04 ! x y z +1.59615438e+03 -7.17950030e+02 -1.60355758e+01 ! vx vy vz +501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill +9.91174230e+03 !particle radius in m +6.42542385e+06 -6.26831304e+06 -8.52096344e+03 ! x y z +1.51047048e+03 1.57585291e+03 1.26849618e+01 ! vx vy vz +502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill +7.61642321e+03 !particle radius in m +-1.26986567e+07 2.05439645e+06 4.23816010e+04 ! x y z +-3.17593598e+02 -1.80836332e+03 1.37317505e+01 ! vx vy vz +503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill +5.85403069e+03 !particle radius in m +3.89723404e+06 -8.71939773e+06 -1.59555101e+04 ! x y z +1.92484978e+03 8.78585634e+02 3.76576757e+00 ! vx vy vz +504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill +9.68335876e+03 !particle radius in m +9.58403819e+06 -1.00242938e+06 4.12991678e+04 ! x y z +2.21630062e+02 2.09275016e+03 1.75085392e+01 ! vx vy vz +505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill +1.02097944e+04 !particle radius in m +-2.44297176e+05 1.26729604e+07 2.03607439e+04 ! x y z +-1.84680295e+03 -1.82730822e+01 -2.91252739e+00 ! vx vy vz +506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill +5.49842989e+03 !particle radius in m +-8.96004039e+06 4.09560494e+05 -3.60456167e+04 ! x y z +-1.02191608e+02 -2.20756190e+03 -2.24493109e+00 ! vx vy vz +507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill +1.27138008e+04 !particle radius in m +-6.81541514e+06 -7.94063477e+06 -7.18748605e+04 ! x y z +1.54316120e+03 -1.31237150e+03 -1.15079245e+01 ! vx vy vz +508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill +8.78402686e+03 !particle radius in m +-9.08822325e+06 1.13954530e+07 -2.08875223e+04 ! x y z +-1.34302030e+03 -1.07504367e+03 -1.24686872e+01 ! vx vy vz +509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill +1.15175985e+04 !particle radius in m +-1.06157252e+07 1.57779393e+06 -6.65867787e+03 ! x y z +-2.87369206e+02 -1.99101003e+03 7.20690801e-01 ! vx vy vz +510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill +9.04716508e+03 !particle radius in m +7.17906044e+06 8.87425909e+06 -3.25181785e+04 ! x y z +-1.49406264e+03 1.20724214e+03 6.21002078e+00 ! vx vy vz +511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill +5.48112664e+03 !particle radius in m +-1.21003843e+06 -1.29422942e+07 -7.40239219e+04 ! x y z +1.81002624e+03 -1.79331834e+02 1.25932266e+01 ! vx vy vz +512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill +8.48753771e+03 !particle radius in m +-6.99463389e+06 -6.47905900e+06 9.60433255e+04 ! x y z +1.43760545e+03 -1.52260892e+03 -8.56316812e+00 ! vx vy vz +513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill +1.26571613e+04 !particle radius in m +6.31211278e+06 1.15740500e+07 2.93359231e+04 ! x y z +-1.56035950e+03 8.72608400e+02 2.02164700e+01 ! vx vy vz +514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill +4.22293872e+03 !particle radius in m +-1.14209193e+07 -1.19005899e+07 4.72825184e+04 ! x y z +1.16096797e+03 -1.10215252e+03 -1.73463799e+00 ! vx vy vz +515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill +9.19239764e+03 !particle radius in m +-1.91436849e+06 -8.75500915e+06 -5.63789360e+04 ! x y z +2.13513923e+03 -5.15505302e+02 8.14672797e+00 ! vx vy vz +516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill +6.39431287e+03 !particle radius in m +-7.76033426e+06 5.83903373e+06 1.45914082e+04 ! x y z +-1.24659220e+03 -1.65602207e+03 2.58792993e+00 ! vx vy vz +517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill +7.06047440e+03 !particle radius in m +6.04175168e+06 -1.13300829e+07 -2.21833258e+04 ! x y z +1.60126812e+03 8.64183750e+02 2.07897641e+00 ! vx vy vz +518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill +5.98026121e+03 !particle radius in m +7.56777600e+06 -5.38164192e+06 4.82260182e+04 ! x y z +1.23384783e+03 1.75131178e+03 1.39050720e+00 ! vx vy vz +519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill +5.89215810e+03 !particle radius in m +2.24109885e+06 -1.09795024e+07 -3.90720695e+03 ! x y z +1.91472479e+03 3.97948512e+02 1.96668988e+01 ! vx vy vz +520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill +1.18470246e+04 !particle radius in m +-1.60346956e+06 8.94982575e+06 -4.55491048e+04 ! x y z +-2.13610180e+03 -3.93853083e+02 6.45999458e+00 ! vx vy vz +521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill +1.07963370e+04 !particle radius in m +1.33407792e+07 -9.60353157e+06 -4.36975900e+04 ! x y z +9.42437149e+02 1.32281900e+03 -2.80741977e+00 ! vx vy vz +522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill +9.49477387e+03 !particle radius in m +5.43228414e+06 -7.41736135e+06 -2.66812088e+04 ! x y z +1.72722717e+03 1.31007512e+03 -7.34912008e+00 ! vx vy vz +523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill +3.79681841e+03 !particle radius in m +1.54005009e+06 1.28774959e+07 5.16246471e+04 ! x y z +-1.81371335e+03 2.12824688e+02 -9.20646953e-01 ! vx vy vz +524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill +1.11863238e+04 !particle radius in m +1.67931493e+06 1.31306619e+07 -2.70431013e+03 ! x y z +-1.76941688e+03 1.91845464e+02 5.05532665e+00 ! vx vy vz +525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill +1.05995433e+04 !particle radius in m +-1.32214307e+07 4.59727104e+06 -3.96485583e+04 ! x y z +-5.86090985e+02 -1.64093893e+03 -8.60481037e+00 ! vx vy vz +526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill +7.92726804e+03 !particle radius in m +-1.18927692e+07 -9.15865717e+05 -4.39369369e+04 ! x y z +1.82263225e+02 -1.88987287e+03 9.03561914e+00 ! vx vy vz +527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill +1.02364827e+04 !particle radius in m +-9.62033211e+06 8.56620033e+06 -2.00428889e+04 ! x y z +-1.21101074e+03 -1.36584173e+03 3.97879960e+00 ! vx vy vz +528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill +4.20273952e+03 !particle radius in m +9.89301751e+06 1.68175777e+07 -1.13308431e+05 ! x y z +-1.27501202e+03 7.61202373e+02 3.42051019e+00 ! vx vy vz +529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill +5.97559270e+03 !particle radius in m +5.37606728e+06 1.01483084e+07 -2.42832542e+04 ! x y z +-1.69155568e+03 9.33567602e+02 8.03539638e+00 ! vx vy vz +530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill +8.92979367e+03 !particle radius in m +1.14205826e+06 -8.87516936e+06 2.93174632e+04 ! x y z +2.16370189e+03 2.71790476e+02 -6.44072560e-04 ! vx vy vz +531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill +1.28055687e+04 !particle radius in m +1.43504952e+07 -1.05282252e+07 1.08842756e+04 ! x y z +8.96217918e+02 1.25350160e+03 -1.10361539e+01 ! vx vy vz +532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill +4.45062026e+03 !particle radius in m +-1.23862731e+07 -4.56645846e+06 6.19786286e+04 ! x y z +6.35830463e+02 -1.69613094e+03 6.10556298e-01 ! vx vy vz +533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill +1.10810345e+04 !particle radius in m +-9.06340320e+06 2.47989940e+06 5.29566882e+03 ! x y z +-6.09939224e+02 -2.04449772e+03 -8.32106226e+00 ! vx vy vz +534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill +1.24194426e+04 !particle radius in m +4.49134220e+06 -8.88004412e+06 6.17280318e+04 ! x y z +1.84761935e+03 9.49659970e+02 -1.91054187e+01 ! vx vy vz +535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill +7.49678363e+03 !particle radius in m +-8.88023220e+06 1.94417194e+06 -7.43854396e+03 ! x y z +-4.59587086e+02 -2.12797895e+03 1.62261707e+01 ! vx vy vz +536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill +1.18105148e+04 !particle radius in m +-6.23830061e+06 1.01163011e+07 8.19444776e+04 ! x y z +-1.60793851e+03 -1.00726817e+03 7.79908055e+00 ! vx vy vz +537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill +8.96106511e+03 !particle radius in m +1.33415164e+07 1.42367071e+07 9.29022826e+04 ! x y z +-1.09778034e+03 9.88101471e+02 9.22779390e+00 ! vx vy vz +538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill +6.30269894e+03 !particle radius in m +6.77890172e+06 -6.80689243e+06 -5.36873514e+04 ! x y z +1.47893463e+03 1.49784044e+03 1.58118524e+01 ! vx vy vz +539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill +1.02501735e+04 !particle radius in m +8.06725141e+06 -3.62262126e+06 -3.66507377e+04 ! x y z +8.67780530e+02 2.02709545e+03 1.28504792e+01 ! vx vy vz +540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill +1.06080961e+04 !particle radius in m +-1.02130792e+07 -1.98178118e+06 -1.09127341e+03 ! x y z +3.87020460e+02 -1.99318523e+03 -1.70944891e+01 ! vx vy vz +541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill +8.45856229e+03 !particle radius in m +-2.71890650e+06 -1.56230331e+07 9.11371828e+04 ! x y z +1.62029295e+03 -2.93846410e+02 -2.71565573e+00 ! vx vy vz +542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill +7.70013366e+03 !particle radius in m +4.47583128e+06 -1.06559052e+07 4.54196507e+04 ! x y z +1.76732893e+03 7.56289214e+02 -9.51753793e+00 ! vx vy vz +543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill +5.32063382e+03 !particle radius in m +-2.17375021e+06 -1.18877181e+07 -8.95951928e+04 ! x y z +1.85620755e+03 -3.25350325e+02 -7.40810642e+00 ! vx vy vz +544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill +7.86933046e+03 !particle radius in m +-1.01016093e+07 1.38884267e+06 9.80998719e+04 ! x y z +-2.82476358e+02 -2.04196683e+03 -1.00530560e+01 ! vx vy vz +545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill +1.24937177e+04 !particle radius in m +1.39598489e+07 -8.85744354e+06 2.03839682e+05 ! x y z +8.43657382e+02 1.36375070e+03 -3.55497456e+00 ! vx vy vz +546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill +5.56213757e+03 !particle radius in m +-1.43847009e+07 -4.33966476e+06 1.92096630e+04 ! x y z +4.81764822e+02 -1.62800637e+03 4.41101277e-01 ! vx vy vz +547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill +6.85570252e+03 !particle radius in m +1.40885725e+06 -1.39890777e+07 -6.21160422e+04 ! x y z +1.73532137e+03 1.58882387e+02 -4.19228752e+00 ! vx vy vz +548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill +6.45517829e+03 !particle radius in m +-6.30237830e+06 -7.45548810e+06 1.19792411e+04 ! x y z +1.58465709e+03 -1.33550387e+03 2.64893502e+01 ! vx vy vz +549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill +6.79823242e+03 !particle radius in m +1.78118521e+07 -1.09119093e+07 2.70244768e+04 ! x y z +7.41554271e+02 1.21779793e+03 9.15237602e+00 ! vx vy vz +550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill +9.50257381e+03 !particle radius in m +-2.89743663e+06 8.86128251e+06 -6.58120111e+04 ! x y z +-2.02979747e+03 -6.82073189e+02 -2.28176534e+01 ! vx vy vz +551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill +8.69947568e+03 !particle radius in m +8.83702217e+06 -2.90376077e+06 7.27788768e+04 ! x y z +6.85075467e+02 2.02703778e+03 7.97245500e+00 ! vx vy vz +552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill +7.86151243e+03 !particle radius in m +-1.21931564e+07 4.86524046e+06 -2.08324531e+04 ! x y z +-6.82318390e+02 -1.65856508e+03 -6.74090912e+00 ! vx vy vz +553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill +5.46688367e+03 !particle radius in m +-1.05680658e+07 -7.72400524e+05 -4.19566380e+03 ! x y z +1.61680595e+02 -2.00721546e+03 9.15915016e+00 ! vx vy vz +554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill +8.97559000e+03 !particle radius in m +4.91698619e+06 9.43759555e+06 8.61311530e+04 ! x y z +-1.79363820e+03 8.94192612e+02 3.28487627e+00 ! vx vy vz +555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill +9.89587154e+03 !particle radius in m +5.50899609e+06 1.48985993e+07 2.75915152e+04 ! x y z +-1.53604421e+03 5.70661142e+02 -8.63285634e+00 ! vx vy vz +556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill +1.29624899e+04 !particle radius in m +3.19801044e+06 -1.13772802e+07 7.80535196e+04 ! x y z +1.85228574e+03 4.55890151e+02 8.36932683e+00 ! vx vy vz +557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill +1.07068623e+04 !particle radius in m +-2.15573271e+06 -1.00993578e+07 2.69595119e+04 ! x y z +1.97403251e+03 -4.33189618e+02 1.83241184e+01 ! vx vy vz +558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill +6.01449701e+03 !particle radius in m +-9.90249159e+06 1.50849384e+06 7.56908853e+04 ! x y z +-3.34511747e+02 -2.03461346e+03 1.09006280e+01 ! vx vy vz +559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill +8.41928754e+03 !particle radius in m +-8.12226421e+06 -4.86915559e+06 1.48785398e+04 ! x y z +1.08601808e+03 -1.81594814e+03 -1.05069846e+01 ! vx vy vz +560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill +4.93662404e+03 !particle radius in m +1.04182881e+07 7.90957341e+06 -2.69933355e+04 ! x y z +-1.12996754e+03 1.41480511e+03 -6.50919824e+00 ! vx vy vz +561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill +8.64688797e+03 !particle radius in m +-8.48425655e+06 7.30611767e+06 -2.97358583e+04 ! x y z +-1.27983291e+03 -1.45019242e+03 -1.41707765e+01 ! vx vy vz +562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill +1.16198415e+04 !particle radius in m +-8.65184164e+06 6.24864145e+06 -3.92875079e+04 ! x y z +-1.16032314e+03 -1.63406999e+03 1.01313500e+01 ! vx vy vz +563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill +9.93353704e+03 !particle radius in m +8.34883939e+06 5.63589901e+06 -3.07212153e+04 ! x y z +-1.13165810e+03 1.72056724e+03 2.87270046e+01 ! vx vy vz +564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill +7.43690165e+03 !particle radius in m +9.21633433e+06 -1.93093666e+07 -2.54318164e+04 ! x y z +1.26419057e+03 6.27050448e+02 3.30035390e+00 ! vx vy vz +565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill +7.68112210e+03 !particle radius in m +3.80685718e+06 -7.94695887e+06 -6.90041243e+04 ! x y z +2.01235665e+03 9.27723235e+02 1.23111874e+01 ! vx vy vz +566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill +1.18083853e+04 !particle radius in m +-1.32805505e+07 -9.89987589e+06 1.89561964e+05 ! x y z +9.51950860e+02 -1.30762258e+03 -3.09155476e+00 ! vx vy vz +567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill +5.94515785e+03 !particle radius in m +7.49508147e+05 9.39060182e+06 -2.98793685e+03 ! x y z +-2.12842500e+03 1.60409656e+02 -2.35936034e+00 ! vx vy vz +568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill +9.18211562e+03 !particle radius in m +1.66945874e+06 -9.11271704e+06 -1.05228493e+04 ! x y z +2.11017159e+03 4.07672310e+02 4.86502364e+00 ! vx vy vz +569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill +5.50583603e+03 !particle radius in m +-4.36738498e+06 -8.73103534e+06 3.44651531e+03 ! x y z +1.86828307e+03 -9.77585967e+02 3.81224965e+00 ! vx vy vz +570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill +4.08758743e+03 !particle radius in m +-1.94040314e+07 1.29480928e+07 -6.30516410e+04 ! x y z +-7.60734575e+02 -1.12192654e+03 2.15504297e+00 ! vx vy vz +571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill +1.25006754e+04 !particle radius in m +-2.30041587e+06 -9.09389672e+06 2.95714152e+04 ! x y z +2.09036388e+03 -5.21147635e+02 -8.12618749e+00 ! vx vy vz +572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill +6.56718935e+03 !particle radius in m +-8.45167174e+06 3.53866282e+06 8.15293748e+03 ! x y z +-8.17977533e+02 -1.97338441e+03 3.10707851e+01 ! vx vy vz +573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill +1.08461254e+04 !particle radius in m +-1.10837839e+05 -1.22760495e+07 9.98243029e+04 ! x y z +1.86849744e+03 1.94461008e+01 1.19094336e+01 ! vx vy vz +574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill +1.24276204e+04 !particle radius in m +-2.16572849e+06 -1.29271292e+07 8.07671116e+04 ! x y z +1.79349978e+03 -2.38674951e+02 -1.98965270e+00 ! vx vy vz +575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill +1.29170951e+04 !particle radius in m +-2.12394299e+06 8.55999084e+06 1.53741130e+04 ! x y z +-2.16066071e+03 -5.04790442e+02 1.96131475e+01 ! vx vy vz +576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill +8.85954838e+03 !particle radius in m +1.01810115e+07 -3.37487969e+05 -2.68884911e+04 ! x y z +8.19073631e+01 2.05446062e+03 -7.35333556e+00 ! vx vy vz +577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill +9.25127176e+03 !particle radius in m +-4.23808016e+06 1.06041798e+07 1.34318994e+05 ! x y z +-1.79220969e+03 -7.00369186e+02 1.28815476e+00 ! vx vy vz +578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill +5.87236346e+03 !particle radius in m +-7.46862356e+06 5.99931350e+06 -2.30141523e+03 ! x y z +-1.36280521e+03 -1.60905358e+03 6.63931385e+00 ! vx vy vz +579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill +5.05714772e+03 !particle radius in m +-1.11448733e+07 5.00947275e+06 -4.68801561e+04 ! x y z +-7.74415285e+02 -1.70766691e+03 -3.61919201e+00 ! vx vy vz +580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill +6.10352459e+03 !particle radius in m +-3.19024158e+06 9.81483389e+06 5.84486975e+04 ! x y z +-1.93912156e+03 -6.23690422e+02 1.23117054e+01 ! vx vy vz +581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill +1.16189063e+04 !particle radius in m +-2.24603747e+07 6.26030145e+06 -3.01506892e+04 ! x y z +-3.65393394e+02 -1.30811994e+03 1.11405519e+01 ! vx vy vz +582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill +1.05019921e+04 !particle radius in m +-1.12701774e+07 -7.80948644e+06 -6.84666678e+04 ! x y z +9.99713905e+02 -1.47048211e+03 2.44750306e+01 ! vx vy vz +583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill +6.56830775e+03 !particle radius in m +-1.36712830e+06 9.67813820e+06 -6.74480903e+04 ! x y z +-2.06604712e+03 -2.98384524e+02 -5.50167062e+00 ! vx vy vz +584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill +1.19207925e+04 !particle radius in m +7.73867408e+06 1.33759604e+07 3.56063208e+04 ! x y z +-1.44506269e+03 8.28074701e+02 1.84054191e+00 ! vx vy vz +585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill +8.49992876e+03 !particle radius in m +-7.77453358e+06 -5.02677399e+06 3.78389790e+04 ! x y z +1.16536090e+03 -1.82463232e+03 -7.04505898e+00 ! vx vy vz +586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill +7.38049260e+03 !particle radius in m +7.38262528e+06 7.34984552e+06 -2.24885801e+04 ! x y z +-1.42099662e+03 1.43499436e+03 1.07378124e+01 ! vx vy vz +587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill +1.08707623e+04 !particle radius in m +-1.19920742e+07 -2.80217215e+06 -5.59313271e+04 ! x y z +4.17941960e+02 -1.81181182e+03 1.45497492e+01 ! vx vy vz +588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill +6.01682391e+03 !particle radius in m +-9.55988426e+06 -7.31862699e+06 -2.64957060e+04 ! x y z +1.16610080e+03 -1.48362062e+03 -6.94255903e+00 ! vx vy vz +589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill +5.36421948e+03 !particle radius in m +1.02276231e+07 -1.62862349e+07 -9.70147988e+04 ! x y z +1.26937242e+03 7.76347306e+02 4.03225256e+00 ! vx vy vz +590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill +5.71926483e+03 !particle radius in m +-5.16420660e+06 -7.78596130e+06 4.36962776e+04 ! x y z +1.78489031e+03 -1.16625555e+03 -2.90708635e+00 ! vx vy vz +591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill +8.90706847e+03 !particle radius in m +-7.45989489e+06 7.86823113e+06 2.30718801e+04 ! x y z +-1.45305114e+03 -1.35662728e+03 1.14450554e+01 ! vx vy vz +592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill +1.14097740e+04 !particle radius in m +-7.21533013e+06 1.04550999e+07 5.75058243e+04 ! x y z +-1.49719620e+03 -1.06522065e+03 9.45819576e+00 ! vx vy vz +593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill +6.87676601e+03 !particle radius in m +6.25358173e+06 -8.48267668e+06 1.86642486e+04 ! x y z +1.59879201e+03 1.18862345e+03 -8.19507037e+00 ! vx vy vz +594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill +5.09063352e+03 !particle radius in m +-7.19321718e+06 -9.25718484e+06 1.26289010e+05 ! x y z +1.51012765e+03 -1.19137905e+03 -2.08075301e+01 ! vx vy vz +595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill +1.15343262e+04 !particle radius in m +9.77355514e+06 -3.06014377e+06 -1.91679922e+04 ! x y z +6.16624498e+02 1.95214553e+03 8.76866120e+00 ! vx vy vz +596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill +1.23165581e+04 !particle radius in m +9.85520768e+06 5.11039151e+06 2.67592384e+04 ! x y z +-9.36821649e+02 1.72971850e+03 9.58489099e+00 ! vx vy vz +597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill +1.01978639e+04 !particle radius in m +2.25000304e+07 2.97587658e+06 1.11207983e+05 ! x y z +-2.07470373e+02 1.34869606e+03 9.35124053e+00 ! vx vy vz +598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill +3.82259987e+03 !particle radius in m +9.72912370e+06 4.89272799e+06 4.72049901e+04 ! x y z +-8.59138858e+02 1.80693327e+03 1.59854908e+00 ! vx vy vz +599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill +1.29945434e+04 !particle radius in m +8.58212362e+06 2.09155798e+07 -8.24274997e+04 ! x y z +-1.27328941e+03 5.22122914e+02 2.97251817e+00 ! vx vy vz +600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill +5.07359536e+03 !particle radius in m +1.25914809e+07 -1.54064226e+06 -2.42309046e+04 ! x y z +2.41941616e+02 1.80407714e+03 -4.95095821e+00 ! vx vy vz +601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill +9.63008210e+03 !particle radius in m +-9.08598960e+06 5.01876430e+05 -5.56896042e+04 ! x y z +-1.04300102e+02 -2.16453693e+03 -3.87670808e+00 ! vx vy vz +602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill +4.74458362e+03 !particle radius in m +8.60778725e+06 4.52935761e+06 2.36936302e+04 ! x y z +-9.88264993e+02 1.85248346e+03 -3.75174148e+00 ! vx vy vz +603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill +4.82484424e+03 !particle radius in m +-8.51705861e+06 -3.00987013e+06 -6.10335808e+04 ! x y z +7.24297619e+02 -2.04790563e+03 -9.17975560e+00 ! vx vy vz +604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill +1.18981571e+04 !particle radius in m +-2.02348638e+07 -1.68672863e+06 -1.06729108e+05 ! x y z +1.27546784e+02 -1.44981480e+03 -2.13046543e+00 ! vx vy vz +605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill +4.79608176e+03 !particle radius in m +9.64800303e+06 8.51584872e+06 1.81571159e+04 ! x y z +-1.21061246e+03 1.38578498e+03 -1.32836513e+01 ! vx vy vz +606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill +4.90789744e+03 !particle radius in m +9.13818695e+06 -7.70452976e+06 2.69452399e+04 ! x y z +1.22812984e+03 1.45658692e+03 -6.73843496e+00 ! vx vy vz +607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill +9.14114041e+03 !particle radius in m +-1.09145671e+06 9.34973420e+06 5.18642883e+03 ! x y z +-2.11998407e+03 -2.42766889e+02 -9.89092405e-01 ! vx vy vz +608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill +8.28071491e+03 !particle radius in m +1.92010196e+07 1.03149047e+07 5.09869779e+04 ! x y z +-6.74338417e+02 1.23568504e+03 -2.88434162e+00 ! vx vy vz +609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill +8.15446281e+03 !particle radius in m +9.58051429e+06 -4.62318632e+05 6.35849025e+04 ! x y z +9.06335255e+01 2.09825906e+03 -7.35742647e+00 ! vx vy vz +610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill +1.09232871e+04 !particle radius in m +-1.30847754e+07 -1.20838009e+05 2.79768532e+04 ! x y z +3.82034000e+01 -1.80937386e+03 2.83422576e+00 ! vx vy vz +611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill +9.45383905e+03 !particle radius in m +-5.32926260e+06 1.08809045e+07 2.85451712e+04 ! x y z +-1.71920333e+03 -8.10618635e+02 -1.48118539e+01 ! vx vy vz +612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill +8.18339867e+03 !particle radius in m +1.07932378e+07 -2.40071483e+06 1.38428017e+04 ! x y z +4.19588126e+02 1.91854962e+03 1.35266288e+01 ! vx vy vz +613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill +9.16228488e+03 !particle radius in m +-6.86193518e+06 -9.36770363e+06 8.70674895e+04 ! x y z +1.55612467e+03 -1.13081122e+03 -1.76373653e+01 ! vx vy vz +614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill +7.36353909e+03 !particle radius in m +5.38169569e+06 -8.48107525e+06 -8.38982677e+03 ! x y z +1.73578647e+03 1.09143169e+03 9.09587252e-01 ! vx vy vz +615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill +8.14917269e+03 !particle radius in m +7.81574277e+06 4.66176951e+06 -2.35259182e+04 ! x y z +-1.08169242e+03 1.85148012e+03 8.40529015e+00 ! vx vy vz +616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill +1.22698790e+04 !particle radius in m +6.77476212e+06 6.99394577e+06 -8.71906448e+03 ! x y z +-1.48799386e+03 1.46547457e+03 -6.43335853e-01 ! vx vy vz +617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill +4.72508108e+03 !particle radius in m +-2.14192792e+06 -8.68107380e+06 -3.97684760e+04 ! x y z +2.13766548e+03 -4.81639501e+02 9.54765001e+00 ! vx vy vz +618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill +5.71050016e+03 !particle radius in m +9.36808365e+06 1.90217107e+06 2.99198598e+04 ! x y z +-4.46020774e+02 2.07539296e+03 -7.66300380e+00 ! vx vy vz +619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill +7.33684298e+03 !particle radius in m +7.27614119e+06 5.72024594e+06 2.49831464e+04 ! x y z +-1.34304944e+03 1.66116310e+03 2.15485187e+00 ! vx vy vz +620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill +4.75982712e+03 !particle radius in m +9.58921336e+06 -1.24222677e+07 -1.97472656e+05 ! x y z +1.32022081e+03 9.87424842e+02 4.32249357e+00 ! vx vy vz +621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill +1.08873520e+04 !particle radius in m +-7.88989019e+06 -1.13885470e+07 -2.56937402e+04 ! x y z +1.46586529e+03 -9.71985942e+02 -3.51396551e+00 ! vx vy vz +622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill +3.99854533e+03 !particle radius in m +3.87292376e+06 9.21006941e+06 -6.39624708e+04 ! x y z +-1.89793804e+03 8.09142969e+02 -6.59781953e+00 ! vx vy vz +623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill +5.83040726e+03 !particle radius in m +7.50695786e+06 -4.65362052e+06 -7.10126403e+03 ! x y z +1.18139098e+03 1.86471888e+03 -3.95167658e+00 ! vx vy vz +624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill +4.48202152e+03 !particle radius in m +-1.39144844e+07 5.81363011e+06 3.85998049e+04 ! x y z +-6.70071502e+02 -1.54974548e+03 4.74922131e+00 ! vx vy vz +625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill +1.21311502e+04 !particle radius in m +9.87837438e+06 2.55551323e+06 -1.36596041e+03 ! x y z +-4.90308025e+02 1.98176510e+03 -1.01037674e+01 ! vx vy vz +626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill +9.09180370e+03 !particle radius in m +1.45341700e+07 -4.27619608e+06 5.93941868e+04 ! x y z +4.77328962e+02 1.60335894e+03 -4.97370028e+00 ! vx vy vz +627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill +1.16574183e+04 !particle radius in m +2.05268573e+06 -1.13741606e+07 4.03903250e+04 ! x y z +1.88573928e+03 3.30474062e+02 -1.50298053e+01 ! vx vy vz +628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill +7.34881070e+03 !particle radius in m +-1.02805752e+07 -3.59154998e+06 7.79568952e+04 ! x y z +6.27919253e+02 -1.86780226e+03 9.15877947e+00 ! vx vy vz +629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill +9.64045416e+03 !particle radius in m +1.00209373e+07 1.06957570e+06 -9.24601092e+04 ! x y z +-1.95870916e+02 2.03366838e+03 -1.10087708e-01 ! vx vy vz +630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill +3.97219150e+03 !particle radius in m +-1.39517485e+07 8.21883388e+06 7.67623281e+03 ! x y z +-8.12327248e+02 -1.40338294e+03 4.18222867e+00 ! vx vy vz +631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill +6.71584845e+03 !particle radius in m +1.02605370e+07 -6.40538450e+06 2.46021664e+04 ! x y z +9.77968382e+02 1.60990669e+03 -4.31601474e+00 ! vx vy vz +632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill +8.75727541e+03 !particle radius in m +1.06053206e+07 3.44385915e+06 5.77152912e+04 ! x y z +-5.52774107e+02 1.87621696e+03 -1.29609706e+01 ! vx vy vz +633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill +5.98053661e+03 !particle radius in m +-9.64301945e+06 6.86746863e+06 -1.42533659e+05 ! x y z +-1.09942559e+03 -1.55528445e+03 -9.72595405e+00 ! vx vy vz +634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill +1.29126696e+04 !particle radius in m +1.05754125e+06 -1.47420174e+07 -1.54880877e+04 ! x y z +1.69143054e+03 1.16386287e+02 -1.26829716e+01 ! vx vy vz +635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill +5.04640834e+03 !particle radius in m +-3.03537890e+06 9.53552265e+06 9.73685659e+03 ! x y z +-1.96823062e+03 -6.23463481e+02 -1.63952204e+01 ! vx vy vz +636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill +4.60035801e+03 !particle radius in m +-9.98694456e+06 -1.23492362e+06 -1.80480653e+04 ! x y z +2.38207036e+02 -2.05532674e+03 1.79734911e+01 ! vx vy vz +637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill +1.19900755e+04 !particle radius in m +-3.74835489e+06 9.22336598e+06 -1.11560816e+05 ! x y z +-1.91843216e+03 -7.98271594e+02 2.02049490e+01 ! vx vy vz +638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill +1.24780025e+04 !particle radius in m +-6.68794780e+06 -7.54430362e+06 8.73782978e+03 ! x y z +1.55324620e+03 -1.34364314e+03 -6.31744671e+00 ! vx vy vz +639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill +1.25403278e+04 !particle radius in m +-1.03958383e+07 8.06724680e+05 2.41594570e+04 ! x y z +-1.55899964e+02 -2.01914147e+03 9.33842265e-01 ! vx vy vz +640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill +4.12066331e+03 !particle radius in m +9.33960040e+06 5.20047646e+06 3.07184995e+03 ! x y z +-9.59952400e+02 1.75350496e+03 -9.51510094e+00 ! vx vy vz +641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill +1.14051155e+04 !particle radius in m +-4.55852771e+05 1.12982302e+07 1.97139798e+04 ! x y z +-1.93821973e+03 -6.36299001e+01 1.52707202e+00 ! vx vy vz +642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill +9.00330067e+03 !particle radius in m +-9.39243710e+06 -4.13852649e+05 -1.20016794e+05 ! x y z +7.29189904e+01 -2.15146169e+03 7.46416116e+00 ! vx vy vz +643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill +6.75031451e+03 !particle radius in m +1.55420118e+07 -1.56324574e+07 1.17450688e+05 ! x y z +9.80482478e+02 9.89380982e+02 -2.43164132e+00 ! vx vy vz +644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill +1.14409114e+04 !particle radius in m +1.02533186e+07 8.01360601e+05 -1.49055635e+04 ! x y z +-1.71963144e+02 2.04211236e+03 -5.41798226e+00 ! vx vy vz +645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill +7.63377033e+03 !particle radius in m +1.42914142e+06 9.84981684e+06 2.93564167e+04 ! x y z +-2.05268655e+03 3.05405042e+02 3.66863343e+00 ! vx vy vz +646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill +7.37523479e+03 !particle radius in m +8.46677243e+06 -3.56936745e+06 -1.01092855e+05 ! x y z +8.46329328e+02 1.98233396e+03 -1.20626919e+01 ! vx vy vz +647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill +8.75022177e+03 !particle radius in m +-5.51541812e+06 -9.33328186e+06 -7.53076104e+04 ! x y z +1.69850130e+03 -1.02466912e+03 -1.16108091e+01 ! vx vy vz +648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill +9.93898678e+03 !particle radius in m +7.91261034e+06 6.82977302e+06 4.78744592e+04 ! x y z +-1.31937664e+03 1.53446068e+03 9.71586209e+00 ! vx vy vz +649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill +1.06583427e+04 !particle radius in m +9.51054870e+06 7.22147752e+06 -1.16155344e+05 ! x y z +-1.13247642e+03 1.51634128e+03 7.95619932e+00 ! vx vy vz +650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill +7.85060242e+03 !particle radius in m +7.56958002e+06 8.18907830e+06 2.90934189e+04 ! x y z +-1.41713137e+03 1.33985142e+03 -1.12168107e+00 ! vx vy vz +651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill +6.15974600e+03 !particle radius in m +-6.13341164e+06 7.98589804e+06 -2.27618169e+04 ! x y z +-1.62649363e+03 -1.24985675e+03 2.06508812e+00 ! vx vy vz +652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill +5.24703584e+03 !particle radius in m +6.47073981e+06 -9.41271204e+06 -2.22310124e+04 ! x y z +1.59958848e+03 1.08093374e+03 -3.51035905e+00 ! vx vy vz +653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill +5.28953293e+03 !particle radius in m +7.87952728e+06 -7.74021482e+06 2.62244560e+04 ! x y z +1.39190993e+03 1.39669667e+03 7.19439783e+00 ! vx vy vz +654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill +8.72569980e+03 !particle radius in m +-7.78608816e+06 6.02791398e+06 3.71436614e+04 ! x y z +-1.25856718e+03 -1.69668386e+03 -1.29605210e+01 ! vx vy vz +655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill +5.53985567e+03 !particle radius in m +-6.32210122e+06 -1.01415155e+07 4.88655736e+04 ! x y z +1.63018229e+03 -9.50923090e+02 9.77870783e+00 ! vx vy vz +656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill +4.55779408e+03 !particle radius in m +-6.23576444e+06 6.51367852e+06 -3.41989237e+04 ! x y z +-1.58628947e+03 -1.49318367e+03 1.23405417e+01 ! vx vy vz +657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill +1.10244216e+04 !particle radius in m +-1.35500086e+07 -2.26040006e+06 1.32350391e+05 ! x y z +2.64719358e+02 -1.74789986e+03 -5.31947479e+00 ! vx vy vz +658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill +1.22251778e+04 !particle radius in m +5.77929553e+06 -1.19535178e+07 -7.82666736e+04 ! x y z +1.59619208e+03 7.97360418e+02 -1.29583152e+01 ! vx vy vz +659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill +4.89435521e+03 !particle radius in m +-8.33458476e+06 1.42735479e+07 -3.35627654e+04 ! x y z +-1.40045628e+03 -8.13740040e+02 1.03574303e+01 ! vx vy vz +660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill +1.12836524e+04 !particle radius in m +-1.47864055e+06 -9.12632464e+06 1.03294618e+05 ! x y z +2.12785802e+03 -3.89541043e+02 1.51865579e+01 ! vx vy vz +661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill +1.14482340e+04 !particle radius in m +5.45407329e+06 9.28416293e+06 -1.51509372e+04 ! x y z +-1.71334604e+03 1.02205340e+03 -7.65932607e+00 ! vx vy vz +662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill +1.15163962e+04 !particle radius in m +-1.39013045e+07 6.50213463e+06 -1.39734670e+05 ! x y z +-7.22290359e+02 -1.50945570e+03 -8.90498950e+00 ! vx vy vz +663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill +1.27900613e+04 !particle radius in m +-9.89641528e+06 -1.11416999e+07 3.81985165e+04 ! x y z +1.26154170e+03 -1.13757778e+03 1.92574173e+00 ! vx vy vz +664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill +3.74540728e+03 !particle radius in m +-3.16815028e+06 1.11329600e+07 6.51690516e+03 ! x y z +-1.85087911e+03 -4.88202334e+02 -1.01794725e+01 ! vx vy vz +665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill +3.72235677e+03 !particle radius in m +1.00049376e+07 4.66630545e+06 -9.44413909e+04 ! x y z +-7.94024833e+02 1.77983677e+03 -9.21818189e+00 ! vx vy vz +666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill +3.81573804e+03 !particle radius in m +-1.63493537e+07 6.57692006e+06 6.46813001e+04 ! x y z +-5.79515939e+02 -1.44477767e+03 3.27352582e+00 ! vx vy vz +667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill +7.37167696e+03 !particle radius in m +1.18807783e+07 1.34251951e+07 1.86898768e+05 ! x y z +-1.17463975e+03 1.00294171e+03 -4.22564791e+00 ! vx vy vz +668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill +9.01289765e+03 !particle radius in m +1.11171931e+07 2.90403753e+06 -9.01017188e+04 ! x y z +-4.88090453e+02 1.87530119e+03 -9.57682232e-01 ! vx vy vz +669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill +4.52652522e+03 !particle radius in m +9.73106602e+06 3.61005057e+04 5.94605185e+04 ! x y z +-7.45471281e+01 2.10678631e+03 -2.14191842e+00 ! vx vy vz +670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill +1.16673660e+04 !particle radius in m +-2.74202504e+06 -1.01140650e+07 -7.39918641e+04 ! x y z +1.96547738e+03 -5.21963358e+02 1.77687487e+01 ! vx vy vz +671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill +1.20422311e+04 !particle radius in m +8.00394990e+06 5.03858815e+06 -4.02327990e+04 ! x y z +-1.10710067e+03 1.81715883e+03 -6.62734475e+00 ! vx vy vz +672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill +4.82177442e+03 !particle radius in m +5.34986811e+06 9.22950468e+06 4.90186732e+04 ! x y z +-1.74088881e+03 9.82932786e+02 -1.91216218e+01 ! vx vy vz +673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill +1.08639605e+04 !particle radius in m +-8.64795237e+06 5.41831010e+06 1.55017414e+04 ! x y z +-1.07745389e+03 -1.74276883e+03 -5.97570489e-01 ! vx vy vz +674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill +1.14293347e+04 !particle radius in m +-1.11663224e+07 -4.36971602e+05 9.93397534e+04 ! x y z +6.60642469e+01 -1.97245979e+03 1.63719711e+01 ! vx vy vz +675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill +1.23198504e+04 !particle radius in m +-8.94315217e+06 -6.59985744e+06 1.41574538e+04 ! x y z +1.12488382e+03 -1.60471763e+03 9.42200485e+00 ! vx vy vz +676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill +1.01033638e+04 !particle radius in m +1.92430034e+07 -3.89888242e+06 -5.57809830e+04 ! x y z +2.98708757e+02 1.44758503e+03 -4.72165311e+00 ! vx vy vz +677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill +1.27245467e+04 !particle radius in m +8.73120403e+06 5.22305398e+06 7.59670115e+04 ! x y z +-1.07719201e+03 1.76393373e+03 -6.61792923e+00 ! vx vy vz +678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill +1.26946618e+04 !particle radius in m +1.09108942e+07 -4.65832942e+06 -4.02366251e+03 ! x y z +7.47562985e+02 1.75464824e+03 8.16488922e+00 ! vx vy vz +679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill +8.38895796e+03 !particle radius in m +5.82034293e+06 1.07112512e+07 7.55785697e+03 ! x y z +-1.63892001e+03 9.00112405e+02 -1.94858021e+00 ! vx vy vz +680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill +9.71711751e+03 !particle radius in m +6.68559809e+06 9.37557356e+06 -1.92332279e+03 ! x y z +-1.58295492e+03 1.11037420e+03 1.83307218e+00 ! vx vy vz +681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill +1.06624826e+04 !particle radius in m +-3.28943607e+06 9.87837716e+06 6.05814516e+04 ! x y z +-1.92629942e+03 -6.22180329e+02 4.50728559e+00 ! vx vy vz +682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill +9.27733226e+03 !particle radius in m +-6.01449513e+06 1.14226051e+07 3.09092202e+04 ! x y z +-1.62789379e+03 -8.28450934e+02 6.54251208e+00 ! vx vy vz +683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill +1.13339954e+04 !particle radius in m +1.46501935e+07 3.52597046e+06 -1.53479325e+05 ! x y z +-3.94464542e+02 1.63555361e+03 -6.95224479e-01 ! vx vy vz +684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill +1.29748793e+04 !particle radius in m +7.30587232e+06 5.82342150e+06 -1.66262680e+04 ! x y z +-1.33758368e+03 1.67374780e+03 1.03808342e+01 ! vx vy vz +685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill +5.72852320e+03 !particle radius in m +-8.28665070e+06 -1.08630233e+07 1.59771667e+04 ! x y z +1.42279548e+03 -1.06221837e+03 -1.00287654e+01 ! vx vy vz +686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill +1.20552459e+04 !particle radius in m +-8.85367709e+06 1.92824073e+06 -5.71899980e+04 ! x y z +-4.56904898e+02 -2.11490226e+03 1.50573635e+00 ! vx vy vz +687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill +1.23258503e+04 !particle radius in m +-6.98192323e+06 -1.72685946e+07 7.38110386e+04 ! x y z +1.40350544e+03 -5.84590529e+02 -9.01131651e+00 ! vx vy vz +688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill +6.14344779e+03 !particle radius in m +1.43686835e+07 2.23609646e+06 2.55670087e+04 ! x y z +-2.46269150e+02 1.69322706e+03 -3.07491540e+00 ! vx vy vz +689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill +7.50131728e+03 !particle radius in m +7.08335501e+06 1.12432588e+07 -7.04507229e+04 ! x y z +-1.52929946e+03 9.66536263e+02 -2.79918979e+00 ! vx vy vz +690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill +8.70300381e+03 !particle radius in m +-4.60069395e+06 1.05653500e+07 1.04296802e+05 ! x y z +-1.76684768e+03 -7.81938520e+02 -2.29915803e+00 ! vx vy vz +691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill +8.40614880e+03 !particle radius in m +8.19262513e+06 -3.58191579e+06 -3.30652024e+04 ! x y z +8.70670545e+02 2.01088754e+03 -5.27792880e-01 ! vx vy vz +692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill +1.23024549e+04 !particle radius in m +3.89494213e+06 9.08725205e+06 -2.39743102e+04 ! x y z +-1.90805368e+03 7.88330663e+02 -9.72060594e+00 ! vx vy vz +693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill +6.75337616e+03 !particle radius in m +2.21339346e+06 9.86538825e+06 -8.87149741e+04 ! x y z +-2.00534067e+03 4.38594263e+02 1.01837964e+01 ! vx vy vz +694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill +1.20886232e+04 !particle radius in m +4.10968486e+06 1.23907663e+07 5.33325146e+04 ! x y z +-1.71807002e+03 5.39202987e+02 -6.19076268e+00 ! vx vy vz +695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill +1.09493990e+04 !particle radius in m +1.04073429e+07 2.67129136e+06 9.54333931e+04 ! x y z +-5.09495924e+02 1.93427487e+03 8.54877840e+00 ! vx vy vz +696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill +3.97566200e+03 !particle radius in m +-4.09255175e+06 -9.53753075e+06 -7.50959611e+04 ! x y z +1.86269642e+03 -8.02231358e+02 -1.43161769e+00 ! vx vy vz +697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill +4.59855003e+03 !particle radius in m +4.36723976e+06 -9.66553779e+06 -1.64558916e+04 ! x y z +1.84776304e+03 7.98021641e+02 5.78355557e+00 ! vx vy vz +698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill +9.21904680e+03 !particle radius in m +8.53951718e+06 -2.54525107e+06 -7.04047773e+04 ! x y z +6.28921216e+02 2.09901050e+03 1.15726955e+01 ! vx vy vz +699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill +8.71525146e+03 !particle radius in m +7.32788955e+06 -5.94137181e+06 -9.04304047e+04 ! x y z +1.34115379e+03 1.65561581e+03 7.08036612e+00 ! vx vy vz +700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill +1.22524569e+04 !particle radius in m +6.71737923e+06 9.71600170e+06 5.06660922e+04 ! x y z +-1.56559808e+03 1.08107605e+03 -6.49532539e-03 ! vx vy vz +701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill +5.41816288e+03 !particle radius in m +-7.03605741e+06 6.85389332e+06 -2.57563829e+04 ! x y z +-1.44734013e+03 -1.50933987e+03 1.28526631e+01 ! vx vy vz +702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill +6.43059110e+03 !particle radius in m +1.83405474e+07 1.00792626e+07 -9.20229382e+04 ! x y z +-7.18799940e+02 1.23921438e+03 2.48945179e+00 ! vx vy vz +703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill +7.67198789e+03 !particle radius in m +5.23940562e+06 1.75022888e+07 -5.98430417e+04 ! x y z +-1.46565915e+03 4.46482377e+02 2.11785409e+01 ! vx vy vz +704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill +9.33516932e+03 !particle radius in m +1.19175118e+07 -1.16543017e+07 5.30530426e+04 ! x y z +1.10958275e+03 1.15270442e+03 5.72450113e+00 ! vx vy vz +705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill +7.83793078e+03 !particle radius in m +-8.96838687e+06 2.63897043e+06 -2.17897557e+04 ! x y z +-6.07622874e+02 -2.06310065e+03 -4.59651947e+00 ! vx vy vz +706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill +6.66863210e+03 !particle radius in m +-6.04898231e+06 -6.86358884e+06 5.57406610e+04 ! x y z +1.61956515e+03 -1.43598669e+03 -4.59300568e+00 ! vx vy vz +707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill +1.20949508e+04 !particle radius in m +7.90216623e+06 -1.09814809e+07 5.19189450e+04 ! x y z +1.45343692e+03 1.03872925e+03 -2.28298311e+00 ! vx vy vz +708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill +1.26037782e+04 !particle radius in m +9.57669296e+05 -1.30387879e+07 7.61951879e+04 ! x y z +1.80738232e+03 1.29379874e+02 -1.14266147e+01 ! vx vy vz +709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill +9.39937703e+03 !particle radius in m +-2.70230310e+06 8.62076168e+06 -2.22406079e+04 ! x y z +-2.07446913e+03 -6.54424485e+02 -1.11116533e+01 ! vx vy vz +710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill +9.83695076e+03 !particle radius in m +-3.80463073e+06 -1.65753622e+07 1.47762416e+04 ! x y z +1.54780534e+03 -3.56129540e+02 4.67798248e+00 ! vx vy vz +711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill +1.25677546e+04 !particle radius in m +1.97818140e+07 7.24503831e+06 4.34973562e+04 ! x y z +-5.06413028e+02 1.32512350e+03 5.73956860e+00 ! vx vy vz +712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill +4.63734443e+03 !particle radius in m +-2.79050068e+06 -1.34910639e+07 4.33089266e+04 ! x y z +1.72889764e+03 -3.49089932e+02 -1.94775120e+01 ! vx vy vz +713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill +1.05934634e+04 !particle radius in m +1.07844804e+07 1.29386712e+07 2.64893081e+04 ! x y z +-1.21296556e+03 1.03104861e+03 -8.93637679e+00 ! vx vy vz +714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill +7.74266422e+03 !particle radius in m +-1.47784670e+07 -2.60738447e+06 1.11630430e+05 ! x y z +3.23911460e+02 -1.65880207e+03 4.54571842e+00 ! vx vy vz +715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill +3.95912515e+03 !particle radius in m +5.07682372e+05 -1.30372405e+07 -1.85229557e+04 ! x y z +1.82615720e+03 7.82099311e+01 -4.18927265e+00 ! vx vy vz +716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill +7.09905909e+03 !particle radius in m +-1.18244362e+07 -4.31687046e+06 -7.18542331e+04 ! x y z +6.12658121e+02 -1.74672302e+03 1.21397025e-01 ! vx vy vz +717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill +4.26156427e+03 !particle radius in m +-3.54824820e+06 -8.30536307e+06 -8.90981624e+03 ! x y z +1.97998336e+03 -8.85057403e+02 -2.11344381e+01 ! vx vy vz +718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill +1.08792174e+04 !particle radius in m +1.62346436e+06 -8.92811589e+06 -3.60195557e+03 ! x y z +2.15086991e+03 3.98636159e+02 2.48432648e+01 ! vx vy vz +719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill +5.87800644e+03 !particle radius in m +-1.15733556e+07 -1.25115260e+07 1.46624511e+04 ! x y z +1.15579598e+03 -1.08828537e+03 -2.12261933e-01 ! vx vy vz +720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill +4.14296182e+03 !particle radius in m +-1.08417724e+07 1.69081263e+06 7.24119490e+04 ! x y z +-3.09034576e+02 -1.94519167e+03 -3.85658993e+00 ! vx vy vz +721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill +4.79422292e+03 !particle radius in m +3.49544878e+05 1.19517692e+07 2.11344945e+04 ! x y z +-1.87363529e+03 3.53402969e+01 5.71853498e+00 ! vx vy vz +722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill +9.96836855e+03 !particle radius in m +-6.32504194e+06 7.74988563e+06 -3.04663654e+04 ! x y z +-1.60640404e+03 -1.28494821e+03 3.03961828e+01 ! vx vy vz +723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill +8.46501102e+03 !particle radius in m +-1.24177769e+07 -1.38486640e+07 -1.01520582e+04 ! x y z +1.15690921e+03 -9.88251041e+02 4.69156127e+00 ! vx vy vz +724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill +1.21273232e+04 !particle radius in m +1.03771542e+07 -3.70291911e+06 1.08877147e+04 ! x y z +6.25781397e+02 1.86199758e+03 -8.89718339e+00 ! vx vy vz +725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill +5.14868362e+03 !particle radius in m +-4.66823976e+06 -8.26435407e+06 2.26583539e+04 ! x y z +1.84983887e+03 -1.05552707e+03 1.56706480e+01 ! vx vy vz +726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill +4.55784078e+03 !particle radius in m +4.62468583e+06 7.54223542e+06 -1.61944374e+04 ! x y z +-1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz +728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill +9.45460600e+03 !particle radius in m +-2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z +-1.35813181e+03 9.03958337e+00 -3.15567273e+00 ! vx vy vz +729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill +9.76786728e+03 !particle radius in m +-6.52967648e+06 8.82305239e+06 -1.26732573e+04 ! x y z +-1.57282686e+03 -1.17622288e+03 1.39580799e+00 ! vx vy vz +730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill +1.06030438e+04 !particle radius in m +1.77913234e+06 9.53045041e+06 3.10075017e+04 ! x y z +-2.05302630e+03 3.75004563e+02 1.58931971e+01 ! vx vy vz +731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill +1.25260587e+04 !particle radius in m +3.58717818e+06 9.36647195e+06 -1.97615013e+04 ! x y z +-1.96178925e+03 7.11373199e+02 -1.26706515e+01 ! vx vy vz +732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill +7.95288174e+03 !particle radius in m +-2.59234296e+06 -1.50157233e+07 4.00646737e+04 ! x y z +1.65438833e+03 -2.60173941e+02 1.23164306e+01 ! vx vy vz +733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill +7.17351953e+03 !particle radius in m +9.06239327e+06 9.91334627e+05 -4.75445475e+03 ! x y z +-2.74588769e+02 2.14560267e+03 -4.58665348e+00 ! vx vy vz +734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill +1.29999162e+04 !particle radius in m +-1.32275910e+06 1.11815578e+07 -3.52932928e+04 ! x y z +-1.92926562e+03 -2.26736828e+02 1.12692641e+01 ! vx vy vz +735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill +1.02371836e+04 !particle radius in m +-1.18507495e+07 5.08791326e+05 -4.16400253e+03 ! x y z +-1.21704217e+02 -1.88175671e+03 1.06233149e+00 ! vx vy vz +736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill +1.14563699e+04 !particle radius in m +9.66851157e+06 -1.73226908e+06 -1.69082214e+04 ! x y z +3.88627413e+02 2.04608590e+03 -8.98008156e-01 ! vx vy vz +737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill +8.65882148e+03 !particle radius in m +-2.00783480e+06 -9.30718645e+06 -7.65374580e+04 ! x y z +2.06366212e+03 -4.61769702e+02 1.50556810e+01 ! vx vy vz +738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill +1.29137852e+04 !particle radius in m +5.63016627e+05 1.37971202e+07 -5.96323274e+04 ! x y z +-1.75809500e+03 5.38503245e+01 5.31257797e-01 ! vx vy vz +739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill +1.24695778e+04 !particle radius in m +9.16922325e+06 -9.63000174e+05 -3.41255650e+02 ! x y z +2.26283177e+02 2.14046849e+03 -4.83048073e+00 ! vx vy vz +740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill +4.63464147e+03 !particle radius in m +-8.86805151e+06 1.17556708e+06 5.29953219e+04 ! x y z +-2.96347767e+02 -2.18707052e+03 -3.03941376e+00 ! vx vy vz +741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill +9.03459031e+03 !particle radius in m +9.02199722e+06 -3.39632005e+06 -7.08544393e+04 ! x y z +7.55874214e+02 1.97860482e+03 5.10133054e+00 ! vx vy vz +742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill +6.79554835e+03 !particle radius in m +-3.33406678e+06 -1.03746123e+07 -4.13492713e+04 ! x y z +1.88884845e+03 -5.81374899e+02 2.44002419e+01 ! vx vy vz +743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill +4.33964341e+03 !particle radius in m +8.47272017e+06 -3.29574857e+06 4.59089313e+04 ! x y z +8.07908043e+02 2.00285924e+03 2.30278431e+01 ! vx vy vz +744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill +6.96963100e+03 !particle radius in m +-1.10174017e+07 -1.65843431e+07 -7.81778692e+04 ! x y z +1.22711770e+03 -7.92668746e+02 1.28964786e+00 ! vx vy vz +745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill +4.87663009e+03 !particle radius in m +-6.99704994e+06 -1.88546711e+07 -8.81519961e+04 ! x y z +1.37622550e+03 -5.05609550e+02 1.32065962e+00 ! vx vy vz +746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill +8.85565460e+03 !particle radius in m +3.37171440e+06 -1.03724491e+07 -2.05908462e+04 ! x y z +1.89249257e+03 5.96290076e+02 -1.16901986e+01 ! vx vy vz +747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill +9.70303009e+03 !particle radius in m +8.68817648e+05 -9.37137391e+06 -9.78603362e+04 ! x y z +2.13443213e+03 1.77136355e+02 -1.05898656e+01 ! vx vy vz +748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill +1.02227553e+04 !particle radius in m +-8.20639456e+06 4.88393438e+06 3.93769452e+04 ! x y z +-1.09602043e+03 -1.80139112e+03 -5.09189684e+00 ! vx vy vz +749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill +1.19572346e+04 !particle radius in m +-2.98729202e+06 -1.69982812e+07 -1.00361471e+02 ! x y z +1.54074333e+03 -2.84642833e+02 -7.12483576e+00 ! vx vy vz +750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill +1.10694715e+04 !particle radius in m +-1.87997669e+07 -2.87235850e+06 6.06981762e+04 ! x y z +2.30253048e+02 -1.48355775e+03 -3.20628055e+00 ! vx vy vz +751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill +1.17140974e+04 !particle radius in m +-1.67195966e+06 1.53840879e+07 1.17823799e+05 ! x y z +-1.66924292e+03 -1.76106009e+02 2.19585908e+00 ! vx vy vz +752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill +1.26586599e+04 !particle radius in m +7.45254418e+06 4.82823148e+06 -5.06675552e+03 ! x y z +-1.22839592e+03 1.82946634e+03 -1.27029622e+01 ! vx vy vz +753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill +6.99494374e+03 !particle radius in m +5.13959627e+06 7.44700588e+06 5.03758086e+04 ! x y z +-1.79330931e+03 1.22535892e+03 -1.02427731e+01 ! vx vy vz +754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill +7.21229000e+03 !particle radius in m +9.58649389e+06 5.81253530e+06 -4.39352546e+04 ! x y z +-9.88086375e+02 1.68843459e+03 -9.34405959e+00 ! vx vy vz +755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill +1.06209501e+04 !particle radius in m +5.07070035e+06 7.32312120e+06 7.18562589e+04 ! x y z +-1.79677644e+03 1.25238618e+03 1.64235819e+00 ! vx vy vz +756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill +7.60936749e+03 !particle radius in m +1.19404056e+06 1.08877947e+07 5.88658821e+03 ! x y z +-1.96662575e+03 2.29281553e+02 -1.48568063e+01 ! vx vy vz +757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill +1.21305775e+04 !particle radius in m +-9.84021278e+06 -3.40002026e+06 -6.17065432e+04 ! x y z +7.02356760e+02 -1.91960378e+03 8.28806476e+00 ! vx vy vz +758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill +5.64173558e+03 !particle radius in m +8.38364229e+06 -1.08052974e+07 -1.14971163e+05 ! x y z +1.41362762e+03 1.05030477e+03 1.33062848e-02 ! vx vy vz +759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill +4.21249068e+03 !particle radius in m +4.30913199e+06 8.44003978e+06 1.98375727e+04 ! x y z +-1.87920775e+03 9.70144357e+02 7.68922870e-02 ! vx vy vz +760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill +8.36735565e+03 !particle radius in m +9.34254133e+06 -6.72471094e+06 3.04479801e+03 ! x y z +1.13048626e+03 1.56587434e+03 1.26328276e-01 ! vx vy vz +761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill +6.82609072e+03 !particle radius in m +-3.94216440e+06 -8.13811187e+06 -2.32415480e+03 ! x y z +1.94483188e+03 -9.74054123e+02 6.56681455e+00 ! vx vy vz +762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill +9.70708677e+03 !particle radius in m +5.41429391e+06 -7.20522578e+06 5.41382285e+04 ! x y z +1.73021941e+03 1.33390146e+03 1.43673569e+00 ! vx vy vz +763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill +1.08215064e+04 !particle radius in m +-3.58069142e+06 -1.18639900e+07 -2.98112201e+04 ! x y z +1.80063833e+03 -4.84660340e+02 -1.10025267e+01 ! vx vy vz +764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill +7.07029058e+03 !particle radius in m +5.06214806e+06 -8.79684921e+06 -6.69408163e+03 ! x y z +1.77899792e+03 1.03185242e+03 -6.99222338e+00 ! vx vy vz +765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill +6.25131279e+03 !particle radius in m +2.20528884e+06 -1.13497157e+07 1.23709451e+05 ! x y z +1.88518956e+03 4.07847130e+02 -1.21144069e+01 ! vx vy vz +766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill +7.02206200e+03 !particle radius in m +5.73341973e+06 -8.10327163e+06 -2.40301967e+04 ! x y z +1.67706223e+03 1.24499901e+03 -1.26631178e+01 ! vx vy vz +767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill +9.46615418e+03 !particle radius in m +-4.07741467e+06 -8.18369428e+06 -3.25211280e+04 ! x y z +1.94858682e+03 -9.33976298e+02 3.19344234e+00 ! vx vy vz +768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill +1.08696854e+04 !particle radius in m +6.06888001e+06 6.98255626e+06 -6.90089903e+03 ! x y z +-1.60191111e+03 1.44385639e+03 1.12490936e+00 ! vx vy vz +769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill +7.40682734e+03 !particle radius in m +-1.97618366e+06 8.86960314e+06 4.14824140e+04 ! x y z +-2.09949361e+03 -4.69720145e+02 1.43384661e+01 ! vx vy vz +770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill +1.02086703e+04 !particle radius in m +-6.96997724e+05 1.14525501e+07 -2.14282591e+04 ! x y z +-1.94508975e+03 -1.20495540e+02 -1.27425570e+01 ! vx vy vz +771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill +1.08099817e+04 !particle radius in m +9.38021683e+06 3.42327658e+04 2.00501873e+04 ! x y z +-3.65841924e+01 2.11334523e+03 -1.86694989e+01 ! vx vy vz +772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill +6.31519566e+03 !particle radius in m +9.77614427e+06 2.18126141e+06 4.93063169e+04 ! x y z +-4.63942946e+02 2.03097699e+03 3.68237367e+00 ! vx vy vz +773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill +6.36286244e+03 !particle radius in m +1.03665232e+06 8.86346829e+06 1.05688800e+05 ! x y z +-2.16165047e+03 3.02954637e+02 -2.55519521e+01 ! vx vy vz +774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill +7.01416117e+03 !particle radius in m +1.03495591e+07 -4.25164616e+06 3.58740907e+04 ! x y z +7.33662495e+02 1.82348291e+03 -6.28887722e-01 ! vx vy vz +775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill +9.03178903e+03 !particle radius in m +-2.38406558e+06 9.62250108e+06 1.02937972e+05 ! x y z +-2.01173579e+03 -4.55947194e+02 5.72154417e+00 ! vx vy vz +776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill +8.64887224e+03 !particle radius in m +-1.07734704e+07 -1.45075387e+06 -2.66041480e+04 ! x y z +2.65092409e+02 -1.95941508e+03 3.83593904e+00 ! vx vy vz +777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill +4.59186701e+03 !particle radius in m +4.74101076e+06 -1.21984912e+07 3.79772198e+04 ! x y z +1.69258599e+03 6.30621386e+02 2.06381502e+00 ! vx vy vz +778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill +1.07150758e+04 !particle radius in m +7.43989020e+06 -5.63873599e+06 -5.85929699e+04 ! x y z +1.31667387e+03 1.70317955e+03 9.52560643e+00 ! vx vy vz +779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill +1.28849886e+04 !particle radius in m +-5.38823915e+06 1.48268009e+07 -2.14296811e+04 ! x y z +-1.54283155e+03 -5.57159624e+02 5.54783358e+00 ! vx vy vz +780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill +8.11825531e+03 !particle radius in m +2.66724929e+06 -8.66471427e+06 1.00760731e+04 ! x y z +2.07447879e+03 6.47409518e+02 2.06301461e+01 ! vx vy vz +781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill +6.32533652e+03 !particle radius in m +-9.34887042e+06 -7.71203345e+05 -2.80106217e+04 ! x y z +1.56382920e+02 -2.13449580e+03 1.77972684e+01 ! vx vy vz +782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill +6.47451347e+03 !particle radius in m +2.11853462e+06 2.14346842e+07 -1.31619878e+05 ! x y z +-1.40220812e+03 1.23003628e+02 1.01803056e+01 ! vx vy vz +783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill +9.73096804e+03 !particle radius in m +8.93418422e+06 -1.26163769e+06 -6.14650218e+03 ! x y z +2.70831749e+02 2.17084302e+03 -6.49066157e+00 ! vx vy vz +784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill +1.21985861e+04 !particle radius in m +-3.36304606e+06 -8.68475569e+06 4.22905473e+04 ! x y z +2.01382441e+03 -7.30247568e+02 -1.59257408e+01 ! vx vy vz +785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill +1.18904701e+04 !particle radius in m +8.81465687e+06 -2.36248215e+06 6.67259873e+04 ! x y z +5.93111329e+02 2.09930862e+03 3.04112228e+00 ! vx vy vz +786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill +1.15252633e+04 !particle radius in m +-4.21295680e+06 -8.25900507e+06 -3.19234838e+03 ! x y z +1.92170180e+03 -9.79177619e+02 -8.10728388e+00 ! vx vy vz +787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill +8.60360757e+03 !particle radius in m +9.93364443e+06 8.45966410e+06 -7.67940035e+04 ! x y z +-1.17931717e+03 1.37394453e+03 -8.05856772e+00 ! vx vy vz +788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill +1.16460986e+04 !particle radius in m +1.04612906e+06 1.07823989e+07 -7.20248309e+04 ! x y z +-1.97918359e+03 1.84768969e+02 3.98691690e+00 ! vx vy vz +789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill +7.05875544e+03 !particle radius in m +-1.20383776e+07 -1.30487787e+07 -1.17822971e+05 ! x y z +1.15323425e+03 -1.04821079e+03 -2.09214306e+01 ! vx vy vz +790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill +1.22523351e+04 !particle radius in m +-6.25721631e+06 -7.48338074e+06 6.58872777e+04 ! x y z +1.60724089e+03 -1.35523949e+03 1.79073191e+01 ! vx vy vz +791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill +9.90119508e+03 !particle radius in m +-1.98852887e+06 -1.16234208e+07 3.45760659e+04 ! x y z +1.87230049e+03 -3.33072319e+02 1.96763510e+00 ! vx vy vz +792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill +6.39775874e+03 !particle radius in m +-1.83445389e+06 -1.01663777e+07 -2.16218566e+04 ! x y z +1.99731190e+03 -3.10283279e+02 -1.07270295e+01 ! vx vy vz +793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill +1.28561305e+04 !particle radius in m +-6.68458169e+06 -1.03038987e+07 1.06554338e+05 ! x y z +1.55802844e+03 -1.01074571e+03 -1.53515092e+00 ! vx vy vz +794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill +6.64439416e+03 !particle radius in m +-9.54428205e+06 -1.77688297e+06 -2.10926647e+04 ! x y z +3.75374809e+02 -2.06650760e+03 -1.22766897e+00 ! vx vy vz +795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill +4.45221314e+03 !particle radius in m +3.13901663e+06 1.32731582e+07 -8.32687929e+04 ! x y z +-1.71730983e+03 4.23145043e+02 4.63891808e+00 ! vx vy vz +796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill +8.94314414e+03 !particle radius in m +-2.33540859e+06 9.13065765e+06 7.06589924e+03 ! x y z +-2.06497311e+03 -5.14043891e+02 1.51818535e+01 ! vx vy vz +797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill +9.79534618e+03 !particle radius in m +1.36994576e+07 -4.67366094e+06 7.44829731e+04 ! x y z +5.44944889e+02 1.63399910e+03 -4.32898441e+00 ! vx vy vz +798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill +3.76668925e+03 !particle radius in m +-7.37395287e+06 5.09151414e+06 2.55133554e+04 ! x y z +-1.23099773e+03 -1.81388400e+03 -6.90022105e+00 ! vx vy vz +799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill +1.06439337e+04 !particle radius in m +-4.36095303e+06 9.17263674e+06 5.77572160e+04 ! x y z +-1.86099387e+03 -8.92089911e+02 1.33050454e+01 ! vx vy vz +800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill +1.01319198e+04 !particle radius in m +6.09028041e+05 -9.05678858e+06 -3.59192636e+04 ! x y z +2.16064013e+03 1.12524119e+02 -1.28041635e+01 ! vx vy vz +801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill +4.11065306e+03 !particle radius in m +8.74913197e+06 -1.47341693e+06 -9.62438055e+04 ! x y z +3.78746478e+02 2.16207809e+03 -2.44021093e+01 ! vx vy vz +802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill +1.30483609e+04 !particle radius in m +-8.58911286e+06 2.87403478e+06 1.58823639e+02 ! x y z +-7.16776888e+02 -2.04412274e+03 5.09362192e-01 ! vx vy vz +803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill +1.07178069e+04 !particle radius in m +8.48527058e+06 -9.20798638e+06 -1.02188880e+05 ! x y z +1.36994712e+03 1.25405390e+03 1.06840389e+01 ! vx vy vz +804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill +1.12118643e+04 !particle radius in m +-5.30902937e+06 7.21606500e+06 6.02327354e+04 ! x y z +-1.77499753e+03 -1.28053606e+03 -3.40605365e+00 ! vx vy vz +805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill +4.96028208e+03 !particle radius in m +-1.77739170e+07 5.38979777e+06 1.55930024e+05 ! x y z +-4.43393580e+02 -1.45455644e+03 -2.70314341e-01 ! vx vy vz +806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill +5.28698448e+03 !particle radius in m +-8.43967863e+06 -7.92404795e+06 -2.34275469e+04 ! x y z +1.33453164e+03 -1.37751924e+03 -2.53751841e+00 ! vx vy vz +807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill +1.00412476e+04 !particle radius in m +4.71451819e+06 -7.46352121e+06 1.62287314e+03 ! x y z +1.84921224e+03 1.19850662e+03 1.99232615e+01 ! vx vy vz +808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill +5.43374958e+03 !particle radius in m +1.87652013e+06 -1.11420807e+07 1.38944441e+05 ! x y z +1.93560918e+03 3.25150073e+02 2.51765258e+00 ! vx vy vz +809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill +1.25612659e+04 !particle radius in m +-9.29220692e+06 2.16599787e+06 -4.38900389e+04 ! x y z +-4.87620074e+02 -2.05624014e+03 4.85721843e-01 ! vx vy vz +810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill +8.29428788e+03 !particle radius in m +1.39531950e+06 1.01422470e+07 -9.71755919e+04 ! x y z +-2.02592294e+03 3.03255899e+02 5.57961818e+00 ! vx vy vz +811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill +7.18660555e+03 !particle radius in m +1.17947013e+07 7.40001699e+05 2.51672426e+04 ! x y z +-1.17060805e+02 1.90660700e+03 5.44656130e+00 ! vx vy vz +812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill +1.12581502e+04 !particle radius in m +-7.90433536e+06 6.73266024e+06 -3.50969312e+04 ! x y z +-1.30204874e+03 -1.55681461e+03 5.35229797e+00 ! vx vy vz +813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill +5.64021687e+03 !particle radius in m +1.20372535e+07 -7.49092702e+06 6.74822230e+04 ! x y z +8.91458581e+02 1.47943776e+03 -9.74770857e+00 ! vx vy vz +814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill +6.98217592e+03 !particle radius in m +6.85752801e+06 6.02181411e+06 3.38939759e+03 ! x y z +-1.45444163e+03 1.59683746e+03 2.15463449e+00 ! vx vy vz +815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill +9.64610498e+03 !particle radius in m +1.65844804e+07 4.81034890e+06 4.61229376e+04 ! x y z +-4.20560106e+02 1.53234812e+03 -2.07164443e+00 ! vx vy vz +816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill +9.97612135e+03 !particle radius in m +-1.11130797e+07 -3.78359570e+06 -1.84960756e+03 ! x y z +5.85052492e+02 -1.82483094e+03 -5.22659903e+00 ! vx vy vz +817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill +7.74203039e+03 !particle radius in m +4.58513442e+06 1.02699278e+07 -3.18341648e+04 ! x y z +-1.77353935e+03 8.15172006e+02 -3.48615440e+00 ! vx vy vz +818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill +9.54525817e+03 !particle radius in m +7.69154925e+06 -4.52108417e+06 1.90521640e+04 ! x y z +1.13843297e+03 1.87858469e+03 1.37511342e+00 ! vx vy vz +819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill +6.87114114e+03 !particle radius in m +-1.15969434e+07 3.52559239e+06 5.16907637e+04 ! x y z +-5.69477663e+02 -1.78769915e+03 -1.33023745e+01 ! vx vy vz +820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill +1.00913836e+04 !particle radius in m +5.95447776e+06 -7.82496208e+06 3.09991808e+04 ! x y z +1.65084498e+03 1.22028250e+03 -2.33382836e+00 ! vx vy vz +821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill +6.05977746e+03 !particle radius in m +-3.93089529e+06 1.17766068e+07 -6.72321552e+03 ! x y z +-1.75059713e+03 -6.17947765e+02 -1.16753307e+01 ! vx vy vz +822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill +1.27297027e+04 !particle radius in m +-9.38145643e+06 5.61032393e+05 -2.62604457e+04 ! x y z +-1.66051140e+02 -2.13147141e+03 -1.91808715e+01 ! vx vy vz +823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill +1.07838641e+04 !particle radius in m +-3.46243172e+06 -9.75229088e+06 -6.99128436e+04 ! x y z +1.92977079e+03 -6.78308349e+02 -2.04030914e-01 ! vx vy vz +824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill +7.49949684e+03 !particle radius in m +2.14173079e+06 -1.00855853e+07 1.33615118e+04 ! x y z +2.00549502e+03 4.10286548e+02 1.33463171e+01 ! vx vy vz +825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill +4.66653709e+03 !particle radius in m +2.97083227e+06 8.61004661e+06 -5.77896258e+04 ! x y z +-2.03526397e+03 6.94270314e+02 -2.15105297e+00 ! vx vy vz +826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill +5.95586641e+03 !particle radius in m +-1.12041316e+07 8.43574386e+06 6.88522376e+04 ! x y z +-1.04307644e+03 -1.40491020e+03 6.49036289e+00 ! vx vy vz +827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill +7.11632779e+03 !particle radius in m +-4.35495075e+06 9.47025259e+06 -5.09915025e+04 ! x y z +-1.85819690e+03 -8.15466077e+02 4.09008068e+00 ! vx vy vz +828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill +5.57206216e+03 !particle radius in m +4.78116976e+06 -1.59784331e+07 -5.36968327e+04 ! x y z +1.53329565e+03 4.46997350e+02 4.63714714e+00 ! vx vy vz +829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill +8.50997184e+03 !particle radius in m +8.23993793e+06 -5.31139465e+06 6.29574603e+04 ! x y z +1.13278257e+03 1.76205209e+03 -8.47937534e-01 ! vx vy vz +830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill +1.26036743e+04 !particle radius in m +-9.63212471e+06 3.36590765e+06 -1.07062454e+04 ! x y z +-6.84552644e+02 -1.94265665e+03 2.94400282e+00 ! vx vy vz +831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill +4.86272166e+03 !particle radius in m +9.83116842e+06 6.61447762e+06 -5.12468956e+04 ! x y z +-1.03243293e+03 1.62443233e+03 2.38757589e+00 ! vx vy vz +832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill +5.75359413e+03 !particle radius in m +9.79171021e+06 -2.73890246e+06 8.20795285e+04 ! x y z +5.70999291e+02 1.96925843e+03 2.38407769e+00 ! vx vy vz +833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill +8.31975532e+03 !particle radius in m +-3.31575865e+06 9.74773076e+06 -6.68906771e+04 ! x y z +-1.91945157e+03 -6.80055572e+02 7.05071034e-01 ! vx vy vz +834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill +1.11561412e+04 !particle radius in m +2.59402712e+06 1.41195960e+07 7.65317352e+04 ! x y z +-1.69390135e+03 3.03445651e+02 1.51567072e+01 ! vx vy vz +835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill +7.06120023e+03 !particle radius in m +-2.50324523e+06 1.33583355e+07 -1.06069614e+05 ! x y z +-1.73502096e+03 -3.33244830e+02 -4.27813580e+00 ! vx vy vz +836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill +1.08855562e+04 !particle radius in m +-4.06673848e+06 -1.16023946e+07 4.08896853e+04 ! x y z +1.75606757e+03 -6.22462152e+02 1.70339271e+01 ! vx vy vz +837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill +8.51827363e+03 !particle radius in m +4.61087222e+06 -8.97079451e+06 -2.30678380e+04 ! x y z +1.81563298e+03 9.45814603e+02 2.66915276e+01 ! vx vy vz +838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill +9.98376791e+03 !particle radius in m +9.96934676e+06 5.38891014e+06 9.88781435e+04 ! x y z +-9.81582718e+02 1.71074828e+03 -3.99838208e+00 ! vx vy vz +839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill +6.46366364e+03 !particle radius in m +4.99758772e+06 -7.50759705e+06 -5.25299733e+04 ! x y z +1.80703397e+03 1.21678053e+03 1.90540898e+01 ! vx vy vz +840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill +8.47913036e+03 !particle radius in m +-6.69441800e+06 -8.86176278e+06 2.53388174e+04 ! x y z +1.56709902e+03 -1.16434302e+03 -9.30903825e+00 ! vx vy vz +841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill +6.33780436e+03 !particle radius in m +-4.38549443e+06 -8.30442031e+06 2.47931467e+04 ! x y z +1.89780640e+03 -1.00273544e+03 3.24648282e-01 ! vx vy vz +842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill +4.58059717e+03 !particle radius in m +9.52295494e+06 -1.31453589e+07 -2.84882159e+04 ! x y z +1.32429236e+03 9.32305231e+02 -7.78758641e+00 ! vx vy vz +843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill +4.96572933e+03 !particle radius in m +8.16032081e+06 -3.83914183e+06 -4.53668688e+04 ! x y z +9.48405336e+02 1.95482944e+03 -1.90024465e+01 ! vx vy vz +844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill +1.18058616e+04 !particle radius in m +8.84185924e+06 4.91012210e+06 -4.89421191e+04 ! x y z +-9.91478880e+02 1.77538667e+03 -7.79856416e+00 ! vx vy vz +845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill +4.55512603e+03 !particle radius in m +1.32256008e+07 4.60711564e+06 3.20195320e+04 ! x y z +-5.72824835e+02 1.63498483e+03 -8.94623266e+00 ! vx vy vz +846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill +9.31206622e+03 !particle radius in m +1.83600084e+07 -3.67172737e+06 -1.03387529e+05 ! x y z +2.82478801e+02 1.48749998e+03 -3.61587063e+00 ! vx vy vz +847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill +1.08121011e+04 !particle radius in m +5.50505051e+06 7.32332854e+06 3.97380095e+04 ! x y z +-1.73540458e+03 1.27934877e+03 1.31767249e+00 ! vx vy vz +848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill +1.19792790e+04 !particle radius in m +-7.13326386e+06 1.32178302e+07 5.30241465e+04 ! x y z +-1.47659146e+03 -7.82263656e+02 -2.09914908e+01 ! vx vy vz +849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill +4.27383343e+03 !particle radius in m +-4.61218845e+06 1.05730170e+07 -6.60200193e+04 ! x y z +-1.78205321e+03 -7.56922993e+02 8.78119173e+00 ! vx vy vz +850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill +1.14640744e+04 !particle radius in m +-4.56090890e+06 1.14927598e+07 1.08391052e+05 ! x y z +-1.73824893e+03 -6.90093039e+02 -9.72090948e+00 ! vx vy vz +851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill +5.67210117e+03 !particle radius in m +-1.26164008e+07 8.37507124e+06 -9.30825805e+04 ! x y z +-9.25052993e+02 -1.39347287e+03 7.98354596e+00 ! vx vy vz +852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill +6.97236746e+03 !particle radius in m +6.53000802e+05 -9.25877071e+06 7.96919181e+03 ! x y z +2.13254376e+03 1.58194267e+02 -3.04691883e+00 ! vx vy vz +853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill +1.00860395e+04 !particle radius in m +7.29493071e+06 -5.15859210e+06 -4.34667082e+04 ! x y z +1.28346456e+03 1.77485302e+03 1.13165377e+01 ! vx vy vz +854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill +3.79587448e+03 !particle radius in m +-3.19192697e+06 -8.59789141e+06 9.38867695e+04 ! x y z +2.03734470e+03 -7.26452634e+02 -1.17305762e+00 ! vx vy vz +855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill +9.54848620e+03 !particle radius in m +9.47082398e+06 -1.09607932e+06 4.83920593e+04 ! x y z +2.14821600e+02 2.11542107e+03 1.20322954e+00 ! vx vy vz +856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill +9.67403073e+03 !particle radius in m +-6.95192799e+06 -5.46206006e+06 2.82885807e+04 ! x y z +1.36201469e+03 -1.74685442e+03 2.47593903e+01 ! vx vy vz +857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill +6.47356387e+03 !particle radius in m +-3.08185810e+06 9.58349756e+06 6.94451226e+03 ! x y z +-1.96338979e+03 -6.65837368e+02 -2.04503843e+01 ! vx vy vz +858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill +1.23980946e+04 !particle radius in m +1.65978586e+07 7.58110647e+06 -7.73180642e+04 ! x y z +-6.28856477e+02 1.39136938e+03 1.44879781e+01 ! vx vy vz +859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill +1.11769229e+04 !particle radius in m +-6.68285720e+06 6.69572721e+06 -2.14964381e+03 ! x y z +-1.53479675e+03 -1.49178194e+03 -5.71100381e+00 ! vx vy vz +860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill +5.41215219e+03 !particle radius in m +-4.42591408e+06 -1.21925806e+07 -3.63637070e+04 ! x y z +1.69944504e+03 -6.60923085e+02 -1.17185754e+00 ! vx vy vz +861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill +9.40989476e+03 !particle radius in m +9.48116594e+06 -3.86455243e+05 -1.03947327e+05 ! x y z +6.54406678e+01 2.14729925e+03 -2.03989342e+01 ! vx vy vz +862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill +9.76055838e+03 !particle radius in m +9.75283383e+06 -3.26934404e+06 -6.67089834e+03 ! x y z +6.55184968e+02 1.92454684e+03 -2.06876177e+00 ! vx vy vz +863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill +9.82795810e+03 !particle radius in m +7.92293154e+06 -5.92949642e+06 8.08421712e+04 ! x y z +1.22209539e+03 1.67954941e+03 6.77640716e+00 ! vx vy vz +864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill +1.10112267e+04 !particle radius in m +-9.44726757e+06 -1.72479642e+06 -5.06771776e+04 ! x y z +3.57081323e+02 -2.08684682e+03 -1.01697089e+00 ! vx vy vz +865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill +8.85599534e+03 !particle radius in m +-6.23129670e+06 7.19526623e+06 1.83941420e+04 ! x y z +-1.59813509e+03 -1.40609078e+03 1.94595479e+01 ! vx vy vz +866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill +1.13935271e+04 !particle radius in m +-5.60132388e+06 -7.32299736e+06 -1.77571471e+04 ! x y z +1.71338179e+03 -1.30416800e+03 7.07200448e+00 ! vx vy vz +867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill +9.21714362e+03 !particle radius in m +1.94866969e+07 6.41556967e+06 -8.78618223e+04 ! x y z +-4.47022162e+02 1.36561417e+03 1.23555791e+00 ! vx vy vz +868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill +9.19760498e+03 !particle radius in m +1.24313845e+07 -1.03009928e+07 2.91007895e+04 ! x y z +1.03299438e+03 1.26303931e+03 1.43272483e+01 ! vx vy vz +869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill +6.15328661e+03 !particle radius in m +-1.88463700e+07 3.02324922e+06 -1.45896688e+05 ! x y z +-2.31662436e+02 -1.48292769e+03 2.63168505e+00 ! vx vy vz +870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill +7.76210648e+03 !particle radius in m +1.40546567e+07 -3.88347486e+06 6.81896661e+04 ! x y z +4.43567006e+02 1.65056081e+03 4.01577354e+00 ! vx vy vz +871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill +4.21738363e+03 !particle radius in m +1.78412490e+06 -1.05393977e+07 -1.79940495e+04 ! x y z +1.97327292e+03 3.39702264e+02 -1.56396341e+01 ! vx vy vz +872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill +1.24124221e+04 !particle radius in m +3.48276485e+06 1.24683799e+07 5.71803206e+04 ! x y z +-1.74011773e+03 4.74503606e+02 9.70062988e+00 ! vx vy vz +873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill +6.19423818e+03 !particle radius in m +9.54521899e+06 -4.27421825e+06 -7.89921579e+04 ! x y z +8.34463883e+02 1.83314396e+03 -1.96687832e+01 ! vx vy vz +874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill +1.07595049e+04 !particle radius in m +-2.90897541e+06 -9.97345628e+06 4.60433948e+04 ! x y z +1.93634809e+03 -5.84664071e+02 -6.64958448e-01 ! vx vy vz +875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill +1.22230660e+04 !particle radius in m +4.25415099e+06 -1.14325644e+07 5.00958816e+04 ! x y z +1.75951768e+03 6.44587122e+02 6.30692655e+00 ! vx vy vz +876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill +7.10923390e+03 !particle radius in m +-1.58007262e+07 -7.45105168e+06 -3.06690137e+04 ! x y z +6.82944765e+02 -1.41301363e+03 1.04453850e+01 ! vx vy vz +877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill +6.57693777e+03 !particle radius in m +8.25741284e+06 4.39411348e+06 3.78949633e+04 ! x y z +-9.99781284e+02 1.87441904e+03 -3.21699586e+00 ! vx vy vz +878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill +6.56801971e+03 !particle radius in m +2.42332014e+06 2.17054415e+07 -5.36680055e+04 ! x y z +-1.40455533e+03 1.37752686e+02 -3.67471579e+00 ! vx vy vz +879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill +7.16699767e+03 !particle radius in m +-1.11338384e+07 -2.20174819e+06 -5.08310388e+04 ! x y z +3.88427106e+02 -1.90213725e+03 -1.60447088e+01 ! vx vy vz +880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill +1.08784389e+04 !particle radius in m +-1.83729146e+07 1.19076985e+06 -1.72335144e+04 ! x y z +-9.88243619e+01 -1.51803622e+03 2.27806536e+01 ! vx vy vz +881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill +1.04495767e+04 !particle radius in m +-6.50873442e+06 -1.07127054e+07 -3.34128129e+03 ! x y z +1.57607258e+03 -9.74525706e+02 1.08233475e+01 ! vx vy vz +882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill +1.07365873e+04 !particle radius in m +-2.66932388e+06 -1.08052729e+07 -7.29995052e+04 ! x y z +1.89275637e+03 -5.06517897e+02 -3.33939112e+00 ! vx vy vz +883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill +1.11350375e+04 !particle radius in m +-8.68309984e+06 8.73295385e+06 2.12890448e+04 ! x y z +-1.33510513e+03 -1.35075217e+03 2.94732064e+00 ! vx vy vz +884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill +4.15634119e+03 !particle radius in m +-9.01680783e+06 -6.03891596e+06 -1.83491289e+04 ! x y z +1.08610553e+03 -1.66661637e+03 5.40990322e+00 ! vx vy vz +885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill +8.40905991e+03 !particle radius in m +8.73703169e+06 -2.34962014e+06 8.87466208e+03 ! x y z +5.81838269e+02 2.10387535e+03 1.59910498e+01 ! vx vy vz +886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill +1.06013311e+04 !particle radius in m +-5.56657026e+06 -7.79387621e+06 -2.42457443e+04 ! x y z +1.72811494e+03 -1.19163725e+03 7.49315478e+00 ! vx vy vz +887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill +8.97396819e+03 !particle radius in m +-1.39814291e+07 5.67086599e+06 7.10670472e+04 ! x y z +-6.38825478e+02 -1.55959492e+03 1.37992185e+01 ! vx vy vz +888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill +9.23650109e+03 !particle radius in m +-6.68069155e+05 -1.06256314e+07 1.03366197e+04 ! x y z +1.99524677e+03 -1.14341573e+02 7.10647594e+00 ! vx vy vz +889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill +1.26639344e+04 !particle radius in m +4.44131372e+06 1.05243943e+07 -4.93210722e+04 ! x y z +-1.78877447e+03 7.65306939e+02 -2.91348510e-01 ! vx vy vz +890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill +3.72440519e+03 !particle radius in m +4.74513540e+06 -1.11521571e+07 1.99020178e+04 ! x y z +1.74857282e+03 7.32287072e+02 8.22196426e+00 ! vx vy vz +891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill +6.65808168e+03 !particle radius in m +3.69231178e+06 8.07781861e+06 -4.84025537e+04 ! x y z +-1.99534439e+03 9.00711444e+02 -7.96406279e+00 ! vx vy vz +892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill +9.76097367e+03 !particle radius in m +7.96779900e+06 5.28681997e+06 4.51459562e+04 ! x y z +-1.15797841e+03 1.77999708e+03 -1.86173466e+01 ! vx vy vz +893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill +1.23309244e+04 !particle radius in m +-4.76453798e+06 -8.80906879e+06 -7.02042625e+03 ! x y z +1.84339352e+03 -9.61915676e+02 -9.22717545e-02 ! vx vy vz +894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill +7.89494909e+03 !particle radius in m +-1.01354200e+07 1.79029021e+06 5.81214752e+04 ! x y z +-3.69721169e+02 -2.02078532e+03 -1.89093419e+00 ! vx vy vz +895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill +9.77391088e+03 !particle radius in m +6.33480475e+06 -5.91857236e+06 -4.57999278e+04 ! x y z +1.55086475e+03 1.62084415e+03 -1.77397628e+01 ! vx vy vz +896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill +7.38931640e+03 !particle radius in m +-1.06493767e+07 7.82814577e+06 2.86358415e+04 ! x y z +-1.05832791e+03 -1.46150005e+03 -5.49731072e+00 ! vx vy vz +897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill +1.26273646e+04 !particle radius in m +7.65076109e+06 -1.70352283e+07 1.51301396e+04 ! x y z +1.39901314e+03 6.06223441e+02 4.14064364e+00 ! vx vy vz +898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill +1.16848854e+04 !particle radius in m +-6.95564135e+06 7.65404475e+06 -2.72421907e+04 ! x y z +-1.52099853e+03 -1.35598646e+03 -9.21577263e+00 ! vx vy vz +899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill +5.54558146e+03 !particle radius in m +-5.49140677e+04 1.54446317e+07 -1.73043597e+04 ! x y z +-1.66030895e+03 -1.12967723e+01 -2.73734027e+00 ! vx vy vz +900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill +4.63830089e+03 !particle radius in m +5.28463967e+06 -1.36432294e+07 1.50949984e+05 ! x y z +1.58056809e+03 6.18784193e+02 2.19476691e+00 ! vx vy vz +901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill +1.16861089e+04 !particle radius in m +-6.87024799e+06 -8.49204530e+06 6.90721153e+04 ! x y z +1.52959279e+03 -1.25803812e+03 2.67976166e+00 ! vx vy vz +902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill +8.06813127e+03 !particle radius in m +-5.81437057e+06 -7.46625959e+06 3.98273573e+04 ! x y z +1.67686329e+03 -1.30572183e+03 -1.17212431e+01 ! vx vy vz +903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill +4.37989422e+03 !particle radius in m +-2.38298847e+06 -1.53195500e+07 2.60001847e+03 ! x y z +1.63293505e+03 -2.84649559e+02 -1.48524125e+01 ! vx vy vz +904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill +1.03479629e+04 !particle radius in m +8.39690801e+06 9.44600671e+06 -3.53959311e+04 ! x y z +-1.39463544e+03 1.20681438e+03 -1.20628234e+01 ! vx vy vz +905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill +5.82874810e+03 !particle radius in m +1.01396678e+07 -1.41312986e+07 5.56406543e+04 ! x y z +1.26355281e+03 9.21806042e+02 1.06940044e+01 ! vx vy vz +906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill +5.42963650e+03 !particle radius in m +-5.21396669e+05 9.14782087e+06 -7.71915905e+03 ! x y z +-2.15141308e+03 -1.66257020e+02 2.07412147e+00 ! vx vy vz +907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill +1.27728576e+04 !particle radius in m +-3.61884147e+05 9.58012066e+06 -6.32163221e+04 ! x y z +-2.11988696e+03 -7.34599885e+01 -6.66237019e+00 ! vx vy vz +908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill +1.25591089e+04 !particle radius in m +-1.53596824e+07 6.40708086e+06 -1.04989342e+05 ! x y z +-6.14876376e+02 -1.48301382e+03 1.26290046e+01 ! vx vy vz +909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill +1.09785515e+04 !particle radius in m +-6.50197885e+06 -1.10181249e+07 -6.62877770e+04 ! x y z +1.58080387e+03 -9.02970180e+02 -1.68313909e+00 ! vx vy vz +910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill +8.81164464e+03 !particle radius in m +9.75396219e+06 -9.13807405e+05 -7.87078491e+04 ! x y z +2.02298152e+02 2.08890085e+03 -1.56193445e+01 ! vx vy vz +911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill +6.34730173e+03 !particle radius in m +1.22059111e+07 -4.11569584e+06 4.51136993e+04 ! x y z +6.18155979e+02 1.71784899e+03 -1.45608490e+01 ! vx vy vz +912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill +8.22504486e+03 !particle radius in m +-1.39589249e+07 4.22706952e+06 1.42629172e+04 ! x y z +-4.79490807e+02 -1.64034272e+03 -9.80150049e+00 ! vx vy vz +913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill +8.68255953e+03 !particle radius in m +-8.72337367e+06 7.89855612e+06 -1.46432428e+04 ! x y z +-1.27359213e+03 -1.41072675e+03 -9.09643338e+00 ! vx vy vz +914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill +6.55170538e+03 !particle radius in m +-5.98689124e+06 -1.08278571e+07 -7.13966053e+04 ! x y z +1.61204187e+03 -9.04138146e+02 6.38760222e+00 ! vx vy vz +915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill +6.76452340e+03 !particle radius in m +-1.07210273e+07 4.87007409e+06 5.61861647e+04 ! x y z +-7.65098099e+02 -1.73800332e+03 -1.14385352e+01 ! vx vy vz +916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill +8.51193471e+03 !particle radius in m +2.68858721e+06 -1.40830147e+07 -6.98869515e+04 ! x y z +1.69547510e+03 3.28640998e+02 9.31981924e-01 ! vx vy vz +917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill +1.29562429e+04 !particle radius in m +-1.30260417e+07 3.41761257e+06 -7.30560375e+04 ! x y z +-4.58021484e+02 -1.72002575e+03 5.01502204e+00 ! vx vy vz +918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill +1.19720742e+04 !particle radius in m +-4.79303948e+06 8.20836672e+06 6.12546656e+03 ! x y z +-1.84411142e+03 -1.07059828e+03 4.85115120e+00 ! vx vy vz +919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill +1.10248119e+04 !particle radius in m +7.16020189e+06 -5.20913143e+06 7.41222240e+04 ! x y z +1.31083472e+03 1.77863703e+03 -1.14709109e+01 ! vx vy vz +920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill +5.80902907e+03 !particle radius in m +8.99285148e+05 9.31741571e+06 -4.43761911e+04 ! x y z +-2.12986907e+03 1.90203427e+02 1.15661198e+01 ! vx vy vz +921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill +1.20390163e+04 !particle radius in m +1.03624859e+07 4.00217371e+06 -3.33921276e+04 ! x y z +-7.29889411e+02 1.83209523e+03 -3.12704990e+00 ! vx vy vz +922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill +1.05735757e+04 !particle radius in m +9.54531799e+06 -3.82777787e+06 -3.08506232e+03 ! x y z +7.65760228e+02 1.88710727e+03 1.54248284e+01 ! vx vy vz +923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill +6.19228768e+03 !particle radius in m +-1.26508821e+07 -4.96817255e+06 -7.46581466e+04 ! x y z +6.38137580e+02 -1.65998064e+03 -1.05229703e+01 ! vx vy vz +924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill +7.10814791e+03 !particle radius in m +6.65714202e+06 8.41817806e+06 5.11373555e+04 ! x y z +-1.58896209e+03 1.22956179e+03 -1.67191084e+01 ! vx vy vz +925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill +8.69325608e+03 !particle radius in m +-1.30432977e+07 2.41169295e+06 9.46191119e+04 ! x y z +-3.33638402e+02 -1.76051970e+03 1.16209842e+01 ! vx vy vz +926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill +3.75974028e+03 !particle radius in m +1.62111278e+07 2.59399704e+06 1.61282577e+05 ! x y z +-2.71405873e+02 1.59773598e+03 -5.81005218e+00 ! vx vy vz +927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill +7.38892108e+03 !particle radius in m +2.06345127e+06 9.22023526e+06 -7.22571528e+03 ! x y z +-2.09005362e+03 4.30799852e+02 -1.90823955e+01 ! vx vy vz +928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill +9.19272993e+03 !particle radius in m +-1.13721993e+07 -1.13987875e+07 8.83921800e+04 ! x y z +1.16224359e+03 -1.15160239e+03 -1.45306478e+01 ! vx vy vz +929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill +1.16650334e+04 !particle radius in m +2.77942362e+06 -9.01437717e+06 -5.67717467e+04 ! x y z +2.03984238e+03 6.54242641e+02 1.85000009e+01 ! vx vy vz +930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill +9.29804930e+03 !particle radius in m +-1.18629177e+07 -4.45829589e+05 7.85442143e+04 ! x y z +1.01652144e+02 -1.91537773e+03 4.05611152e+00 ! vx vy vz +931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill +1.18263271e+04 !particle radius in m +8.95238380e+06 6.51302794e+06 3.45161345e+04 ! x y z +-1.14800130e+03 1.59335172e+03 -7.03295250e+00 ! vx vy vz +932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill +5.75041368e+03 !particle radius in m +6.69475580e+06 -9.28551107e+06 -4.91541805e+04 ! x y z +1.59233658e+03 1.14243210e+03 1.78210731e+00 ! vx vy vz +933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill +1.20518923e+04 !particle radius in m +1.12760016e+07 1.84611316e+06 -7.48490699e+04 ! x y z +-2.79591330e+02 1.91267253e+03 -1.78025369e+00 ! vx vy vz +934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill +9.68470759e+03 !particle radius in m +-6.71328804e+03 9.68278345e+06 -5.52334404e+04 ! x y z +-2.08432418e+03 -8.54871802e+00 1.66064441e+01 ! vx vy vz +935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill +4.70574813e+03 !particle radius in m +-6.96627774e+06 9.23026738e+06 -2.87240918e+04 ! x y z +-1.52286258e+03 -1.17748048e+03 -3.95814303e+00 ! vx vy vz +936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill +4.67812785e+03 !particle radius in m +1.23905483e+05 -1.09739869e+07 1.36396267e+04 ! x y z +1.98817193e+03 2.04705438e+01 -2.01972620e+01 ! vx vy vz +937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill +6.51530333e+03 !particle radius in m +-6.63943360e+06 7.91940404e+06 6.09014325e+04 ! x y z +-1.56332740e+03 -1.31647658e+03 2.73931815e+01 ! vx vy vz +938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill +1.08866518e+04 !particle radius in m +5.51288052e+06 -8.48543006e+06 3.44011201e+04 ! x y z +1.72675322e+03 1.14606699e+03 -1.64108886e+00 ! vx vy vz +939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill +7.57891828e+03 !particle radius in m +-6.54081328e+06 -9.90968551e+06 -8.75124119e+02 ! x y z +1.59735811e+03 -1.02533687e+03 2.87435690e+01 ! vx vy vz +940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill +5.44560895e+03 !particle radius in m +-6.45935547e+06 -6.74639603e+06 -1.43260248e+04 ! x y z +1.55668948e+03 -1.48434496e+03 1.71287847e+00 ! vx vy vz +941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill +5.10514110e+03 !particle radius in m +6.10089271e+06 -7.18245737e+06 -1.54248190e+04 ! x y z +1.63416125e+03 1.39276630e+03 2.48510957e+00 ! vx vy vz +942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill +5.36280409e+03 !particle radius in m +4.82602306e+06 -8.03439545e+06 -7.67679872e+02 ! x y z +1.85073484e+03 1.06188550e+03 8.12750484e-01 ! vx vy vz +943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill +1.15239690e+04 !particle radius in m +4.44437862e+06 -9.91763988e+06 4.31307866e+04 ! x y z +1.80875755e+03 8.27020553e+02 -1.01329362e+01 ! vx vy vz +944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill +1.25055498e+04 !particle radius in m +-1.14222033e+07 -6.06408313e+06 4.03399165e+03 ! x y z +8.56095542e+02 -1.61207885e+03 -3.63239850e+00 ! vx vy vz +945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill +6.21936950e+03 !particle radius in m +7.76499151e+06 5.91861320e+06 3.34591110e+04 ! x y z +-1.26430519e+03 1.67125233e+03 9.81409163e+00 ! vx vy vz +946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill +6.76191251e+03 !particle radius in m +6.41969262e+05 9.07081567e+06 -7.35294633e+03 ! x y z +-2.17769789e+03 1.33895254e+02 1.52672754e+01 ! vx vy vz +947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill +3.91378509e+03 !particle radius in m +-1.06528591e+07 8.93880305e+06 -5.72463584e+04 ! x y z +-1.12548728e+03 -1.34323474e+03 6.06469294e+00 ! vx vy vz +948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill +7.48444340e+03 !particle radius in m +-3.19955637e+06 2.16099834e+07 -4.14759774e+03 ! x y z +-1.38306232e+03 -1.85981613e+02 8.81754791e+00 ! vx vy vz +949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill +6.88290450e+03 !particle radius in m +-1.10508713e+07 7.71301153e+06 -1.18282672e+05 ! x y z +-1.00552378e+03 -1.48763887e+03 9.37513940e+00 ! vx vy vz +950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill +8.01051874e+03 !particle radius in m +-6.84568402e+06 6.93126559e+06 -8.44628949e+04 ! x y z +-1.48797188e+03 -1.48762515e+03 1.55236862e+00 ! vx vy vz +951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill +1.12177675e+04 !particle radius in m +-4.99810043e+06 1.03574496e+07 4.97035769e+03 ! x y z +-1.74218913e+03 -8.42934517e+02 -8.95086256e+00 ! vx vy vz +952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill +1.23130257e+04 !particle radius in m +-5.22893040e+06 -8.08300727e+06 -6.54096012e+04 ! x y z +1.73636332e+03 -1.16550147e+03 -7.26670162e+00 ! vx vy vz +953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill +9.61558846e+03 !particle radius in m +8.48788962e+06 5.61313541e+06 -3.97847978e+04 ! x y z +-1.16430859e+03 1.69033461e+03 -1.63966122e+00 ! vx vy vz +954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill +6.71734597e+03 !particle radius in m +-8.10346206e+06 8.11251976e+06 -2.39530194e+04 ! x y z +-1.39528138e+03 -1.34141849e+03 -1.46583663e+01 ! vx vy vz +955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill +9.18590040e+03 !particle radius in m +1.01379295e+07 1.27148009e+07 1.28683748e+05 ! x y z +-1.25755832e+03 1.02459820e+03 2.79221586e+00 ! vx vy vz +956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill +4.34121509e+03 !particle radius in m +-3.34906408e+06 -1.45007656e+07 3.06724892e+04 ! x y z +1.65986723e+03 -3.87189481e+02 -1.20093781e+01 ! vx vy vz +957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill +7.35249155e+03 !particle radius in m +9.72284422e+06 5.24694587e+05 -2.03401805e+04 ! x y z +-1.64711568e+02 2.09599540e+03 2.03343245e+00 ! vx vy vz +958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill +1.24155280e+04 !particle radius in m +8.48073237e+06 4.51058486e+06 2.53523368e+04 ! x y z +-9.87084405e+02 1.87149600e+03 2.30788388e+01 ! vx vy vz +959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill +5.50275953e+03 !particle radius in m +6.45455163e+06 -7.63351792e+06 -1.42285814e+05 ! x y z +1.59381455e+03 1.33155701e+03 -4.40247600e+00 ! vx vy vz +960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill +6.51937434e+03 !particle radius in m +-8.78159278e+06 5.76426176e+06 9.09624378e+04 ! x y z +-1.08134022e+03 -1.71795196e+03 -8.73857909e-01 ! vx vy vz +961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill +6.21567016e+03 !particle radius in m +9.52925894e+06 6.10621713e+06 8.38784066e+04 ! x y z +-1.05186401e+03 1.64327133e+03 8.87777455e+00 ! vx vy vz +962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill +8.89237350e+03 !particle radius in m +1.01892854e+07 -1.36265120e+06 -1.12357324e+04 ! x y z +2.44094973e+02 2.01912416e+03 -1.23871747e+01 ! vx vy vz +963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill +1.22676172e+04 !particle radius in m +-9.44952303e+06 6.64794032e+05 2.66575883e+04 ! x y z +-1.65527486e+02 -2.12001832e+03 -2.00449290e+01 ! vx vy vz +964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill +5.92221816e+03 !particle radius in m +1.83154773e+05 -1.22553647e+07 8.81712635e+04 ! x y z +1.88138741e+03 4.37026901e+01 -1.09775010e+01 ! vx vy vz +965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill +1.05931042e+04 !particle radius in m +-7.97487196e+06 -9.77747428e+06 2.72278643e+04 ! x y z +1.43311159e+03 -1.15357841e+03 -9.89419786e+00 ! vx vy vz +966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill +1.20876047e+04 !particle radius in m +1.94057310e+06 1.10640858e+07 -6.67098464e+04 ! x y z +-1.92090005e+03 3.39961177e+02 9.93411747e+00 ! vx vy vz +967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill +9.86315310e+03 !particle radius in m +-4.65532155e+06 1.00459520e+07 1.92148265e+04 ! x y z +-1.79352379e+03 -7.96705869e+02 7.04140623e-01 ! vx vy vz +968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill +5.60495536e+03 !particle radius in m +-7.15394211e+06 8.89862789e+06 -1.32380207e+04 ! x y z +-1.51757568e+03 -1.20615223e+03 1.35463888e+01 ! vx vy vz +969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill +4.23356519e+03 !particle radius in m +-9.43261369e+06 7.11601450e+06 5.44346690e+03 ! x y z +-1.15890933e+03 -1.51651908e+03 -4.86353449e+00 ! vx vy vz +970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill +7.16866817e+03 !particle radius in m +4.46987922e+06 -7.54136153e+06 -1.75706858e+03 ! x y z +1.91337212e+03 1.12893149e+03 -4.46774330e+00 ! vx vy vz +971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill +4.90246515e+03 !particle radius in m +-1.19950136e+07 8.16218853e+05 1.95819347e+04 ! x y z +-1.42817655e+02 -1.87495301e+03 1.71449405e+00 ! vx vy vz +972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill +9.70236728e+03 !particle radius in m +-7.49210830e+06 -1.17675041e+07 3.09999690e+03 ! x y z +1.49945194e+03 -9.16839153e+02 1.04827746e+01 ! vx vy vz +973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill +7.89739710e+03 !particle radius in m +1.05050579e+07 -3.74118158e+06 2.63300605e+04 ! x y z +6.73610054e+02 1.82488852e+03 9.07423039e+00 ! vx vy vz +974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill +1.03228429e+04 !particle radius in m +4.89752221e+06 -8.85494139e+06 -6.75229080e+04 ! x y z +1.83164749e+03 9.48103081e+02 -1.57990456e+01 ! vx vy vz +975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill +4.82114680e+03 !particle radius in m +-4.94662921e+06 -8.78447645e+06 -1.52590989e+04 ! x y z +1.78359269e+03 -1.02161338e+03 3.01217587e+00 ! vx vy vz +976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill +8.51914826e+03 !particle radius in m +-2.76648508e+06 1.00209975e+07 1.12220539e+04 ! x y z +-1.94324711e+03 -5.66151040e+02 8.07071042e+00 ! vx vy vz +977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill +1.24634921e+04 !particle radius in m +8.29729830e+05 -9.56636031e+06 7.03935010e+04 ! x y z +2.11653601e+03 1.88209489e+02 4.94852919e+00 ! vx vy vz +978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill +3.80446929e+03 !particle radius in m +-9.93606780e+06 -1.91150532e+06 -4.47495052e+04 ! x y z +3.80453971e+02 -2.01867650e+03 -1.85403349e+01 ! vx vy vz +979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill +3.89556870e+03 !particle radius in m +-8.01896356e+06 1.37141963e+07 -5.15166167e+03 ! x y z +-1.39036186e+03 -8.35965747e+02 -1.59320152e+00 ! vx vy vz +980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill +5.72363723e+03 !particle radius in m +-1.85002148e+06 -8.80679540e+06 1.35544509e+04 ! x y z +2.13508260e+03 -4.62001715e+02 -1.42665412e+01 ! vx vy vz +981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill +4.75733808e+03 !particle radius in m +4.27594078e+06 -2.26843001e+07 -1.55793996e+05 ! x y z +1.32907578e+03 2.52657022e+02 -1.02801831e+01 ! vx vy vz +982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill +8.12492435e+03 !particle radius in m +-5.68991814e+06 -1.12264560e+07 -5.21915423e+04 ! x y z +1.65234255e+03 -8.32199277e+02 -1.84232859e+01 ! vx vy vz +983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill +9.27317292e+03 !particle radius in m +5.57078844e+06 -1.29122392e+07 2.98061387e+04 ! x y z +1.60978124e+03 6.76666256e+02 -1.81556760e+01 ! vx vy vz +984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill +1.20657022e+04 !particle radius in m +-9.23646620e+06 -3.48333300e+06 -5.66153126e+04 ! x y z +7.62840282e+02 -1.92758119e+03 -1.42885719e+01 ! vx vy vz +985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill +4.77169909e+03 !particle radius in m +-1.33386904e+07 -7.03492878e+06 5.22429887e+04 ! x y z +7.86090473e+02 -1.49627525e+03 -5.64598667e-01 ! vx vy vz +986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill +4.40136307e+03 !particle radius in m +-4.47610210e+06 -7.77281547e+06 -5.58878589e+04 ! x y z +1.89664270e+03 -1.07211196e+03 -5.72288054e+00 ! vx vy vz +987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill +8.44186160e+03 !particle radius in m +-9.07004249e+06 -3.73002016e+06 4.79325609e+04 ! x y z +7.83046085e+02 -1.94541887e+03 -4.25596103e-01 ! vx vy vz +988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill +1.17916085e+04 !particle radius in m +4.77535808e+06 2.28272957e+07 -1.30485185e+05 ! x y z +-1.33059311e+03 2.72226813e+02 1.17199136e+00 ! vx vy vz +989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill +9.56876735e+03 !particle radius in m +-6.57222396e+06 -6.18414714e+06 5.03770860e+03 ! x y z +1.49882331e+03 -1.57253167e+03 6.35917239e-01 ! vx vy vz +990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill +1.00365688e+04 !particle radius in m +1.29779524e+07 -6.46401216e+06 3.48941370e+04 ! x y z +7.80281531e+02 1.52896125e+03 1.61899666e+01 ! vx vy vz +991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill +1.08721841e+04 !particle radius in m +8.92019709e+06 1.13125647e+07 2.46536424e+04 ! x y z +-1.35073430e+03 1.07341543e+03 -2.21311295e+00 ! vx vy vz +992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill +6.20328692e+03 !particle radius in m +1.07245478e+07 -8.18329560e+06 2.13161879e+04 ! x y z +1.05166921e+03 1.44439805e+03 3.54109421e-01 ! vx vy vz +993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill +1.29798746e+04 !particle radius in m +-9.30550358e+06 8.66046042e+05 5.81017139e+04 ! x y z +-2.29894248e+02 -2.12058022e+03 1.24228458e+00 ! vx vy vz +994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill +1.16779401e+04 !particle radius in m +7.60186730e+06 8.86968517e+06 -2.74017031e+04 ! x y z +-1.43991356e+03 1.26760065e+03 4.33685357e+00 ! vx vy vz +995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill +1.17455396e+04 !particle radius in m +7.15301504e+06 -1.14025302e+07 6.70488022e+04 ! x y z +1.51419253e+03 9.18252451e+02 1.10269853e+01 ! vx vy vz +996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill +7.49470061e+03 !particle radius in m +1.23698701e+06 9.47565448e+06 3.23875154e+04 ! x y z +-2.10148424e+03 2.50074394e+02 -1.91619258e+01 ! vx vy vz +997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill +1.17682821e+04 !particle radius in m +-2.19991014e+06 -1.20488900e+07 1.28489104e+05 ! x y z +1.85062965e+03 -3.21678958e+02 -6.16390717e+00 ! vx vy vz +998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill +8.96400751e+03 !particle radius in m +-9.49865812e+06 -3.70460583e+06 1.09215654e+05 ! x y z +7.34938455e+02 -1.90450100e+03 -1.30332251e+00 ! vx vy vz +999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill +1.09312475e+04 !particle radius in m +1.16226476e+07 1.38150369e+06 -1.92583058e+04 ! x y z +-2.26381104e+02 1.88932307e+03 9.55895676e+00 ! vx vy vz +1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill +1.03367318e+04 !particle radius in m +2.15229887e+06 9.00160460e+06 -1.92923892e+04 ! x y z +-2.09656754e+03 4.96075668e+02 -1.16719539e+01 ! vx vy vz +1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill +9.04899661e+03 !particle radius in m +1.06770435e+06 1.09358139e+07 4.20062155e+03 ! x y z +-1.96462815e+03 1.83747788e+02 1.48559298e+00 ! vx vy vz +1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill +6.41462061e+03 !particle radius in m +-6.42789916e+06 -5.88137546e+06 5.96791682e+04 ! x y z +1.50006484e+03 -1.65201659e+03 -1.22137321e+01 ! vx vy vz +1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill +7.74973359e+03 !particle radius in m +-6.05164524e+06 -8.28607289e+06 -1.65389595e+03 ! x y z +1.67689384e+03 -1.17484360e+03 -6.18688546e+00 ! vx vy vz +1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill +9.34847201e+03 !particle radius in m +1.21489394e+07 1.95514302e+06 1.23709104e+05 ! x y z +-3.04295890e+02 1.85437159e+03 3.05804994e+00 ! vx vy vz +1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill +9.23516856e+03 !particle radius in m +7.58308846e+06 8.14384020e+06 6.98191668e+04 ! x y z +-1.44939292e+03 1.32522723e+03 3.40820153e+00 ! vx vy vz +1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill +8.37521886e+03 !particle radius in m +2.35699353e+06 8.90977821e+06 -1.38321436e+04 ! x y z +-2.07425100e+03 5.54407039e+02 3.21999470e+00 ! vx vy vz +1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill +9.56158017e+03 !particle radius in m +-6.64360612e+06 -9.33976004e+06 -1.15941594e+05 ! x y z +1.59144044e+03 -1.09353179e+03 -2.96304740e-01 ! vx vy vz +1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill +4.59864210e+03 !particle radius in m +1.19168220e+07 -3.45563255e+06 1.11394399e+04 ! x y z +5.17861579e+02 1.76812064e+03 1.39033798e+00 ! vx vy vz +1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill +3.98028346e+03 !particle radius in m +-9.71007247e+06 7.35807090e+06 -1.31989891e+05 ! x y z +-1.16325288e+03 -1.47233955e+03 8.07759554e+00 ! vx vy vz +1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill +1.21124859e+04 !particle radius in m +1.41799542e+06 -9.13902699e+06 4.24742676e+04 ! x y z +2.10898023e+03 3.21322532e+02 -1.26636042e+01 ! vx vy vz +1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill +8.98485858e+03 !particle radius in m +-1.08957227e+07 -1.70176619e+07 1.40648070e+05 ! x y z +1.21605254e+03 -8.04289078e+02 5.08636985e+00 ! vx vy vz +1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill +1.16900526e+04 !particle radius in m +-5.98329541e+06 8.30801044e+06 9.09812707e+03 ! x y z +-1.64846384e+03 -1.22236838e+03 2.54695878e+01 ! vx vy vz +1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill +8.45138479e+03 !particle radius in m +-4.65472167e+06 -7.85395586e+06 -5.30698954e+03 ! x y z +1.85738188e+03 -1.11675155e+03 9.77147330e+00 ! vx vy vz +1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill +1.04153730e+04 !particle radius in m +1.69188525e+07 8.47840581e+06 -4.67327616e+04 ! x y z +-6.66379185e+02 1.35677843e+03 1.32594121e+01 ! vx vy vz +1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill +1.12810669e+04 !particle radius in m +-7.04671066e+06 7.15586671e+06 -3.56479637e+04 ! x y z +-1.47400909e+03 -1.45932821e+03 -9.67794404e+00 ! vx vy vz +1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill +6.72689473e+03 !particle radius in m +7.33791533e+06 -9.58517692e+06 3.03846079e+04 ! x y z +1.49051721e+03 1.17984608e+03 -1.97955637e+01 ! vx vy vz +1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill +4.42153023e+03 !particle radius in m +1.21152578e+07 2.07326034e+05 4.57151931e+03 ! x y z +-2.18290977e+01 1.86989325e+03 -1.30418260e+01 ! vx vy vz +1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill +1.02802232e+04 !particle radius in m +-1.78690734e+06 9.20811486e+06 6.52613267e+03 ! x y z +-2.08865445e+03 -3.88689300e+02 7.21544338e+00 ! vx vy vz +1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill +5.50911894e+03 !particle radius in m +-6.29895686e+06 8.71900726e+06 -7.33711540e+03 ! x y z +-1.63469757e+03 -1.16304985e+03 4.84189753e+00 ! vx vy vz +1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill +1.25910224e+04 !particle radius in m +9.10086700e+06 -7.03219894e+06 -7.28785098e+04 ! x y z +1.17345937e+03 1.50811083e+03 -6.68343594e+00 ! vx vy vz +1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill +7.83571609e+03 !particle radius in m +-4.28807654e+06 -7.85915508e+06 2.65183664e+04 ! x y z +1.92700749e+03 -1.07363344e+03 6.86417879e+00 ! vx vy vz +1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill +6.08850399e+03 !particle radius in m +6.47343353e+06 8.23566063e+06 3.01013545e+04 ! x y z +-1.59000120e+03 1.26250583e+03 -1.25792680e+01 ! vx vy vz +1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill +1.24257689e+04 !particle radius in m +-8.70674127e+06 -2.94645030e+06 -2.92623754e+04 ! x y z +7.11914106e+02 -2.04951615e+03 1.66637378e+01 ! vx vy vz +1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill +1.07981562e+04 !particle radius in m +-1.75476786e+07 -1.12768402e+07 1.80639637e+05 ! x y z +7.59106783e+02 -1.22286396e+03 1.20937631e+00 ! vx vy vz +1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill +1.27803239e+04 !particle radius in m +7.04696388e+06 -1.10885823e+07 -6.17953039e+04 ! x y z +1.50498521e+03 9.91641405e+02 -4.14259212e-01 ! vx vy vz +1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill +6.26842061e+03 !particle radius in m +9.08053413e+06 1.73092917e+06 9.84209268e+03 ! x y z +-4.33130368e+02 2.10086011e+03 -1.06621334e+01 ! vx vy vz +1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill +1.20378926e+04 !particle radius in m +-3.00902975e+06 -1.32946373e+07 -5.90702502e+03 ! x y z +1.71319262e+03 -4.00878759e+02 -9.96066412e+00 ! vx vy vz +1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill +7.48414588e+03 !particle radius in m +-4.04201967e+06 -8.29248316e+06 -4.12753129e+03 ! x y z +1.92318448e+03 -9.71522928e+02 1.76717922e+01 ! vx vy vz +1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill +7.72799953e+03 !particle radius in m +1.75193620e+07 -2.65169374e+06 1.13236551e+05 ! x y z +2.30440171e+02 1.53861792e+03 6.99701915e+00 ! vx vy vz +1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill +9.98153536e+03 !particle radius in m +3.43641275e+06 -8.93033322e+06 -2.09644587e+04 ! x y z +1.99449709e+03 7.67681042e+02 -1.69978122e+00 ! vx vy vz +1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill +6.52068720e+03 !particle radius in m +-8.94110733e+06 -6.35904272e+06 -5.39789507e+04 ! x y z +1.10919784e+03 -1.62340625e+03 -3.28674782e+00 ! vx vy vz +1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill +5.81525514e+03 !particle radius in m +-1.30741810e+07 8.57418735e+06 -1.19905050e+03 ! x y z +-9.25024677e+02 -1.37017223e+03 4.97519787e+00 ! vx vy vz +1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill +1.29022874e+04 !particle radius in m +-2.54473466e+06 1.02641366e+07 -6.03109093e+04 ! x y z +-1.94287173e+03 -5.03549968e+02 -1.40714774e+00 ! vx vy vz +1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill +3.75520420e+03 !particle radius in m +-2.05229123e+06 1.07524321e+07 -3.91281600e+04 ! x y z +-1.94369561e+03 -3.72923016e+02 -4.66840760e+00 ! vx vy vz +1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill +8.49458734e+03 !particle radius in m +9.81310678e+06 -6.45686284e+06 -8.14126007e+04 ! x y z +1.04337462e+03 1.60488987e+03 -6.74659876e+00 ! vx vy vz +1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill +1.19130613e+04 !particle radius in m +6.87800371e+06 5.51073017e+06 -5.46411638e+04 ! x y z +-1.36034802e+03 1.74332100e+03 4.94690697e+00 ! vx vy vz +1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill +6.07042423e+03 !particle radius in m +-1.07553881e+07 -9.12112446e+05 -4.34386235e+04 ! x y z +1.54461489e+02 -1.98147483e+03 -1.70607618e+01 ! vx vy vz +1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill +4.61293151e+03 !particle radius in m +1.27377380e+07 -1.09778054e+05 -6.19904167e+04 ! x y z +-1.25732694e+00 1.84331966e+03 -2.21143255e+00 ! vx vy vz +1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill +1.04833644e+04 !particle radius in m +-5.13284511e+05 -1.67637883e+07 -2.82433912e+03 ! x y z +1.59521599e+03 -5.35780376e+01 1.00615428e+01 ! vx vy vz +1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill +4.48908069e+03 !particle radius in m +-1.26602775e+07 4.02918646e+05 1.71412707e+04 ! x y z +-5.95275114e+01 -1.83478145e+03 -6.71275300e+00 ! vx vy vz +1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill +6.14880277e+03 !particle radius in m +6.61475732e+05 1.19251089e+07 4.99716805e+03 ! x y z +-1.89472956e+03 8.25618952e+01 -1.61809802e-01 ! vx vy vz +1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill +3.82885081e+03 !particle radius in m +8.80868758e+06 9.32656348e+05 -4.18862348e+04 ! x y z +-2.17867324e+02 2.19123384e+03 -1.17898705e+01 ! vx vy vz +1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill +5.19573642e+03 !particle radius in m +1.00480766e+07 1.10334466e+05 4.24190753e+04 ! x y z +-1.56774101e+01 2.05584808e+03 1.80904032e+01 ! vx vy vz +1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill +5.90842447e+03 !particle radius in m +-2.68410660e+06 -8.45093049e+06 -2.25369168e+04 ! x y z +2.08071561e+03 -7.11201230e+02 1.07896227e+01 ! vx vy vz +1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill +7.70557245e+03 !particle radius in m +-2.49395661e+06 -1.01785537e+07 4.67622537e+04 ! x y z +1.97783372e+03 -4.46467141e+02 1.43639227e+01 ! vx vy vz +1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill +1.14515690e+04 !particle radius in m +-5.37771504e+06 7.44714074e+06 -6.06003060e+03 ! x y z +-1.75372901e+03 -1.25777673e+03 1.33051245e+01 ! vx vy vz +1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill +7.93728841e+03 !particle radius in m +1.43736621e+07 3.27074646e+06 -1.17711231e+05 ! x y z +-3.95229369e+02 1.65048180e+03 -2.09427051e+00 ! vx vy vz +1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill +9.36932395e+03 !particle radius in m +-8.93375487e+06 -9.23297021e+05 -5.56404103e+04 ! x y z +2.58345498e+02 -2.18331951e+03 -1.86368551e+01 ! vx vy vz +1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill +9.07144821e+03 !particle radius in m +-1.28280097e+07 8.91411489e+06 -1.59387089e+04 ! x y z +-9.55988990e+02 -1.37339914e+03 -9.51566283e-01 ! vx vy vz +1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill +9.91610503e+03 !particle radius in m +-1.22031914e+07 8.75617467e+06 1.35904643e+05 ! x y z +-1.01713019e+03 -1.34842008e+03 -1.53941683e+00 ! vx vy vz +1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill +7.60958719e+03 !particle radius in m +-1.81887078e+05 1.09247030e+07 -4.35726533e+04 ! x y z +-1.97588122e+03 -8.11807516e+00 -3.92064501e+00 ! vx vy vz +1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill +4.74157034e+03 !particle radius in m +2.83878155e+06 1.44744864e+07 5.43842125e+04 ! x y z +-1.65421841e+03 3.29251794e+02 -6.23680908e+00 ! vx vy vz +1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill +8.45889329e+03 !particle radius in m +1.06135506e+07 -4.48083559e+05 1.72504569e+04 ! x y z +9.44982902e+01 2.00633631e+03 9.90801265e-01 ! vx vy vz +1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill +1.07608492e+04 !particle radius in m +8.75139394e+06 -2.04107097e+07 -1.06034326e+05 ! x y z +1.29371288e+03 5.52007802e+02 5.05180489e-01 ! vx vy vz +1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill +6.96494702e+03 !particle radius in m +1.42098400e+07 1.83559068e+06 -6.61680518e+04 ! x y z +-2.13356829e+02 1.72148688e+03 1.01500659e+01 ! vx vy vz +1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill +8.53818219e+03 !particle radius in m +1.55907651e+07 5.91768331e+06 -8.22551540e+04 ! x y z +-5.54998648e+02 1.51448714e+03 -1.24785663e+01 ! vx vy vz +1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill +9.64323129e+03 !particle radius in m +7.38866883e+06 1.67469371e+07 -5.52080317e+04 ! x y z +-1.39370270e+03 6.17614086e+02 4.21088917e+00 ! vx vy vz +1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill +9.69401392e+03 !particle radius in m +-5.32551208e+06 -7.90474847e+06 -3.86152280e+04 ! x y z +1.76379265e+03 -1.19032254e+03 1.04687204e+01 ! vx vy vz +1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill +8.64149686e+03 !particle radius in m +1.09164841e+07 -7.03739746e+06 2.56807871e+04 ! x y z +9.98839941e+02 1.51559226e+03 -2.93169292e+00 ! vx vy vz +1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill +1.08320270e+04 !particle radius in m +-6.83243259e+06 -5.66828831e+06 -1.72900877e+04 ! x y z +1.43365173e+03 -1.68974702e+03 2.09850405e+00 ! vx vy vz +1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill +7.82246015e+03 !particle radius in m +6.82803774e+06 -5.76411607e+06 5.47258325e+04 ! x y z +1.40722674e+03 1.66603602e+03 1.74552894e+01 ! vx vy vz +1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill +6.65894479e+03 !particle radius in m +9.35446321e+06 4.27959887e+06 1.44633990e+04 ! x y z +-8.44145057e+02 1.86728709e+03 8.45220846e+00 ! vx vy vz +1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill +9.04919131e+03 !particle radius in m +-8.81635825e+06 6.95372208e+06 5.99171831e+04 ! x y z +-1.18658772e+03 -1.54806956e+03 -4.34306118e-01 ! vx vy vz +1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill +9.36295974e+03 !particle radius in m +3.76533406e+06 -1.36831259e+07 -4.52559471e+04 ! x y z +1.65006231e+03 5.02310012e+02 -7.82371716e+00 ! vx vy vz +1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill +8.43279516e+03 !particle radius in m +8.66363031e+06 -3.01551364e+06 1.87644792e+04 ! x y z +6.94997160e+02 2.04127247e+03 4.50266436e+00 ! vx vy vz +1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill +1.26327938e+04 !particle radius in m +-1.81171981e+06 1.18614317e+07 -9.45077050e+04 ! x y z +-1.85854649e+03 -2.65883958e+02 1.03797168e+01 ! vx vy vz +1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill +1.27711174e+04 !particle radius in m +-5.75108647e+06 -9.00212328e+06 2.40243267e+04 ! x y z +1.69440892e+03 -1.07016945e+03 -1.54605015e+01 ! vx vy vz +1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill +7.77084017e+03 !particle radius in m +1.89490021e+06 8.84022962e+06 2.80656936e+04 ! x y z +-2.12712367e+03 4.54322162e+02 -6.09085901e+00 ! vx vy vz +1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill +7.50283352e+03 !particle radius in m +-2.84338801e+06 -8.43577004e+06 -3.58252007e+04 ! x y z +2.07616764e+03 -6.90414631e+02 7.86561001e+00 ! vx vy vz +1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill +1.03379039e+04 !particle radius in m +7.23228604e+06 8.21987628e+06 -1.12362711e+05 ! x y z +-1.50075767e+03 1.29503859e+03 -4.22019044e+00 ! vx vy vz +1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill +1.21350477e+04 !particle radius in m +9.59011374e+06 -1.47240572e+06 -1.17481033e+04 ! x y z +3.06970553e+02 2.09485379e+03 2.11775305e+00 ! vx vy vz +1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill +4.53610253e+03 !particle radius in m +1.68353028e+07 -5.98357187e+06 1.37705248e+04 ! x y z +4.97655007e+02 1.46172367e+03 -1.17361347e+01 ! vx vy vz +1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill +9.63170656e+03 !particle radius in m +-1.80713745e+07 3.81143072e+06 1.47991860e+05 ! x y z +-3.34463620e+02 -1.47042095e+03 -2.39441838e+00 ! vx vy vz +1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill +1.30247028e+04 !particle radius in m +8.12437675e+06 -7.89692091e+06 8.58861149e+04 ! x y z +1.36700546e+03 1.38057019e+03 -5.74921289e+00 ! vx vy vz +1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill +5.43842039e+03 !particle radius in m +6.94978876e+06 -5.59183335e+06 2.41251511e+04 ! x y z +1.34132445e+03 1.72532099e+03 1.12041963e+00 ! vx vy vz +1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill +6.59671726e+03 !particle radius in m +-1.18687337e+07 -8.19186254e+06 -8.44898067e+04 ! x y z +9.75684146e+02 -1.41995661e+03 -1.13753956e+00 ! vx vy vz +1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill +1.23341623e+04 !particle radius in m +-1.89628928e+06 -9.50227023e+06 -4.05755726e+04 ! x y z +2.07857991e+03 -4.30149853e+02 -4.45053647e+00 ! vx vy vz +1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill +6.80723430e+03 !particle radius in m +1.01428084e+07 1.53976563e+06 -1.56033963e+05 ! x y z +-3.05629291e+02 2.00359721e+03 3.06409701e-02 ! vx vy vz +1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill +7.05013076e+03 !particle radius in m +3.99603404e+06 7.86593577e+06 5.11268274e+04 ! x y z +-1.97467205e+03 9.78734350e+02 8.42153677e+00 ! vx vy vz +1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill +8.61895511e+03 !particle radius in m +6.54388805e+06 -6.77023287e+06 -4.59748352e+03 ! x y z +1.54444266e+03 1.46455300e+03 -1.04095061e+01 ! vx vy vz +1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill +7.06396397e+03 !particle radius in m +6.04468294e+06 8.82617315e+06 -1.42181890e+05 ! x y z +-1.63233809e+03 1.16910466e+03 -1.88213215e+00 ! vx vy vz +1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill +9.70947993e+03 !particle radius in m +-1.11170150e+07 6.16749342e+06 -3.82809291e+04 ! x y z +-8.98686306e+02 -1.59525493e+03 2.55769594e+00 ! vx vy vz +1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill +1.25718686e+04 !particle radius in m +1.25437094e+06 -1.67969561e+07 -1.36312584e+04 ! x y z +1.58470452e+03 1.21111055e+02 3.59330822e+00 ! vx vy vz +1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill +8.05778982e+03 !particle radius in m +8.43800086e+06 5.71987949e+06 -3.20922412e+04 ! x y z +-1.14330692e+03 1.67937737e+03 -4.35374922e+00 ! vx vy vz +1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill +6.21936681e+03 !particle radius in m +-8.36235204e+06 -4.06735446e+06 1.77837069e+04 ! x y z +9.27393629e+02 -1.94041308e+03 2.61389295e+00 ! vx vy vz +1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill +1.02373037e+04 !particle radius in m +-2.57151201e+06 -1.54968676e+07 -9.11168853e+04 ! x y z +1.63776183e+03 -2.76257315e+02 2.80266971e-01 ! vx vy vz +1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill +8.30015495e+03 !particle radius in m +8.66211969e+06 2.20644842e+06 5.69512514e+03 ! x y z +-5.34166852e+02 2.11025355e+03 7.04563819e+00 ! vx vy vz +1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill +1.24143522e+04 !particle radius in m +2.50735051e+06 -9.08802531e+06 1.47619891e+03 ! x y z +2.03247718e+03 5.95768658e+02 -1.11711400e+01 ! vx vy vz +1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill +1.10252975e+04 !particle radius in m +-5.08664524e+06 8.37497108e+06 -9.90101269e+04 ! x y z +-1.78382195e+03 -1.07772723e+03 -8.86422219e+00 ! vx vy vz +1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill +6.11794676e+03 !particle radius in m +-1.16840844e+07 -1.15084512e+07 8.57597825e+04 ! x y z +1.14349612e+03 -1.15014615e+03 -1.13350767e+01 ! vx vy vz +1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill +9.88813712e+03 !particle radius in m +1.06943121e+06 -9.45008765e+06 3.56309722e+04 ! x y z +2.11041887e+03 2.12664792e+02 3.02388980e-01 ! vx vy vz +1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill +1.08983650e+04 !particle radius in m +5.08433832e+06 -9.29067904e+06 4.27842439e+04 ! x y z +1.77269334e+03 9.63287806e+02 7.20636543e-01 ! vx vy vz +1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill +1.27437222e+04 !particle radius in m +2.28470278e+06 -8.96024162e+06 4.66696872e+04 ! x y z +2.09182568e+03 5.58957357e+02 -1.60064381e+01 ! vx vy vz +1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill +5.15400237e+03 !particle radius in m +5.02334401e+06 7.15122722e+06 -2.56747414e+04 ! x y z +-1.82437670e+03 1.28647622e+03 -2.33583185e+00 ! vx vy vz +1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill +7.51992756e+03 !particle radius in m +8.03755250e+06 -5.51691122e+06 -2.97535232e+04 ! x y z +1.18216983e+03 1.74141617e+03 -1.17374833e+01 ! vx vy vz +1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill +1.26569454e+04 !particle radius in m +-3.07464536e+06 -8.53282891e+06 -1.60914047e+04 ! x y z +2.04872286e+03 -7.58617715e+02 -1.15594518e+01 ! vx vy vz +1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill +6.15739547e+03 !particle radius in m +-5.04841460e+06 7.90245442e+06 -3.74769403e+03 ! x y z +-1.79658551e+03 -1.15333901e+03 -1.03989828e+01 ! vx vy vz +1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill +9.40452184e+03 !particle radius in m +-4.42483219e+06 7.92889737e+06 4.84429526e+03 ! x y z +-1.90157556e+03 -1.02851509e+03 3.04297458e+00 ! vx vy vz +1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill +1.03819185e+04 !particle radius in m +-8.11772737e+06 5.17820457e+06 6.33191218e+04 ! x y z +-1.16398577e+03 -1.76329084e+03 -1.46526563e+01 ! vx vy vz +1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill +1.21420799e+04 !particle radius in m +-2.42335217e+06 -1.21748818e+07 5.34958561e+04 ! x y z +1.82657196e+03 -3.58482164e+02 2.17635181e+00 ! vx vy vz +1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill +9.74673448e+03 !particle radius in m +-8.93954505e+06 -4.45366726e+06 9.09497729e+03 ! x y z +9.19578118e+02 -1.84128399e+03 1.10716364e+01 ! vx vy vz +1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill +7.59675917e+03 !particle radius in m +-1.18899005e+07 -1.11121035e+07 7.33607503e+03 ! x y z +1.10060063e+03 -1.20094721e+03 -1.56817575e+01 ! vx vy vz +1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill +8.13412353e+03 !particle radius in m +-1.65295735e+07 6.07637672e+06 3.45373521e+04 ! x y z +-5.42846771e+02 -1.47237923e+03 2.24703732e+00 ! vx vy vz +1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill +7.24844729e+03 !particle radius in m +8.55996783e+06 -1.26469693e+07 -1.46558216e+05 ! x y z +1.40714271e+03 9.26431770e+02 -1.15490272e+01 ! vx vy vz +1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill +1.10917006e+04 !particle radius in m +5.19156391e+06 -2.05131401e+07 3.01682271e+04 ! x y z +1.38483992e+03 3.58833296e+02 7.82967392e-02 ! vx vy vz +1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill +8.62523974e+03 !particle radius in m +-1.04637869e+07 -1.51846657e+06 -3.27030757e+04 ! x y z +3.09759590e+02 -1.99538112e+03 5.67233805e+00 ! vx vy vz +1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill +4.97611563e+03 !particle radius in m +1.03065892e+07 -6.00329704e+05 -2.32121119e+04 ! x y z +1.34736424e+02 2.02883986e+03 3.23964316e+00 ! vx vy vz +1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill +5.60741952e+03 !particle radius in m +-1.14276246e+07 -1.75001038e+06 -9.86471787e+04 ! x y z +2.92929450e+02 -1.89771028e+03 5.40774568e-01 ! vx vy vz +1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill +6.34126039e+03 !particle radius in m +1.88192745e+07 7.35750851e+06 -3.59880986e+04 ! x y z +-5.35957066e+02 1.35808817e+03 -5.10111289e+00 ! vx vy vz +1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill +1.01601058e+04 !particle radius in m +1.11584259e+07 -4.47796771e+06 1.03803467e+04 ! x y z +7.28310338e+02 1.76604469e+03 1.45396412e+01 ! vx vy vz +1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill +6.11251206e+03 !particle radius in m +3.38442251e+06 -9.82784424e+06 -1.36230396e+05 ! x y z +1.90939863e+03 7.30865853e+02 1.53565819e+01 ! vx vy vz +1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill +5.52931152e+03 !particle radius in m +-1.26252231e+07 -6.33455275e+05 -1.30864139e+05 ! x y z +9.33992929e+01 -1.83668276e+03 1.68626587e+00 ! vx vy vz +1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill +3.95688360e+03 !particle radius in m +-1.20379515e+07 7.22168436e+05 8.94591753e+04 ! x y z +-1.09103316e+02 -1.88101208e+03 -4.79548889e-01 ! vx vy vz +1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill +5.97839539e+03 !particle radius in m +9.86523103e+06 -1.83199282e+06 -1.01434913e+05 ! x y z +3.62371838e+02 2.01111356e+03 -2.79275007e+00 ! vx vy vz +1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill +6.83551180e+03 !particle radius in m +-6.51672994e+06 8.58292997e+06 -5.02195539e+04 ! x y z +-1.57720017e+03 -1.21482386e+03 -6.46438464e+00 ! vx vy vz +1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill +1.06723682e+04 !particle radius in m +-6.45748170e+06 -6.60771754e+06 -2.88111990e+04 ! x y z +1.51807464e+03 -1.53717383e+03 -6.96952587e+00 ! vx vy vz +1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill +4.01775686e+03 !particle radius in m +-1.05725448e+07 -5.16101098e+06 -7.22185112e+04 ! x y z +8.09611157e+02 -1.71812375e+03 -2.92698073e+00 ! vx vy vz +1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill +4.77864994e+03 !particle radius in m +1.47903230e+07 -3.70476681e+06 8.67755187e+04 ! x y z +3.95094726e+02 1.62426955e+03 3.16826057e+00 ! vx vy vz +1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill +8.07383748e+03 !particle radius in m +-4.36058679e+05 -9.44156206e+06 -4.16955929e+04 ! x y z +2.12091782e+03 -1.37012120e+02 1.39491466e+01 ! vx vy vz +1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill +1.18046777e+04 !particle radius in m +-1.46392393e+07 1.63813686e+07 8.12078291e+03 ! x y z +-1.02836410e+03 -9.42723860e+02 -1.38765972e+01 ! vx vy vz +1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill +9.27790681e+03 !particle radius in m +9.24634424e+06 -1.31047137e+06 -7.09194003e+04 ! x y z +3.02062155e+02 2.11565604e+03 -9.58265694e+00 ! vx vy vz +1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill +1.26875944e+04 !particle radius in m +-7.40684320e+06 6.13173465e+06 -3.12795630e+04 ! x y z +-1.33749169e+03 -1.62866413e+03 1.56290098e+01 ! vx vy vz +1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill +9.65761978e+03 !particle radius in m +9.78515626e+06 -5.26138525e+05 -7.59982349e+03 ! x y z +1.11181620e+02 2.08934488e+03 -1.89984631e+00 ! vx vy vz +1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill +8.79721090e+03 !particle radius in m +-2.42960077e+06 1.02657010e+07 6.86680195e+04 ! x y z +-1.96613992e+03 -4.70552640e+02 -5.76191698e+00 ! vx vy vz +1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill +1.29531974e+04 !particle radius in m +-2.99090493e+06 -9.38394150e+06 1.22754087e+04 ! x y z +1.96346362e+03 -6.64206351e+02 -1.04286573e+01 ! vx vy vz +1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill +7.34663539e+03 !particle radius in m +-9.16858859e+06 3.17229706e+06 4.94776739e+02 ! x y z +-6.65048356e+02 -2.00655681e+03 -1.69698250e+01 ! vx vy vz +1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill +4.49675212e+03 !particle radius in m +1.02698965e+07 8.30732914e+06 1.14137300e+05 ! x y z +-1.13322876e+03 1.37969911e+03 -4.16855749e+00 ! vx vy vz +1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill +4.62423780e+03 !particle radius in m +-6.04360154e+06 -8.98719524e+06 -6.31025271e+04 ! x y z +1.63921724e+03 -1.11262949e+03 4.86167037e+00 ! vx vy vz +1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill +1.03148143e+04 !particle radius in m +-9.35912101e+06 -1.03642068e+07 -2.18384299e+03 ! x y z +1.30072422e+03 -1.17573948e+03 1.88668155e+00 ! vx vy vz +1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill +1.30814562e+04 !particle radius in m +1.04675718e+07 3.39520028e+06 2.70864639e+04 ! x y z +-5.97065438e+02 1.88145152e+03 -6.95974089e+00 ! vx vy vz +1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill +4.86540530e+03 !particle radius in m +-6.73236505e+06 6.13242839e+06 -2.94703322e+04 ! x y z +-1.45294617e+03 -1.61318512e+03 -5.68499388e+00 ! vx vy vz +1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill +7.59556962e+03 !particle radius in m +4.89468690e+06 -1.07083932e+07 7.90151606e+04 ! x y z +1.76528528e+03 7.71676536e+02 -3.89405176e+00 ! vx vy vz +1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill +1.12715321e+04 !particle radius in m +-1.37917712e+07 -7.88960798e+06 -6.85787993e+04 ! x y z +8.27177105e+02 -1.42633285e+03 -6.22498397e+00 ! vx vy vz +1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill +1.18793884e+04 !particle radius in m +-7.34584547e+06 1.44613839e+07 -9.00207198e+04 ! x y z +-1.43737968e+03 -7.51623709e+02 1.07613671e+01 ! vx vy vz +1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill +1.17356962e+04 !particle radius in m +-2.70350276e+05 -9.01638261e+06 4.48528244e+04 ! x y z +2.19935586e+03 -5.92167058e+01 -1.37345562e+00 ! vx vy vz +1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill +1.20336065e+04 !particle radius in m +-7.93634451e+06 -1.07127629e+07 7.42071719e+04 ! x y z +1.44011604e+03 -1.07152360e+03 -9.74704513e-01 ! vx vy vz +1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill +5.53448930e+03 !particle radius in m +-3.42691664e+06 -9.05425003e+06 -2.11677870e+04 ! x y z +1.93479037e+03 -7.69981245e+02 1.10419971e+01 ! vx vy vz +1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill +6.64595045e+03 !particle radius in m +-9.89233738e+06 -6.27568084e+05 6.18194671e+03 ! x y z +1.37071969e+02 -2.08621493e+03 4.72062753e+00 ! vx vy vz +1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill +5.93131938e+03 !particle radius in m +7.46340614e+06 9.67912332e+06 1.17459472e+04 ! x y z +-1.47885193e+03 1.13911499e+03 4.40806749e+00 ! vx vy vz +1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill +1.22283672e+04 !particle radius in m +6.85478382e+06 1.15701707e+07 7.95650274e+04 ! x y z +-1.53423752e+03 9.32610677e+02 -3.67365305e+00 ! vx vy vz +1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill +4.46580449e+03 !particle radius in m +-4.56370068e+06 1.10908559e+07 1.08265365e+04 ! x y z +-1.75802463e+03 -7.02357275e+02 1.04220113e+01 ! vx vy vz +1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill +5.09070290e+03 !particle radius in m +-1.13385925e+07 2.97597054e+06 -4.72391617e+04 ! x y z +-5.04596574e+02 -1.84477964e+03 1.31785708e-01 ! vx vy vz +1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill +1.10285723e+04 !particle radius in m +-9.23261955e+06 -2.89252814e+05 -5.44687237e+04 ! x y z +6.51671796e+01 -2.14992673e+03 -1.81624856e+00 ! vx vy vz +1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill +6.13224460e+03 !particle radius in m +1.09075289e+06 1.05119561e+07 -3.25858255e+04 ! x y z +-1.99773044e+03 1.99785681e+02 4.03938771e+00 ! vx vy vz +1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill +5.39522124e+03 !particle radius in m +5.52516207e+06 8.11277010e+06 -1.90841913e+04 ! x y z +-1.72426706e+03 1.18446430e+03 1.21936026e+01 ! vx vy vz +1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill +9.52144317e+03 !particle radius in m +-4.65951061e+05 1.02295404e+07 5.94558150e+04 ! x y z +-2.05121750e+03 -9.71822097e+01 -1.16001667e+01 ! vx vy vz +1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill +1.28507675e+04 !particle radius in m +1.19722664e+07 -1.64049398e+06 8.58821045e+04 ! x y z +2.34549789e+02 1.85980680e+03 1.09499792e+01 ! vx vy vz +1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill +6.87517236e+03 !particle radius in m +-1.08162591e+06 1.14927584e+07 -9.76059282e+04 ! x y z +-1.93051044e+03 -1.62077695e+02 -7.14665732e+00 ! vx vy vz +1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill +1.14550311e+04 !particle radius in m +-1.95233176e+06 1.02927697e+07 -2.00724108e+04 ! x y z +-1.97843014e+03 -3.85350221e+02 1.08497627e+01 ! vx vy vz +1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill +1.02022521e+04 !particle radius in m +6.15222182e+06 -9.75312655e+06 1.28837233e+04 ! x y z +1.61895964e+03 1.04728187e+03 -1.26702028e+01 ! vx vy vz +1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill +3.81889352e+03 !particle radius in m +1.70431842e+07 -2.72492428e+06 -3.86028806e+04 ! x y z +2.83672553e+02 1.54910187e+03 2.07904021e+01 ! vx vy vz +1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill +6.24153051e+03 !particle radius in m +8.01774299e+06 8.09902023e+06 -2.62747132e+04 ! x y z +-1.35353621e+03 1.36013542e+03 7.64569924e+00 ! vx vy vz +1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill +9.14684621e+03 !particle radius in m +3.29923819e+06 8.68923966e+06 -8.36350791e+03 ! x y z +-2.01828563e+03 7.65043187e+02 -1.46373885e+01 ! vx vy vz +1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill +1.21866490e+04 !particle radius in m +9.48630114e+06 1.31203942e+07 7.51325437e+04 ! x y z +-1.33995755e+03 9.53539277e+02 6.46323587e+00 ! vx vy vz +1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill +5.43931264e+03 !particle radius in m +9.01020062e+06 -9.02772630e+05 1.38704984e+04 ! x y z +2.41367313e+02 2.16126190e+03 7.68455544e+00 ! vx vy vz +1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill +1.23597622e+04 !particle radius in m +-8.09665807e+06 -7.58547860e+06 3.14674691e+04 ! x y z +1.35669172e+03 -1.43426598e+03 7.37210686e+00 ! vx vy vz +1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill +6.63452075e+03 !particle radius in m +4.28160432e+06 -1.65281080e+07 -8.26509117e+03 ! x y z +1.53190957e+03 3.88184614e+02 1.24754943e+01 ! vx vy vz +1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill +8.88282855e+03 !particle radius in m +6.49256441e+05 9.31973535e+06 4.08167273e+04 ! x y z +-2.15470427e+03 1.51716056e+02 1.89189290e+01 ! vx vy vz +1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill +1.19572707e+04 !particle radius in m +-9.20065102e+05 -9.43874908e+06 -2.04752392e+04 ! x y z +2.12475295e+03 -2.35100552e+02 7.76090899e+00 ! vx vy vz +1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill +4.99450465e+03 !particle radius in m +4.31072822e+06 9.13284291e+06 4.14102022e+04 ! x y z +-1.85476950e+03 9.03328979e+02 -1.46829604e+00 ! vx vy vz +1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill +4.68119614e+03 !particle radius in m +-6.79093976e+06 8.03119054e+06 -7.05744289e+04 ! x y z +-1.52734163e+03 -1.29554248e+03 1.30181520e+01 ! vx vy vz +1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill +1.02582029e+04 !particle radius in m +-1.04804105e+07 -1.20577935e+06 3.31638534e+04 ! x y z +2.13664871e+02 -2.01046058e+03 -7.98031732e+00 ! vx vy vz +1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill +1.10767611e+04 !particle radius in m +-7.18067628e+06 -6.29465669e+06 -5.18935266e+04 ! x y z +1.39765048e+03 -1.60192161e+03 7.92302858e+00 ! vx vy vz +1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill +1.22495029e+04 !particle radius in m +-8.66772744e+06 -7.93918786e+06 3.66255031e+04 ! x y z +1.28753321e+03 -1.40570993e+03 1.04442422e+01 ! vx vy vz +1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill +5.77278675e+03 !particle radius in m +-4.13157626e+06 -2.06445199e+07 1.15039089e+05 ! x y z +1.39928757e+03 -2.67584358e+02 -6.80453610e-01 ! vx vy vz +1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill +1.24869874e+04 !particle radius in m +2.86527664e+04 -1.30135384e+07 9.46703562e+04 ! x y z +1.82137923e+03 3.52269823e+01 6.17347097e+00 ! vx vy vz +1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill +8.27206772e+03 !particle radius in m +9.61204633e+06 2.11550317e+06 -1.01612254e+05 ! x y z +-4.54369173e+02 2.03897871e+03 -3.85711771e-01 ! vx vy vz +1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill +4.77668965e+03 !particle radius in m +8.56305753e+06 3.83573915e+06 2.26223304e+04 ! x y z +-8.87660780e+02 1.95010957e+03 -6.47697797e+00 ! vx vy vz +1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill +7.71689197e+03 !particle radius in m +7.06863637e+05 1.69810271e+07 1.26105980e+05 ! x y z +-1.58048060e+03 4.41879800e+01 4.04119984e+00 ! vx vy vz +1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill +5.87643861e+03 !particle radius in m +-5.44027365e+06 8.90923003e+06 -1.91872642e+02 ! x y z +-1.72578284e+03 -1.05328021e+03 2.75794079e+00 ! vx vy vz +1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill +7.82919405e+03 !particle radius in m +-3.84222450e+06 8.52500722e+06 5.13399679e+04 ! x y z +-1.95749070e+03 -8.88579162e+02 4.05131851e+00 ! vx vy vz +1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill +6.45958637e+03 !particle radius in m +-1.04764717e+07 1.11206338e+07 -1.83995722e+05 ! x y z +-1.21578555e+03 -1.15954535e+03 1.26396174e+00 ! vx vy vz +1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill +1.04808440e+04 !particle radius in m +9.91080561e+06 7.33219213e+06 -1.96182672e+04 ! x y z +-1.10289136e+03 1.51166868e+03 8.55255590e-01 ! vx vy vz +1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill +4.63255599e+03 !particle radius in m +-6.34641421e+06 1.11675051e+07 -1.12534756e+05 ! x y z +-1.58363204e+03 -9.07829510e+02 -3.73545248e+00 ! vx vy vz +1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill +8.31806943e+03 !particle radius in m +-9.60844812e+06 -1.70444496e+07 1.09767306e+04 ! x y z +1.30061497e+03 -7.22601223e+02 5.04626944e+00 ! vx vy vz +1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill +6.70205230e+03 !particle radius in m +3.30176954e+06 8.21216858e+06 2.33957768e+04 ! x y z +-2.06647672e+03 8.14303416e+02 -3.27813568e-01 ! vx vy vz +1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill +6.98637011e+03 !particle radius in m +-3.56455427e+06 1.04513814e+07 9.13561134e+04 ! x y z +-1.86227880e+03 -6.46156347e+02 -1.84370397e+01 ! vx vy vz +1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill +1.22955075e+04 !particle radius in m +1.01719252e+07 6.26688339e+05 3.49609062e+04 ! x y z +-1.13334526e+02 2.03525342e+03 3.73100714e+00 ! vx vy vz +1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill +1.15884099e+04 !particle radius in m +6.79475129e+06 -6.15725925e+06 -4.34005132e+04 ! x y z +1.43607392e+03 1.60794893e+03 9.89854216e+00 ! vx vy vz +1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill +1.13200016e+04 !particle radius in m +3.31203426e+06 1.26977181e+07 1.61925621e+04 ! x y z +-1.75290457e+03 4.51047834e+02 -6.90112778e+00 ! vx vy vz +1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill +4.85825960e+03 !particle radius in m +-5.28465980e+06 9.08656562e+06 5.60870045e+04 ! x y z +-1.73422854e+03 -1.05901334e+03 1.51078632e+01 ! vx vy vz +1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill +1.03155828e+04 !particle radius in m +-4.41381530e+06 -1.31465095e+07 1.23851466e+05 ! x y z +1.64911245e+03 -5.92288633e+02 -5.00592030e+00 ! vx vy vz +1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill +4.71217038e+03 !particle radius in m +1.58308263e+07 -4.73628624e+05 -2.19545030e+04 ! x y z +5.84709400e+01 1.64641342e+03 -6.62703110e+00 ! vx vy vz +1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill +1.19920145e+04 !particle radius in m +9.12968341e+06 9.11733516e+04 1.78969232e+04 ! x y z +-5.65016782e+01 2.18069451e+03 -3.98571279e+00 ! vx vy vz +1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill +9.93248268e+03 !particle radius in m +8.78149411e+06 -3.19216182e+06 -1.60141388e+04 ! x y z +7.37216338e+02 1.99835772e+03 -1.41820401e+01 ! vx vy vz +1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill +4.85898712e+03 !particle radius in m +1.29860619e+07 -8.19871711e+06 9.27457802e+04 ! x y z +8.67118976e+02 1.40272209e+03 6.07478118e+00 ! vx vy vz +1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill +8.57284899e+03 !particle radius in m +6.74596853e+06 7.83340922e+06 1.66421965e+04 ! x y z +-1.53458492e+03 1.36487940e+03 -3.08963768e+00 ! vx vy vz +1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill +1.02996416e+04 !particle radius in m +9.97004957e+06 -4.03326891e+06 1.22229820e+04 ! x y z +7.36970819e+02 1.85756062e+03 1.86046036e+00 ! vx vy vz +1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill +1.07775819e+04 !particle radius in m +1.48289776e+07 -3.18422896e+06 -1.95106854e+04 ! x y z +3.65562411e+02 1.64235740e+03 -1.78622262e+00 ! vx vy vz +1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill +7.78250193e+03 !particle radius in m +-1.82004676e+07 -4.58264120e+06 -8.80114368e+04 ! x y z +3.67043849e+02 -1.45746561e+03 3.81482960e+00 ! vx vy vz +1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill +7.70585221e+03 !particle radius in m +9.71830285e+06 -2.79239080e+06 -1.21765919e+05 ! x y z +5.86439180e+02 1.97016309e+03 1.41983570e+00 ! vx vy vz +1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill +9.21105533e+03 !particle radius in m +-6.87422066e+06 -1.61812284e+07 3.33849657e+04 ! x y z +1.44453834e+03 -6.12213456e+02 5.14798988e-01 ! vx vy vz +1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill +7.91069782e+03 !particle radius in m +-4.40453318e+05 -9.00359396e+06 2.55701381e+04 ! x y z +2.18504558e+03 -1.66090270e+02 -5.38264979e+00 ! vx vy vz +1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill +7.17158897e+03 !particle radius in m +2.19604188e+07 6.04779191e+06 -2.54791200e+04 ! x y z +-3.65663685e+02 1.33014017e+03 -8.36197344e+00 ! vx vy vz +1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill +8.95226931e+03 !particle radius in m +6.76787299e+06 -6.88896584e+06 -7.92738002e+04 ! x y z +1.51846448e+03 1.48693289e+03 -8.03074046e+00 ! vx vy vz +1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill +4.42181219e+03 !particle radius in m +-6.18157795e+06 9.50909765e+06 -6.31347661e+04 ! x y z +-1.61918243e+03 -1.05906497e+03 6.51625165e+00 ! vx vy vz +1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill +7.65074804e+03 !particle radius in m +1.22370591e+07 -7.52313059e+06 -3.37590788e+04 ! x y z +9.11513184e+02 1.46224236e+03 1.38515615e-01 ! vx vy vz +1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill +1.21795436e+04 !particle radius in m +7.05236290e+06 -8.64870991e+06 -6.91330978e+04 ! x y z +1.52616946e+03 1.23310907e+03 1.29403411e+01 ! vx vy vz +1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill +8.43083433e+03 !particle radius in m +7.80864005e+06 -4.26482545e+06 -2.18013868e+04 ! x y z +1.03496940e+03 1.94204946e+03 1.21677642e+00 ! vx vy vz +1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill +7.82381744e+03 !particle radius in m +5.75136921e+06 -6.66165297e+06 -1.60013139e+04 ! x y z +1.66229394e+03 1.46936203e+03 -7.73684722e+00 ! vx vy vz +1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill +6.87941995e+03 !particle radius in m +-1.22562478e+06 9.13823949e+06 -4.37327451e+04 ! x y z +-2.12169150e+03 -2.88517939e+02 -1.49392473e+00 ! vx vy vz +1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill +1.30453064e+04 !particle radius in m +7.69914612e+06 -9.13021219e+06 -4.57648993e+04 ! x y z +1.43992781e+03 1.22291153e+03 -3.96856343e+00 ! vx vy vz +1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill +5.45572052e+03 !particle radius in m +-1.04553344e+07 2.52527420e+06 -1.08628658e+05 ! x y z +-4.86679714e+02 -1.92107394e+03 9.45357951e+00 ! vx vy vz +1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill +9.00870821e+03 !particle radius in m +1.39140966e+07 -6.41849608e+05 1.71228409e+05 ! x y z +6.24928406e+01 1.73760043e+03 1.32646652e+01 ! vx vy vz +1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill +9.61198288e+03 !particle radius in m +-4.68891691e+06 -8.65727522e+06 1.38785454e+05 ! x y z +1.83563800e+03 -9.88706825e+02 -2.51608816e+00 ! vx vy vz +1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill +1.30631485e+04 !particle radius in m +2.13007974e+05 9.18824852e+06 -3.80121317e+04 ! x y z +-2.12834457e+03 7.70592587e+01 -1.61308426e+01 ! vx vy vz +1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill +5.90853066e+03 !particle radius in m +-1.00652683e+07 -2.07792286e+06 6.26672177e+04 ! x y z +4.27478087e+02 -2.00526834e+03 1.11714666e+01 ! vx vy vz +1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill +9.50477579e+03 !particle radius in m +-9.25272310e+06 4.61553055e+05 2.28064653e+03 ! x y z +-1.21224875e+02 -2.16490532e+03 1.16467209e+01 ! vx vy vz +1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill +4.31241077e+03 !particle radius in m +5.99768112e+06 7.18836176e+06 1.30862988e+04 ! x y z +-1.63913963e+03 1.36776567e+03 -1.13032580e+01 ! vx vy vz +1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill +4.53858074e+03 !particle radius in m +2.69549465e+06 -2.13775506e+07 -2.70977944e+04 ! x y z +1.39480467e+03 1.95781010e+02 -1.22454588e+01 ! vx vy vz +1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill +4.43620698e+03 !particle radius in m +-3.14237843e+06 -9.60218811e+06 -6.89227352e+04 ! x y z +1.95665546e+03 -6.62178945e+02 -9.36372693e+00 ! vx vy vz +1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill +5.44928691e+03 !particle radius in m +3.78692528e+06 8.59540985e+06 -3.20061356e+04 ! x y z +-1.96752618e+03 8.51121277e+02 -1.51485463e+00 ! vx vy vz +1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill +4.33163678e+03 !particle radius in m +-9.00146283e+06 -6.41911956e+06 6.65091457e+04 ! x y z +1.12404780e+03 -1.59135698e+03 -9.77302741e-01 ! vx vy vz +1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill +4.59668490e+03 !particle radius in m +8.54824866e+06 -3.66634423e+06 -4.89483929e+04 ! x y z +8.47956516e+02 1.98291118e+03 3.60869553e+00 ! vx vy vz +1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill +1.27155989e+04 !particle radius in m +1.95697614e+07 6.28199416e+06 9.65119660e+04 ! x y z +-4.43211708e+02 1.34690163e+03 -9.62234736e+00 ! vx vy vz +1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill +3.84628408e+03 !particle radius in m +-1.58193926e+07 -1.35536390e+07 8.45439846e+04 ! x y z +9.33923428e+02 -1.08590633e+03 1.18308309e+01 ! vx vy vz +1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill +1.22978804e+04 !particle radius in m +1.57128973e+07 -6.39323202e+05 1.78188715e+04 ! x y z +6.88318620e+01 1.65105864e+03 3.96550811e+00 ! vx vy vz +1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill +7.42478017e+03 !particle radius in m +4.15871481e+06 9.23348984e+06 -2.00218047e+04 ! x y z +-1.86711988e+03 8.27796037e+02 -1.71003540e+00 ! vx vy vz +1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill +8.20734629e+03 !particle radius in m +1.01202151e+06 -9.34669057e+06 -3.05255233e+04 ! x y z +2.12896558e+03 2.37084406e+02 2.06490854e+00 ! vx vy vz +1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill +1.30090572e+04 !particle radius in m +-1.21933337e+07 -1.85215644e+04 -9.08532291e+04 ! x y z +3.99379627e+00 -1.85775511e+03 -5.11110124e+00 ! vx vy vz +1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill +1.19406098e+04 !particle radius in m +-3.43283359e+06 -8.55413032e+06 1.39837760e+04 ! x y z +2.01077915e+03 -7.56017909e+02 1.02863591e+01 ! vx vy vz +1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill +1.18773237e+04 !particle radius in m +-1.54011563e+06 -1.27126780e+07 7.48528448e+04 ! x y z +1.83173381e+03 -2.00582211e+02 -5.46653115e+00 ! vx vy vz +1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill +6.87480407e+03 !particle radius in m +1.51139781e+07 1.12076930e+06 -2.10697882e+04 ! x y z +-1.50737141e+02 1.67679110e+03 1.30972258e+01 ! vx vy vz +1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill +7.91455193e+03 !particle radius in m +4.75991835e+06 1.10017280e+07 2.88714064e+04 ! x y z +-1.75624695e+03 7.27843788e+02 7.23217325e+00 ! vx vy vz +1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill +4.72944737e+03 !particle radius in m +-7.70162983e+06 -4.41409406e+06 2.58165729e+04 ! x y z +1.05981797e+03 -1.92161597e+03 -1.53504172e+01 ! vx vy vz +1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill +7.84581210e+03 !particle radius in m +8.79063205e+06 8.04366554e+06 -1.54947665e+04 ! x y z +-1.27701177e+03 1.39840130e+03 -2.40220571e+01 ! vx vy vz +1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill +6.12239510e+03 !particle radius in m +8.04074117e+06 9.64104753e+06 -4.45617960e+04 ! x y z +-1.39128132e+03 1.17398843e+03 -6.62327287e+00 ! vx vy vz +1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill +7.10064233e+03 !particle radius in m +-6.66261606e+06 6.71220967e+06 -3.99553759e+04 ! x y z +-1.50278601e+03 -1.49037570e+03 1.28507761e+01 ! vx vy vz +1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill +5.53673908e+03 !particle radius in m +7.85675354e+06 -1.09086703e+07 6.52437187e+03 ! x y z +1.47253647e+03 1.04716710e+03 -2.78745894e+00 ! vx vy vz +1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill +7.61773407e+03 !particle radius in m +1.20372202e+06 -1.12995198e+07 -7.66376724e+04 ! x y z +1.92159252e+03 2.10022167e+02 1.77035004e+01 ! vx vy vz +1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill +6.31351866e+03 !particle radius in m +1.34520987e+06 -1.14199869e+07 -1.06162090e+05 ! x y z +1.91854210e+03 2.27440517e+02 -2.86612981e+00 ! vx vy vz +1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill +4.47493492e+03 !particle radius in m +-7.81637690e+06 6.77408689e+06 -7.41358369e+04 ! x y z +-1.33330305e+03 -1.52276964e+03 -6.38372634e+00 ! vx vy vz +1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill +1.28727553e+04 !particle radius in m +-9.27394458e+06 2.25024078e+06 5.28422677e+04 ! x y z +-5.05715454e+02 -2.06066723e+03 1.34558284e+01 ! vx vy vz +1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill +3.80089688e+03 !particle radius in m +7.39246396e+06 7.02828616e+06 -5.45617263e+04 ! x y z +-1.39190312e+03 1.48134140e+03 -3.43671966e-01 ! vx vy vz +1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill +7.97343121e+03 !particle radius in m +1.36549158e+07 -1.27792544e+07 5.75773322e+03 ! x y z +1.01857297e+03 1.11983894e+03 2.42317366e+00 ! vx vy vz +1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill +6.07807803e+03 !particle radius in m +8.51250762e+06 3.74715124e+06 -3.66793926e+04 ! x y z +-9.06822201e+02 1.95546956e+03 -1.35124063e+01 ! vx vy vz +1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill +7.54934486e+03 !particle radius in m +1.11622021e+07 6.11280266e+06 1.12048087e+05 ! x y z +-8.90669182e+02 1.59847160e+03 8.83220737e+00 ! vx vy vz +1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill +8.11442267e+03 !particle radius in m +-3.59837711e+06 8.94095859e+06 9.64175823e+04 ! x y z +-1.96856779e+03 -7.62947641e+02 3.79489804e+00 ! vx vy vz +1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill +9.83267321e+03 !particle radius in m +1.29422873e+06 -9.18423777e+06 1.13052561e+04 ! x y z +2.13217255e+03 3.09173468e+02 -6.46064530e+00 ! vx vy vz +1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill +1.00567087e+04 !particle radius in m +7.55024995e+06 5.55902389e+06 2.47186332e+04 ! x y z +-1.28842830e+03 1.68728817e+03 -8.10804757e+00 ! vx vy vz +1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill +9.21408381e+03 !particle radius in m +1.88151667e+07 3.33001002e+06 3.73324839e+04 ! x y z +-2.30107887e+02 1.46487898e+03 2.65739699e+00 ! vx vy vz +1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill +1.11735897e+04 !particle radius in m +5.44170973e+06 -7.58711950e+06 -1.68342575e+04 ! x y z +1.71954001e+03 1.27240084e+03 9.88806581e+00 ! vx vy vz +1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill +1.06695963e+04 !particle radius in m +-8.65530733e+06 -7.08569033e+06 -2.23265845e+04 ! x y z +1.25758504e+03 -1.50248441e+03 -3.62008173e-01 ! vx vy vz +1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill +1.19525480e+04 !particle radius in m +-5.77529746e+06 -7.17376952e+06 -5.18219866e+04 ! x y z +1.69375434e+03 -1.34010802e+03 -1.50223596e+01 ! vx vy vz +1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill +6.04226309e+03 !particle radius in m +-1.06219205e+07 -3.45583164e+06 7.57878163e+04 ! x y z +6.00669506e+02 -1.87043192e+03 1.96458906e+01 ! vx vy vz +1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill +6.87550328e+03 !particle radius in m +6.08800715e+06 7.31025693e+06 2.11892900e+04 ! x y z +-1.62733880e+03 1.34749417e+03 4.48661776e+00 ! vx vy vz +1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill +6.87815602e+03 !particle radius in m +1.11973713e+07 -6.89047737e+06 8.77501535e+04 ! x y z +9.27451132e+02 1.53222806e+03 7.89688850e+00 ! vx vy vz +1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill +4.09618861e+03 !particle radius in m +-7.43211722e+06 -5.81999467e+06 -9.65323707e+03 ! x y z +1.33310134e+03 -1.66490648e+03 -3.67453264e+00 ! vx vy vz +1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill +1.07852562e+04 !particle radius in m +-1.08902550e+07 -5.66422797e+06 1.03662075e+04 ! x y z +8.63087680e+02 -1.66058015e+03 -2.16763143e+00 ! vx vy vz +1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill +8.90430770e+03 !particle radius in m +5.12124924e+06 1.04057141e+07 -2.37917852e+04 ! x y z +-1.74067826e+03 8.20317248e+02 -1.61468664e+01 ! vx vy vz +1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill +6.04914386e+03 !particle radius in m +-1.68906115e+06 -1.36100786e+07 1.12141407e+05 ! x y z +1.74322371e+03 -2.27430898e+02 1.33662045e+01 ! vx vy vz +1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill +8.10517587e+03 !particle radius in m +1.55662567e+07 4.00286637e+06 -1.79247131e+05 ! x y z +-4.13259864e+02 1.59216194e+03 8.36151351e+00 ! vx vy vz +1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill +1.03417203e+04 !particle radius in m +-1.88242941e+07 1.06236844e+07 -6.10248603e+04 ! x y z +-7.07744890e+02 -1.22126213e+03 4.18101860e+00 ! vx vy vz +1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill +1.03781744e+04 !particle radius in m +6.54563477e+06 9.67513797e+06 -6.81578535e+04 ! x y z +-1.58341801e+03 1.07058771e+03 -6.04814628e-01 ! vx vy vz +1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill +8.82174250e+03 !particle radius in m +1.04054207e+07 -4.16069278e+06 2.73610807e+04 ! x y z +7.03766909e+02 1.81842161e+03 8.81427302e+00 ! vx vy vz +1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill +4.98765792e+03 !particle radius in m +3.08072328e+06 -1.16153087e+07 4.07709281e+04 ! x y z +1.83456791e+03 4.73999302e+02 7.43116200e+00 ! vx vy vz +1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill +5.46929730e+03 !particle radius in m +6.34509950e+06 -8.39632633e+06 3.00680333e+04 ! x y z +1.60571507e+03 1.18326876e+03 -2.08403941e+00 ! vx vy vz +1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill +5.04330099e+03 !particle radius in m +1.11214656e+07 1.24533693e+06 -1.06574136e+05 ! x y z +-2.16829963e+02 1.93905765e+03 1.21579926e+01 ! vx vy vz +1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill +1.13066823e+04 !particle radius in m +-8.88143306e+06 -3.59836181e+06 5.33136699e+04 ! x y z +8.14785566e+02 -1.96550951e+03 6.43084310e+00 ! vx vy vz +1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill +7.00888103e+03 !particle radius in m +-8.26948189e+06 -7.55777650e+06 1.90589282e+04 ! x y z +1.31251337e+03 -1.45641325e+03 -2.75253497e+00 ! vx vy vz +1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill +3.99006780e+03 !particle radius in m +-8.76369433e+06 5.12820302e+06 4.83723083e+04 ! x y z +-1.02986001e+03 -1.78262989e+03 -1.16887378e+01 ! vx vy vz +1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill +1.07181325e+04 !particle radius in m +8.77351236e+06 5.86805867e+06 7.03132721e+04 ! x y z +-1.14557695e+03 1.66192575e+03 2.25245099e+00 ! vx vy vz +1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill +6.45209798e+03 !particle radius in m +2.81170524e+06 9.19584888e+06 4.45600518e+04 ! x y z +-2.01744512e+03 6.24046260e+02 -9.89046691e+00 ! vx vy vz +1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill +6.24242232e+03 !particle radius in m +-9.87293199e+06 -1.42461669e+06 -2.08948330e+04 ! x y z +2.77302880e+02 -2.05434640e+03 1.23835967e+01 ! vx vy vz +1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill +1.13006727e+04 !particle radius in m +-3.58991165e+06 -1.30771532e+07 4.60336444e+04 ! x y z +1.69912089e+03 -4.85176809e+02 -8.42271300e+00 ! vx vy vz +1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill +1.08072599e+04 !particle radius in m +-9.30543267e+06 -1.69593678e+06 7.96573126e+04 ! x y z +3.79186148e+02 -2.10571304e+03 -2.17512876e+01 ! vx vy vz +1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill +6.19269515e+03 !particle radius in m +-3.38260922e+06 8.95675600e+06 -9.15710109e+04 ! x y z +-1.98063128e+03 -7.58924908e+02 1.62762983e+01 ! vx vy vz +1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill +7.59089850e+03 !particle radius in m +9.06470291e+06 3.39698455e+06 -1.93072359e+04 ! x y z +-7.42646003e+02 1.96423004e+03 3.04319746e+00 ! vx vy vz +1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill +7.10464881e+03 !particle radius in m +-8.28344816e+06 -4.56542130e+06 -3.98741155e+04 ! x y z +9.81538136e+02 -1.88759078e+03 8.61570104e+00 ! vx vy vz +1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill +8.45143607e+03 !particle radius in m +9.83373151e+06 4.43940145e+06 2.01558777e+04 ! x y z +-8.55397447e+02 1.79285028e+03 -1.01803709e+01 ! vx vy vz +1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill +1.26098721e+04 !particle radius in m +6.20736435e+06 7.70565657e+06 2.01353242e+04 ! x y z +-1.62930967e+03 1.30802298e+03 1.80300563e+01 ! vx vy vz +1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill +9.28294621e+03 !particle radius in m +-1.21242621e+07 -1.29944427e+07 9.45840193e+03 ! x y z +1.14488121e+03 -1.06447129e+03 8.51817054e-01 ! vx vy vz +1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill +1.05091333e+04 !particle radius in m +-9.34416446e+04 9.14288304e+06 8.29702341e+03 ! x y z +-2.15581546e+03 -1.85313701e+01 1.24100830e+00 ! vx vy vz +1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill +1.14602223e+04 !particle radius in m +-8.56201175e+06 -4.77007031e+06 6.27239711e+04 ! x y z +1.04809893e+03 -1.81527422e+03 -2.35300971e+00 ! vx vy vz +1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill +8.74246630e+03 !particle radius in m +9.33774261e+06 -3.80575834e+06 3.61612768e+04 ! x y z +7.89084549e+02 1.90660726e+03 1.55750455e+01 ! vx vy vz +1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill +9.51991482e+03 !particle radius in m +1.44814086e+05 -9.02785011e+06 -7.62099316e+03 ! x y z +2.17482769e+03 2.31217788e+01 4.51562127e+00 ! vx vy vz +1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill +4.21772425e+03 !particle radius in m +2.68337698e+06 1.12799171e+07 -1.92110080e+04 ! x y z +-1.86815076e+03 4.16102947e+02 -8.29271140e-01 ! vx vy vz +1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill +1.07390093e+04 !particle radius in m +-8.56711815e+06 -3.15713404e+06 3.97972006e+03 ! x y z +7.43604689e+02 -2.02339459e+03 6.66994916e+00 ! vx vy vz +1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill +7.77378347e+03 !particle radius in m +2.18747509e+06 8.65395918e+06 -2.06536040e+04 ! x y z +-2.15725804e+03 5.30856591e+02 2.37348618e+00 ! vx vy vz +1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill +1.11701303e+04 !particle radius in m +7.66628600e+06 -1.17727557e+07 -1.47420679e+04 ! x y z +1.47098208e+03 9.52353449e+02 1.59639874e+01 ! vx vy vz +1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill +1.11391918e+04 !particle radius in m +1.04264792e+07 -2.74372425e+06 3.12865429e+04 ! x y z +5.41650708e+02 1.91683777e+03 -8.25764712e-01 ! vx vy vz +1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill +8.61034631e+03 !particle radius in m +-3.55923980e+06 -8.64968069e+06 1.79106442e+03 ! x y z +1.99649530e+03 -7.67245271e+02 -5.93442801e+00 ! vx vy vz +1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill +8.34427553e+03 !particle radius in m +9.42893053e+06 2.45878278e+05 -4.57214896e+04 ! x y z +-6.01176022e+01 2.13776727e+03 1.81291767e+01 ! vx vy vz +1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill +5.41136566e+03 !particle radius in m +9.07031967e+06 -2.25767487e+06 5.83955838e+03 ! x y z +5.13475058e+02 2.05838222e+03 2.17889632e+00 ! vx vy vz +1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill +5.96520618e+03 !particle radius in m +-7.87040592e+06 9.69728016e+06 -1.66849672e+03 ! x y z +-1.42992939e+03 -1.17418658e+03 -3.60129869e+00 ! vx vy vz +1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill +6.04352860e+03 !particle radius in m +1.32660339e+07 5.77686809e+06 1.35800303e+05 ! x y z +-6.62231218e+02 1.59103506e+03 -3.43945323e+00 ! vx vy vz +1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill +9.11948377e+03 !particle radius in m +-1.01101796e+07 -4.73633978e+06 1.92223885e+04 ! x y z +8.16987783e+02 -1.78318056e+03 8.86814927e+00 ! vx vy vz +1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill +7.17970170e+03 !particle radius in m +-1.00157479e+07 1.12142854e+07 -2.29871580e+04 ! x y z +-1.26146743e+03 -1.12281660e+03 -9.84657732e+00 ! vx vy vz +1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill +1.27922430e+04 !particle radius in m +-8.01070020e+06 -7.68441073e+06 -7.44586443e+03 ! x y z +1.37227167e+03 -1.42837223e+03 -3.04293724e+00 ! vx vy vz +1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill +6.59903940e+03 !particle radius in m +5.94423414e+06 -6.60015867e+06 3.79489917e+04 ! x y z +1.64871713e+03 1.48917509e+03 4.06312752e+00 ! vx vy vz +1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill +1.26263329e+04 !particle radius in m +-3.52967631e+06 8.16512241e+06 -2.51085986e+04 ! x y z +-2.00672046e+03 -8.99089812e+02 1.47195859e+01 ! vx vy vz +1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill +5.15573627e+03 !particle radius in m +8.67857522e+06 6.03654833e+06 6.58011140e+03 ! x y z +-1.13872966e+03 1.66817442e+03 2.18662162e+01 ! vx vy vz +1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill +9.80349206e+03 !particle radius in m +-4.55569332e+06 1.00472663e+07 8.70354064e+03 ! x y z +-1.80149559e+03 -7.99810234e+02 3.42249675e-01 ! vx vy vz +1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill +9.92677698e+03 !particle radius in m +9.14438839e+06 8.39253082e+06 -8.86556588e+04 ! x y z +-1.26689180e+03 1.34538142e+03 -8.40350285e+00 ! vx vy vz +1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill +6.84228595e+03 !particle radius in m +7.97751328e+06 8.67584783e+06 5.30436727e+04 ! x y z +-1.38366127e+03 1.29303381e+03 -8.41467876e+00 ! vx vy vz +1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill +7.72425527e+03 !particle radius in m +-5.79048975e+06 6.93664576e+06 1.29124985e+04 ! x y z +-1.68001209e+03 -1.40612278e+03 -3.61171376e+00 ! vx vy vz +1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill +1.26029852e+04 !particle radius in m +-5.16609529e+06 9.03539760e+06 5.58960613e+04 ! x y z +-1.76517041e+03 -1.00560177e+03 -5.00965832e+00 ! vx vy vz +1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill +6.09788969e+03 !particle radius in m +1.46424048e+07 -1.15689038e+07 3.27414078e+04 ! x y z +9.47675088e+02 1.20085208e+03 1.06976469e+01 ! vx vy vz +1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill +6.73063203e+03 !particle radius in m +1.01236173e+07 1.45579667e+06 5.15839678e+04 ! x y z +-2.87224826e+02 2.02832432e+03 -4.14184381e+00 ! vx vy vz +1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill +3.85889430e+03 !particle radius in m +7.23258453e+06 4.97813060e+06 -4.38592192e+03 ! x y z +-1.24479041e+03 1.83714641e+03 -1.95822638e+01 ! vx vy vz +1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill +4.23020736e+03 !particle radius in m +8.93601994e+06 -6.94569357e+05 -6.12210199e+02 ! x y z +2.19917996e+02 2.16082384e+03 -1.54527155e+01 ! vx vy vz +1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill +1.29822323e+04 !particle radius in m +8.82738308e+06 -7.76404080e+06 8.11338370e+04 ! x y z +1.26378234e+03 1.44510358e+03 2.18294651e+00 ! vx vy vz +1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill +8.40166656e+03 !particle radius in m +-1.07812933e+07 -9.62734933e+06 -5.03390757e+03 ! x y z +1.12256505e+03 -1.29339213e+03 -5.66212341e+00 ! vx vy vz +1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill +8.02864474e+03 !particle radius in m +-6.42251747e+06 -6.74488620e+06 7.04602772e+04 ! x y z +1.54144883e+03 -1.48324937e+03 1.60342159e+01 ! vx vy vz +1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill +6.62929998e+03 !particle radius in m +9.47929213e+06 -2.19579661e+06 -3.25100566e+04 ! x y z +4.68213030e+02 2.04336200e+03 2.65890903e+00 ! vx vy vz +1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill +1.16296336e+04 !particle radius in m +-1.05077611e+07 -1.31085244e+06 7.30464724e+04 ! x y z +2.82650675e+02 -1.98548135e+03 -1.05658937e+01 ! vx vy vz +1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill +4.30356095e+03 !particle radius in m +-9.66162364e+06 4.23926500e+05 -1.22905037e+04 ! x y z +-9.71624638e+01 -2.08984070e+03 2.75014649e+00 ! vx vy vz +1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill +8.17962300e+03 !particle radius in m +9.30519559e+06 1.02777991e+07 -1.35151955e+04 ! x y z +-1.30832060e+03 1.17931837e+03 4.96678180e+00 ! vx vy vz +1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill +8.60393924e+03 !particle radius in m +-5.38712062e+06 -9.43582755e+06 -1.42962613e+04 ! x y z +1.72402431e+03 -9.72573668e+02 -5.35637349e-01 ! vx vy vz +1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill +3.77403501e+03 !particle radius in m +-7.15437615e+06 -1.57030040e+07 1.86249551e+05 ! x y z +1.42003546e+03 -6.56667148e+02 -3.41426138e+00 ! vx vy vz +1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill +6.75023558e+03 !particle radius in m +5.41844043e+06 -7.25472299e+06 -9.37968266e+03 ! x y z +1.74397758e+03 1.29517496e+03 1.90126636e-01 ! vx vy vz +1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill +1.22359443e+04 !particle radius in m +1.22229448e+07 -6.93664382e+06 -3.73566212e+04 ! x y z +8.86957021e+02 1.49812000e+03 2.93544144e+00 ! vx vy vz +1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill +5.69849680e+03 !particle radius in m +4.97534313e+05 1.12973925e+07 -2.47714549e+04 ! x y z +-1.93747095e+03 6.82256092e+01 4.50885373e+00 ! vx vy vz +1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill +6.63911222e+03 !particle radius in m +6.27007593e+06 1.03894624e+07 -7.16417007e+03 ! x y z +-1.60760769e+03 9.75456582e+02 -4.84946763e+00 ! vx vy vz +1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill +1.05008774e+04 !particle radius in m +4.20395564e+06 7.76433301e+06 8.41688618e+04 ! x y z +-1.94265714e+03 1.06320178e+03 6.22424610e-01 ! vx vy vz +1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill +4.41111088e+03 !particle radius in m +6.37276437e+06 -6.42184183e+06 6.41580563e+04 ! x y z +1.58319090e+03 1.53287002e+03 -1.33788595e+00 ! vx vy vz +1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill +1.28209983e+04 !particle radius in m +-7.71353791e+06 4.23425293e+06 1.25697535e+04 ! x y z +-1.04844519e+03 -1.95403749e+03 -9.90990915e+00 ! vx vy vz +1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill +3.90104672e+03 !particle radius in m +-7.40633695e+06 5.93955618e+06 -5.19978226e+04 ! x y z +-1.31908110e+03 -1.66222684e+03 -1.03799917e+01 ! vx vy vz +1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill +1.24306993e+04 !particle radius in m +1.85739893e+06 -1.16268582e+07 -8.21342836e+03 ! x y z +1.89473415e+03 2.92048965e+02 -8.56627398e+00 ! vx vy vz +1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill +8.83648205e+03 !particle radius in m +3.72582096e+06 7.91120697e+06 -5.23905881e+04 ! x y z +-2.02715857e+03 9.13111080e+02 2.50053811e+00 ! vx vy vz +1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill +1.08564549e+04 !particle radius in m +5.09385670e+05 -1.04637690e+07 -6.20563116e+04 ! x y z +2.02501696e+03 7.65309669e+01 -1.01351101e+00 ! vx vy vz +1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill +6.66176154e+03 !particle radius in m +-3.29144876e+06 8.15112104e+06 8.11267893e+04 ! x y z +-2.05815351e+03 -8.34364146e+02 -5.14984629e+00 ! vx vy vz +1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill +5.47716901e+03 !particle radius in m +-1.05633758e+07 -2.07935484e+06 1.56201239e+04 ! x y z +3.80416672e+02 -1.96300156e+03 -6.47463330e+00 ! vx vy vz +1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill +3.82196266e+03 !particle radius in m +-8.96632975e+06 -4.86195335e+05 -1.06964367e+05 ! x y z +1.34820268e+02 -2.22107483e+03 1.19634049e+01 ! vx vy vz +1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill +9.16335366e+03 !particle radius in m +-7.48232762e+06 4.92380808e+06 2.29127905e+04 ! x y z +-1.22302901e+03 -1.81943768e+03 2.38496332e-01 ! vx vy vz +1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill +1.30705504e+04 !particle radius in m +-5.03707716e+05 -9.29849125e+06 -1.11404007e+04 ! x y z +2.13355604e+03 -1.25957885e+02 3.59182325e+00 ! vx vy vz +1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill +3.74836657e+03 !particle radius in m +2.17225066e+07 1.26121705e+06 -8.44855246e+04 ! x y z +-9.80183609e+01 1.39255713e+03 -2.45394775e-01 ! vx vy vz +1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill +7.17226488e+03 !particle radius in m +-3.31559823e+06 1.24035988e+07 -2.07947532e+04 ! x y z +-1.76007958e+03 -4.72548604e+02 9.49057096e-01 ! vx vy vz +1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill +9.59062845e+03 !particle radius in m +1.21445680e+07 2.59228119e+06 -3.02162959e+04 ! x y z +-3.98075492e+02 1.82853529e+03 6.91989022e+00 ! vx vy vz +1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill +7.61080504e+03 !particle radius in m +-1.13326598e+06 -1.29825734e+07 6.69579485e+03 ! x y z +1.80475746e+03 -1.76133915e+02 -5.83190587e+00 ! vx vy vz +1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill +7.60494634e+03 !particle radius in m +-4.79738768e+06 1.05660072e+07 -1.20703674e+04 ! x y z +-1.76872416e+03 -7.96773745e+02 -7.48094782e+00 ! vx vy vz +1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill +1.12850870e+04 !particle radius in m +2.19019020e+07 2.63899527e+06 3.37827752e+04 ! x y z +-1.61269975e+02 1.38753575e+03 3.39443977e+00 ! vx vy vz +1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill +1.04047308e+04 !particle radius in m +-1.21105762e+07 -5.24541367e+05 -2.70555025e+04 ! x y z +6.19806533e+01 -1.85471109e+03 -1.08022259e+01 ! vx vy vz +1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill +5.18632661e+03 !particle radius in m +6.24492290e+06 9.69571067e+06 -1.68199218e+04 ! x y z +-1.63521643e+03 1.03697361e+03 9.03169661e+00 ! vx vy vz +1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill +6.56052039e+03 !particle radius in m +-9.25769957e+06 2.29292734e+06 -1.14919079e+04 ! x y z +-5.12974483e+02 -2.05331332e+03 2.34930072e+01 ! vx vy vz +1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill +8.62886853e+03 !particle radius in m +-7.09412869e+06 -8.06275271e+06 -7.38498407e+04 ! x y z +1.50307169e+03 -1.31876348e+03 -1.74679708e+01 ! vx vy vz +1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill +1.10297026e+04 !particle radius in m +-1.83827850e+07 6.94620255e+06 -2.99390580e+04 ! x y z +-5.38167682e+02 -1.38025174e+03 8.14592781e+00 ! vx vy vz +1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill +3.93151662e+03 !particle radius in m +1.28440178e+07 6.15520582e+06 5.37944446e+04 ! x y z +-7.49642103e+02 1.56926042e+03 -4.14121777e+00 ! vx vy vz +1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill +4.84125149e+03 !particle radius in m +-1.37958464e+07 -9.01984290e+06 9.37503357e+03 ! x y z +8.63514338e+02 -1.36928306e+03 -4.92726033e+00 ! vx vy vz +1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill +6.38228557e+03 !particle radius in m +5.94552238e+06 -1.37356259e+07 -3.12464640e+04 ! x y z +1.54132538e+03 6.86924077e+02 4.95166504e+00 ! vx vy vz +1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill +1.26046169e+04 !particle radius in m +-8.47051395e+06 -4.33049723e+06 8.99388095e+03 ! x y z +1.01895175e+03 -1.86853627e+03 6.25752144e+00 ! vx vy vz +1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill +1.05056822e+04 !particle radius in m +-7.25230880e+06 -1.91074290e+07 -8.70931708e+04 ! x y z +1.36155621e+03 -5.02831587e+02 -8.24983528e+00 ! vx vy vz +1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill +1.06118054e+04 !particle radius in m +4.25302051e+06 -8.61174101e+06 -1.08068198e+04 ! x y z +1.88839849e+03 9.49718679e+02 1.00715649e+01 ! vx vy vz +1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill +6.54239543e+03 !particle radius in m +2.64852472e+06 1.60749418e+07 5.58768351e+04 ! x y z +-1.60049117e+03 2.61947391e+02 -1.05513072e+01 ! vx vy vz +1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill +4.46410737e+03 !particle radius in m +6.85901436e+06 5.92668091e+06 5.88024522e+03 ! x y z +-1.42967304e+03 1.64782988e+03 3.76673216e+00 ! vx vy vz +1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill +1.02396523e+04 !particle radius in m +1.65616231e+07 1.66028360e+07 -5.29304371e+04 ! x y z +-9.28645255e+02 9.80527992e+02 5.80916438e+00 ! vx vy vz +1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill +1.03672601e+04 !particle radius in m +-7.26003067e+05 9.56806531e+06 9.83311273e+04 ! x y z +-2.10111468e+03 -1.57355588e+02 7.65120270e+00 ! vx vy vz +1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill +8.48891637e+03 !particle radius in m +-3.13308835e+06 1.20377491e+07 -1.96893006e+04 ! x y z +-1.80038683e+03 -4.46661696e+02 -1.05229342e+01 ! vx vy vz +1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill +5.71491865e+03 !particle radius in m +3.61039948e+06 -8.94670524e+06 -6.45909208e+04 ! x y z +1.94572548e+03 7.94221249e+02 2.27282153e+00 ! vx vy vz +1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill +6.18678578e+03 !particle radius in m +1.23051248e+07 -2.76310551e+06 1.16872533e+05 ! x y z +4.31851334e+02 1.79778427e+03 -3.52355374e+00 ! vx vy vz +1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill +7.97466982e+03 !particle radius in m +1.37198938e+07 -1.77790003e+06 -1.13538998e+05 ! x y z +2.34248090e+02 1.75094064e+03 -4.43647357e+00 ! vx vy vz +1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill +8.81590001e+03 !particle radius in m +7.46219447e+06 -5.55061844e+06 3.02223367e+04 ! x y z +1.30415331e+03 1.69020434e+03 -2.84026488e+01 ! vx vy vz +1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill +9.65607124e+03 !particle radius in m +1.79117779e+06 -9.28064516e+06 2.29081417e+03 ! x y z +2.10478434e+03 3.74607623e+02 2.08339038e+01 ! vx vy vz +1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill +1.05558666e+04 !particle radius in m +7.62366140e+06 -4.73786634e+06 -3.67690119e+04 ! x y z +1.17730042e+03 1.83367733e+03 -1.18403024e+01 ! vx vy vz +1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill +1.19589725e+04 !particle radius in m +-1.01261545e+07 2.81055834e+05 -8.19414070e+03 ! x y z +-6.18154480e+01 -2.06712328e+03 -2.24522121e+01 ! vx vy vz +1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill +1.00505792e+04 !particle radius in m +6.29538118e+06 7.15708897e+06 4.07031267e+04 ! x y z +-1.60705715e+03 1.38487957e+03 -1.00848425e+01 ! vx vy vz +1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill +1.11418874e+04 !particle radius in m +-8.49609253e+06 2.57253582e+06 -4.04158861e+03 ! x y z +-6.25851824e+02 -2.12221062e+03 -1.18572479e+00 ! vx vy vz +1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill +6.01467589e+03 !particle radius in m +-1.10898042e+07 -1.78242858e+06 -7.98635316e+03 ! x y z +3.31900537e+02 -1.93252272e+03 -5.54822823e+00 ! vx vy vz +1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill +1.27267086e+04 !particle radius in m +-9.56599926e+06 -6.50694892e+06 1.36299753e+04 ! x y z +1.08336182e+03 -1.59117844e+03 -6.14843419e+00 ! vx vy vz +1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill +5.47362181e+03 !particle radius in m +-8.97074514e+06 8.73736202e+05 8.61659651e+03 ! x y z +-2.31036282e+02 -2.18526870e+03 3.84732945e+00 ! vx vy vz +1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill +1.05255343e+04 !particle radius in m +2.22458775e+06 -9.09183474e+06 6.60915144e+04 ! x y z +2.08331663e+03 4.95850932e+02 -1.01931453e+00 ! vx vy vz +1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill +1.19344067e+04 !particle radius in m +5.23135757e+06 -9.91357725e+06 4.20848292e+03 ! x y z +1.68969350e+03 9.19667997e+02 7.40595361e+00 ! vx vy vz +1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill +4.33755478e+03 !particle radius in m +-1.28024389e+07 8.53060405e+06 4.23749438e+04 ! x y z +-9.17577167e+02 -1.39144923e+03 -5.10429471e+00 ! vx vy vz +1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill +1.12704197e+04 !particle radius in m +-8.46758421e+06 -1.84532581e+07 8.05817267e+04 ! x y z +1.31420508e+03 -6.13047074e+02 -4.80774414e-03 ! vx vy vz +1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill +7.06559347e+03 !particle radius in m +-5.61587582e+06 7.53072526e+06 -2.26125540e+04 ! x y z +-1.70025928e+03 -1.25935338e+03 1.03927192e+01 ! vx vy vz +1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill +1.14059133e+04 !particle radius in m +-2.14619149e+06 -1.42066503e+07 1.73542964e+04 ! x y z +1.70134938e+03 -2.12094299e+02 -3.88248921e+00 ! vx vy vz +1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill +1.02433343e+04 !particle radius in m +-2.01595454e+06 -9.31357942e+06 -4.91526291e+04 ! x y z +2.05875974e+03 -4.99092474e+02 -1.24005530e+01 ! vx vy vz +1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill +1.26261734e+04 !particle radius in m +-3.35093529e+06 -1.37898898e+07 -7.67867475e+04 ! x y z +1.68266801e+03 -4.09195838e+02 4.84518176e+00 ! vx vy vz +1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill +4.19423265e+03 !particle radius in m +-5.47614308e+04 1.19582326e+07 -9.89002659e+04 ! x y z +-1.88840184e+03 -2.62651981e+01 7.68950274e+00 ! vx vy vz +1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill +5.19311868e+03 !particle radius in m +-3.77832466e+06 1.09398130e+07 3.13756637e+04 ! x y z +-1.82483111e+03 -5.94408085e+02 -5.78133740e+00 ! vx vy vz +1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill +6.45155218e+03 !particle radius in m +4.84011056e+06 -1.18968706e+07 1.84555477e+04 ! x y z +1.67151498e+03 6.81175038e+02 -7.19327483e+00 ! vx vy vz +1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill +6.05488167e+03 !particle radius in m +5.21483996e+04 -1.14249117e+07 5.55267676e+04 ! x y z +1.92199543e+03 2.89226318e+00 3.62643891e+00 ! vx vy vz +1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill +9.15143782e+03 !particle radius in m +-1.10411425e+07 -3.92571862e+06 -5.07146026e+04 ! x y z +6.36950570e+02 -1.80153278e+03 2.92128142e+00 ! vx vy vz +1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill +7.60701744e+03 !particle radius in m +-1.31978898e+07 1.46521426e+07 -3.77196518e+04 ! x y z +-1.09404867e+03 -9.86978912e+02 -1.39684139e+00 ! vx vy vz +1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill +1.01408856e+04 !particle radius in m +-2.88294831e+06 -1.04031089e+07 2.08513090e+04 ! x y z +1.92072665e+03 -5.23302927e+02 5.19800736e+00 ! vx vy vz +1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill +1.06803333e+04 !particle radius in m +2.38782775e+06 -8.75851927e+06 4.58765881e+04 ! x y z +2.08778972e+03 5.70538122e+02 1.58463921e+01 ! vx vy vz +1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill +1.10462747e+04 !particle radius in m +-1.39881250e+07 -5.83335318e+06 -6.16116575e+04 ! x y z +6.22870510e+02 -1.55838806e+03 1.20223983e+00 ! vx vy vz +1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill +1.25556671e+04 !particle radius in m +4.99865237e+06 7.28764110e+06 -6.86499352e+04 ! x y z +-1.79951538e+03 1.27018155e+03 -3.04997592e+01 ! vx vy vz +1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill +6.11478378e+03 !particle radius in m +4.99165759e+06 1.10448368e+07 3.69114811e+04 ! x y z +-1.71481010e+03 7.51891478e+02 2.57133594e+00 ! vx vy vz +1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill +3.77594830e+03 !particle radius in m +-1.38190232e+06 8.92446579e+06 -2.39874601e+01 ! x y z +-2.13999854e+03 -3.62741075e+02 -1.15400248e+01 ! vx vy vz +1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill +3.82448653e+03 !particle radius in m +-1.11170825e+07 2.94394609e+06 -4.30953134e+04 ! x y z +-5.00071887e+02 -1.85670191e+03 4.27947102e+00 ! vx vy vz +1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill +1.15506092e+04 !particle radius in m +1.02590139e+07 -2.70501621e+05 1.75890374e+04 ! x y z +8.26113275e+01 2.03083325e+03 -1.20188470e+01 ! vx vy vz +1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill +1.19466753e+04 !particle radius in m +1.05552207e+06 1.03618993e+07 4.81086872e+04 ! x y z +-2.01112311e+03 2.15384368e+02 -7.43201232e+00 ! vx vy vz +1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill +1.21302309e+04 !particle radius in m +2.73631070e+06 -9.24970389e+06 5.21198850e+04 ! x y z +2.01203797e+03 5.75113061e+02 -1.08228016e+01 ! vx vy vz +1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill +7.60492436e+03 !particle radius in m +7.49333106e+06 8.99255805e+06 4.28079932e+04 ! x y z +-1.47027422e+03 1.22861330e+03 -2.29537873e+00 ! vx vy vz +1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill +8.89355341e+03 !particle radius in m +7.19860353e+06 -6.54495925e+06 4.11431543e+04 ! x y z +1.41373944e+03 1.55175420e+03 1.34717999e+00 ! vx vy vz +1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill +4.20305844e+03 !particle radius in m +-1.00628201e+07 -1.83741461e+06 -1.98227486e+03 ! x y z +3.70859453e+02 -1.99423409e+03 -1.20280387e+01 ! vx vy vz +1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill +1.21676504e+04 !particle radius in m +5.77701761e+06 6.58972717e+06 1.74818314e+04 ! x y z +-1.68661617e+03 1.44550446e+03 -1.99467032e+01 ! vx vy vz +1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill +6.36788201e+03 !particle radius in m +2.92908581e+06 -8.51550871e+06 2.35649421e+04 ! x y z +2.06952805e+03 6.82474350e+02 -1.19878409e+01 ! vx vy vz +1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill +4.61572468e+03 !particle radius in m +-1.67832510e+07 5.10602561e+06 6.05666574e+04 ! x y z +-4.71529253e+02 -1.50630622e+03 1.54396748e+00 ! vx vy vz +1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill +9.57979650e+03 !particle radius in m +5.94339422e+06 1.09804417e+07 4.79977238e+04 ! x y z +-1.62390609e+03 8.74411928e+02 6.90172493e+00 ! vx vy vz +1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill +9.61686674e+03 !particle radius in m +-9.53286463e+05 1.08518193e+07 1.37804570e+04 ! x y z +-1.99765013e+03 -1.63665978e+02 -1.39490183e+00 ! vx vy vz +1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill +8.26608492e+03 !particle radius in m +-6.92004578e+06 -1.47096496e+07 9.07914526e+04 ! x y z +1.47519584e+03 -6.90837866e+02 6.35058618e+00 ! vx vy vz +1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill +1.26187826e+04 !particle radius in m +-1.20616278e+07 6.06273134e+06 -6.00296658e+04 ! x y z +-8.01878358e+02 -1.59732664e+03 6.85710223e+00 ! vx vy vz +1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill +1.24556096e+04 !particle radius in m +1.07241366e+07 6.87028361e+06 9.95384965e+03 ! x y z +-9.77403580e+02 1.54502689e+03 -6.02368193e+00 ! vx vy vz +1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill +8.43934121e+03 !particle radius in m +-9.89312276e+06 -5.78442642e+06 3.19342091e+03 ! x y z +1.00166999e+03 -1.63649382e+03 -7.28916722e+00 ! vx vy vz +1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill +7.38389889e+03 !particle radius in m +-1.05072101e+07 8.59747253e+05 -8.51062631e+04 ! x y z +-1.76270864e+02 -2.00169685e+03 -1.88486496e+01 ! vx vy vz +1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill +6.00567499e+03 !particle radius in m +5.23533805e+06 -8.01402331e+06 2.56229650e+04 ! x y z +1.74936393e+03 1.14948262e+03 1.14944776e+01 ! vx vy vz +1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill +1.12130402e+04 !particle radius in m +-3.53936356e+06 8.37116745e+06 -5.28989524e+04 ! x y z +-2.00215068e+03 -8.57726431e+02 -1.43522460e+01 ! vx vy vz +1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill +1.02806726e+04 !particle radius in m +8.06463120e+06 -4.43013823e+06 9.40752267e+04 ! x y z +1.03931497e+03 1.89699386e+03 -9.86578192e+00 ! vx vy vz +1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill +1.22602698e+04 !particle radius in m +-1.05188937e+07 8.26557998e+05 -2.50244301e+04 ! x y z +-1.75058944e+02 -2.01148735e+03 6.39744454e+00 ! vx vy vz +1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill +9.13423664e+03 !particle radius in m +9.02166027e+05 -9.17478955e+06 6.28467621e+04 ! x y z +2.13279891e+03 2.18658803e+02 5.09551557e+00 ! vx vy vz +1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill +8.07650766e+03 !particle radius in m +-3.82128992e+06 8.76150983e+06 -3.66320445e+04 ! x y z +-1.91568216e+03 -8.82768818e+02 -8.66361539e+00 ! vx vy vz +1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill +8.03760289e+03 !particle radius in m +6.34183157e+06 1.14263259e+07 -3.93771961e+04 ! x y z +-1.57702001e+03 8.61699373e+02 7.37963170e+00 ! vx vy vz +1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill +1.11168637e+04 !particle radius in m +-1.30405721e+07 -3.97553562e+06 6.86718538e+04 ! x y z +5.08860652e+02 -1.69393029e+03 3.39424464e+00 ! vx vy vz +1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill +7.37628737e+03 !particle radius in m +1.47724485e+06 8.92877200e+06 -1.05084746e+05 ! x y z +-2.16100073e+03 3.48067255e+02 2.02796618e+01 ! vx vy vz +1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill +1.25959797e+04 !particle radius in m +6.68480405e+06 8.22694034e+06 5.91279278e+04 ! x y z +-1.56238715e+03 1.25932846e+03 7.35031359e+00 ! vx vy vz +1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill +1.18681469e+04 !particle radius in m +1.16829878e+07 3.26454849e+06 8.84361419e+04 ! x y z +-5.06154292e+02 1.79320925e+03 1.57229654e+01 ! vx vy vz +1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill +8.54796582e+03 !particle radius in m +9.47110497e+06 -3.98852153e+06 -3.02153569e+04 ! x y z +8.00176660e+02 1.87835641e+03 1.12222570e+00 ! vx vy vz +1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill +7.87804554e+03 !particle radius in m +1.46320698e+06 -1.24945211e+07 2.33172915e+04 ! x y z +1.82255294e+03 2.24692006e+02 -5.94227757e+00 ! vx vy vz +1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill +1.03371250e+04 !particle radius in m +-2.99549263e+06 1.07900890e+07 -3.59480074e+04 ! x y z +-1.87291441e+03 -5.40526156e+02 -2.72086375e+01 ! vx vy vz +1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill +4.49481566e+03 !particle radius in m +8.92552694e+06 -2.88867045e+06 4.50164736e+04 ! x y z +6.21245683e+02 2.05314318e+03 5.45203724e+00 ! vx vy vz +1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill +1.05758878e+04 !particle radius in m +5.22399519e+06 8.01692184e+06 -5.68152669e+03 ! x y z +-1.79741529e+03 1.14577258e+03 9.91685440e-01 ! vx vy vz +1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill +8.36095619e+03 !particle radius in m +8.03570746e+06 -4.11887844e+06 3.48874429e+04 ! x y z +1.00266026e+03 1.93580077e+03 -1.91021104e+01 ! vx vy vz +1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill +4.42873150e+03 !particle radius in m +9.90649703e+06 3.18003586e+06 1.94516997e+04 ! x y z +-6.33346908e+02 1.92588552e+03 -4.00155121e+00 ! vx vy vz +1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill +1.15984265e+04 !particle radius in m +-1.09606598e+06 8.80615149e+06 -2.31959292e+04 ! x y z +-2.19928594e+03 -2.15273172e+02 -1.46856638e+00 ! vx vy vz +1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill +8.60477818e+03 !particle radius in m +1.52623331e+06 -9.87507162e+06 -7.34326606e+04 ! x y z +2.07157812e+03 3.10284089e+02 -1.48877124e+01 ! vx vy vz +1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill +1.16022173e+04 !particle radius in m +5.60100517e+06 -7.52238732e+06 -7.05544699e+04 ! x y z +1.72239950e+03 1.29297128e+03 -1.52256341e+00 ! vx vy vz +1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill +5.71650065e+03 !particle radius in m +-3.94522959e+06 -9.97626417e+06 9.25599419e+03 ! x y z +1.86732899e+03 -7.00228008e+02 -6.60836692e+00 ! vx vy vz +1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill +1.17966335e+04 !particle radius in m +8.23445883e+04 -9.04812768e+06 -1.64851152e+03 ! x y z +2.17359230e+03 -1.27347929e+01 -1.55026516e+01 ! vx vy vz +1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill +1.13901960e+04 !particle radius in m +-9.27915033e+06 -8.53740765e+06 -1.42390767e+05 ! x y z +1.24138782e+03 -1.35430995e+03 -1.90290768e+01 ! vx vy vz +1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill +7.23773766e+03 !particle radius in m +6.08369217e+06 -9.30896549e+06 1.20641705e+05 ! x y z +1.63879722e+03 1.07988243e+03 -4.44689941e+00 ! vx vy vz +1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill +5.59582821e+03 !particle radius in m +9.59849615e+06 4.68470056e+06 3.84316246e+04 ! x y z +-8.55957491e+02 1.80183427e+03 7.74894619e+00 ! vx vy vz +1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill +9.91714578e+03 !particle radius in m +-1.08060668e+06 -1.00607858e+07 4.94826506e+04 ! x y z +2.05453656e+03 -2.59041316e+02 -1.24750217e+01 ! vx vy vz +1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill +8.17265933e+03 !particle radius in m +1.47983590e+07 5.41415872e+06 -1.80415422e+04 ! x y z +-5.58693227e+02 1.55361354e+03 1.18553934e+01 ! vx vy vz +1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill +8.03438024e+03 !particle radius in m +-7.58136593e+06 6.99309921e+06 2.29302110e+04 ! x y z +-1.40627338e+03 -1.47284043e+03 -4.36076043e-01 ! vx vy vz +1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill +9.55516443e+03 !particle radius in m +-1.00024650e+07 2.57885499e+06 -6.07457902e+03 ! x y z +-5.22539017e+02 -1.95674023e+03 -7.68835058e-01 ! vx vy vz +1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill +1.29020467e+04 !particle radius in m +-9.01182188e+06 7.17037576e+06 -1.80541014e+04 ! x y z +-1.21356170e+03 -1.50384647e+03 1.80093599e+01 ! vx vy vz +1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill +1.25091298e+04 !particle radius in m +-5.24887098e+06 8.72732331e+06 8.04218722e+04 ! x y z +-1.74335368e+03 -1.08193759e+03 -5.43249124e+00 ! vx vy vz +1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill +1.06106742e+04 !particle radius in m +-2.45049686e+06 1.55426920e+07 1.07580343e+05 ! x y z +-1.62197493e+03 -2.92833542e+02 -1.14576459e+01 ! vx vy vz +1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill +8.00195335e+03 !particle radius in m +-1.22199859e+07 4.38221625e+06 -3.89351024e+04 ! x y z +-6.16349372e+02 -1.72585692e+03 4.89125567e+00 ! vx vy vz +1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill +6.30049172e+03 !particle radius in m +-2.68787716e+06 -9.60100858e+06 2.64767119e+03 ! x y z +2.00338289e+03 -5.71028998e+02 2.70092626e+00 ! vx vy vz +1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill +1.29996565e+04 !particle radius in m +-8.95990349e+06 4.52753433e+06 1.16091499e+04 ! x y z +-9.24228536e+02 -1.84658152e+03 6.10613917e+00 ! vx vy vz +1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill +5.59014012e+03 !particle radius in m +1.71028024e+07 4.97528193e+06 -6.57328228e+04 ! x y z +-4.53167939e+02 1.47788400e+03 4.60344609e+00 ! vx vy vz +1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill +1.10590176e+04 !particle radius in m +-2.23441151e+07 -5.50686380e+06 3.85003687e+04 ! x y z +3.37072469e+02 -1.33411055e+03 5.11825064e+00 ! vx vy vz +1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill +1.07859254e+04 !particle radius in m +-1.12784475e+07 1.70585791e+07 -1.32439952e+05 ! x y z +-1.22293182e+03 -8.00872476e+02 4.14711101e+00 ! vx vy vz +1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill +9.20510168e+03 !particle radius in m +-3.79252235e+06 9.57625977e+06 -9.43032419e+04 ! x y z +-1.90113874e+03 -7.45374550e+02 -2.76613575e+00 ! vx vy vz +1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill +4.13425343e+03 !particle radius in m +-7.96122660e+06 3.67866986e+06 -9.30226617e+03 ! x y z +-9.42526154e+02 -2.01745780e+03 -1.25281974e+00 ! vx vy vz +1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill +5.58178407e+03 !particle radius in m +-7.53794950e+06 6.23579413e+06 -2.61014008e+04 ! x y z +-1.34980984e+03 -1.58862900e+03 -1.61372420e+01 ! vx vy vz +1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill +5.38800623e+03 !particle radius in m +-8.66326774e+06 4.08110980e+06 -3.65358197e+04 ! x y z +-9.22979977e+02 -1.88593300e+03 -1.20742584e+01 ! vx vy vz +1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill +4.82934540e+03 !particle radius in m +-8.01465112e+06 -1.03186901e+07 -8.69608158e+04 ! x y z +1.40671015e+03 -1.13976841e+03 1.88119518e+00 ! vx vy vz +1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill +1.07951308e+04 !particle radius in m +-1.49556816e+07 -7.86589247e+05 1.11406498e+05 ! x y z +1.14089906e+02 -1.67632423e+03 -1.08680759e+00 ! vx vy vz +1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill +1.29051176e+04 !particle radius in m +1.27123539e+07 -2.64461233e+06 -6.18084715e+04 ! x y z +3.74400777e+02 1.80142774e+03 3.83561532e-01 ! vx vy vz +1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill +1.07329246e+04 !particle radius in m +-4.06927547e+05 -1.75442240e+07 1.00963469e+05 ! x y z +1.56104472e+03 -4.39048470e+01 3.93620680e+00 ! vx vy vz +1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill +5.02164633e+03 !particle radius in m +8.84368264e+06 1.43003762e+07 5.00874702e+04 ! x y z +-1.35152929e+03 8.24556921e+02 -8.03719400e+00 ! vx vy vz +1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill +1.18647713e+04 !particle radius in m +-9.54707879e+06 1.77630246e+06 -8.88116065e+03 ! x y z +-3.48826440e+02 -2.06942564e+03 -2.16674061e+01 ! vx vy vz +1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill +9.63374432e+03 !particle radius in m +1.09242185e+07 6.96934254e+06 -3.27489047e+04 ! x y z +-9.84319971e+02 1.52494369e+03 8.24595564e+00 ! vx vy vz +1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill +4.25268498e+03 !particle radius in m +5.58576103e+06 8.70672427e+06 -2.15687306e+04 ! x y z +-1.72503313e+03 1.07740968e+03 -3.41426440e+00 ! vx vy vz +1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill +1.11017942e+04 !particle radius in m +-4.11471227e+06 -8.93287907e+06 -4.36028632e+04 ! x y z +1.89219131e+03 -8.56549006e+02 8.16432689e-01 ! vx vy vz +1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill +6.87002453e+03 !particle radius in m +8.96616870e+06 -2.05606701e+06 2.01901008e+04 ! x y z +4.73236695e+02 2.09528249e+03 -4.42528671e+00 ! vx vy vz +1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill +8.28549309e+03 !particle radius in m +1.71268946e+07 4.30766948e+06 2.02642738e+03 ! x y z +-4.07771856e+02 1.51502114e+03 -1.13119700e+00 ! vx vy vz +1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill +4.70767212e+03 !particle radius in m +-4.68916418e+05 1.79356049e+07 2.73217306e+04 ! x y z +-1.55840072e+03 -4.92017252e+01 -1.97207421e-01 ! vx vy vz +1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill +1.08935228e+04 !particle radius in m +-8.58951775e+06 -2.49673020e+06 1.50355881e+04 ! x y z +6.03037486e+02 -2.10005557e+03 9.90449926e+00 ! vx vy vz +1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill +1.13088486e+04 !particle radius in m +-1.24947062e+06 9.39169733e+06 -1.29611502e+03 ! x y z +-2.12088670e+03 -2.33617557e+02 -7.92353291e+00 ! vx vy vz +1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill +5.04982925e+03 !particle radius in m +9.31255896e+06 3.14623519e+06 -5.69089329e+03 ! x y z +-7.03486722e+02 1.96419139e+03 2.25468152e+01 ! vx vy vz +1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill +7.88288776e+03 !particle radius in m +-5.85221513e+05 -1.12876036e+07 -5.52028652e+04 ! x y z +1.95064275e+03 -9.81526152e+01 -5.91601856e+00 ! vx vy vz +1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill +1.09347609e+04 !particle radius in m +-2.96784791e+06 -8.77030784e+06 -6.49349269e+04 ! x y z +2.04523947e+03 -6.63593054e+02 -5.41808592e+00 ! vx vy vz +1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill +3.93196955e+03 !particle radius in m +8.90265546e+05 1.20291601e+07 -5.41238919e+02 ! x y z +-1.86112508e+03 1.50752240e+02 -5.69806824e-01 ! vx vy vz +1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill +5.03625919e+03 !particle radius in m +-4.12865927e+06 -1.30370302e+07 2.49268877e+04 ! x y z +1.68286207e+03 -5.42218893e+02 7.09107529e+00 ! vx vy vz +1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill +1.14005804e+04 !particle radius in m +-8.83659135e+06 4.88772967e+06 3.97374919e+04 ! x y z +-9.96652878e+02 -1.80490383e+03 4.50625373e-01 ! vx vy vz +1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill +7.31394737e+03 !particle radius in m +7.51899250e+06 8.02238049e+06 4.96372898e+04 ! x y z +-1.45435540e+03 1.33207577e+03 -8.91729858e+00 ! vx vy vz +1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill +8.89384301e+03 !particle radius in m +1.07692501e+07 -1.58383421e+07 5.11056372e+04 ! x y z +1.24097868e+03 8.36402001e+02 1.17081374e+01 ! vx vy vz +1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill +8.90274659e+03 !particle radius in m +-7.87110940e+06 4.57199197e+06 -7.32174697e+03 ! x y z +-1.11779702e+03 -1.86164265e+03 1.82306653e+00 ! vx vy vz +1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill +8.39061750e+03 !particle radius in m +-9.02697440e+06 7.44735568e+06 -6.20239222e+04 ! x y z +-1.22828772e+03 -1.48671915e+03 -3.25023413e+00 ! vx vy vz +1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill +8.96233529e+03 !particle radius in m +1.03311380e+07 2.97114168e+06 2.75510366e+04 ! x y z +-5.53060286e+02 1.92682584e+03 -7.92293805e+00 ! vx vy vz +1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill +4.98993792e+03 !particle radius in m +7.02853805e+06 6.05239702e+06 3.87860255e+03 ! x y z +-1.40362427e+03 1.60647543e+03 -1.45016070e+01 ! vx vy vz +1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill +4.18660697e+03 !particle radius in m +6.55440785e+06 5.85117198e+06 -4.93943511e+04 ! x y z +-1.49384332e+03 1.63681032e+03 -1.39258100e+00 ! vx vy vz +1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill +1.17118539e+04 !particle radius in m +9.90570829e+06 4.34179796e+06 -2.00530721e+04 ! x y z +-7.94337401e+02 1.80469509e+03 -3.79870453e-01 ! vx vy vz +1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill +7.93209892e+03 !particle radius in m +-8.25205087e+06 7.98686094e+06 -3.50332951e+04 ! x y z +-1.35816228e+03 -1.38349553e+03 1.34047111e+01 ! vx vy vz +1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill +7.24711433e+03 !particle radius in m +-9.96135005e+06 3.70457700e+06 -9.07193755e+04 ! x y z +-7.21948720e+02 -1.87787046e+03 -1.05717777e+00 ! vx vy vz +1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill +6.57637276e+03 !particle radius in m +-1.22268683e+07 1.01474610e+07 -8.42852150e+04 ! x y z +-1.02194217e+03 -1.27298189e+03 -7.67733923e+00 ! vx vy vz +1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill +6.98929911e+03 !particle radius in m +4.92746951e+06 9.58728854e+06 2.89432610e+04 ! x y z +-1.76304026e+03 9.13627287e+02 6.36664299e+00 ! vx vy vz +1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill +1.19100391e+04 !particle radius in m +1.23329034e+07 -6.92729902e+05 2.96405314e+04 ! x y z +1.12931575e+02 1.84303874e+03 -9.66021750e+00 ! vx vy vz +1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill +9.34048218e+03 !particle radius in m +1.63682186e+07 -7.64635682e+06 7.51258389e+04 ! x y z +6.57521797e+02 1.40505156e+03 -1.44981512e-01 ! vx vy vz +1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill +4.66046628e+03 !particle radius in m +-9.02931313e+06 1.40224619e+06 -7.68912993e+03 ! x y z +-3.55553612e+02 -2.15150134e+03 1.02691019e+01 ! vx vy vz +1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill +7.28378715e+03 !particle radius in m +-2.13040703e+06 9.05085932e+06 2.75232896e+04 ! x y z +-2.09375359e+03 -4.54923992e+02 -6.60791548e+00 ! vx vy vz +1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill +4.24094823e+03 !particle radius in m +2.12770208e+06 -1.09362652e+07 6.56462507e+04 ! x y z +1.92901319e+03 3.58659857e+02 1.88568450e+01 ! vx vy vz +1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill +1.24278875e+04 !particle radius in m +4.49722640e+06 1.29879609e+07 6.17022585e+04 ! x y z +-1.66361829e+03 6.02542134e+02 -3.15731575e-01 ! vx vy vz +1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill +1.15586882e+04 !particle radius in m +-2.46270150e+05 -8.94568869e+06 -6.37006664e+04 ! x y z +2.17872017e+03 -8.88856930e+01 -1.82962039e+01 ! vx vy vz +1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill +8.06890215e+03 !particle radius in m +-7.68511313e+06 -6.12228878e+06 -9.32586560e+03 ! x y z +1.29882576e+03 -1.62777018e+03 -1.19293575e+01 ! vx vy vz +1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill +7.49373241e+03 !particle radius in m +-8.92478393e+06 1.31107857e+06 -7.25655485e+04 ! x y z +-2.98094429e+02 -2.17047563e+03 -1.53783344e+01 ! vx vy vz +1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill +7.25129561e+03 !particle radius in m +-6.57681719e+06 -9.45888345e+06 -3.72144545e+04 ! x y z +1.58522928e+03 -1.10501157e+03 1.05113370e-01 ! vx vy vz +1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill +9.50638765e+03 !particle radius in m +1.34071651e+07 1.03792566e+07 -4.53441732e+04 ! x y z +-9.71553194e+02 1.24234337e+03 9.20294843e+00 ! vx vy vz +1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill +6.36761483e+03 !particle radius in m +-3.51077302e+06 -1.26567098e+07 2.57715830e+04 ! x y z +1.74422450e+03 -5.08580589e+02 2.03158207e-01 ! vx vy vz +1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill +5.26245957e+03 !particle radius in m +2.88059988e+06 -1.21489772e+07 1.66531109e+03 ! x y z +1.80288747e+03 4.42317052e+02 -1.19583569e+01 ! vx vy vz +1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill +8.31795219e+03 !particle radius in m +-5.79801378e+06 7.81844110e+06 7.21651425e+04 ! x y z +-1.66669076e+03 -1.30229321e+03 -2.20360225e+00 ! vx vy vz +1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill +1.12229473e+04 !particle radius in m +1.79079043e+06 8.72935614e+06 7.66173175e+03 ! x y z +-2.14494592e+03 4.29349753e+02 -3.05321261e+00 ! vx vy vz +1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill +1.07221971e+04 !particle radius in m +-1.31449667e+07 5.65642590e+06 -1.35348879e+04 ! x y z +-6.99474388e+02 -1.58839301e+03 5.07187025e+00 ! vx vy vz +1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill +1.02555622e+04 !particle radius in m +-1.28107010e+07 3.64301270e+06 -4.79094708e+04 ! x y z +-4.96849501e+02 -1.72146269e+03 1.99970261e+01 ! vx vy vz +1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill +7.54998008e+03 !particle radius in m +-8.81052520e+06 1.96363775e+06 -7.03542162e+04 ! x y z +-4.55600237e+02 -2.14195252e+03 -1.54510587e+01 ! vx vy vz +1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill +4.30236032e+03 !particle radius in m +6.76054921e+06 5.69153857e+06 -8.32813680e+04 ! x y z +-1.43863210e+03 1.66962801e+03 -3.05680786e+00 ! vx vy vz +1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill +9.37470089e+03 !particle radius in m +-1.58533753e+07 -4.64141565e+06 -1.37616342e+05 ! x y z +4.71661565e+02 -1.53679456e+03 4.54920894e+00 ! vx vy vz +1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill +5.56372876e+03 !particle radius in m +-5.05912024e+06 1.20461614e+07 -1.00213774e+05 ! x y z +-1.67920042e+03 -7.11202226e+02 4.13175962e+00 ! vx vy vz +1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill +6.66362952e+03 !particle radius in m +8.41034459e+05 -1.03591089e+07 -4.26263251e+04 ! x y z +2.02679172e+03 1.77245292e+02 -7.59374588e+00 ! vx vy vz +1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill +4.19344015e+03 !particle radius in m +-8.72674150e+06 -1.84604826e+06 -9.49439666e+03 ! x y z +5.06255038e+02 -2.14329601e+03 8.35004981e+00 ! vx vy vz +1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill +1.19410657e+04 !particle radius in m +8.32975138e+06 5.59994962e+06 1.36490477e+04 ! x y z +-1.14500563e+03 1.73284125e+03 2.21368330e+00 ! vx vy vz +1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill +9.92303995e+03 !particle radius in m +5.20187427e+06 8.26928364e+06 7.79156795e+04 ! x y z +-1.78869520e+03 1.08594628e+03 -2.89543422e+00 ! vx vy vz +1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill +1.05516583e+04 !particle radius in m +-3.97296892e+06 -8.38171851e+06 1.59358464e+04 ! x y z +1.95617296e+03 -9.13960827e+02 -3.62965884e-01 ! vx vy vz +1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill +8.03665372e+03 !particle radius in m +8.20764080e+05 -1.58893023e+07 7.87114038e+04 ! x y z +1.64101205e+03 9.20364252e+01 9.68548448e+00 ! vx vy vz +1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill +9.62837764e+03 !particle radius in m +-9.69224879e+06 1.49532038e+07 7.33593405e+04 ! x y z +-1.29931651e+03 -8.27698792e+02 -3.16602237e+00 ! vx vy vz +1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill +4.38450573e+03 !particle radius in m +-5.62663613e+06 7.91766436e+06 2.60207243e+04 ! x y z +-1.74178290e+03 -1.18522553e+03 2.27430689e+00 ! vx vy vz diff --git a/examples/symba_swifter_comparison/mtiny_test/pl.swiftest.in b/examples/symba_swifter_comparison/mtiny_test/pl.swiftest.in new file mode 100644 index 000000000..447d1e308 --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/pl.swiftest.in @@ -0,0 +1,9001 @@ +1500 ! Mars System in SI units +727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +1.24108926e+04 !particle radius in m +-8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z +9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +8.87389776e+03 !particle radius in m +-8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z +1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +2 9.90685589e+04 8.35558297e+03 ! particle number mass Rhill +7.07643092e+03 !particle radius in m +-2.35807426e+06 8.60445552e+06 1.25224401e+04 ! x y z +-2.13373621e+03 -5.91159549e+02 -1.46482980e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +3 3.17438752e+04 6.69500494e+03 ! particle number mass Rhill +4.84234399e+03 !particle radius in m +-8.01160007e+06 -6.93642997e+06 1.51456130e+04 ! x y z +1.31205897e+03 -1.53256580e+03 -1.41252951e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +4 3.98556011e+05 1.56022902e+04 ! particle number mass Rhill +1.12546530e+04 !particle radius in m +8.10802666e+05 1.07743901e+07 2.02908991e+04 ! x y z +-1.97583939e+03 1.47020293e+02 2.81847341e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +5 1.44988335e+05 1.52187807e+04 ! particle number mass Rhill +5.45209420e+03 !particle radius in m +1.19634122e+07 -8.10716246e+06 -5.95532256e+04 ! x y z +9.82512278e+02 1.42576317e+03 8.88854207e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill +7.50714229e+03 !particle radius in m +-9.39611249e+06 3.86341011e+06 4.12677461e+04 ! x y z +-8.05714130e+02 -1.87378063e+03 1.44571432e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill +7.78923399e+03 !particle radius in m +-4.75251420e+06 -1.21243281e+07 -4.63584868e+04 ! x y z +1.67483168e+03 -6.72935315e+02 -2.51894419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill +9.51941869e+03 !particle radius in m +-1.85450966e+06 -1.34716389e+07 8.25492639e+04 ! x y z +1.75187299e+03 -2.73602528e+02 -3.13786565e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill +1.02445905e+04 !particle radius in m +1.23514674e+07 2.68920661e+05 1.39262437e+04 ! x y z +-5.46299990e+01 1.85637492e+03 8.88156878e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill +1.00413666e+04 !particle radius in m +-3.23931710e+06 -9.01689172e+06 -4.12799209e+04 ! x y z +2.01018172e+03 -6.80970287e+02 7.47887585e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill +9.41021993e+03 !particle radius in m +-8.22383274e+06 6.53912283e+06 -4.14927827e+04 ! x y z +-1.24361728e+03 -1.57101590e+03 1.15408315e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill +5.66402670e+03 !particle radius in m +1.08162501e+06 1.60434368e+07 -1.90513596e+05 ! x y z +-1.63320995e+03 9.41371249e+01 -1.08583324e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill +9.68422654e+03 !particle radius in m +8.87638562e+06 -3.42494393e+06 3.77051239e+04 ! x y z +7.17031490e+02 1.98991002e+03 1.65715407e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill +1.17150625e+04 !particle radius in m +8.43240423e+06 -8.47557599e+06 9.53685695e+04 ! x y z +1.37244856e+03 1.29766742e+03 6.52389482e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill +1.12329581e+04 !particle radius in m +9.22664947e+06 8.30989011e+06 -5.74831096e+04 ! x y z +-1.25111883e+03 1.34059241e+03 8.55955292e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill +1.02921516e+04 !particle radius in m +-4.08982641e+06 1.42813091e+07 2.62466604e+04 ! x y z +-1.63050329e+03 -4.70983328e+02 5.42658810e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill +3.92489041e+03 !particle radius in m +8.28836769e+06 -4.56966319e+06 -1.00925184e+04 ! x y z +1.01075458e+03 1.85603564e+03 9.12767608e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill +1.30688534e+04 !particle radius in m +-7.36104027e+06 -1.05891946e+07 7.75267384e+04 ! x y z +1.50650168e+03 -1.03626339e+03 6.92830281e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill +1.08748232e+04 !particle radius in m +-1.16432549e+07 7.04896042e+06 1.31826777e+04 ! x y z +-9.22639859e+02 -1.52066967e+03 -1.15982407e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill +4.65478777e+03 !particle radius in m +1.54278872e+07 -4.66477914e+06 2.89150511e+04 ! x y z +4.74802657e+02 1.56436208e+03 1.16558658e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill +6.56131734e+03 !particle radius in m +8.25405514e+06 -3.99894087e+06 -1.03017471e+05 ! x y z +9.55530709e+02 1.91876743e+03 -2.12478228e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill +7.27184654e+03 !particle radius in m +-1.01048660e+07 -7.25267430e+05 3.72763878e+04 ! x y z +1.50338830e+02 -2.04513843e+03 -6.64737882e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill +4.60100051e+03 !particle radius in m +1.08085981e+07 8.91343848e+05 -8.59837690e+04 ! x y z +-1.73598988e+02 1.98921090e+03 7.39675166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill +1.28174811e+04 !particle radius in m +-1.95760874e+07 2.13874411e+06 9.87141675e+04 ! x y z +-1.78019032e+02 -1.46067517e+03 7.47552271e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill +1.30658530e+04 !particle radius in m +-5.15587895e+06 1.31093030e+07 2.34999443e+04 ! x y z +-1.60915655e+03 -6.75665775e+02 -1.41401807e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill +1.03100883e+04 !particle radius in m +-1.04206598e+07 1.04694469e+07 3.71773715e+04 ! x y z +-1.22193412e+03 -1.15184993e+03 -7.42970615e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill +1.02339628e+04 !particle radius in m +-8.37104048e+06 -7.31013791e+06 1.37822827e+05 ! x y z +1.31083458e+03 -1.50225202e+03 1.24188931e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill +8.66551286e+03 !particle radius in m +-1.37026179e+07 6.52187486e+06 4.74483726e+04 ! x y z +-7.21171063e+02 -1.51233609e+03 4.06777653e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill +1.07329828e+04 !particle radius in m +7.27063487e+05 9.63835599e+06 7.97365647e+04 ! x y z +-2.09031891e+03 1.45245810e+02 -8.30488647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill +9.57114700e+03 !particle radius in m +7.25596696e+06 -7.23053656e+06 1.87472853e+03 ! x y z +1.43916819e+03 1.45132061e+03 9.58485615e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill +6.15153311e+03 !particle radius in m +-7.29036745e+06 1.20321492e+07 2.47342157e+04 ! x y z +-1.50263763e+03 -8.87670849e+02 -4.72544240e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill +1.10887000e+04 !particle radius in m +-4.85214384e+06 9.94913086e+06 -1.36593449e+05 ! x y z +-1.77462439e+03 -8.70796881e+02 -4.04772339e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill +6.11423561e+03 !particle radius in m +-8.57362843e+06 -5.69257679e+06 -1.86992418e+04 ! x y z +1.16808481e+03 -1.69357760e+03 1.48289207e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill +4.95430775e+03 !particle radius in m +-1.19543227e+04 1.04662309e+07 -2.75529146e+04 ! x y z +-2.03252516e+03 -1.02408335e+01 -9.64298816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill +9.66880578e+03 !particle radius in m +-1.68361528e+06 9.15840339e+06 -9.34661786e+04 ! x y z +-2.10432868e+03 -3.67110160e+02 2.17992849e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill +8.50653728e+03 !particle radius in m +7.61819019e+06 6.79194080e+06 -4.97100639e+04 ! x y z +-1.37259731e+03 1.51157244e+03 2.28319862e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill +1.13756647e+04 !particle radius in m +-8.27002578e+05 -1.07584936e+07 -8.18905340e+04 ! x y z +1.98624835e+03 -1.45613526e+02 -2.22634090e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill +1.23267605e+04 !particle radius in m +8.40661307e+06 -1.79965632e+07 -1.83341147e+05 ! x y z +1.32267980e+03 6.38873327e+02 -4.32228630e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill +9.43036290e+03 !particle radius in m +7.47325276e+06 7.65731082e+06 2.72651622e+04 ! x y z +-1.39038210e+03 1.40779235e+03 -7.40097961e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill +7.79381648e+03 !particle radius in m +-9.14822275e+06 5.65579867e+05 1.54779239e+04 ! x y z +-1.53215921e+02 -2.16863876e+03 -1.41098203e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill +1.16307473e+04 !particle radius in m +-5.60611609e+06 9.45764489e+06 -1.08254759e+05 ! x y z +-1.70147881e+03 -1.00583116e+03 -1.54758662e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill +1.01814300e+04 !particle radius in m +-1.66612775e+07 5.22172921e+06 -2.86187005e+04 ! x y z +-4.30163112e+02 -1.50298858e+03 1.29664314e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill +1.24316568e+04 !particle radius in m +3.27505920e+06 -9.55860249e+06 -5.64452508e+04 ! x y z +1.95132421e+03 6.74732817e+02 -1.39202732e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill +3.90909524e+03 !particle radius in m +1.52951536e+06 -8.90157648e+06 -8.46439916e+04 ! x y z +2.14907459e+03 3.37495875e+02 -8.51148141e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill +4.54215111e+03 !particle radius in m +8.06820634e+06 -4.23727397e+06 -3.35114261e+04 ! x y z +1.02022988e+03 1.90034431e+03 -4.99905529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill +8.53422917e+03 !particle radius in m +-8.77755612e+06 2.67256349e+06 2.67913370e+04 ! x y z +-6.14674972e+02 -2.07327300e+03 8.52604410e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill +1.10146390e+04 !particle radius in m +2.70600522e+06 -9.90290693e+06 3.76996678e+04 ! x y z +1.96230063e+03 5.74973963e+02 -1.26240524e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill +6.62124902e+03 !particle radius in m +-6.67312956e+06 6.21207172e+06 -4.02351915e+03 ! x y z +-1.48608180e+03 -1.57249051e+03 1.60424143e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill +5.42109743e+03 !particle radius in m +-6.18076768e+06 8.34028857e+06 6.32429656e+04 ! x y z +-1.63237248e+03 -1.20222734e+03 4.88968977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill +1.13804352e+04 !particle radius in m +5.85188296e+06 1.72848338e+07 9.71123353e+04 ! x y z +-1.44962394e+03 4.67717479e+02 -1.00039018e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill +5.01581856e+03 !particle radius in m +7.64956565e+06 7.07155375e+06 1.22619349e+05 ! x y z +-1.38177043e+03 1.50469594e+03 5.48084097e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill +3.91946036e+03 !particle radius in m +8.19731246e+06 5.46984950e+06 3.09134904e+04 ! x y z +-1.14400536e+03 1.75729614e+03 -1.68472307e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill +5.56718137e+03 !particle radius in m +-7.08694323e+06 6.97654393e+06 1.57444613e+04 ! x y z +-1.43699629e+03 -1.48696944e+03 1.09569025e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill +1.00450073e+04 !particle radius in m +8.33364079e+06 -4.88517773e+06 7.16288059e+04 ! x y z +1.11170923e+03 1.81264092e+03 6.00546346e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill +6.58674280e+03 !particle radius in m +-9.33769960e+06 9.14931622e+06 -1.61970964e+04 ! x y z +-1.24590275e+03 -1.29664452e+03 6.60457748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill +8.93749433e+03 !particle radius in m +-9.38351744e+06 2.21172448e+06 -6.82548828e+04 ! x y z +-4.82800182e+02 -2.03545597e+03 -5.73581498e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill +4.35272973e+03 !particle radius in m +1.87895940e+06 -8.56248718e+06 -3.00496615e+04 ! x y z +2.17444079e+03 4.47176832e+02 -1.19261276e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill +1.11807470e+04 !particle radius in m +8.32914883e+06 6.99509139e+06 3.96475596e+03 ! x y z +-1.25015649e+03 1.51958279e+03 -4.03731794e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill +5.35230171e+03 !particle radius in m +1.40169380e+07 1.14833336e+06 8.97154952e+04 ! x y z +-1.67134532e+02 1.72504621e+03 -4.99628204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill +9.94627977e+03 !particle radius in m +6.25929466e+06 6.41436879e+06 2.03611835e+04 ! x y z +-1.56963361e+03 1.52043093e+03 1.04032604e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill +1.29906317e+04 !particle radius in m +6.59380692e+06 6.26136699e+06 5.26920752e+02 ! x y z +-1.52860150e+03 1.56995044e+03 -5.04992194e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill +5.50619929e+03 !particle radius in m +-3.18458810e+06 8.95887994e+06 6.14079574e+04 ! x y z +-1.98254651e+03 -6.98894893e+02 -6.28253660e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill +9.81501110e+03 !particle radius in m +3.21556801e+06 8.85736420e+06 1.68758030e+04 ! x y z +-2.01862696e+03 7.01940495e+02 -7.77962553e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill +7.23368562e+03 !particle radius in m +6.87944610e+06 1.31239767e+07 8.47895296e+04 ! x y z +-1.52033935e+03 7.81668854e+02 8.53929151e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill +4.38175744e+03 !particle radius in m +-7.12317437e+06 7.79679451e+06 1.14295538e+05 ! x y z +-1.45772671e+03 -1.35257658e+03 -8.92909999e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill +6.45312806e+03 !particle radius in m +-7.50346488e+06 4.59614758e+06 -1.78561776e+04 ! x y z +-1.17484683e+03 -1.88471092e+03 2.06051741e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill +5.04443190e+03 !particle radius in m +-9.72849273e+06 -4.49090647e+06 9.42367849e+04 ! x y z +8.55743475e+02 -1.81695360e+03 -2.08602456e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill +1.24464529e+04 !particle radius in m +-9.38461254e+06 6.94991468e+06 -5.96507119e+04 ! x y z +-1.15295098e+03 -1.53950357e+03 3.51558529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill +1.25735358e+04 !particle radius in m +-7.41691843e+05 -1.00833740e+07 -5.60539800e+04 ! x y z +2.04132497e+03 -1.60740204e+02 -2.66722707e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill +8.72818623e+03 !particle radius in m +-1.55585013e+07 -7.11561291e+06 3.93194543e+03 ! x y z +6.65437196e+02 -1.43702009e+03 -7.23293961e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill +8.08736691e+03 !particle radius in m +-3.34597213e+06 -8.19414991e+06 6.06177774e+04 ! x y z +2.03861032e+03 -8.50240184e+02 5.81078899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill +1.15287399e+04 !particle radius in m +1.97016279e+06 -9.71556312e+06 -9.30987397e+03 ! x y z +2.03815672e+03 3.86141142e+02 -6.70148607e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill +9.70989454e+03 !particle radius in m +-1.23610305e+07 -1.14674155e+07 1.26044785e+04 ! x y z +1.08318223e+03 -1.17487397e+03 -3.70767753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill +4.86667460e+03 !particle radius in m +6.60995348e+06 1.33054967e+07 -1.05591305e+03 ! x y z +-1.53012251e+03 7.44076876e+02 -1.33826451e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill +1.01917171e+04 !particle radius in m +7.08025559e+06 6.63712140e+06 8.28590703e+04 ! x y z +-1.43411418e+03 1.51197736e+03 -1.05467488e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill +8.99162185e+03 !particle radius in m +-7.28273678e+06 -7.57343022e+06 -3.32239292e+04 ! x y z +1.43763945e+03 -1.39069870e+03 1.98407302e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill +1.03376021e+04 !particle radius in m +9.90338765e+05 -9.02823668e+06 -1.20306983e+04 ! x y z +2.16293198e+03 2.29403632e+02 1.02563280e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill +1.14607582e+04 !particle radius in m +7.24980777e+06 6.13973485e+06 4.31080507e+04 ! x y z +-1.36304394e+03 1.62331327e+03 -1.35525280e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill +5.60647602e+03 !particle radius in m +1.67269227e+07 2.38546079e+06 3.97527319e+04 ! x y z +-2.22376967e+02 1.58567381e+03 -8.67277559e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill +5.23039108e+03 !particle radius in m +1.04063991e+07 -2.47414364e+06 2.55875518e+04 ! x y z +4.41751921e+02 1.96103152e+03 -4.73452379e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill +9.83393818e+03 !particle radius in m +6.53964743e+06 -9.91913737e+06 9.96407478e+04 ! x y z +1.55366935e+03 1.06687009e+03 -2.02851694e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill +6.73293314e+03 !particle radius in m +7.88901212e+06 4.39968813e+06 4.59555939e+04 ! x y z +-1.07086350e+03 1.89616918e+03 7.27266270e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill +1.22637545e+04 !particle radius in m +-3.20114591e+05 9.47888835e+06 9.88766449e+03 ! x y z +-2.12931637e+03 -7.10990071e+01 1.07017003e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill +6.90749219e+03 !particle radius in m +9.14219160e+06 8.75278019e+06 -4.92172540e+04 ! x y z +-1.29548970e+03 1.30726587e+03 -1.50278883e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill +8.47614716e+03 !particle radius in m +-1.38612397e+07 6.86502447e+06 -1.61982632e+04 ! x y z +-7.48338598e+02 -1.49504839e+03 1.44565317e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill +5.74019158e+03 !particle radius in m +1.25478256e+07 -2.77052958e+05 1.12717341e+03 ! x y z +4.85806635e+01 1.82811230e+03 -1.79057921e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill +5.29092447e+03 !particle radius in m +1.40993545e+06 1.16245820e+07 -3.61782966e+04 ! x y z +-1.89457813e+03 2.30174579e+02 1.28253693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill +9.92395993e+03 !particle radius in m +1.00651315e+07 -8.63755855e+06 -2.94583233e+04 ! x y z +1.16408014e+03 1.36020820e+03 -5.13543123e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill +1.20526803e+04 !particle radius in m +2.98890445e+06 1.22541433e+07 2.56056735e+04 ! x y z +-1.78538758e+03 4.40494099e+02 -2.21749367e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill +4.35975582e+03 !particle radius in m +5.19540663e+06 -9.11850659e+06 6.55061213e+04 ! x y z +1.75856318e+03 9.95618038e+02 1.03697665e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill +5.41642563e+03 !particle radius in m +4.97139511e+06 -1.11941305e+07 -1.40627719e+05 ! x y z +1.71256583e+03 7.58315920e+02 -4.27199322e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill +6.88890644e+03 !particle radius in m +1.25156536e+07 -1.83009831e+06 -1.83401376e+04 ! x y z +2.71538728e+02 1.82389745e+03 -1.16128548e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill +4.92766241e+03 !particle radius in m +-4.24848440e+06 -1.14141124e+07 -3.56440379e+04 ! x y z +1.77145707e+03 -6.72445172e+02 -1.27477365e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill +5.12796820e+03 !particle radius in m +-2.67257221e+06 8.24864699e+06 -3.60351703e+04 ! x y z +-2.13740103e+03 -6.84795253e+02 -6.19432137e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill +3.97477538e+03 !particle radius in m +3.38794467e+06 -1.65102444e+07 1.31352407e+05 ! x y z +1.55800648e+03 3.20903339e+02 1.95779030e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill +5.60787672e+03 !particle radius in m +3.25966423e+06 9.75900867e+06 3.76712868e+04 ! x y z +-1.92824453e+03 6.78004645e+02 2.13894611e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill +5.02914497e+03 !particle radius in m +-8.82496169e+06 1.17570086e+06 -2.77994253e+03 ! x y z +-3.06986654e+02 -2.17589269e+03 -3.00417185e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill +1.26054254e+04 !particle radius in m +-8.96181392e+06 -8.08537511e+06 -9.49567974e+03 ! x y z +1.24755669e+03 -1.37614946e+03 4.00147116e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill +3.83342071e+03 !particle radius in m +1.05138352e+07 -2.53028835e+06 -2.47118873e+04 ! x y z +4.70010064e+02 1.92569661e+03 -1.14250111e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill +1.23894990e+04 !particle radius in m +-8.86717935e+06 -3.01884801e+06 5.43577921e+03 ! x y z +6.99055272e+02 -2.04010264e+03 8.96596820e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill +8.04335643e+03 !particle radius in m +1.42373839e+07 3.02611132e+06 -1.43164181e+04 ! x y z +-4.03733107e+02 1.68169148e+03 7.10932541e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill +9.07798396e+03 !particle radius in m +-6.09504895e+06 8.50655715e+06 -5.34991934e+04 ! x y z +-1.62687481e+03 -1.19574157e+03 5.21976127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill +3.95640633e+03 !particle radius in m +3.72306724e+06 9.02743458e+06 4.19786502e+04 ! x y z +-1.94834474e+03 7.84745897e+02 -7.86691937e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill +1.06463568e+04 !particle radius in m +5.64202715e+06 -8.82003156e+06 9.37432782e+03 ! x y z +1.69914027e+03 1.09005087e+03 8.81006839e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill +5.68865819e+03 !particle radius in m +-1.08304546e+07 -5.16566260e+06 -4.58380354e+04 ! x y z +8.08725156e+02 -1.70426515e+03 -1.40809084e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill +1.06640002e+04 !particle radius in m +9.97312286e+06 -1.70160094e+06 4.10359397e+04 ! x y z +3.34859938e+02 2.01251950e+03 -1.05202781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill +7.85135736e+03 !particle radius in m +7.03958663e+06 7.71716479e+06 -8.94733922e+03 ! x y z +-1.49839830e+03 1.36772144e+03 -1.09915777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill +3.80442303e+03 !particle radius in m +1.15617458e+07 -4.37264141e+06 4.98550747e+04 ! x y z +6.45606485e+02 1.75989881e+03 1.00504151e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill +7.55084889e+03 !particle radius in m +6.33009492e+06 8.26456632e+06 4.39267321e+04 ! x y z +-1.63555236e+03 1.22749817e+03 -2.79591207e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill +5.24028103e+03 !particle radius in m +-1.23116789e+06 -1.76328069e+07 4.15688915e+04 ! x y z +1.54978172e+03 -1.14789962e+02 3.52623567e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill +1.09298010e+04 !particle radius in m +5.03800785e+06 7.38464714e+06 6.56936601e+04 ! x y z +-1.79789878e+03 1.24241563e+03 -1.87814487e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill +4.24258369e+03 !particle radius in m +-1.16819556e+07 2.21702225e+06 -1.76770966e+03 ! x y z +-3.36108070e+02 -1.84613620e+03 1.27905806e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill +1.04890693e+04 !particle radius in m +1.00037167e+07 3.61161669e+06 -5.98746596e+04 ! x y z +-7.04121449e+02 1.87165808e+03 1.87226479e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill +6.72997694e+03 !particle radius in m +-8.02245740e+06 -4.15017483e+06 1.94427373e+04 ! x y z +9.95701473e+02 -1.91465293e+03 9.55414968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill +4.37893861e+03 !particle radius in m +-4.99256633e+06 7.35143538e+06 -6.25201967e+04 ! x y z +-1.82686822e+03 -1.23953720e+03 -3.37208923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill +9.76924055e+03 !particle radius in m +-2.12824530e+06 9.48297181e+06 4.56720468e+03 ! x y z +-2.04325211e+03 -4.78944866e+02 1.39609484e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill +4.12337692e+03 !particle radius in m +-1.42745447e+07 -5.79867689e+06 -1.70313904e+04 ! x y z +6.32626042e+02 -1.53908540e+03 1.67461109e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill +8.79476284e+03 !particle radius in m +3.38987773e+06 1.01890371e+07 3.97150856e+04 ! x y z +-1.89204657e+03 6.21657437e+02 -2.83215087e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill +4.83385440e+03 !particle radius in m +1.36440026e+07 -9.23862046e+06 -5.31108803e+04 ! x y z +9.02323684e+02 1.33920162e+03 1.66233464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill +8.13388768e+03 !particle radius in m +-3.69977113e+06 -1.52467920e+07 -1.34829610e+05 ! x y z +1.61925599e+03 -3.72623284e+02 7.50289619e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill +9.36399150e+03 !particle radius in m +1.82794011e+07 6.84958710e+06 1.41781869e+04 ! x y z +-5.47821288e+02 1.37308430e+03 -7.00506636e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill +4.56803304e+03 !particle radius in m +1.18968647e+07 1.33707826e+07 -1.11221176e+05 ! x y z +-1.16553280e+03 1.03288779e+03 1.42253495e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill +4.67906973e+03 !particle radius in m +-1.96455999e+07 -2.60429318e+06 -9.25749294e+04 ! x y z +1.97567654e+02 -1.46047680e+03 3.96763228e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill +7.05460271e+03 !particle radius in m +-2.68241356e+06 9.67860718e+06 -3.52723705e+04 ! x y z +-1.98385491e+03 -5.75973374e+02 4.82531781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill +7.35090499e+03 !particle radius in m +-1.66338998e+06 1.06654130e+07 -1.15436526e+05 ! x y z +-1.97394994e+03 -3.24337570e+02 1.49148403e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill +1.15778235e+04 !particle radius in m +5.73133232e+06 -6.88742280e+06 -9.91791004e+03 ! x y z +1.69108314e+03 1.40100447e+03 8.39576992e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill +9.74792278e+03 !particle radius in m +1.16505540e+07 1.24190497e+07 3.29845083e+04 ! x y z +-1.14848373e+03 1.08164128e+03 1.94732937e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill +5.57197333e+03 !particle radius in m +-9.45920013e+06 -1.21129886e+06 4.53752885e+04 ! x y z +2.60756743e+02 -2.09880469e+03 -1.84679906e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill +1.29160713e+04 !particle radius in m +8.30827394e+06 4.94291767e+06 9.57082698e+03 ! x y z +-1.06905700e+03 1.81887550e+03 -1.59783959e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill +6.28724063e+03 !particle radius in m +9.92654375e+06 -1.39802998e+06 4.49817877e+02 ! x y z +2.59014431e+02 2.03619473e+03 -1.49038139e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill +3.98022020e+03 !particle radius in m +2.81061041e+06 9.89835484e+06 -9.78582159e+04 ! x y z +-1.95518409e+03 5.78271402e+02 1.18622238e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill +5.77530198e+03 !particle radius in m +-5.58547024e+06 -9.86469957e+06 6.83294173e+04 ! x y z +1.69539459e+03 -9.41024851e+02 -1.14165406e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill +6.26805874e+03 !particle radius in m +8.08999866e+06 6.84273025e+06 1.04867849e+03 ! x y z +-1.27946500e+03 1.55545684e+03 8.91891880e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill +9.74422649e+03 !particle radius in m +9.18575665e+06 -5.49644544e+06 -5.52894905e+03 ! x y z +1.01968981e+03 1.71970787e+03 -3.39617822e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill +4.33654694e+03 !particle radius in m +1.80833036e+06 -9.23065450e+06 4.90226701e+04 ! x y z +2.08275022e+03 4.17014758e+02 6.63087350e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill +6.60858198e+03 !particle radius in m +1.18507627e+07 2.26553726e+06 2.21133096e+03 ! x y z +-3.50610095e+02 1.84373395e+03 -2.60885445e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill +7.13226721e+03 !particle radius in m +2.21659927e+07 -6.92493598e+06 -4.28421451e+04 ! x y z +4.19436458e+02 1.29376942e+03 -6.14053149e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill +8.09831906e+03 !particle radius in m +-6.92437867e+06 -6.69629009e+06 -5.72228921e+04 ! x y z +1.49689718e+03 -1.48846576e+03 -1.37808252e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill +1.01750117e+04 !particle radius in m +-6.66985595e+06 -7.23797041e+06 -1.53286702e+04 ! x y z +1.53320998e+03 -1.42766264e+03 2.90451170e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill +1.25638046e+04 !particle radius in m +-8.86868024e+06 7.20105731e+05 -2.22950048e+03 ! x y z +-1.95841451e+02 -2.19258513e+03 -3.67523850e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill +1.20137567e+04 !particle radius in m +5.67690574e+06 -1.03162373e+07 -9.41350622e+04 ! x y z +1.67246075e+03 9.20785969e+02 -1.99251255e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill +5.23260806e+03 !particle radius in m +5.50551593e+06 -1.45584653e+07 5.27718687e+04 ! x y z +1.54616130e+03 5.79954533e+02 7.51811204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill +1.20845494e+04 !particle radius in m +-3.47796098e+06 -8.90927004e+06 9.65028764e+03 ! x y z +1.97386652e+03 -7.53987246e+02 -3.28779531e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill +7.74350141e+03 !particle radius in m +7.74574172e+06 5.95714791e+06 -1.05471596e+04 ! x y z +-1.25035431e+03 1.67733844e+03 -1.65757527e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill +4.08711498e+03 !particle radius in m +-1.98199827e+07 7.29300766e+06 -1.29061581e+05 ! x y z +-4.89201522e+02 -1.32406236e+03 8.40261667e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill +9.69135174e+03 !particle radius in m +1.13588614e+07 1.27104515e+07 1.21608339e+05 ! x y z +-1.17212059e+03 1.06703576e+03 1.25962854e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill +1.07960507e+04 !particle radius in m +-6.88558621e+06 6.34193128e+06 -5.71723545e+04 ! x y z +-1.41834644e+03 -1.59442296e+03 3.00905420e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill +5.95367439e+03 !particle radius in m +2.58947797e+06 1.59613455e+07 1.59042158e+05 ! x y z +-1.60287570e+03 2.41814174e+02 -1.67580989e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill +5.64691333e+03 !particle radius in m +1.27274825e+07 3.00655471e+06 8.98397391e+03 ! x y z +-4.31699175e+02 1.77274933e+03 -1.26354778e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill +5.08343859e+03 !particle radius in m +-7.10630600e+06 -7.28840877e+06 -2.23411110e+03 ! x y z +1.47897945e+03 -1.43505611e+03 -2.71839174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill +4.64223699e+03 !particle radius in m +6.38222762e+06 -6.74069777e+06 8.75842881e+04 ! x y z +1.60375261e+03 1.44358800e+03 -9.05519600e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill +8.12086478e+03 !particle radius in m +-1.56702566e+07 4.26618807e+06 5.21823445e+04 ! x y z +-4.05029139e+02 -1.57894139e+03 2.53582968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill +9.30546634e+03 !particle radius in m +-8.73094270e+06 5.67791265e+06 2.17614432e+04 ! x y z +-1.10821669e+03 -1.70422433e+03 2.11567045e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill +5.54672703e+03 !particle radius in m +-1.01683371e+07 1.10819821e+06 1.64139763e+04 ! x y z +-2.62188936e+02 -2.02918021e+03 8.77276633e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill +4.01652823e+03 !particle radius in m +4.35525820e+06 1.08005096e+07 7.15657051e+04 ! x y z +-1.78452573e+03 7.14211418e+02 1.85217607e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill +8.23178885e+03 !particle radius in m +1.33640503e+06 -1.35991318e+07 1.26981224e+05 ! x y z +1.75325272e+03 1.99801637e+02 9.12185103e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill +7.10947055e+03 !particle radius in m +-6.82381137e+06 5.53567185e+06 7.84751624e+03 ! x y z +-1.38395700e+03 -1.73645326e+03 7.57405795e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill +4.80346108e+03 !particle radius in m +3.89840794e+06 1.10854924e+07 3.76242516e+03 ! x y z +-1.80675419e+03 6.21051875e+02 -1.71817477e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill +6.55725922e+03 !particle radius in m +-1.97874775e+06 -8.77567582e+06 -2.75052193e+03 ! x y z +2.14929146e+03 -4.63042632e+02 1.42528242e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill +1.04379733e+04 !particle radius in m +-3.69568353e+06 8.70958011e+06 1.23991773e+02 ! x y z +-1.95889951e+03 -8.30413409e+02 3.23324109e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill +4.12198879e+03 !particle radius in m +-7.46635757e+06 8.75996756e+06 -3.38546703e+04 ! x y z +-1.47538097e+03 -1.25605788e+03 1.14970804e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill +7.66776863e+03 !particle radius in m +5.08163706e+06 1.05043562e+07 -2.49011889e+04 ! x y z +-1.73355443e+03 8.04079694e+02 -1.88007028e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill +4.64199906e+03 !particle radius in m +4.39449717e+06 -7.93852417e+06 4.36583437e+04 ! x y z +1.88869963e+03 1.05420912e+03 5.50586344e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill +1.07424793e+04 !particle radius in m +8.63623502e+06 -7.74644884e+06 1.85384542e+04 ! x y z +1.26494539e+03 1.43300151e+03 7.04221650e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill +9.85657615e+03 !particle radius in m +-6.15368525e+05 1.49121598e+07 -4.67932565e+04 ! x y z +-1.68745762e+03 -4.92212694e+01 -1.94039771e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill +6.99747229e+03 !particle radius in m +8.64904319e+06 5.91192747e+06 -6.14206652e+04 ! x y z +-1.13126693e+03 1.64851790e+03 -1.89192778e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill +8.71931949e+03 !particle radius in m +-7.78414392e+06 4.96208659e+06 -1.63838108e+04 ! x y z +-1.12672930e+03 -1.82241793e+03 -5.96425105e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill +4.23710232e+03 !particle radius in m +9.85857087e+06 -4.25461587e+05 -7.76455058e+04 ! x y z +8.06687493e+01 2.07960003e+03 3.28242575e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill +1.00719866e+04 !particle radius in m +-3.92871528e+06 -2.24319020e+07 2.77551401e+04 ! x y z +1.34770576e+03 -2.35192176e+02 -6.19147736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill +7.23647883e+03 !particle radius in m +-9.85059665e+06 -8.52205655e+06 -5.48573039e+04 ! x y z +1.18464366e+03 -1.37030272e+03 9.99031014e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill +9.97940619e+03 !particle radius in m +-1.95744716e+06 -1.40658438e+07 -8.96628033e+04 ! x y z +1.72553028e+03 -2.22255484e+02 -2.68715792e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill +9.75068673e+03 !particle radius in m +-1.83887109e+07 -4.94937710e+06 4.13740137e+04 ! x y z +4.02207087e+02 -1.44472494e+03 7.82771281e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill +1.18333139e+04 !particle radius in m +6.28107583e+06 -7.96489519e+06 1.00181104e+05 ! x y z +1.61474462e+03 1.25899281e+03 3.25360113e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill +6.66516052e+03 !particle radius in m +8.57815199e+06 2.93408991e+06 1.00482256e+04 ! x y z +-7.00269987e+02 2.05582007e+03 1.47496098e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill +7.54796479e+03 !particle radius in m +3.89386447e+06 -1.18916453e+07 4.75801024e+03 ! x y z +1.79017897e+03 5.72333272e+02 1.35429336e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill +5.87384040e+03 !particle radius in m +-1.12819097e+07 -2.03828249e+07 -4.17849171e+04 ! x y z +1.20129982e+03 -6.40831904e+02 -7.21062138e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill +9.04694786e+03 !particle radius in m +-3.48844270e+06 -1.39807096e+07 -9.80376409e+04 ! x y z +1.67545999e+03 -4.23493775e+02 9.57144799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill +5.80834687e+03 !particle radius in m +-6.99241637e+06 -6.97891492e+06 1.17078416e+04 ! x y z +1.45466387e+03 -1.49110516e+03 -7.97644872e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill +7.27807466e+03 !particle radius in m +2.29671869e+07 -4.77992661e+06 -2.29056888e+05 ! x y z +2.66633595e+02 1.31300250e+03 8.11268595e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill +7.37859561e+03 !particle radius in m +1.12799199e+07 -5.64371881e+06 -4.86158248e+04 ! x y z +8.25574521e+02 1.64707498e+03 1.79426055e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill +4.55114695e+03 !particle radius in m +-8.97901930e+06 1.40018499e+06 -1.17315967e+04 ! x y z +-3.50813576e+02 -2.14111191e+03 1.58430709e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill +9.69448137e+03 !particle radius in m +-1.27934972e+07 5.80764481e+05 -6.60656959e+04 ! x y z +-8.73661010e+01 -1.83147573e+03 9.29252102e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill +1.23062037e+04 !particle radius in m +-6.51355993e+06 -1.80095300e+07 -1.28499713e+05 ! x y z +1.42185635e+03 -5.15444029e+02 4.71976246e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill +1.23109627e+04 !particle radius in m +-1.35063597e+06 1.04263703e+07 -1.65523047e+04 ! x y z +-1.99638943e+03 -2.63418025e+02 -1.41194780e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill +3.71369106e+03 !particle radius in m +-9.22486496e+06 2.96866634e+06 -1.89865927e+03 ! x y z +-6.64441635e+02 -2.00340641e+03 -1.17076646e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill +6.29750468e+03 !particle radius in m +7.10721350e+06 7.67585026e+06 -3.24513481e+03 ! x y z +-1.50133478e+03 1.36725034e+03 -1.87929113e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill +8.63385286e+03 !particle radius in m +-3.50855266e+06 -8.47958104e+06 5.43121964e+04 ! x y z +2.01378047e+03 -8.30225015e+02 -6.42928682e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill +5.95402041e+03 !particle radius in m +-1.71845688e+07 2.92835680e+06 1.80160654e+04 ! x y z +-2.68908847e+02 -1.54460993e+03 5.60740384e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill +9.54950570e+03 !particle radius in m +-9.06623165e+06 -4.20136967e+06 -2.06364196e+04 ! x y z +8.54458713e+02 -1.90544528e+03 6.22285906e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill +1.19619247e+04 !particle radius in m +5.25849667e+06 8.80426419e+06 1.08815572e+04 ! x y z +-1.77864099e+03 1.00939651e+03 -2.77090468e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill +6.74935610e+03 !particle radius in m +4.62808704e+06 1.40254648e+07 2.62029474e+04 ! x y z +-1.61136420e+03 5.34010697e+02 -6.77858294e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill +5.20619396e+03 !particle radius in m +2.01424278e+07 3.41792942e+05 1.94882104e+05 ! x y z +-2.93420884e+01 1.45364435e+03 -7.07412419e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill +1.06486075e+04 !particle radius in m +8.37083337e+06 -1.79540915e+07 -5.91009347e+04 ! x y z +1.33428010e+03 6.17563374e+02 2.42512024e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill +5.04887899e+03 !particle radius in m +9.18834937e+06 4.09046541e+05 5.54581813e+03 ! x y z +-7.23751549e+01 2.15950913e+03 6.85354866e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill +6.36561457e+03 !particle radius in m +2.40599869e+06 -1.36259877e+07 7.24745280e+03 ! x y z +1.74094787e+03 3.07239990e+02 8.10516402e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill +3.87967973e+03 !particle radius in m +-1.16034100e+07 -1.77480486e+06 -1.62127720e+04 ! x y z +2.83834839e+02 -1.87461386e+03 5.96638672e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill +6.85511860e+03 !particle radius in m +1.47515573e+07 -2.57581761e+05 -5.23662055e+04 ! x y z +1.10532093e+01 1.70024862e+03 8.28609927e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill +1.23039299e+04 !particle radius in m +1.13163190e+07 -7.84357347e+06 1.03407930e+04 ! x y z +1.01120595e+03 1.44577732e+03 -5.19143023e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill +5.75530148e+03 !particle radius in m +-3.32812125e+06 -9.44533791e+06 -4.90376566e+04 ! x y z +1.95676637e+03 -6.51606826e+02 -5.70434278e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill +1.24729785e+04 !particle radius in m +1.06811374e+07 -4.93512180e+06 -2.54549899e+04 ! x y z +7.94618978e+02 1.74255873e+03 -9.79841366e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill +1.17522845e+04 !particle radius in m +1.08275316e+07 3.16975354e+06 -1.83616872e+04 ! x y z +-5.71210349e+02 1.85480914e+03 -5.53165520e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill +1.19662231e+04 !particle radius in m +-8.93938095e+06 -1.07672320e+06 2.20211931e+02 ! x y z +2.21513596e+02 -2.17140814e+03 -5.31579057e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill +6.94294309e+03 !particle radius in m +-1.11274091e+07 6.99042019e+06 4.20463158e+03 ! x y z +-9.73175474e+02 -1.52053333e+03 -7.28310775e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill +9.44639204e+03 !particle radius in m +4.40522655e+06 -1.23917208e+07 -1.61713907e+04 ! x y z +1.70009079e+03 6.02493125e+02 -3.82502681e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill +6.43759473e+03 !particle radius in m +8.84972010e+06 5.65746303e+06 4.89598915e+04 ! x y z +-1.07695732e+03 1.71417278e+03 -2.68488868e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill +5.88752122e+03 !particle radius in m +-5.79952078e+06 8.88645462e+06 -2.44580541e+04 ! x y z +-1.68074658e+03 -1.10169885e+03 -6.29194406e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill +1.25432938e+04 !particle radius in m +-8.14410389e+06 -3.97016042e+06 -9.88813618e+04 ! x y z +9.01368103e+02 -1.96430805e+03 -4.40735560e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill +1.04148028e+04 !particle radius in m +7.46448044e+06 -4.58544507e+06 1.76340315e+04 ! x y z +1.15401750e+03 1.90545254e+03 -7.27693077e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill +1.12804852e+04 !particle radius in m +-2.08884933e+06 -1.02835429e+07 6.42079933e+03 ! x y z +1.99534972e+03 -4.16589585e+02 -4.18338876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill +7.47765824e+03 !particle radius in m +3.36937988e+06 -9.91809680e+06 5.89060808e+04 ! x y z +1.88421155e+03 6.84396854e+02 -2.08220150e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill +9.05273758e+03 !particle radius in m +-7.24117471e+06 -9.21469921e+06 -3.61410851e+04 ! x y z +1.49902224e+03 -1.18897591e+03 9.80133706e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill +1.25609127e+04 !particle radius in m +-3.74450435e+06 -8.15891931e+06 2.77691948e+04 ! x y z +1.97501199e+03 -9.06036575e+02 -2.45381289e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill +8.46042215e+03 !particle radius in m +7.14052519e+06 1.53102112e+07 1.62981971e+05 ! x y z +-1.44016584e+03 6.81333291e+02 -1.60906032e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill +1.30715050e+04 !particle radius in m +-1.03399269e+07 2.85213950e+05 -3.22137865e+04 ! x y z +-5.00043408e+01 -2.01781826e+03 1.16086899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill +1.28466493e+04 !particle radius in m +4.61126913e+06 7.68167619e+06 3.21015460e+03 ! x y z +-1.87745924e+03 1.11654918e+03 8.74586750e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill +1.00516869e+04 !particle radius in m +-7.63901209e+05 9.38473527e+06 2.09296480e+04 ! x y z +-2.13149182e+03 -1.53874003e+02 1.07619871e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill +4.49233328e+03 !particle radius in m +-3.50142507e+06 1.29584846e+07 4.99036110e+03 ! x y z +-1.71988301e+03 -4.67120020e+02 -1.52874482e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill +3.93575293e+03 !particle radius in m +2.89549121e+05 9.73817170e+06 7.30475924e+03 ! x y z +-2.10637979e+03 6.28009545e+01 2.73575242e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill +5.55621969e+03 !particle radius in m +-8.69236370e+06 2.60571730e+06 1.87543471e+04 ! x y z +-6.41047725e+02 -2.08196126e+03 -9.78180600e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill +1.17336811e+04 !particle radius in m +1.16999055e+07 -8.45214750e+05 -1.23088793e+04 ! x y z +1.51868140e+02 1.88990987e+03 5.91582506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill +1.23451688e+04 !particle radius in m +1.04932440e+07 6.34593749e+06 -5.14735307e+04 ! x y z +-9.55788059e+02 1.61305183e+03 7.38311147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill +9.05651521e+03 !particle radius in m +-1.00872411e+07 -7.19383413e+06 1.02683109e+05 ! x y z +1.09632503e+03 -1.47708699e+03 2.53571970e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill +8.39272259e+03 !particle radius in m +-1.29868607e+07 9.20702284e+06 -1.02202794e+05 ! x y z +-9.58764873e+02 -1.33478274e+03 7.40636311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill +1.03677203e+04 !particle radius in m +2.69271095e+06 9.12085234e+06 -6.31280178e+04 ! x y z +-2.04468399e+03 6.49763127e+02 -6.41633267e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill +9.48618629e+03 !particle radius in m +-1.04843536e+07 -2.82530322e+06 -6.63351271e+03 ! x y z +5.35179489e+02 -1.90917831e+03 -8.89095603e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill +1.16195447e+04 !particle radius in m +8.55294018e+06 -2.42617769e+06 2.52020611e+04 ! x y z +6.43758212e+02 2.11770030e+03 -2.00995235e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill +1.23569961e+04 !particle radius in m +9.56160063e+06 2.03876951e+05 -1.15187717e+04 ! x y z +-2.08727307e+01 2.13182274e+03 -6.37368295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill +3.80903228e+03 !particle radius in m +8.39735110e+06 -4.64919497e+06 -4.03636604e+04 ! x y z +1.02402689e+03 1.86350550e+03 3.48961376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill +7.62073270e+03 !particle radius in m +1.14766676e+07 -2.46673442e+06 -6.18541161e+03 ! x y z +3.81520272e+02 1.87089502e+03 -6.28495237e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill +4.79251234e+03 !particle radius in m +7.65927810e+06 5.58691775e+06 6.38708550e+04 ! x y z +-1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill +4.85987440e+03 !particle radius in m +1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z +-2.71027694e+02 1.59383670e+03 4.71948132e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill +7.30665510e+03 !particle radius in m +-2.08216759e+06 -9.23350326e+06 -8.76611629e+04 ! x y z +2.08240223e+03 -4.40249465e+02 -1.27767388e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill +5.32422025e+03 !particle radius in m +8.73066827e+06 -2.21328634e+05 -3.34004359e+04 ! x y z +4.79166308e+01 2.23450529e+03 -9.11532147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill +1.18628272e+04 !particle radius in m +1.62631471e+07 4.67259161e+06 2.64032894e+04 ! x y z +-4.50841052e+02 1.52122597e+03 1.13312253e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill +7.00538757e+03 !particle radius in m +5.98003979e+05 -1.57345854e+07 -2.89481346e+04 ! x y z +1.64606847e+03 7.79210619e+01 -6.19029962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill +7.47416865e+03 !particle radius in m +-8.48106759e+06 4.91431093e+06 -8.66403288e+04 ! x y z +-1.03310578e+03 -1.80626108e+03 1.07091841e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill +1.21404101e+04 !particle radius in m +-1.84578837e+07 9.47798697e+05 -1.11240327e+05 ! x y z +-8.38856040e+01 -1.52441650e+03 -4.87143776e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill +1.17785087e+04 !particle radius in m +-5.76687798e+06 9.89435129e+06 4.39168015e+04 ! x y z +-1.66547278e+03 -9.63693666e+02 4.18572107e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill +5.60953779e+03 !particle radius in m +-1.82862969e+06 8.61926907e+06 -1.75357465e+04 ! x y z +-2.15498233e+03 -4.93004829e+02 7.64196538e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill +7.71421647e+03 !particle radius in m +3.76525777e+06 -1.03931378e+07 -7.52318459e+04 ! x y z +1.83850823e+03 6.78500036e+02 -6.89947122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill +8.65284640e+03 !particle radius in m +-6.33335198e+06 -5.98167685e+06 -3.08011537e+04 ! x y z +1.53763163e+03 -1.62109001e+03 -2.47037358e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill +6.23522281e+03 !particle radius in m +9.90333087e+06 -4.01192277e+06 6.04079611e+04 ! x y z +7.43355257e+02 1.83366572e+03 -1.58715640e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill +1.30331280e+04 !particle radius in m +-5.98502411e+06 1.07946936e+07 4.97027123e+03 ! x y z +-1.61657634e+03 -8.93801164e+02 -1.07876442e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill +9.63310475e+03 !particle radius in m +-6.59615203e+06 -1.12304386e+07 9.72528165e+04 ! x y z +1.57957874e+03 -9.09183472e+02 3.54133115e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill +6.79194010e+03 !particle radius in m +8.96651461e+06 1.05824022e+06 -2.00386304e+04 ! x y z +-2.80453416e+02 2.17973889e+03 1.20973693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill +9.18776116e+03 !particle radius in m +1.47368687e+06 1.52540290e+07 1.91344142e+05 ! x y z +-1.67085873e+03 1.59690705e+02 -2.30924434e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill +9.24689597e+03 !particle radius in m +-1.31122397e+06 1.35322324e+07 5.51107975e+04 ! x y z +-1.76733822e+03 -1.66895030e+02 1.40149353e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill +8.25926956e+03 !particle radius in m +6.67718106e+06 -6.31157792e+06 2.26609344e+04 ! x y z +1.50456951e+03 1.52943679e+03 8.18042830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill +1.06839624e+04 !particle radius in m +-9.16360265e+06 6.32922451e+06 2.58199480e+03 ! x y z +-1.14874981e+03 -1.60466496e+03 1.97944632e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill +6.68610634e+03 !particle radius in m +-1.15940056e+07 4.46540148e+06 -5.91615241e+04 ! x y z +-6.61054922e+02 -1.74552414e+03 3.85473780e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill +5.97652691e+03 !particle radius in m +7.27954173e+05 8.98873006e+06 3.22170920e+04 ! x y z +-2.16869199e+03 1.52559195e+02 -7.62441611e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill +9.95113166e+03 !particle radius in m +-7.91834556e+06 1.12541780e+07 -7.01445845e+04 ! x y z +-1.45888232e+03 -1.02209811e+03 -1.64204126e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill +5.79684738e+03 !particle radius in m +-1.33826547e+07 -7.97098248e+06 5.10482753e+03 ! x y z +8.38898161e+02 -1.43447217e+03 1.26393376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill +6.55636334e+03 !particle radius in m +1.00439607e+07 -4.85348750e+06 1.01261466e+05 ! x y z +8.20741840e+02 1.77276708e+03 -5.85913488e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill +6.70339268e+03 !particle radius in m +2.04930949e+06 -9.32239452e+06 -2.24373576e+04 ! x y z +2.07456592e+03 4.98065963e+02 1.20751769e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill +6.51070352e+03 !particle radius in m +-2.17215478e+07 -8.78835015e+06 -4.01495560e+04 ! x y z +5.14278406e+02 -1.24501793e+03 7.48973214e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill +1.11459543e+04 !particle radius in m +1.20260148e+07 1.50890452e+06 -8.61170776e+04 ! x y z +-2.28727670e+02 1.85884268e+03 1.03561533e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill +8.95337335e+03 !particle radius in m +6.77964628e+06 6.80088173e+06 3.59640048e+04 ! x y z +-1.51037716e+03 1.46534327e+03 4.36610744e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill +7.26477146e+03 !particle radius in m +1.93741347e+07 4.35856951e+06 -7.05507935e+02 ! x y z +-2.95958141e+02 1.44257652e+03 3.98161720e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill +1.17954044e+04 !particle radius in m +-1.36515521e+07 5.47808328e+06 2.30862197e+04 ! x y z +-6.21116352e+02 -1.59076755e+03 -4.14797264e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill +1.01304435e+04 !particle radius in m +1.29557484e+07 -3.33144253e+06 5.90527945e+04 ! x y z +4.53468556e+02 1.72544679e+03 8.55651480e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill +4.29537029e+03 !particle radius in m +1.22881970e+07 4.73181161e+06 8.31929270e+04 ! x y z +-6.58468588e+02 1.69384960e+03 -1.28940832e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill +5.31616352e+03 !particle radius in m +1.42705581e+07 -5.59919890e+06 -1.20173006e+04 ! x y z +6.15518752e+02 1.56633732e+03 -3.00095341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill +1.30497175e+04 !particle radius in m +1.22157187e+07 1.21158385e+07 -1.89187958e+04 ! x y z +-1.13185306e+03 1.10567360e+03 -1.20248978e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill +5.38815059e+03 !particle radius in m +3.95878049e+06 -8.23148660e+06 5.75314545e+04 ! x y z +1.96980210e+03 9.25868395e+02 1.73432582e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill +1.17101897e+04 !particle radius in m +-3.77919432e+06 1.07609723e+07 -5.23499337e+04 ! x y z +-1.82204789e+03 -6.43288095e+02 1.18800083e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill +6.69695574e+03 !particle radius in m +-1.05319563e+07 9.02628865e+06 7.76373874e+04 ! x y z +-1.14418489e+03 -1.35282145e+03 -8.67554957e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill +4.25091189e+03 !particle radius in m +1.11472461e+07 3.88496928e+06 2.24744875e+04 ! x y z +-6.24929449e+02 1.77558367e+03 1.82397206e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill +9.99413848e+03 !particle radius in m +7.13225296e+06 7.84741088e+06 7.08528372e+04 ! x y z +-1.47773160e+03 1.36033625e+03 -6.05338364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill +4.41976293e+03 !particle radius in m +1.57340361e+07 -9.25306632e+06 1.05005348e+05 ! x y z +7.63951994e+02 1.32212390e+03 -5.72592279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill +7.48688169e+03 !particle radius in m +1.78996895e+07 -3.23122702e+06 -8.50474408e+04 ! x y z +2.79448983e+02 1.51858349e+03 1.07776473e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill +9.82017615e+03 !particle radius in m +-1.25291109e+06 8.92261901e+06 6.19393261e+04 ! x y z +-2.15215968e+03 -3.42916287e+02 5.69467556e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill +6.92499799e+03 !particle radius in m +3.17829891e+06 -1.10142305e+07 -2.69804501e+04 ! x y z +1.85575994e+03 5.54347759e+02 -8.57029148e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill +7.71454664e+03 !particle radius in m +-1.52137099e+06 1.03039110e+07 -2.28129443e+04 ! x y z +-2.01239392e+03 -3.00583105e+02 1.82997128e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill +1.24308761e+04 !particle radius in m +7.58255782e+06 -6.89244058e+06 -4.22200409e+04 ! x y z +1.36574672e+03 1.52351062e+03 -3.42663337e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill +1.25439096e+04 !particle radius in m +-8.20564828e+06 8.24671241e+06 -1.78987991e+05 ! x y z +-1.37211179e+03 -1.35613094e+03 5.81977986e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill +9.84359343e+03 !particle radius in m +8.14883976e+06 -1.20311130e+07 2.81646262e+04 ! x y z +1.42418230e+03 9.71290645e+02 -1.65557105e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill +1.23336592e+04 !particle radius in m +2.74582126e+06 -8.71763630e+06 6.44092995e+04 ! x y z +2.06453659e+03 6.75538119e+02 -1.84554482e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill +1.06035211e+04 !particle radius in m +7.67980194e+06 -6.41178879e+06 9.39794316e+04 ! x y z +1.32508200e+03 1.58960541e+03 -1.68646923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill +1.01232471e+04 !particle radius in m +1.08862914e+07 -1.69171267e+06 1.06890002e+04 ! x y z +2.66940523e+02 1.93825037e+03 -3.17829482e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill +9.07368751e+03 !particle radius in m +-2.12855771e+07 -6.22047593e+06 4.09709267e+04 ! x y z +3.86441604e+02 -1.32836590e+03 2.12243761e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill +1.06903372e+04 !particle radius in m +1.19425206e+06 -8.91233794e+06 3.55973631e+04 ! x y z +2.17359618e+03 2.49148190e+02 5.23202275e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill +3.74060212e+03 !particle radius in m +9.56786350e+06 4.49949446e+05 3.82232625e+04 ! x y z +-9.15404876e+01 2.12884256e+03 -8.93875847e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill +7.94450563e+03 !particle radius in m +2.52449139e+06 -8.63435263e+06 3.47588448e+03 ! x y z +2.08621300e+03 5.91911411e+02 -3.57309299e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill +4.91211126e+03 !particle radius in m +1.30335501e+07 -9.18110749e+05 -5.93800312e+04 ! x y z +1.10189733e+02 1.82033941e+03 -1.02966654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill +1.07411202e+04 !particle radius in m +-8.43406318e+06 -5.93404434e+06 2.36715133e+04 ! x y z +1.16500133e+03 -1.67478526e+03 9.48734166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill +5.59848141e+03 !particle radius in m +1.45797657e+06 -1.20421345e+07 -3.75037404e+04 ! x y z +1.87575411e+03 2.26832585e+02 1.21113356e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill +9.61704013e+03 !particle radius in m +7.82736208e+06 -4.81216442e+06 6.09982286e+04 ! x y z +1.09482209e+03 1.86309298e+03 2.82110626e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill +1.26459448e+04 !particle radius in m +-1.04983951e+07 -9.78210039e+06 4.04999757e+04 ! x y z +1.16976801e+03 -1.28733444e+03 3.36107675e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill +8.00145320e+03 !particle radius in m +-8.88059070e+06 -1.48350388e+06 -3.65798996e+04 ! x y z +3.63914783e+02 -2.15370844e+03 -4.03870858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill +4.34941489e+03 !particle radius in m +1.71799482e+06 -1.11150786e+07 -1.11600323e+04 ! x y z +1.89156931e+03 3.37161187e+02 -5.00763335e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill +4.29486797e+03 !particle radius in m +1.22676746e+07 -7.93082840e+06 -7.55901444e+04 ! x y z +9.10780310e+02 1.43519257e+03 -9.59182854e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill +1.10726580e+04 !particle radius in m +6.08378238e+06 -7.87148142e+06 -2.39812665e+04 ! x y z +1.65441655e+03 1.27707568e+03 -1.18584893e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill +1.15859081e+04 !particle radius in m +5.05198031e+06 1.16964703e+07 1.98330665e+04 ! x y z +-1.69333923e+03 7.02450436e+02 2.04857518e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill +8.69558011e+03 !particle radius in m +-2.23024582e+06 1.75885326e+07 3.84168836e+04 ! x y z +-1.54534740e+03 -1.88777263e+02 1.39357869e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill +6.71590808e+03 !particle radius in m +1.11164532e+07 8.01001814e+06 1.06625699e+05 ! x y z +-1.04365443e+03 1.44565605e+03 2.11662748e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill +1.11542662e+04 !particle radius in m +-1.17258082e+06 -1.22657889e+07 4.54924052e+04 ! x y z +1.84907037e+03 -1.95731556e+02 1.04424396e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill +5.76789746e+03 !particle radius in m +8.87472318e+06 -1.41477847e+06 9.96850714e+03 ! x y z +3.48170496e+02 2.16686116e+03 6.86996341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill +9.35014220e+03 !particle radius in m +-1.06755868e+07 -2.26215221e+06 -1.03098190e+04 ! x y z +4.22938170e+02 -1.92356457e+03 -6.44322506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill +6.35246381e+03 !particle radius in m +-1.15286614e+07 6.85922305e+05 -2.50421030e+03 ! x y z +-1.47622259e+02 -1.91263388e+03 -2.66811177e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill +7.25614557e+03 !particle radius in m +-1.14907610e+07 3.12025122e+06 -5.05043492e+04 ! x y z +-4.96419350e+02 -1.84148364e+03 1.23574710e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill +1.02673671e+04 !particle radius in m +3.52540674e+06 1.12335432e+07 5.00575123e+04 ! x y z +-1.81448873e+03 5.96787301e+02 1.05390435e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill +7.63921866e+03 !particle radius in m +-1.63903863e+07 9.01968445e+06 -1.03768934e+05 ! x y z +-7.30657688e+02 -1.32744569e+03 -3.28089387e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill +1.06009616e+04 !particle radius in m +1.01396523e+07 -4.81960415e+06 4.30193977e+03 ! x y z +8.23199841e+02 1.75908251e+03 4.33811421e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill +1.05483834e+04 !particle radius in m +1.06454895e+07 5.05879867e+06 5.08283132e+04 ! x y z +-8.22304047e+02 1.73567086e+03 1.93532669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill +7.81533428e+03 !particle radius in m +-1.60755914e+07 -7.66558706e+05 1.42941147e+04 ! x y z +6.22982075e+01 -1.61863536e+03 -1.60725073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill +1.15883574e+04 !particle radius in m +-1.46060477e+06 -8.99385191e+06 -3.08209444e+04 ! x y z +2.13011898e+03 -3.25298595e+02 2.80216541e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill +1.12624422e+04 !particle radius in m +-1.41660966e+06 8.99035717e+06 1.40528615e+04 ! x y z +-2.12617696e+03 -3.75024767e+02 -9.07028597e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill +1.21525746e+04 !particle radius in m +8.84712919e+06 3.96421798e+06 1.13803740e+04 ! x y z +-8.83218100e+02 1.91945493e+03 3.31259998e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill +5.67364039e+03 !particle radius in m +6.88657663e+06 -1.05966202e+07 1.71451160e+03 ! x y z +1.56481452e+03 9.63079720e+02 1.94534764e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill +7.43259427e+03 !particle radius in m +-8.85269678e+06 5.44905716e+06 -5.60825695e+04 ! x y z +-1.07596431e+03 -1.72186966e+03 1.77805310e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill +1.19513059e+04 !particle radius in m +3.11450797e+06 -1.37495078e+07 -3.57099214e+04 ! x y z +1.70202965e+03 3.85543507e+02 -4.49001111e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill +1.10220195e+04 !particle radius in m +-9.00924085e+06 4.66367866e+06 1.26574464e+04 ! x y z +-9.50214730e+02 -1.81339232e+03 -1.20100516e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill +5.04841672e+03 !particle radius in m +-1.08865724e+07 1.89436312e+06 -5.35372336e+04 ! x y z +-3.54360414e+02 -1.92451382e+03 8.24540973e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill +4.15403541e+03 !particle radius in m +1.55751438e+07 6.03420204e+06 -2.57378814e+04 ! x y z +-5.81737732e+02 1.49479237e+03 -7.62983212e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill +1.15117238e+04 !particle radius in m +1.06056911e+07 8.74976261e+04 -1.72290821e+03 ! x y z +-1.77150357e+01 2.02140459e+03 -2.31012980e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill +1.11945004e+04 !particle radius in m +-6.72042968e+06 -1.07531738e+07 5.09281015e+04 ! x y z +1.56397473e+03 -9.57368328e+02 -1.25364327e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill +7.53816353e+03 !particle radius in m +4.10458407e+06 -1.13623664e+07 -9.48469623e+04 ! x y z +1.78215300e+03 6.13680096e+02 -7.93502985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill +7.54041364e+03 !particle radius in m +8.42747503e+06 -6.97349936e+06 -2.15671129e+04 ! x y z +1.26552336e+03 1.51523836e+03 2.12892191e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill +6.76488745e+03 !particle radius in m +-1.31213742e+07 -4.58561120e+06 1.53600301e+04 ! x y z +5.82359194e+02 -1.66882713e+03 1.14079207e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill +6.58324849e+03 !particle radius in m +-7.56393159e+06 7.09659926e+06 -4.65315976e+04 ! x y z +-1.36862256e+03 -1.51081343e+03 1.13488899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill +8.49453445e+03 !particle radius in m +4.46247777e+06 -8.10645059e+06 1.43618351e+04 ! x y z +1.90934802e+03 1.00293881e+03 8.21819949e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill +6.81841660e+03 !particle radius in m +-9.96034566e+06 4.35537723e+06 -1.20286093e+04 ! x y z +-7.67471215e+02 -1.83079175e+03 -1.31980560e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill +1.08946542e+04 !particle radius in m +-1.14760721e+07 3.70943531e+06 -9.49844421e+04 ! x y z +-5.95286906e+02 -1.76496467e+03 3.00728950e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill +1.25068862e+04 !particle radius in m +-1.57425262e+07 -1.71485068e+06 5.83418789e+04 ! x y z +1.83396886e+02 -1.64215306e+03 1.76834645e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill +1.14129344e+04 !particle radius in m +-5.50533612e+06 -7.29539312e+06 -4.19582765e+04 ! x y z +1.70576164e+03 -1.34793657e+03 3.36918899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill +7.58200769e+03 !particle radius in m +-1.84334893e+06 9.13437442e+06 -6.98626074e+03 ! x y z +-2.09435634e+03 -4.13549777e+02 1.31091798e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill +1.16362363e+04 !particle radius in m +-8.24556722e+05 1.30406598e+07 9.22800110e+04 ! x y z +-1.80291385e+03 -1.14208577e+02 5.06777815e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill +8.28218455e+03 !particle radius in m +-9.92787386e+06 7.89436638e+06 5.47155159e+04 ! x y z +-1.15186100e+03 -1.44221325e+03 -1.43299470e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill +5.69676070e+03 !particle radius in m +-1.72820033e+07 -1.54859445e+07 -1.76600870e+05 ! x y z +9.00952544e+02 -1.00938815e+03 5.52976287e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill +1.17273100e+04 !particle radius in m +7.54874149e+06 -7.34865635e+06 1.58691383e+04 ! x y z +1.40447688e+03 1.44745232e+03 -1.19902506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill +7.57115197e+03 !particle radius in m +6.70925482e+06 1.02233476e+07 -8.94168570e+04 ! x y z +-1.57673538e+03 1.00346927e+03 -1.54449677e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill +1.07187619e+04 !particle radius in m +-9.38875782e+06 -1.03278172e+06 4.07424683e+04 ! x y z +2.57699240e+02 -2.12423408e+03 -1.75552004e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill +7.85184231e+03 !particle radius in m +9.27514180e+06 3.60605892e+06 -8.97298126e+03 ! x y z +-7.45316219e+02 1.94032830e+03 2.50725751e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill +5.81259090e+03 !particle radius in m +2.84715606e+05 -8.96387040e+06 -7.61793089e+04 ! x y z +2.17642987e+03 7.44775849e+01 5.43474351e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill +1.05845019e+04 !particle radius in m +4.23618089e+06 8.82455069e+06 -3.58009197e+04 ! x y z +-1.88592236e+03 9.06205367e+02 -1.32060735e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill +9.03321920e+03 !particle radius in m +8.99412766e+06 -6.25093595e+06 5.78854309e+04 ! x y z +1.13268666e+03 1.63171487e+03 -3.80887879e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill +1.06850859e+04 !particle radius in m +8.95756676e+06 -5.04120234e+06 4.46604404e+04 ! x y z +9.97476295e+02 1.78291720e+03 1.83929026e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill +1.09897543e+04 !particle radius in m +-6.88398435e+06 -9.59185877e+06 5.44110030e+04 ! x y z +1.53704986e+03 -1.12804795e+03 1.33934445e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill +6.75416723e+03 !particle radius in m +4.06115845e+06 9.20664592e+06 1.44995295e+04 ! x y z +-1.87321421e+03 8.55264917e+02 4.54558328e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill +4.24346826e+03 !particle radius in m +5.83709056e+06 1.18773019e+07 -1.78313453e+04 ! x y z +-1.60438748e+03 8.04911839e+02 7.87147192e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill +1.27557328e+04 !particle radius in m +-9.82331264e+06 -1.72475014e+06 -4.50474397e+04 ! x y z +3.80035552e+02 -2.02006276e+03 1.41607704e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill +6.59694858e+03 !particle radius in m +-9.75150606e+06 1.14173962e+06 1.90738112e+04 ! x y z +-2.44986733e+02 -2.07228361e+03 4.28819137e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill +1.25314767e+04 !particle radius in m +8.89271698e+06 -2.80889036e+06 -9.05088712e+04 ! x y z +6.43083392e+02 2.05152117e+03 5.84263642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill +5.48083372e+03 !particle radius in m +5.55138431e+05 8.96699891e+06 -2.02907914e+03 ! x y z +-2.16543193e+03 1.17824020e+02 1.89028293e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill +1.01136344e+04 !particle radius in m +1.08689498e+07 6.77891019e+06 -1.57957399e+05 ! x y z +-9.58257682e+02 1.54874788e+03 -4.38996175e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill +1.19617045e+04 !particle radius in m +-3.46641057e+06 1.06366697e+07 -4.89091419e+04 ! x y z +-1.87369781e+03 -5.85557096e+02 2.64347289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill +1.29314335e+04 !particle radius in m +7.28383532e+06 5.25991927e+06 -2.74032882e+04 ! x y z +-1.28268765e+03 1.77447224e+03 6.54106986e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill +5.50052892e+03 !particle radius in m +-4.06177152e+06 -1.52948510e+07 1.69121808e+05 ! x y z +1.57226331e+03 -4.40552105e+02 -4.07139830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill +4.79923872e+03 !particle radius in m +-9.47543528e+06 -9.79695598e+05 -1.53056931e+04 ! x y z +2.01324530e+02 -2.10617058e+03 -1.48150840e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill +8.40797283e+03 !particle radius in m +-1.79473215e+07 9.78097521e+05 5.91571461e+04 ! x y z +-1.10933113e+02 -1.54125298e+03 1.80243489e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill +8.72299905e+03 !particle radius in m +-4.10705239e+06 2.02615072e+07 8.49438827e+04 ! x y z +-1.41774938e+03 -2.76831824e+02 -8.09634112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill +4.25918528e+03 !particle radius in m +9.20347813e+05 1.11635810e+07 4.32283845e+04 ! x y z +-1.94746867e+03 1.65365528e+02 5.45495799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill +1.11681152e+04 !particle radius in m +1.02476212e+07 1.57307556e+06 1.24769819e+04 ! x y z +-3.20593926e+02 2.01506970e+03 6.12888669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill +9.67932473e+03 !particle radius in m +-9.41529174e+06 -1.45196651e+06 -3.72716178e+03 ! x y z +3.30034223e+02 -2.10697891e+03 -9.10557070e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill +7.16468942e+03 !particle radius in m +9.63405331e+06 9.48657460e+06 -1.16765431e+05 ! x y z +-1.25212013e+03 1.25762974e+03 -8.79471164e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill +6.23859022e+03 !particle radius in m +1.28395429e+07 1.67358191e+05 3.52526511e+04 ! x y z +-4.79000239e+01 1.82109236e+03 -7.08024284e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill +1.05194783e+04 !particle radius in m +1.69906243e+05 1.31567065e+07 -2.83802597e+04 ! x y z +-1.79852464e+03 -2.60855891e+01 1.09479469e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill +1.30502985e+04 !particle radius in m +-8.71409354e+06 -5.07378044e+06 -2.89973508e+04 ! x y z +1.01955016e+03 -1.80816198e+03 1.72703995e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill +1.10169094e+04 !particle radius in m +-1.32773676e+07 9.58326159e+06 1.68929446e+04 ! x y z +-9.40100121e+02 -1.31837280e+03 -1.11767857e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill +9.57459397e+03 !particle radius in m +-8.40811158e+06 5.08930784e+06 5.82263133e+04 ! x y z +-1.10041478e+03 -1.79532449e+03 1.45771724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill +3.98308125e+03 !particle radius in m +1.04113372e+07 -6.20697428e+06 -4.84867208e+03 ! x y z +9.45840262e+02 1.61620978e+03 2.47832189e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill +9.15799677e+03 !particle radius in m +-8.01518815e+06 -5.01852324e+06 5.17503273e+04 ! x y z +1.12426091e+03 -1.82440187e+03 2.07206048e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill +7.21107035e+03 !particle radius in m +2.07944449e+06 8.94904149e+06 4.13797547e+04 ! x y z +-2.09851241e+03 4.60858305e+02 2.54918811e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill +7.12123600e+03 !particle radius in m +9.71543544e+06 -3.75196256e+06 7.97368753e+04 ! x y z +7.42718545e+02 1.90076456e+03 1.83014984e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill +8.68766895e+03 !particle radius in m +1.76238307e+07 7.35273671e+06 8.70758386e+04 ! x y z +-5.77591306e+02 1.37259271e+03 3.08504041e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill +1.18860727e+04 !particle radius in m +1.05252406e+07 1.01023349e+07 1.18854193e+04 ! x y z +-1.19069656e+03 1.22779101e+03 7.21918511e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill +1.05401406e+04 !particle radius in m +-2.44589262e+06 9.98155585e+06 -7.16098465e+04 ! x y z +-2.01199959e+03 -4.94158200e+02 1.76332595e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill +1.14368147e+04 !particle radius in m +-1.71313810e+07 1.65684524e+05 7.09374774e+04 ! x y z +-1.73247831e+01 -1.58285349e+03 5.23281867e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill +1.10288797e+04 !particle radius in m +5.96055313e+06 8.26822848e+06 -6.95116782e+04 ! x y z +-1.67280349e+03 1.20494456e+03 -5.49043884e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill +4.32451704e+03 !particle radius in m +-4.58351543e+06 8.68653626e+06 -2.19181580e+04 ! x y z +-1.82145003e+03 -9.87506692e+02 -1.02913863e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill +5.91337055e+03 !particle radius in m +1.46092641e+06 1.62085257e+07 9.35785200e+04 ! x y z +-1.61693894e+03 1.23715914e+02 1.88035614e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill +6.91398214e+03 !particle radius in m +8.37967759e+06 2.86987872e+06 4.97540416e+02 ! x y z +-6.79497178e+02 2.09457077e+03 -7.48586459e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill +7.72793689e+03 !particle radius in m +1.00544998e+07 -4.23649556e+06 1.69842871e+04 ! x y z +7.79559289e+02 1.80935311e+03 -9.45690780e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill +5.52345548e+03 !particle radius in m +4.97012699e+06 7.77763306e+06 -1.08049137e+05 ! x y z +-1.81754065e+03 1.16817211e+03 7.93709072e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill +1.16622408e+04 !particle radius in m +-8.56556120e+06 -3.00745478e+06 2.68959103e+04 ! x y z +7.41957227e+02 -2.02442760e+03 5.97293652e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill +3.85423811e+03 !particle radius in m +-9.89914954e+06 1.64381375e+06 1.86441037e+04 ! x y z +-3.29902217e+02 -2.03621690e+03 -1.49125925e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill +9.71972363e+03 !particle radius in m +-1.33296527e+07 -1.79984260e+07 -6.91244815e+03 ! x y z +1.12052368e+03 -8.18620884e+02 -1.17030012e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill +8.10053368e+03 !particle radius in m +2.47744290e+05 1.08515872e+07 8.05332988e+04 ! x y z +-1.98242921e+03 4.60702324e+01 -8.10883988e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill +9.01222011e+03 !particle radius in m +-1.04485761e+07 -3.19315171e+06 -6.87163868e+04 ! x y z +5.84305730e+02 -1.88680612e+03 1.24994521e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill +7.38646156e+03 !particle radius in m +-4.30915405e+06 1.13988191e+07 -1.87898899e+03 ! x y z +-1.74153886e+03 -6.58302615e+02 5.64269794e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill +4.00465955e+03 !particle radius in m +1.07629692e+07 1.37789153e+07 5.87066489e+04 ! x y z +-1.23476438e+03 9.58354279e+02 -1.51457433e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill +8.23094873e+03 !particle radius in m +-2.26919155e+06 -2.23065641e+07 1.71429522e+05 ! x y z +1.36729685e+03 -1.26785143e+02 1.53512073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill +4.90670043e+03 !particle radius in m +-8.76057602e+06 -2.98488729e+06 3.16441575e+04 ! x y z +7.01564230e+02 -2.04784374e+03 6.54428080e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill +1.18338596e+04 !particle radius in m +7.33432561e+06 1.58195231e+07 -1.25526941e+05 ! x y z +-1.41716350e+03 6.50084435e+02 1.99363998e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill +5.31334038e+03 !particle radius in m +9.67909368e+06 -3.14679172e+06 1.01149877e+04 ! x y z +6.30534017e+02 1.94451859e+03 1.40841719e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill +6.60251226e+03 !particle radius in m +3.58575623e+06 -8.28340933e+06 2.06786831e+04 ! x y z +2.01251169e+03 8.71048387e+02 4.13835680e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill +8.17577418e+03 !particle radius in m +-1.59444867e+07 -9.43202143e+06 -1.03432964e+05 ! x y z +7.76368044e+02 -1.31648260e+03 -1.97011404e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill +3.92504366e+03 !particle radius in m +8.15294773e+06 -4.83168922e+06 -2.23196035e+04 ! x y z +1.12438877e+03 1.80730928e+03 -9.96110137e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill +5.55020210e+03 !particle radius in m +1.15608807e+07 -1.72289132e+06 8.78681619e+04 ! x y z +2.64558251e+02 1.88351104e+03 -1.22676546e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill +7.45917792e+03 !particle radius in m +5.94153104e+05 1.04675287e+07 -7.76838952e+04 ! x y z +-2.01022149e+03 1.00791259e+02 2.73869669e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill +6.80580498e+03 !particle radius in m +9.10704389e+06 5.66556444e+06 -1.21395685e+05 ! x y z +-1.06310456e+03 1.70305461e+03 1.52195271e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill +7.63395485e+03 !particle radius in m +-6.14994249e+06 -1.27900562e+07 -1.88907757e+04 ! x y z +1.55814359e+03 -7.78224426e+02 2.73440877e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill +7.02952878e+03 !particle radius in m +-8.80385560e+06 3.77151207e+06 -1.21818940e+05 ! x y z +-8.47944944e+02 -1.95313347e+03 -1.70763192e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill +1.20172005e+04 !particle radius in m +1.08664166e+07 5.36923937e+06 -8.13196573e+04 ! x y z +-8.16624638e+02 1.69027839e+03 8.34673628e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill +6.38540043e+03 !particle radius in m +-5.47268707e+06 7.90131264e+06 3.38529547e+04 ! x y z +-1.73122732e+03 -1.20437649e+03 1.62011748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill +1.16499575e+04 !particle radius in m +1.10121047e+07 -6.14561995e+06 5.51425169e+04 ! x y z +8.91208138e+02 1.62668641e+03 -4.00812310e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill +5.79050854e+03 !particle radius in m +-3.82515764e+06 1.42902315e+07 -2.47878060e+04 ! x y z +-1.63598310e+03 -4.85341065e+02 -2.82331478e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill +1.20288397e+04 !particle radius in m +-1.84053839e+06 9.22666914e+06 -1.87382012e+04 ! x y z +-2.10070573e+03 -4.25824187e+02 -2.45200413e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill +6.14242713e+03 !particle radius in m +-7.35737221e+06 -9.68920345e+06 5.93390680e+04 ! x y z +1.50053722e+03 -1.12338599e+03 -1.30933156e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill +9.83970306e+03 !particle radius in m +-8.70682368e+06 5.56356570e+06 -6.56478138e+04 ! x y z +-1.11346390e+03 -1.70326053e+03 1.28466204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill +5.96724810e+03 !particle radius in m +7.02500514e+06 -1.38238984e+07 6.74566304e+04 ! x y z +1.48675948e+03 7.65020748e+02 8.19788003e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill +1.17076027e+04 !particle radius in m +-9.79856030e+06 2.12372760e+06 1.89480336e+04 ! x y z +-4.48830087e+02 -2.02736841e+03 -1.23694959e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill +8.52806763e+03 !particle radius in m +-1.01558817e+07 -2.10873547e+07 -2.03636345e+05 ! x y z +1.20616652e+03 -5.87121724e+02 -4.30533916e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill +8.67447176e+03 !particle radius in m +1.10980559e+07 1.19228306e+07 -2.89204661e+04 ! x y z +-1.18553044e+03 1.09632262e+03 8.12769922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill +6.48784045e+03 !particle radius in m +1.00683282e+07 -1.06678967e+05 -7.08192900e+04 ! x y z +7.59653606e-01 2.03836538e+03 -2.00978691e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill +9.86938263e+03 !particle radius in m +8.35393830e+06 3.60269502e+06 -6.29338444e+04 ! x y z +-8.43508227e+02 1.99248181e+03 2.35695291e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill +9.08852133e+03 !particle radius in m +7.15716844e+06 2.23969109e+07 -2.43128655e+05 ! x y z +-1.28744111e+03 4.04784490e+02 -9.98522887e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill +7.97538482e+03 !particle radius in m +9.79101038e+06 -7.57582171e+06 -6.16544234e+03 ! x y z +1.14324704e+03 1.46779509e+03 -4.09524183e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill +1.21026921e+04 !particle radius in m +1.92900217e+07 -9.92716086e+06 -8.71066703e+04 ! x y z +6.46615886e+02 1.23877023e+03 -8.06944804e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill +1.12884701e+04 !particle radius in m +7.63578761e+05 -1.05163176e+07 -1.40125740e+03 ! x y z +1.99506811e+03 1.28492643e+02 -1.21964426e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill +1.09158716e+04 !particle radius in m +6.16240208e+05 1.16898273e+07 -2.31871163e+03 ! x y z +-1.92072024e+03 1.14544858e+02 -1.24842975e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill +4.93459624e+03 !particle radius in m +1.03595473e+07 -4.35809471e+06 -5.55598025e+04 ! x y z +7.59957188e+02 1.81039627e+03 -9.27171494e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill +9.30593115e+03 !particle radius in m +-8.58951099e+05 1.20741593e+07 8.58096722e+03 ! x y z +-1.85656009e+03 -1.31659982e+02 -7.07088670e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill +7.71593034e+03 !particle radius in m +1.34936412e+07 9.22411406e+05 -1.28097766e+05 ! x y z +-1.21347788e+02 1.77352752e+03 6.09816980e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill +4.06146670e+03 !particle radius in m +8.93667242e+06 -4.37387871e+06 4.75249766e+04 ! x y z +9.07116732e+02 1.86034352e+03 -2.16160032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill +5.10279049e+03 !particle radius in m +2.97443729e+06 1.12987732e+07 -7.15478904e+04 ! x y z +-1.84937662e+03 4.88975049e+02 -1.62129744e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill +9.84038492e+03 !particle radius in m +-1.20782110e+07 5.42799080e+06 -2.14298463e+04 ! x y z +-7.60124760e+02 -1.64210069e+03 1.17910321e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill +8.19645631e+03 !particle radius in m +-1.66687778e+07 3.40131310e+06 -8.13780785e+04 ! x y z +-3.27574668e+02 -1.54958699e+03 7.60005752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill +1.10674500e+04 !particle radius in m +8.04465463e+06 7.94262975e+06 3.50880055e+04 ! x y z +-1.38047284e+03 1.36038061e+03 9.60840796e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill +9.32873342e+03 !particle radius in m +8.72948534e+06 2.25552201e+06 -6.67651980e+03 ! x y z +-5.17110071e+02 2.09745799e+03 -1.26305103e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill +3.97264243e+03 !particle radius in m +1.59911238e+07 -5.78123234e+06 -4.96452199e+04 ! x y z +5.52053054e+02 1.48435519e+03 -7.76218367e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill +9.94269530e+03 !particle radius in m +-7.16058601e+06 5.68697632e+06 2.50735615e+04 ! x y z +-1.32041167e+03 -1.70209713e+03 -5.51776816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill +1.05009525e+04 !particle radius in m +-1.96591682e+06 -9.56765462e+06 -5.49582524e+04 ! x y z +2.05754068e+03 -4.30221705e+02 -6.52205972e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill +8.22033835e+03 !particle radius in m +-1.32036875e+07 -6.42805082e+06 -2.13137156e+04 ! x y z +7.40576713e+02 -1.53667373e+03 -1.66122663e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill +1.28408960e+04 !particle radius in m +7.26511252e+06 1.02544271e+07 -1.28126970e+04 ! x y z +-1.50567288e+03 1.06151555e+03 -1.91621752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill +5.50382909e+03 !particle radius in m +-9.70398421e+06 5.43301598e+06 -7.10765156e+04 ! x y z +-9.66770489e+02 -1.69237365e+03 -3.28188506e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill +1.28572603e+04 !particle radius in m +2.96216400e+05 -9.44659905e+06 6.39430618e+04 ! x y z +2.13334160e+03 5.10827881e+01 -3.06567932e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill +3.72381283e+03 !particle radius in m +-7.59639515e+06 5.48032752e+06 -2.40679326e+03 ! x y z +-1.21575451e+03 -1.75481888e+03 -1.69366205e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill +6.21604216e+03 !particle radius in m +4.26014597e+06 8.47244148e+06 -4.52841666e+04 ! x y z +-1.89773381e+03 9.86947142e+02 2.27005651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill +7.04464148e+03 !particle radius in m +5.86869928e+06 6.95435059e+06 -3.04780435e+04 ! x y z +-1.65434811e+03 1.39969038e+03 3.34387968e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill +1.15473588e+04 !particle radius in m +-8.24315322e+06 -5.69586696e+06 2.20302861e+04 ! x y z +1.15852208e+03 -1.69773981e+03 2.26551767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill +4.57262149e+03 !particle radius in m +-2.90925512e+06 8.79933915e+06 6.42165783e+04 ! x y z +-2.03971713e+03 -6.70860975e+02 7.91657343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill +1.29780877e+04 !particle radius in m +9.24506088e+06 5.42020869e+06 3.55011834e+04 ! x y z +-9.90032731e+02 1.74244918e+03 -6.84359361e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill +3.72768740e+03 !particle radius in m +1.49390033e+07 5.03002569e+06 -6.08660675e+04 ! x y z +-5.02338251e+02 1.56332178e+03 -1.67781569e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill +1.05170553e+04 !particle radius in m +1.23161243e+07 1.68843020e+06 2.12877558e+04 ! x y z +-2.39425053e+02 1.84057327e+03 1.32413609e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill +1.27277329e+04 !particle radius in m +8.91889708e+06 -5.54747107e+05 4.66922419e+04 ! x y z +1.62589921e+02 2.18077019e+03 -1.86548050e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill +8.96414991e+03 !particle radius in m +-5.82188250e+06 -6.93015474e+06 8.83731418e+03 ! x y z +1.65500621e+03 -1.40856285e+03 -4.08918572e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill +1.03907754e+04 !particle radius in m +-7.35080590e+06 -7.29055125e+06 -1.20861111e+03 ! x y z +1.39392385e+03 -1.47392682e+03 -1.29937331e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill +4.93452768e+03 !particle radius in m +-1.22300071e+07 4.00505750e+06 -4.82429747e+04 ! x y z +-5.99234873e+02 -1.71878148e+03 -9.59996458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill +5.23080275e+03 !particle radius in m +1.90445756e+06 1.53190995e+07 1.28393938e+05 ! x y z +-1.65070889e+03 1.86078304e+02 1.21713635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill +3.95409460e+03 !particle radius in m +1.16512710e+06 9.58806430e+06 6.00184281e+03 ! x y z +-2.08431325e+03 2.50023373e+02 -4.86726355e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill +5.07066194e+03 !particle radius in m +2.90940058e+06 8.85967621e+06 -3.67911262e+04 ! x y z +-2.05184488e+03 6.57972025e+02 3.77722174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill +1.02592460e+04 !particle radius in m +1.02030674e+07 -2.25656251e+06 -2.42931768e+04 ! x y z +4.02033391e+02 1.97779610e+03 -4.56432654e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill +4.30171134e+03 !particle radius in m +-2.21966207e+06 -8.53462824e+06 5.98951302e+03 ! x y z +2.13957370e+03 -5.72879766e+02 -9.73511724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill +9.83577325e+03 !particle radius in m +-5.82677409e+06 -8.25640044e+06 -1.85310721e+04 ! x y z +1.68912824e+03 -1.20023426e+03 -1.46688747e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill +9.39909127e+03 !particle radius in m +-4.15446158e+05 -1.04064911e+07 -6.01445752e+04 ! x y z +2.04307655e+03 -9.44888304e+01 -1.29270899e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill +5.23703394e+03 !particle radius in m +1.44949245e+06 -1.38726585e+07 1.28983420e+04 ! x y z +1.74524417e+03 1.89418829e+02 -1.27510818e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill +6.74226629e+03 !particle radius in m +-1.02673257e+07 5.51832525e+06 7.68510549e+04 ! x y z +-9.09826047e+02 -1.68325012e+03 -9.74521738e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill +1.14295731e+04 !particle radius in m +9.99103043e+06 1.06885708e+07 7.94231343e+04 ! x y z +-1.28100100e+03 1.14298665e+03 7.74179187e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill +1.13206181e+04 !particle radius in m +4.41133703e+06 8.86113052e+06 -4.90493478e+04 ! x y z +-1.86573176e+03 9.32322270e+02 -1.20417460e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill +7.33201534e+03 !particle radius in m +-1.05312274e+07 1.06309083e+06 -3.40508748e+04 ! x y z +-2.12025256e+02 -1.99070933e+03 2.76988985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill +6.76474935e+03 !particle radius in m +-9.13190511e+06 -9.87045448e+05 4.65363249e+04 ! x y z +2.72813658e+02 -2.14939314e+03 -6.89232508e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill +8.56661866e+03 !particle radius in m +-9.55165901e+06 3.32037562e+06 -5.74639097e+04 ! x y z +-7.05014643e+02 -1.94468153e+03 -9.68692941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill +8.48722461e+03 !particle radius in m +-2.79080237e+06 -1.49534280e+07 6.61250908e+04 ! x y z +1.66874204e+03 -2.93565278e+02 -6.04868304e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill +6.82030227e+03 !particle radius in m +1.76076614e+06 -8.89107995e+06 4.77043786e+04 ! x y z +2.14748256e+03 4.04932388e+02 -1.26152318e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill +1.02690639e+04 !particle radius in m +8.52637393e+06 2.63618253e+06 -5.22911736e+04 ! x y z +-6.60976767e+02 2.09577153e+03 3.42675226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill +5.35754408e+03 !particle radius in m +1.08528417e+07 5.02794391e+05 -2.76918530e+04 ! x y z +-1.27726381e+02 1.98516729e+03 -1.12360782e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill +1.18534842e+04 !particle radius in m +-7.11955030e+06 6.48411163e+06 -1.64876744e+04 ! x y z +-1.43123341e+03 -1.55444238e+03 -1.21086898e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill +9.10252919e+03 !particle radius in m +7.73539416e+06 4.91837100e+06 3.79759434e+04 ! x y z +-1.16029500e+03 1.85248711e+03 2.31086993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill +1.02339004e+04 !particle radius in m +8.76407090e+06 -2.02266717e+06 -1.17355053e+04 ! x y z +4.87045225e+02 2.14976445e+03 -1.12592644e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill +1.16832115e+04 !particle radius in m +-5.85624077e+06 -7.65100688e+06 -6.81073848e+04 ! x y z +1.69101430e+03 -1.25110313e+03 -1.69620610e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill +4.63065609e+03 !particle radius in m +-4.73064294e+06 1.23174391e+07 -1.15616945e+05 ! x y z +-1.67622870e+03 -6.40214154e+02 -2.40259531e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill +6.75204041e+03 !particle radius in m +1.21865621e+07 4.96824670e+06 1.38201935e+04 ! x y z +-6.90512507e+02 1.66991832e+03 1.81886433e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill +9.95606737e+03 !particle radius in m +1.16681691e+07 6.27755146e+06 -9.89757611e+04 ! x y z +-8.82483897e+02 1.58231102e+03 -7.45315405e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill +5.99441701e+03 !particle radius in m +-9.82574233e+06 -6.12952303e+06 1.96949177e+04 ! x y z +1.01952580e+03 -1.64506613e+03 1.17311172e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill +1.16562377e+04 !particle radius in m +-7.66867450e+06 -6.71467472e+06 1.82936899e+04 ! x y z +1.37697709e+03 -1.54141508e+03 -1.04916179e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill +7.22008053e+03 !particle radius in m +6.68731996e+06 1.21566043e+07 -5.02348380e+04 ! x y z +-1.55626881e+03 8.62955881e+02 7.13319505e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill +4.52448294e+03 !particle radius in m +5.58226973e+05 -1.33893338e+07 3.23944444e+04 ! x y z +1.78341617e+03 5.70175526e+01 2.01164673e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill +8.03922694e+03 !particle radius in m +2.69184570e+06 8.96128856e+06 -1.43912663e+04 ! x y z +-2.03943626e+03 6.16982327e+02 1.53458951e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill +1.09006261e+04 !particle radius in m +-1.76847286e+07 -6.05601018e+05 1.06870104e+04 ! x y z +8.13556990e+01 -1.55405464e+03 1.07736989e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill +5.96239346e+03 !particle radius in m +-4.46692197e+06 -8.22773588e+06 -3.36712950e+04 ! x y z +1.90929541e+03 -1.00567083e+03 1.30091738e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill +3.86203494e+03 !particle radius in m +1.09873618e+07 1.89353789e+07 1.37058307e+05 ! x y z +-1.20089709e+03 6.97166990e+02 -1.15971142e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill +1.20678989e+04 !particle radius in m +8.92466133e+06 -1.21792450e+06 3.61100410e+04 ! x y z +3.10051974e+02 2.14937296e+03 -1.41043166e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill +8.91193791e+03 !particle radius in m +-5.85289838e+05 1.08674619e+07 3.13865857e+04 ! x y z +-1.97212405e+03 -1.17677554e+02 -3.37938196e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill +6.40717392e+03 !particle radius in m +2.71862051e+06 -9.05514497e+06 -5.54339403e+02 ! x y z +2.04451063e+03 5.93924832e+02 -2.26401878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill +1.01917795e+04 !particle radius in m +-4.06364003e+06 8.41274452e+06 3.61206264e+04 ! x y z +-1.92276154e+03 -9.27433732e+02 1.11784546e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill +7.03132016e+03 !particle radius in m +-1.19933178e+07 -3.73131347e+06 1.49826992e+03 ! x y z +5.46200488e+02 -1.75445228e+03 -4.43292318e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill +4.01835133e+03 !particle radius in m +-2.24454214e+07 -7.37433557e+06 5.58803594e+04 ! x y z +4.48331646e+02 -1.26886747e+03 -5.97172099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill +4.48393645e+03 !particle radius in m +-1.00569236e+07 1.52027585e+06 5.50467478e+04 ! x y z +-2.73653938e+02 -2.04195337e+03 2.77105641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill +4.73706563e+03 !particle radius in m +1.42492815e+06 -9.15917062e+06 -2.25858696e+04 ! x y z +2.12298306e+03 3.34049377e+02 1.00298878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill +5.32956636e+03 !particle radius in m +-7.74886856e+06 6.98419572e+06 4.81094824e+02 ! x y z +-1.36287826e+03 -1.51437942e+03 -1.68752883e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill +8.98855782e+03 !particle radius in m +-9.13222067e+06 7.31343022e+06 -3.08093425e+04 ! x y z +-1.21046156e+03 -1.49256909e+03 -3.15355485e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill +6.01378842e+03 !particle radius in m +6.06087158e+06 -9.69417839e+06 6.23119551e+04 ! x y z +1.63826093e+03 1.03252872e+03 -8.91138112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill +4.62821986e+03 !particle radius in m +1.42036863e+07 3.21005959e+05 -1.52147935e+05 ! x y z +-2.29346938e+01 1.73911536e+03 2.41934076e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill +1.02114099e+04 !particle radius in m +2.47060933e+06 -8.49038937e+06 -1.64092125e+04 ! x y z +2.11333925e+03 6.27764025e+02 3.26978709e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill +1.22853727e+04 !particle radius in m +-1.70653039e+07 2.72173559e+06 1.07972032e+05 ! x y z +-2.36876536e+02 -1.54619144e+03 -7.91920171e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill +7.87339511e+03 !particle radius in m +9.29964742e+06 2.61866241e+06 1.18151327e+04 ! x y z +-6.01432781e+02 2.01893065e+03 -9.18340859e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill +1.05061229e+04 !particle radius in m +5.46329309e+06 -8.17615351e+06 3.23278517e+03 ! x y z +1.73194521e+03 1.16682128e+03 -2.32849453e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill +4.20213010e+03 !particle radius in m +-9.38612532e+06 8.96174000e+06 1.24251608e+04 ! x y z +-1.26134064e+03 -1.32562137e+03 -9.16926524e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill +5.49869230e+03 !particle radius in m +1.34404207e+06 -1.34982267e+07 -9.98145158e+04 ! x y z +1.77251874e+03 1.58186229e+02 -1.18233653e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill +5.34935064e+03 !particle radius in m +1.59657590e+07 -1.84107184e+06 7.91634963e+04 ! x y z +1.77740752e+02 1.61004155e+03 -8.76452331e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill +3.81807480e+03 !particle radius in m +-1.95422324e+07 4.27225532e+06 -1.15437134e+04 ! x y z +-3.47390066e+02 -1.42742043e+03 -9.37392480e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill +7.27427657e+03 !particle radius in m +-8.32827018e+06 6.50246828e+06 1.07863935e+04 ! x y z +-1.19572995e+03 -1.60254308e+03 1.23423582e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill +8.73601721e+03 !particle radius in m +-1.07074688e+07 2.34621575e+06 5.93641138e+04 ! x y z +-4.22982902e+02 -1.94965020e+03 -1.96471998e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill +1.15512484e+04 !particle radius in m +4.51979494e+06 1.22520862e+07 -1.38847489e+04 ! x y z +-1.72593078e+03 6.48260700e+02 -7.40684356e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill +6.64309194e+03 !particle radius in m +2.92552013e+06 -1.35219163e+07 -7.24169872e+04 ! x y z +1.71212479e+03 3.82693746e+02 1.13508153e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill +1.01949726e+04 !particle radius in m +8.44057923e+05 -1.07213279e+07 5.42825433e+04 ! x y z +1.98524585e+03 1.59641509e+02 -2.17308444e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill +1.24273391e+04 !particle radius in m +-5.70564751e+06 -1.28061077e+07 7.89815585e+04 ! x y z +1.59615438e+03 -7.17950030e+02 -1.60355758e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill +9.91174230e+03 !particle radius in m +6.42542385e+06 -6.26831304e+06 -8.52096344e+03 ! x y z +1.51047048e+03 1.57585291e+03 1.26849618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill +7.61642321e+03 !particle radius in m +-1.26986567e+07 2.05439645e+06 4.23816010e+04 ! x y z +-3.17593598e+02 -1.80836332e+03 1.37317505e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill +5.85403069e+03 !particle radius in m +3.89723404e+06 -8.71939773e+06 -1.59555101e+04 ! x y z +1.92484978e+03 8.78585634e+02 3.76576757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill +9.68335876e+03 !particle radius in m +9.58403819e+06 -1.00242938e+06 4.12991678e+04 ! x y z +2.21630062e+02 2.09275016e+03 1.75085392e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill +1.02097944e+04 !particle radius in m +-2.44297176e+05 1.26729604e+07 2.03607439e+04 ! x y z +-1.84680295e+03 -1.82730822e+01 -2.91252739e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill +5.49842989e+03 !particle radius in m +-8.96004039e+06 4.09560494e+05 -3.60456167e+04 ! x y z +-1.02191608e+02 -2.20756190e+03 -2.24493109e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill +1.27138008e+04 !particle radius in m +-6.81541514e+06 -7.94063477e+06 -7.18748605e+04 ! x y z +1.54316120e+03 -1.31237150e+03 -1.15079245e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill +8.78402686e+03 !particle radius in m +-9.08822325e+06 1.13954530e+07 -2.08875223e+04 ! x y z +-1.34302030e+03 -1.07504367e+03 -1.24686872e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill +1.15175985e+04 !particle radius in m +-1.06157252e+07 1.57779393e+06 -6.65867787e+03 ! x y z +-2.87369206e+02 -1.99101003e+03 7.20690801e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill +9.04716508e+03 !particle radius in m +7.17906044e+06 8.87425909e+06 -3.25181785e+04 ! x y z +-1.49406264e+03 1.20724214e+03 6.21002078e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill +5.48112664e+03 !particle radius in m +-1.21003843e+06 -1.29422942e+07 -7.40239219e+04 ! x y z +1.81002624e+03 -1.79331834e+02 1.25932266e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill +8.48753771e+03 !particle radius in m +-6.99463389e+06 -6.47905900e+06 9.60433255e+04 ! x y z +1.43760545e+03 -1.52260892e+03 -8.56316812e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill +1.26571613e+04 !particle radius in m +6.31211278e+06 1.15740500e+07 2.93359231e+04 ! x y z +-1.56035950e+03 8.72608400e+02 2.02164700e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill +4.22293872e+03 !particle radius in m +-1.14209193e+07 -1.19005899e+07 4.72825184e+04 ! x y z +1.16096797e+03 -1.10215252e+03 -1.73463799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill +9.19239764e+03 !particle radius in m +-1.91436849e+06 -8.75500915e+06 -5.63789360e+04 ! x y z +2.13513923e+03 -5.15505302e+02 8.14672797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill +6.39431287e+03 !particle radius in m +-7.76033426e+06 5.83903373e+06 1.45914082e+04 ! x y z +-1.24659220e+03 -1.65602207e+03 2.58792993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill +7.06047440e+03 !particle radius in m +6.04175168e+06 -1.13300829e+07 -2.21833258e+04 ! x y z +1.60126812e+03 8.64183750e+02 2.07897641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill +5.98026121e+03 !particle radius in m +7.56777600e+06 -5.38164192e+06 4.82260182e+04 ! x y z +1.23384783e+03 1.75131178e+03 1.39050720e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill +5.89215810e+03 !particle radius in m +2.24109885e+06 -1.09795024e+07 -3.90720695e+03 ! x y z +1.91472479e+03 3.97948512e+02 1.96668988e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill +1.18470246e+04 !particle radius in m +-1.60346956e+06 8.94982575e+06 -4.55491048e+04 ! x y z +-2.13610180e+03 -3.93853083e+02 6.45999458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill +1.07963370e+04 !particle radius in m +1.33407792e+07 -9.60353157e+06 -4.36975900e+04 ! x y z +9.42437149e+02 1.32281900e+03 -2.80741977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill +9.49477387e+03 !particle radius in m +5.43228414e+06 -7.41736135e+06 -2.66812088e+04 ! x y z +1.72722717e+03 1.31007512e+03 -7.34912008e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill +3.79681841e+03 !particle radius in m +1.54005009e+06 1.28774959e+07 5.16246471e+04 ! x y z +-1.81371335e+03 2.12824688e+02 -9.20646953e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill +1.11863238e+04 !particle radius in m +1.67931493e+06 1.31306619e+07 -2.70431013e+03 ! x y z +-1.76941688e+03 1.91845464e+02 5.05532665e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill +1.05995433e+04 !particle radius in m +-1.32214307e+07 4.59727104e+06 -3.96485583e+04 ! x y z +-5.86090985e+02 -1.64093893e+03 -8.60481037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill +7.92726804e+03 !particle radius in m +-1.18927692e+07 -9.15865717e+05 -4.39369369e+04 ! x y z +1.82263225e+02 -1.88987287e+03 9.03561914e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill +1.02364827e+04 !particle radius in m +-9.62033211e+06 8.56620033e+06 -2.00428889e+04 ! x y z +-1.21101074e+03 -1.36584173e+03 3.97879960e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill +4.20273952e+03 !particle radius in m +9.89301751e+06 1.68175777e+07 -1.13308431e+05 ! x y z +-1.27501202e+03 7.61202373e+02 3.42051019e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill +5.97559270e+03 !particle radius in m +5.37606728e+06 1.01483084e+07 -2.42832542e+04 ! x y z +-1.69155568e+03 9.33567602e+02 8.03539638e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill +8.92979367e+03 !particle radius in m +1.14205826e+06 -8.87516936e+06 2.93174632e+04 ! x y z +2.16370189e+03 2.71790476e+02 -6.44072560e-04 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill +1.28055687e+04 !particle radius in m +1.43504952e+07 -1.05282252e+07 1.08842756e+04 ! x y z +8.96217918e+02 1.25350160e+03 -1.10361539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill +4.45062026e+03 !particle radius in m +-1.23862731e+07 -4.56645846e+06 6.19786286e+04 ! x y z +6.35830463e+02 -1.69613094e+03 6.10556298e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill +1.10810345e+04 !particle radius in m +-9.06340320e+06 2.47989940e+06 5.29566882e+03 ! x y z +-6.09939224e+02 -2.04449772e+03 -8.32106226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill +1.24194426e+04 !particle radius in m +4.49134220e+06 -8.88004412e+06 6.17280318e+04 ! x y z +1.84761935e+03 9.49659970e+02 -1.91054187e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill +7.49678363e+03 !particle radius in m +-8.88023220e+06 1.94417194e+06 -7.43854396e+03 ! x y z +-4.59587086e+02 -2.12797895e+03 1.62261707e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill +1.18105148e+04 !particle radius in m +-6.23830061e+06 1.01163011e+07 8.19444776e+04 ! x y z +-1.60793851e+03 -1.00726817e+03 7.79908055e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill +8.96106511e+03 !particle radius in m +1.33415164e+07 1.42367071e+07 9.29022826e+04 ! x y z +-1.09778034e+03 9.88101471e+02 9.22779390e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill +6.30269894e+03 !particle radius in m +6.77890172e+06 -6.80689243e+06 -5.36873514e+04 ! x y z +1.47893463e+03 1.49784044e+03 1.58118524e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill +1.02501735e+04 !particle radius in m +8.06725141e+06 -3.62262126e+06 -3.66507377e+04 ! x y z +8.67780530e+02 2.02709545e+03 1.28504792e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill +1.06080961e+04 !particle radius in m +-1.02130792e+07 -1.98178118e+06 -1.09127341e+03 ! x y z +3.87020460e+02 -1.99318523e+03 -1.70944891e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill +8.45856229e+03 !particle radius in m +-2.71890650e+06 -1.56230331e+07 9.11371828e+04 ! x y z +1.62029295e+03 -2.93846410e+02 -2.71565573e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill +7.70013366e+03 !particle radius in m +4.47583128e+06 -1.06559052e+07 4.54196507e+04 ! x y z +1.76732893e+03 7.56289214e+02 -9.51753793e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill +5.32063382e+03 !particle radius in m +-2.17375021e+06 -1.18877181e+07 -8.95951928e+04 ! x y z +1.85620755e+03 -3.25350325e+02 -7.40810642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill +7.86933046e+03 !particle radius in m +-1.01016093e+07 1.38884267e+06 9.80998719e+04 ! x y z +-2.82476358e+02 -2.04196683e+03 -1.00530560e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill +1.24937177e+04 !particle radius in m +1.39598489e+07 -8.85744354e+06 2.03839682e+05 ! x y z +8.43657382e+02 1.36375070e+03 -3.55497456e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill +5.56213757e+03 !particle radius in m +-1.43847009e+07 -4.33966476e+06 1.92096630e+04 ! x y z +4.81764822e+02 -1.62800637e+03 4.41101277e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill +6.85570252e+03 !particle radius in m +1.40885725e+06 -1.39890777e+07 -6.21160422e+04 ! x y z +1.73532137e+03 1.58882387e+02 -4.19228752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill +6.45517829e+03 !particle radius in m +-6.30237830e+06 -7.45548810e+06 1.19792411e+04 ! x y z +1.58465709e+03 -1.33550387e+03 2.64893502e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill +6.79823242e+03 !particle radius in m +1.78118521e+07 -1.09119093e+07 2.70244768e+04 ! x y z +7.41554271e+02 1.21779793e+03 9.15237602e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill +9.50257381e+03 !particle radius in m +-2.89743663e+06 8.86128251e+06 -6.58120111e+04 ! x y z +-2.02979747e+03 -6.82073189e+02 -2.28176534e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill +8.69947568e+03 !particle radius in m +8.83702217e+06 -2.90376077e+06 7.27788768e+04 ! x y z +6.85075467e+02 2.02703778e+03 7.97245500e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill +7.86151243e+03 !particle radius in m +-1.21931564e+07 4.86524046e+06 -2.08324531e+04 ! x y z +-6.82318390e+02 -1.65856508e+03 -6.74090912e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill +5.46688367e+03 !particle radius in m +-1.05680658e+07 -7.72400524e+05 -4.19566380e+03 ! x y z +1.61680595e+02 -2.00721546e+03 9.15915016e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill +8.97559000e+03 !particle radius in m +4.91698619e+06 9.43759555e+06 8.61311530e+04 ! x y z +-1.79363820e+03 8.94192612e+02 3.28487627e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill +9.89587154e+03 !particle radius in m +5.50899609e+06 1.48985993e+07 2.75915152e+04 ! x y z +-1.53604421e+03 5.70661142e+02 -8.63285634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill +1.29624899e+04 !particle radius in m +3.19801044e+06 -1.13772802e+07 7.80535196e+04 ! x y z +1.85228574e+03 4.55890151e+02 8.36932683e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill +1.07068623e+04 !particle radius in m +-2.15573271e+06 -1.00993578e+07 2.69595119e+04 ! x y z +1.97403251e+03 -4.33189618e+02 1.83241184e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill +6.01449701e+03 !particle radius in m +-9.90249159e+06 1.50849384e+06 7.56908853e+04 ! x y z +-3.34511747e+02 -2.03461346e+03 1.09006280e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill +8.41928754e+03 !particle radius in m +-8.12226421e+06 -4.86915559e+06 1.48785398e+04 ! x y z +1.08601808e+03 -1.81594814e+03 -1.05069846e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill +4.93662404e+03 !particle radius in m +1.04182881e+07 7.90957341e+06 -2.69933355e+04 ! x y z +-1.12996754e+03 1.41480511e+03 -6.50919824e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill +8.64688797e+03 !particle radius in m +-8.48425655e+06 7.30611767e+06 -2.97358583e+04 ! x y z +-1.27983291e+03 -1.45019242e+03 -1.41707765e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill +1.16198415e+04 !particle radius in m +-8.65184164e+06 6.24864145e+06 -3.92875079e+04 ! x y z +-1.16032314e+03 -1.63406999e+03 1.01313500e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill +9.93353704e+03 !particle radius in m +8.34883939e+06 5.63589901e+06 -3.07212153e+04 ! x y z +-1.13165810e+03 1.72056724e+03 2.87270046e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill +7.43690165e+03 !particle radius in m +9.21633433e+06 -1.93093666e+07 -2.54318164e+04 ! x y z +1.26419057e+03 6.27050448e+02 3.30035390e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill +7.68112210e+03 !particle radius in m +3.80685718e+06 -7.94695887e+06 -6.90041243e+04 ! x y z +2.01235665e+03 9.27723235e+02 1.23111874e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill +1.18083853e+04 !particle radius in m +-1.32805505e+07 -9.89987589e+06 1.89561964e+05 ! x y z +9.51950860e+02 -1.30762258e+03 -3.09155476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill +5.94515785e+03 !particle radius in m +7.49508147e+05 9.39060182e+06 -2.98793685e+03 ! x y z +-2.12842500e+03 1.60409656e+02 -2.35936034e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill +9.18211562e+03 !particle radius in m +1.66945874e+06 -9.11271704e+06 -1.05228493e+04 ! x y z +2.11017159e+03 4.07672310e+02 4.86502364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill +5.50583603e+03 !particle radius in m +-4.36738498e+06 -8.73103534e+06 3.44651531e+03 ! x y z +1.86828307e+03 -9.77585967e+02 3.81224965e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill +4.08758743e+03 !particle radius in m +-1.94040314e+07 1.29480928e+07 -6.30516410e+04 ! x y z +-7.60734575e+02 -1.12192654e+03 2.15504297e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill +1.25006754e+04 !particle radius in m +-2.30041587e+06 -9.09389672e+06 2.95714152e+04 ! x y z +2.09036388e+03 -5.21147635e+02 -8.12618749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill +6.56718935e+03 !particle radius in m +-8.45167174e+06 3.53866282e+06 8.15293748e+03 ! x y z +-8.17977533e+02 -1.97338441e+03 3.10707851e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill +1.08461254e+04 !particle radius in m +-1.10837839e+05 -1.22760495e+07 9.98243029e+04 ! x y z +1.86849744e+03 1.94461008e+01 1.19094336e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill +1.24276204e+04 !particle radius in m +-2.16572849e+06 -1.29271292e+07 8.07671116e+04 ! x y z +1.79349978e+03 -2.38674951e+02 -1.98965270e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill +1.29170951e+04 !particle radius in m +-2.12394299e+06 8.55999084e+06 1.53741130e+04 ! x y z +-2.16066071e+03 -5.04790442e+02 1.96131475e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill +8.85954838e+03 !particle radius in m +1.01810115e+07 -3.37487969e+05 -2.68884911e+04 ! x y z +8.19073631e+01 2.05446062e+03 -7.35333556e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill +9.25127176e+03 !particle radius in m +-4.23808016e+06 1.06041798e+07 1.34318994e+05 ! x y z +-1.79220969e+03 -7.00369186e+02 1.28815476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill +5.87236346e+03 !particle radius in m +-7.46862356e+06 5.99931350e+06 -2.30141523e+03 ! x y z +-1.36280521e+03 -1.60905358e+03 6.63931385e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill +5.05714772e+03 !particle radius in m +-1.11448733e+07 5.00947275e+06 -4.68801561e+04 ! x y z +-7.74415285e+02 -1.70766691e+03 -3.61919201e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill +6.10352459e+03 !particle radius in m +-3.19024158e+06 9.81483389e+06 5.84486975e+04 ! x y z +-1.93912156e+03 -6.23690422e+02 1.23117054e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill +1.16189063e+04 !particle radius in m +-2.24603747e+07 6.26030145e+06 -3.01506892e+04 ! x y z +-3.65393394e+02 -1.30811994e+03 1.11405519e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill +1.05019921e+04 !particle radius in m +-1.12701774e+07 -7.80948644e+06 -6.84666678e+04 ! x y z +9.99713905e+02 -1.47048211e+03 2.44750306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill +6.56830775e+03 !particle radius in m +-1.36712830e+06 9.67813820e+06 -6.74480903e+04 ! x y z +-2.06604712e+03 -2.98384524e+02 -5.50167062e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill +1.19207925e+04 !particle radius in m +7.73867408e+06 1.33759604e+07 3.56063208e+04 ! x y z +-1.44506269e+03 8.28074701e+02 1.84054191e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill +8.49992876e+03 !particle radius in m +-7.77453358e+06 -5.02677399e+06 3.78389790e+04 ! x y z +1.16536090e+03 -1.82463232e+03 -7.04505898e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill +7.38049260e+03 !particle radius in m +7.38262528e+06 7.34984552e+06 -2.24885801e+04 ! x y z +-1.42099662e+03 1.43499436e+03 1.07378124e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill +1.08707623e+04 !particle radius in m +-1.19920742e+07 -2.80217215e+06 -5.59313271e+04 ! x y z +4.17941960e+02 -1.81181182e+03 1.45497492e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill +6.01682391e+03 !particle radius in m +-9.55988426e+06 -7.31862699e+06 -2.64957060e+04 ! x y z +1.16610080e+03 -1.48362062e+03 -6.94255903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill +5.36421948e+03 !particle radius in m +1.02276231e+07 -1.62862349e+07 -9.70147988e+04 ! x y z +1.26937242e+03 7.76347306e+02 4.03225256e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill +5.71926483e+03 !particle radius in m +-5.16420660e+06 -7.78596130e+06 4.36962776e+04 ! x y z +1.78489031e+03 -1.16625555e+03 -2.90708635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill +8.90706847e+03 !particle radius in m +-7.45989489e+06 7.86823113e+06 2.30718801e+04 ! x y z +-1.45305114e+03 -1.35662728e+03 1.14450554e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill +1.14097740e+04 !particle radius in m +-7.21533013e+06 1.04550999e+07 5.75058243e+04 ! x y z +-1.49719620e+03 -1.06522065e+03 9.45819576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill +6.87676601e+03 !particle radius in m +6.25358173e+06 -8.48267668e+06 1.86642486e+04 ! x y z +1.59879201e+03 1.18862345e+03 -8.19507037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill +5.09063352e+03 !particle radius in m +-7.19321718e+06 -9.25718484e+06 1.26289010e+05 ! x y z +1.51012765e+03 -1.19137905e+03 -2.08075301e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill +1.15343262e+04 !particle radius in m +9.77355514e+06 -3.06014377e+06 -1.91679922e+04 ! x y z +6.16624498e+02 1.95214553e+03 8.76866120e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill +1.23165581e+04 !particle radius in m +9.85520768e+06 5.11039151e+06 2.67592384e+04 ! x y z +-9.36821649e+02 1.72971850e+03 9.58489099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill +1.01978639e+04 !particle radius in m +2.25000304e+07 2.97587658e+06 1.11207983e+05 ! x y z +-2.07470373e+02 1.34869606e+03 9.35124053e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill +3.82259987e+03 !particle radius in m +9.72912370e+06 4.89272799e+06 4.72049901e+04 ! x y z +-8.59138858e+02 1.80693327e+03 1.59854908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill +1.29945434e+04 !particle radius in m +8.58212362e+06 2.09155798e+07 -8.24274997e+04 ! x y z +-1.27328941e+03 5.22122914e+02 2.97251817e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill +5.07359536e+03 !particle radius in m +1.25914809e+07 -1.54064226e+06 -2.42309046e+04 ! x y z +2.41941616e+02 1.80407714e+03 -4.95095821e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill +9.63008210e+03 !particle radius in m +-9.08598960e+06 5.01876430e+05 -5.56896042e+04 ! x y z +-1.04300102e+02 -2.16453693e+03 -3.87670808e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill +4.74458362e+03 !particle radius in m +8.60778725e+06 4.52935761e+06 2.36936302e+04 ! x y z +-9.88264993e+02 1.85248346e+03 -3.75174148e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill +4.82484424e+03 !particle radius in m +-8.51705861e+06 -3.00987013e+06 -6.10335808e+04 ! x y z +7.24297619e+02 -2.04790563e+03 -9.17975560e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill +1.18981571e+04 !particle radius in m +-2.02348638e+07 -1.68672863e+06 -1.06729108e+05 ! x y z +1.27546784e+02 -1.44981480e+03 -2.13046543e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill +4.79608176e+03 !particle radius in m +9.64800303e+06 8.51584872e+06 1.81571159e+04 ! x y z +-1.21061246e+03 1.38578498e+03 -1.32836513e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill +4.90789744e+03 !particle radius in m +9.13818695e+06 -7.70452976e+06 2.69452399e+04 ! x y z +1.22812984e+03 1.45658692e+03 -6.73843496e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill +9.14114041e+03 !particle radius in m +-1.09145671e+06 9.34973420e+06 5.18642883e+03 ! x y z +-2.11998407e+03 -2.42766889e+02 -9.89092405e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill +8.28071491e+03 !particle radius in m +1.92010196e+07 1.03149047e+07 5.09869779e+04 ! x y z +-6.74338417e+02 1.23568504e+03 -2.88434162e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill +8.15446281e+03 !particle radius in m +9.58051429e+06 -4.62318632e+05 6.35849025e+04 ! x y z +9.06335255e+01 2.09825906e+03 -7.35742647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill +1.09232871e+04 !particle radius in m +-1.30847754e+07 -1.20838009e+05 2.79768532e+04 ! x y z +3.82034000e+01 -1.80937386e+03 2.83422576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill +9.45383905e+03 !particle radius in m +-5.32926260e+06 1.08809045e+07 2.85451712e+04 ! x y z +-1.71920333e+03 -8.10618635e+02 -1.48118539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill +8.18339867e+03 !particle radius in m +1.07932378e+07 -2.40071483e+06 1.38428017e+04 ! x y z +4.19588126e+02 1.91854962e+03 1.35266288e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill +9.16228488e+03 !particle radius in m +-6.86193518e+06 -9.36770363e+06 8.70674895e+04 ! x y z +1.55612467e+03 -1.13081122e+03 -1.76373653e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill +7.36353909e+03 !particle radius in m +5.38169569e+06 -8.48107525e+06 -8.38982677e+03 ! x y z +1.73578647e+03 1.09143169e+03 9.09587252e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill +8.14917269e+03 !particle radius in m +7.81574277e+06 4.66176951e+06 -2.35259182e+04 ! x y z +-1.08169242e+03 1.85148012e+03 8.40529015e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill +1.22698790e+04 !particle radius in m +6.77476212e+06 6.99394577e+06 -8.71906448e+03 ! x y z +-1.48799386e+03 1.46547457e+03 -6.43335853e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill +4.72508108e+03 !particle radius in m +-2.14192792e+06 -8.68107380e+06 -3.97684760e+04 ! x y z +2.13766548e+03 -4.81639501e+02 9.54765001e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill +5.71050016e+03 !particle radius in m +9.36808365e+06 1.90217107e+06 2.99198598e+04 ! x y z +-4.46020774e+02 2.07539296e+03 -7.66300380e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill +7.33684298e+03 !particle radius in m +7.27614119e+06 5.72024594e+06 2.49831464e+04 ! x y z +-1.34304944e+03 1.66116310e+03 2.15485187e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill +4.75982712e+03 !particle radius in m +9.58921336e+06 -1.24222677e+07 -1.97472656e+05 ! x y z +1.32022081e+03 9.87424842e+02 4.32249357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill +1.08873520e+04 !particle radius in m +-7.88989019e+06 -1.13885470e+07 -2.56937402e+04 ! x y z +1.46586529e+03 -9.71985942e+02 -3.51396551e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill +3.99854533e+03 !particle radius in m +3.87292376e+06 9.21006941e+06 -6.39624708e+04 ! x y z +-1.89793804e+03 8.09142969e+02 -6.59781953e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill +5.83040726e+03 !particle radius in m +7.50695786e+06 -4.65362052e+06 -7.10126403e+03 ! x y z +1.18139098e+03 1.86471888e+03 -3.95167658e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill +4.48202152e+03 !particle radius in m +-1.39144844e+07 5.81363011e+06 3.85998049e+04 ! x y z +-6.70071502e+02 -1.54974548e+03 4.74922131e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill +1.21311502e+04 !particle radius in m +9.87837438e+06 2.55551323e+06 -1.36596041e+03 ! x y z +-4.90308025e+02 1.98176510e+03 -1.01037674e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill +9.09180370e+03 !particle radius in m +1.45341700e+07 -4.27619608e+06 5.93941868e+04 ! x y z +4.77328962e+02 1.60335894e+03 -4.97370028e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill +1.16574183e+04 !particle radius in m +2.05268573e+06 -1.13741606e+07 4.03903250e+04 ! x y z +1.88573928e+03 3.30474062e+02 -1.50298053e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill +7.34881070e+03 !particle radius in m +-1.02805752e+07 -3.59154998e+06 7.79568952e+04 ! x y z +6.27919253e+02 -1.86780226e+03 9.15877947e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill +9.64045416e+03 !particle radius in m +1.00209373e+07 1.06957570e+06 -9.24601092e+04 ! x y z +-1.95870916e+02 2.03366838e+03 -1.10087708e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill +3.97219150e+03 !particle radius in m +-1.39517485e+07 8.21883388e+06 7.67623281e+03 ! x y z +-8.12327248e+02 -1.40338294e+03 4.18222867e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill +6.71584845e+03 !particle radius in m +1.02605370e+07 -6.40538450e+06 2.46021664e+04 ! x y z +9.77968382e+02 1.60990669e+03 -4.31601474e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill +8.75727541e+03 !particle radius in m +1.06053206e+07 3.44385915e+06 5.77152912e+04 ! x y z +-5.52774107e+02 1.87621696e+03 -1.29609706e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill +5.98053661e+03 !particle radius in m +-9.64301945e+06 6.86746863e+06 -1.42533659e+05 ! x y z +-1.09942559e+03 -1.55528445e+03 -9.72595405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill +1.29126696e+04 !particle radius in m +1.05754125e+06 -1.47420174e+07 -1.54880877e+04 ! x y z +1.69143054e+03 1.16386287e+02 -1.26829716e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill +5.04640834e+03 !particle radius in m +-3.03537890e+06 9.53552265e+06 9.73685659e+03 ! x y z +-1.96823062e+03 -6.23463481e+02 -1.63952204e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill +4.60035801e+03 !particle radius in m +-9.98694456e+06 -1.23492362e+06 -1.80480653e+04 ! x y z +2.38207036e+02 -2.05532674e+03 1.79734911e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill +1.19900755e+04 !particle radius in m +-3.74835489e+06 9.22336598e+06 -1.11560816e+05 ! x y z +-1.91843216e+03 -7.98271594e+02 2.02049490e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill +1.24780025e+04 !particle radius in m +-6.68794780e+06 -7.54430362e+06 8.73782978e+03 ! x y z +1.55324620e+03 -1.34364314e+03 -6.31744671e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill +1.25403278e+04 !particle radius in m +-1.03958383e+07 8.06724680e+05 2.41594570e+04 ! x y z +-1.55899964e+02 -2.01914147e+03 9.33842265e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill +4.12066331e+03 !particle radius in m +9.33960040e+06 5.20047646e+06 3.07184995e+03 ! x y z +-9.59952400e+02 1.75350496e+03 -9.51510094e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill +1.14051155e+04 !particle radius in m +-4.55852771e+05 1.12982302e+07 1.97139798e+04 ! x y z +-1.93821973e+03 -6.36299001e+01 1.52707202e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill +9.00330067e+03 !particle radius in m +-9.39243710e+06 -4.13852649e+05 -1.20016794e+05 ! x y z +7.29189904e+01 -2.15146169e+03 7.46416116e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill +6.75031451e+03 !particle radius in m +1.55420118e+07 -1.56324574e+07 1.17450688e+05 ! x y z +9.80482478e+02 9.89380982e+02 -2.43164132e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill +1.14409114e+04 !particle radius in m +1.02533186e+07 8.01360601e+05 -1.49055635e+04 ! x y z +-1.71963144e+02 2.04211236e+03 -5.41798226e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill +7.63377033e+03 !particle radius in m +1.42914142e+06 9.84981684e+06 2.93564167e+04 ! x y z +-2.05268655e+03 3.05405042e+02 3.66863343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill +7.37523479e+03 !particle radius in m +8.46677243e+06 -3.56936745e+06 -1.01092855e+05 ! x y z +8.46329328e+02 1.98233396e+03 -1.20626919e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill +8.75022177e+03 !particle radius in m +-5.51541812e+06 -9.33328186e+06 -7.53076104e+04 ! x y z +1.69850130e+03 -1.02466912e+03 -1.16108091e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill +9.93898678e+03 !particle radius in m +7.91261034e+06 6.82977302e+06 4.78744592e+04 ! x y z +-1.31937664e+03 1.53446068e+03 9.71586209e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill +1.06583427e+04 !particle radius in m +9.51054870e+06 7.22147752e+06 -1.16155344e+05 ! x y z +-1.13247642e+03 1.51634128e+03 7.95619932e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill +7.85060242e+03 !particle radius in m +7.56958002e+06 8.18907830e+06 2.90934189e+04 ! x y z +-1.41713137e+03 1.33985142e+03 -1.12168107e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill +6.15974600e+03 !particle radius in m +-6.13341164e+06 7.98589804e+06 -2.27618169e+04 ! x y z +-1.62649363e+03 -1.24985675e+03 2.06508812e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill +5.24703584e+03 !particle radius in m +6.47073981e+06 -9.41271204e+06 -2.22310124e+04 ! x y z +1.59958848e+03 1.08093374e+03 -3.51035905e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill +5.28953293e+03 !particle radius in m +7.87952728e+06 -7.74021482e+06 2.62244560e+04 ! x y z +1.39190993e+03 1.39669667e+03 7.19439783e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill +8.72569980e+03 !particle radius in m +-7.78608816e+06 6.02791398e+06 3.71436614e+04 ! x y z +-1.25856718e+03 -1.69668386e+03 -1.29605210e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill +5.53985567e+03 !particle radius in m +-6.32210122e+06 -1.01415155e+07 4.88655736e+04 ! x y z +1.63018229e+03 -9.50923090e+02 9.77870783e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill +4.55779408e+03 !particle radius in m +-6.23576444e+06 6.51367852e+06 -3.41989237e+04 ! x y z +-1.58628947e+03 -1.49318367e+03 1.23405417e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill +1.10244216e+04 !particle radius in m +-1.35500086e+07 -2.26040006e+06 1.32350391e+05 ! x y z +2.64719358e+02 -1.74789986e+03 -5.31947479e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill +1.22251778e+04 !particle radius in m +5.77929553e+06 -1.19535178e+07 -7.82666736e+04 ! x y z +1.59619208e+03 7.97360418e+02 -1.29583152e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill +4.89435521e+03 !particle radius in m +-8.33458476e+06 1.42735479e+07 -3.35627654e+04 ! x y z +-1.40045628e+03 -8.13740040e+02 1.03574303e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill +1.12836524e+04 !particle radius in m +-1.47864055e+06 -9.12632464e+06 1.03294618e+05 ! x y z +2.12785802e+03 -3.89541043e+02 1.51865579e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill +1.14482340e+04 !particle radius in m +5.45407329e+06 9.28416293e+06 -1.51509372e+04 ! x y z +-1.71334604e+03 1.02205340e+03 -7.65932607e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill +1.15163962e+04 !particle radius in m +-1.39013045e+07 6.50213463e+06 -1.39734670e+05 ! x y z +-7.22290359e+02 -1.50945570e+03 -8.90498950e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill +1.27900613e+04 !particle radius in m +-9.89641528e+06 -1.11416999e+07 3.81985165e+04 ! x y z +1.26154170e+03 -1.13757778e+03 1.92574173e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill +3.74540728e+03 !particle radius in m +-3.16815028e+06 1.11329600e+07 6.51690516e+03 ! x y z +-1.85087911e+03 -4.88202334e+02 -1.01794725e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill +3.72235677e+03 !particle radius in m +1.00049376e+07 4.66630545e+06 -9.44413909e+04 ! x y z +-7.94024833e+02 1.77983677e+03 -9.21818189e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill +3.81573804e+03 !particle radius in m +-1.63493537e+07 6.57692006e+06 6.46813001e+04 ! x y z +-5.79515939e+02 -1.44477767e+03 3.27352582e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill +7.37167696e+03 !particle radius in m +1.18807783e+07 1.34251951e+07 1.86898768e+05 ! x y z +-1.17463975e+03 1.00294171e+03 -4.22564791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill +9.01289765e+03 !particle radius in m +1.11171931e+07 2.90403753e+06 -9.01017188e+04 ! x y z +-4.88090453e+02 1.87530119e+03 -9.57682232e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill +4.52652522e+03 !particle radius in m +9.73106602e+06 3.61005057e+04 5.94605185e+04 ! x y z +-7.45471281e+01 2.10678631e+03 -2.14191842e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill +1.16673660e+04 !particle radius in m +-2.74202504e+06 -1.01140650e+07 -7.39918641e+04 ! x y z +1.96547738e+03 -5.21963358e+02 1.77687487e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill +1.20422311e+04 !particle radius in m +8.00394990e+06 5.03858815e+06 -4.02327990e+04 ! x y z +-1.10710067e+03 1.81715883e+03 -6.62734475e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill +4.82177442e+03 !particle radius in m +5.34986811e+06 9.22950468e+06 4.90186732e+04 ! x y z +-1.74088881e+03 9.82932786e+02 -1.91216218e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill +1.08639605e+04 !particle radius in m +-8.64795237e+06 5.41831010e+06 1.55017414e+04 ! x y z +-1.07745389e+03 -1.74276883e+03 -5.97570489e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill +1.14293347e+04 !particle radius in m +-1.11663224e+07 -4.36971602e+05 9.93397534e+04 ! x y z +6.60642469e+01 -1.97245979e+03 1.63719711e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill +1.23198504e+04 !particle radius in m +-8.94315217e+06 -6.59985744e+06 1.41574538e+04 ! x y z +1.12488382e+03 -1.60471763e+03 9.42200485e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill +1.01033638e+04 !particle radius in m +1.92430034e+07 -3.89888242e+06 -5.57809830e+04 ! x y z +2.98708757e+02 1.44758503e+03 -4.72165311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill +1.27245467e+04 !particle radius in m +8.73120403e+06 5.22305398e+06 7.59670115e+04 ! x y z +-1.07719201e+03 1.76393373e+03 -6.61792923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill +1.26946618e+04 !particle radius in m +1.09108942e+07 -4.65832942e+06 -4.02366251e+03 ! x y z +7.47562985e+02 1.75464824e+03 8.16488922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill +8.38895796e+03 !particle radius in m +5.82034293e+06 1.07112512e+07 7.55785697e+03 ! x y z +-1.63892001e+03 9.00112405e+02 -1.94858021e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill +9.71711751e+03 !particle radius in m +6.68559809e+06 9.37557356e+06 -1.92332279e+03 ! x y z +-1.58295492e+03 1.11037420e+03 1.83307218e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill +1.06624826e+04 !particle radius in m +-3.28943607e+06 9.87837716e+06 6.05814516e+04 ! x y z +-1.92629942e+03 -6.22180329e+02 4.50728559e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill +9.27733226e+03 !particle radius in m +-6.01449513e+06 1.14226051e+07 3.09092202e+04 ! x y z +-1.62789379e+03 -8.28450934e+02 6.54251208e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill +1.13339954e+04 !particle radius in m +1.46501935e+07 3.52597046e+06 -1.53479325e+05 ! x y z +-3.94464542e+02 1.63555361e+03 -6.95224479e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill +1.29748793e+04 !particle radius in m +7.30587232e+06 5.82342150e+06 -1.66262680e+04 ! x y z +-1.33758368e+03 1.67374780e+03 1.03808342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill +5.72852320e+03 !particle radius in m +-8.28665070e+06 -1.08630233e+07 1.59771667e+04 ! x y z +1.42279548e+03 -1.06221837e+03 -1.00287654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill +1.20552459e+04 !particle radius in m +-8.85367709e+06 1.92824073e+06 -5.71899980e+04 ! x y z +-4.56904898e+02 -2.11490226e+03 1.50573635e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill +1.23258503e+04 !particle radius in m +-6.98192323e+06 -1.72685946e+07 7.38110386e+04 ! x y z +1.40350544e+03 -5.84590529e+02 -9.01131651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill +6.14344779e+03 !particle radius in m +1.43686835e+07 2.23609646e+06 2.55670087e+04 ! x y z +-2.46269150e+02 1.69322706e+03 -3.07491540e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill +7.50131728e+03 !particle radius in m +7.08335501e+06 1.12432588e+07 -7.04507229e+04 ! x y z +-1.52929946e+03 9.66536263e+02 -2.79918979e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill +8.70300381e+03 !particle radius in m +-4.60069395e+06 1.05653500e+07 1.04296802e+05 ! x y z +-1.76684768e+03 -7.81938520e+02 -2.29915803e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill +8.40614880e+03 !particle radius in m +8.19262513e+06 -3.58191579e+06 -3.30652024e+04 ! x y z +8.70670545e+02 2.01088754e+03 -5.27792880e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill +1.23024549e+04 !particle radius in m +3.89494213e+06 9.08725205e+06 -2.39743102e+04 ! x y z +-1.90805368e+03 7.88330663e+02 -9.72060594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill +6.75337616e+03 !particle radius in m +2.21339346e+06 9.86538825e+06 -8.87149741e+04 ! x y z +-2.00534067e+03 4.38594263e+02 1.01837964e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill +1.20886232e+04 !particle radius in m +4.10968486e+06 1.23907663e+07 5.33325146e+04 ! x y z +-1.71807002e+03 5.39202987e+02 -6.19076268e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill +1.09493990e+04 !particle radius in m +1.04073429e+07 2.67129136e+06 9.54333931e+04 ! x y z +-5.09495924e+02 1.93427487e+03 8.54877840e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill +3.97566200e+03 !particle radius in m +-4.09255175e+06 -9.53753075e+06 -7.50959611e+04 ! x y z +1.86269642e+03 -8.02231358e+02 -1.43161769e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill +4.59855003e+03 !particle radius in m +4.36723976e+06 -9.66553779e+06 -1.64558916e+04 ! x y z +1.84776304e+03 7.98021641e+02 5.78355557e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill +9.21904680e+03 !particle radius in m +8.53951718e+06 -2.54525107e+06 -7.04047773e+04 ! x y z +6.28921216e+02 2.09901050e+03 1.15726955e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill +8.71525146e+03 !particle radius in m +7.32788955e+06 -5.94137181e+06 -9.04304047e+04 ! x y z +1.34115379e+03 1.65561581e+03 7.08036612e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill +1.22524569e+04 !particle radius in m +6.71737923e+06 9.71600170e+06 5.06660922e+04 ! x y z +-1.56559808e+03 1.08107605e+03 -6.49532539e-03 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill +5.41816288e+03 !particle radius in m +-7.03605741e+06 6.85389332e+06 -2.57563829e+04 ! x y z +-1.44734013e+03 -1.50933987e+03 1.28526631e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill +6.43059110e+03 !particle radius in m +1.83405474e+07 1.00792626e+07 -9.20229382e+04 ! x y z +-7.18799940e+02 1.23921438e+03 2.48945179e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill +7.67198789e+03 !particle radius in m +5.23940562e+06 1.75022888e+07 -5.98430417e+04 ! x y z +-1.46565915e+03 4.46482377e+02 2.11785409e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill +9.33516932e+03 !particle radius in m +1.19175118e+07 -1.16543017e+07 5.30530426e+04 ! x y z +1.10958275e+03 1.15270442e+03 5.72450113e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill +7.83793078e+03 !particle radius in m +-8.96838687e+06 2.63897043e+06 -2.17897557e+04 ! x y z +-6.07622874e+02 -2.06310065e+03 -4.59651947e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill +6.66863210e+03 !particle radius in m +-6.04898231e+06 -6.86358884e+06 5.57406610e+04 ! x y z +1.61956515e+03 -1.43598669e+03 -4.59300568e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill +1.20949508e+04 !particle radius in m +7.90216623e+06 -1.09814809e+07 5.19189450e+04 ! x y z +1.45343692e+03 1.03872925e+03 -2.28298311e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill +1.26037782e+04 !particle radius in m +9.57669296e+05 -1.30387879e+07 7.61951879e+04 ! x y z +1.80738232e+03 1.29379874e+02 -1.14266147e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill +9.39937703e+03 !particle radius in m +-2.70230310e+06 8.62076168e+06 -2.22406079e+04 ! x y z +-2.07446913e+03 -6.54424485e+02 -1.11116533e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill +9.83695076e+03 !particle radius in m +-3.80463073e+06 -1.65753622e+07 1.47762416e+04 ! x y z +1.54780534e+03 -3.56129540e+02 4.67798248e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill +1.25677546e+04 !particle radius in m +1.97818140e+07 7.24503831e+06 4.34973562e+04 ! x y z +-5.06413028e+02 1.32512350e+03 5.73956860e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill +4.63734443e+03 !particle radius in m +-2.79050068e+06 -1.34910639e+07 4.33089266e+04 ! x y z +1.72889764e+03 -3.49089932e+02 -1.94775120e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill +1.05934634e+04 !particle radius in m +1.07844804e+07 1.29386712e+07 2.64893081e+04 ! x y z +-1.21296556e+03 1.03104861e+03 -8.93637679e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill +7.74266422e+03 !particle radius in m +-1.47784670e+07 -2.60738447e+06 1.11630430e+05 ! x y z +3.23911460e+02 -1.65880207e+03 4.54571842e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill +3.95912515e+03 !particle radius in m +5.07682372e+05 -1.30372405e+07 -1.85229557e+04 ! x y z +1.82615720e+03 7.82099311e+01 -4.18927265e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill +7.09905909e+03 !particle radius in m +-1.18244362e+07 -4.31687046e+06 -7.18542331e+04 ! x y z +6.12658121e+02 -1.74672302e+03 1.21397025e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill +4.26156427e+03 !particle radius in m +-3.54824820e+06 -8.30536307e+06 -8.90981624e+03 ! x y z +1.97998336e+03 -8.85057403e+02 -2.11344381e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill +1.08792174e+04 !particle radius in m +1.62346436e+06 -8.92811589e+06 -3.60195557e+03 ! x y z +2.15086991e+03 3.98636159e+02 2.48432648e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill +5.87800644e+03 !particle radius in m +-1.15733556e+07 -1.25115260e+07 1.46624511e+04 ! x y z +1.15579598e+03 -1.08828537e+03 -2.12261933e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill +4.14296182e+03 !particle radius in m +-1.08417724e+07 1.69081263e+06 7.24119490e+04 ! x y z +-3.09034576e+02 -1.94519167e+03 -3.85658993e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill +4.79422292e+03 !particle radius in m +3.49544878e+05 1.19517692e+07 2.11344945e+04 ! x y z +-1.87363529e+03 3.53402969e+01 5.71853498e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill +9.96836855e+03 !particle radius in m +-6.32504194e+06 7.74988563e+06 -3.04663654e+04 ! x y z +-1.60640404e+03 -1.28494821e+03 3.03961828e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill +8.46501102e+03 !particle radius in m +-1.24177769e+07 -1.38486640e+07 -1.01520582e+04 ! x y z +1.15690921e+03 -9.88251041e+02 4.69156127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill +1.21273232e+04 !particle radius in m +1.03771542e+07 -3.70291911e+06 1.08877147e+04 ! x y z +6.25781397e+02 1.86199758e+03 -8.89718339e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill +5.14868362e+03 !particle radius in m +-4.66823976e+06 -8.26435407e+06 2.26583539e+04 ! x y z +1.84983887e+03 -1.05552707e+03 1.56706480e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill +4.55784078e+03 !particle radius in m +4.62468583e+06 7.54223542e+06 -1.61944374e+04 ! x y z +-1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill +9.45460600e+03 !particle radius in m +-2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z +-1.35813181e+03 9.03958337e+00 -3.15567273e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill +9.76786728e+03 !particle radius in m +-6.52967648e+06 8.82305239e+06 -1.26732573e+04 ! x y z +-1.57282686e+03 -1.17622288e+03 1.39580799e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill +1.06030438e+04 !particle radius in m +1.77913234e+06 9.53045041e+06 3.10075017e+04 ! x y z +-2.05302630e+03 3.75004563e+02 1.58931971e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill +1.25260587e+04 !particle radius in m +3.58717818e+06 9.36647195e+06 -1.97615013e+04 ! x y z +-1.96178925e+03 7.11373199e+02 -1.26706515e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill +7.95288174e+03 !particle radius in m +-2.59234296e+06 -1.50157233e+07 4.00646737e+04 ! x y z +1.65438833e+03 -2.60173941e+02 1.23164306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill +7.17351953e+03 !particle radius in m +9.06239327e+06 9.91334627e+05 -4.75445475e+03 ! x y z +-2.74588769e+02 2.14560267e+03 -4.58665348e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill +1.29999162e+04 !particle radius in m +-1.32275910e+06 1.11815578e+07 -3.52932928e+04 ! x y z +-1.92926562e+03 -2.26736828e+02 1.12692641e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill +1.02371836e+04 !particle radius in m +-1.18507495e+07 5.08791326e+05 -4.16400253e+03 ! x y z +-1.21704217e+02 -1.88175671e+03 1.06233149e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill +1.14563699e+04 !particle radius in m +9.66851157e+06 -1.73226908e+06 -1.69082214e+04 ! x y z +3.88627413e+02 2.04608590e+03 -8.98008156e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill +8.65882148e+03 !particle radius in m +-2.00783480e+06 -9.30718645e+06 -7.65374580e+04 ! x y z +2.06366212e+03 -4.61769702e+02 1.50556810e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill +1.29137852e+04 !particle radius in m +5.63016627e+05 1.37971202e+07 -5.96323274e+04 ! x y z +-1.75809500e+03 5.38503245e+01 5.31257797e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill +1.24695778e+04 !particle radius in m +9.16922325e+06 -9.63000174e+05 -3.41255650e+02 ! x y z +2.26283177e+02 2.14046849e+03 -4.83048073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill +4.63464147e+03 !particle radius in m +-8.86805151e+06 1.17556708e+06 5.29953219e+04 ! x y z +-2.96347767e+02 -2.18707052e+03 -3.03941376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill +9.03459031e+03 !particle radius in m +9.02199722e+06 -3.39632005e+06 -7.08544393e+04 ! x y z +7.55874214e+02 1.97860482e+03 5.10133054e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill +6.79554835e+03 !particle radius in m +-3.33406678e+06 -1.03746123e+07 -4.13492713e+04 ! x y z +1.88884845e+03 -5.81374899e+02 2.44002419e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill +4.33964341e+03 !particle radius in m +8.47272017e+06 -3.29574857e+06 4.59089313e+04 ! x y z +8.07908043e+02 2.00285924e+03 2.30278431e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill +6.96963100e+03 !particle radius in m +-1.10174017e+07 -1.65843431e+07 -7.81778692e+04 ! x y z +1.22711770e+03 -7.92668746e+02 1.28964786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill +4.87663009e+03 !particle radius in m +-6.99704994e+06 -1.88546711e+07 -8.81519961e+04 ! x y z +1.37622550e+03 -5.05609550e+02 1.32065962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill +8.85565460e+03 !particle radius in m +3.37171440e+06 -1.03724491e+07 -2.05908462e+04 ! x y z +1.89249257e+03 5.96290076e+02 -1.16901986e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill +9.70303009e+03 !particle radius in m +8.68817648e+05 -9.37137391e+06 -9.78603362e+04 ! x y z +2.13443213e+03 1.77136355e+02 -1.05898656e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill +1.02227553e+04 !particle radius in m +-8.20639456e+06 4.88393438e+06 3.93769452e+04 ! x y z +-1.09602043e+03 -1.80139112e+03 -5.09189684e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill +1.19572346e+04 !particle radius in m +-2.98729202e+06 -1.69982812e+07 -1.00361471e+02 ! x y z +1.54074333e+03 -2.84642833e+02 -7.12483576e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill +1.10694715e+04 !particle radius in m +-1.87997669e+07 -2.87235850e+06 6.06981762e+04 ! x y z +2.30253048e+02 -1.48355775e+03 -3.20628055e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill +1.17140974e+04 !particle radius in m +-1.67195966e+06 1.53840879e+07 1.17823799e+05 ! x y z +-1.66924292e+03 -1.76106009e+02 2.19585908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill +1.26586599e+04 !particle radius in m +7.45254418e+06 4.82823148e+06 -5.06675552e+03 ! x y z +-1.22839592e+03 1.82946634e+03 -1.27029622e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill +6.99494374e+03 !particle radius in m +5.13959627e+06 7.44700588e+06 5.03758086e+04 ! x y z +-1.79330931e+03 1.22535892e+03 -1.02427731e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill +7.21229000e+03 !particle radius in m +9.58649389e+06 5.81253530e+06 -4.39352546e+04 ! x y z +-9.88086375e+02 1.68843459e+03 -9.34405959e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill +1.06209501e+04 !particle radius in m +5.07070035e+06 7.32312120e+06 7.18562589e+04 ! x y z +-1.79677644e+03 1.25238618e+03 1.64235819e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill +7.60936749e+03 !particle radius in m +1.19404056e+06 1.08877947e+07 5.88658821e+03 ! x y z +-1.96662575e+03 2.29281553e+02 -1.48568063e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill +1.21305775e+04 !particle radius in m +-9.84021278e+06 -3.40002026e+06 -6.17065432e+04 ! x y z +7.02356760e+02 -1.91960378e+03 8.28806476e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill +5.64173558e+03 !particle radius in m +8.38364229e+06 -1.08052974e+07 -1.14971163e+05 ! x y z +1.41362762e+03 1.05030477e+03 1.33062848e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill +4.21249068e+03 !particle radius in m +4.30913199e+06 8.44003978e+06 1.98375727e+04 ! x y z +-1.87920775e+03 9.70144357e+02 7.68922870e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill +8.36735565e+03 !particle radius in m +9.34254133e+06 -6.72471094e+06 3.04479801e+03 ! x y z +1.13048626e+03 1.56587434e+03 1.26328276e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill +6.82609072e+03 !particle radius in m +-3.94216440e+06 -8.13811187e+06 -2.32415480e+03 ! x y z +1.94483188e+03 -9.74054123e+02 6.56681455e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill +9.70708677e+03 !particle radius in m +5.41429391e+06 -7.20522578e+06 5.41382285e+04 ! x y z +1.73021941e+03 1.33390146e+03 1.43673569e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill +1.08215064e+04 !particle radius in m +-3.58069142e+06 -1.18639900e+07 -2.98112201e+04 ! x y z +1.80063833e+03 -4.84660340e+02 -1.10025267e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill +7.07029058e+03 !particle radius in m +5.06214806e+06 -8.79684921e+06 -6.69408163e+03 ! x y z +1.77899792e+03 1.03185242e+03 -6.99222338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill +6.25131279e+03 !particle radius in m +2.20528884e+06 -1.13497157e+07 1.23709451e+05 ! x y z +1.88518956e+03 4.07847130e+02 -1.21144069e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill +7.02206200e+03 !particle radius in m +5.73341973e+06 -8.10327163e+06 -2.40301967e+04 ! x y z +1.67706223e+03 1.24499901e+03 -1.26631178e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill +9.46615418e+03 !particle radius in m +-4.07741467e+06 -8.18369428e+06 -3.25211280e+04 ! x y z +1.94858682e+03 -9.33976298e+02 3.19344234e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill +1.08696854e+04 !particle radius in m +6.06888001e+06 6.98255626e+06 -6.90089903e+03 ! x y z +-1.60191111e+03 1.44385639e+03 1.12490936e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill +7.40682734e+03 !particle radius in m +-1.97618366e+06 8.86960314e+06 4.14824140e+04 ! x y z +-2.09949361e+03 -4.69720145e+02 1.43384661e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill +1.02086703e+04 !particle radius in m +-6.96997724e+05 1.14525501e+07 -2.14282591e+04 ! x y z +-1.94508975e+03 -1.20495540e+02 -1.27425570e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill +1.08099817e+04 !particle radius in m +9.38021683e+06 3.42327658e+04 2.00501873e+04 ! x y z +-3.65841924e+01 2.11334523e+03 -1.86694989e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill +6.31519566e+03 !particle radius in m +9.77614427e+06 2.18126141e+06 4.93063169e+04 ! x y z +-4.63942946e+02 2.03097699e+03 3.68237367e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill +6.36286244e+03 !particle radius in m +1.03665232e+06 8.86346829e+06 1.05688800e+05 ! x y z +-2.16165047e+03 3.02954637e+02 -2.55519521e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill +7.01416117e+03 !particle radius in m +1.03495591e+07 -4.25164616e+06 3.58740907e+04 ! x y z +7.33662495e+02 1.82348291e+03 -6.28887722e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill +9.03178903e+03 !particle radius in m +-2.38406558e+06 9.62250108e+06 1.02937972e+05 ! x y z +-2.01173579e+03 -4.55947194e+02 5.72154417e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill +8.64887224e+03 !particle radius in m +-1.07734704e+07 -1.45075387e+06 -2.66041480e+04 ! x y z +2.65092409e+02 -1.95941508e+03 3.83593904e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill +4.59186701e+03 !particle radius in m +4.74101076e+06 -1.21984912e+07 3.79772198e+04 ! x y z +1.69258599e+03 6.30621386e+02 2.06381502e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill +1.07150758e+04 !particle radius in m +7.43989020e+06 -5.63873599e+06 -5.85929699e+04 ! x y z +1.31667387e+03 1.70317955e+03 9.52560643e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill +1.28849886e+04 !particle radius in m +-5.38823915e+06 1.48268009e+07 -2.14296811e+04 ! x y z +-1.54283155e+03 -5.57159624e+02 5.54783358e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill +8.11825531e+03 !particle radius in m +2.66724929e+06 -8.66471427e+06 1.00760731e+04 ! x y z +2.07447879e+03 6.47409518e+02 2.06301461e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill +6.32533652e+03 !particle radius in m +-9.34887042e+06 -7.71203345e+05 -2.80106217e+04 ! x y z +1.56382920e+02 -2.13449580e+03 1.77972684e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill +6.47451347e+03 !particle radius in m +2.11853462e+06 2.14346842e+07 -1.31619878e+05 ! x y z +-1.40220812e+03 1.23003628e+02 1.01803056e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill +9.73096804e+03 !particle radius in m +8.93418422e+06 -1.26163769e+06 -6.14650218e+03 ! x y z +2.70831749e+02 2.17084302e+03 -6.49066157e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill +1.21985861e+04 !particle radius in m +-3.36304606e+06 -8.68475569e+06 4.22905473e+04 ! x y z +2.01382441e+03 -7.30247568e+02 -1.59257408e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill +1.18904701e+04 !particle radius in m +8.81465687e+06 -2.36248215e+06 6.67259873e+04 ! x y z +5.93111329e+02 2.09930862e+03 3.04112228e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill +1.15252633e+04 !particle radius in m +-4.21295680e+06 -8.25900507e+06 -3.19234838e+03 ! x y z +1.92170180e+03 -9.79177619e+02 -8.10728388e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill +8.60360757e+03 !particle radius in m +9.93364443e+06 8.45966410e+06 -7.67940035e+04 ! x y z +-1.17931717e+03 1.37394453e+03 -8.05856772e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill +1.16460986e+04 !particle radius in m +1.04612906e+06 1.07823989e+07 -7.20248309e+04 ! x y z +-1.97918359e+03 1.84768969e+02 3.98691690e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill +7.05875544e+03 !particle radius in m +-1.20383776e+07 -1.30487787e+07 -1.17822971e+05 ! x y z +1.15323425e+03 -1.04821079e+03 -2.09214306e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill +1.22523351e+04 !particle radius in m +-6.25721631e+06 -7.48338074e+06 6.58872777e+04 ! x y z +1.60724089e+03 -1.35523949e+03 1.79073191e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill +9.90119508e+03 !particle radius in m +-1.98852887e+06 -1.16234208e+07 3.45760659e+04 ! x y z +1.87230049e+03 -3.33072319e+02 1.96763510e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill +6.39775874e+03 !particle radius in m +-1.83445389e+06 -1.01663777e+07 -2.16218566e+04 ! x y z +1.99731190e+03 -3.10283279e+02 -1.07270295e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill +1.28561305e+04 !particle radius in m +-6.68458169e+06 -1.03038987e+07 1.06554338e+05 ! x y z +1.55802844e+03 -1.01074571e+03 -1.53515092e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill +6.64439416e+03 !particle radius in m +-9.54428205e+06 -1.77688297e+06 -2.10926647e+04 ! x y z +3.75374809e+02 -2.06650760e+03 -1.22766897e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill +4.45221314e+03 !particle radius in m +3.13901663e+06 1.32731582e+07 -8.32687929e+04 ! x y z +-1.71730983e+03 4.23145043e+02 4.63891808e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill +8.94314414e+03 !particle radius in m +-2.33540859e+06 9.13065765e+06 7.06589924e+03 ! x y z +-2.06497311e+03 -5.14043891e+02 1.51818535e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill +9.79534618e+03 !particle radius in m +1.36994576e+07 -4.67366094e+06 7.44829731e+04 ! x y z +5.44944889e+02 1.63399910e+03 -4.32898441e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill +3.76668925e+03 !particle radius in m +-7.37395287e+06 5.09151414e+06 2.55133554e+04 ! x y z +-1.23099773e+03 -1.81388400e+03 -6.90022105e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill +1.06439337e+04 !particle radius in m +-4.36095303e+06 9.17263674e+06 5.77572160e+04 ! x y z +-1.86099387e+03 -8.92089911e+02 1.33050454e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill +1.01319198e+04 !particle radius in m +6.09028041e+05 -9.05678858e+06 -3.59192636e+04 ! x y z +2.16064013e+03 1.12524119e+02 -1.28041635e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill +4.11065306e+03 !particle radius in m +8.74913197e+06 -1.47341693e+06 -9.62438055e+04 ! x y z +3.78746478e+02 2.16207809e+03 -2.44021093e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill +1.30483609e+04 !particle radius in m +-8.58911286e+06 2.87403478e+06 1.58823639e+02 ! x y z +-7.16776888e+02 -2.04412274e+03 5.09362192e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill +1.07178069e+04 !particle radius in m +8.48527058e+06 -9.20798638e+06 -1.02188880e+05 ! x y z +1.36994712e+03 1.25405390e+03 1.06840389e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill +1.12118643e+04 !particle radius in m +-5.30902937e+06 7.21606500e+06 6.02327354e+04 ! x y z +-1.77499753e+03 -1.28053606e+03 -3.40605365e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill +4.96028208e+03 !particle radius in m +-1.77739170e+07 5.38979777e+06 1.55930024e+05 ! x y z +-4.43393580e+02 -1.45455644e+03 -2.70314341e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill +5.28698448e+03 !particle radius in m +-8.43967863e+06 -7.92404795e+06 -2.34275469e+04 ! x y z +1.33453164e+03 -1.37751924e+03 -2.53751841e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill +1.00412476e+04 !particle radius in m +4.71451819e+06 -7.46352121e+06 1.62287314e+03 ! x y z +1.84921224e+03 1.19850662e+03 1.99232615e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill +5.43374958e+03 !particle radius in m +1.87652013e+06 -1.11420807e+07 1.38944441e+05 ! x y z +1.93560918e+03 3.25150073e+02 2.51765258e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill +1.25612659e+04 !particle radius in m +-9.29220692e+06 2.16599787e+06 -4.38900389e+04 ! x y z +-4.87620074e+02 -2.05624014e+03 4.85721843e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill +8.29428788e+03 !particle radius in m +1.39531950e+06 1.01422470e+07 -9.71755919e+04 ! x y z +-2.02592294e+03 3.03255899e+02 5.57961818e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill +7.18660555e+03 !particle radius in m +1.17947013e+07 7.40001699e+05 2.51672426e+04 ! x y z +-1.17060805e+02 1.90660700e+03 5.44656130e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill +1.12581502e+04 !particle radius in m +-7.90433536e+06 6.73266024e+06 -3.50969312e+04 ! x y z +-1.30204874e+03 -1.55681461e+03 5.35229797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill +5.64021687e+03 !particle radius in m +1.20372535e+07 -7.49092702e+06 6.74822230e+04 ! x y z +8.91458581e+02 1.47943776e+03 -9.74770857e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill +6.98217592e+03 !particle radius in m +6.85752801e+06 6.02181411e+06 3.38939759e+03 ! x y z +-1.45444163e+03 1.59683746e+03 2.15463449e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill +9.64610498e+03 !particle radius in m +1.65844804e+07 4.81034890e+06 4.61229376e+04 ! x y z +-4.20560106e+02 1.53234812e+03 -2.07164443e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill +9.97612135e+03 !particle radius in m +-1.11130797e+07 -3.78359570e+06 -1.84960756e+03 ! x y z +5.85052492e+02 -1.82483094e+03 -5.22659903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill +7.74203039e+03 !particle radius in m +4.58513442e+06 1.02699278e+07 -3.18341648e+04 ! x y z +-1.77353935e+03 8.15172006e+02 -3.48615440e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill +9.54525817e+03 !particle radius in m +7.69154925e+06 -4.52108417e+06 1.90521640e+04 ! x y z +1.13843297e+03 1.87858469e+03 1.37511342e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill +6.87114114e+03 !particle radius in m +-1.15969434e+07 3.52559239e+06 5.16907637e+04 ! x y z +-5.69477663e+02 -1.78769915e+03 -1.33023745e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill +1.00913836e+04 !particle radius in m +5.95447776e+06 -7.82496208e+06 3.09991808e+04 ! x y z +1.65084498e+03 1.22028250e+03 -2.33382836e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill +6.05977746e+03 !particle radius in m +-3.93089529e+06 1.17766068e+07 -6.72321552e+03 ! x y z +-1.75059713e+03 -6.17947765e+02 -1.16753307e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill +1.27297027e+04 !particle radius in m +-9.38145643e+06 5.61032393e+05 -2.62604457e+04 ! x y z +-1.66051140e+02 -2.13147141e+03 -1.91808715e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill +1.07838641e+04 !particle radius in m +-3.46243172e+06 -9.75229088e+06 -6.99128436e+04 ! x y z +1.92977079e+03 -6.78308349e+02 -2.04030914e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill +7.49949684e+03 !particle radius in m +2.14173079e+06 -1.00855853e+07 1.33615118e+04 ! x y z +2.00549502e+03 4.10286548e+02 1.33463171e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill +4.66653709e+03 !particle radius in m +2.97083227e+06 8.61004661e+06 -5.77896258e+04 ! x y z +-2.03526397e+03 6.94270314e+02 -2.15105297e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill +5.95586641e+03 !particle radius in m +-1.12041316e+07 8.43574386e+06 6.88522376e+04 ! x y z +-1.04307644e+03 -1.40491020e+03 6.49036289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill +7.11632779e+03 !particle radius in m +-4.35495075e+06 9.47025259e+06 -5.09915025e+04 ! x y z +-1.85819690e+03 -8.15466077e+02 4.09008068e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill +5.57206216e+03 !particle radius in m +4.78116976e+06 -1.59784331e+07 -5.36968327e+04 ! x y z +1.53329565e+03 4.46997350e+02 4.63714714e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill +8.50997184e+03 !particle radius in m +8.23993793e+06 -5.31139465e+06 6.29574603e+04 ! x y z +1.13278257e+03 1.76205209e+03 -8.47937534e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill +1.26036743e+04 !particle radius in m +-9.63212471e+06 3.36590765e+06 -1.07062454e+04 ! x y z +-6.84552644e+02 -1.94265665e+03 2.94400282e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill +4.86272166e+03 !particle radius in m +9.83116842e+06 6.61447762e+06 -5.12468956e+04 ! x y z +-1.03243293e+03 1.62443233e+03 2.38757589e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill +5.75359413e+03 !particle radius in m +9.79171021e+06 -2.73890246e+06 8.20795285e+04 ! x y z +5.70999291e+02 1.96925843e+03 2.38407769e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill +8.31975532e+03 !particle radius in m +-3.31575865e+06 9.74773076e+06 -6.68906771e+04 ! x y z +-1.91945157e+03 -6.80055572e+02 7.05071034e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill +1.11561412e+04 !particle radius in m +2.59402712e+06 1.41195960e+07 7.65317352e+04 ! x y z +-1.69390135e+03 3.03445651e+02 1.51567072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill +7.06120023e+03 !particle radius in m +-2.50324523e+06 1.33583355e+07 -1.06069614e+05 ! x y z +-1.73502096e+03 -3.33244830e+02 -4.27813580e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill +1.08855562e+04 !particle radius in m +-4.06673848e+06 -1.16023946e+07 4.08896853e+04 ! x y z +1.75606757e+03 -6.22462152e+02 1.70339271e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill +8.51827363e+03 !particle radius in m +4.61087222e+06 -8.97079451e+06 -2.30678380e+04 ! x y z +1.81563298e+03 9.45814603e+02 2.66915276e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill +9.98376791e+03 !particle radius in m +9.96934676e+06 5.38891014e+06 9.88781435e+04 ! x y z +-9.81582718e+02 1.71074828e+03 -3.99838208e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill +6.46366364e+03 !particle radius in m +4.99758772e+06 -7.50759705e+06 -5.25299733e+04 ! x y z +1.80703397e+03 1.21678053e+03 1.90540898e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill +8.47913036e+03 !particle radius in m +-6.69441800e+06 -8.86176278e+06 2.53388174e+04 ! x y z +1.56709902e+03 -1.16434302e+03 -9.30903825e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill +6.33780436e+03 !particle radius in m +-4.38549443e+06 -8.30442031e+06 2.47931467e+04 ! x y z +1.89780640e+03 -1.00273544e+03 3.24648282e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill +4.58059717e+03 !particle radius in m +9.52295494e+06 -1.31453589e+07 -2.84882159e+04 ! x y z +1.32429236e+03 9.32305231e+02 -7.78758641e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill +4.96572933e+03 !particle radius in m +8.16032081e+06 -3.83914183e+06 -4.53668688e+04 ! x y z +9.48405336e+02 1.95482944e+03 -1.90024465e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill +1.18058616e+04 !particle radius in m +8.84185924e+06 4.91012210e+06 -4.89421191e+04 ! x y z +-9.91478880e+02 1.77538667e+03 -7.79856416e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill +4.55512603e+03 !particle radius in m +1.32256008e+07 4.60711564e+06 3.20195320e+04 ! x y z +-5.72824835e+02 1.63498483e+03 -8.94623266e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill +9.31206622e+03 !particle radius in m +1.83600084e+07 -3.67172737e+06 -1.03387529e+05 ! x y z +2.82478801e+02 1.48749998e+03 -3.61587063e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill +1.08121011e+04 !particle radius in m +5.50505051e+06 7.32332854e+06 3.97380095e+04 ! x y z +-1.73540458e+03 1.27934877e+03 1.31767249e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill +1.19792790e+04 !particle radius in m +-7.13326386e+06 1.32178302e+07 5.30241465e+04 ! x y z +-1.47659146e+03 -7.82263656e+02 -2.09914908e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill +4.27383343e+03 !particle radius in m +-4.61218845e+06 1.05730170e+07 -6.60200193e+04 ! x y z +-1.78205321e+03 -7.56922993e+02 8.78119173e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill +1.14640744e+04 !particle radius in m +-4.56090890e+06 1.14927598e+07 1.08391052e+05 ! x y z +-1.73824893e+03 -6.90093039e+02 -9.72090948e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill +5.67210117e+03 !particle radius in m +-1.26164008e+07 8.37507124e+06 -9.30825805e+04 ! x y z +-9.25052993e+02 -1.39347287e+03 7.98354596e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill +6.97236746e+03 !particle radius in m +6.53000802e+05 -9.25877071e+06 7.96919181e+03 ! x y z +2.13254376e+03 1.58194267e+02 -3.04691883e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill +1.00860395e+04 !particle radius in m +7.29493071e+06 -5.15859210e+06 -4.34667082e+04 ! x y z +1.28346456e+03 1.77485302e+03 1.13165377e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill +3.79587448e+03 !particle radius in m +-3.19192697e+06 -8.59789141e+06 9.38867695e+04 ! x y z +2.03734470e+03 -7.26452634e+02 -1.17305762e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill +9.54848620e+03 !particle radius in m +9.47082398e+06 -1.09607932e+06 4.83920593e+04 ! x y z +2.14821600e+02 2.11542107e+03 1.20322954e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill +9.67403073e+03 !particle radius in m +-6.95192799e+06 -5.46206006e+06 2.82885807e+04 ! x y z +1.36201469e+03 -1.74685442e+03 2.47593903e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill +6.47356387e+03 !particle radius in m +-3.08185810e+06 9.58349756e+06 6.94451226e+03 ! x y z +-1.96338979e+03 -6.65837368e+02 -2.04503843e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill +1.23980946e+04 !particle radius in m +1.65978586e+07 7.58110647e+06 -7.73180642e+04 ! x y z +-6.28856477e+02 1.39136938e+03 1.44879781e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill +1.11769229e+04 !particle radius in m +-6.68285720e+06 6.69572721e+06 -2.14964381e+03 ! x y z +-1.53479675e+03 -1.49178194e+03 -5.71100381e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill +5.41215219e+03 !particle radius in m +-4.42591408e+06 -1.21925806e+07 -3.63637070e+04 ! x y z +1.69944504e+03 -6.60923085e+02 -1.17185754e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill +9.40989476e+03 !particle radius in m +9.48116594e+06 -3.86455243e+05 -1.03947327e+05 ! x y z +6.54406678e+01 2.14729925e+03 -2.03989342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill +9.76055838e+03 !particle radius in m +9.75283383e+06 -3.26934404e+06 -6.67089834e+03 ! x y z +6.55184968e+02 1.92454684e+03 -2.06876177e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill +9.82795810e+03 !particle radius in m +7.92293154e+06 -5.92949642e+06 8.08421712e+04 ! x y z +1.22209539e+03 1.67954941e+03 6.77640716e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill +1.10112267e+04 !particle radius in m +-9.44726757e+06 -1.72479642e+06 -5.06771776e+04 ! x y z +3.57081323e+02 -2.08684682e+03 -1.01697089e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill +8.85599534e+03 !particle radius in m +-6.23129670e+06 7.19526623e+06 1.83941420e+04 ! x y z +-1.59813509e+03 -1.40609078e+03 1.94595479e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill +1.13935271e+04 !particle radius in m +-5.60132388e+06 -7.32299736e+06 -1.77571471e+04 ! x y z +1.71338179e+03 -1.30416800e+03 7.07200448e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill +9.21714362e+03 !particle radius in m +1.94866969e+07 6.41556967e+06 -8.78618223e+04 ! x y z +-4.47022162e+02 1.36561417e+03 1.23555791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill +9.19760498e+03 !particle radius in m +1.24313845e+07 -1.03009928e+07 2.91007895e+04 ! x y z +1.03299438e+03 1.26303931e+03 1.43272483e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill +6.15328661e+03 !particle radius in m +-1.88463700e+07 3.02324922e+06 -1.45896688e+05 ! x y z +-2.31662436e+02 -1.48292769e+03 2.63168505e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill +7.76210648e+03 !particle radius in m +1.40546567e+07 -3.88347486e+06 6.81896661e+04 ! x y z +4.43567006e+02 1.65056081e+03 4.01577354e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill +4.21738363e+03 !particle radius in m +1.78412490e+06 -1.05393977e+07 -1.79940495e+04 ! x y z +1.97327292e+03 3.39702264e+02 -1.56396341e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill +1.24124221e+04 !particle radius in m +3.48276485e+06 1.24683799e+07 5.71803206e+04 ! x y z +-1.74011773e+03 4.74503606e+02 9.70062988e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill +6.19423818e+03 !particle radius in m +9.54521899e+06 -4.27421825e+06 -7.89921579e+04 ! x y z +8.34463883e+02 1.83314396e+03 -1.96687832e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill +1.07595049e+04 !particle radius in m +-2.90897541e+06 -9.97345628e+06 4.60433948e+04 ! x y z +1.93634809e+03 -5.84664071e+02 -6.64958448e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill +1.22230660e+04 !particle radius in m +4.25415099e+06 -1.14325644e+07 5.00958816e+04 ! x y z +1.75951768e+03 6.44587122e+02 6.30692655e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill +7.10923390e+03 !particle radius in m +-1.58007262e+07 -7.45105168e+06 -3.06690137e+04 ! x y z +6.82944765e+02 -1.41301363e+03 1.04453850e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill +6.57693777e+03 !particle radius in m +8.25741284e+06 4.39411348e+06 3.78949633e+04 ! x y z +-9.99781284e+02 1.87441904e+03 -3.21699586e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill +6.56801971e+03 !particle radius in m +2.42332014e+06 2.17054415e+07 -5.36680055e+04 ! x y z +-1.40455533e+03 1.37752686e+02 -3.67471579e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill +7.16699767e+03 !particle radius in m +-1.11338384e+07 -2.20174819e+06 -5.08310388e+04 ! x y z +3.88427106e+02 -1.90213725e+03 -1.60447088e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill +1.08784389e+04 !particle radius in m +-1.83729146e+07 1.19076985e+06 -1.72335144e+04 ! x y z +-9.88243619e+01 -1.51803622e+03 2.27806536e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill +1.04495767e+04 !particle radius in m +-6.50873442e+06 -1.07127054e+07 -3.34128129e+03 ! x y z +1.57607258e+03 -9.74525706e+02 1.08233475e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill +1.07365873e+04 !particle radius in m +-2.66932388e+06 -1.08052729e+07 -7.29995052e+04 ! x y z +1.89275637e+03 -5.06517897e+02 -3.33939112e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill +1.11350375e+04 !particle radius in m +-8.68309984e+06 8.73295385e+06 2.12890448e+04 ! x y z +-1.33510513e+03 -1.35075217e+03 2.94732064e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill +4.15634119e+03 !particle radius in m +-9.01680783e+06 -6.03891596e+06 -1.83491289e+04 ! x y z +1.08610553e+03 -1.66661637e+03 5.40990322e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill +8.40905991e+03 !particle radius in m +8.73703169e+06 -2.34962014e+06 8.87466208e+03 ! x y z +5.81838269e+02 2.10387535e+03 1.59910498e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill +1.06013311e+04 !particle radius in m +-5.56657026e+06 -7.79387621e+06 -2.42457443e+04 ! x y z +1.72811494e+03 -1.19163725e+03 7.49315478e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill +8.97396819e+03 !particle radius in m +-1.39814291e+07 5.67086599e+06 7.10670472e+04 ! x y z +-6.38825478e+02 -1.55959492e+03 1.37992185e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill +9.23650109e+03 !particle radius in m +-6.68069155e+05 -1.06256314e+07 1.03366197e+04 ! x y z +1.99524677e+03 -1.14341573e+02 7.10647594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill +1.26639344e+04 !particle radius in m +4.44131372e+06 1.05243943e+07 -4.93210722e+04 ! x y z +-1.78877447e+03 7.65306939e+02 -2.91348510e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill +3.72440519e+03 !particle radius in m +4.74513540e+06 -1.11521571e+07 1.99020178e+04 ! x y z +1.74857282e+03 7.32287072e+02 8.22196426e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill +6.65808168e+03 !particle radius in m +3.69231178e+06 8.07781861e+06 -4.84025537e+04 ! x y z +-1.99534439e+03 9.00711444e+02 -7.96406279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill +9.76097367e+03 !particle radius in m +7.96779900e+06 5.28681997e+06 4.51459562e+04 ! x y z +-1.15797841e+03 1.77999708e+03 -1.86173466e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill +1.23309244e+04 !particle radius in m +-4.76453798e+06 -8.80906879e+06 -7.02042625e+03 ! x y z +1.84339352e+03 -9.61915676e+02 -9.22717545e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill +7.89494909e+03 !particle radius in m +-1.01354200e+07 1.79029021e+06 5.81214752e+04 ! x y z +-3.69721169e+02 -2.02078532e+03 -1.89093419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill +9.77391088e+03 !particle radius in m +6.33480475e+06 -5.91857236e+06 -4.57999278e+04 ! x y z +1.55086475e+03 1.62084415e+03 -1.77397628e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill +7.38931640e+03 !particle radius in m +-1.06493767e+07 7.82814577e+06 2.86358415e+04 ! x y z +-1.05832791e+03 -1.46150005e+03 -5.49731072e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill +1.26273646e+04 !particle radius in m +7.65076109e+06 -1.70352283e+07 1.51301396e+04 ! x y z +1.39901314e+03 6.06223441e+02 4.14064364e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill +1.16848854e+04 !particle radius in m +-6.95564135e+06 7.65404475e+06 -2.72421907e+04 ! x y z +-1.52099853e+03 -1.35598646e+03 -9.21577263e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill +5.54558146e+03 !particle radius in m +-5.49140677e+04 1.54446317e+07 -1.73043597e+04 ! x y z +-1.66030895e+03 -1.12967723e+01 -2.73734027e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill +4.63830089e+03 !particle radius in m +5.28463967e+06 -1.36432294e+07 1.50949984e+05 ! x y z +1.58056809e+03 6.18784193e+02 2.19476691e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill +1.16861089e+04 !particle radius in m +-6.87024799e+06 -8.49204530e+06 6.90721153e+04 ! x y z +1.52959279e+03 -1.25803812e+03 2.67976166e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill +8.06813127e+03 !particle radius in m +-5.81437057e+06 -7.46625959e+06 3.98273573e+04 ! x y z +1.67686329e+03 -1.30572183e+03 -1.17212431e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill +4.37989422e+03 !particle radius in m +-2.38298847e+06 -1.53195500e+07 2.60001847e+03 ! x y z +1.63293505e+03 -2.84649559e+02 -1.48524125e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill +1.03479629e+04 !particle radius in m +8.39690801e+06 9.44600671e+06 -3.53959311e+04 ! x y z +-1.39463544e+03 1.20681438e+03 -1.20628234e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill +5.82874810e+03 !particle radius in m +1.01396678e+07 -1.41312986e+07 5.56406543e+04 ! x y z +1.26355281e+03 9.21806042e+02 1.06940044e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill +5.42963650e+03 !particle radius in m +-5.21396669e+05 9.14782087e+06 -7.71915905e+03 ! x y z +-2.15141308e+03 -1.66257020e+02 2.07412147e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill +1.27728576e+04 !particle radius in m +-3.61884147e+05 9.58012066e+06 -6.32163221e+04 ! x y z +-2.11988696e+03 -7.34599885e+01 -6.66237019e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill +1.25591089e+04 !particle radius in m +-1.53596824e+07 6.40708086e+06 -1.04989342e+05 ! x y z +-6.14876376e+02 -1.48301382e+03 1.26290046e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill +1.09785515e+04 !particle radius in m +-6.50197885e+06 -1.10181249e+07 -6.62877770e+04 ! x y z +1.58080387e+03 -9.02970180e+02 -1.68313909e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill +8.81164464e+03 !particle radius in m +9.75396219e+06 -9.13807405e+05 -7.87078491e+04 ! x y z +2.02298152e+02 2.08890085e+03 -1.56193445e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill +6.34730173e+03 !particle radius in m +1.22059111e+07 -4.11569584e+06 4.51136993e+04 ! x y z +6.18155979e+02 1.71784899e+03 -1.45608490e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill +8.22504486e+03 !particle radius in m +-1.39589249e+07 4.22706952e+06 1.42629172e+04 ! x y z +-4.79490807e+02 -1.64034272e+03 -9.80150049e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill +8.68255953e+03 !particle radius in m +-8.72337367e+06 7.89855612e+06 -1.46432428e+04 ! x y z +-1.27359213e+03 -1.41072675e+03 -9.09643338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill +6.55170538e+03 !particle radius in m +-5.98689124e+06 -1.08278571e+07 -7.13966053e+04 ! x y z +1.61204187e+03 -9.04138146e+02 6.38760222e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill +6.76452340e+03 !particle radius in m +-1.07210273e+07 4.87007409e+06 5.61861647e+04 ! x y z +-7.65098099e+02 -1.73800332e+03 -1.14385352e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill +8.51193471e+03 !particle radius in m +2.68858721e+06 -1.40830147e+07 -6.98869515e+04 ! x y z +1.69547510e+03 3.28640998e+02 9.31981924e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill +1.29562429e+04 !particle radius in m +-1.30260417e+07 3.41761257e+06 -7.30560375e+04 ! x y z +-4.58021484e+02 -1.72002575e+03 5.01502204e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill +1.19720742e+04 !particle radius in m +-4.79303948e+06 8.20836672e+06 6.12546656e+03 ! x y z +-1.84411142e+03 -1.07059828e+03 4.85115120e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill +1.10248119e+04 !particle radius in m +7.16020189e+06 -5.20913143e+06 7.41222240e+04 ! x y z +1.31083472e+03 1.77863703e+03 -1.14709109e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill +5.80902907e+03 !particle radius in m +8.99285148e+05 9.31741571e+06 -4.43761911e+04 ! x y z +-2.12986907e+03 1.90203427e+02 1.15661198e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill +1.20390163e+04 !particle radius in m +1.03624859e+07 4.00217371e+06 -3.33921276e+04 ! x y z +-7.29889411e+02 1.83209523e+03 -3.12704990e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill +1.05735757e+04 !particle radius in m +9.54531799e+06 -3.82777787e+06 -3.08506232e+03 ! x y z +7.65760228e+02 1.88710727e+03 1.54248284e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill +6.19228768e+03 !particle radius in m +-1.26508821e+07 -4.96817255e+06 -7.46581466e+04 ! x y z +6.38137580e+02 -1.65998064e+03 -1.05229703e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill +7.10814791e+03 !particle radius in m +6.65714202e+06 8.41817806e+06 5.11373555e+04 ! x y z +-1.58896209e+03 1.22956179e+03 -1.67191084e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill +8.69325608e+03 !particle radius in m +-1.30432977e+07 2.41169295e+06 9.46191119e+04 ! x y z +-3.33638402e+02 -1.76051970e+03 1.16209842e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill +3.75974028e+03 !particle radius in m +1.62111278e+07 2.59399704e+06 1.61282577e+05 ! x y z +-2.71405873e+02 1.59773598e+03 -5.81005218e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill +7.38892108e+03 !particle radius in m +2.06345127e+06 9.22023526e+06 -7.22571528e+03 ! x y z +-2.09005362e+03 4.30799852e+02 -1.90823955e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill +9.19272993e+03 !particle radius in m +-1.13721993e+07 -1.13987875e+07 8.83921800e+04 ! x y z +1.16224359e+03 -1.15160239e+03 -1.45306478e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill +1.16650334e+04 !particle radius in m +2.77942362e+06 -9.01437717e+06 -5.67717467e+04 ! x y z +2.03984238e+03 6.54242641e+02 1.85000009e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill +9.29804930e+03 !particle radius in m +-1.18629177e+07 -4.45829589e+05 7.85442143e+04 ! x y z +1.01652144e+02 -1.91537773e+03 4.05611152e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill +1.18263271e+04 !particle radius in m +8.95238380e+06 6.51302794e+06 3.45161345e+04 ! x y z +-1.14800130e+03 1.59335172e+03 -7.03295250e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill +5.75041368e+03 !particle radius in m +6.69475580e+06 -9.28551107e+06 -4.91541805e+04 ! x y z +1.59233658e+03 1.14243210e+03 1.78210731e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill +1.20518923e+04 !particle radius in m +1.12760016e+07 1.84611316e+06 -7.48490699e+04 ! x y z +-2.79591330e+02 1.91267253e+03 -1.78025369e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill +9.68470759e+03 !particle radius in m +-6.71328804e+03 9.68278345e+06 -5.52334404e+04 ! x y z +-2.08432418e+03 -8.54871802e+00 1.66064441e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill +4.70574813e+03 !particle radius in m +-6.96627774e+06 9.23026738e+06 -2.87240918e+04 ! x y z +-1.52286258e+03 -1.17748048e+03 -3.95814303e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill +4.67812785e+03 !particle radius in m +1.23905483e+05 -1.09739869e+07 1.36396267e+04 ! x y z +1.98817193e+03 2.04705438e+01 -2.01972620e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill +6.51530333e+03 !particle radius in m +-6.63943360e+06 7.91940404e+06 6.09014325e+04 ! x y z +-1.56332740e+03 -1.31647658e+03 2.73931815e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill +1.08866518e+04 !particle radius in m +5.51288052e+06 -8.48543006e+06 3.44011201e+04 ! x y z +1.72675322e+03 1.14606699e+03 -1.64108886e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill +7.57891828e+03 !particle radius in m +-6.54081328e+06 -9.90968551e+06 -8.75124119e+02 ! x y z +1.59735811e+03 -1.02533687e+03 2.87435690e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill +5.44560895e+03 !particle radius in m +-6.45935547e+06 -6.74639603e+06 -1.43260248e+04 ! x y z +1.55668948e+03 -1.48434496e+03 1.71287847e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill +5.10514110e+03 !particle radius in m +6.10089271e+06 -7.18245737e+06 -1.54248190e+04 ! x y z +1.63416125e+03 1.39276630e+03 2.48510957e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill +5.36280409e+03 !particle radius in m +4.82602306e+06 -8.03439545e+06 -7.67679872e+02 ! x y z +1.85073484e+03 1.06188550e+03 8.12750484e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill +1.15239690e+04 !particle radius in m +4.44437862e+06 -9.91763988e+06 4.31307866e+04 ! x y z +1.80875755e+03 8.27020553e+02 -1.01329362e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill +1.25055498e+04 !particle radius in m +-1.14222033e+07 -6.06408313e+06 4.03399165e+03 ! x y z +8.56095542e+02 -1.61207885e+03 -3.63239850e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill +6.21936950e+03 !particle radius in m +7.76499151e+06 5.91861320e+06 3.34591110e+04 ! x y z +-1.26430519e+03 1.67125233e+03 9.81409163e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill +6.76191251e+03 !particle radius in m +6.41969262e+05 9.07081567e+06 -7.35294633e+03 ! x y z +-2.17769789e+03 1.33895254e+02 1.52672754e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill +3.91378509e+03 !particle radius in m +-1.06528591e+07 8.93880305e+06 -5.72463584e+04 ! x y z +-1.12548728e+03 -1.34323474e+03 6.06469294e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill +7.48444340e+03 !particle radius in m +-3.19955637e+06 2.16099834e+07 -4.14759774e+03 ! x y z +-1.38306232e+03 -1.85981613e+02 8.81754791e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill +6.88290450e+03 !particle radius in m +-1.10508713e+07 7.71301153e+06 -1.18282672e+05 ! x y z +-1.00552378e+03 -1.48763887e+03 9.37513940e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill +8.01051874e+03 !particle radius in m +-6.84568402e+06 6.93126559e+06 -8.44628949e+04 ! x y z +-1.48797188e+03 -1.48762515e+03 1.55236862e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill +1.12177675e+04 !particle radius in m +-4.99810043e+06 1.03574496e+07 4.97035769e+03 ! x y z +-1.74218913e+03 -8.42934517e+02 -8.95086256e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill +1.23130257e+04 !particle radius in m +-5.22893040e+06 -8.08300727e+06 -6.54096012e+04 ! x y z +1.73636332e+03 -1.16550147e+03 -7.26670162e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill +9.61558846e+03 !particle radius in m +8.48788962e+06 5.61313541e+06 -3.97847978e+04 ! x y z +-1.16430859e+03 1.69033461e+03 -1.63966122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill +6.71734597e+03 !particle radius in m +-8.10346206e+06 8.11251976e+06 -2.39530194e+04 ! x y z +-1.39528138e+03 -1.34141849e+03 -1.46583663e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill +9.18590040e+03 !particle radius in m +1.01379295e+07 1.27148009e+07 1.28683748e+05 ! x y z +-1.25755832e+03 1.02459820e+03 2.79221586e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill +4.34121509e+03 !particle radius in m +-3.34906408e+06 -1.45007656e+07 3.06724892e+04 ! x y z +1.65986723e+03 -3.87189481e+02 -1.20093781e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill +7.35249155e+03 !particle radius in m +9.72284422e+06 5.24694587e+05 -2.03401805e+04 ! x y z +-1.64711568e+02 2.09599540e+03 2.03343245e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill +1.24155280e+04 !particle radius in m +8.48073237e+06 4.51058486e+06 2.53523368e+04 ! x y z +-9.87084405e+02 1.87149600e+03 2.30788388e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill +5.50275953e+03 !particle radius in m +6.45455163e+06 -7.63351792e+06 -1.42285814e+05 ! x y z +1.59381455e+03 1.33155701e+03 -4.40247600e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill +6.51937434e+03 !particle radius in m +-8.78159278e+06 5.76426176e+06 9.09624378e+04 ! x y z +-1.08134022e+03 -1.71795196e+03 -8.73857909e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill +6.21567016e+03 !particle radius in m +9.52925894e+06 6.10621713e+06 8.38784066e+04 ! x y z +-1.05186401e+03 1.64327133e+03 8.87777455e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill +8.89237350e+03 !particle radius in m +1.01892854e+07 -1.36265120e+06 -1.12357324e+04 ! x y z +2.44094973e+02 2.01912416e+03 -1.23871747e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill +1.22676172e+04 !particle radius in m +-9.44952303e+06 6.64794032e+05 2.66575883e+04 ! x y z +-1.65527486e+02 -2.12001832e+03 -2.00449290e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill +5.92221816e+03 !particle radius in m +1.83154773e+05 -1.22553647e+07 8.81712635e+04 ! x y z +1.88138741e+03 4.37026901e+01 -1.09775010e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill +1.05931042e+04 !particle radius in m +-7.97487196e+06 -9.77747428e+06 2.72278643e+04 ! x y z +1.43311159e+03 -1.15357841e+03 -9.89419786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill +1.20876047e+04 !particle radius in m +1.94057310e+06 1.10640858e+07 -6.67098464e+04 ! x y z +-1.92090005e+03 3.39961177e+02 9.93411747e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill +9.86315310e+03 !particle radius in m +-4.65532155e+06 1.00459520e+07 1.92148265e+04 ! x y z +-1.79352379e+03 -7.96705869e+02 7.04140623e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill +5.60495536e+03 !particle radius in m +-7.15394211e+06 8.89862789e+06 -1.32380207e+04 ! x y z +-1.51757568e+03 -1.20615223e+03 1.35463888e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill +4.23356519e+03 !particle radius in m +-9.43261369e+06 7.11601450e+06 5.44346690e+03 ! x y z +-1.15890933e+03 -1.51651908e+03 -4.86353449e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill +7.16866817e+03 !particle radius in m +4.46987922e+06 -7.54136153e+06 -1.75706858e+03 ! x y z +1.91337212e+03 1.12893149e+03 -4.46774330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill +4.90246515e+03 !particle radius in m +-1.19950136e+07 8.16218853e+05 1.95819347e+04 ! x y z +-1.42817655e+02 -1.87495301e+03 1.71449405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill +9.70236728e+03 !particle radius in m +-7.49210830e+06 -1.17675041e+07 3.09999690e+03 ! x y z +1.49945194e+03 -9.16839153e+02 1.04827746e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill +7.89739710e+03 !particle radius in m +1.05050579e+07 -3.74118158e+06 2.63300605e+04 ! x y z +6.73610054e+02 1.82488852e+03 9.07423039e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill +1.03228429e+04 !particle radius in m +4.89752221e+06 -8.85494139e+06 -6.75229080e+04 ! x y z +1.83164749e+03 9.48103081e+02 -1.57990456e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill +4.82114680e+03 !particle radius in m +-4.94662921e+06 -8.78447645e+06 -1.52590989e+04 ! x y z +1.78359269e+03 -1.02161338e+03 3.01217587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill +8.51914826e+03 !particle radius in m +-2.76648508e+06 1.00209975e+07 1.12220539e+04 ! x y z +-1.94324711e+03 -5.66151040e+02 8.07071042e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill +1.24634921e+04 !particle radius in m +8.29729830e+05 -9.56636031e+06 7.03935010e+04 ! x y z +2.11653601e+03 1.88209489e+02 4.94852919e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill +3.80446929e+03 !particle radius in m +-9.93606780e+06 -1.91150532e+06 -4.47495052e+04 ! x y z +3.80453971e+02 -2.01867650e+03 -1.85403349e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill +3.89556870e+03 !particle radius in m +-8.01896356e+06 1.37141963e+07 -5.15166167e+03 ! x y z +-1.39036186e+03 -8.35965747e+02 -1.59320152e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill +5.72363723e+03 !particle radius in m +-1.85002148e+06 -8.80679540e+06 1.35544509e+04 ! x y z +2.13508260e+03 -4.62001715e+02 -1.42665412e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill +4.75733808e+03 !particle radius in m +4.27594078e+06 -2.26843001e+07 -1.55793996e+05 ! x y z +1.32907578e+03 2.52657022e+02 -1.02801831e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill +8.12492435e+03 !particle radius in m +-5.68991814e+06 -1.12264560e+07 -5.21915423e+04 ! x y z +1.65234255e+03 -8.32199277e+02 -1.84232859e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill +9.27317292e+03 !particle radius in m +5.57078844e+06 -1.29122392e+07 2.98061387e+04 ! x y z +1.60978124e+03 6.76666256e+02 -1.81556760e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill +1.20657022e+04 !particle radius in m +-9.23646620e+06 -3.48333300e+06 -5.66153126e+04 ! x y z +7.62840282e+02 -1.92758119e+03 -1.42885719e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill +4.77169909e+03 !particle radius in m +-1.33386904e+07 -7.03492878e+06 5.22429887e+04 ! x y z +7.86090473e+02 -1.49627525e+03 -5.64598667e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill +4.40136307e+03 !particle radius in m +-4.47610210e+06 -7.77281547e+06 -5.58878589e+04 ! x y z +1.89664270e+03 -1.07211196e+03 -5.72288054e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill +8.44186160e+03 !particle radius in m +-9.07004249e+06 -3.73002016e+06 4.79325609e+04 ! x y z +7.83046085e+02 -1.94541887e+03 -4.25596103e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill +1.17916085e+04 !particle radius in m +4.77535808e+06 2.28272957e+07 -1.30485185e+05 ! x y z +-1.33059311e+03 2.72226813e+02 1.17199136e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill +9.56876735e+03 !particle radius in m +-6.57222396e+06 -6.18414714e+06 5.03770860e+03 ! x y z +1.49882331e+03 -1.57253167e+03 6.35917239e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill +1.00365688e+04 !particle radius in m +1.29779524e+07 -6.46401216e+06 3.48941370e+04 ! x y z +7.80281531e+02 1.52896125e+03 1.61899666e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill +1.08721841e+04 !particle radius in m +8.92019709e+06 1.13125647e+07 2.46536424e+04 ! x y z +-1.35073430e+03 1.07341543e+03 -2.21311295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill +6.20328692e+03 !particle radius in m +1.07245478e+07 -8.18329560e+06 2.13161879e+04 ! x y z +1.05166921e+03 1.44439805e+03 3.54109421e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill +1.29798746e+04 !particle radius in m +-9.30550358e+06 8.66046042e+05 5.81017139e+04 ! x y z +-2.29894248e+02 -2.12058022e+03 1.24228458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill +1.16779401e+04 !particle radius in m +7.60186730e+06 8.86968517e+06 -2.74017031e+04 ! x y z +-1.43991356e+03 1.26760065e+03 4.33685357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill +1.17455396e+04 !particle radius in m +7.15301504e+06 -1.14025302e+07 6.70488022e+04 ! x y z +1.51419253e+03 9.18252451e+02 1.10269853e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill +7.49470061e+03 !particle radius in m +1.23698701e+06 9.47565448e+06 3.23875154e+04 ! x y z +-2.10148424e+03 2.50074394e+02 -1.91619258e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill +1.17682821e+04 !particle radius in m +-2.19991014e+06 -1.20488900e+07 1.28489104e+05 ! x y z +1.85062965e+03 -3.21678958e+02 -6.16390717e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill +8.96400751e+03 !particle radius in m +-9.49865812e+06 -3.70460583e+06 1.09215654e+05 ! x y z +7.34938455e+02 -1.90450100e+03 -1.30332251e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill +1.09312475e+04 !particle radius in m +1.16226476e+07 1.38150369e+06 -1.92583058e+04 ! x y z +-2.26381104e+02 1.88932307e+03 9.55895676e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill +1.03367318e+04 !particle radius in m +2.15229887e+06 9.00160460e+06 -1.92923892e+04 ! x y z +-2.09656754e+03 4.96075668e+02 -1.16719539e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill +9.04899661e+03 !particle radius in m +1.06770435e+06 1.09358139e+07 4.20062155e+03 ! x y z +-1.96462815e+03 1.83747788e+02 1.48559298e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill +6.41462061e+03 !particle radius in m +-6.42789916e+06 -5.88137546e+06 5.96791682e+04 ! x y z +1.50006484e+03 -1.65201659e+03 -1.22137321e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill +7.74973359e+03 !particle radius in m +-6.05164524e+06 -8.28607289e+06 -1.65389595e+03 ! x y z +1.67689384e+03 -1.17484360e+03 -6.18688546e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill +9.34847201e+03 !particle radius in m +1.21489394e+07 1.95514302e+06 1.23709104e+05 ! x y z +-3.04295890e+02 1.85437159e+03 3.05804994e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill +9.23516856e+03 !particle radius in m +7.58308846e+06 8.14384020e+06 6.98191668e+04 ! x y z +-1.44939292e+03 1.32522723e+03 3.40820153e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill +8.37521886e+03 !particle radius in m +2.35699353e+06 8.90977821e+06 -1.38321436e+04 ! x y z +-2.07425100e+03 5.54407039e+02 3.21999470e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill +9.56158017e+03 !particle radius in m +-6.64360612e+06 -9.33976004e+06 -1.15941594e+05 ! x y z +1.59144044e+03 -1.09353179e+03 -2.96304740e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill +4.59864210e+03 !particle radius in m +1.19168220e+07 -3.45563255e+06 1.11394399e+04 ! x y z +5.17861579e+02 1.76812064e+03 1.39033798e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill +3.98028346e+03 !particle radius in m +-9.71007247e+06 7.35807090e+06 -1.31989891e+05 ! x y z +-1.16325288e+03 -1.47233955e+03 8.07759554e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill +1.21124859e+04 !particle radius in m +1.41799542e+06 -9.13902699e+06 4.24742676e+04 ! x y z +2.10898023e+03 3.21322532e+02 -1.26636042e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill +8.98485858e+03 !particle radius in m +-1.08957227e+07 -1.70176619e+07 1.40648070e+05 ! x y z +1.21605254e+03 -8.04289078e+02 5.08636985e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill +1.16900526e+04 !particle radius in m +-5.98329541e+06 8.30801044e+06 9.09812707e+03 ! x y z +-1.64846384e+03 -1.22236838e+03 2.54695878e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill +8.45138479e+03 !particle radius in m +-4.65472167e+06 -7.85395586e+06 -5.30698954e+03 ! x y z +1.85738188e+03 -1.11675155e+03 9.77147330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill +1.04153730e+04 !particle radius in m +1.69188525e+07 8.47840581e+06 -4.67327616e+04 ! x y z +-6.66379185e+02 1.35677843e+03 1.32594121e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill +1.12810669e+04 !particle radius in m +-7.04671066e+06 7.15586671e+06 -3.56479637e+04 ! x y z +-1.47400909e+03 -1.45932821e+03 -9.67794404e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill +6.72689473e+03 !particle radius in m +7.33791533e+06 -9.58517692e+06 3.03846079e+04 ! x y z +1.49051721e+03 1.17984608e+03 -1.97955637e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill +4.42153023e+03 !particle radius in m +1.21152578e+07 2.07326034e+05 4.57151931e+03 ! x y z +-2.18290977e+01 1.86989325e+03 -1.30418260e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill +1.02802232e+04 !particle radius in m +-1.78690734e+06 9.20811486e+06 6.52613267e+03 ! x y z +-2.08865445e+03 -3.88689300e+02 7.21544338e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill +5.50911894e+03 !particle radius in m +-6.29895686e+06 8.71900726e+06 -7.33711540e+03 ! x y z +-1.63469757e+03 -1.16304985e+03 4.84189753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill +1.25910224e+04 !particle radius in m +9.10086700e+06 -7.03219894e+06 -7.28785098e+04 ! x y z +1.17345937e+03 1.50811083e+03 -6.68343594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill +7.83571609e+03 !particle radius in m +-4.28807654e+06 -7.85915508e+06 2.65183664e+04 ! x y z +1.92700749e+03 -1.07363344e+03 6.86417879e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill +6.08850399e+03 !particle radius in m +6.47343353e+06 8.23566063e+06 3.01013545e+04 ! x y z +-1.59000120e+03 1.26250583e+03 -1.25792680e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill +1.24257689e+04 !particle radius in m +-8.70674127e+06 -2.94645030e+06 -2.92623754e+04 ! x y z +7.11914106e+02 -2.04951615e+03 1.66637378e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill +1.07981562e+04 !particle radius in m +-1.75476786e+07 -1.12768402e+07 1.80639637e+05 ! x y z +7.59106783e+02 -1.22286396e+03 1.20937631e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill +1.27803239e+04 !particle radius in m +7.04696388e+06 -1.10885823e+07 -6.17953039e+04 ! x y z +1.50498521e+03 9.91641405e+02 -4.14259212e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill +6.26842061e+03 !particle radius in m +9.08053413e+06 1.73092917e+06 9.84209268e+03 ! x y z +-4.33130368e+02 2.10086011e+03 -1.06621334e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill +1.20378926e+04 !particle radius in m +-3.00902975e+06 -1.32946373e+07 -5.90702502e+03 ! x y z +1.71319262e+03 -4.00878759e+02 -9.96066412e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill +7.48414588e+03 !particle radius in m +-4.04201967e+06 -8.29248316e+06 -4.12753129e+03 ! x y z +1.92318448e+03 -9.71522928e+02 1.76717922e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill +7.72799953e+03 !particle radius in m +1.75193620e+07 -2.65169374e+06 1.13236551e+05 ! x y z +2.30440171e+02 1.53861792e+03 6.99701915e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill +9.98153536e+03 !particle radius in m +3.43641275e+06 -8.93033322e+06 -2.09644587e+04 ! x y z +1.99449709e+03 7.67681042e+02 -1.69978122e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill +6.52068720e+03 !particle radius in m +-8.94110733e+06 -6.35904272e+06 -5.39789507e+04 ! x y z +1.10919784e+03 -1.62340625e+03 -3.28674782e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill +5.81525514e+03 !particle radius in m +-1.30741810e+07 8.57418735e+06 -1.19905050e+03 ! x y z +-9.25024677e+02 -1.37017223e+03 4.97519787e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill +1.29022874e+04 !particle radius in m +-2.54473466e+06 1.02641366e+07 -6.03109093e+04 ! x y z +-1.94287173e+03 -5.03549968e+02 -1.40714774e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill +3.75520420e+03 !particle radius in m +-2.05229123e+06 1.07524321e+07 -3.91281600e+04 ! x y z +-1.94369561e+03 -3.72923016e+02 -4.66840760e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill +8.49458734e+03 !particle radius in m +9.81310678e+06 -6.45686284e+06 -8.14126007e+04 ! x y z +1.04337462e+03 1.60488987e+03 -6.74659876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill +1.19130613e+04 !particle radius in m +6.87800371e+06 5.51073017e+06 -5.46411638e+04 ! x y z +-1.36034802e+03 1.74332100e+03 4.94690697e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill +6.07042423e+03 !particle radius in m +-1.07553881e+07 -9.12112446e+05 -4.34386235e+04 ! x y z +1.54461489e+02 -1.98147483e+03 -1.70607618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill +4.61293151e+03 !particle radius in m +1.27377380e+07 -1.09778054e+05 -6.19904167e+04 ! x y z +-1.25732694e+00 1.84331966e+03 -2.21143255e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill +1.04833644e+04 !particle radius in m +-5.13284511e+05 -1.67637883e+07 -2.82433912e+03 ! x y z +1.59521599e+03 -5.35780376e+01 1.00615428e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill +4.48908069e+03 !particle radius in m +-1.26602775e+07 4.02918646e+05 1.71412707e+04 ! x y z +-5.95275114e+01 -1.83478145e+03 -6.71275300e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill +6.14880277e+03 !particle radius in m +6.61475732e+05 1.19251089e+07 4.99716805e+03 ! x y z +-1.89472956e+03 8.25618952e+01 -1.61809802e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill +3.82885081e+03 !particle radius in m +8.80868758e+06 9.32656348e+05 -4.18862348e+04 ! x y z +-2.17867324e+02 2.19123384e+03 -1.17898705e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill +5.19573642e+03 !particle radius in m +1.00480766e+07 1.10334466e+05 4.24190753e+04 ! x y z +-1.56774101e+01 2.05584808e+03 1.80904032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill +5.90842447e+03 !particle radius in m +-2.68410660e+06 -8.45093049e+06 -2.25369168e+04 ! x y z +2.08071561e+03 -7.11201230e+02 1.07896227e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill +7.70557245e+03 !particle radius in m +-2.49395661e+06 -1.01785537e+07 4.67622537e+04 ! x y z +1.97783372e+03 -4.46467141e+02 1.43639227e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill +1.14515690e+04 !particle radius in m +-5.37771504e+06 7.44714074e+06 -6.06003060e+03 ! x y z +-1.75372901e+03 -1.25777673e+03 1.33051245e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill +7.93728841e+03 !particle radius in m +1.43736621e+07 3.27074646e+06 -1.17711231e+05 ! x y z +-3.95229369e+02 1.65048180e+03 -2.09427051e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill +9.36932395e+03 !particle radius in m +-8.93375487e+06 -9.23297021e+05 -5.56404103e+04 ! x y z +2.58345498e+02 -2.18331951e+03 -1.86368551e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill +9.07144821e+03 !particle radius in m +-1.28280097e+07 8.91411489e+06 -1.59387089e+04 ! x y z +-9.55988990e+02 -1.37339914e+03 -9.51566283e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill +9.91610503e+03 !particle radius in m +-1.22031914e+07 8.75617467e+06 1.35904643e+05 ! x y z +-1.01713019e+03 -1.34842008e+03 -1.53941683e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill +7.60958719e+03 !particle radius in m +-1.81887078e+05 1.09247030e+07 -4.35726533e+04 ! x y z +-1.97588122e+03 -8.11807516e+00 -3.92064501e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill +4.74157034e+03 !particle radius in m +2.83878155e+06 1.44744864e+07 5.43842125e+04 ! x y z +-1.65421841e+03 3.29251794e+02 -6.23680908e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill +8.45889329e+03 !particle radius in m +1.06135506e+07 -4.48083559e+05 1.72504569e+04 ! x y z +9.44982902e+01 2.00633631e+03 9.90801265e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill +1.07608492e+04 !particle radius in m +8.75139394e+06 -2.04107097e+07 -1.06034326e+05 ! x y z +1.29371288e+03 5.52007802e+02 5.05180489e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill +6.96494702e+03 !particle radius in m +1.42098400e+07 1.83559068e+06 -6.61680518e+04 ! x y z +-2.13356829e+02 1.72148688e+03 1.01500659e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill +8.53818219e+03 !particle radius in m +1.55907651e+07 5.91768331e+06 -8.22551540e+04 ! x y z +-5.54998648e+02 1.51448714e+03 -1.24785663e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill +9.64323129e+03 !particle radius in m +7.38866883e+06 1.67469371e+07 -5.52080317e+04 ! x y z +-1.39370270e+03 6.17614086e+02 4.21088917e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill +9.69401392e+03 !particle radius in m +-5.32551208e+06 -7.90474847e+06 -3.86152280e+04 ! x y z +1.76379265e+03 -1.19032254e+03 1.04687204e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill +8.64149686e+03 !particle radius in m +1.09164841e+07 -7.03739746e+06 2.56807871e+04 ! x y z +9.98839941e+02 1.51559226e+03 -2.93169292e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill +1.08320270e+04 !particle radius in m +-6.83243259e+06 -5.66828831e+06 -1.72900877e+04 ! x y z +1.43365173e+03 -1.68974702e+03 2.09850405e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill +7.82246015e+03 !particle radius in m +6.82803774e+06 -5.76411607e+06 5.47258325e+04 ! x y z +1.40722674e+03 1.66603602e+03 1.74552894e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill +6.65894479e+03 !particle radius in m +9.35446321e+06 4.27959887e+06 1.44633990e+04 ! x y z +-8.44145057e+02 1.86728709e+03 8.45220846e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill +9.04919131e+03 !particle radius in m +-8.81635825e+06 6.95372208e+06 5.99171831e+04 ! x y z +-1.18658772e+03 -1.54806956e+03 -4.34306118e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill +9.36295974e+03 !particle radius in m +3.76533406e+06 -1.36831259e+07 -4.52559471e+04 ! x y z +1.65006231e+03 5.02310012e+02 -7.82371716e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill +8.43279516e+03 !particle radius in m +8.66363031e+06 -3.01551364e+06 1.87644792e+04 ! x y z +6.94997160e+02 2.04127247e+03 4.50266436e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill +1.26327938e+04 !particle radius in m +-1.81171981e+06 1.18614317e+07 -9.45077050e+04 ! x y z +-1.85854649e+03 -2.65883958e+02 1.03797168e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill +1.27711174e+04 !particle radius in m +-5.75108647e+06 -9.00212328e+06 2.40243267e+04 ! x y z +1.69440892e+03 -1.07016945e+03 -1.54605015e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill +7.77084017e+03 !particle radius in m +1.89490021e+06 8.84022962e+06 2.80656936e+04 ! x y z +-2.12712367e+03 4.54322162e+02 -6.09085901e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill +7.50283352e+03 !particle radius in m +-2.84338801e+06 -8.43577004e+06 -3.58252007e+04 ! x y z +2.07616764e+03 -6.90414631e+02 7.86561001e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill +1.03379039e+04 !particle radius in m +7.23228604e+06 8.21987628e+06 -1.12362711e+05 ! x y z +-1.50075767e+03 1.29503859e+03 -4.22019044e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill +1.21350477e+04 !particle radius in m +9.59011374e+06 -1.47240572e+06 -1.17481033e+04 ! x y z +3.06970553e+02 2.09485379e+03 2.11775305e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill +4.53610253e+03 !particle radius in m +1.68353028e+07 -5.98357187e+06 1.37705248e+04 ! x y z +4.97655007e+02 1.46172367e+03 -1.17361347e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill +9.63170656e+03 !particle radius in m +-1.80713745e+07 3.81143072e+06 1.47991860e+05 ! x y z +-3.34463620e+02 -1.47042095e+03 -2.39441838e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill +1.30247028e+04 !particle radius in m +8.12437675e+06 -7.89692091e+06 8.58861149e+04 ! x y z +1.36700546e+03 1.38057019e+03 -5.74921289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill +5.43842039e+03 !particle radius in m +6.94978876e+06 -5.59183335e+06 2.41251511e+04 ! x y z +1.34132445e+03 1.72532099e+03 1.12041963e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill +6.59671726e+03 !particle radius in m +-1.18687337e+07 -8.19186254e+06 -8.44898067e+04 ! x y z +9.75684146e+02 -1.41995661e+03 -1.13753956e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill +1.23341623e+04 !particle radius in m +-1.89628928e+06 -9.50227023e+06 -4.05755726e+04 ! x y z +2.07857991e+03 -4.30149853e+02 -4.45053647e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill +6.80723430e+03 !particle radius in m +1.01428084e+07 1.53976563e+06 -1.56033963e+05 ! x y z +-3.05629291e+02 2.00359721e+03 3.06409701e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill +7.05013076e+03 !particle radius in m +3.99603404e+06 7.86593577e+06 5.11268274e+04 ! x y z +-1.97467205e+03 9.78734350e+02 8.42153677e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill +8.61895511e+03 !particle radius in m +6.54388805e+06 -6.77023287e+06 -4.59748352e+03 ! x y z +1.54444266e+03 1.46455300e+03 -1.04095061e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill +7.06396397e+03 !particle radius in m +6.04468294e+06 8.82617315e+06 -1.42181890e+05 ! x y z +-1.63233809e+03 1.16910466e+03 -1.88213215e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill +9.70947993e+03 !particle radius in m +-1.11170150e+07 6.16749342e+06 -3.82809291e+04 ! x y z +-8.98686306e+02 -1.59525493e+03 2.55769594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill +1.25718686e+04 !particle radius in m +1.25437094e+06 -1.67969561e+07 -1.36312584e+04 ! x y z +1.58470452e+03 1.21111055e+02 3.59330822e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill +8.05778982e+03 !particle radius in m +8.43800086e+06 5.71987949e+06 -3.20922412e+04 ! x y z +-1.14330692e+03 1.67937737e+03 -4.35374922e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill +6.21936681e+03 !particle radius in m +-8.36235204e+06 -4.06735446e+06 1.77837069e+04 ! x y z +9.27393629e+02 -1.94041308e+03 2.61389295e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill +1.02373037e+04 !particle radius in m +-2.57151201e+06 -1.54968676e+07 -9.11168853e+04 ! x y z +1.63776183e+03 -2.76257315e+02 2.80266971e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill +8.30015495e+03 !particle radius in m +8.66211969e+06 2.20644842e+06 5.69512514e+03 ! x y z +-5.34166852e+02 2.11025355e+03 7.04563819e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill +1.24143522e+04 !particle radius in m +2.50735051e+06 -9.08802531e+06 1.47619891e+03 ! x y z +2.03247718e+03 5.95768658e+02 -1.11711400e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill +1.10252975e+04 !particle radius in m +-5.08664524e+06 8.37497108e+06 -9.90101269e+04 ! x y z +-1.78382195e+03 -1.07772723e+03 -8.86422219e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill +6.11794676e+03 !particle radius in m +-1.16840844e+07 -1.15084512e+07 8.57597825e+04 ! x y z +1.14349612e+03 -1.15014615e+03 -1.13350767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill +9.88813712e+03 !particle radius in m +1.06943121e+06 -9.45008765e+06 3.56309722e+04 ! x y z +2.11041887e+03 2.12664792e+02 3.02388980e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill +1.08983650e+04 !particle radius in m +5.08433832e+06 -9.29067904e+06 4.27842439e+04 ! x y z +1.77269334e+03 9.63287806e+02 7.20636543e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill +1.27437222e+04 !particle radius in m +2.28470278e+06 -8.96024162e+06 4.66696872e+04 ! x y z +2.09182568e+03 5.58957357e+02 -1.60064381e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill +5.15400237e+03 !particle radius in m +5.02334401e+06 7.15122722e+06 -2.56747414e+04 ! x y z +-1.82437670e+03 1.28647622e+03 -2.33583185e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill +7.51992756e+03 !particle radius in m +8.03755250e+06 -5.51691122e+06 -2.97535232e+04 ! x y z +1.18216983e+03 1.74141617e+03 -1.17374833e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill +1.26569454e+04 !particle radius in m +-3.07464536e+06 -8.53282891e+06 -1.60914047e+04 ! x y z +2.04872286e+03 -7.58617715e+02 -1.15594518e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill +6.15739547e+03 !particle radius in m +-5.04841460e+06 7.90245442e+06 -3.74769403e+03 ! x y z +-1.79658551e+03 -1.15333901e+03 -1.03989828e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill +9.40452184e+03 !particle radius in m +-4.42483219e+06 7.92889737e+06 4.84429526e+03 ! x y z +-1.90157556e+03 -1.02851509e+03 3.04297458e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill +1.03819185e+04 !particle radius in m +-8.11772737e+06 5.17820457e+06 6.33191218e+04 ! x y z +-1.16398577e+03 -1.76329084e+03 -1.46526563e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill +1.21420799e+04 !particle radius in m +-2.42335217e+06 -1.21748818e+07 5.34958561e+04 ! x y z +1.82657196e+03 -3.58482164e+02 2.17635181e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill +9.74673448e+03 !particle radius in m +-8.93954505e+06 -4.45366726e+06 9.09497729e+03 ! x y z +9.19578118e+02 -1.84128399e+03 1.10716364e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill +7.59675917e+03 !particle radius in m +-1.18899005e+07 -1.11121035e+07 7.33607503e+03 ! x y z +1.10060063e+03 -1.20094721e+03 -1.56817575e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill +8.13412353e+03 !particle radius in m +-1.65295735e+07 6.07637672e+06 3.45373521e+04 ! x y z +-5.42846771e+02 -1.47237923e+03 2.24703732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill +7.24844729e+03 !particle radius in m +8.55996783e+06 -1.26469693e+07 -1.46558216e+05 ! x y z +1.40714271e+03 9.26431770e+02 -1.15490272e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill +1.10917006e+04 !particle radius in m +5.19156391e+06 -2.05131401e+07 3.01682271e+04 ! x y z +1.38483992e+03 3.58833296e+02 7.82967392e-02 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill +8.62523974e+03 !particle radius in m +-1.04637869e+07 -1.51846657e+06 -3.27030757e+04 ! x y z +3.09759590e+02 -1.99538112e+03 5.67233805e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill +4.97611563e+03 !particle radius in m +1.03065892e+07 -6.00329704e+05 -2.32121119e+04 ! x y z +1.34736424e+02 2.02883986e+03 3.23964316e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill +5.60741952e+03 !particle radius in m +-1.14276246e+07 -1.75001038e+06 -9.86471787e+04 ! x y z +2.92929450e+02 -1.89771028e+03 5.40774568e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill +6.34126039e+03 !particle radius in m +1.88192745e+07 7.35750851e+06 -3.59880986e+04 ! x y z +-5.35957066e+02 1.35808817e+03 -5.10111289e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill +1.01601058e+04 !particle radius in m +1.11584259e+07 -4.47796771e+06 1.03803467e+04 ! x y z +7.28310338e+02 1.76604469e+03 1.45396412e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill +6.11251206e+03 !particle radius in m +3.38442251e+06 -9.82784424e+06 -1.36230396e+05 ! x y z +1.90939863e+03 7.30865853e+02 1.53565819e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill +5.52931152e+03 !particle radius in m +-1.26252231e+07 -6.33455275e+05 -1.30864139e+05 ! x y z +9.33992929e+01 -1.83668276e+03 1.68626587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill +3.95688360e+03 !particle radius in m +-1.20379515e+07 7.22168436e+05 8.94591753e+04 ! x y z +-1.09103316e+02 -1.88101208e+03 -4.79548889e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill +5.97839539e+03 !particle radius in m +9.86523103e+06 -1.83199282e+06 -1.01434913e+05 ! x y z +3.62371838e+02 2.01111356e+03 -2.79275007e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill +6.83551180e+03 !particle radius in m +-6.51672994e+06 8.58292997e+06 -5.02195539e+04 ! x y z +-1.57720017e+03 -1.21482386e+03 -6.46438464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill +1.06723682e+04 !particle radius in m +-6.45748170e+06 -6.60771754e+06 -2.88111990e+04 ! x y z +1.51807464e+03 -1.53717383e+03 -6.96952587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill +4.01775686e+03 !particle radius in m +-1.05725448e+07 -5.16101098e+06 -7.22185112e+04 ! x y z +8.09611157e+02 -1.71812375e+03 -2.92698073e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill +4.77864994e+03 !particle radius in m +1.47903230e+07 -3.70476681e+06 8.67755187e+04 ! x y z +3.95094726e+02 1.62426955e+03 3.16826057e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill +8.07383748e+03 !particle radius in m +-4.36058679e+05 -9.44156206e+06 -4.16955929e+04 ! x y z +2.12091782e+03 -1.37012120e+02 1.39491466e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill +1.18046777e+04 !particle radius in m +-1.46392393e+07 1.63813686e+07 8.12078291e+03 ! x y z +-1.02836410e+03 -9.42723860e+02 -1.38765972e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill +9.27790681e+03 !particle radius in m +9.24634424e+06 -1.31047137e+06 -7.09194003e+04 ! x y z +3.02062155e+02 2.11565604e+03 -9.58265694e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill +1.26875944e+04 !particle radius in m +-7.40684320e+06 6.13173465e+06 -3.12795630e+04 ! x y z +-1.33749169e+03 -1.62866413e+03 1.56290098e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill +9.65761978e+03 !particle radius in m +9.78515626e+06 -5.26138525e+05 -7.59982349e+03 ! x y z +1.11181620e+02 2.08934488e+03 -1.89984631e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill +8.79721090e+03 !particle radius in m +-2.42960077e+06 1.02657010e+07 6.86680195e+04 ! x y z +-1.96613992e+03 -4.70552640e+02 -5.76191698e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill +1.29531974e+04 !particle radius in m +-2.99090493e+06 -9.38394150e+06 1.22754087e+04 ! x y z +1.96346362e+03 -6.64206351e+02 -1.04286573e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill +7.34663539e+03 !particle radius in m +-9.16858859e+06 3.17229706e+06 4.94776739e+02 ! x y z +-6.65048356e+02 -2.00655681e+03 -1.69698250e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill +4.49675212e+03 !particle radius in m +1.02698965e+07 8.30732914e+06 1.14137300e+05 ! x y z +-1.13322876e+03 1.37969911e+03 -4.16855749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill +4.62423780e+03 !particle radius in m +-6.04360154e+06 -8.98719524e+06 -6.31025271e+04 ! x y z +1.63921724e+03 -1.11262949e+03 4.86167037e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill +1.03148143e+04 !particle radius in m +-9.35912101e+06 -1.03642068e+07 -2.18384299e+03 ! x y z +1.30072422e+03 -1.17573948e+03 1.88668155e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill +1.30814562e+04 !particle radius in m +1.04675718e+07 3.39520028e+06 2.70864639e+04 ! x y z +-5.97065438e+02 1.88145152e+03 -6.95974089e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill +4.86540530e+03 !particle radius in m +-6.73236505e+06 6.13242839e+06 -2.94703322e+04 ! x y z +-1.45294617e+03 -1.61318512e+03 -5.68499388e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill +7.59556962e+03 !particle radius in m +4.89468690e+06 -1.07083932e+07 7.90151606e+04 ! x y z +1.76528528e+03 7.71676536e+02 -3.89405176e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill +1.12715321e+04 !particle radius in m +-1.37917712e+07 -7.88960798e+06 -6.85787993e+04 ! x y z +8.27177105e+02 -1.42633285e+03 -6.22498397e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill +1.18793884e+04 !particle radius in m +-7.34584547e+06 1.44613839e+07 -9.00207198e+04 ! x y z +-1.43737968e+03 -7.51623709e+02 1.07613671e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill +1.17356962e+04 !particle radius in m +-2.70350276e+05 -9.01638261e+06 4.48528244e+04 ! x y z +2.19935586e+03 -5.92167058e+01 -1.37345562e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill +1.20336065e+04 !particle radius in m +-7.93634451e+06 -1.07127629e+07 7.42071719e+04 ! x y z +1.44011604e+03 -1.07152360e+03 -9.74704513e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill +5.53448930e+03 !particle radius in m +-3.42691664e+06 -9.05425003e+06 -2.11677870e+04 ! x y z +1.93479037e+03 -7.69981245e+02 1.10419971e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill +6.64595045e+03 !particle radius in m +-9.89233738e+06 -6.27568084e+05 6.18194671e+03 ! x y z +1.37071969e+02 -2.08621493e+03 4.72062753e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill +5.93131938e+03 !particle radius in m +7.46340614e+06 9.67912332e+06 1.17459472e+04 ! x y z +-1.47885193e+03 1.13911499e+03 4.40806749e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill +1.22283672e+04 !particle radius in m +6.85478382e+06 1.15701707e+07 7.95650274e+04 ! x y z +-1.53423752e+03 9.32610677e+02 -3.67365305e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill +4.46580449e+03 !particle radius in m +-4.56370068e+06 1.10908559e+07 1.08265365e+04 ! x y z +-1.75802463e+03 -7.02357275e+02 1.04220113e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill +5.09070290e+03 !particle radius in m +-1.13385925e+07 2.97597054e+06 -4.72391617e+04 ! x y z +-5.04596574e+02 -1.84477964e+03 1.31785708e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill +1.10285723e+04 !particle radius in m +-9.23261955e+06 -2.89252814e+05 -5.44687237e+04 ! x y z +6.51671796e+01 -2.14992673e+03 -1.81624856e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill +6.13224460e+03 !particle radius in m +1.09075289e+06 1.05119561e+07 -3.25858255e+04 ! x y z +-1.99773044e+03 1.99785681e+02 4.03938771e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill +5.39522124e+03 !particle radius in m +5.52516207e+06 8.11277010e+06 -1.90841913e+04 ! x y z +-1.72426706e+03 1.18446430e+03 1.21936026e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill +9.52144317e+03 !particle radius in m +-4.65951061e+05 1.02295404e+07 5.94558150e+04 ! x y z +-2.05121750e+03 -9.71822097e+01 -1.16001667e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill +1.28507675e+04 !particle radius in m +1.19722664e+07 -1.64049398e+06 8.58821045e+04 ! x y z +2.34549789e+02 1.85980680e+03 1.09499792e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill +6.87517236e+03 !particle radius in m +-1.08162591e+06 1.14927584e+07 -9.76059282e+04 ! x y z +-1.93051044e+03 -1.62077695e+02 -7.14665732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill +1.14550311e+04 !particle radius in m +-1.95233176e+06 1.02927697e+07 -2.00724108e+04 ! x y z +-1.97843014e+03 -3.85350221e+02 1.08497627e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill +1.02022521e+04 !particle radius in m +6.15222182e+06 -9.75312655e+06 1.28837233e+04 ! x y z +1.61895964e+03 1.04728187e+03 -1.26702028e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill +3.81889352e+03 !particle radius in m +1.70431842e+07 -2.72492428e+06 -3.86028806e+04 ! x y z +2.83672553e+02 1.54910187e+03 2.07904021e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill +6.24153051e+03 !particle radius in m +8.01774299e+06 8.09902023e+06 -2.62747132e+04 ! x y z +-1.35353621e+03 1.36013542e+03 7.64569924e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill +9.14684621e+03 !particle radius in m +3.29923819e+06 8.68923966e+06 -8.36350791e+03 ! x y z +-2.01828563e+03 7.65043187e+02 -1.46373885e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill +1.21866490e+04 !particle radius in m +9.48630114e+06 1.31203942e+07 7.51325437e+04 ! x y z +-1.33995755e+03 9.53539277e+02 6.46323587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill +5.43931264e+03 !particle radius in m +9.01020062e+06 -9.02772630e+05 1.38704984e+04 ! x y z +2.41367313e+02 2.16126190e+03 7.68455544e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill +1.23597622e+04 !particle radius in m +-8.09665807e+06 -7.58547860e+06 3.14674691e+04 ! x y z +1.35669172e+03 -1.43426598e+03 7.37210686e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill +6.63452075e+03 !particle radius in m +4.28160432e+06 -1.65281080e+07 -8.26509117e+03 ! x y z +1.53190957e+03 3.88184614e+02 1.24754943e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill +8.88282855e+03 !particle radius in m +6.49256441e+05 9.31973535e+06 4.08167273e+04 ! x y z +-2.15470427e+03 1.51716056e+02 1.89189290e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill +1.19572707e+04 !particle radius in m +-9.20065102e+05 -9.43874908e+06 -2.04752392e+04 ! x y z +2.12475295e+03 -2.35100552e+02 7.76090899e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill +4.99450465e+03 !particle radius in m +4.31072822e+06 9.13284291e+06 4.14102022e+04 ! x y z +-1.85476950e+03 9.03328979e+02 -1.46829604e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill +4.68119614e+03 !particle radius in m +-6.79093976e+06 8.03119054e+06 -7.05744289e+04 ! x y z +-1.52734163e+03 -1.29554248e+03 1.30181520e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill +1.02582029e+04 !particle radius in m +-1.04804105e+07 -1.20577935e+06 3.31638534e+04 ! x y z +2.13664871e+02 -2.01046058e+03 -7.98031732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill +1.10767611e+04 !particle radius in m +-7.18067628e+06 -6.29465669e+06 -5.18935266e+04 ! x y z +1.39765048e+03 -1.60192161e+03 7.92302858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill +1.22495029e+04 !particle radius in m +-8.66772744e+06 -7.93918786e+06 3.66255031e+04 ! x y z +1.28753321e+03 -1.40570993e+03 1.04442422e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill +5.77278675e+03 !particle radius in m +-4.13157626e+06 -2.06445199e+07 1.15039089e+05 ! x y z +1.39928757e+03 -2.67584358e+02 -6.80453610e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill +1.24869874e+04 !particle radius in m +2.86527664e+04 -1.30135384e+07 9.46703562e+04 ! x y z +1.82137923e+03 3.52269823e+01 6.17347097e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill +8.27206772e+03 !particle radius in m +9.61204633e+06 2.11550317e+06 -1.01612254e+05 ! x y z +-4.54369173e+02 2.03897871e+03 -3.85711771e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill +4.77668965e+03 !particle radius in m +8.56305753e+06 3.83573915e+06 2.26223304e+04 ! x y z +-8.87660780e+02 1.95010957e+03 -6.47697797e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill +7.71689197e+03 !particle radius in m +7.06863637e+05 1.69810271e+07 1.26105980e+05 ! x y z +-1.58048060e+03 4.41879800e+01 4.04119984e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill +5.87643861e+03 !particle radius in m +-5.44027365e+06 8.90923003e+06 -1.91872642e+02 ! x y z +-1.72578284e+03 -1.05328021e+03 2.75794079e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill +7.82919405e+03 !particle radius in m +-3.84222450e+06 8.52500722e+06 5.13399679e+04 ! x y z +-1.95749070e+03 -8.88579162e+02 4.05131851e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill +6.45958637e+03 !particle radius in m +-1.04764717e+07 1.11206338e+07 -1.83995722e+05 ! x y z +-1.21578555e+03 -1.15954535e+03 1.26396174e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill +1.04808440e+04 !particle radius in m +9.91080561e+06 7.33219213e+06 -1.96182672e+04 ! x y z +-1.10289136e+03 1.51166868e+03 8.55255590e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill +4.63255599e+03 !particle radius in m +-6.34641421e+06 1.11675051e+07 -1.12534756e+05 ! x y z +-1.58363204e+03 -9.07829510e+02 -3.73545248e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill +8.31806943e+03 !particle radius in m +-9.60844812e+06 -1.70444496e+07 1.09767306e+04 ! x y z +1.30061497e+03 -7.22601223e+02 5.04626944e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill +6.70205230e+03 !particle radius in m +3.30176954e+06 8.21216858e+06 2.33957768e+04 ! x y z +-2.06647672e+03 8.14303416e+02 -3.27813568e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill +6.98637011e+03 !particle radius in m +-3.56455427e+06 1.04513814e+07 9.13561134e+04 ! x y z +-1.86227880e+03 -6.46156347e+02 -1.84370397e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill +1.22955075e+04 !particle radius in m +1.01719252e+07 6.26688339e+05 3.49609062e+04 ! x y z +-1.13334526e+02 2.03525342e+03 3.73100714e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill +1.15884099e+04 !particle radius in m +6.79475129e+06 -6.15725925e+06 -4.34005132e+04 ! x y z +1.43607392e+03 1.60794893e+03 9.89854216e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill +1.13200016e+04 !particle radius in m +3.31203426e+06 1.26977181e+07 1.61925621e+04 ! x y z +-1.75290457e+03 4.51047834e+02 -6.90112778e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill +4.85825960e+03 !particle radius in m +-5.28465980e+06 9.08656562e+06 5.60870045e+04 ! x y z +-1.73422854e+03 -1.05901334e+03 1.51078632e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill +1.03155828e+04 !particle radius in m +-4.41381530e+06 -1.31465095e+07 1.23851466e+05 ! x y z +1.64911245e+03 -5.92288633e+02 -5.00592030e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill +4.71217038e+03 !particle radius in m +1.58308263e+07 -4.73628624e+05 -2.19545030e+04 ! x y z +5.84709400e+01 1.64641342e+03 -6.62703110e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill +1.19920145e+04 !particle radius in m +9.12968341e+06 9.11733516e+04 1.78969232e+04 ! x y z +-5.65016782e+01 2.18069451e+03 -3.98571279e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill +9.93248268e+03 !particle radius in m +8.78149411e+06 -3.19216182e+06 -1.60141388e+04 ! x y z +7.37216338e+02 1.99835772e+03 -1.41820401e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill +4.85898712e+03 !particle radius in m +1.29860619e+07 -8.19871711e+06 9.27457802e+04 ! x y z +8.67118976e+02 1.40272209e+03 6.07478118e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill +8.57284899e+03 !particle radius in m +6.74596853e+06 7.83340922e+06 1.66421965e+04 ! x y z +-1.53458492e+03 1.36487940e+03 -3.08963768e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill +1.02996416e+04 !particle radius in m +9.97004957e+06 -4.03326891e+06 1.22229820e+04 ! x y z +7.36970819e+02 1.85756062e+03 1.86046036e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill +1.07775819e+04 !particle radius in m +1.48289776e+07 -3.18422896e+06 -1.95106854e+04 ! x y z +3.65562411e+02 1.64235740e+03 -1.78622262e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill +7.78250193e+03 !particle radius in m +-1.82004676e+07 -4.58264120e+06 -8.80114368e+04 ! x y z +3.67043849e+02 -1.45746561e+03 3.81482960e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill +7.70585221e+03 !particle radius in m +9.71830285e+06 -2.79239080e+06 -1.21765919e+05 ! x y z +5.86439180e+02 1.97016309e+03 1.41983570e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill +9.21105533e+03 !particle radius in m +-6.87422066e+06 -1.61812284e+07 3.33849657e+04 ! x y z +1.44453834e+03 -6.12213456e+02 5.14798988e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill +7.91069782e+03 !particle radius in m +-4.40453318e+05 -9.00359396e+06 2.55701381e+04 ! x y z +2.18504558e+03 -1.66090270e+02 -5.38264979e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill +7.17158897e+03 !particle radius in m +2.19604188e+07 6.04779191e+06 -2.54791200e+04 ! x y z +-3.65663685e+02 1.33014017e+03 -8.36197344e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill +8.95226931e+03 !particle radius in m +6.76787299e+06 -6.88896584e+06 -7.92738002e+04 ! x y z +1.51846448e+03 1.48693289e+03 -8.03074046e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill +4.42181219e+03 !particle radius in m +-6.18157795e+06 9.50909765e+06 -6.31347661e+04 ! x y z +-1.61918243e+03 -1.05906497e+03 6.51625165e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill +7.65074804e+03 !particle radius in m +1.22370591e+07 -7.52313059e+06 -3.37590788e+04 ! x y z +9.11513184e+02 1.46224236e+03 1.38515615e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill +1.21795436e+04 !particle radius in m +7.05236290e+06 -8.64870991e+06 -6.91330978e+04 ! x y z +1.52616946e+03 1.23310907e+03 1.29403411e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill +8.43083433e+03 !particle radius in m +7.80864005e+06 -4.26482545e+06 -2.18013868e+04 ! x y z +1.03496940e+03 1.94204946e+03 1.21677642e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill +7.82381744e+03 !particle radius in m +5.75136921e+06 -6.66165297e+06 -1.60013139e+04 ! x y z +1.66229394e+03 1.46936203e+03 -7.73684722e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill +6.87941995e+03 !particle radius in m +-1.22562478e+06 9.13823949e+06 -4.37327451e+04 ! x y z +-2.12169150e+03 -2.88517939e+02 -1.49392473e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill +1.30453064e+04 !particle radius in m +7.69914612e+06 -9.13021219e+06 -4.57648993e+04 ! x y z +1.43992781e+03 1.22291153e+03 -3.96856343e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill +5.45572052e+03 !particle radius in m +-1.04553344e+07 2.52527420e+06 -1.08628658e+05 ! x y z +-4.86679714e+02 -1.92107394e+03 9.45357951e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill +9.00870821e+03 !particle radius in m +1.39140966e+07 -6.41849608e+05 1.71228409e+05 ! x y z +6.24928406e+01 1.73760043e+03 1.32646652e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill +9.61198288e+03 !particle radius in m +-4.68891691e+06 -8.65727522e+06 1.38785454e+05 ! x y z +1.83563800e+03 -9.88706825e+02 -2.51608816e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill +1.30631485e+04 !particle radius in m +2.13007974e+05 9.18824852e+06 -3.80121317e+04 ! x y z +-2.12834457e+03 7.70592587e+01 -1.61308426e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill +5.90853066e+03 !particle radius in m +-1.00652683e+07 -2.07792286e+06 6.26672177e+04 ! x y z +4.27478087e+02 -2.00526834e+03 1.11714666e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill +9.50477579e+03 !particle radius in m +-9.25272310e+06 4.61553055e+05 2.28064653e+03 ! x y z +-1.21224875e+02 -2.16490532e+03 1.16467209e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill +4.31241077e+03 !particle radius in m +5.99768112e+06 7.18836176e+06 1.30862988e+04 ! x y z +-1.63913963e+03 1.36776567e+03 -1.13032580e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill +4.53858074e+03 !particle radius in m +2.69549465e+06 -2.13775506e+07 -2.70977944e+04 ! x y z +1.39480467e+03 1.95781010e+02 -1.22454588e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill +4.43620698e+03 !particle radius in m +-3.14237843e+06 -9.60218811e+06 -6.89227352e+04 ! x y z +1.95665546e+03 -6.62178945e+02 -9.36372693e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill +5.44928691e+03 !particle radius in m +3.78692528e+06 8.59540985e+06 -3.20061356e+04 ! x y z +-1.96752618e+03 8.51121277e+02 -1.51485463e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill +4.33163678e+03 !particle radius in m +-9.00146283e+06 -6.41911956e+06 6.65091457e+04 ! x y z +1.12404780e+03 -1.59135698e+03 -9.77302741e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill +4.59668490e+03 !particle radius in m +8.54824866e+06 -3.66634423e+06 -4.89483929e+04 ! x y z +8.47956516e+02 1.98291118e+03 3.60869553e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill +1.27155989e+04 !particle radius in m +1.95697614e+07 6.28199416e+06 9.65119660e+04 ! x y z +-4.43211708e+02 1.34690163e+03 -9.62234736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill +3.84628408e+03 !particle radius in m +-1.58193926e+07 -1.35536390e+07 8.45439846e+04 ! x y z +9.33923428e+02 -1.08590633e+03 1.18308309e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill +1.22978804e+04 !particle radius in m +1.57128973e+07 -6.39323202e+05 1.78188715e+04 ! x y z +6.88318620e+01 1.65105864e+03 3.96550811e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill +7.42478017e+03 !particle radius in m +4.15871481e+06 9.23348984e+06 -2.00218047e+04 ! x y z +-1.86711988e+03 8.27796037e+02 -1.71003540e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill +8.20734629e+03 !particle radius in m +1.01202151e+06 -9.34669057e+06 -3.05255233e+04 ! x y z +2.12896558e+03 2.37084406e+02 2.06490854e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill +1.30090572e+04 !particle radius in m +-1.21933337e+07 -1.85215644e+04 -9.08532291e+04 ! x y z +3.99379627e+00 -1.85775511e+03 -5.11110124e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill +1.19406098e+04 !particle radius in m +-3.43283359e+06 -8.55413032e+06 1.39837760e+04 ! x y z +2.01077915e+03 -7.56017909e+02 1.02863591e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill +1.18773237e+04 !particle radius in m +-1.54011563e+06 -1.27126780e+07 7.48528448e+04 ! x y z +1.83173381e+03 -2.00582211e+02 -5.46653115e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill +6.87480407e+03 !particle radius in m +1.51139781e+07 1.12076930e+06 -2.10697882e+04 ! x y z +-1.50737141e+02 1.67679110e+03 1.30972258e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill +7.91455193e+03 !particle radius in m +4.75991835e+06 1.10017280e+07 2.88714064e+04 ! x y z +-1.75624695e+03 7.27843788e+02 7.23217325e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill +4.72944737e+03 !particle radius in m +-7.70162983e+06 -4.41409406e+06 2.58165729e+04 ! x y z +1.05981797e+03 -1.92161597e+03 -1.53504172e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill +7.84581210e+03 !particle radius in m +8.79063205e+06 8.04366554e+06 -1.54947665e+04 ! x y z +-1.27701177e+03 1.39840130e+03 -2.40220571e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill +6.12239510e+03 !particle radius in m +8.04074117e+06 9.64104753e+06 -4.45617960e+04 ! x y z +-1.39128132e+03 1.17398843e+03 -6.62327287e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill +7.10064233e+03 !particle radius in m +-6.66261606e+06 6.71220967e+06 -3.99553759e+04 ! x y z +-1.50278601e+03 -1.49037570e+03 1.28507761e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill +5.53673908e+03 !particle radius in m +7.85675354e+06 -1.09086703e+07 6.52437187e+03 ! x y z +1.47253647e+03 1.04716710e+03 -2.78745894e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill +7.61773407e+03 !particle radius in m +1.20372202e+06 -1.12995198e+07 -7.66376724e+04 ! x y z +1.92159252e+03 2.10022167e+02 1.77035004e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill +6.31351866e+03 !particle radius in m +1.34520987e+06 -1.14199869e+07 -1.06162090e+05 ! x y z +1.91854210e+03 2.27440517e+02 -2.86612981e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill +4.47493492e+03 !particle radius in m +-7.81637690e+06 6.77408689e+06 -7.41358369e+04 ! x y z +-1.33330305e+03 -1.52276964e+03 -6.38372634e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill +1.28727553e+04 !particle radius in m +-9.27394458e+06 2.25024078e+06 5.28422677e+04 ! x y z +-5.05715454e+02 -2.06066723e+03 1.34558284e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill +3.80089688e+03 !particle radius in m +7.39246396e+06 7.02828616e+06 -5.45617263e+04 ! x y z +-1.39190312e+03 1.48134140e+03 -3.43671966e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill +7.97343121e+03 !particle radius in m +1.36549158e+07 -1.27792544e+07 5.75773322e+03 ! x y z +1.01857297e+03 1.11983894e+03 2.42317366e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill +6.07807803e+03 !particle radius in m +8.51250762e+06 3.74715124e+06 -3.66793926e+04 ! x y z +-9.06822201e+02 1.95546956e+03 -1.35124063e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill +7.54934486e+03 !particle radius in m +1.11622021e+07 6.11280266e+06 1.12048087e+05 ! x y z +-8.90669182e+02 1.59847160e+03 8.83220737e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill +8.11442267e+03 !particle radius in m +-3.59837711e+06 8.94095859e+06 9.64175823e+04 ! x y z +-1.96856779e+03 -7.62947641e+02 3.79489804e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill +9.83267321e+03 !particle radius in m +1.29422873e+06 -9.18423777e+06 1.13052561e+04 ! x y z +2.13217255e+03 3.09173468e+02 -6.46064530e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill +1.00567087e+04 !particle radius in m +7.55024995e+06 5.55902389e+06 2.47186332e+04 ! x y z +-1.28842830e+03 1.68728817e+03 -8.10804757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill +9.21408381e+03 !particle radius in m +1.88151667e+07 3.33001002e+06 3.73324839e+04 ! x y z +-2.30107887e+02 1.46487898e+03 2.65739699e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill +1.11735897e+04 !particle radius in m +5.44170973e+06 -7.58711950e+06 -1.68342575e+04 ! x y z +1.71954001e+03 1.27240084e+03 9.88806581e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill +1.06695963e+04 !particle radius in m +-8.65530733e+06 -7.08569033e+06 -2.23265845e+04 ! x y z +1.25758504e+03 -1.50248441e+03 -3.62008173e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill +1.19525480e+04 !particle radius in m +-5.77529746e+06 -7.17376952e+06 -5.18219866e+04 ! x y z +1.69375434e+03 -1.34010802e+03 -1.50223596e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill +6.04226309e+03 !particle radius in m +-1.06219205e+07 -3.45583164e+06 7.57878163e+04 ! x y z +6.00669506e+02 -1.87043192e+03 1.96458906e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill +6.87550328e+03 !particle radius in m +6.08800715e+06 7.31025693e+06 2.11892900e+04 ! x y z +-1.62733880e+03 1.34749417e+03 4.48661776e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill +6.87815602e+03 !particle radius in m +1.11973713e+07 -6.89047737e+06 8.77501535e+04 ! x y z +9.27451132e+02 1.53222806e+03 7.89688850e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill +4.09618861e+03 !particle radius in m +-7.43211722e+06 -5.81999467e+06 -9.65323707e+03 ! x y z +1.33310134e+03 -1.66490648e+03 -3.67453264e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill +1.07852562e+04 !particle radius in m +-1.08902550e+07 -5.66422797e+06 1.03662075e+04 ! x y z +8.63087680e+02 -1.66058015e+03 -2.16763143e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill +8.90430770e+03 !particle radius in m +5.12124924e+06 1.04057141e+07 -2.37917852e+04 ! x y z +-1.74067826e+03 8.20317248e+02 -1.61468664e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill +6.04914386e+03 !particle radius in m +-1.68906115e+06 -1.36100786e+07 1.12141407e+05 ! x y z +1.74322371e+03 -2.27430898e+02 1.33662045e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill +8.10517587e+03 !particle radius in m +1.55662567e+07 4.00286637e+06 -1.79247131e+05 ! x y z +-4.13259864e+02 1.59216194e+03 8.36151351e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill +1.03417203e+04 !particle radius in m +-1.88242941e+07 1.06236844e+07 -6.10248603e+04 ! x y z +-7.07744890e+02 -1.22126213e+03 4.18101860e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill +1.03781744e+04 !particle radius in m +6.54563477e+06 9.67513797e+06 -6.81578535e+04 ! x y z +-1.58341801e+03 1.07058771e+03 -6.04814628e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill +8.82174250e+03 !particle radius in m +1.04054207e+07 -4.16069278e+06 2.73610807e+04 ! x y z +7.03766909e+02 1.81842161e+03 8.81427302e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill +4.98765792e+03 !particle radius in m +3.08072328e+06 -1.16153087e+07 4.07709281e+04 ! x y z +1.83456791e+03 4.73999302e+02 7.43116200e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill +5.46929730e+03 !particle radius in m +6.34509950e+06 -8.39632633e+06 3.00680333e+04 ! x y z +1.60571507e+03 1.18326876e+03 -2.08403941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill +5.04330099e+03 !particle radius in m +1.11214656e+07 1.24533693e+06 -1.06574136e+05 ! x y z +-2.16829963e+02 1.93905765e+03 1.21579926e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill +1.13066823e+04 !particle radius in m +-8.88143306e+06 -3.59836181e+06 5.33136699e+04 ! x y z +8.14785566e+02 -1.96550951e+03 6.43084310e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill +7.00888103e+03 !particle radius in m +-8.26948189e+06 -7.55777650e+06 1.90589282e+04 ! x y z +1.31251337e+03 -1.45641325e+03 -2.75253497e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill +3.99006780e+03 !particle radius in m +-8.76369433e+06 5.12820302e+06 4.83723083e+04 ! x y z +-1.02986001e+03 -1.78262989e+03 -1.16887378e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill +1.07181325e+04 !particle radius in m +8.77351236e+06 5.86805867e+06 7.03132721e+04 ! x y z +-1.14557695e+03 1.66192575e+03 2.25245099e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill +6.45209798e+03 !particle radius in m +2.81170524e+06 9.19584888e+06 4.45600518e+04 ! x y z +-2.01744512e+03 6.24046260e+02 -9.89046691e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill +6.24242232e+03 !particle radius in m +-9.87293199e+06 -1.42461669e+06 -2.08948330e+04 ! x y z +2.77302880e+02 -2.05434640e+03 1.23835967e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill +1.13006727e+04 !particle radius in m +-3.58991165e+06 -1.30771532e+07 4.60336444e+04 ! x y z +1.69912089e+03 -4.85176809e+02 -8.42271300e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill +1.08072599e+04 !particle radius in m +-9.30543267e+06 -1.69593678e+06 7.96573126e+04 ! x y z +3.79186148e+02 -2.10571304e+03 -2.17512876e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill +6.19269515e+03 !particle radius in m +-3.38260922e+06 8.95675600e+06 -9.15710109e+04 ! x y z +-1.98063128e+03 -7.58924908e+02 1.62762983e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill +7.59089850e+03 !particle radius in m +9.06470291e+06 3.39698455e+06 -1.93072359e+04 ! x y z +-7.42646003e+02 1.96423004e+03 3.04319746e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill +7.10464881e+03 !particle radius in m +-8.28344816e+06 -4.56542130e+06 -3.98741155e+04 ! x y z +9.81538136e+02 -1.88759078e+03 8.61570104e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill +8.45143607e+03 !particle radius in m +9.83373151e+06 4.43940145e+06 2.01558777e+04 ! x y z +-8.55397447e+02 1.79285028e+03 -1.01803709e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill +1.26098721e+04 !particle radius in m +6.20736435e+06 7.70565657e+06 2.01353242e+04 ! x y z +-1.62930967e+03 1.30802298e+03 1.80300563e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill +9.28294621e+03 !particle radius in m +-1.21242621e+07 -1.29944427e+07 9.45840193e+03 ! x y z +1.14488121e+03 -1.06447129e+03 8.51817054e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill +1.05091333e+04 !particle radius in m +-9.34416446e+04 9.14288304e+06 8.29702341e+03 ! x y z +-2.15581546e+03 -1.85313701e+01 1.24100830e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill +1.14602223e+04 !particle radius in m +-8.56201175e+06 -4.77007031e+06 6.27239711e+04 ! x y z +1.04809893e+03 -1.81527422e+03 -2.35300971e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill +8.74246630e+03 !particle radius in m +9.33774261e+06 -3.80575834e+06 3.61612768e+04 ! x y z +7.89084549e+02 1.90660726e+03 1.55750455e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill +9.51991482e+03 !particle radius in m +1.44814086e+05 -9.02785011e+06 -7.62099316e+03 ! x y z +2.17482769e+03 2.31217788e+01 4.51562127e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill +4.21772425e+03 !particle radius in m +2.68337698e+06 1.12799171e+07 -1.92110080e+04 ! x y z +-1.86815076e+03 4.16102947e+02 -8.29271140e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill +1.07390093e+04 !particle radius in m +-8.56711815e+06 -3.15713404e+06 3.97972006e+03 ! x y z +7.43604689e+02 -2.02339459e+03 6.66994916e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill +7.77378347e+03 !particle radius in m +2.18747509e+06 8.65395918e+06 -2.06536040e+04 ! x y z +-2.15725804e+03 5.30856591e+02 2.37348618e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill +1.11701303e+04 !particle radius in m +7.66628600e+06 -1.17727557e+07 -1.47420679e+04 ! x y z +1.47098208e+03 9.52353449e+02 1.59639874e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill +1.11391918e+04 !particle radius in m +1.04264792e+07 -2.74372425e+06 3.12865429e+04 ! x y z +5.41650708e+02 1.91683777e+03 -8.25764712e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill +8.61034631e+03 !particle radius in m +-3.55923980e+06 -8.64968069e+06 1.79106442e+03 ! x y z +1.99649530e+03 -7.67245271e+02 -5.93442801e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill +8.34427553e+03 !particle radius in m +9.42893053e+06 2.45878278e+05 -4.57214896e+04 ! x y z +-6.01176022e+01 2.13776727e+03 1.81291767e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill +5.41136566e+03 !particle radius in m +9.07031967e+06 -2.25767487e+06 5.83955838e+03 ! x y z +5.13475058e+02 2.05838222e+03 2.17889632e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill +5.96520618e+03 !particle radius in m +-7.87040592e+06 9.69728016e+06 -1.66849672e+03 ! x y z +-1.42992939e+03 -1.17418658e+03 -3.60129869e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill +6.04352860e+03 !particle radius in m +1.32660339e+07 5.77686809e+06 1.35800303e+05 ! x y z +-6.62231218e+02 1.59103506e+03 -3.43945323e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill +9.11948377e+03 !particle radius in m +-1.01101796e+07 -4.73633978e+06 1.92223885e+04 ! x y z +8.16987783e+02 -1.78318056e+03 8.86814927e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill +7.17970170e+03 !particle radius in m +-1.00157479e+07 1.12142854e+07 -2.29871580e+04 ! x y z +-1.26146743e+03 -1.12281660e+03 -9.84657732e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill +1.27922430e+04 !particle radius in m +-8.01070020e+06 -7.68441073e+06 -7.44586443e+03 ! x y z +1.37227167e+03 -1.42837223e+03 -3.04293724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill +6.59903940e+03 !particle radius in m +5.94423414e+06 -6.60015867e+06 3.79489917e+04 ! x y z +1.64871713e+03 1.48917509e+03 4.06312752e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill +1.26263329e+04 !particle radius in m +-3.52967631e+06 8.16512241e+06 -2.51085986e+04 ! x y z +-2.00672046e+03 -8.99089812e+02 1.47195859e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill +5.15573627e+03 !particle radius in m +8.67857522e+06 6.03654833e+06 6.58011140e+03 ! x y z +-1.13872966e+03 1.66817442e+03 2.18662162e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill +9.80349206e+03 !particle radius in m +-4.55569332e+06 1.00472663e+07 8.70354064e+03 ! x y z +-1.80149559e+03 -7.99810234e+02 3.42249675e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill +9.92677698e+03 !particle radius in m +9.14438839e+06 8.39253082e+06 -8.86556588e+04 ! x y z +-1.26689180e+03 1.34538142e+03 -8.40350285e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill +6.84228595e+03 !particle radius in m +7.97751328e+06 8.67584783e+06 5.30436727e+04 ! x y z +-1.38366127e+03 1.29303381e+03 -8.41467876e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill +7.72425527e+03 !particle radius in m +-5.79048975e+06 6.93664576e+06 1.29124985e+04 ! x y z +-1.68001209e+03 -1.40612278e+03 -3.61171376e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill +1.26029852e+04 !particle radius in m +-5.16609529e+06 9.03539760e+06 5.58960613e+04 ! x y z +-1.76517041e+03 -1.00560177e+03 -5.00965832e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill +6.09788969e+03 !particle radius in m +1.46424048e+07 -1.15689038e+07 3.27414078e+04 ! x y z +9.47675088e+02 1.20085208e+03 1.06976469e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill +6.73063203e+03 !particle radius in m +1.01236173e+07 1.45579667e+06 5.15839678e+04 ! x y z +-2.87224826e+02 2.02832432e+03 -4.14184381e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill +3.85889430e+03 !particle radius in m +7.23258453e+06 4.97813060e+06 -4.38592192e+03 ! x y z +-1.24479041e+03 1.83714641e+03 -1.95822638e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill +4.23020736e+03 !particle radius in m +8.93601994e+06 -6.94569357e+05 -6.12210199e+02 ! x y z +2.19917996e+02 2.16082384e+03 -1.54527155e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill +1.29822323e+04 !particle radius in m +8.82738308e+06 -7.76404080e+06 8.11338370e+04 ! x y z +1.26378234e+03 1.44510358e+03 2.18294651e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill +8.40166656e+03 !particle radius in m +-1.07812933e+07 -9.62734933e+06 -5.03390757e+03 ! x y z +1.12256505e+03 -1.29339213e+03 -5.66212341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill +8.02864474e+03 !particle radius in m +-6.42251747e+06 -6.74488620e+06 7.04602772e+04 ! x y z +1.54144883e+03 -1.48324937e+03 1.60342159e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill +6.62929998e+03 !particle radius in m +9.47929213e+06 -2.19579661e+06 -3.25100566e+04 ! x y z +4.68213030e+02 2.04336200e+03 2.65890903e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill +1.16296336e+04 !particle radius in m +-1.05077611e+07 -1.31085244e+06 7.30464724e+04 ! x y z +2.82650675e+02 -1.98548135e+03 -1.05658937e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill +4.30356095e+03 !particle radius in m +-9.66162364e+06 4.23926500e+05 -1.22905037e+04 ! x y z +-9.71624638e+01 -2.08984070e+03 2.75014649e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill +8.17962300e+03 !particle radius in m +9.30519559e+06 1.02777991e+07 -1.35151955e+04 ! x y z +-1.30832060e+03 1.17931837e+03 4.96678180e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill +8.60393924e+03 !particle radius in m +-5.38712062e+06 -9.43582755e+06 -1.42962613e+04 ! x y z +1.72402431e+03 -9.72573668e+02 -5.35637349e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill +3.77403501e+03 !particle radius in m +-7.15437615e+06 -1.57030040e+07 1.86249551e+05 ! x y z +1.42003546e+03 -6.56667148e+02 -3.41426138e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill +6.75023558e+03 !particle radius in m +5.41844043e+06 -7.25472299e+06 -9.37968266e+03 ! x y z +1.74397758e+03 1.29517496e+03 1.90126636e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill +1.22359443e+04 !particle radius in m +1.22229448e+07 -6.93664382e+06 -3.73566212e+04 ! x y z +8.86957021e+02 1.49812000e+03 2.93544144e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill +5.69849680e+03 !particle radius in m +4.97534313e+05 1.12973925e+07 -2.47714549e+04 ! x y z +-1.93747095e+03 6.82256092e+01 4.50885373e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill +6.63911222e+03 !particle radius in m +6.27007593e+06 1.03894624e+07 -7.16417007e+03 ! x y z +-1.60760769e+03 9.75456582e+02 -4.84946763e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill +1.05008774e+04 !particle radius in m +4.20395564e+06 7.76433301e+06 8.41688618e+04 ! x y z +-1.94265714e+03 1.06320178e+03 6.22424610e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill +4.41111088e+03 !particle radius in m +6.37276437e+06 -6.42184183e+06 6.41580563e+04 ! x y z +1.58319090e+03 1.53287002e+03 -1.33788595e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill +1.28209983e+04 !particle radius in m +-7.71353791e+06 4.23425293e+06 1.25697535e+04 ! x y z +-1.04844519e+03 -1.95403749e+03 -9.90990915e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill +3.90104672e+03 !particle radius in m +-7.40633695e+06 5.93955618e+06 -5.19978226e+04 ! x y z +-1.31908110e+03 -1.66222684e+03 -1.03799917e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill +1.24306993e+04 !particle radius in m +1.85739893e+06 -1.16268582e+07 -8.21342836e+03 ! x y z +1.89473415e+03 2.92048965e+02 -8.56627398e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill +8.83648205e+03 !particle radius in m +3.72582096e+06 7.91120697e+06 -5.23905881e+04 ! x y z +-2.02715857e+03 9.13111080e+02 2.50053811e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill +1.08564549e+04 !particle radius in m +5.09385670e+05 -1.04637690e+07 -6.20563116e+04 ! x y z +2.02501696e+03 7.65309669e+01 -1.01351101e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill +6.66176154e+03 !particle radius in m +-3.29144876e+06 8.15112104e+06 8.11267893e+04 ! x y z +-2.05815351e+03 -8.34364146e+02 -5.14984629e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill +5.47716901e+03 !particle radius in m +-1.05633758e+07 -2.07935484e+06 1.56201239e+04 ! x y z +3.80416672e+02 -1.96300156e+03 -6.47463330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill +3.82196266e+03 !particle radius in m +-8.96632975e+06 -4.86195335e+05 -1.06964367e+05 ! x y z +1.34820268e+02 -2.22107483e+03 1.19634049e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill +9.16335366e+03 !particle radius in m +-7.48232762e+06 4.92380808e+06 2.29127905e+04 ! x y z +-1.22302901e+03 -1.81943768e+03 2.38496332e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill +1.30705504e+04 !particle radius in m +-5.03707716e+05 -9.29849125e+06 -1.11404007e+04 ! x y z +2.13355604e+03 -1.25957885e+02 3.59182325e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill +3.74836657e+03 !particle radius in m +2.17225066e+07 1.26121705e+06 -8.44855246e+04 ! x y z +-9.80183609e+01 1.39255713e+03 -2.45394775e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill +7.17226488e+03 !particle radius in m +-3.31559823e+06 1.24035988e+07 -2.07947532e+04 ! x y z +-1.76007958e+03 -4.72548604e+02 9.49057096e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill +9.59062845e+03 !particle radius in m +1.21445680e+07 2.59228119e+06 -3.02162959e+04 ! x y z +-3.98075492e+02 1.82853529e+03 6.91989022e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill +7.61080504e+03 !particle radius in m +-1.13326598e+06 -1.29825734e+07 6.69579485e+03 ! x y z +1.80475746e+03 -1.76133915e+02 -5.83190587e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill +7.60494634e+03 !particle radius in m +-4.79738768e+06 1.05660072e+07 -1.20703674e+04 ! x y z +-1.76872416e+03 -7.96773745e+02 -7.48094782e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill +1.12850870e+04 !particle radius in m +2.19019020e+07 2.63899527e+06 3.37827752e+04 ! x y z +-1.61269975e+02 1.38753575e+03 3.39443977e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill +1.04047308e+04 !particle radius in m +-1.21105762e+07 -5.24541367e+05 -2.70555025e+04 ! x y z +6.19806533e+01 -1.85471109e+03 -1.08022259e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill +5.18632661e+03 !particle radius in m +6.24492290e+06 9.69571067e+06 -1.68199218e+04 ! x y z +-1.63521643e+03 1.03697361e+03 9.03169661e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill +6.56052039e+03 !particle radius in m +-9.25769957e+06 2.29292734e+06 -1.14919079e+04 ! x y z +-5.12974483e+02 -2.05331332e+03 2.34930072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill +8.62886853e+03 !particle radius in m +-7.09412869e+06 -8.06275271e+06 -7.38498407e+04 ! x y z +1.50307169e+03 -1.31876348e+03 -1.74679708e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill +1.10297026e+04 !particle radius in m +-1.83827850e+07 6.94620255e+06 -2.99390580e+04 ! x y z +-5.38167682e+02 -1.38025174e+03 8.14592781e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill +3.93151662e+03 !particle radius in m +1.28440178e+07 6.15520582e+06 5.37944446e+04 ! x y z +-7.49642103e+02 1.56926042e+03 -4.14121777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill +4.84125149e+03 !particle radius in m +-1.37958464e+07 -9.01984290e+06 9.37503357e+03 ! x y z +8.63514338e+02 -1.36928306e+03 -4.92726033e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill +6.38228557e+03 !particle radius in m +5.94552238e+06 -1.37356259e+07 -3.12464640e+04 ! x y z +1.54132538e+03 6.86924077e+02 4.95166504e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill +1.26046169e+04 !particle radius in m +-8.47051395e+06 -4.33049723e+06 8.99388095e+03 ! x y z +1.01895175e+03 -1.86853627e+03 6.25752144e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill +1.05056822e+04 !particle radius in m +-7.25230880e+06 -1.91074290e+07 -8.70931708e+04 ! x y z +1.36155621e+03 -5.02831587e+02 -8.24983528e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill +1.06118054e+04 !particle radius in m +4.25302051e+06 -8.61174101e+06 -1.08068198e+04 ! x y z +1.88839849e+03 9.49718679e+02 1.00715649e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill +6.54239543e+03 !particle radius in m +2.64852472e+06 1.60749418e+07 5.58768351e+04 ! x y z +-1.60049117e+03 2.61947391e+02 -1.05513072e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill +4.46410737e+03 !particle radius in m +6.85901436e+06 5.92668091e+06 5.88024522e+03 ! x y z +-1.42967304e+03 1.64782988e+03 3.76673216e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill +1.02396523e+04 !particle radius in m +1.65616231e+07 1.66028360e+07 -5.29304371e+04 ! x y z +-9.28645255e+02 9.80527992e+02 5.80916438e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill +1.03672601e+04 !particle radius in m +-7.26003067e+05 9.56806531e+06 9.83311273e+04 ! x y z +-2.10111468e+03 -1.57355588e+02 7.65120270e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill +8.48891637e+03 !particle radius in m +-3.13308835e+06 1.20377491e+07 -1.96893006e+04 ! x y z +-1.80038683e+03 -4.46661696e+02 -1.05229342e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill +5.71491865e+03 !particle radius in m +3.61039948e+06 -8.94670524e+06 -6.45909208e+04 ! x y z +1.94572548e+03 7.94221249e+02 2.27282153e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill +6.18678578e+03 !particle radius in m +1.23051248e+07 -2.76310551e+06 1.16872533e+05 ! x y z +4.31851334e+02 1.79778427e+03 -3.52355374e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill +7.97466982e+03 !particle radius in m +1.37198938e+07 -1.77790003e+06 -1.13538998e+05 ! x y z +2.34248090e+02 1.75094064e+03 -4.43647357e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill +8.81590001e+03 !particle radius in m +7.46219447e+06 -5.55061844e+06 3.02223367e+04 ! x y z +1.30415331e+03 1.69020434e+03 -2.84026488e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill +9.65607124e+03 !particle radius in m +1.79117779e+06 -9.28064516e+06 2.29081417e+03 ! x y z +2.10478434e+03 3.74607623e+02 2.08339038e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill +1.05558666e+04 !particle radius in m +7.62366140e+06 -4.73786634e+06 -3.67690119e+04 ! x y z +1.17730042e+03 1.83367733e+03 -1.18403024e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill +1.19589725e+04 !particle radius in m +-1.01261545e+07 2.81055834e+05 -8.19414070e+03 ! x y z +-6.18154480e+01 -2.06712328e+03 -2.24522121e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill +1.00505792e+04 !particle radius in m +6.29538118e+06 7.15708897e+06 4.07031267e+04 ! x y z +-1.60705715e+03 1.38487957e+03 -1.00848425e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill +1.11418874e+04 !particle radius in m +-8.49609253e+06 2.57253582e+06 -4.04158861e+03 ! x y z +-6.25851824e+02 -2.12221062e+03 -1.18572479e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill +6.01467589e+03 !particle radius in m +-1.10898042e+07 -1.78242858e+06 -7.98635316e+03 ! x y z +3.31900537e+02 -1.93252272e+03 -5.54822823e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill +1.27267086e+04 !particle radius in m +-9.56599926e+06 -6.50694892e+06 1.36299753e+04 ! x y z +1.08336182e+03 -1.59117844e+03 -6.14843419e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill +5.47362181e+03 !particle radius in m +-8.97074514e+06 8.73736202e+05 8.61659651e+03 ! x y z +-2.31036282e+02 -2.18526870e+03 3.84732945e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill +1.05255343e+04 !particle radius in m +2.22458775e+06 -9.09183474e+06 6.60915144e+04 ! x y z +2.08331663e+03 4.95850932e+02 -1.01931453e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill +1.19344067e+04 !particle radius in m +5.23135757e+06 -9.91357725e+06 4.20848292e+03 ! x y z +1.68969350e+03 9.19667997e+02 7.40595361e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill +4.33755478e+03 !particle radius in m +-1.28024389e+07 8.53060405e+06 4.23749438e+04 ! x y z +-9.17577167e+02 -1.39144923e+03 -5.10429471e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill +1.12704197e+04 !particle radius in m +-8.46758421e+06 -1.84532581e+07 8.05817267e+04 ! x y z +1.31420508e+03 -6.13047074e+02 -4.80774414e-03 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill +7.06559347e+03 !particle radius in m +-5.61587582e+06 7.53072526e+06 -2.26125540e+04 ! x y z +-1.70025928e+03 -1.25935338e+03 1.03927192e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill +1.14059133e+04 !particle radius in m +-2.14619149e+06 -1.42066503e+07 1.73542964e+04 ! x y z +1.70134938e+03 -2.12094299e+02 -3.88248921e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill +1.02433343e+04 !particle radius in m +-2.01595454e+06 -9.31357942e+06 -4.91526291e+04 ! x y z +2.05875974e+03 -4.99092474e+02 -1.24005530e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill +1.26261734e+04 !particle radius in m +-3.35093529e+06 -1.37898898e+07 -7.67867475e+04 ! x y z +1.68266801e+03 -4.09195838e+02 4.84518176e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill +4.19423265e+03 !particle radius in m +-5.47614308e+04 1.19582326e+07 -9.89002659e+04 ! x y z +-1.88840184e+03 -2.62651981e+01 7.68950274e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill +5.19311868e+03 !particle radius in m +-3.77832466e+06 1.09398130e+07 3.13756637e+04 ! x y z +-1.82483111e+03 -5.94408085e+02 -5.78133740e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill +6.45155218e+03 !particle radius in m +4.84011056e+06 -1.18968706e+07 1.84555477e+04 ! x y z +1.67151498e+03 6.81175038e+02 -7.19327483e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill +6.05488167e+03 !particle radius in m +5.21483996e+04 -1.14249117e+07 5.55267676e+04 ! x y z +1.92199543e+03 2.89226318e+00 3.62643891e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill +9.15143782e+03 !particle radius in m +-1.10411425e+07 -3.92571862e+06 -5.07146026e+04 ! x y z +6.36950570e+02 -1.80153278e+03 2.92128142e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill +7.60701744e+03 !particle radius in m +-1.31978898e+07 1.46521426e+07 -3.77196518e+04 ! x y z +-1.09404867e+03 -9.86978912e+02 -1.39684139e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill +1.01408856e+04 !particle radius in m +-2.88294831e+06 -1.04031089e+07 2.08513090e+04 ! x y z +1.92072665e+03 -5.23302927e+02 5.19800736e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill +1.06803333e+04 !particle radius in m +2.38782775e+06 -8.75851927e+06 4.58765881e+04 ! x y z +2.08778972e+03 5.70538122e+02 1.58463921e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill +1.10462747e+04 !particle radius in m +-1.39881250e+07 -5.83335318e+06 -6.16116575e+04 ! x y z +6.22870510e+02 -1.55838806e+03 1.20223983e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill +1.25556671e+04 !particle radius in m +4.99865237e+06 7.28764110e+06 -6.86499352e+04 ! x y z +-1.79951538e+03 1.27018155e+03 -3.04997592e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill +6.11478378e+03 !particle radius in m +4.99165759e+06 1.10448368e+07 3.69114811e+04 ! x y z +-1.71481010e+03 7.51891478e+02 2.57133594e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill +3.77594830e+03 !particle radius in m +-1.38190232e+06 8.92446579e+06 -2.39874601e+01 ! x y z +-2.13999854e+03 -3.62741075e+02 -1.15400248e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill +3.82448653e+03 !particle radius in m +-1.11170825e+07 2.94394609e+06 -4.30953134e+04 ! x y z +-5.00071887e+02 -1.85670191e+03 4.27947102e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill +1.15506092e+04 !particle radius in m +1.02590139e+07 -2.70501621e+05 1.75890374e+04 ! x y z +8.26113275e+01 2.03083325e+03 -1.20188470e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill +1.19466753e+04 !particle radius in m +1.05552207e+06 1.03618993e+07 4.81086872e+04 ! x y z +-2.01112311e+03 2.15384368e+02 -7.43201232e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill +1.21302309e+04 !particle radius in m +2.73631070e+06 -9.24970389e+06 5.21198850e+04 ! x y z +2.01203797e+03 5.75113061e+02 -1.08228016e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill +7.60492436e+03 !particle radius in m +7.49333106e+06 8.99255805e+06 4.28079932e+04 ! x y z +-1.47027422e+03 1.22861330e+03 -2.29537873e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill +8.89355341e+03 !particle radius in m +7.19860353e+06 -6.54495925e+06 4.11431543e+04 ! x y z +1.41373944e+03 1.55175420e+03 1.34717999e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill +4.20305844e+03 !particle radius in m +-1.00628201e+07 -1.83741461e+06 -1.98227486e+03 ! x y z +3.70859453e+02 -1.99423409e+03 -1.20280387e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill +1.21676504e+04 !particle radius in m +5.77701761e+06 6.58972717e+06 1.74818314e+04 ! x y z +-1.68661617e+03 1.44550446e+03 -1.99467032e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill +6.36788201e+03 !particle radius in m +2.92908581e+06 -8.51550871e+06 2.35649421e+04 ! x y z +2.06952805e+03 6.82474350e+02 -1.19878409e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill +4.61572468e+03 !particle radius in m +-1.67832510e+07 5.10602561e+06 6.05666574e+04 ! x y z +-4.71529253e+02 -1.50630622e+03 1.54396748e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill +9.57979650e+03 !particle radius in m +5.94339422e+06 1.09804417e+07 4.79977238e+04 ! x y z +-1.62390609e+03 8.74411928e+02 6.90172493e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill +9.61686674e+03 !particle radius in m +-9.53286463e+05 1.08518193e+07 1.37804570e+04 ! x y z +-1.99765013e+03 -1.63665978e+02 -1.39490183e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill +8.26608492e+03 !particle radius in m +-6.92004578e+06 -1.47096496e+07 9.07914526e+04 ! x y z +1.47519584e+03 -6.90837866e+02 6.35058618e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill +1.26187826e+04 !particle radius in m +-1.20616278e+07 6.06273134e+06 -6.00296658e+04 ! x y z +-8.01878358e+02 -1.59732664e+03 6.85710223e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill +1.24556096e+04 !particle radius in m +1.07241366e+07 6.87028361e+06 9.95384965e+03 ! x y z +-9.77403580e+02 1.54502689e+03 -6.02368193e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill +8.43934121e+03 !particle radius in m +-9.89312276e+06 -5.78442642e+06 3.19342091e+03 ! x y z +1.00166999e+03 -1.63649382e+03 -7.28916722e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill +7.38389889e+03 !particle radius in m +-1.05072101e+07 8.59747253e+05 -8.51062631e+04 ! x y z +-1.76270864e+02 -2.00169685e+03 -1.88486496e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill +6.00567499e+03 !particle radius in m +5.23533805e+06 -8.01402331e+06 2.56229650e+04 ! x y z +1.74936393e+03 1.14948262e+03 1.14944776e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill +1.12130402e+04 !particle radius in m +-3.53936356e+06 8.37116745e+06 -5.28989524e+04 ! x y z +-2.00215068e+03 -8.57726431e+02 -1.43522460e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill +1.02806726e+04 !particle radius in m +8.06463120e+06 -4.43013823e+06 9.40752267e+04 ! x y z +1.03931497e+03 1.89699386e+03 -9.86578192e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill +1.22602698e+04 !particle radius in m +-1.05188937e+07 8.26557998e+05 -2.50244301e+04 ! x y z +-1.75058944e+02 -2.01148735e+03 6.39744454e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill +9.13423664e+03 !particle radius in m +9.02166027e+05 -9.17478955e+06 6.28467621e+04 ! x y z +2.13279891e+03 2.18658803e+02 5.09551557e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill +8.07650766e+03 !particle radius in m +-3.82128992e+06 8.76150983e+06 -3.66320445e+04 ! x y z +-1.91568216e+03 -8.82768818e+02 -8.66361539e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill +8.03760289e+03 !particle radius in m +6.34183157e+06 1.14263259e+07 -3.93771961e+04 ! x y z +-1.57702001e+03 8.61699373e+02 7.37963170e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill +1.11168637e+04 !particle radius in m +-1.30405721e+07 -3.97553562e+06 6.86718538e+04 ! x y z +5.08860652e+02 -1.69393029e+03 3.39424464e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill +7.37628737e+03 !particle radius in m +1.47724485e+06 8.92877200e+06 -1.05084746e+05 ! x y z +-2.16100073e+03 3.48067255e+02 2.02796618e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill +1.25959797e+04 !particle radius in m +6.68480405e+06 8.22694034e+06 5.91279278e+04 ! x y z +-1.56238715e+03 1.25932846e+03 7.35031359e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill +1.18681469e+04 !particle radius in m +1.16829878e+07 3.26454849e+06 8.84361419e+04 ! x y z +-5.06154292e+02 1.79320925e+03 1.57229654e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill +8.54796582e+03 !particle radius in m +9.47110497e+06 -3.98852153e+06 -3.02153569e+04 ! x y z +8.00176660e+02 1.87835641e+03 1.12222570e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill +7.87804554e+03 !particle radius in m +1.46320698e+06 -1.24945211e+07 2.33172915e+04 ! x y z +1.82255294e+03 2.24692006e+02 -5.94227757e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill +1.03371250e+04 !particle radius in m +-2.99549263e+06 1.07900890e+07 -3.59480074e+04 ! x y z +-1.87291441e+03 -5.40526156e+02 -2.72086375e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill +4.49481566e+03 !particle radius in m +8.92552694e+06 -2.88867045e+06 4.50164736e+04 ! x y z +6.21245683e+02 2.05314318e+03 5.45203724e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill +1.05758878e+04 !particle radius in m +5.22399519e+06 8.01692184e+06 -5.68152669e+03 ! x y z +-1.79741529e+03 1.14577258e+03 9.91685440e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill +8.36095619e+03 !particle radius in m +8.03570746e+06 -4.11887844e+06 3.48874429e+04 ! x y z +1.00266026e+03 1.93580077e+03 -1.91021104e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill +4.42873150e+03 !particle radius in m +9.90649703e+06 3.18003586e+06 1.94516997e+04 ! x y z +-6.33346908e+02 1.92588552e+03 -4.00155121e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill +1.15984265e+04 !particle radius in m +-1.09606598e+06 8.80615149e+06 -2.31959292e+04 ! x y z +-2.19928594e+03 -2.15273172e+02 -1.46856638e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill +8.60477818e+03 !particle radius in m +1.52623331e+06 -9.87507162e+06 -7.34326606e+04 ! x y z +2.07157812e+03 3.10284089e+02 -1.48877124e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill +1.16022173e+04 !particle radius in m +5.60100517e+06 -7.52238732e+06 -7.05544699e+04 ! x y z +1.72239950e+03 1.29297128e+03 -1.52256341e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill +5.71650065e+03 !particle radius in m +-3.94522959e+06 -9.97626417e+06 9.25599419e+03 ! x y z +1.86732899e+03 -7.00228008e+02 -6.60836692e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill +1.17966335e+04 !particle radius in m +8.23445883e+04 -9.04812768e+06 -1.64851152e+03 ! x y z +2.17359230e+03 -1.27347929e+01 -1.55026516e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill +1.13901960e+04 !particle radius in m +-9.27915033e+06 -8.53740765e+06 -1.42390767e+05 ! x y z +1.24138782e+03 -1.35430995e+03 -1.90290768e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill +7.23773766e+03 !particle radius in m +6.08369217e+06 -9.30896549e+06 1.20641705e+05 ! x y z +1.63879722e+03 1.07988243e+03 -4.44689941e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill +5.59582821e+03 !particle radius in m +9.59849615e+06 4.68470056e+06 3.84316246e+04 ! x y z +-8.55957491e+02 1.80183427e+03 7.74894619e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill +9.91714578e+03 !particle radius in m +-1.08060668e+06 -1.00607858e+07 4.94826506e+04 ! x y z +2.05453656e+03 -2.59041316e+02 -1.24750217e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill +8.17265933e+03 !particle radius in m +1.47983590e+07 5.41415872e+06 -1.80415422e+04 ! x y z +-5.58693227e+02 1.55361354e+03 1.18553934e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill +8.03438024e+03 !particle radius in m +-7.58136593e+06 6.99309921e+06 2.29302110e+04 ! x y z +-1.40627338e+03 -1.47284043e+03 -4.36076043e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill +9.55516443e+03 !particle radius in m +-1.00024650e+07 2.57885499e+06 -6.07457902e+03 ! x y z +-5.22539017e+02 -1.95674023e+03 -7.68835058e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill +1.29020467e+04 !particle radius in m +-9.01182188e+06 7.17037576e+06 -1.80541014e+04 ! x y z +-1.21356170e+03 -1.50384647e+03 1.80093599e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill +1.25091298e+04 !particle radius in m +-5.24887098e+06 8.72732331e+06 8.04218722e+04 ! x y z +-1.74335368e+03 -1.08193759e+03 -5.43249124e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill +1.06106742e+04 !particle radius in m +-2.45049686e+06 1.55426920e+07 1.07580343e+05 ! x y z +-1.62197493e+03 -2.92833542e+02 -1.14576459e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill +8.00195335e+03 !particle radius in m +-1.22199859e+07 4.38221625e+06 -3.89351024e+04 ! x y z +-6.16349372e+02 -1.72585692e+03 4.89125567e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill +6.30049172e+03 !particle radius in m +-2.68787716e+06 -9.60100858e+06 2.64767119e+03 ! x y z +2.00338289e+03 -5.71028998e+02 2.70092626e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill +1.29996565e+04 !particle radius in m +-8.95990349e+06 4.52753433e+06 1.16091499e+04 ! x y z +-9.24228536e+02 -1.84658152e+03 6.10613917e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill +5.59014012e+03 !particle radius in m +1.71028024e+07 4.97528193e+06 -6.57328228e+04 ! x y z +-4.53167939e+02 1.47788400e+03 4.60344609e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill +1.10590176e+04 !particle radius in m +-2.23441151e+07 -5.50686380e+06 3.85003687e+04 ! x y z +3.37072469e+02 -1.33411055e+03 5.11825064e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill +1.07859254e+04 !particle radius in m +-1.12784475e+07 1.70585791e+07 -1.32439952e+05 ! x y z +-1.22293182e+03 -8.00872476e+02 4.14711101e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill +9.20510168e+03 !particle radius in m +-3.79252235e+06 9.57625977e+06 -9.43032419e+04 ! x y z +-1.90113874e+03 -7.45374550e+02 -2.76613575e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill +4.13425343e+03 !particle radius in m +-7.96122660e+06 3.67866986e+06 -9.30226617e+03 ! x y z +-9.42526154e+02 -2.01745780e+03 -1.25281974e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill +5.58178407e+03 !particle radius in m +-7.53794950e+06 6.23579413e+06 -2.61014008e+04 ! x y z +-1.34980984e+03 -1.58862900e+03 -1.61372420e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill +5.38800623e+03 !particle radius in m +-8.66326774e+06 4.08110980e+06 -3.65358197e+04 ! x y z +-9.22979977e+02 -1.88593300e+03 -1.20742584e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill +4.82934540e+03 !particle radius in m +-8.01465112e+06 -1.03186901e+07 -8.69608158e+04 ! x y z +1.40671015e+03 -1.13976841e+03 1.88119518e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill +1.07951308e+04 !particle radius in m +-1.49556816e+07 -7.86589247e+05 1.11406498e+05 ! x y z +1.14089906e+02 -1.67632423e+03 -1.08680759e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill +1.29051176e+04 !particle radius in m +1.27123539e+07 -2.64461233e+06 -6.18084715e+04 ! x y z +3.74400777e+02 1.80142774e+03 3.83561532e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill +1.07329246e+04 !particle radius in m +-4.06927547e+05 -1.75442240e+07 1.00963469e+05 ! x y z +1.56104472e+03 -4.39048470e+01 3.93620680e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill +5.02164633e+03 !particle radius in m +8.84368264e+06 1.43003762e+07 5.00874702e+04 ! x y z +-1.35152929e+03 8.24556921e+02 -8.03719400e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill +1.18647713e+04 !particle radius in m +-9.54707879e+06 1.77630246e+06 -8.88116065e+03 ! x y z +-3.48826440e+02 -2.06942564e+03 -2.16674061e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill +9.63374432e+03 !particle radius in m +1.09242185e+07 6.96934254e+06 -3.27489047e+04 ! x y z +-9.84319971e+02 1.52494369e+03 8.24595564e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill +4.25268498e+03 !particle radius in m +5.58576103e+06 8.70672427e+06 -2.15687306e+04 ! x y z +-1.72503313e+03 1.07740968e+03 -3.41426440e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill +1.11017942e+04 !particle radius in m +-4.11471227e+06 -8.93287907e+06 -4.36028632e+04 ! x y z +1.89219131e+03 -8.56549006e+02 8.16432689e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill +6.87002453e+03 !particle radius in m +8.96616870e+06 -2.05606701e+06 2.01901008e+04 ! x y z +4.73236695e+02 2.09528249e+03 -4.42528671e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill +8.28549309e+03 !particle radius in m +1.71268946e+07 4.30766948e+06 2.02642738e+03 ! x y z +-4.07771856e+02 1.51502114e+03 -1.13119700e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill +4.70767212e+03 !particle radius in m +-4.68916418e+05 1.79356049e+07 2.73217306e+04 ! x y z +-1.55840072e+03 -4.92017252e+01 -1.97207421e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill +1.08935228e+04 !particle radius in m +-8.58951775e+06 -2.49673020e+06 1.50355881e+04 ! x y z +6.03037486e+02 -2.10005557e+03 9.90449926e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill +1.13088486e+04 !particle radius in m +-1.24947062e+06 9.39169733e+06 -1.29611502e+03 ! x y z +-2.12088670e+03 -2.33617557e+02 -7.92353291e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill +5.04982925e+03 !particle radius in m +9.31255896e+06 3.14623519e+06 -5.69089329e+03 ! x y z +-7.03486722e+02 1.96419139e+03 2.25468152e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill +7.88288776e+03 !particle radius in m +-5.85221513e+05 -1.12876036e+07 -5.52028652e+04 ! x y z +1.95064275e+03 -9.81526152e+01 -5.91601856e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill +1.09347609e+04 !particle radius in m +-2.96784791e+06 -8.77030784e+06 -6.49349269e+04 ! x y z +2.04523947e+03 -6.63593054e+02 -5.41808592e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill +3.93196955e+03 !particle radius in m +8.90265546e+05 1.20291601e+07 -5.41238919e+02 ! x y z +-1.86112508e+03 1.50752240e+02 -5.69806824e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill +5.03625919e+03 !particle radius in m +-4.12865927e+06 -1.30370302e+07 2.49268877e+04 ! x y z +1.68286207e+03 -5.42218893e+02 7.09107529e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill +1.14005804e+04 !particle radius in m +-8.83659135e+06 4.88772967e+06 3.97374919e+04 ! x y z +-9.96652878e+02 -1.80490383e+03 4.50625373e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill +7.31394737e+03 !particle radius in m +7.51899250e+06 8.02238049e+06 4.96372898e+04 ! x y z +-1.45435540e+03 1.33207577e+03 -8.91729858e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill +8.89384301e+03 !particle radius in m +1.07692501e+07 -1.58383421e+07 5.11056372e+04 ! x y z +1.24097868e+03 8.36402001e+02 1.17081374e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill +8.90274659e+03 !particle radius in m +-7.87110940e+06 4.57199197e+06 -7.32174697e+03 ! x y z +-1.11779702e+03 -1.86164265e+03 1.82306653e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill +8.39061750e+03 !particle radius in m +-9.02697440e+06 7.44735568e+06 -6.20239222e+04 ! x y z +-1.22828772e+03 -1.48671915e+03 -3.25023413e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill +8.96233529e+03 !particle radius in m +1.03311380e+07 2.97114168e+06 2.75510366e+04 ! x y z +-5.53060286e+02 1.92682584e+03 -7.92293805e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill +4.98993792e+03 !particle radius in m +7.02853805e+06 6.05239702e+06 3.87860255e+03 ! x y z +-1.40362427e+03 1.60647543e+03 -1.45016070e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill +4.18660697e+03 !particle radius in m +6.55440785e+06 5.85117198e+06 -4.93943511e+04 ! x y z +-1.49384332e+03 1.63681032e+03 -1.39258100e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill +1.17118539e+04 !particle radius in m +9.90570829e+06 4.34179796e+06 -2.00530721e+04 ! x y z +-7.94337401e+02 1.80469509e+03 -3.79870453e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill +7.93209892e+03 !particle radius in m +-8.25205087e+06 7.98686094e+06 -3.50332951e+04 ! x y z +-1.35816228e+03 -1.38349553e+03 1.34047111e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill +7.24711433e+03 !particle radius in m +-9.96135005e+06 3.70457700e+06 -9.07193755e+04 ! x y z +-7.21948720e+02 -1.87787046e+03 -1.05717777e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill +6.57637276e+03 !particle radius in m +-1.22268683e+07 1.01474610e+07 -8.42852150e+04 ! x y z +-1.02194217e+03 -1.27298189e+03 -7.67733923e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill +6.98929911e+03 !particle radius in m +4.92746951e+06 9.58728854e+06 2.89432610e+04 ! x y z +-1.76304026e+03 9.13627287e+02 6.36664299e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill +1.19100391e+04 !particle radius in m +1.23329034e+07 -6.92729902e+05 2.96405314e+04 ! x y z +1.12931575e+02 1.84303874e+03 -9.66021750e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill +9.34048218e+03 !particle radius in m +1.63682186e+07 -7.64635682e+06 7.51258389e+04 ! x y z +6.57521797e+02 1.40505156e+03 -1.44981512e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill +4.66046628e+03 !particle radius in m +-9.02931313e+06 1.40224619e+06 -7.68912993e+03 ! x y z +-3.55553612e+02 -2.15150134e+03 1.02691019e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill +7.28378715e+03 !particle radius in m +-2.13040703e+06 9.05085932e+06 2.75232896e+04 ! x y z +-2.09375359e+03 -4.54923992e+02 -6.60791548e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill +4.24094823e+03 !particle radius in m +2.12770208e+06 -1.09362652e+07 6.56462507e+04 ! x y z +1.92901319e+03 3.58659857e+02 1.88568450e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill +1.24278875e+04 !particle radius in m +4.49722640e+06 1.29879609e+07 6.17022585e+04 ! x y z +-1.66361829e+03 6.02542134e+02 -3.15731575e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill +1.15586882e+04 !particle radius in m +-2.46270150e+05 -8.94568869e+06 -6.37006664e+04 ! x y z +2.17872017e+03 -8.88856930e+01 -1.82962039e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill +8.06890215e+03 !particle radius in m +-7.68511313e+06 -6.12228878e+06 -9.32586560e+03 ! x y z +1.29882576e+03 -1.62777018e+03 -1.19293575e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill +7.49373241e+03 !particle radius in m +-8.92478393e+06 1.31107857e+06 -7.25655485e+04 ! x y z +-2.98094429e+02 -2.17047563e+03 -1.53783344e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill +7.25129561e+03 !particle radius in m +-6.57681719e+06 -9.45888345e+06 -3.72144545e+04 ! x y z +1.58522928e+03 -1.10501157e+03 1.05113370e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill +9.50638765e+03 !particle radius in m +1.34071651e+07 1.03792566e+07 -4.53441732e+04 ! x y z +-9.71553194e+02 1.24234337e+03 9.20294843e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill +6.36761483e+03 !particle radius in m +-3.51077302e+06 -1.26567098e+07 2.57715830e+04 ! x y z +1.74422450e+03 -5.08580589e+02 2.03158207e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill +5.26245957e+03 !particle radius in m +2.88059988e+06 -1.21489772e+07 1.66531109e+03 ! x y z +1.80288747e+03 4.42317052e+02 -1.19583569e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill +8.31795219e+03 !particle radius in m +-5.79801378e+06 7.81844110e+06 7.21651425e+04 ! x y z +-1.66669076e+03 -1.30229321e+03 -2.20360225e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill +1.12229473e+04 !particle radius in m +1.79079043e+06 8.72935614e+06 7.66173175e+03 ! x y z +-2.14494592e+03 4.29349753e+02 -3.05321261e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill +1.07221971e+04 !particle radius in m +-1.31449667e+07 5.65642590e+06 -1.35348879e+04 ! x y z +-6.99474388e+02 -1.58839301e+03 5.07187025e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill +1.02555622e+04 !particle radius in m +-1.28107010e+07 3.64301270e+06 -4.79094708e+04 ! x y z +-4.96849501e+02 -1.72146269e+03 1.99970261e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill +7.54998008e+03 !particle radius in m +-8.81052520e+06 1.96363775e+06 -7.03542162e+04 ! x y z +-4.55600237e+02 -2.14195252e+03 -1.54510587e+01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill +4.30236032e+03 !particle radius in m +6.76054921e+06 5.69153857e+06 -8.32813680e+04 ! x y z +-1.43863210e+03 1.66962801e+03 -3.05680786e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill +9.37470089e+03 !particle radius in m +-1.58533753e+07 -4.64141565e+06 -1.37616342e+05 ! x y z +4.71661565e+02 -1.53679456e+03 4.54920894e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill +5.56372876e+03 !particle radius in m +-5.05912024e+06 1.20461614e+07 -1.00213774e+05 ! x y z +-1.67920042e+03 -7.11202226e+02 4.13175962e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill +6.66362952e+03 !particle radius in m +8.41034459e+05 -1.03591089e+07 -4.26263251e+04 ! x y z +2.02679172e+03 1.77245292e+02 -7.59374588e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill +4.19344015e+03 !particle radius in m +-8.72674150e+06 -1.84604826e+06 -9.49439666e+03 ! x y z +5.06255038e+02 -2.14329601e+03 8.35004981e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill +1.19410657e+04 !particle radius in m +8.32975138e+06 5.59994962e+06 1.36490477e+04 ! x y z +-1.14500563e+03 1.73284125e+03 2.21368330e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill +9.92303995e+03 !particle radius in m +5.20187427e+06 8.26928364e+06 7.79156795e+04 ! x y z +-1.78869520e+03 1.08594628e+03 -2.89543422e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill +1.05516583e+04 !particle radius in m +-3.97296892e+06 -8.38171851e+06 1.59358464e+04 ! x y z +1.95617296e+03 -9.13960827e+02 -3.62965884e-01 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill +8.03665372e+03 !particle radius in m +8.20764080e+05 -1.58893023e+07 7.87114038e+04 ! x y z +1.64101205e+03 9.20364252e+01 9.68548448e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill +9.62837764e+03 !particle radius in m +-9.69224879e+06 1.49532038e+07 7.33593405e+04 ! x y z +-1.29931651e+03 -8.27698792e+02 -3.16602237e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot +1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill +4.38450573e+03 !particle radius in m +-5.62663613e+06 7.91766436e+06 2.60207243e+04 ! x y z +-1.74178290e+03 -1.18522553e+03 2.27430689e+00 ! vx vy vz +0.4 0.4 0.4 ! Ip +0.0 0.0 0.0 ! rot diff --git a/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb new file mode 100644 index 000000000..7e7ab002b --- /dev/null +++ b/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb @@ -0,0 +1,549 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftest\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n", + "Reading in time 4.200e+03\n", + "Creating Dataset\n", + "Successfully converted 8 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 4.200e+03\n", + "Creating Dataset\n", + "Successfully converted 8 output frames.\n", + "\n", + "Adding particle info to Dataset\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestsim.ds - swiftersim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vz'].plot.line(ax=ax, x=\"time\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "plt.show()\n", + "print(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:      ()\n",
    +       "Coordinates:\n",
    +       "    id           float64 3.0\n",
    +       "    time         float64 0.0\n",
    +       "Data variables: (12/25)\n",
    +       "    GMass        float64 3.174e+04\n",
    +       "    Radius       float64 4.842e+03\n",
    +       "    J_2          float64 nan\n",
    +       "    J_4          float64 nan\n",
    +       "    Ip_x         float64 0.4\n",
    +       "    Ip_y         float64 0.4\n",
    +       "    ...           ...\n",
    +       "    py_origin    float64 -6.936e+06\n",
    +       "    pz_origin    float64 1.515e+04\n",
    +       "    vx_origin    float64 1.312e+03\n",
    +       "    vy_origin    float64 -1.533e+03\n",
    +       "    vz_origin    float64 -0.1413\n",
    +       "    origin_type  <U32 'Initial conditions'
    " + ], + "text/plain": [ + "\n", + "Dimensions: ()\n", + "Coordinates:\n", + " id float64 3.0\n", + " time float64 0.0\n", + "Data variables: (12/25)\n", + " GMass float64 3.174e+04\n", + " Radius float64 4.842e+03\n", + " J_2 float64 nan\n", + " J_4 float64 nan\n", + " Ip_x float64 0.4\n", + " Ip_y float64 0.4\n", + " ... ...\n", + " py_origin float64 -6.936e+06\n", + " pz_origin float64 1.515e+04\n", + " vx_origin float64 1.312e+03\n", + " vy_origin float64 -1.533e+03\n", + " vz_origin float64 -0.1413\n", + " origin_type symba_io_param_reader procedure :: writer => symba_io_param_writer diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 634eb1083..542db70c9 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -126,7 +126,9 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms call io_toupper(param_value) if (param_value == "YES" .or. param_value == "T") self%lfragmentation = .true. case ("GMTINY") - read(param_value, *) param%Gmtiny + read(param_value, *) param%GMTINY + case ("MIN_GMFRAG") + read(param_value, *) param%min_GMfrag case("SEED") read(param_value, *) nseeds_from_file ! Because the number of seeds can vary between compilers/systems, we need to make sure we can handle cases in which the input file has a different @@ -155,6 +157,15 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms end do 1 continue + + if (self%GMTINY < 0.0_DP) then + write(iomsg,*) "GMTINY invalid or not set: ", self%GMTINY + iostat = -1 + return + else + write(*,*) "GMTINY = ", self%GMTINY + end if + write(*,*) "FRAGMENTATION = ", param%lfragmentation if (param%lfragmentation) then if (seed_set) then @@ -163,14 +174,8 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms call random_seed(get = param%seed) end if write(*,*) "SEED: N,VAL = ",size(param%seed), param%seed(:) - end if - - if (self%Gmtiny < 0.0_DP) then - write(iomsg,*) "GMTINY invalid or not set: ", self%Gmtiny - iostat = -1 - return - else - write(*,*) "GMTINY = ", self%Gmtiny + if (param%min_GMfrag < 0.0_DP) param%min_GMfrag = param%GMTINY + write(*,*) "MIN_GMFRAG = ", self%min_GMfrag end if if (.not.self%lclose) then @@ -222,7 +227,8 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms ! Special handling is required for writing the random number seed array as its size is not known until runtime ! For the "SEED" parameter line, the first value will be the size of the seed array and the rest will be the seed array elements write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%Gmtiny; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%GMTINY; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "MIN_GMFRAG"; write(param_value, Rfmt) param%min_GMfrag; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%lfragmentation) then write(param_name, Afmt) "SEED" From e829a2b52081ea4b4542b0bd72077b86d89f615f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 12:39:24 -0400 Subject: [PATCH 152/315] Enabled GMTINY --- src/fragmentation/fragmentation.f90 | 6 ++-- src/modules/swiftest_classes.f90 | 4 +-- src/modules/symba_classes.f90 | 6 ++++ src/symba/symba_collision.f90 | 6 ++-- src/symba/symba_encounter_check.f90 | 6 ++-- src/symba/symba_kick.f90 | 44 +++++++++++++++++++++++++++++ src/symba/symba_util.f90 | 5 ++-- 7 files changed, 64 insertions(+), 13 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index f020fa36f..754a65b10 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -987,7 +987,7 @@ end subroutine restructure_failed_fragments end subroutine fragmentation_initialize - module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, mtiny, Qloss) + module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, min_mfrag, Qloss) !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! !! Determine the collisional regime of two colliding bodies. @@ -1008,7 +1008,7 @@ module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, v ! Arguments integer(I4B), intent(out) :: regime real(DP), intent(out) :: Mlr, Mslr - real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, mtiny + real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, min_mfrag real(DP), dimension(:), intent(in) :: xh1, xh2, vb1, vb2 real(DP), intent(out) :: Qloss !! The residual energy after the collision ! Constants @@ -1082,7 +1082,7 @@ module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, v Qloss = 0.0_DP U_binding = (3.0_DP * Mtot) / (5.0_DP * Rp) ! LS12 eq. 27 - if ((m1 < mtiny).or.(m2 < mtiny)) then + if ((m1 < min_mfrag).or.(m2 < min_mfrag)) then regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime Mlr = Mtot Mslr = 0.0_DP diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 6a85bba3e..bcacef235 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -474,11 +474,11 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? end subroutine fragmentation_initialize - module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, mtiny, Qloss) + module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, min_mfrag, Qloss) implicit none integer(I4B), intent(out) :: regime real(DP), intent(out) :: Mlr, Mslr - real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, mtiny + real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, min_mfrag real(DP), dimension(:), intent(in) :: xh1, xh2, vb1, vb2 real(DP), intent(out) :: Qloss !! Energy lost during the collision end subroutine fragmentation_regime diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 4ed739651..53997f033 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -89,6 +89,7 @@ module symba_classes procedure :: discard => symba_discard_pl !! Process massive body discards procedure :: drift => symba_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level procedure :: encounter_check => symba_encounter_check_pl !! Checks if massive bodies are going through close encounters with each other + procedure :: accel_int => symba_kick_getacch_int_pl !! Compute direct cross (third) term heliocentric accelerations of massive bodiess, with no mutual interactions between bodies below GMTINY procedure :: accel => symba_kick_getacch_pl !! Compute heliocentric accelerations of massive bodies procedure :: setup => symba_setup_pl !! Constructor method - Allocates space for the input number of bodies procedure :: append => symba_util_append_pl !! Appends elements from one structure to another @@ -405,6 +406,11 @@ module subroutine symba_io_read_particle(system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions end subroutine symba_io_read_particle + module pure subroutine symba_kick_getacch_int_pl(self) + implicit none + class(symba_pl), intent(inout) :: self + end subroutine symba_kick_getacch_int_pl + module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters implicit none diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 4ca907fe6..0e37a307e 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -939,7 +939,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) logical :: lgoodcollision integer(I4B) :: i, jtarg, jproj, regime real(DP), dimension(2) :: radius_si, mass_si, density_si - real(DP) :: mtiny_si, Mcb_si + real(DP) :: min_mfrag_si, Mcb_si real(DP), dimension(NDIM) :: x1_si, v1_si, x2_si, v2_si real(DP) :: mlr, mslr, mtot, dentot, msys, msys_new, Qloss, impact_parameter integer(I4B), parameter :: NRES = 3 !! Number of collisional product results @@ -974,7 +974,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) v2_si(:) = plplcollision_list%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The collective density of the parent and its children Mcb_si = cb%mass * param%MU2KG - mtiny_si = (param%GMTINY / param%GU) * param%MU2KG + min_mfrag_si = (param%min_GMfrag / param%GU) * param%MU2KG mass_res(:) = 0.0_DP @@ -983,7 +983,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) !! Use the positions and velocities of the parents from indside the step (at collision) to calculate the collisional regime call fragmentation_regime(Mcb_si, mass_si(jtarg), mass_si(jproj), radius_si(jtarg), radius_si(jproj), x1_si(:), x2_si(:),& - v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), regime, mlr, mslr, mtiny_si, Qloss) + v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), regime, mlr, mslr, min_mfrag_si, Qloss) mass_res(1) = min(max(mlr, 0.0_DP), mtot) mass_res(2) = min(max(mslr, 0.0_DP), mtot) diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 372a40996..ff98fe1ce 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -23,11 +23,11 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc if (self%nbody == 0) return - associate(pl => self, npl => self%nbody, nplpl => self%nplpl) - allocate(lencounter(nplpl), loc_lvdotr(nplpl)) + associate(pl => self, npl => self%nbody, nplplm => self%nplplm) + allocate(lencounter(nplplm), loc_lvdotr(nplplm)) lencounter(:) = .false. - do k = 1, nplpl + do k = 1, nplplm associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) xr(:) = pl%xh(:, j) - pl%xh(:, i) vr(:) = pl%vh(:, j) - pl%vh(:, i) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index b3449e04e..bf7adc60c 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -2,6 +2,50 @@ use swiftest contains + module pure subroutine symba_kick_getacch_int_pl(self) + !! author: David A. Minton + !! + !! Compute direct cross (third) term heliocentric accelerations of massive bodies, with no mutual interactions between bodies below GMTINY + !! + !! Adapted from Hal Levison's Swift routine symba5_helio_getacch.f + !! Adapted from David E. Kaufmann's Swifter routine helio_kick_getacch_int.f90 + implicit none + ! Arguments + class(symba_pl), intent(inout) :: self + ! Internals + integer(I4B) :: k + real(DP) :: rji2, irij3, faci, facj, rlim2 + real(DP) :: dx, dy, dz + + associate(pl => self, npl => self%nbody, nplplm => self%nplplm) + do k = 1, nplplm + associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) + if (pl%lmask(i) .and. pl%lmask(j)) then + dx = pl%xh(1, j) - pl%xh(1, i) + dy = pl%xh(2, j) - pl%xh(2, i) + dz = pl%xh(3, j) - pl%xh(3, i) + rji2 = dx**2 + dy**2 + dz**2 + rlim2 = (pl%radius(i) + pl%radius(j))**2 + if (rji2 > rlim2) then + irij3 = 1.0_DP / (rji2 * sqrt(rji2)) + faci = pl%Gmass(i) * irij3 + facj = pl%Gmass(j) * irij3 + pl%ah(1, i) = pl%ah(1, i) + facj * dx + pl%ah(2, i) = pl%ah(2, i) + facj * dy + pl%ah(3, i) = pl%ah(3, i) + facj * dz + pl%ah(1, j) = pl%ah(1, j) - faci * dx + pl%ah(2, j) = pl%ah(2, j) - faci * dy + pl%ah(3, j) = pl%ah(3, j) - faci * dz + end if + end if + end associate + end do + end associate + + return + end subroutine symba_kick_getacch_int_pl + + module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) !! author: David A. Minton !! diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 05b4d9aa9..c5796ccc8 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -346,10 +346,11 @@ module subroutine symba_util_index_eucl_plpl(self, param) class is (symba_parameters) pl%lmtiny(1:npl) = pl%Gmass(1:npl) < param%GMTINY end select - pl%nplm = count(.not. pl%lmtiny(1:npl)) + nplm = count(.not. pl%lmtiny(1:npl)) + pl%nplm = int(nplm, kind=I4B) nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column - nplplm = (nplm * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column + nplplm = nplm * npl - nplm * (nplm + 1) / 2 ! number of entries in a strict lower triangle, npl x npl, minus first column including only mutually interacting bodies if (allocated(self%k_plpl)) deallocate(self%k_plpl) ! Reset the index array if it's been set previously allocate(self%k_plpl(2, nplpl)) do i = 1, npl From 3c14d197836378b6fc17619d04a84b8f5e7df406 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 15:18:55 -0400 Subject: [PATCH 153/315] Fixed bug in which the largest body in a collision was misidentified, causing recursion level and info flags to be set incorrectly --- src/symba/symba_collision.f90 | 10 +++++----- src/symba/symba_encounter_check.f90 | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 0e37a307e..af8e09055 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -22,7 +22,7 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass ! Result integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, istart, nfrag, ibiggest, nfamily, nstart, nend + integer(I4B) :: i, istart, nfrag, nfamily, nstart, nend real(DP) :: mtot, avg_dens real(DP), dimension(NDIM) :: xcom, vcom, Ip_new real(DP), dimension(2) :: vol @@ -156,7 +156,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, allocate(rot_frag(NDIM, nfrag)) allocate(Ip_frag(NDIM, nfrag)) m_frag(1) = mass(jtarg) - ibiggest = maxloc(system%pl%Gmass(family(:)), dim=1) + ibiggest = family(maxloc(system%pl%Gmass(family(:)), dim=1)) id_frag(1) = system%pl%id(ibiggest) rad_frag(1) = radius(jtarg) xb_frag(:, 1) = x(:, jtarg) @@ -235,8 +235,8 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad class is (symba_pl) write(*, '("Merging bodies ",I8,99(:,",",I8))') pl%id(family(:)) - ibiggest = maxloc(pl%Gmass(family(:)), dim=1) - id_frag(1) = pl%id(family(ibiggest)) + ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) + id_frag(1) = pl%id(ibiggest) m_frag(1) = sum(mass(:)) @@ -838,7 +838,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Setup new bodies allocate(plnew, mold=pl) call plnew%setup(nfrag, param) - ibiggest = maxloc(pl%Gmass(family(:)), dim=1) + ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) ! Copy over identification, information, and physical properties of the new bodies from the fragment list plnew%id(1:nfrag) = id_frag(1:nfrag) diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index ff98fe1ce..96e13ebaf 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -40,9 +40,9 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc if (lany_encounter) then associate(plplenc_list => system%plplenc_list) call plplenc_list%resize(nenc) - plplenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(:), lencounter(:)) - plplenc_list%index1(1:nenc) = pack(pl%k_plpl(1,:), lencounter(:)) - plplenc_list%index2(1:nenc) = pack(pl%k_plpl(2,:), lencounter(:)) + plplenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(1:nplplm), lencounter(1:nplplm)) + plplenc_list%index1(1:nenc) = pack(pl%k_plpl(1,1:nplplm), lencounter(1:nplplm)) + plplenc_list%index2(1:nenc) = pack(pl%k_plpl(2,1:nplplm), lencounter(1:nplplm)) plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) plplenc_list%id2(1:nenc) = pl%id(plplenc_list%index2(1:nenc)) do k = 1, nenc From b2a9fc046b8e1ee87164da2b45f5d7f33648e784 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 15:31:22 -0400 Subject: [PATCH 154/315] Added SyMBA-specific status output that includes nplm and npl --- src/io/io.f90 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 2fdc0efa9..2d8334b60 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -172,6 +172,7 @@ module subroutine io_dump_system(self, param) real(DP) :: deltawall, wallperstep, tfrac integer(I8B) :: clock_count, count_rate, count_max character(*), parameter :: statusfmt = '("Time = ", ES12.5, "; fraction done = ", F6.3, "; Number of active pl, tp = ", I5, ", ", I5)' + character(*), parameter :: symbastatfmt = '("Time = ", ES12.5, "; fraction done = ", F6.3, "; Number of active plm, pl, tp = ", I5, ", ", I5, ", ", I5)' character(len=*), parameter :: walltimefmt = '(" Wall time (s): ", es12.5, "; Wall time/step in this interval (s): ", es12.5)' logical, save :: lfirst = .true. real(DP), save :: start, finish @@ -209,7 +210,12 @@ module subroutine io_dump_system(self, param) deltawall = clock_count / (count_rate * 1.0_DP) - finish wallperstep = deltawall / param%istep_dump finish = clock_count / (count_rate * 1.0_DP) - write(*, statusfmt) param%t, tfrac, self%pl%nbody, self%tp%nbody + select type(pl => self%pl) + class is (symba_pl) + write(*, symbastatfmt) param%t, tfrac, pl%nplm, pl%nbody, self%tp%nbody + class default + write(*, statusfmt) param%t, tfrac, pl%nbody, self%tp%nbody + end select write(*, walltimefmt) finish - start, wallperstep if (param%lenergy) call self%conservation_report(param, lterminal=.true.) end if From a252b6f8641ac5aa6640fe5ccda0f9d8f4f58fbc Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 15:49:11 -0400 Subject: [PATCH 155/315] Solved an edge case where a merged body involved in an additional encounter gets lost from the old encounter list --- src/symba/symba_collision.f90 | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index af8e09055..2f2b5c541 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -220,7 +220,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad ! Result integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, j, ibiggest, nfamily + integer(I4B) :: i, j, k, ibiggest, nfamily real(DP) :: volume_new, pe real(DP), dimension(NDIM) :: xc, vc, xcrossv real(DP), dimension(2) :: vol @@ -283,8 +283,27 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad param%Ecollisions = param%Ecollisions + pe param%Euntracked = param%Euntracked - pe + ! Update any encounter lists that have the removedbodies in them so that they instead point to the new + do k = 1, system%plplenc_list%nenc + do j = 1, nfamily + i = family(j) + if (i == ibiggest) cycle + if (system%plplenc_list%id1(k) == pl%id(i)) then + system%plplenc_list%id1(k) = pl%id(ibiggest) + system%plplenc_list%index1 = i + end if + if (system%plplenc_list%id2(k) == pl%id(i)) then + system%plplenc_list%id2(k) = pl%id(ibiggest) + system%plplenc_list%index2 = i + end if + if (system%plplenc_list%id1(k) == system%plplenc_list%id2(k)) system%plplenc_list%status(k) = INACTIVE + end do + end do + + status = MERGED call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + end select From 971522bb815c5ac4ca08a5b0b661baada1313850 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 15:50:35 -0400 Subject: [PATCH 156/315] Fixed array index bug introduced in the last fix --- src/symba/symba_collision.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 2f2b5c541..b259dfba9 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -290,11 +290,11 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad if (i == ibiggest) cycle if (system%plplenc_list%id1(k) == pl%id(i)) then system%plplenc_list%id1(k) = pl%id(ibiggest) - system%plplenc_list%index1 = i + system%plplenc_list%index1(k) = i end if if (system%plplenc_list%id2(k) == pl%id(i)) then system%plplenc_list%id2(k) = pl%id(ibiggest) - system%plplenc_list%index2 = i + system%plplenc_list%index2(k) = i end if if (system%plplenc_list%id1(k) == system%plplenc_list%id2(k)) system%plplenc_list%status(k) = INACTIVE end do From dc5b553f391cf4c2777391fd754706453155751f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 16:28:02 -0400 Subject: [PATCH 157/315] Fixed bug in which recursion level would get reset during a merger --- src/symba/symba_util.f90 | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index c5796ccc8..c50e0d373 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -468,6 +468,7 @@ module subroutine symba_util_rearray_pl(self, system, param) logical, dimension(:), allocatable :: lmask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter + integer(I4B), dimension(:), allocatable :: levelg_orig_pl, levelm_orig_pl, levelg_orig_tp, levelm_orig_tp, nplenc_orig_pl, nplenc_orig_tp, ntpenc_orig_pl associate(pl => self, pl_adds => system%pl_adds, nadd => system%pl_adds%nbody) @@ -522,12 +523,27 @@ module subroutine symba_util_rearray_pl(self, system, param) pl%kin(1:npl)%nchild = 0 pl%kin(1:npl)%parent = [(i, i=1, npl)] - ! Re-build the encounter list + ! Re-build the zero-level encounter list, being sure to save the original level information for all bodies + allocate(levelg_orig_pl, source=pl%levelg) + allocate(levelm_orig_pl, source=pl%levelm) + allocate(nplenc_orig_pl, source=pl%nplenc) + allocate(ntpenc_orig_pl, source=pl%ntpenc) lencounter = pl%encounter_check(system, param%dt, 0) - select type(tp => system%tp) - class is (symba_tp) - lencounter = tp%encounter_check(system, param%dt, 0) - end select + if (system%tp%nbody > 0) then + select type(tp => system%tp) + class is (symba_tp) + allocate(levelg_orig_tp, source=tp%levelg) + allocate(levelm_orig_tp, source=tp%levelm) + allocate(nplenc_orig_tp, source=tp%nplenc) + lencounter = tp%encounter_check(system, param%dt, 0) + call move_alloc(levelg_orig_tp, tp%levelg) + call move_alloc(levelm_orig_tp, tp%levelm) + call move_alloc(nplenc_orig_tp, tp%nplenc) + end select + end if + call move_alloc(levelg_orig_pl, pl%levelg) + call move_alloc(levelm_orig_pl, pl%levelm) + call move_alloc(nplenc_orig_pl, pl%nplenc) associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) do k = 1, system%plplenc_list%nenc From 3cb02aef3066a886d6e25e6a74c97c25c8315f4e Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 20 Aug 2021 16:32:35 -0400 Subject: [PATCH 158/315] Added comparison notebook for mtiny test --- .../mtiny_test/swiftest_vs_swifter.ipynb | 58 +++++-------------- 1 file changed, 15 insertions(+), 43 deletions(-) diff --git a/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb b/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb index 7e7ab002b..493715408 100644 --- a/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb +++ b/examples/symba_swifter_comparison/mtiny_test/swiftest_vs_swifter.ipynb @@ -63,12 +63,12 @@ "metadata": {}, "outputs": [], "source": [ - "swiftdiff = swiftestsim.ds - swiftersim.ds" + "swiftdiff = (swiftestsim.ds - swiftersim.ds) / swiftersim.ds" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -80,7 +80,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -100,7 +100,7 @@ ], "source": [ "fig, ax = plt.subplots()\n", - "swiftdiff['vz'].plot.line(ax=ax, x=\"time\")\n", + "swiftdiff['vx'].plot.line(ax=ax, x=\"time\")\n", "legend = ax.legend()\n", "legend.remove()\n", "plt.show()\n", @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -466,55 +466,27 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:      ()\n",
    +       "
    <xarray.DataArray 'vx' (id: 1500)>\n",
    +       "array([-0.,  0., -0., ...,  0., -0., -0.])\n",
            "Coordinates:\n",
    -       "    id           float64 3.0\n",
    -       "    time         float64 0.0\n",
    -       "Data variables: (12/25)\n",
    -       "    GMass        float64 3.174e+04\n",
    -       "    Radius       float64 4.842e+03\n",
    -       "    J_2          float64 nan\n",
    -       "    J_4          float64 nan\n",
    -       "    Ip_x         float64 0.4\n",
    -       "    Ip_y         float64 0.4\n",
    -       "    ...           ...\n",
    -       "    py_origin    float64 -6.936e+06\n",
    -       "    pz_origin    float64 1.515e+04\n",
    -       "    vx_origin    float64 1.312e+03\n",
    -       "    vy_origin    float64 -1.533e+03\n",
    -       "    vz_origin    float64 -0.1413\n",
    -       "    origin_type  <U32 'Initial conditions'
    " + " * id (id) float64 2.0 3.0 4.0 5.0 ... 1.499e+03 1.5e+03 1.501e+03\n", + " time float64 3e+03
    " ], "text/plain": [ - "\n", - "Dimensions: ()\n", + "\n", + "array([-0., 0., -0., ..., 0., -0., -0.])\n", "Coordinates:\n", - " id float64 3.0\n", - " time float64 0.0\n", - "Data variables: (12/25)\n", - " GMass float64 3.174e+04\n", - " Radius float64 4.842e+03\n", - " J_2 float64 nan\n", - " J_4 float64 nan\n", - " Ip_x float64 0.4\n", - " Ip_y float64 0.4\n", - " ... ...\n", - " py_origin float64 -6.936e+06\n", - " pz_origin float64 1.515e+04\n", - " vx_origin float64 1.312e+03\n", - " vy_origin float64 -1.533e+03\n", - " vz_origin float64 -0.1413\n", - " origin_type Date: Fri, 20 Aug 2021 16:43:54 -0400 Subject: [PATCH 159/315] Added MIN_GMFRAG to ignore list in the base io reader --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 2d8334b60..3a5a931b6 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -551,7 +551,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) read(param_value, *, err = 667, iomsg = iomsg) param%Ecollisions case("EUNTRACKED") read(param_value, *, err = 667, iomsg = iomsg) param%Euntracked - case ("NPLMAX", "NTPMAX", "GMTINY", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters + case ("NPLMAX", "NTPMAX", "GMTINY", "MIN_GMFRAG", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters case default write(iomsg,*) "Unknown parameter -> ",param_name iostat = -1 From 3b942e1f22c67656c55bd1a1422059dc976d42f3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 22 Aug 2021 18:25:15 -0400 Subject: [PATCH 160/315] Enabled OpenMP loops for interaction accelrations and encounter checks. Performance is significantly improved. --- Makefile.Defines | 10 +-- examples/symba_mars_disk/param.in | 4 +- src/kick/kick.f90 | 118 ++++++++++++++++++++-------- src/modules/swiftest_classes.f90 | 32 +++++++- src/modules/symba_classes.f90 | 2 +- src/symba/symba_encounter_check.f90 | 63 +++++++++------ src/symba/symba_kick.f90 | 92 ++++++++++++---------- src/util/util_index.f90 | 41 +++++++++- 8 files changed, 250 insertions(+), 112 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 1663e016c..862e4bb0d 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -67,13 +67,13 @@ GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporari GPRODUCTION = -O3 -ffree-line-length-none $(GPAR) #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -#FFLAGS = $(IPRODUCTION) -#FORTRAN = ifort +FFLAGS = $(IPRODUCTION) $(OPTREPORT) +FORTRAN = ifort #AR = xiar -FORTRAN = gfortran -#FFLAGS = $(GDEBUG) #$(GMEM) #$(GPAR) -FFLAGS = $(GPRODUCTION) +#FORTRAN = gfortran +#FFLAGS = $(GDEBUG) $(GMEM) $(GPAR) +#FFLAGS = $(GPRODUCTION) AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index f5760d345..13f933aa7 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -6,8 +6,8 @@ CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 100 -ISTEP_DUMP 100 +ISTEP_OUT 10 +ISTEP_DUMP 10 BIN_OUT bin.dat PARTICLE_OUT particle.dat OUT_TYPE REAL8 diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index af704c13c..c47c9f174 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -2,7 +2,7 @@ use swiftest contains - module pure subroutine kick_getacch_int_pl(self) + module subroutine kick_getacch_int_pl(self) !! author: David A. Minton !! !! Compute direct cross (third) term heliocentric accelerations of massive bodies @@ -13,33 +13,35 @@ module pure subroutine kick_getacch_int_pl(self) ! Arguments class(swiftest_pl), intent(inout) :: self ! Internals - integer(I4B) :: k - real(DP) :: rji2, irij3, faci, facj, rlim2 + integer(I8B) :: k, nplpl + real(DP) :: rji2, rlim2 real(DP) :: dx, dy, dz + integer(I4B) :: i, j + real(DP), dimension(:,:), pointer :: ah, xh + real(DP), dimension(NDIM,self%nbody) :: ahi, ahj + integer(I4B), dimension(:,:), pointer :: k_plpl + logical, dimension(:), pointer :: lmask + real(DP), dimension(:), pointer :: Gmass - associate(pl => self, npl => self%nbody, nplpl => self%nplpl) - do k = 1, nplpl - associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) - if (pl%lmask(i) .and. pl%lmask(j)) then - dx = pl%xh(1, j) - pl%xh(1, i) - dy = pl%xh(2, j) - pl%xh(2, i) - dz = pl%xh(3, j) - pl%xh(3, i) - rji2 = dx**2 + dy**2 + dz**2 - rlim2 = (pl%radius(i) + pl%radius(j))**2 - if (rji2 > rlim2) then - irij3 = 1.0_DP / (rji2 * sqrt(rji2)) - faci = pl%Gmass(i) * irij3 - facj = pl%Gmass(j) * irij3 - pl%ah(1, i) = pl%ah(1, i) + facj * dx - pl%ah(2, i) = pl%ah(2, i) + facj * dy - pl%ah(3, i) = pl%ah(3, i) + facj * dz - pl%ah(1, j) = pl%ah(1, j) - faci * dx - pl%ah(2, j) = pl%ah(2, j) - faci * dy - pl%ah(3, j) = pl%ah(3, j) - faci * dz - end if - end if - end associate + associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass) + nplpl = self%nplpl + ahi(:,:) = 0.0_DP + ahj(:,:) = 0.0_DP + !$omp parallel do default(shared)& + !$omp private(k, i, j, dx, dy, dz, rji2) & + !$omp reduction(+:ahi) & + !$omp reduction(-:ahj) + do k = 1_I8B, nplpl + i = k_plpl(1,k) + j = k_plpl(2,k) + dx = xh(1, j) - xh(1, i) + dy = xh(2, j) - xh(2, i) + dz = xh(3, j) - xh(3, i) + rji2 = dx**2 + dy**2 + dz**2 + if (lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do + !$omp end parallel do + ah(:,:) = ah(:,:) + ahi(:,:) + ahj(:,:) end associate return @@ -61,23 +63,71 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) integer(I4B), intent(in) :: npl !! Number of active massive bodies ! Internals integer(I4B) :: i, j - real(DP) :: rji2, irij3, fac, r2 - real(DP), dimension(NDIM) :: dx + !real(DP), dimension(:,:), allocatable :: aht if ((self%nbody == 0) .or. (npl == 0)) return associate(tp => self, ntp => self%nbody) - do concurrent(i = 1:ntp, tp%lmask(i)) - do j = 1, npl - dx(:) = tp%xh(:,i) - xhp(:, j) - r2 = dot_product(dx(:), dx(:)) - fac = GMpl(j) / (r2 * sqrt(r2)) - tp%ah(:, i) = tp%ah(:, i) - fac * dx(:) - end do + do i = 1, ntp + if (tp%lmask(i)) then + do j = 1, npl + block + real(DP) :: rji2 + real(DP) :: dx, dy, dz + dx = tp%xh(1, i) - xhp(1, j) + dy = tp%xh(2, i) - xhp(1, j) + dz = tp%xh(3, i) - xhp(1, j) + rji2 = dx**2 + dy**2 + dz**2 + call kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl(i), tp%ah(1,i), tp%ah(2,i), tp%ah(3,i)) + end block + end do + end if end do + !call move_alloc(aht, tp%ah) end associate return end subroutine kick_getacch_int_tp + module pure elemental subroutine kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) + implicit none + real(DP), intent(in) :: rji2 + real(DP), intent(in) :: dx, dy, dz + real(DP), intent(in) :: Gmi + real(DP), intent(in) :: Gmj + real(DP), intent(inout) :: axi, ayi, azi + real(DP), intent(inout) :: axj, ayj, azj + ! Internals + real(DP) :: faci, facj, irij3 + + irij3 = 1.0_DP / (rji2 * sqrt(rji2)) + faci = Gmi * irij3 + facj = Gmj * irij3 + axi = axi + facj * dx + ayi = ayi + facj * dy + azi = azi + facj * dz + axj = axj - faci * dx + ayj = ayj - faci * dy + azj = azj - faci * dz + return + end subroutine kick_getacch_int_one_pl + + + !module pure elemental subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl, ax, ay, az) + module pure subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl, ax, ay, az) + implicit none + real(DP), intent(in) :: rji2 + real(DP), intent(in) :: dx, dy, dz + real(DP), intent(in) :: GMpl + real(DP), intent(inout) :: ax, ay, az + ! Internals + real(DP) :: fac + + fac = GMpl / (rji2 * sqrt(rji2)) + ax = ax - fac * dx + ay = ay - fac * dy + az = az - fac * dz + return + end subroutine kick_getacch_int_one_tp + end submodule s_kick diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index bcacef235..3b6c2d591 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -246,6 +246,8 @@ module swiftest_classes integer(I4B), dimension(:), allocatable :: isperi !! Perihelion passage flag real(DP), dimension(:), allocatable :: peri !! Perihelion distance real(DP), dimension(:), allocatable :: atp !! Semimajor axis following perihelion passage + integer(I4B), dimension(:,:), allocatable :: k_pltp !! Index array used to convert flattened the body-body comparison upper triangular matrix + integer(I8B) :: npltp !! Number of pl-tp comparisons in the flattened upper triangular matrix !! Note to developers: If you add components to this class, be sure to update methods and subroutines that traverse the !! component list, such as setup_tp and util_spill_tp contains @@ -261,6 +263,7 @@ module swiftest_classes procedure :: vb2vh => util_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) procedure :: vh2vb => util_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) procedure :: xh2xb => util_coord_xh2xb_tp !! Convert test particles from heliocentric to barycentric coordinates (position only) + !procedure :: index => util_index_eucl_pltp !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: get_peri => util_peri_tp !! Determine system pericenter passages for test particles procedure :: resize => util_resize_tp !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. @@ -458,6 +461,13 @@ module subroutine util_index_eucl_plpl(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine + module subroutine util_index_eucl_pltp(self, pl, param) + implicit none + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine + module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) implicit none @@ -701,7 +711,27 @@ module subroutine io_write_frame_system(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_system - module pure subroutine kick_getacch_int_pl(self) + module pure elemental subroutine kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) + implicit none + real(DP), intent(in) :: rji2 + real(DP), intent(in) :: dx, dy, dz + real(DP), intent(in) :: Gmi + real(DP), intent(in) :: Gmj + real(DP), intent(inout) :: axi, ayi, azi + real(DP), intent(inout) :: axj, ayj, azj + end subroutine kick_getacch_int_one_pl + + !module pure elemental subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, Gmpl, ax, ay, az) + module pure subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, Gmpl, ax, ay, az) + !$omp declare simd(kick_getacch_int_one_tp) + implicit none + real(DP), intent(in) :: rji2 + real(DP), intent(in) :: dx, dy, dz + real(DP), intent(in) :: Gmpl + real(DP), intent(inout) :: ax, ay, az + end subroutine kick_getacch_int_one_tp + + module subroutine kick_getacch_int_pl(self) implicit none class(swiftest_pl), intent(inout) :: self end subroutine kick_getacch_int_pl diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 53997f033..25f9b5940 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -406,7 +406,7 @@ module subroutine symba_io_read_particle(system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions end subroutine symba_io_read_particle - module pure subroutine symba_kick_getacch_int_pl(self) + module subroutine symba_kick_getacch_int_pl(self) implicit none class(symba_pl), intent(inout) :: self end subroutine symba_kick_getacch_int_pl diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 96e13ebaf..42b67d079 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -16,24 +16,37 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc ! Result logical :: lany_encounter !! Returns true if there is at least one close encounter ! Internals - integer(I8B) :: k - integer(I4B) :: nenc - real(DP), dimension(NDIM) :: xr, vr - logical, dimension(:), allocatable :: lencounter, loc_lvdotr + integer(I8B) :: k, nplplm + integer(I4B) :: i, j, nenc + real(DP) :: xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2 + logical, dimension(self%nplplm) :: lencounter, loc_lvdotr + real(DP), dimension(:,:), pointer :: xh, vh + real(DP), dimension(:), pointer :: rhill + integer(I4B), dimension(:,:), pointer :: k_plpl if (self%nbody == 0) return - associate(pl => self, npl => self%nbody, nplplm => self%nplplm) - allocate(lencounter(nplplm), loc_lvdotr(nplplm)) + associate(pl => self, xh => self%xh, vh => self%vh, rhill => self%rhill, npl => self%nbody, k_plpl => self%k_plpl) + nplplm = self%nplplm lencounter(:) = .false. - - do k = 1, nplplm - associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) - xr(:) = pl%xh(:, j) - pl%xh(:, i) - vr(:) = pl%vh(:, j) - pl%vh(:, i) - call symba_encounter_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%rhill(i), pl%rhill(j), dt, irec, lencounter(k), loc_lvdotr(k)) - end associate + loc_lvdotr(:) = .false. + + !$omp parallel do default(shared)& + !$omp private(k, i, j, xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2) + do k = 1_I8B, nplplm + i = k_plpl(1, k) + j = k_plpl(2, k) + xr = xh(1, j) - xh(1, i) + yr = xh(2, j) - xh(2, i) + zr = xh(3, j) - xh(3, i) + vxr = vh(1, j) - vh(1, i) + vyr = vh(2, j) - vh(2, i) + vzr = vh(3, j) - vh(3, i) + rhill1 = rhill(i) + rhill2 = rhill(j) + call symba_encounter_check_one(xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2, dt, irec, lencounter(k), loc_lvdotr(k)) end do + !$omp end parallel do nenc = count(lencounter(:)) lany_encounter = nenc > 0 @@ -46,18 +59,18 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) plplenc_list%id2(1:nenc) = pl%id(plplenc_list%index2(1:nenc)) do k = 1, nenc - associate(i => plplenc_list%index1(k), j => plplenc_list%index2(k)) - plplenc_list%status(k) = ACTIVE - plplenc_list%level(k) = irec - pl%lencounter(i) = .true. - pl%lencounter(j) = .true. - pl%levelg(i) = irec - pl%levelm(i) = irec - pl%levelg(j) = irec - pl%levelm(j) = irec - pl%nplenc(i) = pl%nplenc(i) + 1 - pl%nplenc(j) = pl%nplenc(j) + 1 - end associate + i = plplenc_list%index1(k) + j = plplenc_list%index2(k) + plplenc_list%status(k) = ACTIVE + plplenc_list%level(k) = irec + pl%lencounter(i) = .true. + pl%lencounter(j) = .true. + pl%levelg(i) = irec + pl%levelm(i) = irec + pl%levelg(j) = irec + pl%levelm(j) = irec + pl%nplenc(i) = pl%nplenc(i) + 1 + pl%nplenc(j) = pl%nplenc(j) + 1 end do end associate end if diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index bf7adc60c..e03c12816 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -2,7 +2,7 @@ use swiftest contains - module pure subroutine symba_kick_getacch_int_pl(self) + module subroutine symba_kick_getacch_int_pl(self) !! author: David A. Minton !! !! Compute direct cross (third) term heliocentric accelerations of massive bodies, with no mutual interactions between bodies below GMTINY @@ -13,33 +13,35 @@ module pure subroutine symba_kick_getacch_int_pl(self) ! Arguments class(symba_pl), intent(inout) :: self ! Internals - integer(I4B) :: k - real(DP) :: rji2, irij3, faci, facj, rlim2 + integer(I8B) :: k, nplplm + real(DP) :: rji2, rlim2 real(DP) :: dx, dy, dz + integer(I4B) :: i, j + real(DP), dimension(:,:), pointer :: ah, xh + real(DP), dimension(NDIM,self%nbody) :: ahi, ahj + integer(I4B), dimension(:,:), pointer :: k_plpl + logical, dimension(:), pointer :: lmask + real(DP), dimension(:), pointer :: Gmass - associate(pl => self, npl => self%nbody, nplplm => self%nplplm) - do k = 1, nplplm - associate(i => pl%k_plpl(1, k), j => pl%k_plpl(2, k)) - if (pl%lmask(i) .and. pl%lmask(j)) then - dx = pl%xh(1, j) - pl%xh(1, i) - dy = pl%xh(2, j) - pl%xh(2, i) - dz = pl%xh(3, j) - pl%xh(3, i) - rji2 = dx**2 + dy**2 + dz**2 - rlim2 = (pl%radius(i) + pl%radius(j))**2 - if (rji2 > rlim2) then - irij3 = 1.0_DP / (rji2 * sqrt(rji2)) - faci = pl%Gmass(i) * irij3 - facj = pl%Gmass(j) * irij3 - pl%ah(1, i) = pl%ah(1, i) + facj * dx - pl%ah(2, i) = pl%ah(2, i) + facj * dy - pl%ah(3, i) = pl%ah(3, i) + facj * dz - pl%ah(1, j) = pl%ah(1, j) - faci * dx - pl%ah(2, j) = pl%ah(2, j) - faci * dy - pl%ah(3, j) = pl%ah(3, j) - faci * dz - end if - end if - end associate + associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass) + nplplm = self%nplplm + ahi(:,:) = 0.0_DP + ahj(:,:) = 0.0_DP + !$omp parallel do default(shared)& + !$omp private(k, i, j, dx, dy, dz, rji2) & + !$omp reduction(+:ahi) & + !$omp reduction(-:ahj) + do k = 1_I8B, nplplm + i = k_plpl(1,k) + j = k_plpl(2,k) + dx = xh(1, j) - xh(1, i) + dy = xh(2, j) - xh(2, i) + dz = xh(3, j) - xh(3, i) + rji2 = dx**2 + dy**2 + dz**2 + if (lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do + !$omp end parallel do + ah(:,:) = ah(:,:) + ahi(:,:) + ahj(:,:) end associate return @@ -61,30 +63,36 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals - integer(I4B) :: k - real(DP) :: irij3, rji2, rlim2, faci, facj - real(DP), dimension(NDIM) :: dx + integer(I4B) :: i, j + integer(I8B) :: k, nplplenc + real(DP) :: rji2, dx, dy, dz + real(DP), dimension(NDIM,self%nbody) :: ahi, ahj + class(symba_plplenc), pointer :: plplenc_list if (self%nbody == 0) return select type(system) class is (symba_nbody_system) - associate(pl => self, cb => system%cb, plplenc_list => system%plplenc_list, nplplenc => system%plplenc_list%nenc) + associate(pl => self, xh => self%xh, ah => self%ah, Gmass => self%Gmass, plplenc_list => system%plplenc_list) call helio_kick_getacch_pl(pl, system, param, t, lbeg) ! Remove accelerations from encountering pairs - do k = 1, nplplenc - associate(i => plplenc_list%index1(k), j => plplenc_list%index2(k)) - dx(:) = pl%xh(:, j) - pl%xh(:, i) - rji2 = dot_product(dx(:), dx(:)) - rlim2 = (pl%radius(i) + pl%radius(j))**2 - if (rji2 > rlim2) then - irij3 = 1.0_DP / (rji2 * sqrt(rji2)) - faci = pl%Gmass(i) * irij3 - facj = pl%Gmass(j) * irij3 - pl%ah(:, i) = pl%ah(:, i) - facj * dx(:) - pl%ah(:, j) = pl%ah(:, j) + faci * dx(:) - end if - end associate + nplplenc = int(plplenc_list%nenc, kind=I8B) + ahi(:,:) = 0.0_DP + ahj(:,:) = 0.0_DP + !$omp parallel do default(shared)& + !$omp private(k, i, j, dx, dy, dz, rji2) & + !$omp reduction(+:ahi) & + !$omp reduction(-:ahj) + do k = 1_I8B, nplplenc + i = plplenc_list%index1(k) + j = plplenc_list%index2(k) + dx = xh(1, j) - xh(1, i) + dy = xh(2, j) - xh(2, i) + dz = xh(3, j) - xh(3, i) + rji2 = dx**2 + dy**2 + dz**2 + call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do + !$omp end parallel do + ah(:,:) = ah(:,:) - ahi(:,:) - ahj(:,:) end associate end select diff --git a/src/util/util_index.f90 b/src/util/util_index.f90 index f852a492a..0e42ec7c7 100644 --- a/src/util/util_index.f90 +++ b/src/util/util_index.f90 @@ -5,7 +5,7 @@ module subroutine util_index_eucl_plpl(self, param) !! author: Jacob R. Elliott and David A. Minton !! - !! Turns i,j indices into k index for use in the Euclidean distance matrix + !! Turns i,j indices into k index for use in the Euclidean distance matrix for pl-pl interactions. !! !! Reference: !! @@ -23,7 +23,7 @@ module subroutine util_index_eucl_plpl(self, param) nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column if (allocated(self%k_plpl)) deallocate(self%k_plpl) ! Reset the index array if it's been set previously allocate(self%k_plpl(2, nplpl)) - do i = 1, npl + do i = 1_I8B, npl counter = (i - 1_I8B) * npl - i * (i - 1_I8B) / 2_I8B + 1_I8B do j = i + 1_I8B, npl self%k_plpl(1, counter) = i @@ -36,4 +36,41 @@ module subroutine util_index_eucl_plpl(self, param) return end subroutine util_index_eucl_plpl + + module subroutine util_index_eucl_pltp(self, pl, param) + !! author: Jacob R. Elliott and David A. Minton + !! + !! Turns i,j indices into k index for use in the Euclidean distance matrix for pl-tp interactions + !! + !! Reference: + !! + !! Mélodie Angeletti, Jean-Marie Bonny, Jonas Koko. Parallel Euclidean distance matrix computation on big datasets *. + !! 2019. hal-0204751 + implicit none + ! Arguments + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I8B) :: i, j, counter, npl, ntp + + ntp = int(self%nbody, kind=I8B) + npl = int(pl%nbody, kind=I8B) + associate(npltp => self%npltp) + npltp = npl * ntp + if (allocated(self%k_pltp)) deallocate(self%k_pltp) ! Reset the index array if it's been set previously + allocate(self%k_pltp(2, npltp)) + do i = 1_I8B, npl + counter = (i - 1_I8B) * npl + 1_I8B + do j = 1_I8B, ntp + self%k_pltp(1, counter) = i + self%k_pltp(2, counter) = j + counter = counter + 1_I8B + end do + end do + end associate + + return + end subroutine util_index_eucl_pltp + end submodule s_util_index From 321da65b476a96668b973ecbc43f76e6e00a4c2f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 22 Aug 2021 20:56:19 -0400 Subject: [PATCH 161/315] Put distance limit check back in --- src/kick/kick.f90 | 2 +- src/symba/symba_kick.f90 | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index c47c9f174..49da7b14c 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -14,7 +14,7 @@ module subroutine kick_getacch_int_pl(self) class(swiftest_pl), intent(inout) :: self ! Internals integer(I8B) :: k, nplpl - real(DP) :: rji2, rlim2 + real(DP) :: rji2 real(DP) :: dx, dy, dz integer(I4B) :: i, j real(DP), dimension(:,:), pointer :: ah, xh diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index e03c12816..68ce0086a 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -21,14 +21,14 @@ module subroutine symba_kick_getacch_int_pl(self) real(DP), dimension(NDIM,self%nbody) :: ahi, ahj integer(I4B), dimension(:,:), pointer :: k_plpl logical, dimension(:), pointer :: lmask - real(DP), dimension(:), pointer :: Gmass + real(DP), dimension(:), pointer :: Gmass, radius - associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass) + associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass, radius => self%radius) nplplm = self%nplplm ahi(:,:) = 0.0_DP ahj(:,:) = 0.0_DP !$omp parallel do default(shared)& - !$omp private(k, i, j, dx, dy, dz, rji2) & + !$omp private(k, i, j, dx, dy, dz, rji2, rlim2) & !$omp reduction(+:ahi) & !$omp reduction(-:ahj) do k = 1_I8B, nplplm @@ -38,7 +38,8 @@ module subroutine symba_kick_getacch_int_pl(self) dy = xh(2, j) - xh(2, i) dz = xh(3, j) - xh(3, i) rji2 = dx**2 + dy**2 + dz**2 - if (lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) + rlim2 = (radius(i)+radius(j))**2 + if ((rji2 > rlim2) .and. lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do ah(:,:) = ah(:,:) + ahi(:,:) + ahj(:,:) @@ -65,21 +66,23 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) ! Internals integer(I4B) :: i, j integer(I8B) :: k, nplplenc - real(DP) :: rji2, dx, dy, dz + real(DP) :: rji2, rlim2, dx, dy, dz real(DP), dimension(NDIM,self%nbody) :: ahi, ahj class(symba_plplenc), pointer :: plplenc_list + real(DP), dimension(:), pointer :: Gmass, radius + real(DP), dimension(:,:), pointer :: ah, xh if (self%nbody == 0) return select type(system) class is (symba_nbody_system) - associate(pl => self, xh => self%xh, ah => self%ah, Gmass => self%Gmass, plplenc_list => system%plplenc_list) + associate(pl => self, xh => self%xh, ah => self%ah, Gmass => self%Gmass, plplenc_list => system%plplenc_list, radius => self%radius) call helio_kick_getacch_pl(pl, system, param, t, lbeg) ! Remove accelerations from encountering pairs nplplenc = int(plplenc_list%nenc, kind=I8B) ahi(:,:) = 0.0_DP ahj(:,:) = 0.0_DP !$omp parallel do default(shared)& - !$omp private(k, i, j, dx, dy, dz, rji2) & + !$omp private(k, i, j, dx, dy, dz, rji2, rlim2) & !$omp reduction(+:ahi) & !$omp reduction(-:ahj) do k = 1_I8B, nplplenc @@ -89,7 +92,8 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) dy = xh(2, j) - xh(2, i) dz = xh(3, j) - xh(3, i) rji2 = dx**2 + dy**2 + dz**2 - call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) + rlim2 = (radius(i)+radius(j))**2 + if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do ah(:,:) = ah(:,:) - ahi(:,:) - ahj(:,:) From c3022d3121b40fae4d7b77d851257ec388035dcd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 07:04:48 -0400 Subject: [PATCH 162/315] Fixed array range problem that was causing an exception. --- src/kick/kick.f90 | 2 +- src/symba/symba_kick.f90 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 49da7b14c..c351d0656 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -41,7 +41,7 @@ module subroutine kick_getacch_int_pl(self) if (lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do - ah(:,:) = ah(:,:) + ahi(:,:) + ahj(:,:) + ah(:,1:self%nbody) = ah(:,1:self%nbody) + ahi(:,1:self%nbody) + ahj(:,1:self%nbody) end associate return diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index 68ce0086a..d282f9c53 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -42,7 +42,7 @@ module subroutine symba_kick_getacch_int_pl(self) if ((rji2 > rlim2) .and. lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do - ah(:,:) = ah(:,:) + ahi(:,:) + ahj(:,:) + ah(:,1:self%nbody) = ah(:,1:self%nbody) + ahi(:,1:self%nbody) + ahj(:,1:self%nbody) end associate return @@ -96,7 +96,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do - ah(:,:) = ah(:,:) - ahi(:,:) - ahj(:,:) + ah(:,1:self%nbody) = ah(:,1:self%nbody) - ahi(:,1:self%nbody) - ahj(:,1:self%nbody) end associate end select From ce023d31e31d9daa5afa0e19621f25d996ef1413 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 08:57:06 -0400 Subject: [PATCH 163/315] Fixed bugs related to restarts. Now save the maxid value to the parameter dump so that duplicate ids don't get created. Also rearranged the dump output format so that runs that output to EL will still output to EL on restart instead of reverting to XV and screwing up the bin.dat. --- src/io/io.f90 | 11 ++++++----- src/modules/swiftest_classes.f90 | 6 ++---- src/symba/symba_collision.f90 | 10 +++++----- src/util/util_valid.f90 | 4 ++-- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 3a5a931b6..f8a0d112a 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -189,7 +189,6 @@ module subroutine io_dump_system(self, param) dump_param%incbfile = trim(adjustl(DUMP_CB_FILE(idx))) dump_param%inplfile = trim(adjustl(DUMP_PL_FILE(idx))) dump_param%intpfile = trim(adjustl(DUMP_TP_FILE(idx))) - dump_param%out_form = XV dump_param%in_form = XV dump_param%out_stat = 'APPEND' dump_param%in_type = REAL8_TYPE @@ -197,6 +196,7 @@ module subroutine io_dump_system(self, param) call dump_param%dump(param_file_name) + dump_param%out_form = XV call self%cb%dump(dump_param) call self%pl%dump(dump_param) call self%tp%dump(dump_param) @@ -454,7 +454,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) call io_toupper(param_value) param%out_stat = param_value case ("ISTEP_DUMP") - read(param_value, *) param%istep_dump + read(param_value, *, err = 667, iomsg = iomsg) param%istep_dump case ("CHK_CLOSE") call io_toupper(param_value) if (param_value == "YES" .or. param_value == 'T') param%lclose = .true. @@ -551,6 +551,8 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) read(param_value, *, err = 667, iomsg = iomsg) param%Ecollisions case("EUNTRACKED") read(param_value, *, err = 667, iomsg = iomsg) param%Euntracked + case ("MAXID") + read(param_value, *, err = 667, iomsg = iomsg) param%maxid case ("NPLMAX", "NTPMAX", "GMTINY", "MIN_GMFRAG", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters case default write(iomsg,*) "Unknown parameter -> ",param_name @@ -760,6 +762,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "TP_IN"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "IN_FORM"; write(param_value, Afmt) trim(adjustl(param%in_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + if (param%istep_dump > 0) write(param_name, Afmt) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%istep_out > 0) then write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "BIN_OUT"; write(param_value, Afmt) trim(adjustl(param%outfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -768,9 +771,6 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "OUT_STAT"; write(param_value, Afmt) "APPEND"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if write(param_name, Afmt) "ENC_OUT"; write(param_value, Afmt) trim(adjustl(param%enc_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%istep_dump > 0) then - write(param_name, Afmt) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - end if write(param_name, Afmt) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_EJECT"; write(param_value, Rfmt) param%rmaxu; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -810,6 +810,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if write(param_name, Afmt) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "MAXID"; write(param_value, Ifmt) param%maxid; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) iostat = 0 iomsg = "UDIO not implemented" diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 3b6c2d591..383091b8c 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -15,8 +15,7 @@ module swiftest_classes !> Each paramter is initialized to a default values. type :: swiftest_parameters integer(I4B) :: integrator = UNKNOWN_INTEGRATOR !! Symbolic name of the nbody integrator used - integer(I4B) :: nplmax = -1 !! Maximum allowed number of massive bodies - integer(I4B) :: ntpmax = -1 !! Maximum allowed number of test particles + integer(I4B) :: maxid = -1 !! The current maximum particle id number real(DP) :: t0 = -1.0_DP !! Integration start time real(DP) :: t = -1.0_DP !! Integration current time real(DP) :: tstop = -1.0_DP !! Integration stop time @@ -295,7 +294,6 @@ module swiftest_classes logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated !! separately from massive bodies. Massive body variables are saved at half steps, and passed to !! the test particles - integer(I4B) :: maxid = -1 !! The current maximum particle id number contains !> Each integrator will have its own version of the step procedure(abstract_step_system), deferred :: step @@ -1448,7 +1446,7 @@ end subroutine util_spill_tp module subroutine util_valid_id_system(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine util_valid_id_system module subroutine util_version() diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index b259dfba9..5d95ba44f 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -68,7 +68,7 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass ! Distribute any residual mass if there is any and set the radius m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] + id_frag(:) = [(i, i = param%maxid + 1, param%maxid + nfrag)] do i = 1, nfrag Ip_frag(:, i) = Ip_new(:) @@ -169,7 +169,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - id_frag(1:nfrag) = [(i, i = system%maxid + 1, system%maxid + nfrag)] + id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] do i = 1, nfrag Ip_frag(:, i) = Ip(:, jproj) @@ -372,7 +372,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, ! Distribute any residual mass if there is any and set the radius m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = system%maxid + 1, system%maxid + nfrag)] + id_frag(:) = [(i, i = param%maxid + 1, param%maxid + nfrag)] do i = 1, nfrag Ip_frag(:, i) = Ip_new(:) @@ -821,7 +821,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, implicit none ! Arguments class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision integer(I4B), dimension(:), intent(in) :: id_frag !! List of fragment ids real(DP), dimension(:), intent(in) :: m_frag, rad_frag !! Distribution of fragment mass and radii @@ -861,7 +861,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Copy over identification, information, and physical properties of the new bodies from the fragment list plnew%id(1:nfrag) = id_frag(1:nfrag) - system%maxid = system%maxid + nfrag + param%maxid = param%maxid + nfrag plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) do i = 1, nfrag diff --git a/src/util/util_valid.f90 b/src/util/util_valid.f90 index f05c81f35..eb6df7577 100644 --- a/src/util/util_valid.f90 +++ b/src/util/util_valid.f90 @@ -12,7 +12,7 @@ module subroutine util_valid_id_system(self, param) implicit none ! Arguments class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals integer(I4B) :: i integer(I4B), dimension(:), allocatable :: idarr @@ -34,7 +34,7 @@ module subroutine util_valid_id_system(self, param) call util_exit(FAILURE) end if end do - self%maxid = maxval(idarr) + param%maxid = max(param%maxid, maxval(idarr)) end associate return From e43ae9b1d460f234113bf908f6596b1627400a75 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 09:39:58 -0400 Subject: [PATCH 164/315] Consolidated interaction step into a single parallelized subroutine instead of having a different one for SyMBA. --- src/io/io.f90 | 6 +- src/kick/kick.f90 | 148 ++++++++++++++++++------------- src/modules/swiftest_classes.f90 | 41 +++++---- src/symba/symba_kick.f90 | 46 ++-------- 4 files changed, 124 insertions(+), 117 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index f8a0d112a..a4b619847 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1054,7 +1054,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) read(iu, err = 667, iomsg = errmsg) pl%Gmass(:) pl%mass(:) = pl%Gmass(:) / param%GU if (param%lrhill_present) read(iu, err = 667, iomsg = errmsg) pl%rhill(:) - if (param%lclose) read(iu, err = 667, iomsg = errmsg) pl%radius(:) + read(iu, err = 667, iomsg = errmsg) pl%radius(:) if (param%lrotation) then read(iu, err = 667, iomsg = errmsg) pl%Ip(1, :) read(iu, err = 667, iomsg = errmsg) pl%Ip(2, :) @@ -1081,7 +1081,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) end if self%Gmass(i) = real(val, kind=DP) self%mass(i) = real(val / param%GU, kind=DP) - if (param%lclose) read(iu, *, err = 667, iomsg = errmsg) self%radius(i) + read(iu, *, err = 667, iomsg = errmsg) self%radius(i) class is (swiftest_tp) read(iu, *, err = 667, iomsg = errmsg) self%id(i) end select @@ -1508,7 +1508,7 @@ module subroutine io_write_frame_body(self, iu, param) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body write(iu, err = 667, iomsg = errmsg) pl%Gmass(1:n) if (param%lrhill_present) write(iu, err = 667, iomsg = errmsg) pl%rhill(1:n) - if (param%lclose) write(iu, err = 667, iomsg = errmsg) pl%radius(1:n) + write(iu, err = 667, iomsg = errmsg) pl%radius(1:n) if (param%lrotation) then write(iu, err = 667, iomsg = errmsg) pl%Ip(1, 1:n) write(iu, err = 667, iomsg = errmsg) pl%Ip(2, 1:n) diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index c351d0656..19d717b0d 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -12,37 +12,8 @@ module subroutine kick_getacch_int_pl(self) implicit none ! Arguments class(swiftest_pl), intent(inout) :: self - ! Internals - integer(I8B) :: k, nplpl - real(DP) :: rji2 - real(DP) :: dx, dy, dz - integer(I4B) :: i, j - real(DP), dimension(:,:), pointer :: ah, xh - real(DP), dimension(NDIM,self%nbody) :: ahi, ahj - integer(I4B), dimension(:,:), pointer :: k_plpl - logical, dimension(:), pointer :: lmask - real(DP), dimension(:), pointer :: Gmass - - associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass) - nplpl = self%nplpl - ahi(:,:) = 0.0_DP - ahj(:,:) = 0.0_DP - !$omp parallel do default(shared)& - !$omp private(k, i, j, dx, dy, dz, rji2) & - !$omp reduction(+:ahi) & - !$omp reduction(-:ahj) - do k = 1_I8B, nplpl - i = k_plpl(1,k) - j = k_plpl(2,k) - dx = xh(1, j) - xh(1, i) - dy = xh(2, j) - xh(2, i) - dz = xh(3, j) - xh(3, i) - rji2 = dx**2 + dy**2 + dz**2 - if (lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) - end do - !$omp end parallel do - ah(:,1:self%nbody) = ah(:,1:self%nbody) + ahi(:,1:self%nbody) + ahj(:,1:self%nbody) - end associate + + call kick_getacch_int_all_pl(self%nbody, self%nplpl, self%k_plpl, self%xh, self%Gmass, self%radius, self%ah) return end subroutine kick_getacch_int_pl @@ -63,7 +34,6 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) integer(I4B), intent(in) :: npl !! Number of active massive bodies ! Internals integer(I4B) :: i, j - !real(DP), dimension(:,:), allocatable :: aht if ((self%nbody == 0) .or. (npl == 0)) return @@ -73,60 +43,116 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) do j = 1, npl block real(DP) :: rji2 - real(DP) :: dx, dy, dz - dx = tp%xh(1, i) - xhp(1, j) - dy = tp%xh(2, i) - xhp(1, j) - dz = tp%xh(3, i) - xhp(1, j) - rji2 = dx**2 + dy**2 + dz**2 - call kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl(i), tp%ah(1,i), tp%ah(2,i), tp%ah(3,i)) + real(DP) :: xr, yr, zr + xr = tp%xh(1, i) - xhp(1, j) + yr = tp%xh(2, i) - xhp(1, j) + zr = tp%xh(3, i) - xhp(1, j) + rji2 = xr**2 + yr**2 + zr**2 + call kick_getacch_int_one_tp(rji2, xr, yr, zr, GMpl(i), tp%ah(1,i), tp%ah(2,i), tp%ah(3,i)) end block end do end if end do - !call move_alloc(aht, tp%ah) end associate return end subroutine kick_getacch_int_tp - module pure elemental subroutine kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) + + module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, acc) + !! author: David A. Minton + !! + !! Compute direct cross (third) term heliocentric accelerations for massive bodies, with parallelization + !! + !! Adapted from Hal Levison's Swift routine getacch_ah3.f + !! Adapted from David E. Kaufmann's Swifter routine whm_kick_getacch_ah3.f90 and helio_kick_getacch_int.f9 implicit none - real(DP), intent(in) :: rji2 - real(DP), intent(in) :: dx, dy, dz - real(DP), intent(in) :: Gmi - real(DP), intent(in) :: Gmj - real(DP), intent(inout) :: axi, ayi, azi - real(DP), intent(inout) :: axj, ayj, azj + integer(I4B), intent(in) :: npl !! Number of massive bodies + integer(I8B), intent(in) :: nplpl !! Number of massive body interactions to compute + integer(I4B), dimension(:,:), intent(in) :: k_plpl !! Array of interaction pair indices (flattened upper triangular matrix) + real(DP), dimension(:,:), intent(in) :: x !! Position vector array + real(DP), dimension(:), intent(in) :: Gmass !! Array of massive body G*mass + real(DP), dimension(:), intent(in) :: radius !! Array of massive body radii + real(DP), dimension(:,:), intent(inout) :: acc !! Acceleration vector array + ! Internals + integer(I8B) :: k + real(DP) :: rji2, rlim2 + real(DP) :: xr, yr, zr + integer(I4B) :: i, j + real(DP), dimension(NDIM,npl) :: ahi, ahj + + ahi(:,:) = 0.0_DP + ahj(:,:) = 0.0_DP + !$omp parallel do default(private)& + !$omp shared(nplpl, k_plpl, x, Gmass, radius) & + !$omp reduction(+:ahi) & + !$omp reduction(-:ahj) + do k = 1_I8B, nplpl + i = k_plpl(1,k) + j = k_plpl(2,k) + xr = x(1, j) - x(1, i) + yr = x(2, j) - x(2, i) + zr = x(3, j) - x(3, i) + rji2 = xr**2 + yr**2 + zr**2 + rlim2 = (radius(i) + radius(j))**2 + if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) + end do + !$omp end parallel do + acc(:,1:npl) = acc(:,1:npl) + ahi(:,1:npl) + ahj(:,1:npl) + return + end subroutine kick_getacch_int_all_pl + + + module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) + !! author: David A. Minton + !! + !! Compute direct cross (third) term heliocentric accelerations for a single pair of massive bodies + !! + !! Adapted from Hal Levison's Swift routine getacch_ah3.f + !! Adapted from David E. Kaufmann's Swifter routine whm_kick_getacch_ah3.f90 and helio_kick_getacch_int.f9 + implicit none + real(DP), intent(in) :: rji2 !! Square of distance between the two bodies + real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions + real(DP), intent(in) :: Gmi !! G*mass of body i + real(DP), intent(in) :: Gmj !! G*mass of body j + real(DP), intent(inout) :: axi, ayi, azi !! Acceleration vector components of body i + real(DP), intent(inout) :: axj, ayj, azj !! Acceleration vector components of body j ! Internals real(DP) :: faci, facj, irij3 irij3 = 1.0_DP / (rji2 * sqrt(rji2)) faci = Gmi * irij3 facj = Gmj * irij3 - axi = axi + facj * dx - ayi = ayi + facj * dy - azi = azi + facj * dz - axj = axj - faci * dx - ayj = ayj - faci * dy - azj = azj - faci * dz + axi = axi + facj * xr + ayi = ayi + facj * yr + azi = azi + facj * zr + axj = axj - faci * xr + ayj = ayj - faci * yr + azj = azj - faci * zr + return end subroutine kick_getacch_int_one_pl - !module pure elemental subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl, ax, ay, az) - module pure subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, GMpl, ax, ay, az) + module pure subroutine kick_getacch_int_one_tp(rji2, xr, yr, zr, GMpl, ax, ay, az) + !! author: David A. Minton + !! + !! Compute direct cross (third) term heliocentric accelerations of a single test particle massive body pair. + !! + !! Adapted from Hal Levison's Swift routine getacch_ah3_tp.f + !! Adapted from David E. Kaufmann's Swifter routine whm_kick_getacch_ah3.f90 and helio_kick_getacch_int_tp.f90 implicit none - real(DP), intent(in) :: rji2 - real(DP), intent(in) :: dx, dy, dz - real(DP), intent(in) :: GMpl - real(DP), intent(inout) :: ax, ay, az + real(DP), intent(in) :: rji2 !! Square of distance between the test particle and massive body + real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions + real(DP), intent(in) :: Gmpl !! G*mass of massive body + real(DP), intent(inout) :: ax, ay, az !! Acceleration vector components of test particle ! Internals real(DP) :: fac fac = GMpl / (rji2 * sqrt(rji2)) - ax = ax - fac * dx - ay = ay - fac * dy - az = az - fac * dz + ax = ax - fac * xr + ay = ay - fac * yr + az = az - fac * zr return end subroutine kick_getacch_int_one_tp diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 383091b8c..19c7967bd 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -709,29 +709,40 @@ module subroutine io_write_frame_system(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_system - module pure elemental subroutine kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) - implicit none - real(DP), intent(in) :: rji2 - real(DP), intent(in) :: dx, dy, dz - real(DP), intent(in) :: Gmi - real(DP), intent(in) :: Gmj - real(DP), intent(inout) :: axi, ayi, azi - real(DP), intent(inout) :: axj, ayj, azj + module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, acc) + implicit none + integer(I4B), intent(in) :: npl !! Number of massive bodies + integer(I8B), intent(in) :: nplpl !! Number of massive body interactions to compute + integer(I4B), dimension(:,:), intent(in) :: k_plpl !! Array of interaction pair indices (flattened upper triangular matrix) + real(DP), dimension(:,:), intent(in) :: x !! Position vector array + real(DP), dimension(:), intent(in) :: Gmass !! Array of massive body G*mass + real(DP), dimension(:), intent(in) :: radius !! Array of massive body radii + real(DP), dimension(:,:), intent(inout) :: acc !! Acceleration vector array + end subroutine kick_getacch_int_all_pl + + module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) + !$omp declare simd(kick_getacch_int_one_pl) + implicit none + real(DP), intent(in) :: rji2 !! Square of distance between the two bodies + real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions + real(DP), intent(in) :: Gmi !! G*mass of body i + real(DP), intent(in) :: Gmj !! G*mass of body j + real(DP), intent(inout) :: axi, ayi, azi !! Acceleration vector components of body i + real(DP), intent(inout) :: axj, ayj, azj !! Acceleration vector components of body j end subroutine kick_getacch_int_one_pl - !module pure elemental subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, Gmpl, ax, ay, az) - module pure subroutine kick_getacch_int_one_tp(rji2, dx, dy, dz, Gmpl, ax, ay, az) + module pure subroutine kick_getacch_int_one_tp(rji2, xr, yr, zr, Gmpl, ax, ay, az) !$omp declare simd(kick_getacch_int_one_tp) implicit none - real(DP), intent(in) :: rji2 - real(DP), intent(in) :: dx, dy, dz - real(DP), intent(in) :: Gmpl - real(DP), intent(inout) :: ax, ay, az + real(DP), intent(in) :: rji2 !! Square of distance between the test particle and massive body + real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions + real(DP), intent(in) :: Gmpl !! G*mass of massive body + real(DP), intent(inout) :: ax, ay, az !! Acceleration vector components of test particle end subroutine kick_getacch_int_one_tp module subroutine kick_getacch_int_pl(self) implicit none - class(swiftest_pl), intent(inout) :: self + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object end subroutine kick_getacch_int_pl module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index d282f9c53..af440eada 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -12,38 +12,8 @@ module subroutine symba_kick_getacch_int_pl(self) implicit none ! Arguments class(symba_pl), intent(inout) :: self - ! Internals - integer(I8B) :: k, nplplm - real(DP) :: rji2, rlim2 - real(DP) :: dx, dy, dz - integer(I4B) :: i, j - real(DP), dimension(:,:), pointer :: ah, xh - real(DP), dimension(NDIM,self%nbody) :: ahi, ahj - integer(I4B), dimension(:,:), pointer :: k_plpl - logical, dimension(:), pointer :: lmask - real(DP), dimension(:), pointer :: Gmass, radius - associate(ah => self%ah, xh => self%xh, k_plpl => self%k_plpl, lmask => self%lmask, Gmass => self%Gmass, radius => self%radius) - nplplm = self%nplplm - ahi(:,:) = 0.0_DP - ahj(:,:) = 0.0_DP - !$omp parallel do default(shared)& - !$omp private(k, i, j, dx, dy, dz, rji2, rlim2) & - !$omp reduction(+:ahi) & - !$omp reduction(-:ahj) - do k = 1_I8B, nplplm - i = k_plpl(1,k) - j = k_plpl(2,k) - dx = xh(1, j) - xh(1, i) - dy = xh(2, j) - xh(2, i) - dz = xh(3, j) - xh(3, i) - rji2 = dx**2 + dy**2 + dz**2 - rlim2 = (radius(i)+radius(j))**2 - if ((rji2 > rlim2) .and. lmask(i) .and. lmask(j)) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) - end do - !$omp end parallel do - ah(:,1:self%nbody) = ah(:,1:self%nbody) + ahi(:,1:self%nbody) + ahj(:,1:self%nbody) - end associate + call kick_getacch_int_all_pl(self%nbody, self%nplplm, self%k_plpl, self%xh, self%Gmass, self%radius, self%ah) return end subroutine symba_kick_getacch_int_pl @@ -66,7 +36,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) ! Internals integer(I4B) :: i, j integer(I8B) :: k, nplplenc - real(DP) :: rji2, rlim2, dx, dy, dz + real(DP) :: rji2, rlim2, xr, yr, zr real(DP), dimension(NDIM,self%nbody) :: ahi, ahj class(symba_plplenc), pointer :: plplenc_list real(DP), dimension(:), pointer :: Gmass, radius @@ -82,18 +52,18 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) ahi(:,:) = 0.0_DP ahj(:,:) = 0.0_DP !$omp parallel do default(shared)& - !$omp private(k, i, j, dx, dy, dz, rji2, rlim2) & + !$omp private(k, i, j, xr, yr, zr, rji2, rlim2) & !$omp reduction(+:ahi) & !$omp reduction(-:ahj) do k = 1_I8B, nplplenc i = plplenc_list%index1(k) j = plplenc_list%index2(k) - dx = xh(1, j) - xh(1, i) - dy = xh(2, j) - xh(2, i) - dz = xh(3, j) - xh(3, i) - rji2 = dx**2 + dy**2 + dz**2 + xr = xh(1, j) - xh(1, i) + yr = xh(2, j) - xh(2, i) + zr = xh(3, j) - xh(3, i) + rji2 = xr**2 + yr**2 + zr**2 rlim2 = (radius(i)+radius(j))**2 - if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, dx, dy, dz, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) + if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do ah(:,1:self%nbody) = ah(:,1:self%nbody) - ahi(:,1:self%nbody) - ahj(:,1:self%nbody) From fefd3e16d5f1b09ffbe4f70801dbb393faf3691c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 11:12:44 -0400 Subject: [PATCH 165/315] Streamlined kick step in SyMBA by saving the k_plpl index values of each encoutering pair. Then the subtraction step can re-use the main parallelized interaction subroutine without needing to duplicate effort. --- src/modules/swiftest_classes.f90 | 9 +++++++ src/setup/setup.f90 | 3 +++ src/symba/symba_collision.f90 | 2 -- src/symba/symba_encounter_check.f90 | 5 ++-- src/symba/symba_kick.f90 | 36 +++++++++----------------- src/util/util_copy.f90 | 1 + src/util/util_spill.f90 | 40 +++++++++++++++++++++++++++++ 7 files changed, 68 insertions(+), 28 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 19c7967bd..f93f8d714 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -318,6 +318,7 @@ module swiftest_classes integer(I4B) :: nenc !! Total number of encounters logical, dimension(:), allocatable :: lvdotr !! relative vdotr flag integer(I4B), dimension(:), allocatable :: status !! status of the interaction + integer(I8B), dimension(:), allocatable :: kidx !! index value of the encounter from the master k_plpl encounter list integer(I4B), dimension(:), allocatable :: index1 !! position of the first body in the encounter integer(I4B), dimension(:), allocatable :: index2 !! position of the second body in the encounter integer(I4B), dimension(:), allocatable :: id1 !! id of the first body in the encounter @@ -1412,6 +1413,14 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not end subroutine util_spill_arr_I4B + module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) + implicit none + integer(I8B), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + integer(I8B), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss + logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + end subroutine util_spill_arr_I8B + module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestructive) implicit none logical, dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 4a253a263..070308838 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -86,6 +86,7 @@ module subroutine setup_encounter(self, n) if (allocated(self%lvdotr)) deallocate(self%lvdotr) if (allocated(self%status)) deallocate(self%status) + if (allocated(self%kidx)) deallocate(self%kidx) if (allocated(self%index1)) deallocate(self%index1) if (allocated(self%index2)) deallocate(self%index2) if (allocated(self%id1)) deallocate(self%id1) @@ -98,6 +99,7 @@ module subroutine setup_encounter(self, n) allocate(self%lvdotr(n)) allocate(self%status(n)) + allocate(self%kidx(n)) allocate(self%index1(n)) allocate(self%index2(n)) allocate(self%id1(n)) @@ -110,6 +112,7 @@ module subroutine setup_encounter(self, n) self%lvdotr(:) = .false. self%status(:) = INACTIVE + self%kidx(:) = 0_I8B self%index1(:) = 0 self%index2(:) = 0 self%id1(:) = 0 diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 5d95ba44f..3672f959b 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -300,11 +300,9 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad end do end do - status = MERGED call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) - end select return diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 42b67d079..c1b83f9dd 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -54,8 +54,9 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc associate(plplenc_list => system%plplenc_list) call plplenc_list%resize(nenc) plplenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(1:nplplm), lencounter(1:nplplm)) - plplenc_list%index1(1:nenc) = pack(pl%k_plpl(1,1:nplplm), lencounter(1:nplplm)) - plplenc_list%index2(1:nenc) = pack(pl%k_plpl(2,1:nplplm), lencounter(1:nplplm)) + plplenc_list%kidx(1:nenc) = pack([(k, k = 1_I8B, nplplm)], lencounter(1:nplplm)) + plplenc_list%index1(1:nenc) = pl%k_plpl(1,plplenc_list%kidx(1:nenc)) + plplenc_list%index2(1:nenc) = pl%k_plpl(2,plplenc_list%kidx(1:nenc)) plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) plplenc_list%id2(1:nenc) = pl%id(plplenc_list%index2(1:nenc)) do k = 1, nenc diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index af440eada..9a5b11229 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -37,36 +37,24 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) integer(I4B) :: i, j integer(I8B) :: k, nplplenc real(DP) :: rji2, rlim2, xr, yr, zr - real(DP), dimension(NDIM,self%nbody) :: ahi, ahj - class(symba_plplenc), pointer :: plplenc_list - real(DP), dimension(:), pointer :: Gmass, radius - real(DP), dimension(:,:), pointer :: ah, xh + real(DP), dimension(NDIM,self%nbody) :: ah_enc + integer(I4B), dimension(:,:), allocatable :: k_plpl_enc if (self%nbody == 0) return select type(system) class is (symba_nbody_system) - associate(pl => self, xh => self%xh, ah => self%ah, Gmass => self%Gmass, plplenc_list => system%plplenc_list, radius => self%radius) + associate(pl => self, npl => self%nbody, plplenc_list => system%plplenc_list, radius => self%radius) + ! Apply kicks to all bodies (including those in the encounter list) call helio_kick_getacch_pl(pl, system, param, t, lbeg) - ! Remove accelerations from encountering pairs + + ! Remove kicks from bodies involved currently in the encounter list, as these are dealt with separately. nplplenc = int(plplenc_list%nenc, kind=I8B) - ahi(:,:) = 0.0_DP - ahj(:,:) = 0.0_DP - !$omp parallel do default(shared)& - !$omp private(k, i, j, xr, yr, zr, rji2, rlim2) & - !$omp reduction(+:ahi) & - !$omp reduction(-:ahj) - do k = 1_I8B, nplplenc - i = plplenc_list%index1(k) - j = plplenc_list%index2(k) - xr = xh(1, j) - xh(1, i) - yr = xh(2, j) - xh(2, i) - zr = xh(3, j) - xh(3, i) - rji2 = xr**2 + yr**2 + zr**2 - rlim2 = (radius(i)+radius(j))**2 - if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) - end do - !$omp end parallel do - ah(:,1:self%nbody) = ah(:,1:self%nbody) - ahi(:,1:self%nbody) - ahj(:,1:self%nbody) + allocate(k_plpl_enc(2,nplplenc)) + k_plpl_enc(:,1:nplplenc) = pl%k_plpl(:,plplenc_list%kidx(1:nplplenc)) + ah_enc(:,:) = 0.0_DP + call kick_getacch_int_all_pl(npl, nplplenc, k_plpl_enc, pl%xh, pl%Gmass, pl%radius, ah_enc) + pl%ah(:,1:npl) = pl%ah(:,1:npl) - ah_enc(:,1:npl) + end associate end select diff --git a/src/util/util_copy.f90 b/src/util/util_copy.f90 index c8407416d..73195df91 100644 --- a/src/util/util_copy.f90 +++ b/src/util/util_copy.f90 @@ -15,6 +15,7 @@ module subroutine util_copy_encounter(self, source) self%nenc = n self%lvdotr(1:n) = source%lvdotr(1:n) self%status(1:n) = source%status(1:n) + self%kidx(1:n) = source%kidx(1:n) self%index1(1:n) = source%index1(1:n) self%index2(1:n) = source%index2(1:n) self%id1(1:n) = source%id1(1:n) diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 77e00cf66..ccc494474 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -160,6 +160,45 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) return end subroutine util_spill_arr_I4B + + + module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) + !! author: David A. Minton + !! + !! Performs a spill operation on a single array of type I4B + !! This is the inverse of a spill operation + implicit none + ! Arguments + integer(I8B), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + integer(I8B), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards + logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if + + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) + if (ldestructive) then + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + else + deallocate(keeps) + end if + end if + + return + end subroutine util_spill_arr_I8B module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestructive) @@ -262,6 +301,7 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive associate(keeps => self) call util_spill(keeps%lvdotr, discards%lvdotr, lspill_list, ldestructive) call util_spill(keeps%status, discards%status, lspill_list, ldestructive) + call util_spill(keeps%kidx, discards%kidx, lspill_list, ldestructive) call util_spill(keeps%index1, discards%index1, lspill_list, ldestructive) call util_spill(keeps%index2, discards%index2, lspill_list, ldestructive) call util_spill(keeps%id1, discards%id1, lspill_list, ldestructive) From 48bb06e77119e4ba17f3f51e4ba2b11ff4c3db21 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 12:27:33 -0400 Subject: [PATCH 166/315] Added method for adding arbitrary bodies to a simulation DataSet --- python/swiftest/swiftest/init_cond.py | 32 ++++++++++++++++++++ python/swiftest/swiftest/io.py | 10 +++--- python/swiftest/swiftest/simulation_class.py | 29 ++++++++++++++++++ 3 files changed, 66 insertions(+), 5 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 17eb90d87..76c973533 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -215,4 +215,36 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): plds = plxr.to_dataset(dim='vec') ds = xr.combine_by_coords([ds, plds]) + return ds + +def vec2xr(param, idvals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, Rhill=None, t=0.0): + + dims = ['time', 'id', 'vec'] + if GMpl is not None: + ispl = True + else: + ispl = False + + if ispl and Rpl is None: + print("Massive bodies need a radius value.") + return None + if ispl and Rhill is None and param['RHILL_PRESENT'] == 'YES': + print("Rhill is required.") + return None + + clab, plab, tlab = swiftest.io.make_swiftest_labels(param) + if ispl: + if param['RHILL_PRESENT'] == 'YES': + vec = np.vstack([v1, v2, v3, v4, v5, v6, GMpl, Rpl, Rhill]).T + else: + vec = np.vstack([v1, v2, v3, v4, v5, v6, GMpl, Rpl]).T + else: + vec = np.vstack([v1, v2, v3, v4, v5, v6]).T + bodyframe = np.expand_dims(vec, axis=0) + if ispl: + bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': tpid, 'vec': plab}) + else: + bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': tpid, 'vec': tlab}) + + ds = bodyxr.to_dataset(dim='vec') return ds \ No newline at end of file diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index e8601f133..ecc5051b0 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -351,13 +351,13 @@ def swifter_stream(f, param): tvec = np.empty((6, ntp)) tpid = np.empty(ntp, dtype='int') if npl > 0: - Mpl = np.empty(npl) + GMpl = np.empty(npl) Rpl = np.empty(npl) for i in range(npl): # Read single-line pl frame for record = f.read_record(' 0: @@ -384,7 +384,7 @@ def swifter_stream(f, param): plab = tlab.copy() plab.append('GMass') plab.append('Radius') - pvec = np.vstack([pvec, Mpl, Rpl]) + pvec = np.vstack([pvec, GMpl, Rpl]) yield t, npl, plid, pvec.T, plab, \ ntp, tpid, tvec.T, tlab @@ -499,7 +499,7 @@ def swiftest_stream(f, param): p4 = f.read_reals(np.float64) p5 = f.read_reals(np.float64) p6 = f.read_reals(np.float64) - Mpl = f.read_reals(np.float64) + GMpl = f.read_reals(np.float64) if param['RHILL_PRESENT'] == 'YES': Rhill = f.read_reals(np.float64) Rpl = f.read_reals(np.float64) @@ -525,7 +525,7 @@ def swiftest_stream(f, param): clab, plab, tlab = make_swiftest_labels(param) if npl > 0: - pvec = np.vstack([p1, p2, p3, p4, p5, p6, Mpl, Rpl]) + pvec = np.vstack([p1, p2, p3, p4, p5, p6, GMpl, Rpl]) else: pvec = np.empty((8, 0)) plid = np.empty(0) diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index c602cbe8c..78f262df8 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -73,6 +73,35 @@ def add(self, plname, date=date.today().isoformat(), idval=None): return + def addp(self, idvals, t1, t2, t3, t4, t5, t6, Gmass=None, radius=None, Rhill=None, t=0.0): + """ + Adds a body (test particle or massive body) to the internal DataSet given a set up 6 vectors (orbital elements + or cartesian state vectors, depending on the value of self.param). Input all angles in degress + + Parameters + ---------- + idvals : Integer array of body index values. + t1 : xh for param['IN_FORM'] == "XV"; a for param['IN_FORM'] == "EL" + t2 : yh for param['IN_FORM'] == "XV"; e for param['IN_FORM'] == "EL" + t3 : zh for param['IN_FORM'] == "XV"; inc for param['IN_FORM'] == "EL" + t4 : vxh for param['IN_FORM'] == "XV"; capom for param['IN_FORM'] == "EL" + t5 : vyh for param['IN_FORM'] == "XV"; omega for param['IN_FORM'] == "EL" + t6 : vzh for param['IN_FORM'] == "XV"; capm for param['IN_FORM'] == "EL" + Gmass : Optional: Array of G*mass values if these are massive bodies + radius : Optional: Array radius values if these are massive bodies + Rhill : Optional: Array Rhill values if these are massive bodies + Returns + ------- + self.ds : xarray dataset + """ + dsnew = init_cond.vec2xr(self.param, idvals, t1, t2, t3, t4, t5, t6, Gmass, radius, Rhill) + if dsnew is not None: + self.ds = xr.combine_by_coords([self.ds, dsnew]) + return + + + + def read_param(self, param_file, codename="Swiftest"): if codename == "Swiftest": self.param = io.read_swiftest_param(param_file, self.param) From 67ba5a6ac6a052fd287cd5ff6850c6ba034057c0 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 15:47:55 -0400 Subject: [PATCH 167/315] Added new methods for adding rotation rates of planets in initial conditions files --- examples/symba_chambers_2013/.idea/.gitignore | 3 + examples/symba_chambers_2013/init_cond.py | 56 ++ examples/symba_chambers_2013/param.in | 69 +- .../symba_chambers_2013/pl_chambers_2013.in | 944 +----------------- examples/symba_chambers_2013/sun_MsunAUYR.in | 18 +- python/swiftest/swiftest/constants.py | 1 + python/swiftest/swiftest/init_cond.py | 69 +- python/swiftest/swiftest/io.py | 34 +- python/swiftest/swiftest/simulation_class.py | 10 +- 9 files changed, 215 insertions(+), 989 deletions(-) create mode 100644 examples/symba_chambers_2013/.idea/.gitignore create mode 100755 examples/symba_chambers_2013/init_cond.py diff --git a/examples/symba_chambers_2013/.idea/.gitignore b/examples/symba_chambers_2013/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/examples/symba_chambers_2013/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py new file mode 100755 index 000000000..5cda5056e --- /dev/null +++ b/examples/symba_chambers_2013/init_cond.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +import swiftest +import numpy as np +import os + +# Initialize simulation object +sim = swiftest.Simulation() + +# Set unit conversion factors +MU2KG = swiftest.MSun +TU2S = swiftest.YR2S +DU2M = swiftest.AU2M +sim.param['MU2KG'] = MU2KG +sim.param['TU2S'] = TU2S +sim.param['DU2M'] = DU2M + +# Simulation time parameters +sim.param['T0'] = 0.0 +sim.param['TSTOP'] = 300e6 +sim.param['DT'] = 6 * swiftest.JD2S / sim.param['TU2S'] +t_print = 1000.0 +iout = int(np.ceil(t_print / sim.param['DT'])) +sim.param['ISTEP_OUT'] = iout +sim.param['ISTEP_DUMP'] = iout + +# Optional output file names +sim.param['PARTICLE_OUT'] = "particle.dat" +sim.param['ENERGY'] = "YES" +sim.param['ENERGY_OUT'] = "energy.dat" +sim.param['PL_IN'] = "pl_chambers_2013.in" +sim.param['CB_IN'] = "sun_MsunAUYR.in" + +# Simulation parameters +sim.param['FRAGMENTATION'] = "YES" +sim.param['ROTATION'] = "YES" +sim.param['CHK_RMAX'] = 1000.0 +sim.param['CHK_EJECT'] = 1000.0 + +# Add central body +sim.add("Sun") +sim.add("Earth") + +# Add bodies described in Chambers (2013) Sec. 2.1, with the uniform spatial distribution and two bodies sizes (big and small) +Nb = 14 +Ns = 140 +Mb = 2.8e-7 +Ms = 2.8e-8 +dens = 3000.0 / (MU2KG / DU2M**3) +Rb = (3 * Mb / (4 * np.pi * dens) )**(1.0 / 3.0) +Rs = (3 * Ms / (4 * np.pi * dens) )**(1.0 / 3.0) + + +sim.save("param.in") + + + diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index bf59cfb97..d096d13fe 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -1,32 +1,37 @@ -! -! Parameter file for Chambers 2013 in units of Msun, AU, year -! -T0 0.0e0 -TSTOP 1e8 ! simulation length in years -DT 0.016 ! stepsize in years -CB_IN sun_MsunAUYR.in -PL_IN pl_chambers_2013.in -TP_IN tp.in -IN_TYPE ASCII -ISTEP_OUT 6250 ! output cadence -ISTEP_DUMP 6250 ! system dump cadence -BIN_OUT bin.dat -PARTICLE_OUT particle.dat -OUT_TYPE REAL8 ! double precision real output -OUT_FORM EL ! osculating element output -OUT_STAT REPLACE -CHK_CLOSE yes ! check for planetary close encounters -CHK_RMAX 100000.0 ! discard outside of -EXTRA_FORCE no ! no extra user-defined forces -BIG_DISCARD no ! output all planets if anything discarded -RHILL_PRESENT yes ! Hill's sphere radii in input file -MU2KG 1.98847e30 ! (M_sun-> kg) -DU2M 1.495979e11 ! distance unit to meters (AU --> m) -TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) -GMTINY 1e-10 -ENERGY yes -ENERGY_OUT energy.dat -ROTATION yes -FRAGMENTATION yes -DISCARD_OUT discard.out -SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 +! VERSION Swiftest parameter input +T0 0.0 +TSTOP 300000000.0 +DT 0.01642710472279261 +ISTEP_OUT 60876 +ISTEP_DUMP 60876 +OUT_FORM EL +OUT_TYPE REAL8 +OUT_STAT REPLACE +IN_TYPE ASCII +PL_IN pl_chambers_2013.in +TP_IN tp.in +CB_IN sun_MsunAUYR.in +BIN_OUT bin.dat +CHK_QMIN -1.0 +CHK_RMIN -1.0 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE -1.0 -1.0 +MU2KG 1.988409870698051e+30 +TU2S 31557600.0 +DU2M 149597870700.0 +IN_FORM XV +ENC_OUT enc.dat +EXTRA_FORCE NO +DISCARD_OUT discard.out +PARTICLE_OUT particle.dat +BIG_DISCARD NO +CHK_CLOSE YES +RHILL_PRESENT YES +FRAGMENTATION YES +ROTATION YES +TIDES NO +ENERGY YES +GR NO +ENERGY_OUT energy.dat diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 1ba4c845e..56d3f87e4 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -1,937 +1,7 @@ -156 ! Solar System in unit system AU, M_sun, and years -500 3.76722155e-02 1.08899907e-02 ! ID / G*Mass / Rhill Jupiter -4.67326079e-04 ! Radius -3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z -1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz -0.0 0.0 0.2756 ! ip --81.01800465 -2388.16786145 5008.65350675 ! rot -600 1.12798314e-02 1.99069165e-02 ! ID / G*Mass / Rhill Saturn -3.89256801e-04 ! Radius -5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z -1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz -0.0 0.0 0.22 ! ip -445.81155409 381.95827345 5182.3159189 ! rot -4 1.10539569e-05 2.76930511e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -2.72988779e-01 1.29092883e+00 1.33913146e-01 ! x y z --5.30347096e+00 1.10519810e+00 4.11733597e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -5 1.10539569e-05 2.47028309e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --7.52767237e-01 -7.89903716e-01 4.41780109e-01 ! x y z -3.97724375e+00 -4.13307219e+00 -7.22805540e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -6 1.10539569e-05 1.32328966e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.20377608e-01 -7.87272103e-02 7.12067297e-02 ! x y z -1.02503121e+00 7.84536983e+00 -1.81237075e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -7 1.10539569e-05 9.44674456e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.98175547e-02 -4.40604282e-01 -6.26515066e-02 ! x y z -9.16286233e+00 1.29526313e+00 1.28292031e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -8 1.10539569e-05 2.10455183e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --7.37344424e-01 -6.59393259e-01 -3.39334297e-02 ! x y z -4.23617128e+00 -4.72560240e+00 1.90202709e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -9 1.10539569e-05 7.93127033e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --3.72282885e-01 1.00137160e-02 4.74495877e-02 ! x y z --5.53222723e-02 -1.01517333e+01 1.56417032e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -10 1.10539569e-05 3.72890834e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --1.71148151e+00 4.03705975e-02 -4.41629664e-01 ! x y z --5.30815676e-01 -4.44829638e+00 1.51595205e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -11 1.10539569e-05 1.24950838e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -2.86212864e-01 5.18828229e-01 -9.65137375e-03 ! x y z --7.11468376e+00 3.99045778e+00 4.08951506e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -12 1.10539569e-05 1.29201140e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.01579717e-01 -1.24985784e-01 -6.68579475e-02 ! x y z -1.03137581e+00 6.97294287e+00 -3.70526296e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -13 1.10539569e-05 8.45210453e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -1.66504352e-01 3.65136786e-01 -2.37270588e-02 ! x y z --9.01075623e+00 4.10307061e+00 -1.73991242e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -14 1.10539569e-05 1.80973111e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --1.00013418e-01 8.46049108e-01 1.29409189e-01 ! x y z --6.69397403e+00 -6.88216193e-01 -6.43089317e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -15 1.10539569e-05 6.77162299e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --6.64074759e-02 -2.85943101e-01 -1.33132689e-01 ! x y z -1.04794195e+01 -3.18219029e+00 1.50287735e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -16 1.10539569e-05 2.22462802e-03 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius -6.93683497e-01 -7.97060245e-01 -1.56701341e-03 ! x y z -4.27957357e+00 3.72233196e+00 -2.27779518e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -17 1.10539569e-05 9.07412459e-04 ! ID / G*Mass / Rhill -2.36555201e-05 ! Radius --4.30243754e-01 3.92163409e-02 1.61581635e-02 ! x y z --8.96241375e-01 -9.13377010e+00 -2.60722121e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -18 1.10539569e-06 2.16228637e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.49171166e-01 9.89231336e-01 9.47431817e-02 ! x y z --5.97909060e+00 -1.61462871e+00 5.17955232e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -19 1.10539569e-06 2.44552162e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.13055691e+00 -2.73349719e-01 -8.64446048e-04 ! x y z -1.35697138e+00 5.66139385e+00 -8.67279260e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -20 1.10539569e-06 2.69931846e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.95952391e-01 8.54202216e-01 5.12437562e-01 ! x y z --4.18257122e+00 -3.66903213e+00 -4.16936339e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -21 1.10539569e-06 3.64709598e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.50222087e+00 2.48717046e-01 -8.19081229e-01 ! x y z --8.04975551e-01 -4.71387035e+00 7.84362176e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -22 1.10539569e-06 1.17536449e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.44682948e-01 -4.96503483e-01 -8.53414160e-02 ! x y z -7.40695872e+00 -3.28819700e+00 -2.14066023e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -23 1.10539569e-06 1.50460742e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.36805798e-01 -5.86582522e-01 3.17351611e-01 ! x y z -6.83507157e+00 3.05184627e+00 5.35881505e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -24 1.10539569e-06 2.39048166e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.80090550e-01 1.00147849e+00 -3.41420172e-01 ! x y z --5.59868356e+00 -1.78046309e+00 9.70115472e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -25 1.10539569e-06 2.01027356e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.39485525e-01 6.02196012e-01 2.65945142e-02 ! x y z --4.01389113e+00 -4.93502846e+00 -9.72482631e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -26 1.10539569e-06 3.44715330e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.30456826e-01 1.57570303e+00 -1.09595941e-01 ! x y z --4.64706737e+00 -1.19846831e+00 1.04119454e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -27 1.10539569e-06 1.76967616e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.35819630e-01 -4.18940068e-01 -5.26182368e-02 ! x y z -3.13485099e+00 -5.73938205e+00 1.82527292e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -28 1.10539569e-06 4.06342312e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.54229262e-01 -1.76044238e+00 -1.80128626e-01 ! x y z -4.18274269e+00 -1.75246993e+00 -1.48893698e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -29 1.10539569e-06 6.51392241e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.97001957e-02 -2.83866631e-01 1.02094271e-01 ! x y z -1.06859367e+01 -3.16734146e+00 -1.78495005e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -30 1.10539569e-06 1.50723858e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.50547968e-01 5.85483214e-01 -2.02242303e-01 ! x y z --6.51912702e+00 -3.31902976e+00 1.50673282e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -31 1.10539569e-06 9.91191586e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.34148347e-02 -4.67706829e-01 -4.50777179e-04 ! x y z -9.07741521e+00 1.03526094e+00 6.27189957e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -32 1.10539569e-06 1.27434773e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.76081124e-01 -1.72561939e-01 2.32546498e-02 ! x y z -2.26640367e+00 -7.48739107e+00 2.18424337e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -33 1.10539569e-06 1.88899665e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.21441400e-01 8.67808697e-01 6.09525334e-02 ! x y z --6.38752841e+00 1.69289574e+00 -5.34224727e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -34 1.10539569e-06 2.51153352e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.27618072e-01 -9.85796209e-01 -2.48455975e-01 ! x y z -4.57388053e+00 3.25533389e+00 -1.21335726e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -35 1.10539569e-06 1.31898109e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.04370616e-01 5.13132374e-01 1.83051491e-01 ! x y z --6.94545994e+00 3.58830246e+00 1.54416575e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -36 1.10539569e-06 1.31747151e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.72209409e-01 5.58609144e-01 -5.24341572e-02 ! x y z --7.11229047e+00 -3.50089370e+00 -8.23500441e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -37 1.10539569e-06 8.04475879e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.84218244e-01 3.32444349e-01 -3.37468460e-02 ! x y z --8.87199586e+00 4.71912663e+00 -1.61815818e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -38 1.10539569e-06 8.53415964e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.71574947e-01 2.99863851e-01 2.77485703e-02 ! x y z --7.27373701e+00 6.59527467e+00 -9.50013137e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -39 1.10539569e-06 1.54874159e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.42177998e-01 4.64346195e-01 -1.77247174e-01 ! x y z --4.32593022e+00 -5.71371010e+00 -1.52200642e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -40 1.10539569e-06 1.11811225e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.37513378e-01 4.78960335e-01 -4.18799485e-02 ! x y z --7.64314149e+00 3.80464264e+00 -4.40507044e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -41 1.10539569e-06 6.46344589e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.17502253e-01 2.74368057e-01 6.52591009e-02 ! x y z --1.04985621e+01 -4.38785797e+00 -5.95356835e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -42 1.10539569e-06 3.14895117e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.08577487e+00 -1.03445606e+00 -1.55590020e-01 ! x y z -3.53014787e+00 3.59960362e+00 7.43100049e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -43 1.10539569e-06 3.30212225e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.85350014e-01 -1.34034680e+00 7.46972274e-01 ! x y z -4.81219105e+00 1.19508883e+00 -3.85665415e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -44 1.10539569e-06 7.23534141e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.13136821e-02 3.42286865e-01 -3.05898632e-02 ! x y z --1.01368906e+01 -6.23201390e-01 -3.40648593e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -45 1.10539569e-06 2.39770005e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.04671093e+00 1.11212978e-01 -4.33163084e-01 ! x y z --3.60007968e-01 -5.84725364e+00 -6.15822401e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -46 1.10539569e-06 3.11101805e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.28031558e+00 6.71820187e-01 3.13521220e-01 ! x y z --2.10656104e+00 -4.54924436e+00 1.23122282e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -47 1.10539569e-06 9.97006532e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.03695384e-01 -3.60967985e-01 5.51306924e-02 ! x y z -6.85056674e+00 -5.91778788e+00 -9.60485047e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -48 1.10539569e-06 7.74544738e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.54176241e-01 6.02822917e-02 7.63020359e-02 ! x y z --1.61729423e+00 -1.02381855e+01 4.69477979e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -49 1.10539569e-06 2.60533414e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.70647812e-01 -1.14442870e+00 -2.16624680e-04 ! x y z -5.22089775e+00 2.15396431e+00 6.97355593e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -50 1.10539569e-06 1.73280111e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.47538292e-02 -7.76819569e-01 -2.57912415e-01 ! x y z -6.69507282e+00 -1.17185683e+00 1.33518772e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -51 1.10539569e-06 3.17790663e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.65614001e-01 -1.36216721e+00 3.04841771e-02 ! x y z -4.55635977e+00 2.26593667e+00 1.30678452e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -52 1.10539569e-06 7.23862851e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.31702394e-01 -9.11930665e-02 2.41707377e-02 ! x y z -2.70205684e+00 -1.02322038e+01 -1.45694907e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -53 1.10539569e-06 4.09271910e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.43010053e-01 1.89928569e+00 1.63915030e-01 ! x y z --4.44471826e+00 8.12964188e-01 1.91799605e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -54 1.10539569e-06 9.00526678e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.76279203e-01 3.69578224e-01 -1.37212342e-01 ! x y z --8.58447413e+00 -3.12914501e+00 2.65447958e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -55 1.10539569e-06 1.66875324e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.45616929e-01 -2.47231702e-01 -1.19477629e-01 ! x y z -2.19161600e+00 -6.68909269e+00 -1.07794911e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -56 1.10539569e-06 2.61296171e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.21771549e+00 8.22263396e-02 -2.28049506e-01 ! x y z --7.77955309e-01 -5.04420236e+00 2.39397114e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -57 1.10539569e-06 7.84583650e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.35031870e-01 -1.49752491e-01 7.21876006e-02 ! x y z -3.53139295e+00 -9.14063147e+00 -3.02347388e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -58 1.10539569e-06 8.15353611e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.16127731e-01 2.19457827e-01 -2.86640647e-02 ! x y z --5.75118301e+00 -8.30744977e+00 -7.52286441e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -59 1.10539569e-06 9.46502491e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.14567897e-01 -1.70158031e-01 -2.06385746e-02 ! x y z -3.52462324e+00 8.64965730e+00 9.71699819e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -60 1.10539569e-06 1.06023870e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.68326520e-01 3.43200640e-01 -3.18358134e-03 ! x y z --5.99833054e+00 6.50593164e+00 -3.52076060e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -61 1.10539569e-06 2.85747597e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.22743812e+00 4.54544048e-01 -3.53405167e-01 ! x y z --2.13063294e+00 4.75488906e+00 -1.41396521e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -62 1.10539569e-06 1.11156710e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.90230366e-01 8.52524184e-02 1.64539092e-01 ! x y z --1.33697442e+00 -8.59490437e+00 4.64492986e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -63 1.10539569e-06 7.47979433e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.26924952e-01 1.39246422e-01 -4.37240131e-02 ! x y z --4.02802590e+00 9.60769401e+00 9.33600395e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -64 1.10539569e-06 2.36256862e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.11787086e+00 1.27230662e-01 -2.97194116e-02 ! x y z --6.51392127e-01 -5.87014579e+00 -2.95793081e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -65 1.10539569e-06 1.36083964e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.68540327e-01 1.32853908e-01 -2.74248856e-01 ! x y z --2.28636154e+00 -7.40032660e+00 1.15230861e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -66 1.10539569e-06 2.12644561e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --9.02814420e-01 4.51623081e-01 3.31973730e-02 ! x y z --2.80126142e+00 -5.58560982e+00 -1.92746316e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -67 1.10539569e-06 8.14605985e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.85382182e-01 1.43901530e-03 1.15478430e-02 ! x y z --2.59844799e-02 -1.01271155e+01 4.30703613e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -68 1.10539569e-06 9.27538405e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.61232954e-01 2.20844429e-01 -1.22567174e-01 ! x y z --4.75444340e+00 8.15211658e+00 6.72406103e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -69 1.10539569e-06 1.70813096e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -7.62285263e-01 2.77535790e-01 7.50460161e-03 ! x y z --2.38561781e+00 6.55492046e+00 -5.72763423e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -70 1.10539569e-06 2.71135229e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.33966979e-01 1.05145872e+00 -3.79026357e-01 ! x y z --4.80055687e+00 2.37239115e+00 -1.45444659e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -71 1.10539569e-06 9.29779721e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.09086355e-01 -4.25927399e-01 -5.92609052e-02 ! x y z -8.83426715e+00 -1.97333711e+00 -2.57514440e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -72 1.10539569e-06 2.48562722e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.52243615e-01 -1.03472811e+00 -9.20470885e-03 ! x y z -5.14745205e+00 -2.71638935e+00 1.85243774e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -73 1.10539569e-06 1.57390173e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.37564413e-01 -7.02794064e-01 -1.30853933e-01 ! x y z -6.84384400e+00 -2.13579218e+00 -7.74318491e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -74 1.10539569e-06 1.33469063e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.24670248e-01 -3.60722160e-01 -5.89339466e-03 ! x y z -4.43972950e+00 6.48102200e+00 9.11331663e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -75 1.10539569e-06 6.47192566e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.61797829e-02 -3.04486498e-01 4.89626567e-03 ! x y z -1.10606484e+01 2.04593839e+00 -1.21551157e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -76 1.10539569e-06 1.47162297e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.43061104e-01 -6.84452631e-01 -2.55174546e-02 ! x y z -7.11009943e+00 1.43236802e+00 1.93726736e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -77 1.10539569e-06 8.63668982e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.85992031e-02 -4.08122100e-01 2.78731319e-02 ! x y z -9.76823729e+00 -6.46270469e-01 6.80833278e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -78 1.10539569e-06 2.36804818e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -6.91157068e-01 -7.91937234e-01 3.82540684e-01 ! x y z -4.02153165e+00 4.19828096e+00 1.29880450e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -79 1.10539569e-06 9.14394348e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.51098607e-01 2.59366529e-01 -1.55386862e-02 ! x y z --5.06657998e+00 -7.18889701e+00 -3.53716670e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -80 1.10539569e-06 1.26910472e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.23152493e-01 3.88117899e-01 -2.00809903e-01 ! x y z --4.53578552e+00 6.18184215e+00 2.34837457e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -81 1.10539569e-06 6.33003056e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.28512111e-01 2.64697808e-01 -7.13482769e-02 ! x y z --9.33728759e+00 5.41684777e+00 3.59675928e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -82 1.10539569e-06 2.22271119e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.71802215e-01 -9.92089651e-01 5.32987899e-02 ! x y z -5.68468560e+00 2.17000210e+00 -9.37982171e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -83 1.10539569e-06 1.74051421e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -7.86568140e-01 2.32350855e-01 6.38082505e-02 ! x y z --1.88303694e+00 6.63245612e+00 -8.28072975e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -84 1.10539569e-06 9.31517858e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.72567042e-01 -2.35531924e-01 4.96465701e-02 ! x y z -4.70939503e+00 -7.96544948e+00 -1.77358479e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -85 1.10539569e-06 2.46953975e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.20593248e-01 1.08358397e+00 3.52755169e-01 ! x y z --5.53042972e+00 1.53963953e+00 2.87126462e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -86 1.10539569e-06 1.50876657e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.56037714e-01 -4.53117788e-01 -4.40686710e-02 ! x y z -4.32334289e+00 -5.53881012e+00 2.32535969e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -87 1.10539569e-06 6.79814743e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.71412212e-01 -2.72520775e-01 2.76595629e-02 ! x y z -9.35632724e+00 -5.87401170e+00 1.71700376e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -88 1.10539569e-06 1.37728604e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.52644996e-01 4.52246640e-01 1.36128602e-01 ! x y z --5.47133577e+00 5.50145396e+00 -3.76988545e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -89 1.10539569e-06 1.75150424e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.17549909e-01 -7.69243942e-01 2.30477642e-01 ! x y z -6.02966869e+00 -2.44216734e+00 -2.26348882e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -90 1.10539569e-06 1.82243275e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.53300892e-01 1.05420241e-01 6.10357233e-03 ! x y z --7.23180710e-01 6.14709501e+00 -2.81238589e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -91 1.10539569e-06 1.04051592e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.76117727e-02 -4.92462500e-01 -7.89640418e-03 ! x y z -8.70186553e+00 7.97359443e-01 -1.82242405e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -92 1.10539569e-06 9.04059360e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.13222540e-01 -3.73863988e-01 -4.13231963e-04 ! x y z -8.30795424e+00 -4.74104957e+00 -9.20828866e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -93 1.10539569e-06 2.08546876e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.00253331e-02 9.90845414e-01 3.30248466e-02 ! x y z --6.29625004e+00 -2.72856242e-01 4.06580221e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -94 1.10539569e-06 6.61548636e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.95782619e-01 1.07222597e-01 -2.12686228e-02 ! x y z --3.48575733e+00 1.03058724e+01 2.52560893e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -95 1.10539569e-06 1.26032554e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.86024380e-01 -5.25659190e-01 -1.93449627e-02 ! x y z -6.91385395e+00 -3.87796179e+00 1.75371157e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -96 1.10539569e-06 2.28076998e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.65990862e-01 6.01183979e-01 2.43471322e-01 ! x y z --3.24575804e+00 5.02670056e+00 -8.53001170e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -97 1.10539569e-06 7.05221824e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.39637261e-01 -3.01107928e-01 -4.31558543e-02 ! x y z -9.00360957e+00 -4.71459755e+00 3.83918395e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -98 1.10539569e-06 6.39269462e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.44254383e-01 -1.79341582e-01 -1.04974267e-03 ! x y z -6.75937463e+00 9.18023255e+00 7.52738258e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -99 1.10539569e-06 1.79085174e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.13843608e-01 1.99633270e-01 -1.80207407e-01 ! x y z --1.29939496e+00 -6.46953788e+00 -1.46932255e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -100 1.10539569e-06 1.32458326e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.32126102e-01 -2.47196136e-02 -2.42353871e-02 ! x y z -2.92190575e-01 -7.70428120e+00 1.58876111e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -101 1.10539569e-06 1.52095833e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --6.91088291e-01 -1.16411821e-01 -1.71283865e-01 ! x y z -1.53252063e+00 -7.10600791e+00 -1.39483264e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -102 1.10539569e-06 1.58389732e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.73673516e-01 -4.82303150e-01 -6.92080251e-02 ! x y z -4.56925372e+00 -5.55908510e+00 8.00568861e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -103 1.10539569e-06 6.78999949e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.70326377e-01 1.68246296e-01 4.59682324e-02 ! x y z --6.01982148e+00 9.02506097e+00 2.30638849e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -104 1.10539569e-06 1.01600407e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.27129315e-01 -1.60689947e-01 1.56748833e-01 ! x y z -2.47314908e+00 -8.47972366e+00 -1.94836513e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -105 1.10539569e-06 2.39114531e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -9.42557812e-01 5.29448416e-01 3.49342967e-01 ! x y z --3.26429676e+00 4.46194553e+00 2.04186289e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -106 1.10539569e-06 7.00793819e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.89445458e-01 1.51184189e-01 6.04053839e-02 ! x y z --4.58420182e+00 9.69365003e+00 -2.04005101e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -107 1.10539569e-06 1.90283015e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.56335053e-01 -2.54662167e-01 1.41334047e-01 ! x y z -2.10228445e+00 5.79525323e+00 -2.36721595e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -108 1.10539569e-06 2.96231967e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.36313774e+00 -1.39484993e-03 -3.33851852e-01 ! x y z --1.80152731e-01 -5.22233557e+00 9.45811316e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -109 1.10539569e-06 1.11806853e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.46999479e-01 4.69183085e-01 1.48273567e-02 ! x y z --7.62737255e+00 4.03088377e+00 -2.87208744e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -110 1.10539569e-06 3.12227105e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -8.92685552e-01 -1.19778080e+00 7.96108948e-02 ! x y z -4.05065890e+00 2.97803027e+00 -9.38454309e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -111 1.10539569e-06 2.24585100e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.16543398e-01 6.44376993e-01 2.28097541e-01 ! x y z --3.89719354e+00 -4.47060943e+00 -1.39962365e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -112 1.10539569e-06 3.76823843e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.19421123e+00 1.32084250e+00 -7.72400022e-02 ! x y z --3.08133686e+00 2.88161171e+00 2.10766368e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -113 1.10539569e-06 1.85829977e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.64160987e-01 6.79541760e-01 1.90515744e-02 ! x y z --5.13431676e+00 4.27566051e+00 6.03635853e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -114 1.10539569e-06 3.49744654e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.56537224e+00 5.82910904e-01 -8.86453767e-02 ! x y z --1.64314439e+00 4.51635617e+00 5.81379936e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -115 1.10539569e-06 2.44627752e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.21489220e-01 -9.80146980e-01 3.22082629e-01 ! x y z -4.69945017e+00 -3.07448039e+00 -1.66849603e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -116 1.10539569e-06 1.48946902e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.60792560e-01 -6.87644911e-01 3.66413788e-02 ! x y z -6.37303278e+00 -1.67465930e+00 -3.52540571e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -117 1.10539569e-06 9.48472009e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.15102464e-01 -1.75149973e-01 -2.85549434e-02 ! x y z -3.17699950e+00 8.02980191e+00 -3.56193766e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -118 1.10539569e-06 1.46132866e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.45225828e-01 5.98258841e-01 -7.45003268e-02 ! x y z --6.51260143e+00 -3.60690443e+00 1.16008799e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -119 1.10539569e-06 9.12611171e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.84725575e-01 -3.85457639e-01 -5.09774260e-02 ! x y z -8.51718303e+00 -4.26677573e+00 1.26149786e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -120 1.10539569e-06 1.22021916e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.44841297e-01 -5.39901332e-01 1.54755735e-01 ! x y z -7.76971331e+00 1.39084378e+00 -2.38817543e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -121 1.10539569e-06 6.51657309e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.95970426e-02 -3.07995454e-01 -2.51102574e-02 ! x y z -1.12576282e+01 -6.78821641e-01 -4.95031697e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -122 1.10539569e-06 8.35698784e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -3.58295595e-01 -4.07805583e-02 -1.62744429e-01 ! x y z -5.65842623e-02 9.77741717e+00 -2.12236760e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -123 1.10539569e-06 1.08014635e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.57112225e-01 3.26038545e-01 -1.68902691e-01 ! x y z --5.23071639e+00 -6.75806936e+00 -2.04006316e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -124 1.10539569e-06 1.02550770e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.30953626e-01 -1.21419747e-01 -1.92524368e-01 ! x y z -2.35863321e+00 -8.68071542e+00 1.79033554e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -125 1.10539569e-06 6.95814419e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.10223043e-02 3.29698672e-01 -2.33216443e-02 ! x y z --1.05036416e+01 -1.18257626e-01 2.99156731e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -126 1.10539569e-06 1.21782856e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.37540070e-01 -4.68051579e-01 3.12017441e-02 ! x y z -6.67938807e+00 -4.87057933e+00 -1.80758676e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -127 1.10539569e-06 1.27648491e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.70107622e-01 3.81394049e-01 2.94976958e-02 ! x y z --5.04123374e+00 6.27657958e+00 5.88259014e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -128 1.10539569e-06 1.62877006e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.55138385e-01 -6.23311530e-01 5.02376028e-02 ! x y z -5.28132760e+00 -4.06425983e+00 -2.57712837e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -129 1.10539569e-06 2.66986578e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.13493035e-02 -1.22710114e+00 -3.17757228e-01 ! x y z -5.28592709e+00 -7.54459447e-01 1.59593511e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -130 1.10539569e-06 6.56076786e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.44014453e-01 -1.91481938e-01 3.64286209e-02 ! x y z -6.89410930e+00 -7.97798070e+00 3.86568598e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -131 1.10539569e-06 1.47791991e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --8.58860487e-02 6.98105661e-01 -6.05263656e-02 ! x y z --7.39418369e+00 -8.88083586e-01 3.68318815e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -132 1.10539569e-06 1.18316891e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.30463297e-01 5.39537186e-01 8.94135251e-02 ! x y z --7.91933257e+00 2.19758719e+00 -1.62232353e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -133 1.10539569e-06 1.53219837e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.10956489e-01 -7.21494396e-01 5.19355079e-02 ! x y z -7.24010486e+00 -1.09301700e+00 -1.60852706e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -134 1.10539569e-06 6.43300411e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.88041757e-02 -3.04722867e-01 -3.14812865e-02 ! x y z -1.07993595e+01 -1.40429215e+00 2.96552456e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -135 1.10539569e-06 8.51935749e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.86591612e-01 -4.29771812e-02 -1.05863039e-01 ! x y z -1.97234762e+00 -9.03918811e+00 -3.56317371e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -136 1.10539569e-06 7.63507559e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.88157405e-01 2.88666278e-01 1.10921677e-01 ! x y z --8.87614786e+00 -5.45415368e+00 -8.46055713e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -137 1.10539569e-06 8.42313899e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.55471151e-01 3.65848047e-01 -8.97493453e-03 ! x y z --9.20044180e+00 -3.87411273e+00 -4.84829815e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -138 1.10539569e-06 6.72600246e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.87375637e-01 -1.36801833e-01 -1.72137474e-02 ! x y z -4.76338219e+00 1.00717170e+01 2.97994928e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -139 1.10539569e-06 1.02461717e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.70166209e-01 -4.01549931e-01 6.36091815e-02 ! x y z -7.45419134e+00 4.96228856e+00 -6.59900898e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -140 1.10539569e-06 6.87840289e-04 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.61307437e-01 -2.72164290e-01 8.71883296e-02 ! x y z -8.60206869e+00 6.06917549e+00 2.98663214e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -141 1.10539569e-06 3.92140957e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.78539217e+00 5.34215902e-01 -1.20626554e-01 ! x y z --1.35880150e+00 -4.33539223e+00 6.63369806e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -142 1.10539569e-06 2.70800787e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --2.31436788e-01 5.48162971e-01 1.64734173e-02 ! x y z --7.51357402e+00 -3.16907615e+00 -1.32982328e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -143 1.10539569e-06 2.04544912e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.94940717e-01 -3.37625386e-01 -4.75480276e-02 ! x y z -6.93658760e+00 6.20070236e+00 -1.01079366e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -144 1.10539569e-06 6.37587428e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -9.71735603e-01 -9.61566886e-01 3.24968572e-01 ! x y z -3.81159593e+00 3.54522020e+00 -1.00291449e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -145 1.10539569e-06 2.08933536e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.75759753e-01 4.21380582e-01 6.28003104e-02 ! x y z --8.52008102e+00 3.47130251e+00 9.83757295e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -146 1.10539569e-06 1.50397186e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --1.39588743e-02 -3.30180335e-01 -1.05230287e-02 ! x y z -1.07866352e+01 -4.97967898e-01 1.76757426e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -147 1.10539569e-06 3.38562140e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --7.29920730e-01 5.89061070e-02 -1.20920053e-01 ! x y z --7.74235710e-01 -7.10977778e+00 1.52865443e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -148 1.10539569e-06 2.32741739e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -4.96020721e-01 7.20447253e-02 -1.09717020e-01 ! x y z --2.02019828e+00 7.69560863e+00 -3.69254498e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -149 1.10539569e-06 2.12332437e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --4.28791847e-01 -1.88187724e-01 1.60873382e-02 ! x y z -3.57426531e+00 -8.26404401e+00 -1.76157927e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -150 1.10539569e-06 1.76485902e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.55182279e-01 1.52620292e-01 -6.22833990e-02 ! x y z --3.88412930e+00 -9.19453465e+00 -7.37459129e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -151 1.10539569e-06 1.57284431e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --3.47785192e-01 9.69744008e-03 -5.97342340e-03 ! x y z --3.78784685e-01 -1.06242178e+01 1.68422812e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -152 1.10539569e-06 5.30159037e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.29951992e-01 1.09612807e+00 -3.27460884e-01 ! x y z --5.22124087e+00 1.65375984e+00 1.97215321e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -153 1.10539569e-06 2.55861101e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.21007349e-02 5.32952897e-01 -1.70855331e-01 ! x y z --8.35827288e+00 -7.84724150e-01 2.96312578e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -154 1.10539569e-06 7.10383113e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius --5.72959788e-01 -1.44639128e+00 -1.28014693e-01 ! x y z -4.55403004e+00 -1.72466270e+00 -1.28754288e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -155 1.10539569e-06 1.36743334e-03 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -2.14648375e-01 2.10911522e-01 -9.00355256e-03 ! x y z --7.51711446e+00 7.37660713e+00 -4.51391831e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -156 1.10539569e-06 2.65261394e-02 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -5.50228741e-02 3.86702728e-01 2.53976723e-02 ! x y z --9.89354846e+00 1.39418207e+00 5.42336207e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -157 1.10539569e-06 4.92529404e-02 ! ID / G*Mass / Rhill -1.09799198e-05 ! Radius -1.00902512e+00 -1.88090001e-01 3.31281617e-01 ! x y z -1.00573195e+00 5.95735671e+00 3.15059243e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1 +3 0.000120026935827952456416 0.010044948626436044442 +4.25875607065040958e-05 +0.87405601066282501144 -0.50863684909036299686 2.1125685010193420466e-05 +3.058408673972023793 5.407722806790176349 -0.00026983464502404899522 +0.0 0.0 0.33069999999999999396 +4.774949887540911433 0.034051061217069346033 2301.2115366660092022 diff --git a/examples/symba_chambers_2013/sun_MsunAUYR.in b/examples/symba_chambers_2013/sun_MsunAUYR.in index ceb04eea1..45e4aa7ef 100644 --- a/examples/symba_chambers_2013/sun_MsunAUYR.in +++ b/examples/symba_chambers_2013/sun_MsunAUYR.in @@ -1,7 +1,11 @@ -0 ! id -39.476926408897626 ! G*Mass -0.004650467260962157 ! Radius -0.0 !4.7535806948127355e-12 ! J2 -0.0 !-2.2473967953572827e-18 ! J4 -0.0 0.0 0.07 ! Principle axes moments of inertia -11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) +0 +39.476926408897626 +0.004650467260962157 +4.7535806948127355e-12 +-2.2473967953572827e-18 +0.0 +0.0 +0.07 +11.209306302144773 +-38.759372036774764 +82.25088158389266 diff --git a/python/swiftest/swiftest/constants.py b/python/swiftest/swiftest/constants.py index 7b031b4b7..caf8f8fe7 100644 --- a/python/swiftest/swiftest/constants.py +++ b/python/swiftest/swiftest/constants.py @@ -13,3 +13,4 @@ # Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) J2Sun = np.longdouble(2.198e-7) J4Sun = np.longdouble(-4.805e-9) + diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 76c973533..297b9df68 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -1,6 +1,8 @@ import swiftest import numpy as np from astroquery.jplhorizons import Horizons +import astropy.units as u +from astropy.coordinates import SkyCoord import datetime from datetime import date import xarray as xr @@ -74,6 +76,33 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): 'Pluto': np.longdouble(1188.3e3 / swiftest.AU2M) } + planetrot = { + 'Sun' : np.longdouble(2*np.pi / 25.05) / swiftest.JD2S, # Approximate + 'Mercury': np.longdouble(2*np.pi / 58.646) / swiftest.JD2S, + 'Venus': np.longdouble(2*np.pi / 243.0226 ) / swiftest.JD2S, + 'Earth': np.longdouble(2*np.pi / 0.99726968) / swiftest.JD2S, + 'Mars': np.longdouble(2*np.pi / 1.025957) / swiftest.JD2S, + 'Jupiter': np.longdouble(2*np.pi / (9.9250 / 24.0) ) / swiftest.JD2S, + 'Saturn': np.longdouble(2*np.pi / (10.656 / 24.0) ) / swiftest.JD2S, + 'Uranus': np.longdouble(2*np.pi / 0.71833) / swiftest.JD2S, + 'Neptune': np.longdouble(2*np.pi / 0.6713) / swiftest.JD2S, + 'Pluto': np.longdouble(2*np.pi / 6.387230) / swiftest.JD2S + } + + planetIpz = { # Only the polar moments of inertia are used currently. Where the quantity is unkown, we just use the value of a sphere = 0.4 + 'Sun' : np.longdouble(0.070), + 'Mercury' : np.longdouble(0.346), + 'Venus': np.longdouble(0.4), + 'Earth': np.longdouble(0.3307), + 'Mars': np.longdouble(0.3644), + 'Jupiter': np.longdouble(0.2756), + 'Saturn': np.longdouble(0.22), + 'Uranus': np.longdouble(0.23), + 'Neptune': np.longdouble(0.23), + 'Pluto': np.longdouble(0.4) + } + + # Unit conversion factors DCONV = swiftest.AU2M / param['DU2M'] VCONV = (swiftest.AU2M / swiftest.JD2S) / (param['DU2M'] / param['TU2S']) @@ -84,8 +113,14 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): Rcb = np.array([swiftest.RSun / param['DU2M']]) J2RP2 = np.array([swiftest.J2Sun * (swiftest.RSun / param['DU2M']) ** 2]) J4RP4 = np.array([swiftest.J4Sun * (swiftest.RSun / param['DU2M']) ** 4]) + + solarpole = SkyCoord(ra=286.13 * u.degree, dec=63.87 * u.degree) + solarrot = planetrot['Sun'] * param['TU2S'] + rotcb = solarpole.cartesian * solarrot + Ipsun = np.array([0.0, 0.0, planetIpz['Sun']]) + cbid = np.array([0]) - cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4]) + cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4, Ipsun[0], Ipsun[1], Ipsun[2], rotcb.x, rotcb.y, rotcb.z ]) # Horizons date time internal variables tstart = datetime.date.fromisoformat(ephemerides_start_date) @@ -155,6 +190,12 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): Rhill = [] Rpl = [] GMpl = [] + Ip_x = [] + Ip_y = [] + Ip_z = [] + rot_x = [] + rot_y = [] + rot_z = [] pldata = {} if ispl: @@ -191,19 +232,35 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): p10.append(pldata[key].vectors()['vx'][0] * VCONV) p11.append(pldata[key].vectors()['vy'][0] * VCONV) p12.append(pldata[key].vectors()['vz'][0] * VCONV) + pvec = np.vstack([p1, p2, p3, p4, p5, p6]) if ispl: Rpl.append(planetradius[key] * DCONV) GMpl.append(GMcb[0] / MSun_over_Mpl[key]) + pvec = np.vstack([pvec, GMpl, Rpl]) + # Generate planet value vectors if (param['RHILL_PRESENT'] == 'YES'): Rhill.append(pldata[key].elements()['a'][0] * DCONV * (3 * MSun_over_Mpl[key]) ** (-THIRDLONG)) - pvec = np.vstack([p1, p2, p3, p4, p5, p6, GMpl, Rpl, Rhill, p7, p8, p9, p10, p11, p12]) - else: - pvec = np.vstack([p1, p2, p3, p4, p5, p6, GMpl, Rpl, p7, p8, p9, p10, p11, p12]) + pvec = np.vstack([pvec, Rhill]) + if (param['ROTATION'] == 'YES'): + RA = pldata[key].ephemerides()['NPole_RA'][0] + DEC = pldata[key].ephemerides()['NPole_DEC'][0] + + rotpole = SkyCoord(ra=RA * u.degree, dec=DEC * u.degree) + rotrate = planetrot[key] * param['TU2S'] + rot = rotpole.cartesian * rotrate + Ip = np.array([0.0, 0.0, planetIpz[key]]) + Ip_x.append(Ip[0]) + Ip_y.append(Ip[1]) + Ip_z.append(Ip[2]) + rot_x.append(rot.x) + rot_y.append(rot.y) + rot_z.append(rot.z) + pvec = np.vstack([pvec, Ip_x, Ip_y, Ip_z, rot_x, rot_y, rot_z]) else: - pvec = np.vstack([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12]) plab = tlab.copy() - + pvec = np.vstack([pvec, p7, p8, p9, p10, p11, p12]) + if idval is None: plid = np.array([planetid[key]], dtype=int) else: diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index ecc5051b0..1116f6509 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -741,6 +741,12 @@ def swiftest_xr2infile(ds, param, framenum=-1): RSun = np.double(cb['Radius']) J2 = np.double(cb['J_2']) J4 = np.double(cb['J_4']) + Ip_xcb = np.double(cb['Ip_x']) + Ip_ycb = np.double(cb['Ip_y']) + Ip_zcb = np.double(cb['Ip_z']) + rot_xcb = np.double(cb['rot_x']) + rot_ycb = np.double(cb['rot_y']) + rot_zcb = np.double(cb['rot_z']) cbid = int(0) if param['IN_TYPE'] == 'ASCII': @@ -751,6 +757,13 @@ def swiftest_xr2infile(ds, param, framenum=-1): print(RSun, file=cbfile) print(J2, file=cbfile) print(J4, file=cbfile) + if param['ROTATION'] == 'YES': + print(Ip_xcb, file=cbfile) + print(Ip_ycb, file=cbfile) + print(Ip_zcb, file=cbfile) + print(rot_xcb, file=cbfile) + print(rot_ycb, file=cbfile) + print(rot_zcb, file=cbfile) cbfile.close() plfile = open(param['PL_IN'], 'w') @@ -770,6 +783,9 @@ def swiftest_xr2infile(ds, param, framenum=-1): print(pli['capom'].values, pli['omega'].values, pli['capm'].values, file=plfile) else: print(f"{param['IN_FORM']} is not a valid input format type.") + if param['ROTATION'] == 'YES': + print(pli['Ip_x'].values, pli['Ip_y'].values, pli['Ip_z'].values, file=plfile) + print(pli['rot_x'].values, pli['rot_y'].values, pli['rot_z'].values, file=plfile) plfile.close() # TP file @@ -795,6 +811,14 @@ def swiftest_xr2infile(ds, param, framenum=-1): cbfile.write_record(np.double(RSun)) cbfile.write_record(np.double(J2)) cbfile.write_record(np.double(J4)) + if param['ROTATION'] == 'YES': + cbfile.write_record(np.double(Ip_xcb)) + cbfile.write_record(np.double(Ip_ycb)) + cbfile.write_record(np.double(Ip_zcb)) + cbfile.write_record(np.double(rot_xcb)) + cbfile.write_record(np.double(rot_ycb)) + cbfile.write_record(np.double(rot_zcb)) + cbfile.close() plfile = FortranFile(param['PL_IN'], 'w') @@ -829,9 +853,15 @@ def swiftest_xr2infile(ds, param, framenum=-1): plfile.write_record(v6) plfile.write_record(Gmass) if param['RHILL_PRESENT'] == 'YES': - rhill = pl['Rhill'].values - plfile.write_record(rhill) + plfile.write_record(pl['Rhill'].values) plfile.write_record(radius) + if param['ROTATION'] == 'YES': + plfile.write_record(pl['Ip_x'].values) + plfile.write_record(pl['Ip_y'].values) + plfile.write_record(pl['Ip_z'].values) + plfile.write_record(pl['rot_x'].values) + plfile.write_record(pl['rot_y'].values) + plfile.write_record(pl['rot_z'].values) plfile.close() tpfile = FortranFile(param['TP_IN'], 'w') ntp = tp.id.count().values diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index 78f262df8..e7b8c560b 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -27,12 +27,12 @@ def __init__(self, codename="Swiftest", param_file=""): 'OUT_TYPE': 'REAL8', 'OUT_FORM': "EL", 'OUT_STAT': "REPLACE", - 'CHK_RMAX': "1000.0", - 'CHK_EJECT': "1000.0", - 'CHK_RMIN': f"{constants.RSun / constants.AU2M}", - 'CHK_QMIN': f"{constants.RSun / constants.AU2M}", + 'CHK_RMAX': "-1.0", + 'CHK_EJECT': "-1.0", + 'CHK_RMIN': "-1.0", + 'CHK_QMIN': "-1.0", 'CHK_QMIN_COORD': "HELIO", - 'CHK_QMIN_RANGE': f"{constants.RSun / constants.AU2M} 1000.0", + 'CHK_QMIN_RANGE': "-1.0 -1.0", 'ENC_OUT': "enc.dat", 'MU2KG': constants.MSun, 'TU2S': constants.JD2S, From 7203c8149b3935f8082c16e29d17972dd3d8c81f Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 16:40:36 -0400 Subject: [PATCH 168/315] Added initial conditions generator for Chambers run --- examples/symba_chambers_2013/init_cond.py | 38 +- examples/symba_chambers_2013/param.in | 3 +- .../symba_chambers_2013/pl_chambers_2013.in | 944 +++++++++++++++++- python/swiftest/swiftest/init_cond.py | 35 +- python/swiftest/swiftest/simulation_class.py | 12 +- 5 files changed, 1007 insertions(+), 25 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 5cda5056e..5f6782491 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import swiftest import numpy as np -import os +from numpy.random import default_rng # Initialize simulation object sim = swiftest.Simulation() @@ -10,9 +10,11 @@ MU2KG = swiftest.MSun TU2S = swiftest.YR2S DU2M = swiftest.AU2M +GU = swiftest.GC / (DU2M**3 / (MU2KG * TU2S**2)) sim.param['MU2KG'] = MU2KG sim.param['TU2S'] = TU2S sim.param['DU2M'] = DU2M +sim.param['GU'] = GU # Simulation time parameters sim.param['T0'] = 0.0 @@ -35,10 +37,14 @@ sim.param['ROTATION'] = "YES" sim.param['CHK_RMAX'] = 1000.0 sim.param['CHK_EJECT'] = 1000.0 +sim.param['IN_FORM'] = 'EL' +sim.param['OUT_FORM'] = 'EL' # Add central body sim.add("Sun") -sim.add("Earth") +GMcb = sim.ds['GMass'].values[0] +sim.add("Jupiter") +sim.add("Saturn") # Add bodies described in Chambers (2013) Sec. 2.1, with the uniform spatial distribution and two bodies sizes (big and small) Nb = 14 @@ -49,7 +55,35 @@ Rb = (3 * Mb / (4 * np.pi * dens) )**(1.0 / 3.0) Rs = (3 * Ms / (4 * np.pi * dens) )**(1.0 / 3.0) +# Define the initial orbital elements of the big and small bodies +avalb = default_rng().uniform(0.3, 2.0, Nb) +avals = default_rng().uniform(0.3, 2.0, Ns) +evalb = default_rng().uniform(0.0, 0.001, Nb) +evals = default_rng().uniform(0.0, 0.001, Ns) +incvalb = default_rng().uniform(0.0, 0.0005 * 180 / np.pi, Nb) +incvals = default_rng().uniform(0.0, 0.0005 * 180 / np.pi, Ns) +capomvalb = default_rng().uniform(0.0, 360.0, Nb) +capomvals = default_rng().uniform(0.0, 360.0, Ns) +omegavalb = default_rng().uniform(0.0, 360.0, Nb) +omegavals = default_rng().uniform(0.0, 360.0, Ns) +capmvalb = default_rng().uniform(0.0, 360.0, Nb) +capmvals = default_rng().uniform(0.0, 360.0, Ns) +GMvalb = np.full(Nb, Mb * GU) +GMvals = np.full(Ns, Ms * GU) +Rvalb = np.full(Nb, Rb) +Rvals = np.full(Ns, Rs) +Rhb = avalb * (GMvalb / (3 * GMcb))**(1.0/3.0) +Rhs = avals * (GMvals / (3 * GMcb))**(1.0/3.0) +# Give the bodies unique ids +idb = np.arange(100, 100 + Nb) +ids = np.arange(100 + Nb, 100 + Nb + Ns) + +# Populate the simulation object with the two types of bodies +sim.addp(idb, avalb, evalb, incvalb, capomvalb, omegavalb, capmvalb, GMpl=GMvalb, Rpl=Rvalb, Rhill=Rhb) +sim.addp(ids, avals, evals, incvals, capomvals, omegavals, capmvals, GMpl=GMvals, Rpl=Rvals, Rhill=Rhs) + +# Save everything to a set of initial conditions files sim.save("param.in") diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index d096d13fe..19e98e87a 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -21,7 +21,7 @@ CHK_QMIN_RANGE -1.0 -1.0 MU2KG 1.988409870698051e+30 TU2S 31557600.0 DU2M 149597870700.0 -IN_FORM XV +IN_FORM EL ENC_OUT enc.dat EXTRA_FORCE NO DISCARD_OUT discard.out @@ -34,4 +34,5 @@ ROTATION YES TIDES NO ENERGY YES GR NO +GU 39.476926408897626 ENERGY_OUT energy.dat diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 56d3f87e4..67d6989d2 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -1,7 +1,937 @@ -1 -3 0.000120026935827952456416 0.010044948626436044442 -4.25875607065040958e-05 -0.87405601066282501144 -0.50863684909036299686 2.1125685010193420466e-05 -3.058408673972023793 5.407722806790176349 -0.00026983464502404899522 -0.0 0.0 0.33069999999999999396 -4.774949887540911433 0.034051061217069346033 2301.2115366660092022 +156 +5 0.03769225108898567778 0.35527124629249239585 +0.00046732617030490929307 +5.2035240151214816606 0.048518677336151047608 1.303568872392780964 +100.51672855018520636 273.38350380059858935 317.24733983021741324 +0.0 0.0 0.27560000000000001164 +-80.96882015576837074 -2387.9972166758053216 5008.7356633679251408 +6 0.01128589982009127331 0.43766275227962878915 +0.00038925687730393611812 +9.581843040035108672 0.052193289679895830957 2.486259885154824989 +113.5952699440524043 335.70375572759667193 225.29914557362599226 +0.0 0.0 0.22000000000000000111 +441.93102714484842597 378.52937229654817222 5135.9113502360652523 +100 1.105353939449133635e-05 0.0076985326356758955327 +2.365334758890906669e-05 +1.6971843938499941995 0.0005816364466293669124 0.026187138610341612749 +199.66295678003845637 349.1838313868397563 239.5201319664316486 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +101 1.105353939449133635e-05 0.0033890547724920599881 +2.365334758890906669e-05 +0.7471359987644425882 0.0001484221862068907502 0.015912119531244738047 +7.72758829713570794 98.74578965353445881 292.48405218591960875 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +102 1.105353939449133635e-05 0.0032403861730961017119 +2.365334758890906669e-05 +0.71436117806925114593 0.0006667054143762592925 0.02623486192401118175 +42.268600860678539277 152.49698993249327827 151.45780278371265126 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +103 1.105353939449133635e-05 0.00848716742472066395 +2.365334758890906669e-05 +1.8710433251236489038 0.0009470568874946718764 0.022705939228401819663 +38.80730095910011812 143.34784343975428555 218.97185967315348876 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +104 1.105353939449133635e-05 0.004200287321695052973 +2.365334758890906669e-05 +0.9259767321153884456 0.00016780856600745607692 0.008111571611109064106 +275.52852024631755512 255.91035494922905968 283.72241775520802776 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +105 1.105353939449133635e-05 0.008200656366547455989 +2.365334758890906669e-05 +1.8078803667251066578 0.0005806820778782817395 0.0043050823832896005852 +262.76594876192444872 197.55827100651990236 359.12597183160295344 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +106 1.105353939449133635e-05 0.0031948304428970366643 +2.365334758890906669e-05 +0.70431816363998178687 0.0006166870106254423523 0.028312766571177344632 +100.38580777052690962 247.08615435134802851 28.274821850602428697 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +107 1.105353939449133635e-05 0.00645602527104512983 +2.365334758890906669e-05 +1.4232667256020528068 0.0003621838900236009598 0.012197930522699866954 +189.06372569967658137 282.1051532665543391 175.25556542499867874 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +108 1.105353939449133635e-05 0.0041177716184015826697 +2.365334758890906669e-05 +0.90778568578166862757 0.00088526942168412907277 0.0052077153285733724167 +355.61137098230727815 88.33816057346382422 35.585620637422806567 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +109 1.105353939449133635e-05 0.00862613046390682299 +2.365334758890906669e-05 +1.9016785010188288485 0.00044486325805035754379 0.0175194201364592822 +74.14924815238387623 142.82151728160823723 178.34909057749027284 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +110 1.105353939449133635e-05 0.004510164863223143653 +2.365334758890906669e-05 +0.9942909619010631417 0.00081444817122918432024 0.00707240791737578315 +68.31335729815678803 294.6246189285234891 122.92252049539324332 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +111 1.105353939449133635e-05 0.004651281910070013023 +2.365334758890906669e-05 +1.0254010007810474558 0.0004312636045460260673 0.01674019444109412641 +337.31604521335424351 171.74369728670052382 266.0027373696372024 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +112 1.105353939449133635e-05 0.0038244126458011504717 +2.365334758890906669e-05 +0.84311306651055351047 2.7875407573919153787e-05 0.017986416975313480882 +225.7229782864748131 308.33509788803951324 112.41779338822905743 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +113 1.105353939449133635e-05 0.0029643452153518679503 +2.365334758890906669e-05 +0.6535064116198798789 0.00037425733872322575592 0.0041403864217484038016 +325.7386399373389736 300.94512487157606984 333.7954171286211249 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +114 1.1053539394491335305e-06 0.0038455497484053390705 +1.0978911404624207699e-05 +1.826471255610046418 0.00087780859820767002683 0.009722642750510790757 +120.71268570369510087 352.6610169497902234 335.05498321080250435 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +115 1.1053539394491335305e-06 0.0017443709230869269861 +1.0978911404624207699e-05 +0.82850139995235116963 0.00031729137906426232822 0.01699303328109756997 +182.6703622068744437 213.3557405525360764 250.28249688543755269 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +116 1.1053539394491335305e-06 0.0020702769104938987164 +1.0978911404624207699e-05 +0.98329277101103618186 0.00058251749032120785 0.011797523288670572553 +312.4959308001525642 359.33855098907400816 162.46970124565356741 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +117 1.1053539394491335305e-06 0.00080530024674720453575 +1.0978911404624207699e-05 +0.38248309059826302025 0.0005969943570699224548 0.01380590580233940004 +48.708972362298950998 330.19391063831329802 102.38386339213280962 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +118 1.1053539394491335305e-06 0.002285280534438147877 +1.0978911404624207699e-05 +1.085410274275427911 0.00025130462779814554623 0.006036721527856849477 +45.867981468353910657 64.60926497341390018 253.24516188255682891 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +119 1.1053539394491335305e-06 0.002898627766350067431 +1.0978911404624207699e-05 +1.3767239126595514076 0.0002530591745570577502 0.006701891775872563864 +256.03674703821604908 136.96778530539529584 171.0933268407595449 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +120 1.1053539394491335305e-06 0.0014542058638660382582 +1.0978911404624207699e-05 +0.6906854374182271883 0.0006003363904860686438 0.004833197414767716714 +56.14180364632849063 273.3261312610867435 199.6250014185157795 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +121 1.1053539394491335305e-06 0.0024981790226714743672 +1.0978911404624207699e-05 +1.1865279283331482407 0.00082336466808019992576 0.018265656692325986377 +132.47659416127314103 48.61694507533226073 207.43492631988763719 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +122 1.1053539394491335305e-06 0.0028828564897507973385 +1.0978911404624207699e-05 +1.3692332324558205148 0.00040127628444019838947 0.007585985018489528435 +343.91044751539715207 196.83240087837353371 62.629566549905092643 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +123 1.1053539394491335305e-06 0.0038943677929657182489 +1.0978911404624207699e-05 +1.8496577337414494835 0.00043859595304759446763 0.011023337424484119101 +72.91657450189477174 344.12080798821472172 100.72699073828245275 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +124 1.1053539394491335305e-06 0.001675555086167977485 +1.0978911404624207699e-05 +0.7958168278400463702 0.00034926098253153968964 0.0099212607809325507185 +135.68666178212228601 296.83136368103197356 107.90664998734122548 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +125 1.1053539394491335305e-06 0.0023748127187634624592 +1.0978911404624207699e-05 +1.1279342232088616083 0.0007746490841826023793 0.017642382003092794973 +268.43319860669271293 252.98510234252850637 120.5395807841271818 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +126 1.1053539394491335305e-06 0.0012043684437486966761 +1.0978911404624207699e-05 +0.5720233744428824263 0.00034480510921434492748 0.017251867284702383787 +154.90093862136961889 356.5658098586184792 57.388355737939328094 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +127 1.1053539394491335305e-06 0.0007890385972653567634 +1.0978911404624207699e-05 +0.37475950429965448896 0.00031644523056148786714 0.027616371909429979908 +171.3578942788073789 299.01930445458822305 225.76712007928702519 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +128 1.1053539394491335305e-06 0.001777100120316001991 +1.0978911404624207699e-05 +0.84404636539789934524 0.00087953695475614056525 0.0006577653108544906282 +70.992958768969344874 130.55955257913041123 40.84173864503155471 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +129 1.1053539394491335305e-06 0.0040678503543026272943 +1.0978911404624207699e-05 +1.9320545124498424983 0.0005834355620338948882 0.0002608548084170523012 +270.88252512263818517 195.45419716249062958 140.3411838625577559 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +130 1.1053539394491335305e-06 0.0026829522072340253071 +1.0978911404624207699e-05 +1.2742872689972433164 0.00060055603766298343727 0.0064920160946518451484 +162.55438763596669105 178.06818403372230364 68.91417398625686985 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +131 1.1053539394491335305e-06 0.00071194132454311543046 +1.0978911404624207699e-05 +0.33814160524074998726 0.00091270005510230359236 0.0011893404294311912296 +250.26053020749216671 223.06302666485407826 192.24977287221634015 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +132 1.1053539394491335305e-06 0.002812359973542913556 +1.0978911404624207699e-05 +1.3357504097390577869 0.00026337894924635706691 0.027464957742126525075 +199.22420478899164209 171.93696705940942593 94.48037873747355775 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +133 1.1053539394491335305e-06 0.0028963111872931898259 +1.0978911404624207699e-05 +1.3756236369290164578 0.0006573629715563674607 0.021333593911504113161 +87.075565489431383526 153.68132922246732619 173.6496245283211124 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +134 1.1053539394491335305e-06 0.002785993277843155817 +1.0978911404624207699e-05 +1.3232273597327499637 0.00073604309841295738944 0.011001193704390446401 +339.40562860328299166 83.8138037375181284 177.19280309751334812 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +135 1.1053539394491335305e-06 0.0019038535805104330423 +1.0978911404624207699e-05 +0.9042488245366071542 0.0009361201833287777522 0.011953628791727587133 +153.92620389616467946 44.723571716565317047 318.60665806354387541 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +136 1.1053539394491335305e-06 0.0010869785583050439427 +1.0978911404624207699e-05 +0.5162682118549849486 0.00022103242271550004863 0.017892470794599633216 +219.23592171773313453 303.7464473661763691 122.639027547649121175 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +137 1.1053539394491335305e-06 0.0032939926784115201725 +1.0978911404624207699e-05 +1.5645052949330442438 0.000991170480938109201 0.019190182292000351055 +346.07086810942291777 54.79631567078042309 335.26549358631774567 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +138 1.1053539394491335305e-06 0.0010896488129816246724 +1.0978911404624207699e-05 +0.5175364683413183897 0.0002088585855651833357 0.025066384881598170048 +68.72020084550582908 232.28654212667152024 35.431071301701685172 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +139 1.1053539394491335305e-06 0.0008099901996317258652 +1.0978911404624207699e-05 +0.38471061714041626667 0.0005249334614017682433 0.023288096472191086028 +254.41357781115257808 117.993033232943290045 239.40340264257432068 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +140 1.1053539394491335305e-06 0.0026223707179148065143 +1.0978911404624207699e-05 +1.2455136589537159075 0.00084338241955415730895 0.0023232936840040861563 +269.3199834748557464 357.25116637136363806 20.298945789952838936 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +141 1.1053539394491335305e-06 0.0026159634140416132347 +1.0978911404624207699e-05 +1.2424704643219992573 0.00044638238521322806543 0.0012966745044005083872 +154.64047440242666198 236.78631050296556282 350.38453034745816694 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +142 1.1053539394491335305e-06 0.003456693657444609839 +1.0978911404624207699e-05 +1.6417812842988768196 0.0006303353332627267564 0.016812028430699579862 +144.4420533567427185 153.14985299997016455 271.69228258365166084 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +143 1.1053539394491335305e-06 0.0007301401336089313031 +1.0978911404624207699e-05 +0.34678525928756914753 0.00045501001474390856362 0.02594919197139722647 +116.332998235860372915 256.36327622207414834 161.64230688982479478 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +144 1.1053539394491335305e-06 0.0034349976066789206724 +1.0978911404624207699e-05 +1.6314765903860701801 0.000856330141764382333 0.014786839646800843326 +42.332000671474226294 138.1316800890192269 216.26130379036857221 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +145 1.1053539394491335305e-06 0.0025439979715687957412 +1.0978911404624207699e-05 +1.2082899646084366285 0.0004070939489201934802 0.004503954508818640984 +48.07928625757347163 276.96063567133671768 187.66327227579773762 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +146 1.1053539394491335305e-06 0.003859828194739848691 +1.0978911404624207699e-05 +1.8332529054419246517 0.0003598790557617636025 0.014970896975960788777 +271.0689558389924514 52.94488824830970941 1.9029339518958510169 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +147 1.1053539394491335305e-06 0.0040866242766629467682 +1.0978911404624207699e-05 +1.9409713206540264441 0.00011426903199890425854 0.011184164105792333138 +67.28912042774895497 289.72221855724853867 184.15766072550803756 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +148 1.1053539394491335305e-06 0.00316122359322290065 +1.0978911404624207699e-05 +1.5014456718372271027 0.00086962582925130050334 0.01914542568965043115 +250.74751474204416013 182.77230460121793953 167.04339861860248106 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +149 1.1053539394491335305e-06 0.00097271678791404052593 +1.0978911404624207699e-05 +0.46199876980165455187 0.00034328565960485866526 0.021012970927227814233 +297.8391700642537785 90.09431163085170624 45.254280687068330735 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +150 1.1053539394491335305e-06 0.0033482251435429574658 +1.0978911404624207699e-05 +1.5902633906967305055 0.00019727479448159425065 0.025485920919319147299 +39.29235960954184037 250.38592799994987104 142.50585121059737048 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +151 1.1053539394491335305e-06 0.0025466847865406780281 +1.0978911404624207699e-05 +1.2095660865250288385 0.00016751618714245874271 0.0016713720493250405416 +333.37472688335139992 145.95098571742994409 234.96494950660738255 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +152 1.1053539394491335305e-06 0.000719807963238783997 +1.0978911404624207699e-05 +0.3418779213453242427 0.00074674271745437542386 0.0011890436742735912591 +195.44114509251284062 283.06165279842355176 315.09159268499945483 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +153 1.1053539394491335305e-06 0.00157025465995761385 +1.0978911404624207699e-05 +0.74580364006202581884 0.0002094126871885914243 0.022074802063619617526 +153.41729982837850343 124.788130215813424684 122.51830102672674627 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +154 1.1053539394491335305e-06 0.001874785507921179697 +1.0978911404624207699e-05 +0.89044273632717141354 0.00085481426099495228573 0.021979234537361322377 +202.10509721048100573 320.04294945394877914 309.06206051991284767 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +155 1.1053539394491335305e-06 0.0019122234532341110998 +1.0978911404624207699e-05 +0.9082241552287277919 0.0004597575061389033409 0.020148347940879648976 +163.72826672182648622 305.80294187113088356 283.64822483177448476 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +156 1.1053539394491335305e-06 0.0039778936569127347484 +1.0978911404624207699e-05 +1.8893289380113937881 0.00049610582898170353487 0.0014385636633325129576 +157.23049053490680649 323.571089698826313 102.65627395667121391 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +157 1.1053539394491335305e-06 0.0019708158646589233432 +1.0978911404624207699e-05 +0.93605303855254251566 0.00019680356564931200973 0.020455589191385341319 +278.47203022847156717 255.0643652208907497 258.27522081614978333 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +158 1.1053539394491335305e-06 0.003967327173706975909 +1.0978911404624207699e-05 +1.8843103115182096019 0.0009097170816114348319 0.0018044172991811243192 +117.34832961121314554 234.13353289800707557 259.1454183769003521 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +159 1.1053539394491335305e-06 0.0013842445575880614169 +1.0978911404624207699e-05 +0.6574568164714708063 1.4540080482081997083e-05 0.009892527806868892798 +133.30970394955991765 89.751557170898067284 193.05936528552655318 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +160 1.1053539394491335305e-06 0.0035162555550013580372 +1.0978911404624207699e-05 +1.670070631969415409 0.00091422718885765909876 0.028436761433306107644 +353.37301866523387162 51.552218623340351655 332.64071506725503014 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +161 1.1053539394491335305e-06 0.0019396124736002073748 +1.0978911404624207699e-05 +0.9212327656201906301 0.00057552402003210683355 0.00950969025161889879 +283.93076060868486366 267.5628271717484381 143.52189652919906848 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +162 1.1053539394491335305e-06 0.0031661554024814644338 +1.0978911404624207699e-05 +1.503788069787651116 0.00018115407388301875608 0.02283324079244578031 +177.01583573865022458 234.49703162631655573 336.92462545405476249 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +163 1.1053539394491335305e-06 0.0033722481017907932155 +1.0978911404624207699e-05 +1.6016732658992518523 0.00053832824323583156837 0.017356963073014760462 +210.48701348074004613 252.36586170021701037 241.77353994833666206 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +164 1.1053539394491335305e-06 0.0018549151304582611073 +1.0978911404624207699e-05 +0.8810051589588920873 0.00039455774939218580828 0.014186890964832121059 +268.78131437644134394 234.86755048529201417 135.82402939345988102 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +165 1.1053539394491335305e-06 0.0011704042480178788963 +1.0978911404624207699e-05 +0.5558918376585835208 5.564504104615730423e-05 0.023585563294025682635 +48.050891171653226763 199.47056209951909977 219.93699201694707313 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +166 1.1053539394491335305e-06 0.0040699423683521412583 +1.0978911404624207699e-05 +1.9330481294299255435 0.00052600080391025812437 0.021919559654086234746 +39.096865156286462195 128.8303250981957433 331.23155076245132022 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +167 1.1053539394491335305e-06 0.0028820213749619458248 +1.0978911404624207699e-05 +1.3688365887359974504 0.00026969964684439974665 0.017275229592356205338 +330.69633084561246505 147.5243863767787218 153.22005163183507648 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +168 1.1053539394491335305e-06 0.003980615057015220282 +1.0978911404624207699e-05 +1.8906214863822126127 0.00036100510956251820067 0.01521335462518577826 +340.23428559641661195 130.00201841928748081 169.2953836810935968 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +169 1.1053539394491335305e-06 0.0012767502410615831949 +1.0978911404624207699e-05 +0.60640162485459569996 0.00020696978447336191083 0.0056857512796010872477 +181.57921819815450704 115.817629846161409546 320.0491270864600324 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +170 1.1053539394491335305e-06 0.002399637727624715802 +1.0978911404624207699e-05 +1.1397250380654750934 0.0006442965482497394836 0.002941317764456898541 +333.45417971179358574 185.18080690840253055 269.38711004629510626 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +171 1.1053539394491335305e-06 0.0035439123990565288466 +1.0978911404624207699e-05 +1.6832064471304613029 0.00072650143891821498086 0.02076627535231315505 +82.57443269249242235 19.640854808506546192 343.42020390750877823 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +172 1.1053539394491335305e-06 0.0021893049972247140684 +1.0978911404624207699e-05 +1.0398260089737605405 0.00095820846394839131327 0.0047667113246031159526 +231.34174007276843099 346.25149299156703364 359.3927866655562866 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +173 1.1053539394491335305e-06 0.003808558580359920666 +1.0978911404624207699e-05 +1.8089020367553392266 0.00080486608391464400675 0.026061626097182894607 +333.73026949841113264 290.72940981027193175 353.58605983201931622 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +174 1.1053539394491335305e-06 0.0036046989829116192528 +1.0978911404624207699e-05 +1.7120774682852628601 0.000408327401359263474 0.023141693393884565227 +190.15243963894701551 10.9019960190977514 206.20261856852459914 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +175 1.1053539394491335305e-06 0.0025289888373368178023 +1.0978911404624207699e-05 +1.201161269352922556 0.0008119307695628591708 0.02330748815658333778 +293.74129631246364625 228.8273707230899845 50.496213420126203175 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +176 1.1053539394491335305e-06 0.0035813927117425375896 +1.0978911404624207699e-05 +1.7010079887177620428 0.0008261188698801552469 0.0033817239341808955078 +270.3371253433707011 303.21090622901044753 55.41742303760840116 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +177 1.1053539394491335305e-06 0.0029864597633055024009 +1.0978911404624207699e-05 +1.4184403454864715766 0.0006100544512734605053 0.0031745002208599282408 +128.80488878502711714 46.8536787103431962 190.83918585108236243 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +178 1.1053539394491335305e-06 0.0023567486788243735888 +1.0978911404624207699e-05 +1.119354578719118809 0.00053509985437350090966 0.020556636907334471104 +93.86909946810600047 329.53011231398716063 68.53400707162742833 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +179 1.1053539394491335305e-06 0.0034140907141169699521 +1.0978911404624207699e-05 +1.6215467127855098806 0.0007155502442420363365 0.021636466572293039379 +15.484181145735732343 319.8815184503466753 126.01422430110272899 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +180 1.1053539394491335305e-06 0.0025675289816375823053 +1.0978911404624207699e-05 +1.2194661855177959531 0.00048216964694683286767 0.017262139448479693615 +335.34868702893140835 186.94351621903143723 26.64334186676326155 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +181 1.1053539394491335305e-06 0.0034248039486638383743 +1.0978911404624207699e-05 +1.6266350398738742555 0.00081883719141492166717 0.003694641256859914659 +218.92219023702784853 218.29951433993917931 259.11630406545350525 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +182 1.1053539394491335305e-06 0.0028977454974775277425 +1.0978911404624207699e-05 +1.3763048727716702402 0.00040844368595388948033 0.020281148678402180496 +289.91356665087704414 165.61033347014003425 288.23615258185753873 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +183 1.1053539394491335305e-06 0.0011783105169288593343 +1.0978911404624207699e-05 +0.5596469764163169991 0.00026931995881909574905 0.0010082118613559110359 +154.06847791408287662 39.901773134600148296 187.47166921424076236 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +184 1.1053539394491335305e-06 0.002491583136722370224 +1.0978911404624207699e-05 +1.1833951653006802296 0.00048583037529452476142 0.027591397048547783993 +149.2419352144119955 63.397457239281493457 295.88510332284619153 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +185 1.1053539394491335305e-06 0.0039004676796874942429 +1.0978911404624207699e-05 +1.8525549184065084329 0.0005185930845717148926 0.019438436095256288877 +292.5205667956682305 105.44538380282074286 123.70099114339642199 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +186 1.1053539394491335305e-06 0.0034369089438783143244 +1.0978911404624207699e-05 +1.6323843936087221174 0.00010509062853767581647 0.0032505177502269231964 +143.85173028989797217 189.31567203063778493 223.19791686246551876 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +187 1.1053539394491335305e-06 0.004128326569038383845 +1.0978911404624207699e-05 +1.9607781215797892571 0.0007065471846638792094 0.021817391680966469192 +267.38223511629621498 257.29519900708868363 77.6961655587950446 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +188 1.1053539394491335305e-06 0.0020499009381892692037 +1.0978911404624207699e-05 +0.97361505776992030015 0.00093181583258145170724 0.0006097968157406988537 +145.87863557509786006 138.78820490355309403 73.09644258927524163 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +189 1.1053539394491335305e-06 0.0013791485719345369476 +1.0978911404624207699e-05 +0.65503644177237263513 0.00014046622778450534863 0.015442926715237644333 +113.70608882665497674 243.3631092677804304 81.13225672390240106 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +190 1.1053539394491335305e-06 0.0024853665935430262675 +1.0978911404624207699e-05 +1.1804425738198291995 0.00096027971308601327814 0.023639897027866934448 +334.99323146372387328 76.84265628244520485 155.49317295086675017 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +191 1.1053539394491335305e-06 0.003654973676990583536 +1.0978911404624207699e-05 +1.7359557924853059596 0.00054611453698988137676 0.026616017411125021674 +173.99931107991119461 359.07752431447528352 78.019305599684969366 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +192 1.1053539394491335305e-06 0.003360253875484283402 +1.0978911404624207699e-05 +1.5959765226465592036 0.00089913403289640294203 0.014826170842651739679 +204.39386065798206005 17.787041065446423715 47.062099086162277217 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +193 1.1053539394491335305e-06 0.0036411616313956547123 +1.0978911404624207699e-05 +1.7293956630081683823 0.0004269520101434239978 0.011446361145646259325 +225.78458330355539374 323.21819225965253963 348.78801121716753642 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +194 1.1053539394491335305e-06 0.0026716566036685272943 +1.0978911404624207699e-05 +1.2689223415936377037 0.00043093138180629422026 0.007198866767697694423 +49.75485744273438371 283.14995135249375835 251.76161931871857291 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +195 1.1053539394491335305e-06 0.0021962918766307708317 +1.0978911404624207699e-05 +1.0431444771347480049 0.00086121939260353213164 0.004059279588003008102 +286.63158878609289104 179.04178066528515956 146.49836003344253754 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +196 1.1053539394491335305e-06 0.0029447439089289198142 +1.0978911404624207699e-05 +1.3986271031916246432 0.00018272629779208073367 0.018596268807723595473 +131.73550112256867806 122.63667230710116485 118.00875344636077102 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +197 1.1053539394491335305e-06 0.0036073925872425995972 +1.0978911404624207699e-05 +1.7133568148563382838 0.00075563849669159832353 0.0037783795914888887967 +128.81574846279312396 26.084496990571235386 338.71113698392537117 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +198 1.1053539394491335305e-06 0.0035771279460317551398 +1.0978911404624207699e-05 +1.6989824078535733509 0.0007581912267808143613 0.009405275951210755395 +94.72942154944794879 234.18898767453580945 120.281591054773343785 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +199 1.1053539394491335305e-06 0.0035858601416377149508 +1.0978911404624207699e-05 +1.7031298263804728332 0.00095813031245370230537 0.0036113709533022904374 +146.16269587061592006 115.18323006911683137 268.9501223857537866 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +200 1.1053539394491335305e-06 0.0037229358585092736563 +1.0978911404624207699e-05 +1.7682349148822829044 0.0009838787345463682714 0.0041291372775860849323 +1.7590124360204661969 28.267489335889418811 140.55607459951542637 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +201 1.1053539394491335305e-06 0.001651848468190447193 +1.0978911404624207699e-05 +0.78455720070308299086 0.00013641617523719662343 0.019427991831481188079 +130.8007266845419565 110.181352575198033605 106.00139496728822053 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +202 1.1053539394491335305e-06 0.0027063636542107174076 +1.0978911404624207699e-05 +1.2854067025640301125 0.00080079146808039282975 0.0108589657051855435765 +46.771264060493685122 32.497203081429894667 53.366093926082044163 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +203 1.1053539394491335305e-06 0.0017526730483667882186 +1.0978911404624207699e-05 +0.8324445535132765084 9.953863767625981303e-05 0.027893078159839147095 +116.997421293990342406 10.0440500665721010876 63.77086305348634454 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +204 1.1053539394491335305e-06 0.0013663552841492629148 +1.0978911404624207699e-05 +0.6489601785763914332 0.0007547835818466555732 0.028400265298084318571 +183.67148924061424964 352.2190315881923084 274.3720362883656776 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +205 1.1053539394491335305e-06 0.0016416918432609031937 +1.0978911404624207699e-05 +0.7797332393187537125 0.00076392586396015573803 0.020535102200658142402 +221.9135945165130579 194.21835875557150075 137.1052917217631375 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +206 1.1053539394491335305e-06 0.0041503320593118873817 +1.0978911404624207699e-05 +1.9712297859918352927 0.00025071053464458946825 0.014913864673346191939 +319.79234195814888153 349.28387326164579463 138.32956542869692385 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +207 1.1053539394491335305e-06 0.0017463766922070864303 +1.0978911404624207699e-05 +0.8294540542886734702 0.00021197645574354129889 0.018247549715991118885 +105.00262688872396666 232.80424007039977141 84.949104918041584256 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +208 1.1053539394491335305e-06 0.0037525194240774044083 +1.0978911404624207699e-05 +1.7822858401553345331 0.00080294190095561387456 0.023444883786946393162 +356.27577921605848132 11.694296440931752912 96.8991254541982272 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +209 1.1053539394491335305e-06 0.0033673867988775121108 +1.0978911404624207699e-05 +1.5993643554399337159 0.00045136667731674606644 0.027694134961144371149 +122.09817852172396613 331.56919146778068352 23.29494948461385917 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +210 1.1053539394491335305e-06 0.002601544338314537602 +1.0978911404624207699e-05 +1.235622021558025363 0.00052748956446136828925 0.014390768296716713662 +47.688625110281321895 218.81863989673610149 71.091061616253483635 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +211 1.1053539394491335305e-06 0.0034572364291313065697 +1.0978911404624207699e-05 +1.6420390775791540161 0.00012278039477614099018 0.013364601572277041985 +37.099447743349671214 25.711537395277808571 46.771237173257247832 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +212 1.1053539394491335305e-06 0.0014692126295102979798 +1.0978911404624207699e-05 +0.69781300769612641943 0.00020831235893638435199 0.0105463257356791569735 +45.282702057561735387 269.00333228724332457 141.05705036356778237 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +213 1.1053539394491335305e-06 0.0012506227963414040885 +1.0978911404624207699e-05 +0.5939922088058925409 0.0005111276050050357622 0.006922367726696107386 +193.68387748392143521 15.642417562054848901 17.908891439446314564 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +214 1.1053539394491335305e-06 0.0041476312180326669947 +1.0978911404624207699e-05 +1.9699470021806242404 0.00058751583022024968673 0.02496086898048604022 +247.93088919368153711 124.53408226858653052 258.30383247130868085 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +215 1.1053539394491335305e-06 0.0029875489394385165544 +1.0978911404624207699e-05 +1.4189576574520941232 0.0004909660898418238828 0.0023047035739488575846 +238.65714156827573333 164.51271027675758774 223.70978205956649276 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +216 1.1053539394491335305e-06 0.0023921676837597391677 +1.0978911404624207699e-05 +1.1361770875017920268 0.00023970389209557418876 0.026923977514779456888 +58.044978520057981086 79.883336583186263624 94.38325642624329248 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +217 1.1053539394491335305e-06 0.0026816001073412998205 +1.0978911404624207699e-05 +1.2736450795184046658 0.0007910064207286296922 0.028329584831009391177 +35.296218138003794706 187.99468430047886613 356.03440184202310093 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +218 1.1053539394491335305e-06 0.001331364345185033964 +1.0978911404624207699e-05 +0.6323409827770205549 0.00028739168058106059726 0.009019690678395121675 +338.27263574838821114 230.96954437756605216 126.72414489683163197 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +219 1.1053539394491335305e-06 0.0032121580786483427635 +1.0978911404624207699e-05 +1.5256373686388187139 0.0002481645483046961251 0.0066040479374564345708 +60.055442506513337264 346.99690826233506868 179.83160228793084912 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +220 1.1053539394491335305e-06 0.0041836951887061120445 +1.0978911404624207699e-05 +1.9870758420364929009 0.00038625231628182366255 0.014342679397268678562 +335.15357535816582413 299.7702497912664512 317.6921811746384492 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +221 1.1053539394491335305e-06 0.0007589345479948146076 +1.0978911404624207699e-05 +0.3604613715832816201 0.0008130249542857412217 0.0132530748254426049976 +199.40136765025368959 44.661857657232609142 303.65462581497462224 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +222 1.1053539394491335305e-06 0.0011646339137693681694 +1.0978911404624207699e-05 +0.55315117628902576996 0.00058320518586504638704 0.025565557231859135229 +88.51316300040842577 64.3025295238989969 307.91222823830349853 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +223 1.1053539394491335305e-06 0.004180113624911285161 +1.0978911404624207699e-05 +1.9853747527906451253 0.00094918793041903390915 0.01898810058981277582 +339.11739337814219653 326.5281938064337055 348.13403023570242567 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +224 1.1053539394491335305e-06 0.002907903028903174131 +1.0978911404624207699e-05 +1.3811292647027828551 0.00017854471163964626287 0.01757285626967412806 +324.68564254821177428 173.27665949324585881 212.81811478340242161 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +225 1.1053539394491335305e-06 0.0030424513946792162559 +1.0978911404624207699e-05 +1.4450339697923877402 0.00083102791963415834596 0.016743369452382143164 +72.37540677365963404 25.69124406916907688 36.560572732805965757 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +226 1.1053539394491335305e-06 0.0014152066797417541456 +1.0978911404624207699e-05 +0.6721624970181487857 0.0004194325219653943738 0.02466884060344504137 +312.10194954625785613 75.06433419730545609 213.15995579142392558 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +227 1.1053539394491335305e-06 0.00074807664212413927804 +1.0978911404624207699e-05 +0.35530433181877674187 0.0006196274885235493945 0.0057712733317203191233 +112.28915034524422367 308.71008190145914796 250.26404455810629202 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +228 1.1053539394491335305e-06 0.0015240975037274374223 +1.0978911404624207699e-05 +0.7238809698040012952 0.00038945125604979613423 0.0034764685260635502795 +100.18804344114703042 289.83313211239982365 254.06542835983233886 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +229 1.1053539394491335305e-06 0.0013613878149108384452 +1.0978911404624207699e-05 +0.64660084366442682757 0.0009530460362832646236 0.00080068641185022341056 +290.2519853457544059 126.69300624511200226 129.6226360067927601 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +230 1.1053539394491335305e-06 0.0007497560275515179048 +1.0978911404624207699e-05 +0.3561019678944690181 6.2453564361704131855e-05 0.008646200757580674995 +51.77354471090342969 304.1036845586841082 280.42024752572388024 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +231 1.1053539394491335305e-06 0.0020677692895160400756 +1.0978911404624207699e-05 +0.9821017585588054377 0.00092676675850360832123 0.006735246833832509404 +263.97158005173145057 104.45971633042557869 156.07773457283062157 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +232 1.1053539394491335305e-06 0.00095787667212301207604 +1.0978911404624207699e-05 +0.4549503510590604538 0.00052515340653565799334 0.019061642884057490577 +284.31553463421840888 213.15965776812532795 3.9051805628102265189 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +233 1.1053539394491335305e-06 0.0037735814895644029364 +1.0978911404624207699e-05 +1.7922894182423769749 0.00017129142152418842175 0.025294321601488489043 +70.01841692477869117 111.37830955236358932 314.1754665499188377 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +234 1.1053539394491335305e-06 0.0007847310095064422164 +1.0978911404624207699e-05 +0.37271358479856425694 0.0003231942299594923215 0.01628512097921978874 +224.60279807470539026 103.680766227009058866 197.02880532870963748 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +235 1.1053539394491335305e-06 0.0015320077326663605468 +1.0978911404624207699e-05 +0.72763798940522450565 0.00094252324011187993847 0.01692070785353958634 +73.3265875193739447 291.12276980910894508 97.10035705120415628 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +236 1.1053539394491335305e-06 0.0017944863754330241527 +1.0978911404624207699e-05 +0.85230409115664484965 3.7676763751743336793e-05 0.021560198984918479276 +216.79211114566814445 74.30371365646033155 295.38458279934900474 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +237 1.1053539394491335305e-06 0.0022077289096507573257 +1.0978911404624207699e-05 +1.0485765774655604332 0.00092835655556198343457 0.002473122352105824439 +207.85994871205122081 242.10322219988140091 164.79329124450524091 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +238 1.1053539394491335305e-06 0.0017780507509334266778 +1.0978911404624207699e-05 +0.84449787418364552494 0.00012149108796338048226 0.022688746545291040707 +105.00259291531052952 236.90787466426584729 258.88778385063903897 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +239 1.1053539394491335305e-06 0.0009633437960757620414 +1.0978911404624207699e-05 +0.4575470005380317673 0.00021936857586009873258 0.024584544078017318142 +141.46008032785664454 156.81449724386195044 299.68311915392922629 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +240 1.1053539394491335305e-06 0.0035009114125315640493 +1.0978911404624207699e-05 +1.6627828221641500761 0.00083380110219331913645 0.016595030400960369271 +68.173689361921276486 154.75502404200838669 311.70470139259805364 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +241 1.1053539394491335305e-06 0.0006470573938361051598 +1.0978911404624207699e-05 +0.30732452000176924134 0.00021338219268733039035 0.006499688048810576234 +359.85986519138003814 244.23351243313086911 98.01858239568616682 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +242 1.1053539394491335305e-06 0.00065901961137865321196 +1.0978911404624207699e-05 +0.31300606046393031345 0.00084676255106667984527 0.00028332565690039374258 +44.286246649765288907 20.245198329963866257 276.88008765639568765 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +243 1.1053539394491335305e-06 0.003806998050224602309 +1.0978911404624207699e-05 +1.8081608518475495995 0.00027745564680026148143 0.021943110426273559899 +266.24251634239237774 252.3739085379230005 283.488252705583875 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +244 1.1053539394491335305e-06 0.0029050019908176934909 +1.0978911404624207699e-05 +1.3797513959918767945 0.0008840097714271473667 0.011119175742524006062 +218.83470399188448141 307.5328062303744332 53.607438100582484708 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +245 1.1053539394491335305e-06 0.0041506206755627920196 +1.0978911404624207699e-05 +1.9713668663368231204 0.00072844746599102529454 0.014679484165514528754 +216.30736619477607974 127.43423126496449527 280.14881244016112305 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +246 1.1053539394491335305e-06 0.0007277677857464638177 +1.0978911404624207699e-05 +0.34565849576542212462 0.00059173314782810218417 0.007831481826486607831 +243.4161800124451247 113.710960693445571223 254.21623664849960278 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +247 1.1053539394491335305e-06 0.0017717047625134947208 +1.0978911404624207699e-05 +0.84148380176337678193 0.00052751195938902041473 0.014082285132383451365 +194.45249461995499018 318.31107915541781495 157.54667905036907882 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +248 1.1053539394491335305e-06 0.004169267887052278984 +1.0978911404624207699e-05 +1.980223492309989286 0.00067309606461422974606 0.017396151114924100073 +184.39865388000126245 210.62388541157199029 167.14339720153236613 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +249 1.1053539394491335305e-06 0.0019522337566574509366 +1.0978911404624207699e-05 +0.92722733394492307113 0.00058907724893334585843 0.021547757024762807104 +190.98028164050376176 93.657838091120083845 154.55544413858271469 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +250 1.1053539394491335305e-06 0.004103199565563551535 +1.0978911404624207699e-05 +1.9488438722295042815 0.00023535689304344910105 0.020747164931323787418 +235.4258950080400723 210.09500044028584398 329.76890939133602387 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +251 1.1053539394491335305e-06 0.00096993472194017628167 +1.0978911404624207699e-05 +0.46067740774293175487 6.722535556689789992e-05 0.0099933940728082100435 +339.95817378663616637 181.27958061831904502 34.322050877546928405 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +252 1.1053539394491335305e-06 0.0009661516009396302622 +1.0978911404624207699e-05 +0.45888058746597204518 0.0005025170114595179727 0.0024236270953698216615 +57.831023059303113598 16.636326610996761133 83.793613608447557795 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 +253 1.1053539394491335305e-06 0.0032298402438196435668 +1.0978911404624207699e-05 +1.5340356389864386877 0.00062884613640746395407 0.013163328547706066446 +348.2310414025072305 241.09038942507976344 294.8270165591735008 +0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 +0.0 0.0 0.0 diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 297b9df68..cf8f109cc 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -102,7 +102,6 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): 'Pluto': np.longdouble(0.4) } - # Unit conversion factors DCONV = swiftest.AU2M / param['DU2M'] VCONV = (swiftest.AU2M / swiftest.JD2S) / (param['DU2M'] / param['TU2S']) @@ -274,8 +273,22 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): return ds -def vec2xr(param, idvals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, Rhill=None, t=0.0): - +def vec2xr(param, idvals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, Rhill=None, Ip_x=None, Ip_y=None, Ip_z=None, rot_x=None, rot_y=None, rot_z=None, t=0.0): + + if param['ROTATION'] == 'YES': + if Ip_x is None: + Ip_x = np.full_like(v1, 0.4) + if Ip_y is None: + Ip_y = np.full_like(v1, 0.4) + if Ip_z is None: + Ip_z = np.full_like(v1, 0.4) + if rot_x is None: + rot_x = np.full_like(v1, 0.0) + if rot_y is None: + rot_y = np.full_like(v1, 0.0) + if rot_z is None: + rot_z = np.full_like(v1, 0.0) + dims = ['time', 'id', 'vec'] if GMpl is not None: ispl = True @@ -290,18 +303,18 @@ def vec2xr(param, idvals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, Rhill=Non return None clab, plab, tlab = swiftest.io.make_swiftest_labels(param) + vec = np.vstack([v1, v2, v3, v4, v5, v6]) if ispl: + vec = np.vstack([vec, GMpl, Rpl]) if param['RHILL_PRESENT'] == 'YES': - vec = np.vstack([v1, v2, v3, v4, v5, v6, GMpl, Rpl, Rhill]).T - else: - vec = np.vstack([v1, v2, v3, v4, v5, v6, GMpl, Rpl]).T - else: - vec = np.vstack([v1, v2, v3, v4, v5, v6]).T - bodyframe = np.expand_dims(vec, axis=0) + vec = np.vstack([vec, Rhill]) + if param['ROTATION'] == 'YES': + vec = np.vstack([vec, Ip_x, Ip_y, Ip_z, rot_x, rot_y, rot_z]) + bodyframe = np.expand_dims(vec.T, axis=0) if ispl: - bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': tpid, 'vec': plab}) + bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': idvals, 'vec': plab}) else: - bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': tpid, 'vec': tlab}) + bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': idvals, 'vec': tlab}) ds = bodyxr.to_dataset(dim='vec') return ds \ No newline at end of file diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index e7b8c560b..e0ec698a2 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -4,6 +4,7 @@ from swiftest import constants from datetime import date import xarray as xr +import numpy as np class Simulation: """ @@ -52,6 +53,7 @@ def __init__(self, codename="Swiftest", param_file=""): self.codename = codename if param_file != "" : self.read_param(param_file, codename) + self.param['GU'] = constants.GC / (param['DU2M'])**3 / (param['MU2KG'] * param['TU2S']**2) return @@ -73,7 +75,7 @@ def add(self, plname, date=date.today().isoformat(), idval=None): return - def addp(self, idvals, t1, t2, t3, t4, t5, t6, Gmass=None, radius=None, Rhill=None, t=0.0): + def addp(self, idvals, t1, t2, t3, t4, t5, t6, GMpl=None, Rpl=None, Rhill=None, Ip_x=None, Ip_y=None, Ip_z=None, rot_x=None, rot_y=None, rot_z=None): """ Adds a body (test particle or massive body) to the internal DataSet given a set up 6 vectors (orbital elements or cartesian state vectors, depending on the value of self.param). Input all angles in degress @@ -90,16 +92,18 @@ def addp(self, idvals, t1, t2, t3, t4, t5, t6, Gmass=None, radius=None, Rhill=No Gmass : Optional: Array of G*mass values if these are massive bodies radius : Optional: Array radius values if these are massive bodies Rhill : Optional: Array Rhill values if these are massive bodies + Ip_x,y,z : Optional: Principal axes moments of inertia + rot_x,y,z: Optional: Rotation rate vector components Returns ------- self.ds : xarray dataset """ - dsnew = init_cond.vec2xr(self.param, idvals, t1, t2, t3, t4, t5, t6, Gmass, radius, Rhill) + t = self.param['T0'] + + dsnew = init_cond.vec2xr(self.param, idvals, t1, t2, t3, t4, t5, t6, GMpl, Rpl, Rhill, Ip_x, Ip_y, Ip_z, rot_x, rot_y, rot_z, t) if dsnew is not None: self.ds = xr.combine_by_coords([self.ds, dsnew]) return - - def read_param(self, param_file, codename="Swiftest"): From f82d6480e27938f193f9d33644e4916d8c407f92 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 16:43:24 -0400 Subject: [PATCH 169/315] Added missing GMTINY parameter --- examples/symba_chambers_2013/init_cond.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 5f6782491..38b023ed1 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -54,6 +54,8 @@ dens = 3000.0 / (MU2KG / DU2M**3) Rb = (3 * Mb / (4 * np.pi * dens) )**(1.0 / 3.0) Rs = (3 * Ms / (4 * np.pi * dens) )**(1.0 / 3.0) +MTINY = 1e-2 * Ms +sim.param['GMTINY'] = MTINY * GU # Define the initial orbital elements of the big and small bodies avalb = default_rng().uniform(0.3, 2.0, Nb) From 291184508afd676b52876bb045f3199f329af8db Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 16:47:23 -0400 Subject: [PATCH 170/315] Fixed central body rotation parameter formatting for input file generation. --- python/swiftest/swiftest/io.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 1116f6509..dfecd5811 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -758,12 +758,8 @@ def swiftest_xr2infile(ds, param, framenum=-1): print(J2, file=cbfile) print(J4, file=cbfile) if param['ROTATION'] == 'YES': - print(Ip_xcb, file=cbfile) - print(Ip_ycb, file=cbfile) - print(Ip_zcb, file=cbfile) - print(rot_xcb, file=cbfile) - print(rot_ycb, file=cbfile) - print(rot_zcb, file=cbfile) + print(Ip_xcb, Ip_ycb, Ip_zcb, file=cbfile) + print(rot_xcb, rot_ycb, rot_zcb, file=cbfile) cbfile.close() plfile = open(param['PL_IN'], 'w') From b8d31d0e54cc3c2da01c15e6176e93aabd3e0e98 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 16:51:59 -0400 Subject: [PATCH 171/315] Removed unneeded GU parameter --- python/swiftest/swiftest/simulation_class.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index e0ec698a2..af9b36475 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -53,7 +53,6 @@ def __init__(self, codename="Swiftest", param_file=""): self.codename = codename if param_file != "" : self.read_param(param_file, codename) - self.param['GU'] = constants.GC / (param['DU2M'])**3 / (param['MU2KG'] * param['TU2S']**2) return From 0456a568ef90b384611f06d2e730f757431c3a32 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 17:04:20 -0400 Subject: [PATCH 172/315] Improved error reporting in the param reader --- src/io/io.f90 | 2 +- src/symba/symba_collision.f90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index a4b619847..58e233dd1 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -555,7 +555,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) read(param_value, *, err = 667, iomsg = iomsg) param%maxid case ("NPLMAX", "NTPMAX", "GMTINY", "MIN_GMFRAG", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters case default - write(iomsg,*) "Unknown parameter -> ",param_name + write(*,*) "Unknown parameter -> ",param_name iostat = -1 return end select diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 3672f959b..fd4eae517 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -283,7 +283,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad param%Ecollisions = param%Ecollisions + pe param%Euntracked = param%Euntracked - pe - ! Update any encounter lists that have the removedbodies in them so that they instead point to the new + ! Update any encounter lists that have the removed bodies in them so that they instead point to the new do k = 1, system%plplenc_list%nenc do j = 1, nfamily i = family(j) From ae44e29fe6459028e33dac4ec43ccc8b276a67d9 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 17:05:12 -0400 Subject: [PATCH 173/315] Fixed bad parameter --- examples/symba_chambers_2013/init_cond.py | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 38b023ed1..aa213a5ab 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -14,7 +14,6 @@ sim.param['MU2KG'] = MU2KG sim.param['TU2S'] = TU2S sim.param['DU2M'] = DU2M -sim.param['GU'] = GU # Simulation time parameters sim.param['T0'] = 0.0 From 56e745b90ce3efb8d033e22d7bf5039c10487990 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 17:08:08 -0400 Subject: [PATCH 174/315] Added minimum fragment mass to input file --- examples/symba_chambers_2013/init_cond.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index aa213a5ab..5ea4b1205 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -53,8 +53,8 @@ dens = 3000.0 / (MU2KG / DU2M**3) Rb = (3 * Mb / (4 * np.pi * dens) )**(1.0 / 3.0) Rs = (3 * Ms / (4 * np.pi * dens) )**(1.0 / 3.0) -MTINY = 1e-2 * Ms -sim.param['GMTINY'] = MTINY * GU +sim.param['GMTINY'] = 1e-2 * GU * Ms +sim.param['MIN_GMFRAG'] = 1e-4 * GU * Ms # Define the initial orbital elements of the big and small bodies avalb = default_rng().uniform(0.3, 2.0, Nb) From 76c6ce6530c64550dccb6de87ca96d1c8ecb0fda Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 17:16:38 -0400 Subject: [PATCH 175/315] Updated initial conditions generator with higher e and i --- examples/symba_chambers_2013/init_cond.py | 8 +- examples/symba_chambers_2013/param.in | 3 +- .../symba_chambers_2013/pl_chambers_2013.in | 1238 ++++++++--------- examples/symba_chambers_2013/sun_MsunAUYR.in | 8 +- 4 files changed, 627 insertions(+), 630 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 5ea4b1205..ae49907d9 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -59,10 +59,10 @@ # Define the initial orbital elements of the big and small bodies avalb = default_rng().uniform(0.3, 2.0, Nb) avals = default_rng().uniform(0.3, 2.0, Ns) -evalb = default_rng().uniform(0.0, 0.001, Nb) -evals = default_rng().uniform(0.0, 0.001, Ns) -incvalb = default_rng().uniform(0.0, 0.0005 * 180 / np.pi, Nb) -incvals = default_rng().uniform(0.0, 0.0005 * 180 / np.pi, Ns) +evalb = default_rng().uniform(0.0, 0.01, Nb) +evals = default_rng().uniform(0.0, 0.01, Ns) +incvalb = default_rng().uniform(0.0, 0.005 * 180 / np.pi, Nb) +incvals = default_rng().uniform(0.0, 0.005 * 180 / np.pi, Ns) capomvalb = default_rng().uniform(0.0, 360.0, Nb) capomvals = default_rng().uniform(0.0, 360.0, Ns) omegavalb = default_rng().uniform(0.0, 360.0, Nb) diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 19e98e87a..39e05abb0 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -34,5 +34,6 @@ ROTATION YES TIDES NO ENERGY YES GR NO -GU 39.476926408897626 ENERGY_OUT energy.dat +GMTINY 1.1053539394491336e-08 +MIN_GMFRAG 1.1053539394491336e-10 diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 67d6989d2..7609b37b1 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -1,937 +1,937 @@ 156 -5 0.03769225108898567778 0.35527124629249239585 +5 0.037692251088985676735 0.35527124629249231394 0.00046732617030490929307 5.2035240151214816606 0.048518677336151047608 1.303568872392780964 100.51672855018520636 273.38350380059858935 317.24733983021741324 0.0 0.0 0.27560000000000001164 -80.96882015576837074 -2387.9972166758053216 5008.7356633679251408 -6 0.01128589982009127331 0.43766275227962878915 +6 0.011285899820091272997 0.4376627522796287038 0.00038925687730393611812 9.581843040035108672 0.052193289679895830957 2.486259885154824989 113.5952699440524043 335.70375572759667193 225.29914557362599226 0.0 0.0 0.22000000000000000111 -441.93102714484842597 378.52937229654817222 5135.9113502360652523 -100 1.105353939449133635e-05 0.0076985326356758955327 -2.365334758890906669e-05 -1.6971843938499941995 0.0005816364466293669124 0.026187138610341612749 -199.66295678003845637 349.1838313868397563 239.5201319664316486 +441.93102714484842597 378.52937229654824397 5135.9113502360652523 +100 1.1053539394491336042e-05 0.0061717986894543447007 +2.3653347588909066005e-05 +1.3606073927887079034 0.0037593346354084246873 0.14311926423038831557 +59.482803848831252935 171.95758760689361111 47.921042679418512478 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -101 1.105353939449133635e-05 0.0033890547724920599881 -2.365334758890906669e-05 -0.7471359987644425882 0.0001484221862068907502 0.015912119531244738047 -7.72758829713570794 98.74578965353445881 292.48405218591960875 +101 1.1053539394491336042e-05 0.0038352092732863814334 +2.3653347588909066005e-05 +0.84549324316775575916 0.00885050755749688077 0.13125243262309554959 +76.63654393052172509 306.82718246447967658 12.201168737445931001 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -102 1.105353939449133635e-05 0.0032403861730961017119 -2.365334758890906669e-05 -0.71436117806925114593 0.0006667054143762592925 0.02623486192401118175 -42.268600860678539277 152.49698993249327827 151.45780278371265126 +102 1.1053539394491336042e-05 0.0057267869875357797253 +2.3653347588909066005e-05 +1.2625020847619783382 0.0077988766363251494154 0.034625553044733060892 +313.96981691114586965 134.12861853690833414 264.1419094964312535 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -103 1.105353939449133635e-05 0.00848716742472066395 -2.365334758890906669e-05 -1.8710433251236489038 0.0009470568874946718764 0.022705939228401819663 -38.80730095910011812 143.34784343975428555 218.97185967315348876 +103 1.1053539394491336042e-05 0.0068770313449667743967 +2.3653347588909066005e-05 +1.5160798592458175627 0.0015623938638601154137 0.20353582935531769338 +146.7374009587804835 358.85111201917010249 164.32522548913291871 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -104 1.105353939449133635e-05 0.004200287321695052973 -2.365334758890906669e-05 -0.9259767321153884456 0.00016780856600745607692 0.008111571611109064106 -275.52852024631755512 255.91035494922905968 283.72241775520802776 +104 1.1053539394491336042e-05 0.003422133118181835852 +2.3653347588909066005e-05 +0.75442830429016094484 0.002883912650966171786 0.13282688263791350702 +341.7855982384753588 208.47533683282773609 290.1344287223045626 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -105 1.105353939449133635e-05 0.008200656366547455989 -2.365334758890906669e-05 -1.8078803667251066578 0.0005806820778782817395 0.0043050823832896005852 -262.76594876192444872 197.55827100651990236 359.12597183160295344 +105 1.1053539394491336042e-05 0.007578013409315989732 +2.3653347588909066005e-05 +1.6706152592087990527 0.0017584631878066515637 0.08590315100806089621 +108.18839268219636551 107.54389139511170015 286.5578191069645868 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -106 1.105353939449133635e-05 0.0031948304428970366643 -2.365334758890906669e-05 -0.70431816363998178687 0.0006166870106254423523 0.028312766571177344632 -100.38580777052690962 247.08615435134802851 28.274821850602428697 +106 1.1053539394491336042e-05 0.0023440543892555304344 +2.3653347588909066005e-05 +0.5167598445116924344 0.008177442951041202432 0.083066142709547236 +254.85798460169084478 10.9038149328307021335 106.167244193166368404 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -107 1.105353939449133635e-05 0.00645602527104512983 -2.365334758890906669e-05 -1.4232667256020528068 0.0003621838900236009598 0.012197930522699866954 -189.06372569967658137 282.1051532665543391 175.25556542499867874 +107 1.1053539394491336042e-05 0.0018951361512923296208 +2.3653347588909066005e-05 +0.4177933188578213386 0.00579642362884097255 0.24077042145742511003 +68.777881225212851746 33.26655383323790005 216.52317438256201854 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -108 1.105353939449133635e-05 0.0041177716184015826697 -2.365334758890906669e-05 -0.90778568578166862757 0.00088526942168412907277 0.0052077153285733724167 -355.61137098230727815 88.33816057346382422 35.585620637422806567 +108 1.1053539394491336042e-05 0.0044957282089067080248 +2.3653347588909066005e-05 +0.9911083210570510449 0.0032249696705185962146 0.19000472763787779051 +169.44705393618949074 80.97286999787255013 303.17760387026601165 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -109 1.105353939449133635e-05 0.00862613046390682299 -2.365334758890906669e-05 -1.9016785010188288485 0.00044486325805035754379 0.0175194201364592822 -74.14924815238387623 142.82151728160823723 178.34909057749027284 +109 1.1053539394491336042e-05 0.0018927676437531769817 +2.3653347588909066005e-05 +0.4172711681802314665 0.0099434477150373810905 0.17010183649547966356 +322.8957163183770831 221.20467436757908786 57.050858815175416794 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -110 1.105353939449133635e-05 0.004510164863223143653 -2.365334758890906669e-05 -0.9942909619010631417 0.00081444817122918432024 0.00707240791737578315 -68.31335729815678803 294.6246189285234891 122.92252049539324332 +110 1.1053539394491336042e-05 0.006551260271026887548 +2.3653347588909066005e-05 +1.4442618117264298672 0.0029651049444108755482 0.18811074732045010571 +310.24733868037191087 231.17959095085171839 237.57174322044465953 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -111 1.105353939449133635e-05 0.004651281910070013023 -2.365334758890906669e-05 -1.0254010007810474558 0.0004312636045460260673 0.01674019444109412641 -337.31604521335424351 171.74369728670052382 266.0027373696372024 +111 1.1053539394491336042e-05 0.0013647263617020194426 +2.3653347588909066005e-05 +0.30086152680873823329 0.0040734718772203063267 0.01053211139211664496 +270.87320826023886866 337.76436523817181978 4.940409099363773926 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -112 1.105353939449133635e-05 0.0038244126458011504717 -2.365334758890906669e-05 -0.84311306651055351047 2.7875407573919153787e-05 0.017986416975313480882 -225.7229782864748131 308.33509788803951324 112.41779338822905743 +112 1.1053539394491336042e-05 0.0033639359086406832709 +2.3653347588909066005e-05 +0.7415984053375808127 0.009863847389591522477 0.25437084910290475026 +354.72874983003691796 66.270256366995724306 90.911984640246586764 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -113 1.105353939449133635e-05 0.0029643452153518679503 -2.365334758890906669e-05 -0.6535064116198798789 0.00037425733872322575592 0.0041403864217484038016 -325.7386399373389736 300.94512487157606984 333.7954171286211249 +113 1.1053539394491336042e-05 0.0056868193037520421697 +2.3653347588909066005e-05 +1.2536909862856600029 0.00458282331453590229 0.22059260271762326511 +239.24484621531576067 211.9805191903669197 336.93660475572465884 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -114 1.1053539394491335305e-06 0.0038455497484053390705 -1.0978911404624207699e-05 -1.826471255610046418 0.00087780859820767002683 0.009722642750510790757 -120.71268570369510087 352.6610169497902234 335.05498321080250435 +114 1.1053539394491334998e-06 0.0040818163191932438934 +1.0978911404624207108e-05 +1.9386877469932644047 0.0034440627141437952195 0.0029648722570915974836 +268.26051150170343362 187.7054005113650419 309.77320784270114018 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -115 1.1053539394491335305e-06 0.0017443709230869269861 -1.0978911404624207699e-05 -0.82850139995235116963 0.00031729137906426232822 0.01699303328109756997 -182.6703622068744437 213.3557405525360764 250.28249688543755269 +115 1.1053539394491334998e-06 0.00075504648410603521167 +1.0978911404624207108e-05 +0.35861470793375377353 0.003333933840073076936 0.12584386334249569872 +308.60124441060617073 226.27834805348561531 215.32221555637738675 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -116 1.1053539394491335305e-06 0.0020702769104938987164 -1.0978911404624207699e-05 -0.98329277101103618186 0.00058251749032120785 0.011797523288670572553 -312.4959308001525642 359.33855098907400816 162.46970124565356741 +116 1.1053539394491334998e-06 0.00363399971311397297 +1.0978911404624207108e-05 +1.7259940588859112864 0.0070388732638764642605 0.09689085939444666562 +175.04340167143934082 4.5003931954305986807 222.63929016011763906 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -117 1.1053539394491335305e-06 0.00080530024674720453575 -1.0978911404624207699e-05 -0.38248309059826302025 0.0005969943570699224548 0.01380590580233940004 -48.708972362298950998 330.19391063831329802 102.38386339213280962 +117 1.1053539394491334998e-06 0.0016828489483058368538 +1.0978911404624207108e-05 +0.79928109963699989216 0.0030562988048510632277 0.013335537613834849008 +138.62658117846274308 357.4480627139793114 335.86951076579140363 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -118 1.1053539394491335305e-06 0.002285280534438147877 -1.0978911404624207699e-05 -1.085410274275427911 0.00025130462779814554623 0.006036721527856849477 -45.867981468353910657 64.60926497341390018 253.24516188255682891 +118 1.1053539394491334998e-06 0.0036435022100893951574 +1.0978911404624207108e-05 +1.7305073375372477251 0.0045280126290122377913 0.158064202455872993 +112.642489921453218926 199.95549654435518505 84.57702293741269273 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -119 1.1053539394491335305e-06 0.002898627766350067431 -1.0978911404624207699e-05 -1.3767239126595514076 0.0002530591745570577502 0.006701891775872563864 -256.03674703821604908 136.96778530539529584 171.0933268407595449 +119 1.1053539394491334998e-06 0.0026723916083069132697 +1.0978911404624207108e-05 +1.2692714372841324977 0.0038596317625253385303 0.11768487045001839453 +88.830446669740567245 175.52065258212684284 28.003477748073663633 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -120 1.1053539394491335305e-06 0.0014542058638660382582 -1.0978911404624207699e-05 -0.6906854374182271883 0.0006003363904860686438 0.004833197414767716714 -56.14180364632849063 273.3261312610867435 199.6250014185157795 +120 1.1053539394491334998e-06 0.003803880137043655119 +1.0978911404624207108e-05 +1.806679976764643758 0.0028437885507999294092 0.26964661238344800331 +119.51581415994868962 270.7215044806005153 32.380858635062786277 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -121 1.1053539394491335305e-06 0.0024981790226714743672 -1.0978911404624207699e-05 -1.1865279283331482407 0.00082336466808019992576 0.018265656692325986377 -132.47659416127314103 48.61694507533226073 207.43492631988763719 +121 1.1053539394491334998e-06 0.0025690929599276315768 +1.0978911404624207108e-05 +1.2202090081512457775 0.008880328260440571719 0.2698497188309182393 +185.16124422470124955 271.89114248094085724 103.33494152059954274 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -122 1.1053539394491335305e-06 0.0028828564897507973385 -1.0978911404624207699e-05 -1.3692332324558205148 0.00040127628444019838947 0.007585985018489528435 -343.91044751539715207 196.83240087837353371 62.629566549905092643 +122 1.1053539394491334998e-06 0.00076120961289824669203 +1.0978911404624207108e-05 +0.36154192987081618105 0.0012590262030350329089 0.016586818575739122744 +132.09793663022330179 170.41320467620272439 210.39064780235156604 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -123 1.1053539394491335305e-06 0.0038943677929657182489 -1.0978911404624207699e-05 -1.8496577337414494835 0.00043859595304759446763 0.011023337424484119101 -72.91657450189477174 344.12080798821472172 100.72699073828245275 +123 1.1053539394491334998e-06 0.002873065588407590518 +1.0978911404624207108e-05 +1.3645829740948938191 0.006344052429173271772 0.22412958028474397332 +26.65753120394456488 168.16308743207042653 330.05874329863235062 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -124 1.1053539394491335305e-06 0.001675555086167977485 -1.0978911404624207699e-05 -0.7958168278400463702 0.00034926098253153968964 0.0099212607809325507185 -135.68666178212228601 296.83136368103197356 107.90664998734122548 +124 1.1053539394491334998e-06 0.0025727999116668645324 +1.0978911404624207108e-05 +1.2219696512947781919 0.0011738192240699197276 0.2851359998566981857 +313.6832191352650625 250.51848033757354983 160.01382075302444719 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -125 1.1053539394491335305e-06 0.0023748127187634624592 -1.0978911404624207699e-05 -1.1279342232088616083 0.0007746490841826023793 0.017642382003092794973 -268.43319860669271293 252.98510234252850637 120.5395807841271818 +125 1.1053539394491334998e-06 0.003401511887967890802 +1.0978911404624207108e-05 +1.6155723096718492826 0.0076852757383839148675 0.03476116649353520882 +35.7538922381573272 318.63971549673613026 285.9559994469310027 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -126 1.1053539394491335305e-06 0.0012043684437486966761 -1.0978911404624207699e-05 -0.5720233744428824263 0.00034480510921434492748 0.017251867284702383787 -154.90093862136961889 356.5658098586184792 57.388355737939328094 +126 1.1053539394491334998e-06 0.0040805470076417364847 +1.0978911404624207108e-05 +1.9380848784270201524 0.0055119996759198913033 0.22720129674709477197 +49.686989741435013457 214.70684681472204147 149.08574928987266617 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -127 1.1053539394491335305e-06 0.0007890385972653567634 -1.0978911404624207699e-05 -0.37475950429965448896 0.00031644523056148786714 0.027616371909429979908 -171.3578942788073789 299.01930445458822305 225.76712007928702519 +127 1.1053539394491334998e-06 0.0015070432555445517122 +1.0978911404624207108e-05 +0.7157809331044376888 0.002496909106453262285 0.019745475549577260616 +200.60338216363609831 130.49908869532370659 296.62965327291408357 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -128 1.1053539394491335305e-06 0.001777100120316001991 -1.0978911404624207699e-05 -0.84404636539789934524 0.00087953695475614056525 0.0006577653108544906282 -70.992958768969344874 130.55955257913041123 40.84173864503155471 +128 1.1053539394491334998e-06 0.0014509440785792287021 +1.0978911404624207108e-05 +0.689136229253438759 0.0088904881696526688595 0.19703438371375647797 +274.84940725858410815 355.5685931327874414 109.002196102492874275 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -129 1.1053539394491335305e-06 0.0040678503543026272943 -1.0978911404624207699e-05 -1.9320545124498424983 0.0005834355620338948882 0.0002608548084170523012 -270.88252512263818517 195.45419716249062958 140.3411838625577559 +129 1.1053539394491334998e-06 0.0017780689557125214926 +1.0978911404624207108e-05 +0.84450652067320008953 0.0066510746021922143717 0.1808383926464373348 +45.885534902846139005 348.27226545478612252 120.026333212807728046 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -130 1.1053539394491335305e-06 0.0026829522072340253071 -1.0978911404624207699e-05 -1.2742872689972433164 0.00060055603766298343727 0.0064920160946518451484 -162.55438763596669105 178.06818403372230364 68.91417398625686985 +130 1.1053539394491334998e-06 0.0025325135195425613975 +1.0978911404624207108e-05 +1.2028353422827084973 0.005066711263458635768 0.12920973080591713344 +121.81913511029513586 221.86321367090613421 66.050743014336944725 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -131 1.1053539394491335305e-06 0.00071194132454311543046 -1.0978911404624207699e-05 -0.33814160524074998726 0.00091270005510230359236 0.0011893404294311912296 -250.26053020749216671 223.06302666485407826 192.24977287221634015 +131 1.1053539394491334998e-06 0.0021051518620792612006 +1.0978911404624207108e-05 +0.99985687777831189216 0.006316298028305530367 0.21665869128479972594 +333.05933586041629724 253.07871787080006243 226.92763575886621652 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -132 1.1053539394491335305e-06 0.002812359973542913556 -1.0978911404624207699e-05 -1.3357504097390577869 0.00026337894924635706691 0.027464957742126525075 -199.22420478899164209 171.93696705940942593 94.48037873747355775 +132 1.1053539394491334998e-06 0.0037801515123642023119 +1.0978911404624207108e-05 +1.7954098973877870016 0.003051710974793897524 0.2751693749710122372 +289.6095348152826432 335.0789123504604845 191.64385772315858958 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -133 1.1053539394491335305e-06 0.0028963111872931898259 -1.0978911404624207699e-05 -1.3756236369290164578 0.0006573629715563674607 0.021333593911504113161 -87.075565489431383526 153.68132922246732619 173.6496245283211124 +133 1.1053539394491334998e-06 0.0013778827986691858701 +1.0978911404624207108e-05 +0.65443525374035138586 0.008578695431076640426 0.25904625333530822973 +54.02655163918610981 188.00048915305208652 21.74750905015093494 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -134 1.1053539394491335305e-06 0.002785993277843155817 -1.0978911404624207699e-05 -1.3232273597327499637 0.00073604309841295738944 0.011001193704390446401 -339.40562860328299166 83.8138037375181284 177.19280309751334812 +134 1.1053539394491334998e-06 0.0024289558337854647504 +1.0978911404624207108e-05 +1.1536498815013809249 0.004878189125239648302 0.17164605452745695935 +203.1467355314321992 123.09886606927753405 256.12544218720313438 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -135 1.1053539394491335305e-06 0.0019038535805104330423 -1.0978911404624207699e-05 -0.9042488245366071542 0.0009361201833287777522 0.011953628791727587133 -153.92620389616467946 44.723571716565317047 318.60665806354387541 +135 1.1053539394491334998e-06 0.0010474547810942502333 +1.0978911404624207108e-05 +0.4974961122303251937 0.0053732557057354973437 0.058437598177638543084 +194.07445797060921677 312.1563683927644206 336.71260021183917388 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -136 1.1053539394491335305e-06 0.0010869785583050439427 -1.0978911404624207699e-05 -0.5162682118549849486 0.00022103242271550004863 0.017892470794599633216 -219.23592171773313453 303.7464473661763691 122.639027547649121175 +136 1.1053539394491334998e-06 0.0032033607185854075993 +1.0978911404624207108e-05 +1.5214589997887300044 0.0005638709347166925628 0.020659563062774926462 +329.41508533125937674 226.52629627431520021 244.98576408916093783 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -137 1.1053539394491335305e-06 0.0032939926784115201725 -1.0978911404624207699e-05 -1.5645052949330442438 0.000991170480938109201 0.019190182292000351055 -346.07086810942291777 54.79631567078042309 335.26549358631774567 +137 1.1053539394491334998e-06 0.0037806661206648187898 +1.0978911404624207108e-05 +1.7956543142671588242 0.0055566008094702235703 0.03231246228705678125 +201.749373048024637 215.21918287568965411 7.438395115749445452 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -138 1.1053539394491335305e-06 0.0010896488129816246724 -1.0978911404624207699e-05 -0.5175364683413183897 0.0002088585855651833357 0.025066384881598170048 -68.72020084550582908 232.28654212667152024 35.431071301701685172 +138 1.1053539394491334998e-06 0.0017249242486109971828 +1.0978911404624207108e-05 +0.8192650633369633617 0.0029048304913952762048 0.14930599090131047024 +101.88990081838475987 297.93516628554459658 62.770866208806950226 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -139 1.1053539394491335305e-06 0.0008099901996317258652 -1.0978911404624207699e-05 -0.38471061714041626667 0.0005249334614017682433 0.023288096472191086028 -254.41357781115257808 117.993033232943290045 239.40340264257432068 +139 1.1053539394491334998e-06 0.0008630031885697554176 +1.0978911404624207108e-05 +0.40988951399630429995 0.0040384501685508927132 0.20206838456273415461 +144.78066931313355781 58.463702612853687413 32.412650926437137855 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -140 1.1053539394491335305e-06 0.0026223707179148065143 -1.0978911404624207699e-05 -1.2455136589537159075 0.00084338241955415730895 0.0023232936840040861563 -269.3199834748557464 357.25116637136363806 20.298945789952838936 +140 1.1053539394491334998e-06 0.0016999482050577173896 +1.0978911404624207108e-05 +0.8074025134771294354 0.007015880742121568571 0.22849758031476699593 +15.276211733348890931 188.46498087608566152 277.05152691253368857 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -141 1.1053539394491335305e-06 0.0026159634140416132347 -1.0978911404624207699e-05 -1.2424704643219992573 0.00044638238521322806543 0.0012966745044005083872 -154.64047440242666198 236.78631050296556282 350.38453034745816694 +141 1.1053539394491334998e-06 0.0010116190643702391637 +1.0978911404624207108e-05 +0.48047568321423139714 0.0052325496651816159194 0.22643611170258079457 +261.84219304355048052 350.8156104283515333 236.15471907741559221 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -142 1.1053539394491335305e-06 0.003456693657444609839 -1.0978911404624207699e-05 -1.6417812842988768196 0.0006303353332627267564 0.016812028430699579862 -144.4420533567427185 153.14985299997016455 271.69228258365166084 +142 1.1053539394491334998e-06 0.003324863869305665143 +1.0978911404624207108e-05 +1.5791677870300422359 0.007872834204073335049 0.04248127934662862537 +43.73209655092482251 274.1018101614639022 230.02987991343479734 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -143 1.1053539394491335305e-06 0.0007301401336089313031 -1.0978911404624207699e-05 -0.34678525928756914753 0.00045501001474390856362 0.02594919197139722647 -116.332998235860372915 256.36327622207414834 161.64230688982479478 +143 1.1053539394491334998e-06 0.0015510615040214542919 +1.0978911404624207108e-05 +0.73668771388362341845 0.00045008957605648715903 0.27533232281314390377 +92.12350449049537815 51.666471703182700992 35.541589634423750965 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -144 1.1053539394491335305e-06 0.0034349976066789206724 -1.0978911404624207699e-05 -1.6314765903860701801 0.000856330141764382333 0.014786839646800843326 -42.332000671474226294 138.1316800890192269 216.26130379036857221 +144 1.1053539394491334998e-06 0.0014204523628638898468 +1.0978911404624207108e-05 +0.67465397159667750415 0.0048518193896502064683 0.058484026514972704824 +101.700857098428102177 261.38653462694963991 205.29489462215587992 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -145 1.1053539394491335305e-06 0.0025439979715687957412 -1.0978911404624207699e-05 -1.2082899646084366285 0.0004070939489201934802 0.004503954508818640984 -48.07928625757347163 276.96063567133671768 187.66327227579773762 +145 1.1053539394491334998e-06 0.0014579850283668487957 +1.0978911404624207108e-05 +0.69248037852744426246 0.009388948310886659557 0.06977845217314723736 +304.87815986587628458 102.614408869080861564 40.322681894551074322 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -146 1.1053539394491335305e-06 0.003859828194739848691 -1.0978911404624207699e-05 -1.8332529054419246517 0.0003598790557617636025 0.014970896975960788777 -271.0689558389924514 52.94488824830970941 1.9029339518958510169 +146 1.1053539394491334998e-06 0.0006991032650671249907 +1.0978911404624207108e-05 +0.33204407741122904385 0.002891666183692518429 0.07356114844595917912 +352.07906955287091932 321.30348152892810276 42.409724361015499028 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -147 1.1053539394491335305e-06 0.0040866242766629467682 -1.0978911404624207699e-05 -1.9409713206540264441 0.00011426903199890425854 0.011184164105792333138 -67.28912042774895497 289.72221855724853867 184.15766072550803756 +147 1.1053539394491334998e-06 0.0033104307149426234083 +1.0978911404624207108e-05 +1.5723126575175947472 0.0051314307837915440133 0.10197095863820798689 +231.35657192888356803 204.9028211388712748 201.78191673801225647 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -148 1.1053539394491335305e-06 0.00316122359322290065 -1.0978911404624207699e-05 -1.5014456718372271027 0.00086962582925130050334 0.01914542568965043115 -250.74751474204416013 182.77230460121793953 167.04339861860248106 +148 1.1053539394491334998e-06 0.0029495930000326610137 +1.0978911404624207108e-05 +1.400930213564982818 0.009911648698554346645 0.066574598448402091955 +221.30650316333401406 124.73147601965860076 227.54154211080833647 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -149 1.1053539394491335305e-06 0.00097271678791404052593 -1.0978911404624207699e-05 -0.46199876980165455187 0.00034328565960485866526 0.021012970927227814233 -297.8391700642537785 90.09431163085170624 45.254280687068330735 +149 1.1053539394491334998e-06 0.00072511646002927188936 +1.0978911404624207108e-05 +0.3443992297232342792 0.007819595393232283906 0.23668093625525662982 +76.3904532019122513 148.0979828905799991 122.94587470999351808 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -150 1.1053539394491335305e-06 0.0033482251435429574658 -1.0978911404624207699e-05 -1.5902633906967305055 0.00019727479448159425065 0.025485920919319147299 -39.29235960954184037 250.38592799994987104 142.50585121059737048 +150 1.1053539394491334998e-06 0.0037851500973681313713 +1.0978911404624207108e-05 +1.7977840109543026248 0.008583263260235590719 0.022714618833290043526 +28.466834332323067258 350.075384972570248 60.647124727312586856 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -151 1.1053539394491335305e-06 0.0025466847865406780281 -1.0978911404624207699e-05 -1.2095660865250288385 0.00016751618714245874271 0.0016713720493250405416 -333.37472688335139992 145.95098571742994409 234.96494950660738255 +151 1.1053539394491334998e-06 0.00175683921066669322 +1.0978911404624207108e-05 +0.8344233019848410482 0.0037436143635977093755 0.110176035630884183725 +294.33360652651515466 287.14380368626814288 295.6502352986602773 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -152 1.1053539394491335305e-06 0.000719807963238783997 -1.0978911404624207699e-05 -0.3418779213453242427 0.00074674271745437542386 0.0011890436742735912591 -195.44114509251284062 283.06165279842355176 315.09159268499945483 +152 1.1053539394491334998e-06 0.003122916852845279808 +1.0978911404624207108e-05 +1.4832516125288395248 0.005295684999474566633 0.26214242704521534266 +118.030580159474965285 351.64179960361536814 78.34665569441040134 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -153 1.1053539394491335305e-06 0.00157025465995761385 -1.0978911404624207699e-05 -0.74580364006202581884 0.0002094126871885914243 0.022074802063619617526 -153.41729982837850343 124.788130215813424684 122.51830102672674627 +153 1.1053539394491334998e-06 0.0030258569428200121098 +1.0978911404624207108e-05 +1.437152316633171667 0.0074494844285275495233 0.26557066670573209466 +250.92833717353181555 213.88220717132779214 349.39028260012048577 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -154 1.1053539394491335305e-06 0.001874785507921179697 -1.0978911404624207699e-05 -0.89044273632717141354 0.00085481426099495228573 0.021979234537361322377 -202.10509721048100573 320.04294945394877914 309.06206051991284767 +154 1.1053539394491334998e-06 0.003988912006964646067 +1.0978911404624207108e-05 +1.8945621818830691296 0.0044398585967464158225 0.010283862047722251015 +258.29853753750563783 356.72434203993179835 333.31457638733343174 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -155 1.1053539394491335305e-06 0.0019122234532341110998 -1.0978911404624207699e-05 -0.9082241552287277919 0.0004597575061389033409 0.020148347940879648976 -163.72826672182648622 305.80294187113088356 283.64822483177448476 +155 1.1053539394491334998e-06 0.0030278787443762763343 +1.0978911404624207108e-05 +1.4381125856892658099 0.0022445677616334735668 0.06237108902067381444 +2.5213158843440108825 73.69350063624342795 123.72726674992911455 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -156 1.1053539394491335305e-06 0.0039778936569127347484 -1.0978911404624207699e-05 -1.8893289380113937881 0.00049610582898170353487 0.0014385636633325129576 -157.23049053490680649 323.571089698826313 102.65627395667121391 +156 1.1053539394491334998e-06 0.00087933125562007786434 +1.0978911404624207108e-05 +0.41764464579233795405 0.00019189906532495636842 0.20340672425611347474 +245.82044702840588002 7.1153350691133843142 358.1249298999702546 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -157 1.1053539394491335305e-06 0.0019708158646589233432 -1.0978911404624207699e-05 -0.93605303855254251566 0.00019680356564931200973 0.020455589191385341319 -278.47203022847156717 255.0643652208907497 258.27522081614978333 +157 1.1053539394491334998e-06 0.0036227545122819890515 +1.0978911404624207108e-05 +1.7206530706197478153 0.0015819722493481958026 0.15527567587577953412 +72.6307945094991112 331.1549078885608992 220.10419284189686095 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -158 1.1053539394491335305e-06 0.003967327173706975909 -1.0978911404624207699e-05 -1.8843103115182096019 0.0009097170816114348319 0.0018044172991811243192 -117.34832961121314554 234.13353289800707557 259.1454183769003521 +158 1.1053539394491334998e-06 0.0033503890922593141715 +1.0978911404624207108e-05 +1.5912911735594221785 0.0024823156478277377639 0.09132875435317404367 +167.84468714383879728 64.28369851634623444 66.16933683118321596 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -159 1.1053539394491335305e-06 0.0013842445575880614169 -1.0978911404624207699e-05 -0.6574568164714708063 1.4540080482081997083e-05 0.009892527806868892798 -133.30970394955991765 89.751557170898067284 193.05936528552655318 +159 1.1053539394491334998e-06 0.0040551002842587597285 +1.0978911404624207108e-05 +1.9259987758281029713 0.009664669610263468963 0.10057215900932207908 +68.054580253324147066 53.106101227679147314 131.40907212685985428 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -160 1.1053539394491335305e-06 0.0035162555550013580372 -1.0978911404624207699e-05 -1.670070631969415409 0.00091422718885765909876 0.028436761433306107644 -353.37301866523387162 51.552218623340351655 332.64071506725503014 +160 1.1053539394491334998e-06 0.0037702767325024760324 +1.0978911404624207108e-05 +1.7907198003267883468 0.0006008069688313588414 0.007833264488165680994 +58.360671007282093115 336.14794789773759476 259.07597437042420552 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -161 1.1053539394491335305e-06 0.0019396124736002073748 -1.0978911404624207699e-05 -0.9212327656201906301 0.00057552402003210683355 0.00950969025161889879 -283.93076060868486366 267.5628271717484381 143.52189652919906848 +161 1.1053539394491334998e-06 0.0007645844991431488309 +1.0978911404624207108e-05 +0.36314485614158503735 0.00024863180943032303204 0.1737100995417081295 +212.93209166979400493 180.07568591375277833 226.19074178733839631 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -162 1.1053539394491335305e-06 0.0031661554024814644338 -1.0978911404624207699e-05 -1.503788069787651116 0.00018115407388301875608 0.02283324079244578031 -177.01583573865022458 234.49703162631655573 336.92462545405476249 +162 1.1053539394491334998e-06 0.0008945588740412077804 +1.0978911404624207108e-05 +0.42487711167036362747 0.0014273960519744389053 0.095997795594056758994 +170.50243563511665457 285.70020695030672186 142.59922375723829191 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -163 1.1053539394491335305e-06 0.0033722481017907932155 -1.0978911404624207699e-05 -1.6016732658992518523 0.00053832824323583156837 0.017356963073014760462 -210.48701348074004613 252.36586170021701037 241.77353994833666206 +163 1.1053539394491334998e-06 0.00122382611181123356 +1.0978911404624207108e-05 +0.58126493254056721405 0.007866575768953701711 0.18841751719099333884 +115.70608702313784022 63.6235178037891842 252.209803125291387 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -164 1.1053539394491335305e-06 0.0018549151304582611073 -1.0978911404624207699e-05 -0.8810051589588920873 0.00039455774939218580828 0.014186890964832121059 -268.78131437644134394 234.86755048529201417 135.82402939345988102 +164 1.1053539394491334998e-06 0.00078036104584642061046 +1.0978911404624207108e-05 +0.3706380394187652194 0.004855613560574428833 0.10402342436969566619 +28.145604901328717062 317.45242237519084938 328.99264224394113398 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -165 1.1053539394491335305e-06 0.0011704042480178788963 -1.0978911404624207699e-05 -0.5558918376585835208 5.564504104615730423e-05 0.023585563294025682635 -48.050891171653226763 199.47056209951909977 219.93699201694707313 +165 1.1053539394491334998e-06 0.0031822981717286262764 +1.0978911404624207108e-05 +1.5114551930716790817 0.0028568129164060385335 0.27129913075196959715 +304.01621179330965106 249.22611311730258876 177.3652475749936741 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -166 1.1053539394491335305e-06 0.0040699423683521412583 -1.0978911404624207699e-05 -1.9330481294299255435 0.00052600080391025812437 0.021919559654086234746 -39.096865156286462195 128.8303250981957433 331.23155076245132022 +166 1.1053539394491334998e-06 0.0011513990629780069531 +1.0978911404624207108e-05 +0.54686518959681529317 0.0041525070486014645926 0.26590980958146898105 +12.167167712177239025 125.474543161024939764 277.79692108039523646 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -167 1.1053539394491335305e-06 0.0028820213749619458248 -1.0978911404624207699e-05 -1.3688365887359974504 0.00026969964684439974665 0.017275229592356205338 -330.69633084561246505 147.5243863767787218 153.22005163183507648 +167 1.1053539394491334998e-06 0.003502713837770050965 +1.0978911404624207108e-05 +1.6636388968748847539 0.00655892379171164365 0.17431068078520289832 +268.69527558969940628 253.71474263862214116 131.91534736539497885 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -168 1.1053539394491335305e-06 0.003980615057015220282 -1.0978911404624207699e-05 -1.8906214863822126127 0.00036100510956251820067 0.01521335462518577826 -340.23428559641661195 130.00201841928748081 169.2953836810935968 +168 1.1053539394491334998e-06 0.0029676781425923374656 +1.0978911404624207108e-05 +1.4095198808947466684 0.008599464267769979173 0.22076371379701376085 +255.19308340890390241 357.95488156582177908 202.63365444862495224 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -169 1.1053539394491335305e-06 0.0012767502410615831949 -1.0978911404624207699e-05 -0.60640162485459569996 0.00020696978447336191083 0.0056857512796010872477 -181.57921819815450704 115.817629846161409546 320.0491270864600324 +169 1.1053539394491334998e-06 0.0024709283155031532587 +1.0978911404624207108e-05 +1.1735850107805603226 0.0029052663082875531363 0.19042471373062616613 +269.64074802384635632 57.638532772065524057 223.93584343885652288 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -170 1.1053539394491335305e-06 0.002399637727624715802 -1.0978911404624207699e-05 -1.1397250380654750934 0.0006442965482497394836 0.002941317764456898541 -333.45417971179358574 185.18080690840253055 269.38711004629510626 +170 1.1053539394491334998e-06 0.0032866406946481512082 +1.0978911404624207108e-05 +1.5610134178558918716 0.006164163207425711437 0.05800604231450259829 +134.54998842866646669 343.97915330071634799 240.34511521076311169 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -171 1.1053539394491335305e-06 0.0035439123990565288466 -1.0978911404624207699e-05 -1.6832064471304613029 0.00072650143891821498086 0.02076627535231315505 -82.57443269249242235 19.640854808506546192 343.42020390750877823 +171 1.1053539394491334998e-06 0.0029566661400300918858 +1.0978911404624207108e-05 +1.4042896518085188351 0.0078581637453847205665 0.12166326451813178067 +120.911223215378640816 28.390466765897670598 289.36890689591876935 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -172 1.1053539394491335305e-06 0.0021893049972247140684 -1.0978911404624207699e-05 -1.0398260089737605405 0.00095820846394839131327 0.0047667113246031159526 -231.34174007276843099 346.25149299156703364 359.3927866655562866 +172 1.1053539394491334998e-06 0.0039108571490310105083 +1.0978911404624207108e-05 +1.8574894709044555974 0.0005426767812503108289 0.05667772574095782112 +165.4295248971720298 208.24227862596347904 131.90431740714015518 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -173 1.1053539394491335305e-06 0.003808558580359920666 -1.0978911404624207699e-05 -1.8089020367553392266 0.00080486608391464400675 0.026061626097182894607 -333.73026949841113264 290.72940981027193175 353.58605983201931622 +173 1.1053539394491334998e-06 0.0010859925198827920446 +1.0978911404624207108e-05 +0.51579988588002723127 0.0005361395633188881021 0.21955040403371273161 +115.134021606201500276 126.8998016202271657 325.20127237092032146 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -174 1.1053539394491335305e-06 0.0036046989829116192528 -1.0978911404624207699e-05 -1.7120774682852628601 0.000408327401359263474 0.023141693393884565227 -190.15243963894701551 10.9019960190977514 206.20261856852459914 +174 1.1053539394491334998e-06 0.0016733896516879965456 +1.0978911404624207108e-05 +0.7947883393033339239 0.009349519633078097469 0.26197072531532406003 +1.8767913830442761736 326.62073831548445924 237.01200043645579285 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -175 1.1053539394491335305e-06 0.0025289888373368178023 -1.0978911404624207699e-05 -1.201161269352922556 0.0008119307695628591708 0.02330748815658333778 -293.74129631246364625 228.8273707230899845 50.496213420126203175 +175 1.1053539394491334998e-06 0.004160984919851807643 +1.0978911404624207108e-05 +1.9762894380153865903 0.0077217171502559304314 0.11705617979985032118 +217.99395390163073216 153.18871505615376805 176.35100903684255513 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -176 1.1053539394491335305e-06 0.0035813927117425375896 -1.0978911404624207699e-05 -1.7010079887177620428 0.0008261188698801552469 0.0033817239341808955078 -270.3371253433707011 303.21090622901044753 55.41742303760840116 +176 1.1053539394491334998e-06 0.003132721471025885227 +1.0978911404624207108e-05 +1.4879083857994319651 0.0011012975807243984699 0.113463207926910308876 +192.75616068683635262 193.19355659252013879 189.40277074079665454 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -177 1.1053539394491335305e-06 0.0029864597633055024009 -1.0978911404624207699e-05 -1.4184403454864715766 0.0006100544512734605053 0.0031745002208599282408 -128.80488878502711714 46.8536787103431962 190.83918585108236243 +177 1.1053539394491334998e-06 0.0037983443205501397377 +1.0978911404624207108e-05 +1.804050701273946844 0.0040639756372511859003 0.027370576204051783042 +102.149726603031112404 220.92752834505296278 182.35642386120065339 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -178 1.1053539394491335305e-06 0.0023567486788243735888 -1.0978911404624207699e-05 -1.119354578719118809 0.00053509985437350090966 0.020556636907334471104 -93.86909946810600047 329.53011231398716063 68.53400707162742833 +178 1.1053539394491334998e-06 0.0029066218214650824512 +1.0978911404624207108e-05 +1.3805207461004376235 0.005396419049672932823 0.16451037543421118126 +145.50908209065676147 285.63093274443326663 298.24776069448341786 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -179 1.1053539394491335305e-06 0.0034140907141169699521 -1.0978911404624207699e-05 -1.6215467127855098806 0.0007155502442420363365 0.021636466572293039379 -15.484181145735732343 319.8815184503466753 126.01422430110272899 +179 1.1053539394491334998e-06 0.0021284072422542663204 +1.0978911404624207108e-05 +1.010902186305537187 0.0062198798209103832793 0.28278736997055975433 +118.67981333558519452 26.279156408242133836 170.32396486728103469 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -180 1.1053539394491335305e-06 0.0025675289816375823053 -1.0978911404624207699e-05 -1.2194661855177959531 0.00048216964694683286767 0.017262139448479693615 -335.34868702893140835 186.94351621903143723 26.64334186676326155 +180 1.1053539394491334998e-06 0.0039538674071673946 +1.0978911404624207108e-05 +1.8779174994886780325 0.009432140448994876317 0.020821807139992327962 +66.965256896674745235 178.75707014089249469 252.50094855234701186 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -181 1.1053539394491335305e-06 0.0034248039486638383743 -1.0978911404624207699e-05 -1.6266350398738742555 0.00081883719141492166717 0.003694641256859914659 -218.92219023702784853 218.29951433993917931 259.11630406545350525 +181 1.1053539394491334998e-06 0.0033225208522467185628 +1.0978911404624207108e-05 +1.578054954382032804 0.0011480412701118224844 0.25962638770393015042 +349.760085801757441 7.729571377849708824 290.2638591051049275 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -182 1.1053539394491335305e-06 0.0028977454974775277425 -1.0978911404624207699e-05 -1.3763048727716702402 0.00040844368595388948033 0.020281148678402180496 -289.91356665087704414 165.61033347014003425 288.23615258185753873 +182 1.1053539394491334998e-06 0.0038363536428475558013 +1.0978911404624207108e-05 +1.8221034997458003257 0.0074315436519270874904 0.026840314352887285898 +183.27856607943658673 171.68900869783317376 321.3821958522109412 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -183 1.1053539394491335305e-06 0.0011783105169288593343 -1.0978911404624207699e-05 -0.5596469764163169991 0.00026931995881909574905 0.0010082118613559110359 -154.06847791408287662 39.901773134600148296 187.47166921424076236 +183 1.1053539394491334998e-06 0.0031234083635033859387 +1.0978911404624207108e-05 +1.4834850590183119579 0.006298399529946449235 0.25315232549956684371 +263.48864845982456018 303.36974935109344642 178.2405859340265124 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -184 1.1053539394491335305e-06 0.002491583136722370224 -1.0978911404624207699e-05 -1.1833951653006802296 0.00048583037529452476142 0.027591397048547783993 -149.2419352144119955 63.397457239281493457 295.88510332284619153 +184 1.1053539394491334998e-06 0.0040200808849782696217 +1.0978911404624207108e-05 +1.9093660625987214363 0.0025680720198822549333 0.23358977988488904831 +338.08259515095670622 328.03018002895686323 18.745888017780568902 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -185 1.1053539394491335305e-06 0.0039004676796874942429 -1.0978911404624207699e-05 -1.8525549184065084329 0.0005185930845717148926 0.019438436095256288877 -292.5205667956682305 105.44538380282074286 123.70099114339642199 +185 1.1053539394491334998e-06 0.0012088651939299233287 +1.0978911404624207108e-05 +0.57415913798438267257 0.004166819918519071124 0.22891593045067742951 +149.82107045433053827 305.0907861722467942 164.82948448741862535 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -186 1.1053539394491335305e-06 0.0034369089438783143244 -1.0978911404624207699e-05 -1.6323843936087221174 0.00010509062853767581647 0.0032505177502269231964 -143.85173028989797217 189.31567203063778493 223.19791686246551876 +186 1.1053539394491334998e-06 0.0015082253414342592136 +1.0978911404624207108e-05 +0.7163423732210577599 0.0059228600888672324268 0.0037546631562516493037 +77.709331824223667695 344.2998565395624837 60.579566496302568623 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -187 1.1053539394491335305e-06 0.004128326569038383845 -1.0978911404624207699e-05 -1.9607781215797892571 0.0007065471846638792094 0.021817391680966469192 -267.38223511629621498 257.29519900708868363 77.6961655587950446 +187 1.1053539394491334998e-06 0.000729961008578045944 +1.0978911404624207108e-05 +0.3467001825777416002 0.007964382969585615674 0.17804213360735191007 +246.13928978381900947 258.922667535056803 176.12635256033649966 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -188 1.1053539394491335305e-06 0.0020499009381892692037 -1.0978911404624207699e-05 -0.97361505776992030015 0.00093181583258145170724 0.0006097968157406988537 -145.87863557509786006 138.78820490355309403 73.09644258927524163 +188 1.1053539394491334998e-06 0.00091449624296400956204 +1.0978911404624207108e-05 +0.4343465071098819852 0.00035864864825474907385 0.22499017632385373555 +149.25037922799606349 270.7904709187972685 110.845683628496118445 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -189 1.1053539394491335305e-06 0.0013791485719345369476 -1.0978911404624207699e-05 -0.65503644177237263513 0.00014046622778450534863 0.015442926715237644333 -113.70608882665497674 243.3631092677804304 81.13225672390240106 +189 1.1053539394491334998e-06 0.0013386560504926946244 +1.0978911404624207108e-05 +0.6358042301721020806 0.008194002699235791373 0.13321378980961537386 +355.69835155237404933 241.9183342645525272 216.54648943862528654 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -190 1.1053539394491335305e-06 0.0024853665935430262675 -1.0978911404624207699e-05 -1.1804425738198291995 0.00096027971308601327814 0.023639897027866934448 -334.99323146372387328 76.84265628244520485 155.49317295086675017 +190 1.1053539394491334998e-06 0.0036611086297523375957 +1.0978911404624207108e-05 +1.7388696320159258146 0.009463399612009872411 0.09792727411640843316 +266.32752292348715173 45.84496453183301412 34.568808321301936815 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -191 1.1053539394491335305e-06 0.003654973676990583536 -1.0978911404624207699e-05 -1.7359557924853059596 0.00054611453698988137676 0.026616017411125021674 -173.99931107991119461 359.07752431447528352 78.019305599684969366 +191 1.1053539394491334998e-06 0.0031026559620937145813 +1.0978911404624207108e-05 +1.4736285580913992543 0.0076533689915776548576 0.019027778064391976526 +155.49835363028691404 112.53380567902475207 281.99316203441350126 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -192 1.1053539394491335305e-06 0.003360253875484283402 -1.0978911404624207699e-05 -1.5959765226465592036 0.00089913403289640294203 0.014826170842651739679 -204.39386065798206005 17.787041065446423715 47.062099086162277217 +192 1.1053539394491334998e-06 0.0007959565494620336935 +1.0978911404624207108e-05 +0.37804523499138570353 0.0049652627165416634777 0.19224692846275387437 +9.987837842589385673 218.18816626400888481 340.19621894155864084 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -193 1.1053539394491335305e-06 0.0036411616313956547123 -1.0978911404624207699e-05 -1.7293956630081683823 0.0004269520101434239978 0.011446361145646259325 -225.78458330355539374 323.21819225965253963 348.78801121716753642 +193 1.1053539394491334998e-06 0.0015607320696812756844 +1.0978911404624207108e-05 +0.7412808179542385023 0.0041121555809099834614 0.07669842943934201962 +113.92010277446652822 257.48581266560358927 25.833299759874574164 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -194 1.1053539394491335305e-06 0.0026716566036685272943 -1.0978911404624207699e-05 -1.2689223415936377037 0.00043093138180629422026 0.007198866767697694423 -49.75485744273438371 283.14995135249375835 251.76161931871857291 +194 1.1053539394491334998e-06 0.0028199464111369163995 +1.0978911404624207108e-05 +1.3393536423337397689 0.008756470205376612123 0.08467874254286143765 +303.66981809886692645 166.28813148387183674 181.59161859928227045 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -195 1.1053539394491335305e-06 0.0021962918766307708317 -1.0978911404624207699e-05 -1.0431444771347480049 0.00086121939260353213164 0.004059279588003008102 -286.63158878609289104 179.04178066528515956 146.49836003344253754 +195 1.1053539394491334998e-06 0.003098592071166975558 +1.0978911404624207108e-05 +1.4716983841372848207 0.0034241391438762092125 0.1889744765686828809 +288.46073539571222 269.0416816028255198 28.013880590679480775 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -196 1.1053539394491335305e-06 0.0029447439089289198142 -1.0978911404624207699e-05 -1.3986271031916246432 0.00018272629779208073367 0.018596268807723595473 -131.73550112256867806 122.63667230710116485 118.00875344636077102 +196 1.1053539394491334998e-06 0.00074801137349831484235 +1.0978911404624207108e-05 +0.35527333201985045186 0.0038816169742270289697 0.058867043869786965515 +311.85185742196944148 232.22026620620130188 165.57787758477780926 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -197 1.1053539394491335305e-06 0.0036073925872425995972 -1.0978911404624207699e-05 -1.7133568148563382838 0.00075563849669159832353 0.0037783795914888887967 -128.81574846279312396 26.084496990571235386 338.71113698392537117 +197 1.1053539394491334998e-06 0.00079635094539024284963 +1.0978911404624207108e-05 +0.37823255614787376633 0.0045360373312868552953 0.08910428158621236383 +306.05357794089098888 106.167083365874475476 203.48653688131810213 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -198 1.1053539394491335305e-06 0.0035771279460317551398 -1.0978911404624207699e-05 -1.6989824078535733509 0.0007581912267808143613 0.009405275951210755395 -94.72942154944794879 234.18898767453580945 120.281591054773343785 +198 1.1053539394491334998e-06 0.002002826377885706334 +1.0978911404624207108e-05 +0.9512566599100060749 0.0027294676878406053978 0.26062808956909006008 +313.19565415541569564 257.0979224166111976 16.956984297036129306 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -199 1.1053539394491335305e-06 0.0035858601416377149508 -1.0978911404624207699e-05 -1.7031298263804728332 0.00095813031245370230537 0.0036113709533022904374 -146.16269587061592006 115.18323006911683137 268.9501223857537866 +199 1.1053539394491334998e-06 0.004042760771297577287 +1.0978911404624207108e-05 +1.9201380362183311235 0.009530424947916192602 0.25258328305530691749 +74.13305458986923213 265.6558751599854986 352.56444203842960405 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -200 1.1053539394491335305e-06 0.0037229358585092736563 -1.0978911404624207699e-05 -1.7682349148822829044 0.0009838787345463682714 0.0041291372775860849323 -1.7590124360204661969 28.267489335889418811 140.55607459951542637 +200 1.1053539394491334998e-06 0.0040999318191548592626 +1.0978911404624207108e-05 +1.9472918327873998123 0.006467733283433189928 0.21922155742591675764 +282.70786923436241977 40.89079121074045986 248.53904063784378309 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -201 1.1053539394491335305e-06 0.001651848468190447193 -1.0978911404624207699e-05 -0.78455720070308299086 0.00013641617523719662343 0.019427991831481188079 -130.8007266845419565 110.181352575198033605 106.00139496728822053 +201 1.1053539394491334998e-06 0.0018046944251390671358 +1.0978911404624207108e-05 +0.8571524771050147429 0.009758536247292960361 0.14354841717106070487 +219.38255815804475901 19.80740090409434373 97.223144764978641774 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -202 1.1053539394491335305e-06 0.0027063636542107174076 -1.0978911404624207699e-05 -1.2854067025640301125 0.00080079146808039282975 0.0108589657051855435765 -46.771264060493685122 32.497203081429894667 53.366093926082044163 +202 1.1053539394491334998e-06 0.0014653682339685231776 +1.0978911404624207108e-05 +0.69598708463918013134 0.00678840387145877161 0.10618294193765256961 +34.23082970517403112 82.3442566267213607 353.65610053653676914 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -203 1.1053539394491335305e-06 0.0017526730483667882186 -1.0978911404624207699e-05 -0.8324445535132765084 9.953863767625981303e-05 0.027893078159839147095 -116.997421293990342406 10.0440500665721010876 63.77086305348634454 +203 1.1053539394491334998e-06 0.0038301201524653260436 +1.0978911404624207108e-05 +1.8191428590701763657 0.0028204710291057921712 0.12848044869910907329 +66.938422505412617625 287.933831991153113 221.08236799144518159 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -204 1.1053539394491335305e-06 0.0013663552841492629148 -1.0978911404624207699e-05 -0.6489601785763914332 0.0007547835818466555732 0.028400265298084318571 -183.67148924061424964 352.2190315881923084 274.3720362883656776 +204 1.1053539394491334998e-06 0.0017042993608463410241 +1.0978911404624207108e-05 +0.8094691259243869119 0.008032377075138550163 0.0022878252861527532437 +193.7205213060228175 46.325606399660614443 293.66173105842659652 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -205 1.1053539394491335305e-06 0.0016416918432609031937 -1.0978911404624207699e-05 -0.7797332393187537125 0.00076392586396015573803 0.020535102200658142402 -221.9135945165130579 194.21835875557150075 137.1052917217631375 +205 1.1053539394491334998e-06 0.0015095848146690428743 +1.0978911404624207108e-05 +0.71698806472124787526 0.0098358928496768485705 0.086086654865531409 +3.0789053172281244386 249.3498073677039315 36.332018091331363507 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -206 1.1053539394491335305e-06 0.0041503320593118873817 -1.0978911404624207699e-05 -1.9712297859918352927 0.00025071053464458946825 0.014913864673346191939 -319.79234195814888153 349.28387326164579463 138.32956542869692385 +206 1.1053539394491334998e-06 0.0015957639929996422786 +1.0978911404624207108e-05 +0.7579194795646532201 0.0047097367559547562155 0.06763830046211277702 +342.3743849835045694 18.449590955862923636 263.52077642863866913 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -207 1.1053539394491335305e-06 0.0017463766922070864303 -1.0978911404624207699e-05 -0.8294540542886734702 0.00021197645574354129889 0.018247549715991118885 -105.00262688872396666 232.80424007039977141 84.949104918041584256 +207 1.1053539394491334998e-06 0.0014294632707700545205 +1.0978911404624207108e-05 +0.6789337665166064184 0.001158401710483912897 0.20384996150651280011 +157.43218062328901397 247.34112143398164108 140.90021945284092908 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -208 1.1053539394491335305e-06 0.0037525194240774044083 -1.0978911404624207699e-05 -1.7822858401553345331 0.00080294190095561387456 0.023444883786946393162 -356.27577921605848132 11.694296440931752912 96.8991254541982272 +208 1.1053539394491334998e-06 0.001753376160737756752 +1.0978911404624207108e-05 +0.8327785017441036164 0.0015657513549773894885 0.16267747243242480781 +31.13119370440238498 283.26397689750825748 25.38699752320883718 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -209 1.1053539394491335305e-06 0.0033673867988775121108 -1.0978911404624207699e-05 -1.5993643554399337159 0.00045136667731674606644 0.027694134961144371149 -122.09817852172396613 331.56919146778068352 23.29494948461385917 +209 1.1053539394491334998e-06 0.0006387515232398071862 +1.0978911404624207108e-05 +0.30337958757611388494 0.0030540421629771676536 0.20165791782915776231 +219.30503179249956247 58.05237187181140257 87.87785021694024579 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -210 1.1053539394491335305e-06 0.002601544338314537602 -1.0978911404624207699e-05 -1.235622021558025363 0.00052748956446136828925 0.014390768296716713662 -47.688625110281321895 218.81863989673610149 71.091061616253483635 +210 1.1053539394491334998e-06 0.0038947841168849806501 +1.0978911404624207108e-05 +1.8498554697535425362 0.009896515888626064919 0.09173314639338975285 +34.349337887376606204 283.7707277187400905 181.83417350943676638 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -211 1.1053539394491335305e-06 0.0034572364291313065697 -1.0978911404624207699e-05 -1.6420390775791540161 0.00012278039477614099018 0.013364601572277041985 -37.099447743349671214 25.711537395277808571 46.771237173257247832 +211 1.1053539394491334998e-06 0.0006849602020802296618 +1.0978911404624207108e-05 +0.3253267288650144029 0.0031573326602339101855 0.20139362993908688226 +291.81315397018545355 47.546965539772230613 290.68337081504432717 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -212 1.1053539394491335305e-06 0.0014692126295102979798 -1.0978911404624207699e-05 -0.69781300769612641943 0.00020831235893638435199 0.0105463257356791569735 -45.282702057561735387 269.00333228724332457 141.05705036356778237 +212 1.1053539394491334998e-06 0.0024600412145923562904 +1.0978911404624207108e-05 +1.1684141046237117578 0.008119309539635848061 0.14503523865688958128 +255.72018505070192873 200.48290029070619767 125.714776260831371246 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -213 1.1053539394491335305e-06 0.0012506227963414040885 -1.0978911404624207699e-05 -0.5939922088058925409 0.0005111276050050357622 0.006922367726696107386 -193.68387748392143521 15.642417562054848901 17.908891439446314564 +213 1.1053539394491334998e-06 0.004010630229811323397 +1.0978911404624207108e-05 +1.9048774065837348335 0.00675135336243245978 0.045082036467290108328 +143.84450338331546959 96.490305538434270716 15.575788764323332813 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -214 1.1053539394491335305e-06 0.0041476312180326669947 -1.0978911404624207699e-05 -1.9699470021806242404 0.00058751583022024968673 0.02496086898048604022 -247.93088919368153711 124.53408226858653052 258.30383247130868085 +214 1.1053539394491334998e-06 0.0022050983056655759952 +1.0978911404624207108e-05 +1.0473271533576498094 0.009236884189897091868 0.10706704499942742981 +96.366578963027691884 289.40355490094788138 258.27295269480208617 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -215 1.1053539394491335305e-06 0.0029875489394385165544 -1.0978911404624207699e-05 -1.4189576574520941232 0.0004909660898418238828 0.0023047035739488575846 -238.65714156827573333 164.51271027675758774 223.70978205956649276 +215 1.1053539394491334998e-06 0.0019198281247945631712 +1.0978911404624207108e-05 +0.911836048175706404 0.0002548969495871211818 0.20364668641084432421 +95.108411544141290506 83.096432477406665384 89.109588759147627 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -216 1.1053539394491335305e-06 0.0023921676837597391677 -1.0978911404624207699e-05 -1.1361770875017920268 0.00023970389209557418876 0.026923977514779456888 -58.044978520057981086 79.883336583186263624 94.38325642624329248 +216 1.1053539394491334998e-06 0.0018749018565875555775 +1.0978911404624207108e-05 +0.89049799695534348487 0.0010890480318107409029 0.027420770974484406923 +279.11820650852871495 76.370173773551300656 13.80324233249109156 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -217 1.1053539394491335305e-06 0.0026816001073412998205 -1.0978911404624207699e-05 -1.2736450795184046658 0.0007910064207286296922 0.028329584831009391177 -35.296218138003794706 187.99468430047886613 356.03440184202310093 +217 1.1053539394491334998e-06 0.0041669825592100303336 +1.0978911404624207108e-05 +1.979138059566531993 0.0002296324675624139566 0.069801351188834806494 +333.04217595191113332 181.26021573217531113 319.14461653635891025 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -218 1.1053539394491335305e-06 0.001331364345185033964 -1.0978911404624207699e-05 -0.6323409827770205549 0.00028739168058106059726 0.009019690678395121675 -338.27263574838821114 230.96954437756605216 126.72414489683163197 +218 1.1053539394491334998e-06 0.002332014556262958736 +1.0978911404624207108e-05 +1.1076069309582508016 0.00744722309531437119 0.28600488229847548238 +108.783255298574275116 84.0030920486641719 292.5786475801582469 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -219 1.1053539394491335305e-06 0.0032121580786483427635 -1.0978911404624207699e-05 -1.5256373686388187139 0.0002481645483046961251 0.0066040479374564345708 -60.055442506513337264 346.99690826233506868 179.83160228793084912 +219 1.1053539394491334998e-06 0.003036858135231125488 +1.0978911404624207108e-05 +1.4423774113610883241 0.0086700360712943826125 0.02690386372921058089 +270.72204579466171026 250.22083134890763745 233.05749557194022259 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -220 1.1053539394491335305e-06 0.0041836951887061120445 -1.0978911404624207699e-05 -1.9870758420364929009 0.00038625231628182366255 0.014342679397268678562 -335.15357535816582413 299.7702497912664512 317.6921811746384492 +220 1.1053539394491334998e-06 0.00084187357598868220704 +1.0978911404624207108e-05 +0.39985385393560424205 0.006342974151757888729 0.06356196950247915145 +229.81412208049113133 215.3895886771678363 310.93757129149889806 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -221 1.1053539394491335305e-06 0.0007589345479948146076 -1.0978911404624207699e-05 -0.3604613715832816201 0.0008130249542857412217 0.0132530748254426049976 -199.40136765025368959 44.661857657232609142 303.65462581497462224 +221 1.1053539394491334998e-06 0.0030043217310087397961 +1.0978911404624207108e-05 +1.4269240143278709709 0.002220229563581638168 0.04231149744038742444 +233.86643162883990499 311.7426483870440279 109.72127502423080614 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -222 1.1053539394491335305e-06 0.0011646339137693681694 -1.0978911404624207699e-05 -0.55315117628902576996 0.00058320518586504638704 0.025565557231859135229 -88.51316300040842577 64.3025295238989969 307.91222823830349853 +222 1.1053539394491334998e-06 0.003463832913454403215 +1.0978911404624207108e-05 +1.6451721248136135234 0.0062869782409718027658 0.10636618810649194067 +244.28717647417721537 19.666905194444940008 165.35106373796219259 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -223 1.1053539394491335305e-06 0.004180113624911285161 -1.0978911404624207699e-05 -1.9853747527906451253 0.00094918793041903390915 0.01898810058981277582 -339.11739337814219653 326.5281938064337055 348.13403023570242567 +223 1.1053539394491334998e-06 0.002719011083141052469 +1.0978911404624207108e-05 +1.291413689057497427 0.0062768325681576689 0.13276925951222268152 +108.86547315165030625 229.31256494316107819 155.35584922429745802 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -224 1.1053539394491335305e-06 0.002907903028903174131 -1.0978911404624207699e-05 -1.3811292647027828551 0.00017854471163964626287 0.01757285626967412806 -324.68564254821177428 173.27665949324585881 212.81811478340242161 +224 1.1053539394491334998e-06 0.0026860157073398488701 +1.0978911404624207108e-05 +1.2757423002023824399 0.008799711991220635077 0.041204685199725532563 +303.42446739977856396 40.800902460290842555 280.29844608469227296 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -225 1.1053539394491335305e-06 0.0030424513946792162559 -1.0978911404624207699e-05 -1.4450339697923877402 0.00083102791963415834596 0.016743369452382143164 -72.37540677365963404 25.69124406916907688 36.560572732805965757 +225 1.1053539394491334998e-06 0.0007620236114260751506 +1.0978911404624207108e-05 +0.36192854427199616651 0.001959988746914222927 0.09788072562812429045 +58.8856625058030545 325.49713949673196112 275.8919182976525235 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -226 1.1053539394491335305e-06 0.0014152066797417541456 -1.0978911404624207699e-05 -0.6721624970181487857 0.0004194325219653943738 0.02466884060344504137 -312.10194954625785613 75.06433419730545609 213.15995579142392558 +226 1.1053539394491334998e-06 0.0029534346568047034147 +1.0978911404624207108e-05 +1.4027548358237287296 0.0049340330575141731068 0.082652415753030145096 +256.5208500757398724 219.80267611287951013 113.14494333341136212 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -227 1.1053539394491335305e-06 0.00074807664212413927804 -1.0978911404624207699e-05 -0.35530433181877674187 0.0006196274885235493945 0.0057712733317203191233 -112.28915034524422367 308.71008190145914796 250.26404455810629202 +227 1.1053539394491334998e-06 0.0037149296828009908948 +1.0978911404624207108e-05 +1.7644323246792550375 0.0065910801266361573186 0.14928786160616938639 +134.98971151046416139 6.3366313498052173614 146.57581954376337308 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -228 1.1053539394491335305e-06 0.0015240975037274374223 -1.0978911404624207699e-05 -0.7238809698040012952 0.00038945125604979613423 0.0034764685260635502795 -100.18804344114703042 289.83313211239982365 254.06542835983233886 +228 1.1053539394491334998e-06 0.0010018479501568961794 +1.0978911404624207108e-05 +0.47583482289163270273 0.0016166612719674766738 0.21610240492494672826 +2.4995235696923057134 305.19661372677148847 4.0622867497945414073 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -229 1.1053539394491335305e-06 0.0013613878149108384452 -1.0978911404624207699e-05 -0.64660084366442682757 0.0009530460362832646236 0.00080068641185022341056 -290.2519853457544059 126.69300624511200226 129.6226360067927601 +229 1.1053539394491334998e-06 0.0019874397966160787208 +1.0978911404624207108e-05 +0.9439486934943495111 0.0092175485145352935995 0.21553226184979074054 +242.74744141716928425 331.20967652724220898 331.62700922943145088 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -230 1.1053539394491335305e-06 0.0007497560275515179048 -1.0978911404624207699e-05 -0.3561019678944690181 6.2453564361704131855e-05 0.008646200757580674995 -51.77354471090342969 304.1036845586841082 280.42024752572388024 +230 1.1053539394491334998e-06 0.001207067197772265787 +1.0978911404624207108e-05 +0.5733051668971484993 0.0026844510043977998573 0.117562555033925125736 +246.07891661563991192 198.98638978103429054 332.5439028219576585 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -231 1.1053539394491335305e-06 0.0020677692895160400756 -1.0978911404624207699e-05 -0.9821017585588054377 0.00092676675850360832123 0.006735246833832509404 -263.97158005173145057 104.45971633042557869 156.07773457283062157 +231 1.1053539394491334998e-06 0.0035627235812938360451 +1.0978911404624207108e-05 +1.6921409521787267316 0.005295051420616436917 0.047319782287829806333 +111.150837730293204686 70.826820852433712616 108.48822963514039941 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -232 1.1053539394491335305e-06 0.00095787667212301207604 -1.0978911404624207699e-05 -0.4549503510590604538 0.00052515340653565799334 0.019061642884057490577 -284.31553463421840888 213.15965776812532795 3.9051805628102265189 +232 1.1053539394491334998e-06 0.0037832982797274010306 +1.0978911404624207108e-05 +1.7969044769701620901 0.0053057343818330039015 0.1745245850344390448 +242.09537321744443261 139.7481562902405301 254.28947731460638693 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -233 1.1053539394491335305e-06 0.0037735814895644029364 -1.0978911404624207699e-05 -1.7922894182423769749 0.00017129142152418842175 0.025294321601488489043 -70.01841692477869117 111.37830955236358932 314.1754665499188377 +233 1.1053539394491334998e-06 0.002414965597246833551 +1.0978911404624207108e-05 +1.1470051189657795021 0.0016920742755172990882 0.23148156736145850121 +80.24995401635302983 85.08681621100728876 235.11855119230941114 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -234 1.1053539394491335305e-06 0.0007847310095064422164 -1.0978911404624207699e-05 -0.37271358479856425694 0.0003231942299594923215 0.01628512097921978874 -224.60279807470539026 103.680766227009058866 197.02880532870963748 +234 1.1053539394491334998e-06 0.0036279388108992118714 +1.0978911404624207108e-05 +1.7231153901902547254 0.0018365952332263513203 0.042246145144015777306 +33.9602482398077683 85.94576045974682188 12.142776198180818881 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -235 1.1053539394491335305e-06 0.0015320077326663605468 -1.0978911404624207699e-05 -0.72763798940522450565 0.00094252324011187993847 0.01692070785353958634 -73.3265875193739447 291.12276980910894508 97.10035705120415628 +235 1.1053539394491334998e-06 0.002415800137586473408 +1.0978911404624207108e-05 +1.1474014898468560819 0.002058720827701685397 0.031287094450079086516 +265.30715860066493406 27.516837509481572255 174.70648171424591055 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -236 1.1053539394491335305e-06 0.0017944863754330241527 -1.0978911404624207699e-05 -0.85230409115664484965 3.7676763751743336793e-05 0.021560198984918479276 -216.79211114566814445 74.30371365646033155 295.38458279934900474 +236 1.1053539394491334998e-06 0.0037297081693541274057 +1.0978911404624207108e-05 +1.7714514721761549509 0.009747607022882359348 0.18213941490808119306 +54.043321542535728952 306.1604232233132734 178.46001267912322419 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -237 1.1053539394491335305e-06 0.0022077289096507573257 -1.0978911404624207699e-05 -1.0485765774655604332 0.00092835655556198343457 0.002473122352105824439 -207.85994871205122081 242.10322219988140091 164.79329124450524091 +237 1.1053539394491334998e-06 0.0014906796173735708767 +1.0978911404624207108e-05 +0.7080089065511747659 0.00096650387643194119423 0.1392513178383897876 +163.0979551316417826 2.176406090898534984 114.63304512058948603 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -238 1.1053539394491335305e-06 0.0017780507509334266778 -1.0978911404624207699e-05 -0.84449787418364552494 0.00012149108796338048226 0.022688746545291040707 -105.00259291531052952 236.90787466426584729 258.88778385063903897 +238 1.1053539394491334998e-06 0.0033497696038343891788 +1.0978911404624207108e-05 +1.5909969431176556043 0.0065969832699507690438 0.11312768021339117408 +44.268902431374989703 38.490362748130088733 34.84410972194338285 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -239 1.1053539394491335305e-06 0.0009633437960757620414 -1.0978911404624207699e-05 -0.4575470005380317673 0.00021936857586009873258 0.024584544078017318142 -141.46008032785664454 156.81449724386195044 299.68311915392922629 +239 1.1053539394491334998e-06 0.0027805589116999760234 +1.0978911404624207108e-05 +1.3206462688088593804 0.0038845298209630274404 0.1680011239402919021 +75.67059272210572374 183.68772629545870245 167.84400454841491523 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -240 1.1053539394491335305e-06 0.0035009114125315640493 -1.0978911404624207699e-05 -1.6627828221641500761 0.00083380110219331913645 0.016595030400960369271 -68.173689361921276486 154.75502404200838669 311.70470139259805364 +240 1.1053539394491334998e-06 0.0028233785570510385093 +1.0978911404624207108e-05 +1.3409837644924254008 0.0073084115705397160664 0.15865366112833181877 +207.38164621710120628 332.79426616175919662 273.81677568422833247 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -241 1.1053539394491335305e-06 0.0006470573938361051598 -1.0978911404624207699e-05 -0.30732452000176924134 0.00021338219268733039035 0.006499688048810576234 -359.85986519138003814 244.23351243313086911 98.01858239568616682 +241 1.1053539394491334998e-06 0.0016854322293480673646 +1.0978911404624207108e-05 +0.80050804737594227767 0.008448610623557182078 0.25730992978082506406 +289.4812315326377643 303.62935585264301608 249.59080173981794815 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -242 1.1053539394491335305e-06 0.00065901961137865321196 -1.0978911404624207699e-05 -0.31300606046393031345 0.00084676255106667984527 0.00028332565690039374258 -44.286246649765288907 20.245198329963866257 276.88008765639568765 +242 1.1053539394491334998e-06 0.0012470684404238953822 +1.0978911404624207108e-05 +0.5923040421352547824 0.0036218816567458070148 0.112724979617775861174 +331.517984601529065 146.78821808304488172 142.88491521846461296 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -243 1.1053539394491335305e-06 0.003806998050224602309 -1.0978911404624207699e-05 -1.8081608518475495995 0.00027745564680026148143 0.021943110426273559899 -266.24251634239237774 252.3739085379230005 283.488252705583875 +243 1.1053539394491334998e-06 0.0017857862661697755417 +1.0978911404624207108e-05 +0.8481719122668567312 0.0067640314385091319938 0.053883949706844756766 +144.40285297846801882 285.33791060145659912 358.04568901962534255 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -244 1.1053539394491335305e-06 0.0029050019908176934909 -1.0978911404624207699e-05 -1.3797513959918767945 0.0008840097714271473667 0.011119175742524006062 -218.83470399188448141 307.5328062303744332 53.607438100582484708 +244 1.1053539394491334998e-06 0.0040462288036397131656 +1.0978911404624207108e-05 +1.9217852028917212781 0.0014172278919844572866 0.047448802230884025433 +260.3729371698353816 122.89067701320085746 93.023106197377714466 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -245 1.1053539394491335305e-06 0.0041506206755627920196 -1.0978911404624207699e-05 -1.9713668663368231204 0.00072844746599102529454 0.014679484165514528754 -216.30736619477607974 127.43423126496449527 280.14881244016112305 +245 1.1053539394491334998e-06 0.0019361305212386626315 +1.0978911404624207108e-05 +0.91957898753439093475 0.0054257093995886710933 0.20189621784883990396 +348.80699142997087847 267.44851881583520026 191.66816337995686581 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -246 1.1053539394491335305e-06 0.0007277677857464638177 -1.0978911404624207699e-05 -0.34565849576542212462 0.00059173314782810218417 0.007831481826486607831 -243.4161800124451247 113.710960693445571223 254.21623664849960278 +246 1.1053539394491334998e-06 0.0008357317449819982147 +1.0978911404624207108e-05 +0.39693674753354180051 0.00695669751241121629 0.07059133020711604034 +277.17099064073488535 243.81353472045162789 13.860950854447731118 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -247 1.1053539394491335305e-06 0.0017717047625134947208 -1.0978911404624207699e-05 -0.84148380176337678193 0.00052751195938902041473 0.014082285132383451365 -194.45249461995499018 318.31107915541781495 157.54667905036907882 +247 1.1053539394491334998e-06 0.0017457059651771781547 +1.0978911404624207108e-05 +0.8291354877063541462 0.007579513197267172611 0.14872496537852536447 +117.58173196306927366 132.83622947559689464 37.174844536347023904 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -248 1.1053539394491335305e-06 0.004169267887052278984 -1.0978911404624207699e-05 -1.980223492309989286 0.00067309606461422974606 0.017396151114924100073 -184.39865388000126245 210.62388541157199029 167.14339720153236613 +248 1.1053539394491334998e-06 0.0017619500669711703841 +1.0978911404624207108e-05 +0.83685073960557443407 0.002546117071148574964 0.23335641492976430533 +10.6227561310528137994 304.75790564882663602 7.8734398293515583944 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -249 1.1053539394491335305e-06 0.0019522337566574509366 -1.0978911404624207699e-05 -0.92722733394492307113 0.00058907724893334585843 0.021547757024762807104 -190.98028164050376176 93.657838091120083845 154.55544413858271469 +249 1.1053539394491334998e-06 0.0015664320617493881367 +1.0978911404624207108e-05 +0.7439880698039720297 0.0013525645739295856073 0.22664252633626766342 +124.07943418091733179 194.79442867879302526 29.183299745477533804 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -250 1.1053539394491335305e-06 0.004103199565563551535 -1.0978911404624207699e-05 -1.9488438722295042815 0.00023535689304344910105 0.020747164931323787418 -235.4258950080400723 210.09500044028584398 329.76890939133602387 +250 1.1053539394491334998e-06 0.0011951162971436579995 +1.0978911404624207108e-05 +0.56762900148390538213 0.0070304889647160645136 0.048474361731430916367 +255.7152698309952541 245.72298712417153865 7.9297327037804743455 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -251 1.1053539394491335305e-06 0.00096993472194017628167 -1.0978911404624207699e-05 -0.46067740774293175487 6.722535556689789992e-05 0.0099933940728082100435 -339.95817378663616637 181.27958061831904502 34.322050877546928405 +251 1.1053539394491334998e-06 0.00065194078527904077664 +1.0978911404624207108e-05 +0.30964392156564513048 0.0029240420556140888156 0.1092621584248463229 +316.1677491080059781 133.31998089749481551 99.43215513885033374 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -252 1.1053539394491335305e-06 0.0009661516009396302622 -1.0978911404624207699e-05 -0.45888058746597204518 0.0005025170114595179727 0.0024236270953698216615 -57.831023059303113598 16.636326610996761133 83.793613608447557795 +252 1.1053539394491334998e-06 0.0039365870221984295237 +1.0978911404624207108e-05 +1.8697100575111613718 0.009334184074264555153 0.2398374988432090682 +224.57077853625952457 23.667298927715950896 358.86438506974275242 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -253 1.1053539394491335305e-06 0.0032298402438196435668 -1.0978911404624207699e-05 -1.5340356389864386877 0.00062884613640746395407 0.013163328547706066446 -348.2310414025072305 241.09038942507976344 294.8270165591735008 +253 1.1053539394491334998e-06 0.004031146492566417527 +1.0978911404624207108e-05 +1.9146217517739800851 0.0017638019526565629647 0.121252723389073946425 +14.969276577263155303 35.058874628461708767 83.56094997981790584 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 diff --git a/examples/symba_chambers_2013/sun_MsunAUYR.in b/examples/symba_chambers_2013/sun_MsunAUYR.in index 45e4aa7ef..2c02b8009 100644 --- a/examples/symba_chambers_2013/sun_MsunAUYR.in +++ b/examples/symba_chambers_2013/sun_MsunAUYR.in @@ -3,9 +3,5 @@ 0.004650467260962157 4.7535806948127355e-12 -2.2473967953572827e-18 -0.0 -0.0 -0.07 -11.209306302144773 --38.759372036774764 -82.25088158389266 +0.0 0.0 0.07 +11.20930630214477 -38.759372036774764 82.25088158389266 From 39c4da7b09cc3a302fe4077029e4299bb73f74b9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 17:49:22 -0400 Subject: [PATCH 176/315] Removed encounter file from parameter file --- examples/symba_chambers_2013/init_cond.py | 1 + examples/symba_chambers_2013/param.in | 1 - .../symba_chambers_2013/pl_chambers_2013.in | 924 +++++++++--------- 3 files changed, 463 insertions(+), 463 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index ae49907d9..6a6dd8526 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -30,6 +30,7 @@ sim.param['ENERGY_OUT'] = "energy.dat" sim.param['PL_IN'] = "pl_chambers_2013.in" sim.param['CB_IN'] = "sun_MsunAUYR.in" +sim.param['ENC_OUT'] = "" # Simulation parameters sim.param['FRAGMENTATION'] = "YES" diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 39e05abb0..7bc67e7bf 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -22,7 +22,6 @@ MU2KG 1.988409870698051e+30 TU2S 31557600.0 DU2M 149597870700.0 IN_FORM EL -ENC_OUT enc.dat EXTRA_FORCE NO DISCARD_OUT discard.out PARTICLE_OUT particle.dat diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 7609b37b1..9a59ef971 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -11,927 +11,927 @@ 113.5952699440524043 335.70375572759667193 225.29914557362599226 0.0 0.0 0.22000000000000000111 441.93102714484842597 378.52937229654824397 5135.9113502360652523 -100 1.1053539394491336042e-05 0.0061717986894543447007 +100 1.1053539394491336042e-05 0.0019732836328632223935 2.3653347588909066005e-05 -1.3606073927887079034 0.0037593346354084246873 0.14311926423038831557 -59.482803848831252935 171.95758760689361111 47.921042679418512478 +0.43502136638549865344 0.008871327710710443654 0.2428654711893785123 +47.053387744204002274 14.406329603656221394 359.4640728272493675 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -101 1.1053539394491336042e-05 0.0038352092732863814334 +101 1.1053539394491336042e-05 0.0049532834874371645638 2.3653347588909066005e-05 -0.84549324316775575916 0.00885050755749688077 0.13125243262309554959 -76.63654393052172509 306.82718246447967658 12.201168737445931001 +1.0919789304049842826 0.007501755883620095204 0.2640232657902865654 +284.36193305727704228 252.05844223035273899 112.54677325222675677 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -102 1.1053539394491336042e-05 0.0057267869875357797253 +102 1.1053539394491336042e-05 0.0023155962587743718734 2.3653347588909066005e-05 -1.2625020847619783382 0.0077988766363251494154 0.034625553044733060892 -313.96981691114586965 134.12861853690833414 264.1419094964312535 +0.5104860911594045758 0.0058737112041139499102 0.16765186113359145659 +56.483270865883653755 45.517340202780296465 327.1303806412708468 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -103 1.1053539394491336042e-05 0.0068770313449667743967 +103 1.1053539394491336042e-05 0.0018825498231748120154 2.3653347588909066005e-05 -1.5160798592458175627 0.0015623938638601154137 0.20353582935531769338 -146.7374009587804835 358.85111201917010249 164.32522548913291871 +0.41501859272911267862 0.0070747862138410277932 0.01720763737658779352 +251.18670508288687415 15.427106537082702076 170.69197512049595389 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -104 1.1053539394491336042e-05 0.003422133118181835852 +104 1.1053539394491336042e-05 0.0033337571583448534337 2.3653347588909066005e-05 -0.75442830429016094484 0.002883912650966171786 0.13282688263791350702 -341.7855982384753588 208.47533683282773609 290.1344287223045626 +0.7349453317647516304 0.0029963854733957872613 0.10970260540469287114 +98.5494752567603598 130.35014043832788388 337.58056985784941162 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -105 1.1053539394491336042e-05 0.007578013409315989732 +105 1.1053539394491336042e-05 0.008795834503153893369 2.3653347588909066005e-05 -1.6706152592087990527 0.0017584631878066515637 0.08590315100806089621 -108.18839268219636551 107.54389139511170015 286.5578191069645868 +1.9390907015788056977 0.0012741523941344956236 0.010911034426664707048 +298.15426483055745166 32.78576113585273788 109.887067932276508486 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -106 1.1053539394491336042e-05 0.0023440543892555304344 +106 1.1053539394491336042e-05 0.005408786796956857873 2.3653347588909066005e-05 -0.5167598445116924344 0.008177442951041202432 0.083066142709547236 -254.85798460169084478 10.9038149328307021335 106.167244193166368404 +1.1923971717567629636 0.0022518300946687695892 0.19853678200837179824 +131.9236206868740453 310.75745649185637376 306.98842585095837876 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -107 1.1053539394491336042e-05 0.0018951361512923296208 +107 1.1053539394491336042e-05 0.0052900021486682963758 2.3653347588909066005e-05 -0.4177933188578213386 0.00579642362884097255 0.24077042145742511003 -68.777881225212851746 33.26655383323790005 216.52317438256201854 +1.1662104345115285042 0.00083783270082214873764 0.18629960376756465879 +218.78228483737586885 270.33175151924604052 264.54399230996494907 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -108 1.1053539394491336042e-05 0.0044957282089067080248 +108 1.1053539394491336042e-05 0.005684376034177863618 2.3653347588909066005e-05 -0.9911083210570510449 0.0032249696705185962146 0.19000472763787779051 -169.44705393618949074 80.97286999787255013 303.17760387026601165 +1.253152353901087368 0.0007069875931491276461 0.23465278556692670264 +342.6335280838893027 254.64894760956880759 77.84259390375734711 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -109 1.1053539394491336042e-05 0.0018927676437531769817 +109 1.1053539394491336042e-05 0.008201688668306261918 2.3653347588909066005e-05 -0.4172711681802314665 0.0099434477150373810905 0.17010183649547966356 -322.8957163183770831 221.20467436757908786 57.050858815175416794 +1.8081079433968829662 0.0033081220610986085233 0.14466177546828071221 +358.97809256862575467 113.299060597463892464 200.59141181394690534 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -110 1.1053539394491336042e-05 0.006551260271026887548 +110 1.1053539394491336042e-05 0.0016788909722194752916 2.3653347588909066005e-05 -1.4442618117264298672 0.0029651049444108755482 0.18811074732045010571 -310.24733868037191087 231.17959095085171839 237.57174322044465953 +0.370120864828466678 0.0082539448889885364685 0.27798177679994046096 +226.15088888509194476 11.39560645939257455 50.8180749666096645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -111 1.1053539394491336042e-05 0.0013647263617020194426 +111 1.1053539394491336042e-05 0.008770976411317608917 2.3653347588909066005e-05 -0.30086152680873823329 0.0040734718772203063267 0.01053211139211664496 -270.87320826023886866 337.76436523817181978 4.940409099363773926 +1.9336105967949506201 0.0006447945028240875632 0.27438979741522551148 +189.0793641806820915 23.523679500224474737 102.07122936399638036 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -112 1.1053539394491336042e-05 0.0033639359086406832709 +112 1.1053539394491336042e-05 0.0042101494072623047774 2.3653347588909066005e-05 -0.7415984053375808127 0.009863847389591522477 0.25437084910290475026 -354.72874983003691796 66.270256366995724306 90.911984640246586764 +0.92815088380216415054 0.0019177953281208971227 0.22809386141818746574 +151.17030676344273843 234.00560520770883954 212.39233269551132821 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -113 1.1053539394491336042e-05 0.0056868193037520421697 +113 1.1053539394491336042e-05 0.003003124820003942183 2.3653347588909066005e-05 -1.2536909862856600029 0.00458282331453590229 0.22059260271762326511 -239.24484621531576067 211.9805191903669197 336.93660475572465884 +0.66205559143502712427 0.008115467146437006091 0.11626098742369832262 +14.884811678609910501 182.55491943414659772 75.48372622552825817 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -114 1.1053539394491334998e-06 0.0040818163191932438934 +114 1.1053539394491334998e-06 0.0036527873426566770522 1.0978911404624207108e-05 -1.9386877469932644047 0.0034440627141437952195 0.0029648722570915974836 -268.26051150170343362 187.7054005113650419 309.77320784270114018 +1.7349173774140433935 0.00020007833087037573913 0.18206915720218322385 +43.807694741505500247 252.39602583166703198 345.69306322252327845 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -115 1.1053539394491334998e-06 0.00075504648410603521167 +115 1.1053539394491334998e-06 0.00089180183071648115653 1.0978911404624207108e-05 -0.35861470793375377353 0.003333933840073076936 0.12584386334249569872 -308.60124441060617073 226.27834805348561531 215.32221555637738675 +0.42356763429715504898 0.004867970002843258724 0.18802221307378433335 +359.1003216670866891 267.07026663472817063 46.3972947791199104 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -116 1.1053539394491334998e-06 0.00363399971311397297 +116 1.1053539394491334998e-06 0.0017768447055193344444 1.0978911404624207108e-05 -1.7259940588859112864 0.0070388732638764642605 0.09689085939444666562 -175.04340167143934082 4.5003931954305986807 222.63929016011763906 +0.8439250543201881616 0.0065735355868386611405 0.107858482537747255026 +135.09881195763611572 328.07167085065367473 195.43605524467710666 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -117 1.1053539394491334998e-06 0.0016828489483058368538 +117 1.1053539394491334998e-06 0.0040561956135777257037 1.0978911404624207108e-05 -0.79928109963699989216 0.0030562988048510632277 0.013335537613834849008 -138.62658117846274308 357.4480627139793114 335.86951076579140363 +1.9265190102932396865 0.008517929917508331936 0.22775022460549110281 +9.847303718917377324 359.28530139282679556 242.89167921081153168 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -118 1.1053539394491334998e-06 0.0036435022100893951574 +118 1.1053539394491334998e-06 0.0017251483478400507192 1.0978911404624207108e-05 -1.7305073375372477251 0.0045280126290122377913 0.158064202455872993 -112.642489921453218926 199.95549654435518505 84.57702293741269273 +0.81937150086268784044 0.0047693282188471962033 0.06314641026311473837 +353.36962073333063472 340.7800387007118843 160.31396438022616735 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -119 1.1053539394491334998e-06 0.0026723916083069132697 +119 1.1053539394491334998e-06 0.0031796251842390144356 1.0978911404624207108e-05 -1.2692714372841324977 0.0038596317625253385303 0.11768487045001839453 -88.830446669740567245 175.52065258212684284 28.003477748073663633 +1.510185638616323045 0.0059829576513462648032 0.16376405362776627617 +93.49448681695453445 137.43976197972261843 152.51085646144724706 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -120 1.1053539394491334998e-06 0.003803880137043655119 +120 1.1053539394491334998e-06 0.0017633596265140164348 1.0978911404624207108e-05 -1.806679976764643758 0.0028437885507999294092 0.26964661238344800331 -119.51581415994868962 270.7215044806005153 32.380858635062786277 +0.83752021995468362014 0.0056773192002094966663 0.15420202644403344094 +112.036109026245028986 159.32677706053513589 199.19243569401677973 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -121 1.1053539394491334998e-06 0.0025690929599276315768 +121 1.1053539394491334998e-06 0.0041042584266954005662 1.0978911404624207108e-05 -1.2202090081512457775 0.008880328260440571719 0.2698497188309182393 -185.16124422470124955 271.89114248094085724 103.33494152059954274 +1.9493467858693047656 0.0058323444593222717805 0.2450867760360646852 +191.75408862501436147 86.49706522035162948 325.735759579805233 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -122 1.1053539394491334998e-06 0.00076120961289824669203 +122 1.1053539394491334998e-06 0.002546496783735733264 1.0978911404624207108e-05 -0.36154192987081618105 0.0012590262030350329089 0.016586818575739122744 -132.09793663022330179 170.41320467620272439 210.39064780235156604 +1.209476793253150495 0.0007203447518149086546 0.25064267354421421174 +143.86532033167813438 30.894666857493980672 51.922001062180726194 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -123 1.1053539394491334998e-06 0.002873065588407590518 +123 1.1053539394491334998e-06 0.0020506608485301339476 1.0978911404624207108e-05 -1.3645829740948938191 0.006344052429173271772 0.22412958028474397332 -26.65753120394456488 168.16308743207042653 330.05874329863235062 +0.9739759826012803767 0.0052287353782703750726 0.2664523549465922514 +202.29243581532310259 164.49024899603261929 314.68630304866280767 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -124 1.1053539394491334998e-06 0.0025727999116668645324 +124 1.1053539394491334998e-06 0.0037519206583856621228 1.0978911404624207108e-05 -1.2219696512947781919 0.0011738192240699197276 0.2851359998566981857 -313.6832191352650625 250.51848033757354983 160.01382075302444719 +1.78200145212335892 0.00063416616864802374115 0.14682433373075048921 +157.12147879660923877 181.38988453918568666 60.852713979097373453 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -125 1.1053539394491334998e-06 0.003401511887967890802 +125 1.1053539394491334998e-06 0.0013854882328339217993 1.0978911404624207108e-05 -1.6155723096718492826 0.0076852757383839148675 0.03476116649353520882 -35.7538922381573272 318.63971549673613026 285.9559994469310027 +0.6580475088916688531 0.00024980909477879454685 0.24095162491344623845 +289.6244562231350983 1.7289743336360618997 195.26812437954018264 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -126 1.1053539394491334998e-06 0.0040805470076417364847 +126 1.1053539394491334998e-06 0.00074362536737721785264 1.0978911404624207108e-05 -1.9380848784270201524 0.0055119996759198913033 0.22720129674709477197 -49.686989741435013457 214.70684681472204147 149.08574928987266617 +0.3531901671588483782 0.00886310773980225966 0.20242474972740423511 +58.75448092520607446 130.30998499277782798 246.92239588072837364 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -127 1.1053539394491334998e-06 0.0015070432555445517122 +127 1.1053539394491334998e-06 0.003601317174857207253 1.0978911404624207108e-05 -0.7157809331044376888 0.002496909106453262285 0.019745475549577260616 -200.60338216363609831 130.49908869532370659 296.62965327291408357 +1.71047125445174375 0.009558224994044423745 0.08649826818433410669 +224.08522313291766181 239.19436986070064677 185.39235361492612242 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -128 1.1053539394491334998e-06 0.0014509440785792287021 +128 1.1053539394491334998e-06 0.0032145494492909748175 1.0978911404624207108e-05 -0.689136229253438759 0.0088904881696526688595 0.19703438371375647797 -274.84940725858410815 355.5685931327874414 109.002196102492874275 +1.5267731671659572346 0.00445012496768810821 0.25388797399626356066 +99.47453052283421471 328.10504733577448633 71.666792360401558426 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -129 1.1053539394491334998e-06 0.0017780689557125214926 +129 1.1053539394491334998e-06 0.0009640510505488915387 1.0978911404624207108e-05 -0.84450652067320008953 0.0066510746021922143717 0.1808383926464373348 -45.885534902846139005 348.27226545478612252 120.026333212807728046 +0.45788291608979603264 0.0028658387814975440876 0.068097521749502121224 +266.1139250414896651 5.798860186281178386 194.73524031129315404 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -130 1.1053539394491334998e-06 0.0025325135195425613975 +130 1.1053539394491334998e-06 0.0008900121157433224059 1.0978911404624207108e-05 -1.2028353422827084973 0.005066711263458635768 0.12920973080591713344 -121.81913511029513586 221.86321367090613421 66.050743014336944725 +0.42271759641750861203 0.007949339946716987501 0.11834633277417928865 +192.72747304348143871 21.172433591435407152 265.26646498803154373 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -131 1.1053539394491334998e-06 0.0021051518620792612006 +131 1.1053539394491334998e-06 0.0025890224429809987327 1.0978911404624207108e-05 -0.99985687777831189216 0.006316298028305530367 0.21665869128479972594 -333.05933586041629724 253.07871787080006243 226.92763575886621652 +1.229674658140883059 0.005708333074055413174 0.2537009884082937483 +84.89784553502946096 328.01507807176108145 197.90018547308341113 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -132 1.1053539394491334998e-06 0.0037801515123642023119 +132 1.1053539394491334998e-06 0.0006868871638604952082 1.0978911404624207108e-05 -1.7954098973877870016 0.003051710974793897524 0.2751693749710122372 -289.6095348152826432 335.0789123504604845 191.64385772315858958 +0.32624195309368902995 0.0040737651923966463827 0.20518013558494771487 +40.687261630166496218 297.20703778701795272 132.16533129372302824 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -133 1.1053539394491334998e-06 0.0013778827986691858701 +133 1.1053539394491334998e-06 0.0025167424604235374569 1.0978911404624207108e-05 -0.65443525374035138586 0.008578695431076640426 0.25904625333530822973 -54.02655163918610981 188.00048915305208652 21.74750905015093494 +1.1953447653727702349 0.0050929123911651816292 0.051295280237216418773 +261.90052217603084728 326.05473790982989613 273.04880230173228028 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -134 1.1053539394491334998e-06 0.0024289558337854647504 +134 1.1053539394491334998e-06 0.002718448557027841699 1.0978911404624207108e-05 -1.1536498815013809249 0.004878189125239648302 0.17164605452745695935 -203.1467355314321992 123.09886606927753405 256.12544218720313438 +1.2911465132715813642 0.009116659310319434259 0.24192801960141538387 +292.35261070692547491 212.727414902726224 184.18172649375861738 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -135 1.1053539394491334998e-06 0.0010474547810942502333 +135 1.1053539394491334998e-06 0.0014047063578224012843 1.0978911404624207108e-05 -0.4974961122303251937 0.0053732557057354973437 0.058437598177638543084 -194.07445797060921677 312.1563683927644206 336.71260021183917388 +0.6671752942993949276 0.00090944511545796864315 0.14381097569832959615 +84.15901351231249805 69.539283542765673474 249.48480284988576727 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -136 1.1053539394491334998e-06 0.0032033607185854075993 +136 1.1053539394491334998e-06 0.0024215293653249917721 1.0978911404624207108e-05 -1.5214589997887300044 0.0005638709347166925628 0.020659563062774926462 -329.41508533125937674 226.52629627431520021 244.98576408916093783 +1.150122627386576335 0.0037686922905942367434 0.2257879156411696786 +151.94236260554458795 163.72081980721665673 204.19657951232048276 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -137 1.1053539394491334998e-06 0.0037806661206648187898 +137 1.1053539394491334998e-06 0.0038493297212721929037 1.0978911404624207108e-05 -1.7956543142671588242 0.0055566008094702235703 0.03231246228705678125 -201.749373048024637 215.21918287568965411 7.438395115749445452 +1.8282665806584759149 0.0025514497599312857719 0.09661566633177491592 +100.06540261348762044 161.79985067548332722 160.90623759534580017 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -138 1.1053539394491334998e-06 0.0017249242486109971828 +138 1.1053539394491334998e-06 0.0017992463546487112759 1.0978911404624207108e-05 -0.8192650633369633617 0.0029048304913952762048 0.14930599090131047024 -101.88990081838475987 297.93516628554459658 62.770866208806950226 +0.8545648772037786056 0.002520783186835252529 0.18861281822029479782 +282.88059214975010036 250.61615678976752974 227.23317901910181149 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -139 1.1053539394491334998e-06 0.0008630031885697554176 +139 1.1053539394491334998e-06 0.0023840119013398586007 1.0978911404624207108e-05 -0.40988951399630429995 0.0040384501685508927132 0.20206838456273415461 -144.78066931313355781 58.463702612853687413 32.412650926437137855 +1.1323034405250238521 0.004550384291604896679 0.08933500072214524412 +259.5217381936978427 107.427667302542161565 67.06846118785534827 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -140 1.1053539394491334998e-06 0.0016999482050577173896 +140 1.1053539394491334998e-06 0.001300233073802558847 1.0978911404624207108e-05 -0.8074025134771294354 0.007015880742121568571 0.22849758031476699593 -15.276211733348890931 188.46498087608566152 277.05152691253368857 +0.61755496359880934776 0.005141423577990692634 0.063873577770286432687 +99.099878984640724866 70.09839489275532287 12.628756191463722303 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -141 1.1053539394491334998e-06 0.0010116190643702391637 +141 1.1053539394491334998e-06 0.004176212444251702483 1.0978911404624207108e-05 -0.48047568321423139714 0.0052325496651816159194 0.22643611170258079457 -261.84219304355048052 350.8156104283515333 236.15471907741559221 +1.9835218592373566882 0.008819547954994353192 0.101545882559391495437 +302.75069703150052192 3.7754157988393099998 102.40548614838355945 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -142 1.1053539394491334998e-06 0.003324863869305665143 +142 1.1053539394491334998e-06 0.0040472894609041229494 1.0978911404624207108e-05 -1.5791677870300422359 0.007872834204073335049 0.04248127934662862537 -43.73209655092482251 274.1018101614639022 230.02987991343479734 +1.9222889696174805252 0.00060208496498009855813 0.07907316286788031168 +42.255230485815992836 155.26971558992292444 348.35909755454105152 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -143 1.1053539394491334998e-06 0.0015510615040214542919 +143 1.1053539394491334998e-06 0.0030719866546547494147 1.0978911404624207108e-05 -0.73668771388362341845 0.00045008957605648715903 0.27533232281314390377 -92.12350449049537815 51.666471703182700992 35.541589634423750965 +1.4590619519800192005 0.0038915388732227674737 0.14542588965451863636 +234.61914623526152468 11.934830769972979425 44.264103793434699696 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -144 1.1053539394491334998e-06 0.0014204523628638898468 +144 1.1053539394491334998e-06 0.0012175446573625591349 1.0978911404624207108e-05 -0.67465397159667750415 0.0048518193896502064683 0.058484026514972704824 -101.700857098428102177 261.38653462694963991 205.29489462215587992 +0.57828151098980318245 0.0016792119694356878734 0.15682369201316798124 +303.5201065050316629 132.93196451143023751 289.47558148711817694 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -145 1.1053539394491334998e-06 0.0014579850283668487957 +145 1.1053539394491334998e-06 0.0031318013167785168476 1.0978911404624207108e-05 -0.69248037852744426246 0.009388948310886659557 0.06977845217314723736 -304.87815986587628458 102.614408869080861564 40.322681894551074322 +1.4874713519828124397 0.0068056837746274636072 0.084531532324596786454 +291.33041173781805355 97.89991179535221022 1.1640848187574093231 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -146 1.1053539394491334998e-06 0.0006991032650671249907 +146 1.1053539394491334998e-06 0.0036945444598705577094 1.0978911404624207108e-05 -0.33204407741122904385 0.002891666183692518429 0.07356114844595917912 -352.07906955287091932 321.30348152892810276 42.409724361015499028 +1.7547502177874956253 0.008973421102026984605 0.022342357476332671412 +161.21935496824679035 46.48295234294366196 354.98733832208051808 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -147 1.1053539394491334998e-06 0.0033104307149426234083 +147 1.1053539394491334998e-06 0.0021002370576005151777 1.0978911404624207108e-05 -1.5723126575175947472 0.0051314307837915440133 0.10197095863820798689 -231.35657192888356803 204.9028211388712748 201.78191673801225647 +0.9975225563692349251 0.009771280018679846108 0.12219230961078575426 +333.60765507463571566 9.382124612391958607 211.20858230448385484 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -148 1.1053539394491334998e-06 0.0029495930000326610137 +148 1.1053539394491334998e-06 0.0032282651546226580192 1.0978911404624207108e-05 -1.400930213564982818 0.009911648698554346645 0.066574598448402091955 -221.30650316333401406 124.73147601965860076 227.54154211080833647 +1.5332875391485651928 0.0061277148911738060083 0.162087752352507386 +71.49825600297299388 185.1074470931537519 142.98008580344642837 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -149 1.1053539394491334998e-06 0.00072511646002927188936 +149 1.1053539394491334998e-06 0.0030007231564696537356 1.0978911404624207108e-05 -0.3443992297232342792 0.007819595393232283906 0.23668093625525662982 -76.3904532019122513 148.0979828905799991 122.94587470999351808 +1.4252148457078221977 0.003484166876615070376 0.03952017670429157359 +71.06809480244361055 74.34280158497745106 246.39989784079767787 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -150 1.1053539394491334998e-06 0.0037851500973681313713 +150 1.1053539394491334998e-06 0.004000330410582023619 1.0978911404624207108e-05 -1.7977840109543026248 0.008583263260235590719 0.022714618833290043526 -28.466834332323067258 350.075384972570248 60.647124727312586856 +1.8999854340463631086 0.0063300277274132279656 0.1810290820335017925 +207.13669770648766644 273.7308950242947958 106.8313349572089237 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -151 1.1053539394491334998e-06 0.00175683921066669322 +151 1.1053539394491334998e-06 0.0008219414277187112617 1.0978911404624207108e-05 -0.8344233019848410482 0.0037436143635977093755 0.110176035630884183725 -294.33360652651515466 287.14380368626814288 295.6502352986602773 +0.39038693808234919969 0.0014200211269435292997 0.082353904497625682324 +165.3765528532764506 105.87542012339059738 110.53584539259624364 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -152 1.1053539394491334998e-06 0.003122916852845279808 +152 1.1053539394491334998e-06 0.0029892270020516948498 1.0978911404624207108e-05 -1.4832516125288395248 0.005295684999474566633 0.26214242704521534266 -118.030580159474965285 351.64179960361536814 78.34665569441040134 +1.4197546652477557316 0.0026059421373739975747 0.034199947514791190217 +136.9638104418808382 55.373014430592007784 114.29540645922348574 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -153 1.1053539394491334998e-06 0.0030258569428200121098 +153 1.1053539394491334998e-06 0.00087723248992101478616 1.0978911404624207108e-05 -1.437152316633171667 0.0074494844285275495233 0.26557066670573209466 -250.92833717353181555 213.88220717132779214 349.39028260012048577 +0.41664782206819067634 0.004669057268832211595 0.15100116113820299946 +188.41240946737988793 160.34857150599080455 125.306733314827027925 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -154 1.1053539394491334998e-06 0.003988912006964646067 +154 1.1053539394491334998e-06 0.0013566250665907910276 1.0978911404624207108e-05 -1.8945621818830691296 0.0044398585967464158225 0.010283862047722251015 -258.29853753750563783 356.72434203993179835 333.31457638733343174 +0.64433874241144495354 0.0064172691562580279692 0.047530792330002284707 +10.035403327137842666 161.51304557993557864 317.89307408363032437 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -155 1.1053539394491334998e-06 0.0030278787443762763343 +155 1.1053539394491334998e-06 0.0030994444737744856066 1.0978911404624207108e-05 -1.4381125856892658099 0.0022445677616334735668 0.06237108902067381444 -2.5213158843440108825 73.69350063624342795 123.72726674992911455 +1.4721032388297692339 0.0017141731539689786679 0.12918905093485025248 +26.463018561125821293 337.6637723298328524 318.39654442323791272 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -156 1.1053539394491334998e-06 0.00087933125562007786434 +156 1.1053539394491334998e-06 0.0028988643042893069184 1.0978911404624207108e-05 -0.41764464579233795405 0.00019189906532495636842 0.20340672425611347474 -245.82044702840588002 7.1153350691133843142 358.1249298999702546 +1.3768362580393143091 0.00023440748806355493736 0.1044829004452739879 +252.18793438878694246 180.90190029902129254 161.6606630148949364 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -157 1.1053539394491334998e-06 0.0036227545122819890515 +157 1.1053539394491334998e-06 0.0019206909272584009254 1.0978911404624207108e-05 -1.7206530706197478153 0.0015819722493481958026 0.15527567587577953412 -72.6307945094991112 331.1549078885608992 220.10419284189686095 +0.9122458423540609207 0.0049592731400885312065 0.20926051620050717395 +294.94410340313640972 269.94893935471509394 319.98202428955164578 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -158 1.1053539394491334998e-06 0.0033503890922593141715 +158 1.1053539394491334998e-06 0.0038075411610063359687 1.0978911404624207108e-05 -1.5912911735594221785 0.0024823156478277377639 0.09132875435317404367 -167.84468714383879728 64.28369851634623444 66.16933683118321596 +1.8084188061834307604 0.0012626660273787804114 0.28465144236089839902 +105.46241568920551401 24.58858960475782851 65.73162303518296312 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -159 1.1053539394491334998e-06 0.0040551002842587597285 +159 1.1053539394491334998e-06 0.004117155794312402329 1.0978911404624207108e-05 -1.9259987758281029713 0.009664669610263468963 0.10057215900932207908 -68.054580253324147066 53.106101227679147314 131.40907212685985428 +1.9554724825230167529 0.0034418443069804895325 0.13102185986762712733 +94.35014503292603649 110.46828322181951876 276.996256039420075 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -160 1.1053539394491334998e-06 0.0037702767325024760324 +160 1.1053539394491334998e-06 0.0019403528202076692426 1.0978911404624207108e-05 -1.7907198003267883468 0.0006008069688313588414 0.007833264488165680994 -58.360671007282093115 336.14794789773759476 259.07597437042420552 +0.92158439851696383194 0.00022971156278930982106 0.16848765384574010406 +126.61505604372253231 306.85350067144452169 299.44586508883691067 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -161 1.1053539394491334998e-06 0.0007645844991431488309 +161 1.1053539394491334998e-06 0.0040209092766382907977 1.0978911404624207108e-05 -0.36314485614158503735 0.00024863180943032303204 0.1737100995417081295 -212.93209166979400493 180.07568591375277833 226.19074178733839631 +1.9097595131205988839 0.00024753880415491426228 0.21082422627069050125 +156.77144867692504704 9.081153690541672319 90.49939922041451723 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -162 1.1053539394491334998e-06 0.0008945588740412077804 +162 1.1053539394491334998e-06 0.00096180309920170007445 1.0978911404624207108e-05 -0.42487711167036362747 0.0014273960519744389053 0.095997795594056758994 -170.50243563511665457 285.70020695030672186 142.59922375723829191 +0.456815235579003609 0.0025317416907227742288 0.28191449166332527287 +18.282743351630475814 355.3842465840008913 280.16633666937212865 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -163 1.1053539394491334998e-06 0.00122382611181123356 +163 1.1053539394491334998e-06 0.002122153133095175955 1.0978911404624207108e-05 -0.58126493254056721405 0.007866575768953701711 0.18841751719099333884 -115.70608702313784022 63.6235178037891842 252.209803125291387 +1.0079317525949180734 0.004809801533944010367 0.1900896076814461988 +205.26994681303469292 100.58017958508672507 42.89087016014590148 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -164 1.1053539394491334998e-06 0.00078036104584642061046 +164 1.1053539394491334998e-06 0.0023312340247313426657 1.0978911404624207108e-05 -0.3706380394187652194 0.004855613560574428833 0.10402342436969566619 -28.145604901328717062 317.45242237519084938 328.99264224394113398 +1.1072362119454008944 0.0030986946461798183482 0.20055050759193249199 +231.86041764701607804 91.10874317664705302 329.58731874995561384 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -165 1.1053539394491334998e-06 0.0031822981717286262764 +165 1.1053539394491334998e-06 0.0022515874734255323241 1.0978911404624207108e-05 -1.5114551930716790817 0.0028568129164060385335 0.27129913075196959715 -304.01621179330965106 249.22611311730258876 177.3652475749936741 +1.0694075148575898915 0.0053145528628384388833 0.087790484275962490934 +305.47485872151992226 141.59503594270796611 121.08227158198768336 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -166 1.1053539394491334998e-06 0.0011513990629780069531 +166 1.1053539394491334998e-06 0.0019699499396780925536 1.0978911404624207108e-05 -0.54686518959681529317 0.0041525070486014645926 0.26590980958146898105 -12.167167712177239025 125.474543161024939764 277.79692108039523646 +0.9356417613124916599 0.0087428525792921547855 0.08284858348286514018 +39.571166312742903415 205.09583180126628577 42.104729643652149207 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -167 1.1053539394491334998e-06 0.003502713837770050965 +167 1.1053539394491334998e-06 0.0019785645999436980013 1.0978911404624207108e-05 -1.6636388968748847539 0.00655892379171164365 0.17431068078520289832 -268.69527558969940628 253.71474263862214116 131.91534736539497885 +0.93973335559195692035 0.00133898735055353762 0.05994090657484707485 +83.41565118670250456 313.80085550767597624 332.62658844379012635 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -168 1.1053539394491334998e-06 0.0029676781425923374656 +168 1.1053539394491334998e-06 0.0035386251135918549663 1.0978911404624207108e-05 -1.4095198808947466684 0.008599464267769979173 0.22076371379701376085 -255.19308340890390241 357.95488156582177908 202.63365444862495224 +1.6806952132228940577 0.002890432331680153899 0.2698004391552467629 +36.12935301900223095 101.466623129444300844 53.508308001059681658 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -169 1.1053539394491334998e-06 0.0024709283155031532587 +169 1.1053539394491334998e-06 0.0021287013718607905702 1.0978911404624207108e-05 -1.1735850107805603226 0.0029052663082875531363 0.19042471373062616613 -269.64074802384635632 57.638532772065524057 223.93584343885652288 +1.0110418852580635996 0.007091557888296801636 0.10153448877900603242 +70.798457257360553285 292.4212993280625028 291.1287891686035323 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -170 1.1053539394491334998e-06 0.0032866406946481512082 +170 1.1053539394491334998e-06 0.0032668648180819945306 1.0978911404624207108e-05 -1.5610134178558918716 0.006164163207425711437 0.05800604231450259829 -134.54998842866646669 343.97915330071634799 240.34511521076311169 +1.5516207243619237754 0.0078043812253454974623 0.05668535646587997967 +65.19907689277522422 316.59067409784267966 270.6922706037328794 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -171 1.1053539394491334998e-06 0.0029566661400300918858 +171 1.1053539394491334998e-06 0.003102143981330541211 1.0978911404624207108e-05 -1.4042896518085188351 0.0078581637453847205665 0.12166326451813178067 -120.911223215378640816 28.390466765897670598 289.36890689591876935 +1.4733853891796593327 0.0037746076474258817048 0.16246712315626229972 +37.830817219973162935 329.85635612685894102 347.86987877872894614 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -172 1.1053539394491334998e-06 0.0039108571490310105083 +172 1.1053539394491334998e-06 0.00259100911183583197 1.0978911404624207108e-05 -1.8574894709044555974 0.0005426767812503108289 0.05667772574095782112 -165.4295248971720298 208.24227862596347904 131.90431740714015518 +1.2306182406700840737 0.008398815671420655632 0.1480229185552056903 +234.78934703964597475 198.16493559018448423 146.95829922261481215 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -173 1.1053539394491334998e-06 0.0010859925198827920446 +173 1.1053539394491334998e-06 0.0020588134173982624879 1.0978911404624207108e-05 -0.51579988588002723127 0.0005361395633188881021 0.21955040403371273161 -115.134021606201500276 126.8998016202271657 325.20127237092032146 +0.977848103278744718 0.0018711011417652501608 0.16522119436359616884 +163.18086582157980047 78.914219514410760326 142.8192833764249201 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -174 1.1053539394491334998e-06 0.0016733896516879965456 +174 1.1053539394491334998e-06 0.0020021126413718732487 1.0978911404624207108e-05 -0.7947883393033339239 0.009349519633078097469 0.26197072531532406003 -1.8767913830442761736 326.62073831548445924 237.01200043645579285 +0.95091766566681990014 0.00336489172666913465 0.21901780294733363963 +87.86622797061994561 136.34502365604896568 252.05920241899733014 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -175 1.1053539394491334998e-06 0.004160984919851807643 +175 1.1053539394491334998e-06 0.0036339237372726616187 1.0978911404624207108e-05 -1.9762894380153865903 0.0077217171502559304314 0.11705617979985032118 -217.99395390163073216 153.18871505615376805 176.35100903684255513 +1.7259579736186920762 0.0041869527118458651008 0.028109572984316551214 +121.30605721974019673 61.744362273432074062 174.09740409693390006 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -176 1.1053539394491334998e-06 0.003132721471025885227 +176 1.1053539394491334998e-06 0.002514072361899024204 1.0978911404624207108e-05 -1.4879083857994319651 0.0011012975807243984699 0.113463207926910308876 -192.75616068683635262 193.19355659252013879 189.40277074079665454 +1.1940765830519739499 0.0034846618176374954783 0.12742159407739631072 +24.79333111146843649 34.64910053343410823 315.1945913442744427 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -177 1.1053539394491334998e-06 0.0037983443205501397377 +177 1.1053539394491334998e-06 0.0010503084451964543236 1.0978911404624207108e-05 -1.804050701273946844 0.0040639756372511859003 0.027370576204051783042 -102.149726603031112404 220.92752834505296278 182.35642386120065339 +0.49885148033029669268 0.007967598671801134902 0.1330389785862050589 +294.02828356145346334 86.3657593912998891 174.42336676749377489 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -178 1.1053539394491334998e-06 0.0029066218214650824512 +178 1.1053539394491334998e-06 0.0040359345235889361597 1.0978911404624207108e-05 -1.3805207461004376235 0.005396419049672932823 0.16451037543421118126 -145.50908209065676147 285.63093274443326663 298.24776069448341786 +1.9168958612266600028 0.007056409288281554476 0.14438008496979934381 +151.72131661259777502 349.15938511832013091 248.59211550430140392 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -179 1.1053539394491334998e-06 0.0021284072422542663204 +179 1.1053539394491334998e-06 0.0036523549016930081307 1.0978911404624207108e-05 -1.010902186305537187 0.0062198798209103832793 0.28278736997055975433 -118.67981333558519452 26.279156408242133836 170.32396486728103469 +1.7347119864968625347 0.0049406754123896539505 0.10886626440022140194 +160.03515451729236929 202.10728820239182824 341.81267540223694823 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -180 1.1053539394491334998e-06 0.0039538674071673946 +180 1.1053539394491334998e-06 0.002554490662880614255 1.0978911404624207108e-05 -1.8779174994886780325 0.009432140448994876317 0.020821807139992327962 -66.965256896674745235 178.75707014089249469 252.50094855234701186 +1.2132735431157677386 0.009012693132543448879 0.20287253985622424879 +137.60732509715026595 226.35874211489309005 119.96202040282430801 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -181 1.1053539394491334998e-06 0.0033225208522467185628 +181 1.1053539394491334998e-06 0.0032644413488825219037 1.0978911404624207108e-05 -1.578054954382032804 0.0011480412701118224844 0.25962638770393015042 -349.760085801757441 7.729571377849708824 290.2638591051049275 +1.5504696803964859164 0.0015882651550474990911 0.2629421468984927679 +19.853622846005816172 282.67147248542340776 179.27177236000667904 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -182 1.1053539394491334998e-06 0.0038363536428475558013 +182 1.1053539394491334998e-06 0.002496578643751504793 1.0978911404624207108e-05 -1.8221034997458003257 0.0074315436519270874904 0.026840314352887285898 -183.27856607943658673 171.68900869783317376 321.3821958522109412 +1.1857678169611340913 0.0035368608498801048373 0.26534779996152652037 +127.40771816421603546 68.26246775293370206 262.0444051742314855 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -183 1.1053539394491334998e-06 0.0031234083635033859387 +183 1.1053539394491334998e-06 0.0011739045459812716557 1.0978911404624207108e-05 -1.4834850590183119579 0.006298399529946449235 0.25315232549956684371 -263.48864845982456018 303.36974935109344642 178.2405859340265124 +0.5575543291187078365 0.004031317733538368475 0.22041477683734150839 +27.303325911130052361 310.86366363031265792 306.69192190383233765 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -184 1.1053539394491334998e-06 0.0040200808849782696217 +184 1.1053539394491334998e-06 0.0023048705969360054121 1.0978911404624207108e-05 -1.9093660625987214363 0.0025680720198822549333 0.23358977988488904831 -338.08259515095670622 328.03018002895686323 18.745888017780568902 +1.0947147140535840038 0.0025038964607662496202 0.19917514015511508796 +148.66531783159700808 14.196492884164598536 60.54002871566093802 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -185 1.1053539394491334998e-06 0.0012088651939299233287 +185 1.1053539394491334998e-06 0.0030873533281919436506 1.0978911404624207108e-05 -0.57415913798438267257 0.004166819918519071124 0.22891593045067742951 -149.82107045433053827 305.0907861722467942 164.82948448741862535 +1.4663604630762980818 0.0049515464039623733467 0.069258198109803090214 +34.477975374555292376 320.58517167090400335 124.00245660596641528 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -186 1.1053539394491334998e-06 0.0015082253414342592136 +186 1.1053539394491334998e-06 0.0030080188752002284319 1.0978911404624207108e-05 -0.7163423732210577599 0.0059228600888672324268 0.0037546631562516493037 -77.709331824223667695 344.2998565395624837 60.579566496302568623 +1.4286799993067156311 0.008677599963277099829 0.23911557876878630768 +116.685633289501197396 326.47262446684203496 244.42996381946051088 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -187 1.1053539394491334998e-06 0.000729961008578045944 +187 1.1053539394491334998e-06 0.0013260390165021340508 1.0978911404624207108e-05 -0.3467001825777416002 0.007964382969585615674 0.17804213360735191007 -246.13928978381900947 258.922667535056803 176.12635256033649966 +0.62981167997186870977 0.006466129287410752463 0.24799316121864192763 +264.7147300811375885 137.61164517995140955 157.30801824277600076 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -188 1.1053539394491334998e-06 0.00091449624296400956204 +188 1.1053539394491334998e-06 0.004047724831717211548 1.0978911404624207108e-05 -0.4343465071098819852 0.00035864864825474907385 0.22499017632385373555 -149.25037922799606349 270.7904709187972685 110.845683628496118445 +1.9224957520875207706 0.0096351031122967664005 0.17250170868693590065 +329.24319752439635067 277.10306620588750093 189.59474863577838732 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -189 1.1053539394491334998e-06 0.0013386560504926946244 +189 1.1053539394491334998e-06 0.001989303986442867738 1.0978911404624207108e-05 -0.6358042301721020806 0.008194002699235791373 0.13321378980961537386 -355.69835155237404933 241.9183342645525272 216.54648943862528654 +0.94483410373642029434 0.0012534169895359814021 0.1346478218840848895 +260.06939765288524313 233.9557554846379901 58.524858500524096883 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -190 1.1053539394491334998e-06 0.0036611086297523375957 +190 1.1053539394491334998e-06 0.003852114181472425877 1.0978911404624207108e-05 -1.7388696320159258146 0.009463399612009872411 0.09792727411640843316 -266.32752292348715173 45.84496453183301412 34.568808321301936815 +1.8295890798720733095 0.0047800505093452769906 0.24608505314649714579 +340.24309099459532035 152.54064815014820056 165.96862877264817371 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -191 1.1053539394491334998e-06 0.0031026559620937145813 +191 1.1053539394491334998e-06 0.0024016254478726418928 1.0978911404624207108e-05 -1.4736285580913992543 0.0076533689915776548576 0.019027778064391976526 -155.49835363028691404 112.53380567902475207 281.99316203441350126 +1.1406691199613174792 0.00970232366006403002 0.16778709060778534967 +70.93612678151409057 81.322750075994733265 125.426196970942498865 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -192 1.1053539394491334998e-06 0.0007959565494620336935 +192 1.1053539394491334998e-06 0.0038197051182224726972 1.0978911404624207108e-05 -0.37804523499138570353 0.0049652627165416634777 0.19224692846275387437 -9.987837842589385673 218.18816626400888481 340.19621894155864084 +1.8141961643411186333 0.0050739626045544425348 0.23340728752776873645 +99.443249722025811366 307.69429006859348874 124.14483599341727427 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -193 1.1053539394491334998e-06 0.0015607320696812756844 +193 1.1053539394491334998e-06 0.0013984785629403686772 1.0978911404624207108e-05 -0.7412808179542385023 0.0041121555809099834614 0.07669842943934201962 -113.92010277446652822 257.48581266560358927 25.833299759874574164 +0.6642173587421745795 0.009550705541536445506 0.12710458773747337902 +162.09339280487338897 165.61923957210163394 212.05571984302483202 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -194 1.1053539394491334998e-06 0.0028199464111369163995 +194 1.1053539394491334998e-06 0.0013434121954895413534 1.0978911404624207108e-05 -1.3393536423337397689 0.008756470205376612123 0.08467874254286143765 -303.66981809886692645 166.28813148387183674 181.59161859928227045 +0.63806319512967579755 0.0033639670664944187374 0.12550779218906182866 +194.90737411681726599 104.80186676573379145 335.22805516969197015 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -195 1.1053539394491334998e-06 0.003098592071166975558 +195 1.1053539394491334998e-06 0.00097030750950317884436 1.0978911404624207108e-05 -1.4716983841372848207 0.0034241391438762092125 0.1889744765686828809 -288.46073539571222 269.0416816028255198 28.013880590679480775 +0.46085446585238809547 0.0017726026583020893478 0.20642461236349177178 +324.51443733995040475 250.52740678430171783 138.84059354440069001 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -196 1.1053539394491334998e-06 0.00074801137349831484235 +196 1.1053539394491334998e-06 0.003539374219345327824 1.0978911404624207108e-05 -0.35527333201985045186 0.0038816169742270289697 0.058867043869786965515 -311.85185742196944148 232.22026620620130188 165.57787758477780926 +1.6810510063384811463 0.005599949985720790481 0.27399860974021150728 +122.4861974724007041 109.18863577631832129 242.64119100582422561 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -197 1.1053539394491334998e-06 0.00079635094539024284963 +197 1.1053539394491334998e-06 0.0014967034581510140879 1.0978911404624207108e-05 -0.37823255614787376633 0.0045360373312868552953 0.08910428158621236383 -306.05357794089098888 106.167083365874475476 203.48653688131810213 +0.7108699726530849361 0.0056559465681537690607 0.17751933040428050092 +5.0883921390393593853 311.8945342963957046 136.0008735092846166 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -198 1.1053539394491334998e-06 0.002002826377885706334 +198 1.1053539394491334998e-06 0.00088559123726717096815 1.0978911404624207108e-05 -0.9512566599100060749 0.0027294676878406053978 0.26062808956909006008 -313.19565415541569564 257.0979224166111976 16.956984297036129306 +0.42061786868298012276 0.0036435145280732461961 0.14692939571045285363 +251.85508975176313129 162.39345545595963927 156.99392328849333467 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -199 1.1053539394491334998e-06 0.004042760771297577287 +199 1.1053539394491334998e-06 0.003314904658588292115 1.0978911404624207108e-05 -1.9201380362183311235 0.009530424947916192602 0.25258328305530691749 -74.13305458986923213 265.6558751599854986 352.56444203842960405 +1.5744375889325170625 0.0067655761793409784077 0.24699533456281858035 +80.57915771897299351 50.272637768379993872 86.94939474128953805 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -200 1.1053539394491334998e-06 0.0040999318191548592626 +200 1.1053539394491334998e-06 0.0018747184461231479178 1.0978911404624207108e-05 -1.9472918327873998123 0.006467733283433189928 0.21922155742591675764 -282.70786923436241977 40.89079121074045986 248.53904063784378309 +0.8904108848483274219 0.0034326694835287762178 0.055467591112720752988 +49.028681012155956864 110.95560793968778057 117.609844148239247374 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -201 1.1053539394491334998e-06 0.0018046944251390671358 +201 1.1053539394491334998e-06 0.0017894099511385026191 1.0978911404624207108e-05 -0.8571524771050147429 0.009758536247292960361 0.14354841717106070487 -219.38255815804475901 19.80740090409434373 97.223144764978641774 +0.8498930072643953171 0.00223057304887631664 0.0891226947299802591 +146.60042304094312726 304.5489249640868934 199.75791387394090748 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -202 1.1053539394491334998e-06 0.0014653682339685231776 +202 1.1053539394491334998e-06 0.0019028235160252391051 1.0978911404624207108e-05 -0.69598708463918013134 0.00678840387145877161 0.10618294193765256961 -34.23082970517403112 82.3442566267213607 353.65610053653676914 +0.90375958806933431866 0.0060950113486868918652 0.08314131138975405788 +232.95366797868115327 298.34755441183693847 171.86518971921520915 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -203 1.1053539394491334998e-06 0.0038301201524653260436 +203 1.1053539394491334998e-06 0.000818434016452201313 1.0978911404624207108e-05 -1.8191428590701763657 0.0028204710291057921712 0.12848044869910907329 -66.938422505412617625 287.933831991153113 221.08236799144518159 +0.38872106810822137923 0.0037761494322913202737 0.08994186965443598525 +67.27295741146468799 78.216677088941693796 257.33635907095367656 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -204 1.1053539394491334998e-06 0.0017042993608463410241 +204 1.1053539394491334998e-06 0.0037411273709527709603 1.0978911404624207108e-05 -0.8094691259243869119 0.008032377075138550163 0.0022878252861527532437 -193.7205213060228175 46.325606399660614443 293.66173105842659652 +1.77687510334633747 0.0028970237975022494412 0.123293574520790094606 +36.074664757468788423 152.41742378959796156 13.839837766773047889 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -205 1.1053539394491334998e-06 0.0015095848146690428743 +205 1.1053539394491334998e-06 0.00377827688950105205 1.0978911404624207108e-05 -0.71698806472124787526 0.0098358928496768485705 0.086086654865531409 -3.0789053172281244386 249.3498073677039315 36.332018091331363507 +1.7945195319007527512 0.0027417575511466418282 0.098334795398838964475 +305.67908368262527574 8.878845059270208395 232.9892076242130372 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -206 1.1053539394491334998e-06 0.0015957639929996422786 +206 1.1053539394491334998e-06 0.0041782238019537728463 1.0978911404624207108e-05 -0.7579194795646532201 0.0047097367559547562155 0.06763830046211277702 -342.3743849835045694 18.449590955862923636 263.52077642863866913 +1.9844771679104806772 0.004965187588850221434 0.093920890331302048226 +130.35743042250172152 52.769936552323152057 253.04922437282974101 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -207 1.1053539394491334998e-06 0.0014294632707700545205 +207 1.1053539394491334998e-06 0.0024538005361381455215 1.0978911404624207108e-05 -0.6789337665166064184 0.001158401710483912897 0.20384996150651280011 -157.43218062328901397 247.34112143398164108 140.90021945284092908 +1.1654500499220796783 0.00041897439756099054756 0.17152502517714784958 +20.646147745321581368 58.4518180109311416 187.95900489185814308 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -208 1.1053539394491334998e-06 0.001753376160737756752 +208 1.1053539394491334998e-06 0.0025589971288881362916 1.0978911404624207108e-05 -0.8327785017441036164 0.0015657513549773894885 0.16267747243242480781 -31.13119370440238498 283.26397689750825748 25.38699752320883718 +1.2154139212582000251 0.0053263146453688004628 0.086766321772624596664 +71.49498095535852826 199.55697167047924268 82.02938490687228068 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -209 1.1053539394491334998e-06 0.0006387515232398071862 +209 1.1053539394491334998e-06 0.0026927514450717691936 1.0978911404624207108e-05 -0.30337958757611388494 0.0030540421629771676536 0.20165791782915776231 -219.30503179249956247 58.05237187181140257 87.87785021694024579 +1.2789414868356543398 0.004241403885455575541 0.18344579890812029443 +258.7760529923453987 316.01299259592332191 353.57286365715992815 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -210 1.1053539394491334998e-06 0.0038947841168849806501 +210 1.1053539394491334998e-06 0.0026095417911298547581 1.0978911404624207108e-05 -1.8498554697535425362 0.009896515888626064919 0.09173314639338975285 -34.349337887376606204 283.7707277187400905 181.83417350943676638 +1.2394204687608814108 0.0028615955460106470495 0.16432217496028059256 +137.34718063982845138 276.77488283206099595 257.398773057183746 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -211 1.1053539394491334998e-06 0.0006849602020802296618 +211 1.1053539394491334998e-06 0.0012104495733819770992 1.0978911404624207108e-05 -0.3253267288650144029 0.0031573326602339101855 0.20139362993908688226 -291.81315397018545355 47.546965539772230613 290.68337081504432717 +0.574911650295101162 0.00732962987834302835 0.09094186706087993566 +197.58897025968587968 216.4500587345692395 32.142690974564700923 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -212 1.1053539394491334998e-06 0.0024600412145923562904 +212 1.1053539394491334998e-06 0.0013114517797230782154 1.0978911404624207108e-05 -1.1684141046237117578 0.008119309539635848061 0.14503523865688958128 -255.72018505070192873 200.48290029070619767 125.714776260831371246 +0.6228833679179753835 0.0035301453282308783987 0.026520907213248515882 +203.93770909810530156 287.61014862136562442 242.06878687905944503 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -213 1.1053539394491334998e-06 0.004010630229811323397 +213 1.1053539394491334998e-06 0.00065628109701938868933 1.0978911404624207108e-05 -1.9048774065837348335 0.00675135336243245978 0.045082036467290108328 -143.84450338331546959 96.490305538434270716 15.575788764323332813 +0.31170538355490157167 0.0024132385307648130182 0.12713185331949014567 +105.20511844911963806 16.056112168560989772 244.24341611382067185 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -214 1.1053539394491334998e-06 0.0022050983056655759952 +214 1.1053539394491334998e-06 0.0038552529171225749194 1.0978911404624207108e-05 -1.0473271533576498094 0.009236884189897091868 0.10706704499942742981 -96.366578963027691884 289.40355490094788138 258.27295269480208617 +1.8310798447351031015 0.0053473729307617848955 0.15062261092501649795 +43.354544296036287676 331.8173735468632799 170.05926695404545512 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -215 1.1053539394491334998e-06 0.0019198281247945631712 +215 1.1053539394491334998e-06 0.0028466074219119853122 1.0978911404624207108e-05 -0.911836048175706404 0.0002548969495871211818 0.20364668641084432421 -95.108411544141290506 83.096432477406665384 89.109588759147627 +1.3520164793822959659 0.0049251371115639616324 0.17288169273885795052 +212.77950859181953547 336.0581226917943809 77.42768272234950189 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -216 1.1053539394491334998e-06 0.0018749018565875555775 +216 1.1053539394491334998e-06 0.0021985221733891035234 1.0978911404624207108e-05 -0.89049799695534348487 0.0010890480318107409029 0.027420770974484406923 -279.11820650852871495 76.370173773551300656 13.80324233249109156 +1.0442037724727588621 0.0016673703284148389935 0.021604928275600978477 +139.45741585695469666 284.89487782135802263 10.567521045672329194 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -217 1.1053539394491334998e-06 0.0041669825592100303336 +217 1.1053539394491334998e-06 0.0041585269987210155198 1.0978911404624207108e-05 -1.979138059566531993 0.0002296324675624139566 0.069801351188834806494 -333.04217595191113332 181.26021573217531113 319.14461653635891025 +1.9751220308596710851 0.009473475533086925596 0.035300137086330951597 +122.95621128533730371 260.48599796310674037 124.62256340954461109 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -218 1.1053539394491334998e-06 0.002332014556262958736 +218 1.1053539394491334998e-06 0.0036850979269059709786 1.0978911404624207108e-05 -1.1076069309582508016 0.00744722309531437119 0.28600488229847548238 -108.783255298574275116 84.0030920486641719 292.5786475801582469 +1.7502635196418936392 0.0050741844761371711695 0.1658857333368631004 +157.74995091841947215 201.01550775263439164 24.642900556579590443 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -219 1.1053539394491334998e-06 0.003036858135231125488 +219 1.1053539394491334998e-06 0.0024098792270461044352 1.0978911404624207108e-05 -1.4423774113610883241 0.0086700360712943826125 0.02690386372921058089 -270.72204579466171026 250.22083134890763745 233.05749557194022259 +1.1445893111945042442 0.006254894994526396558 0.26812616136996125782 +55.8403116509916444 188.31560576999075352 176.08115773745512911 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -220 1.1053539394491334998e-06 0.00084187357598868220704 +220 1.1053539394491334998e-06 0.0014194649641254083406 1.0978911404624207108e-05 -0.39985385393560424205 0.006342974151757888729 0.06356196950247915145 -229.81412208049113133 215.3895886771678363 310.93757129149889806 +0.67418499952983323986 0.009370914403225643133 0.2607023782927515021 +74.568348301104421694 171.69028949645840498 330.08218397926469834 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -221 1.1053539394491334998e-06 0.0030043217310087397961 +221 1.1053539394491334998e-06 0.0038857315851970468092 1.0978911404624207108e-05 -1.4269240143278709709 0.002220229563581638168 0.04231149744038742444 -233.86643162883990499 311.7426483870440279 109.72127502423080614 +1.8455559053218597576 0.0032852640630340579873 0.13146720816486856531 +181.57781545052452543 87.8424776041924531 117.749266632278107636 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -222 1.1053539394491334998e-06 0.003463832913454403215 +222 1.1053539394491334998e-06 0.003451467710803740472 1.0978911404624207108e-05 -1.6451721248136135234 0.0062869782409718027658 0.10636618810649194067 -244.28717647417721537 19.666905194444940008 165.35106373796219259 +1.6392991837027635071 0.008172993347506901651 0.07942047748286509834 +92.02202764669651458 136.44658809966159652 207.06688706223678764 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -223 1.1053539394491334998e-06 0.002719011083141052469 +223 1.1053539394491334998e-06 0.0037938786789413665213 1.0978911404624207108e-05 -1.291413689057497427 0.0062768325681576689 0.13276925951222268152 -108.86547315165030625 229.31256494316107819 155.35584922429745802 +1.8019297129706066674 0.0082471276931415059275 0.16900132120254876544 +7.646139907393401103 26.181477918732003474 356.9546976907500948 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -224 1.1053539394491334998e-06 0.0026860157073398488701 +224 1.1053539394491334998e-06 0.0033882516596473381441 1.0978911404624207108e-05 -1.2757423002023824399 0.008799711991220635077 0.041204685199725532563 -303.42446739977856396 40.800902460290842555 280.29844608469227296 +1.6092742697413142672 0.0054203798375991154093 0.03304709238437338048 +41.255547311385861065 128.5294686483246096 51.326700392261827233 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -225 1.1053539394491334998e-06 0.0007620236114260751506 +225 1.1053539394491334998e-06 0.0016442728414775665287 1.0978911404624207108e-05 -0.36192854427199616651 0.001959988746914222927 0.09788072562812429045 -58.8856625058030545 325.49713949673196112 275.8919182976525235 +0.7809591028134259538 0.0027842582556533990168 0.047076208156716640996 +303.47610195868935534 310.11757116316641714 333.1326779659828503 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -226 1.1053539394491334998e-06 0.0029534346568047034147 +226 1.1053539394491334998e-06 0.0035769359282418285922 1.0978911404624207108e-05 -1.4027548358237287296 0.0049340330575141731068 0.082652415753030145096 -256.5208500757398724 219.80267611287951013 113.14494333341136212 +1.6988912076359679038 0.0027544225353991545584 0.004911566701016785441 +19.804093696957437487 116.867688699944906716 230.06366975865716995 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -227 1.1053539394491334998e-06 0.0037149296828009908948 +227 1.1053539394491334998e-06 0.0035967711068804861586 1.0978911404624207108e-05 -1.7644323246792550375 0.0065910801266361573186 0.14928786160616938639 -134.98971151046416139 6.3366313498052173614 146.57581954376337308 +1.7083120670718447975 0.00911417171715175195 0.25502606246125725242 +132.71941125120628158 127.705833276839655355 225.39323602534688007 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -228 1.1053539394491334998e-06 0.0010018479501568961794 +228 1.1053539394491334998e-06 0.00334326458481887513 1.0978911404624207108e-05 -0.47583482289163270273 0.0016166612719674766738 0.21610240492494672826 -2.4995235696923057134 305.19661372677148847 4.0622867497945414073 +1.5879073379827954859 0.0011623894671392387499 0.05850712316967049409 +159.65555127883030195 127.36551163027768041 64.885410734468138116 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -229 1.1053539394491334998e-06 0.0019874397966160787208 +229 1.1053539394491334998e-06 0.0030020484084863051707 1.0978911404624207108e-05 -0.9439486934943495111 0.0092175485145352935995 0.21553226184979074054 -242.74744141716928425 331.20967652724220898 331.62700922943145088 +1.4258442835966069762 0.00848590023816955287 0.27942994206520843647 +153.80249494957928391 50.81493058271808394 338.62245737434164994 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -230 1.1053539394491334998e-06 0.001207067197772265787 +230 1.1053539394491334998e-06 0.0025532932625720591768 1.0978911404624207108e-05 -0.5733051668971484993 0.0026844510043977998573 0.117562555033925125736 -246.07891661563991192 198.98638978103429054 332.5439028219576585 +1.2127048293067885787 0.0009963654234914987376 0.18380227254641912094 +296.31116977945151802 353.61244872953659524 271.6889881796664099 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -231 1.1053539394491334998e-06 0.0035627235812938360451 +231 1.1053539394491334998e-06 0.001082604651499275318 1.0978911404624207108e-05 -1.6921409521787267316 0.005295051420616436917 0.047319782287829806333 -111.150837730293204686 70.826820852433712616 108.48822963514039941 +0.5141907936500152987 0.00043191285328578746727 0.19126984756319301284 +85.01172102721294266 39.721565442605687224 275.549376030423673 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -232 1.1053539394491334998e-06 0.0037832982797274010306 +232 1.1053539394491334998e-06 0.0033134773912811132366 1.0978911404624207108e-05 -1.7969044769701620901 0.0053057343818330039015 0.1745245850344390448 -242.09537321744443261 139.7481562902405301 254.28947731460638693 +1.5737596981545560748 0.0019741946170468748292 0.12460781029519701901 +248.19786176602471528 119.28349434597694767 228.47567541408912462 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -233 1.1053539394491334998e-06 0.002414965597246833551 +233 1.1053539394491334998e-06 0.0016296203193969590176 1.0978911404624207108e-05 -1.1470051189657795021 0.0016920742755172990882 0.23148156736145850121 -80.24995401635302983 85.08681621100728876 235.11855119230941114 +0.77399978304035088605 0.0012284582489639817894 0.09559581935893739224 +322.2110087566335892 92.73970892762623919 351.59239176508305036 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -234 1.1053539394491334998e-06 0.0036279388108992118714 +234 1.1053539394491334998e-06 0.0022344581149205248296 1.0978911404624207108e-05 -1.7231153901902547254 0.0018365952332263513203 0.042246145144015777306 -33.9602482398077683 85.94576045974682188 12.142776198180818881 +1.0612718039753137322 0.004484186353959148698 0.12151011051255730666 +263.87913579741410786 205.99234601775421538 295.5571009617409004 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -235 1.1053539394491334998e-06 0.002415800137586473408 +235 1.1053539394491334998e-06 0.0025929891572818648881 1.0978911404624207108e-05 -1.1474014898468560819 0.002058720827701685397 0.031287094450079086516 -265.30715860066493406 27.516837509481572255 174.70648171424591055 +1.2315586773640783136 0.0053930633777768497567 0.19307315608603120571 +235.90181752450615704 48.929514224976159653 321.86546383708378016 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -236 1.1053539394491334998e-06 0.0037297081693541274057 +236 1.1053539394491334998e-06 0.0013570090956489526244 1.0978911404624207108e-05 -1.7714514721761549509 0.009747607022882359348 0.18213941490808119306 -54.043321542535728952 306.1604232233132734 178.46001267912322419 +0.6445211397491317218 0.009481534918553509092 0.04375079099795432802 +171.78425940023910812 4.8286745259339225456 351.6065975856236605 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -237 1.1053539394491334998e-06 0.0014906796173735708767 +237 1.1053539394491334998e-06 0.0024626642311546409592 1.0978911404624207108e-05 -0.7080089065511747659 0.00096650387643194119423 0.1392513178383897876 -163.0979551316417826 2.176406090898534984 114.63304512058948603 +1.1696599250310510953 0.005127240148268814683 0.2105553591902456223 +100.95332000457001698 348.06710353881669562 97.98306528295765361 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -238 1.1053539394491334998e-06 0.0033497696038343891788 +238 1.1053539394491334998e-06 0.0038693794281005786159 1.0978911404624207108e-05 -1.5909969431176556043 0.0065969832699507690438 0.11312768021339117408 -44.268902431374989703 38.490362748130088733 34.84410972194338285 +1.8377893317867484146 0.004014814781838210722 0.27787245250819364584 +104.63028723289626498 96.580313691242125174 278.5777544967936592 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -239 1.1053539394491334998e-06 0.0027805589116999760234 +239 1.1053539394491334998e-06 0.001999859417886389329 1.0978911404624207108e-05 -1.3206462688088593804 0.0038845298209630274404 0.1680011239402919021 -75.67059272210572374 183.68772629545870245 167.84400454841491523 +0.9498474811163772902 0.006849729004888246639 0.23685913701271052445 +286.44113360058582884 36.49767264907672626 11.524501355426210125 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -240 1.1053539394491334998e-06 0.0028233785570510385093 +240 1.1053539394491334998e-06 0.0016538269594082795101 1.0978911404624207108e-05 -1.3409837644924254008 0.0073084115705397160664 0.15865366112833181877 -207.38164621710120628 332.79426616175919662 273.81677568422833247 +0.78549689920531817755 0.009618251386837464376 0.062564472478197200034 +106.10813836232580343 245.34879128293727035 8.483230361695257571 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -241 1.1053539394491334998e-06 0.0016854322293480673646 +241 1.1053539394491334998e-06 0.002723870616539034557 1.0978911404624207108e-05 -0.80050804737594227767 0.008448610623557182078 0.25730992978082506406 -289.4812315326377643 303.62935585264301608 249.59080173981794815 +1.2937217590729150896 0.0081012632352857969625 0.003736891747374473504 +318.69220722883733288 286.78306881772454062 129.51331016110151495 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -242 1.1053539394491334998e-06 0.0012470684404238953822 +242 1.1053539394491334998e-06 0.0035509263433730942577 1.0978911404624207108e-05 -0.5923040421352547824 0.0036218816567458070148 0.112724979617775861174 -331.517984601529065 146.78821808304488172 142.88491521846461296 +1.6865377699635537567 0.0085211867778089960684 0.1808603771617869338 +355.72073380858671499 104.144419618249756354 228.95309686611733468 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -243 1.1053539394491334998e-06 0.0017857862661697755417 +243 1.1053539394491334998e-06 0.0019667886220503015487 1.0978911404624207108e-05 -0.8481719122668567312 0.0067640314385091319938 0.053883949706844756766 -144.40285297846801882 285.33791060145659912 358.04568901962534255 +0.9341402709782662406 0.0028907534107824417284 0.17459206591438974909 +17.281334610707403954 281.8598434220742206 295.65199935715946822 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -244 1.1053539394491334998e-06 0.0040462288036397131656 +244 1.1053539394491334998e-06 0.0011426227189501233375 1.0978911404624207108e-05 -1.9217852028917212781 0.0014172278919844572866 0.047448802230884025433 -260.3729371698353816 122.89067701320085746 93.023106197377714466 +0.54269680246233042986 0.006062420346430625294 0.18189964090404234232 +257.82341809918989384 279.63417631190066004 264.79438787620637186 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -245 1.1053539394491334998e-06 0.0019361305212386626315 +245 1.1053539394491334998e-06 0.0039612549184543410322 1.0978911404624207108e-05 -0.91957898753439093475 0.0054257093995886710933 0.20189621784883990396 -348.80699142997087847 267.44851881583520026 191.66816337995686581 +1.8814262506163152988 0.00713425705142452498 0.036678666696773026823 +279.36446391679663748 218.94276893606445356 72.76793396285118831 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -246 1.1053539394491334998e-06 0.0008357317449819982147 +246 1.1053539394491334998e-06 0.0011069113753110580419 1.0978911404624207108e-05 -0.39693674753354180051 0.00695669751241121629 0.07059133020711604034 -277.17099064073488535 243.81353472045162789 13.860950854447731118 +0.5257354453291889218 0.0065663531910162857216 0.08821788676682744412 +313.21826205225062267 78.7334678501035512 66.625782692959901965 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -247 1.1053539394491334998e-06 0.0017457059651771781547 +247 1.1053539394491334998e-06 0.00084896706738007961826 1.0978911404624207108e-05 -0.8291354877063541462 0.007579513197267172611 0.14872496537852536447 -117.58173196306927366 132.83622947559689464 37.174844536347023904 +0.40322295821872455868 0.0023563378205480678754 0.14379403784542810207 +66.033482039089463456 357.4538328606508344 62.74045221395471117 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -248 1.1053539394491334998e-06 0.0017619500669711703841 +248 1.1053539394491334998e-06 0.0019979486651708478538 1.0978911404624207108e-05 -0.83685073960557443407 0.002546117071148574964 0.23335641492976430533 -10.6227561310528137994 304.75790564882663602 7.8734398293515583944 +0.94893995549849585736 0.005083924661341961311 0.118823342033357426395 +6.8149540377181416773 9.181500809113174455 95.27358157374189318 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -249 1.1053539394491334998e-06 0.0015664320617493881367 +249 1.1053539394491334998e-06 0.0025774232222600479035 1.0978911404624207108e-05 -0.7439880698039720297 0.0013525645739295856073 0.22664252633626766342 -124.07943418091733179 194.79442867879302526 29.183299745477533804 +1.2241655256057810686 0.0020341521214730850717 0.27576171800939880407 +159.81791713660427945 341.93421212230111905 226.18727910338799347 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -250 1.1053539394491334998e-06 0.0011951162971436579995 +250 1.1053539394491334998e-06 0.0015643136657066606002 1.0978911404624207108e-05 -0.56762900148390538213 0.0070304889647160645136 0.048474361731430916367 -255.7152698309952541 245.72298712417153865 7.9297327037804743455 +0.74298192250821948335 0.008137288135894959681 0.22809676884599014435 +96.52537440088759979 121.2909095205949086 136.02299284070218732 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -251 1.1053539394491334998e-06 0.00065194078527904077664 +251 1.1053539394491334998e-06 0.0031667115927545822995 1.0978911404624207108e-05 -0.30964392156564513048 0.0029240420556140888156 0.1092621584248463229 -316.1677491080059781 133.31998089749481551 99.43215513885033374 +1.5040522363211670243 0.007027564137810949317 0.10653626114394891544 +278.13618264029696547 248.33667224358791259 68.80918757195135527 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -252 1.1053539394491334998e-06 0.0039365870221984295237 +252 1.1053539394491334998e-06 0.004194380672915214599 1.0978911404624207108e-05 -1.8697100575111613718 0.009334184074264555153 0.2398374988432090682 -224.57077853625952457 23.667298927715950896 358.86438506974275242 +1.992150988904191955 0.0053245068265041408523 0.16419521861955760356 +6.9881313654412213765 162.84367291811329892 136.01685989952173372 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -253 1.1053539394491334998e-06 0.004031146492566417527 +253 1.1053539394491334998e-06 0.0035312395672294702313 1.0978911404624207108e-05 -1.9146217517739800851 0.0017638019526565629647 0.121252723389073946425 -14.969276577263155303 35.058874628461708767 83.56094997981790584 +1.6771873953501790222 0.0080761985352756811285 0.24505026568791535291 +21.921837033461464728 74.11564328757721398 164.4182830076092614 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 From af220ab388aeb3d0c643ecad5f2352ccbfab95ae Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 18:01:22 -0400 Subject: [PATCH 177/315] Updated initial conditions distribution to better match what Chambers did --- examples/symba_chambers_2013/init_cond.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 6a6dd8526..d02830a11 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -60,10 +60,10 @@ # Define the initial orbital elements of the big and small bodies avalb = default_rng().uniform(0.3, 2.0, Nb) avals = default_rng().uniform(0.3, 2.0, Ns) -evalb = default_rng().uniform(0.0, 0.01, Nb) -evals = default_rng().uniform(0.0, 0.01, Ns) -incvalb = default_rng().uniform(0.0, 0.005 * 180 / np.pi, Nb) -incvals = default_rng().uniform(0.0, 0.005 * 180 / np.pi, Ns) +evalb = np.abs(default_rng().normal(loc=0.0, scale=0.13, size=Nb)) +evals = np.abs(default_rng().normal(loc=0.0, scale=0.13, size=Ns)) +incvalb = default_rng().normal(loc=0.0, scale=1.0, size=Nb) +incvals = default_rng().normal(loc=0.0, scale=1.0, size=Ns) capomvalb = default_rng().uniform(0.0, 360.0, Nb) capomvals = default_rng().uniform(0.0, 360.0, Ns) omegavalb = default_rng().uniform(0.0, 360.0, Nb) From 01597ddd12fd1b0e05f6721475b4db6cc1ae1e8b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 18:02:40 -0400 Subject: [PATCH 178/315] Updated initial conditions --- .../symba_chambers_2013/pl_chambers_2013.in | 924 +++++++++--------- 1 file changed, 462 insertions(+), 462 deletions(-) diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 9a59ef971..1e7b81518 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -11,927 +11,927 @@ 113.5952699440524043 335.70375572759667193 225.29914557362599226 0.0 0.0 0.22000000000000000111 441.93102714484842597 378.52937229654824397 5135.9113502360652523 -100 1.1053539394491336042e-05 0.0019732836328632223935 +100 1.1053539394491336042e-05 0.0015461504183583823242 2.3653347588909066005e-05 -0.43502136638549865344 0.008871327710710443654 0.2428654711893785123 -47.053387744204002274 14.406329603656221394 359.4640728272493675 +0.3408574704771777375 0.033070637332515993856 -1.9453843289198495814 +202.62065666421335663 105.22548960961742637 78.87126004681208258 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -101 1.1053539394491336042e-05 0.0049532834874371645638 +101 1.1053539394491336042e-05 0.0025360931126129128548 2.3653347588909066005e-05 -1.0919789304049842826 0.007501755883620095204 0.2640232657902865654 -284.36193305727704228 252.05844223035273899 112.54677325222675677 +0.5590958505690871716 0.08583989624433346899 -0.8741170670306142032 +48.47846685156916635 175.8996408386432222 221.32287546151425772 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -102 1.1053539394491336042e-05 0.0023155962587743718734 +102 1.1053539394491336042e-05 0.006913473140641587443 2.3653347588909066005e-05 -0.5104860911594045758 0.0058737112041139499102 0.16765186113359145659 -56.483270865883653755 45.517340202780296465 327.1303806412708468 +1.5241136560523089738 0.18239654760331197592 0.1607508935962914387 +136.58884566281579964 231.20294427720486397 287.3988794753212801 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -103 1.1053539394491336042e-05 0.0018825498231748120154 +103 1.1053539394491336042e-05 0.0075661003769676196835 2.3653347588909066005e-05 -0.41501859272911267862 0.0070747862138410277932 0.01720763737658779352 -251.18670508288687415 15.427106537082702076 170.69197512049595389 +1.6679889648820869219 0.079370128317116345196 2.3221490483247109182 +116.561539056550742544 204.98175901582067127 322.81051940631039088 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -104 1.1053539394491336042e-05 0.0033337571583448534337 +104 1.1053539394491336042e-05 0.0063630581436780486472 2.3653347588909066005e-05 -0.7349453317647516304 0.0029963854733957872613 0.10970260540469287114 -98.5494752567603598 130.35014043832788388 337.58056985784941162 +1.4027716046257132643 0.16399328629763007537 1.1315204461456485063 +8.74019575470427057 260.6289225748030276 96.83674362960462645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -105 1.1053539394491336042e-05 0.008795834503153893369 +105 1.1053539394491336042e-05 0.0058009220458947593733 2.3653347588909066005e-05 -1.9390907015788056977 0.0012741523941344956236 0.010911034426664707048 -298.15426483055745166 32.78576113585273788 109.887067932276508486 +1.2788455712467858838 0.18533456034292952741 0.68186312030104589965 +350.87272492154227166 154.27547344580884214 19.236717678667375253 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -106 1.1053539394491336042e-05 0.005408786796956857873 +106 1.1053539394491336042e-05 0.008660716727921125838 2.3653347588909066005e-05 -1.1923971717567629636 0.0022518300946687695892 0.19853678200837179824 -131.9236206868740453 310.75745649185637376 306.98842585095837876 +1.9093032355370187503 0.098142842537277064086 2.1641037267406222355 +246.01465169503958919 201.77181776781199574 203.98097754990340036 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -107 1.1053539394491336042e-05 0.0052900021486682963758 +107 1.1053539394491336042e-05 0.0060132811568352904626 2.3653347588909066005e-05 -1.1662104345115285042 0.00083783270082214873764 0.18629960376756465879 -218.78228483737586885 270.33175151924604052 264.54399230996494907 +1.3256613199142572856 0.07074894244997383119 1.7139622934915241803 +283.09363206889401 287.16517264248420815 240.8092175491846092 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -108 1.1053539394491336042e-05 0.005684376034177863618 +108 1.1053539394491336042e-05 0.0069910563576214435413 2.3653347588909066005e-05 -1.253152353901087368 0.0007069875931491276461 0.23465278556692670264 -342.6335280838893027 254.64894760956880759 77.84259390375734711 +1.5412173083084157454 0.12776909282445714222 1.1360174231116362265 +313.9666515125636579 341.48278821718713516 226.4847958382236186 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -109 1.1053539394491336042e-05 0.008201688668306261918 +109 1.1053539394491336042e-05 0.008266822793656672685 2.3653347588909066005e-05 -1.8081079433968829662 0.0033081220610986085233 0.14466177546828071221 -358.97809256862575467 113.299060597463892464 200.59141181394690534 +1.8224671240723677723 0.18917753633932268831 0.42218056327965103325 +166.23596763765075934 210.4839779991240789 13.957384212762114828 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -110 1.1053539394491336042e-05 0.0016788909722194752916 +110 1.1053539394491336042e-05 0.006746457469115792023 2.3653347588909066005e-05 -0.370120864828466678 0.0082539448889885364685 0.27798177679994046096 -226.15088888509194476 11.39560645939257455 50.8180749666096645 +1.4872941211284214091 0.13127576517426767233 0.1324853145958510281 +84.05982445710027662 332.81599386147166797 1.0944685581848645484 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -111 1.1053539394491336042e-05 0.008770976411317608917 +111 1.1053539394491336042e-05 0.0082493639643422834375 2.3653347588909066005e-05 -1.9336105967949506201 0.0006447945028240875632 0.27438979741522551148 -189.0793641806820915 23.523679500224474737 102.07122936399638036 +1.8186182279190983291 0.016672362292800089328 0.64664359520385428226 +70.924763596142568645 169.29431495915679307 289.1999780421409696 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -112 1.1053539394491336042e-05 0.0042101494072623047774 +112 1.1053539394491336042e-05 0.0072197889886022933974 2.3653347588909066005e-05 -0.92815088380216415054 0.0019177953281208971227 0.22809386141818746574 -151.17030676344273843 234.00560520770883954 212.39233269551132821 +1.5916426906554330678 0.17614519443071968707 1.6586990548226496767 +351.28618211282201855 152.64576116734403399 207.37858962523898754 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -113 1.1053539394491336042e-05 0.003003124820003942183 +113 1.1053539394491336042e-05 0.0049369369099628909872 2.3653347588909066005e-05 -0.66205559143502712427 0.008115467146437006091 0.11626098742369832262 -14.884811678609910501 182.55491943414659772 75.48372622552825817 +1.0883752363641703287 0.23728857051859264526 -0.73837230646325235917 +157.20140148643247358 202.1890325840993512 303.84935191116198894 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -114 1.1053539394491334998e-06 0.0036527873426566770522 +114 1.1053539394491334998e-06 0.003603137716011808236 1.0978911404624207108e-05 -1.7349173774140433935 0.00020007833087037573913 0.18206915720218322385 -43.807694741505500247 252.39602583166703198 345.69306322252327845 +1.7113359334459272709 0.17252011595660135534 0.70794466274093581504 +178.27643590102056237 253.67568000932274686 118.67157800331830231 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -115 1.1053539394491334998e-06 0.00089180183071648115653 +115 1.1053539394491334998e-06 0.0037444524662690442753 1.0978911404624207108e-05 -0.42356763429715504898 0.004867970002843258724 0.18802221307378433335 -359.1003216670866891 267.07026663472817063 46.3972947791199104 +1.7784543810607540415 0.07903522601543884474 -0.9831116262823587082 +161.1369100740436977 180.65311460629285989 182.539021853529988 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -116 1.1053539394491334998e-06 0.0017768447055193344444 +116 1.1053539394491334998e-06 0.003633827920834672617 1.0978911404624207108e-05 -0.8439250543201881616 0.0065735355868386611405 0.107858482537747255026 -135.09881195763611572 328.07167085065367473 195.43605524467710666 +1.7259124649187007616 0.09708420850164076188 -0.65670183726723430073 +69.39873471782885872 190.86848558673287357 8.302234562462324163 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -117 1.1053539394491334998e-06 0.0040561956135777257037 +117 1.1053539394491334998e-06 0.001329029849613716992 1.0978911404624207108e-05 -1.9265190102932396865 0.008517929917508331936 0.22775022460549110281 -9.847303718917377324 359.28530139282679556 242.89167921081153168 +0.63123219747028314064 0.33301433414859532567 1.0743814491973293634 +358.08761310640107922 199.17379372705602236 169.23693068417148311 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -118 1.1053539394491334998e-06 0.0017251483478400507192 +118 1.1053539394491334998e-06 0.0018514326364684498849 1.0978911404624207108e-05 -0.81937150086268784044 0.0047693282188471962033 0.06314641026311473837 -353.36962073333063472 340.7800387007118843 160.31396438022616735 +0.87935112362288769816 0.19002899321716409942 0.031428565836475116924 +219.87421514625864916 22.874313851100001926 232.96258344609623236 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -119 1.1053539394491334998e-06 0.0031796251842390144356 +119 1.1053539394491334998e-06 0.0016445035329517209998 1.0978911404624207108e-05 -1.510185638616323045 0.0059829576513462648032 0.16376405362776627617 -93.49448681695453445 137.43976197972261843 152.51085646144724706 +0.7810686713729361186 0.059484527778062686043 -1.1489020802783456165 +286.4666747065199388 111.29876897677330305 120.10942191740198837 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -120 1.1053539394491334998e-06 0.0017633596265140164348 +120 1.1053539394491334998e-06 0.0011366304024225739696 1.0978911404624207108e-05 -0.83752021995468362014 0.0056773192002094966663 0.15420202644403344094 -112.036109026245028986 159.32677706053513589 199.19243569401677973 +0.53985070902754273003 0.019621469881391989665 -0.46488373938006410935 +47.205604450599871313 304.05572172839578116 40.517661924980437504 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -121 1.1053539394491334998e-06 0.0041042584266954005662 +121 1.1053539394491334998e-06 0.00085048324521620890064 1.0978911404624207108e-05 -1.9493467858693047656 0.0058323444593222717805 0.2450867760360646852 -191.75408862501436147 86.49706522035162948 325.735759579805233 +0.40394307768596887653 0.041794151485500086185 -1.9429709778170833889 +58.18456815299932572 236.36842728706929506 67.212256363082232724 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -122 1.1053539394491334998e-06 0.002546496783735733264 +122 1.1053539394491334998e-06 0.0012275168389763736018 1.0978911404624207108e-05 -1.209476793253150495 0.0007203447518149086546 0.25064267354421421174 -143.86532033167813438 30.894666857493980672 51.922001062180726194 +0.58301786970702118573 0.029905246409433816623 0.21841281526886652253 +337.81989362889663653 137.51598287788544894 10.117542761690124564 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -123 1.1053539394491334998e-06 0.0020506608485301339476 +123 1.1053539394491334998e-06 0.0018136756665501053485 1.0978911404624207108e-05 -0.9739759826012803767 0.0052287353782703750726 0.2664523549465922514 -202.29243581532310259 164.49024899603261929 314.68630304866280767 +0.86141818171168593743 0.10673662047410724385 0.72671627689632689595 +211.0350359229977073 1.4239481147088728363 145.60771901575543552 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -124 1.1053539394491334998e-06 0.0037519206583856621228 +124 1.1053539394491334998e-06 0.0019420720990199057541 1.0978911404624207108e-05 -1.78200145212335892 0.00063416616864802374115 0.14682433373075048921 -157.12147879660923877 181.38988453918568666 60.852713979097373453 +0.9224009822400665026 0.07366252519675375865 0.5005925007110804126 +329.4054277981816199 92.35229633759000478 230.4022935507789498 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -125 1.1053539394491334998e-06 0.0013854882328339217993 +125 1.1053539394491334998e-06 0.004161069866977504577 1.0978911404624207108e-05 -0.6580475088916688531 0.00024980909477879454685 0.24095162491344623845 -289.6244562231350983 1.7289743336360618997 195.26812437954018264 +1.9763297842580522801 0.26074349612071229254 -0.13913685976997289262 +147.13395328101228188 38.13236054380058704 56.212885403166417575 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -126 1.1053539394491334998e-06 0.00074362536737721785264 +126 1.1053539394491334998e-06 0.003412249677518104273 1.0978911404624207108e-05 -0.3531901671588483782 0.00886310773980225966 0.20242474972740423511 -58.75448092520607446 130.30998499277782798 246.92239588072837364 +1.620672299334026345 0.04772576605865852528 -0.67259261126238567563 +280.03974987409031883 61.427836214521768454 66.199969641336409154 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -127 1.1053539394491334998e-06 0.003601317174857207253 +127 1.1053539394491334998e-06 0.0019992475043125020787 1.0978911404624207108e-05 -1.71047125445174375 0.009558224994044423745 0.08649826818433410669 -224.08522313291766181 239.19436986070064677 185.39235361492612242 +0.9495568484040879387 0.03633047379318007225 -0.9333650403912433502 +201.72179896001696875 6.0499386044710457 255.19704507235451274 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -128 1.1053539394491334998e-06 0.0032145494492909748175 +128 1.1053539394491334998e-06 0.0015835208107838788018 1.0978911404624207108e-05 -1.5267731671659572346 0.00445012496768810821 0.25388797399626356066 -99.47453052283421471 328.10504733577448633 71.666792360401558426 +0.75210449292885139805 0.20208588393581308762 -0.32356025147650785412 +168.46438517119173639 354.38940120612028295 42.932994902004701032 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -129 1.1053539394491334998e-06 0.0009640510505488915387 +129 1.1053539394491334998e-06 0.0026040992516459701312 1.0978911404624207108e-05 -0.45788291608979603264 0.0028658387814975440876 0.068097521749502121224 -266.1139250414896651 5.798860186281178386 194.73524031129315404 +1.2368354958505816121 0.05472455534143873257 0.3292292606781900277 +122.895918110402618595 90.17265069787075049 148.94125462646059077 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -130 1.1053539394491334998e-06 0.0008900121157433224059 +130 1.1053539394491334998e-06 0.0039179975287651961917 1.0978911404624207108e-05 -0.42271759641750861203 0.007949339946716987501 0.11834633277417928865 -192.72747304348143871 21.172433591435407152 265.26646498803154373 +1.8608808451400999928 0.13390537781965355935 0.13624514777263913023 +282.60450624226194805 316.2615447751669535 333.83910115570051858 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -131 1.1053539394491334998e-06 0.0025890224429809987327 +131 1.1053539394491334998e-06 0.0012271474522682037647 1.0978911404624207108e-05 -1.229674658140883059 0.005708333074055413174 0.2537009884082937483 -84.89784553502946096 328.01507807176108145 197.90018547308341113 +0.58284242685780141 0.097435309705656322765 -0.3386348393304988158 +56.274075743635243896 332.60972838905860272 270.3524667792420928 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -132 1.1053539394491334998e-06 0.0006868871638604952082 +132 1.1053539394491334998e-06 0.004004870476520079749 1.0978911404624207108e-05 -0.32624195309368902995 0.0040737651923966463827 0.20518013558494771487 -40.687261630166496218 297.20703778701795272 132.16533129372302824 +1.9021417707152288301 0.024222809404677653894 -0.9614808581350420269 +170.40309010105522702 290.6819137629074703 352.73423380011092831 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -133 1.1053539394491334998e-06 0.0025167424604235374569 +133 1.1053539394491334998e-06 0.0033162091193391575378 1.0978911404624207108e-05 -1.1953447653727702349 0.0050929123911651816292 0.051295280237216418773 -261.90052217603084728 326.05473790982989613 273.04880230173228028 +1.5750571518614624456 0.4680866391512292779 -1.5382511040352000453 +210.5267618034343684 301.22626486707730464 270.11642990353152527 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -134 1.1053539394491334998e-06 0.002718448557027841699 +134 1.1053539394491334998e-06 0.0039811167280778447966 1.0978911404624207108e-05 -1.2911465132715813642 0.009116659310319434259 0.24192801960141538387 -292.35261070692547491 212.727414902726224 184.18172649375861738 +1.890859758628211873 0.0184765429415361844 -0.5239208074828266559 +216.78922065874436953 256.25273285658602163 117.77105341497980362 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -135 1.1053539394491334998e-06 0.0014047063578224012843 +135 1.1053539394491334998e-06 0.0036347692823004885955 1.0978911404624207108e-05 -0.6671752942993949276 0.00090944511545796864315 0.14381097569832959615 -84.15901351231249805 69.539283542765673474 249.48480284988576727 +1.7263595712548402972 0.0070755739234528332304 -0.35597868999073312146 +209.50875535650939696 249.48760516711772084 58.25116765300475663 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -136 1.1053539394491334998e-06 0.0024215293653249917721 +136 1.1053539394491334998e-06 0.0031279229240370295723 1.0978911404624207108e-05 -1.150122627386576335 0.0037686922905942367434 0.2257879156411696786 -151.94236260554458795 163.72081980721665673 204.19657951232048276 +1.4856292817136056428 0.02827793516017371167 -1.1695993959952437624 +83.851060695237606524 337.85532131590940708 35.38058552302099713 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -137 1.1053539394491334998e-06 0.0038493297212721929037 +137 1.1053539394491334998e-06 0.0022143194543191664736 1.0978911404624207108e-05 -1.8282665806584759149 0.0025514497599312857719 0.09661566633177491592 -100.06540261348762044 161.79985067548332722 160.90623759534580017 +1.0517068036187013913 0.12504141694694215214 1.0986835238636969425 +357.59351475740095339 265.14244170514302823 295.83425557466119926 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -138 1.1053539394491334998e-06 0.0017992463546487112759 +138 1.1053539394491334998e-06 0.0028375458219479651553 1.0978911404624207108e-05 -0.8545648772037786056 0.002520783186835252529 0.18861281822029479782 -282.88059214975010036 250.61615678976752974 227.23317901910181149 +1.3477126079082673016 0.020241368203925858005 0.73582305509545364863 +128.01538745739060232 164.13684097395810113 246.74448878319807932 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -139 1.1053539394491334998e-06 0.0023840119013398586007 +139 1.1053539394491334998e-06 0.0028590085439002299716 1.0978911404624207108e-05 -1.1323034405250238521 0.004550384291604896679 0.08933500072214524412 -259.5217381936978427 107.427667302542161565 67.06846118785534827 +1.3579064806384844033 0.053934013953949935805 -1.1567727028831349401 +270.8616704031354061 16.174162339537577537 26.061519427656314463 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -140 1.1053539394491334998e-06 0.001300233073802558847 +140 1.1053539394491334998e-06 0.0015608838331539529205 1.0978911404624207108e-05 -0.61755496359880934776 0.005141423577990692634 0.063873577770286432687 -99.099878984640724866 70.09839489275532287 12.628756191463722303 +0.7413528990970221777 0.092454437546430692785 0.49107448374198248153 +239.59555490584881454 175.5556016851099912 184.31816918834064722 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -141 1.1053539394491334998e-06 0.004176212444251702483 +141 1.1053539394491334998e-06 0.0022632805092637347122 1.0978911404624207108e-05 -1.9835218592373566882 0.008819547954994353192 0.101545882559391495437 -302.75069703150052192 3.7754157988393099998 102.40548614838355945 +1.0749612055511379438 0.18613491656550704145 0.6486970624726356993 +325.1747302070801311 283.7987041568865152 237.12586404026308173 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -142 1.1053539394491334998e-06 0.0040472894609041229494 +142 1.1053539394491334998e-06 0.0019322430435475023308 1.0978911404624207108e-05 -1.9222889696174805252 0.00060208496498009855813 0.07907316286788031168 -42.255230485815992836 155.26971558992292444 348.35909755454105152 +0.9177326023035994318 0.10187394966886953451 0.42422986693301778516 +18.083119108230960137 200.15320295324826816 94.90922228290227736 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -143 1.1053539394491334998e-06 0.0030719866546547494147 +143 1.1053539394491334998e-06 0.0017397961850092495534 1.0978911404624207108e-05 -1.4590619519800192005 0.0038915388732227674737 0.14542588965451863636 -234.61914623526152468 11.934830769972979425 44.264103793434699696 +0.82632859550370563184 0.071374104222150014376 1.6847023844566795248 +244.48310851178248981 317.72142892656648883 197.34750351321378048 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -144 1.1053539394491334998e-06 0.0012175446573625591349 +144 1.1053539394491334998e-06 0.0030109859111638281656 1.0978911404624207108e-05 -0.57828151098980318245 0.0016792119694356878734 0.15682369201316798124 -303.5201065050316629 132.93196451143023751 289.47558148711817694 +1.4300892141801218038 0.06013390964571298236 0.95426051220218155446 +224.77981457517233821 166.77598990812870738 253.32568955631231233 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -145 1.1053539394491334998e-06 0.0031318013167785168476 +145 1.1053539394491334998e-06 0.0039069281295739031467 1.0978911404624207108e-05 -1.4874713519828124397 0.0068056837746274636072 0.084531532324596786454 -291.33041173781805355 97.89991179535221022 1.1640848187574093231 +1.8556233551159093675 0.041587544415182919888 -1.1052173470095545404 +104.85933523981042015 79.223786507295827164 150.83753568870520212 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -146 1.1053539394491334998e-06 0.0036945444598705577094 +146 1.1053539394491334998e-06 0.0028373114200539287132 1.0978911404624207108e-05 -1.7547502177874956253 0.008973421102026984605 0.022342357476332671412 -161.21935496824679035 46.48295234294366196 354.98733832208051808 +1.3476012770583944977 0.0141079817524343512775 0.33273864923752016765 +275.64587225718310037 321.0433247249368378 284.9705506063763778 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -147 1.1053539394491334998e-06 0.0021002370576005151777 +147 1.1053539394491334998e-06 0.0032936029453222368515 1.0978911404624207108e-05 -0.9975225563692349251 0.009771280018679846108 0.12219230961078575426 -333.60765507463571566 9.382124612391958607 211.20858230448385484 +1.5643201884251303202 0.09233460292837064598 -0.19569933462664845791 +169.71850615050692568 254.29363681833123678 86.45223733921757514 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -148 1.1053539394491334998e-06 0.0032282651546226580192 +148 1.1053539394491334998e-06 0.0016816361723253655007 1.0978911404624207108e-05 -1.5332875391485651928 0.0061277148911738060083 0.162087752352507386 -71.49825600297299388 185.1074470931537519 142.98008580344642837 +0.79870508304308018843 0.16293339698941008975 -0.9471684403628577442 +77.54491701450814389 187.76746197311504716 87.42929180132320255 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -149 1.1053539394491334998e-06 0.0030007231564696537356 +149 1.1053539394491334998e-06 0.0019522235012067042261 1.0978911404624207108e-05 -1.4252148457078221977 0.003484166876615070376 0.03952017670429157359 -71.06809480244361055 74.34280158497745106 246.39989784079767787 +0.92722246304551259044 0.1946437318320309029 0.5913718503177081143 +233.67881944342650513 129.58959412826339985 173.42163428111530266 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -150 1.1053539394491334998e-06 0.004000330410582023619 +150 1.1053539394491334998e-06 0.0034631135937389434378 1.0978911404624207108e-05 -1.8999854340463631086 0.0063300277274132279656 0.1810290820335017925 -207.13669770648766644 273.7308950242947958 106.8313349572089237 +1.6448304787890299927 0.07080211110064134339 -0.16804535084108726539 +104.83842752774481255 93.06725981433478978 139.09453360213626638 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -151 1.1053539394491334998e-06 0.0008219414277187112617 +151 1.1053539394491334998e-06 0.0020480352266326181632 1.0978911404624207108e-05 -0.39038693808234919969 0.0014200211269435292997 0.082353904497625682324 -165.3765528532764506 105.87542012339059738 110.53584539259624364 +0.9727289247714079323 0.039222042708152236867 -1.0198922820043097026 +255.26737006742024505 161.11728195901361005 142.57826352792659463 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -152 1.1053539394491334998e-06 0.0029892270020516948498 +152 1.1053539394491334998e-06 0.00416504558445412392 1.0978911404624207108e-05 -1.4197546652477557316 0.0026059421373739975747 0.034199947514791190217 -136.9638104418808382 55.373014430592007784 114.29540645922348574 +1.9782180796037263093 0.07046696142247479977 0.43640796065865716802 +186.47490165882413748 136.37748143663282008 198.61860296562298345 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -153 1.1053539394491334998e-06 0.00087723248992101478616 +153 1.1053539394491334998e-06 0.0014097819459136979314 1.0978911404624207108e-05 -0.41664782206819067634 0.004669057268832211595 0.15100116113820299946 -188.41240946737988793 160.34857150599080455 125.306733314827027925 +0.6695859810309641169 0.23162259779089477973 -0.7336565136358753625 +322.69843659571847638 36.623221740285572423 83.17277039944451644 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -154 1.1053539394491334998e-06 0.0013566250665907910276 +154 1.1053539394491334998e-06 0.0014796951777769435992 1.0978911404624207108e-05 -0.64433874241144495354 0.0064172691562580279692 0.047530792330002284707 -10.035403327137842666 161.51304557993557864 317.89307408363032437 +0.7027917686918754292 0.07707021825505425139 -0.43738358489223622128 +313.25986597960348945 198.99285071656103696 117.22066066083039004 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -155 1.1053539394491334998e-06 0.0030994444737744856066 +155 1.1053539394491334998e-06 0.00071568235606203755964 1.0978911404624207108e-05 -1.4721032388297692339 0.0017141731539689786679 0.12918905093485025248 -26.463018561125821293 337.6637723298328524 318.39654442323791272 +0.3399184348184913218 0.40570980479945184527 -0.45596089285675273084 +169.89135804664692841 146.95615005868651792 107.09438513159021511 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -156 1.1053539394491334998e-06 0.0028988643042893069184 +156 1.1053539394491334998e-06 0.00097178507731553673936 1.0978911404624207108e-05 -1.3768362580393143091 0.00023440748806355493736 0.1044829004452739879 -252.18793438878694246 180.90190029902129254 161.6606630148949364 +0.46155624721371502073 0.11487451837935816479 0.23717381260447478741 +354.6834957926035372 182.7049785095020411 262.33859361122159726 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -157 1.1053539394491334998e-06 0.0019206909272584009254 +157 1.1053539394491334998e-06 0.0025852533878527895926 1.0978911404624207108e-05 -0.9122458423540609207 0.0049592731400885312065 0.20926051620050717395 -294.94410340313640972 269.94893935471509394 319.98202428955164578 +1.2278845185502202941 0.16551060166892003767 -1.6426474037432137187 +163.78959504813784065 14.455581307667655366 125.19243080508162791 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -158 1.1053539394491334998e-06 0.0038075411610063359687 +158 1.1053539394491334998e-06 0.0013421642805498459896 1.0978911404624207108e-05 -1.8084188061834307604 0.0012626660273787804114 0.28465144236089839902 -105.46241568920551401 24.58858960475782851 65.73162303518296312 +0.6374704890366795773 0.20966390696384992753 0.96821850019353039585 +128.03095745302479713 131.70263651729513299 82.77283080834268958 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -159 1.1053539394491334998e-06 0.004117155794312402329 +159 1.1053539394491334998e-06 0.0036960012044613396307 1.0978911404624207108e-05 -1.9554724825230167529 0.0034418443069804895325 0.13102185986762712733 -94.35014503292603649 110.46828322181951876 276.996256039420075 +1.7554421090113530024 0.006936921817132417692 -0.10507057771126256107 +120.20823629105090902 268.98220185163302176 0.9783865182988593645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -160 1.1053539394491334998e-06 0.0019403528202076692426 +160 1.1053539394491334998e-06 0.003994786415843535782 1.0978911404624207108e-05 -0.92158439851696383194 0.00022971156278930982106 0.16848765384574010406 -126.61505604372253231 306.85350067144452169 299.44586508883691067 +1.8973522742399400176 0.009265339060740920146 -1.9234801622216430861 +325.57420852425093472 115.78623904836624092 69.81298143596565353 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -161 1.1053539394491334998e-06 0.0040209092766382907977 +161 1.1053539394491334998e-06 0.0040119353635669510593 1.0978911404624207108e-05 -1.9097595131205988839 0.00024753880415491426228 0.21082422627069050125 -156.77144867692504704 9.081153690541672319 90.49939922041451723 +1.9054972891610877372 0.2057908843466856319 -0.44582455876017351715 +316.51992311017295378 76.19557671517526387 306.68760678383847562 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -162 1.1053539394491334998e-06 0.00096180309920170007445 +162 1.1053539394491334998e-06 0.003817599159073077862 1.0978911404624207108e-05 -0.456815235579003609 0.0025317416907227742288 0.28191449166332527287 -18.282743351630475814 355.3842465840008913 280.16633666937212865 +1.8131959240364772246 0.038389633304362756616 -0.51995909907717974274 +10.4153005449348246 356.17672297846132778 33.314218300546144746 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -163 1.1053539394491334998e-06 0.002122153133095175955 +163 1.1053539394491334998e-06 0.0011138439509102615346 1.0978911404624207108e-05 -1.0079317525949180734 0.004809801533944010367 0.1900896076814461988 -205.26994681303469292 100.58017958508672507 42.89087016014590148 +0.52902812151015354836 0.17346273414379861921 2.0400001906145304176 +328.6095098907458123 168.58689044183410033 161.29334174715575045 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -164 1.1053539394491334998e-06 0.0023312340247313426657 +164 1.1053539394491334998e-06 0.0030953313400110498847 1.0978911404624207108e-05 -1.1072362119454008944 0.0030986946461798183482 0.20055050759193249199 -231.86041764701607804 91.10874317664705302 329.58731874995561384 +1.4701496766394712701 0.110747368172590412994 -1.0714422048443947855 +236.6207355221217199 154.79786852769112215 326.96626962694404028 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -165 1.1053539394491334998e-06 0.0022515874734255323241 +165 1.1053539394491334998e-06 0.0014870924763380849233 1.0978911404624207108e-05 -1.0694075148575898915 0.0053145528628384388833 0.087790484275962490934 -305.47485872151992226 141.59503594270796611 121.08227158198768336 +0.70630516835513368346 0.05197959889064945188 0.26182985864609720217 +141.54386130529087495 192.93088607850509675 0.46257655184585466657 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -166 1.1053539394491334998e-06 0.0019699499396780925536 +166 1.1053539394491334998e-06 0.0026060705004434367802 1.0978911404624207108e-05 -0.9356417613124916599 0.0087428525792921547855 0.08284858348286514018 -39.571166312742903415 205.09583180126628577 42.104729643652149207 +1.237771754513656175 0.09985090848233675598 -0.673493464733506797 +159.8653376323906059 167.67939398828988828 67.79515481250830078 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -167 1.1053539394491334998e-06 0.0019785645999436980013 +167 1.1053539394491334998e-06 0.0032876807428519572333 1.0978911404624207108e-05 -0.93973335559195692035 0.00133898735055353762 0.05994090657484707485 -83.41565118670250456 313.80085550767597624 332.62658844379012635 +1.5615073961614613918 0.08588784473715820045 1.2619368121351299816 +108.4096329228115394 340.3401960769302832 63.319076699854733192 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -168 1.1053539394491334998e-06 0.0035386251135918549663 +168 1.1053539394491334998e-06 0.0019942676122301436384 1.0978911404624207108e-05 -1.6806952132228940577 0.002890432331680153899 0.2698004391552467629 -36.12935301900223095 101.466623129444300844 53.508308001059681658 +0.94719161317387423615 0.0025784399633685993816 -1.4181104206233869913 +307.07053178506879476 152.09143191188155697 133.06819959682104582 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -169 1.1053539394491334998e-06 0.0021287013718607905702 +169 1.1053539394491334998e-06 0.002882870214797733859 1.0978911404624207108e-05 -1.0110418852580635996 0.007091557888296801636 0.10153448877900603242 -70.798457257360553285 292.4212993280625028 291.1287891686035323 +1.369239751264664795 0.10918743269723539535 -0.2883961803729450657 +170.9289348637493049 153.83767062101799183 186.2272754424308232 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -170 1.1053539394491334998e-06 0.0032668648180819945306 +170 1.1053539394491334998e-06 0.0029537440839056139165 1.0978911404624207108e-05 -1.5516207243619237754 0.0078043812253454974623 0.05668535646587997967 -65.19907689277522422 316.59067409784267966 270.6922706037328794 +1.4029018004302207245 0.24809775240944806352 1.471867721483669289 +305.25948508988943786 27.311469106159059095 169.23129972274861643 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -171 1.1053539394491334998e-06 0.003102143981330541211 +171 1.1053539394491334998e-06 0.0020155745158349693355 1.0978911404624207108e-05 -1.4733853891796593327 0.0037746076474258817048 0.16246712315626229972 -37.830817219973162935 329.85635612685894102 347.86987877872894614 +0.9573114788696452937 0.28030529796387287922 -0.5616708523061261227 +167.94345738435089288 155.77265709656450099 8.791339765064240197 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -172 1.1053539394491334998e-06 0.00259100911183583197 +172 1.1053539394491334998e-06 0.0041758312566283607958 1.0978911404624207108e-05 -1.2306182406700840737 0.008398815671420655632 0.1480229185552056903 -234.78934703964597475 198.16493559018448423 146.95829922261481215 +1.9833408114593851224 0.07838747704316120779 1.2287329234993096261 +66.3466683143381033 353.2468506381413249 172.7150842704386946 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -173 1.1053539394491334998e-06 0.0020588134173982624879 +173 1.1053539394491334998e-06 0.0016145006754889844669 1.0978911404624207108e-05 -0.977848103278744718 0.0018711011417652501608 0.16522119436359616884 -163.18086582157980047 78.914219514410760326 142.8192833764249201 +0.7668186004267527611 0.06755032943396471756 -1.5258677315157571641 +221.3574836052374053 209.59221636096248176 134.89004930578829544 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -174 1.1053539394491334998e-06 0.0020021126413718732487 +174 1.1053539394491334998e-06 0.0006639739583088267312 1.0978911404624207108e-05 -0.95091766566681990014 0.00336489172666913465 0.21901780294733363963 -87.86622797061994561 136.34502365604896568 252.05920241899733014 +0.31535916284208420635 0.029524443460272015854 -0.63730191247031331425 +121.825026691140237745 339.393255789165039 121.73367286454929115 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -175 1.1053539394491334998e-06 0.0036339237372726616187 +175 1.1053539394491334998e-06 0.0011058379721728341227 1.0978911404624207108e-05 -1.7259579736186920762 0.0041869527118458651008 0.028109572984316551214 -121.30605721974019673 61.744362273432074062 174.09740409693390006 +0.525225624859837148 0.06904850791731366455 -0.18949769737094498967 +76.674248826470702056 342.70754527149875912 108.552867711473822965 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -176 1.1053539394491334998e-06 0.002514072361899024204 +176 1.1053539394491334998e-06 0.003210376983246928588 1.0978911404624207108e-05 -1.1940765830519739499 0.0034846618176374954783 0.12742159407739631072 -24.79333111146843649 34.64910053343410823 315.1945913442744427 +1.5247914246861935528 0.09476521090361228472 -0.4305633183563527533 +314.074301132280425 308.57041820537131116 84.736264096821372505 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -177 1.1053539394491334998e-06 0.0010503084451964543236 +177 1.1053539394491334998e-06 0.0025248877344846715142 1.0978911404624207108e-05 -0.49885148033029669268 0.007967598671801134902 0.1330389785862050589 -294.02828356145346334 86.3657593912998891 174.42336676749377489 +1.1992134213296712364 0.035317570222131118574 0.7628052528012111422 +219.29855223302547529 341.31804878656163282 348.61242694200745973 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -178 1.1053539394491334998e-06 0.0040359345235889361597 +178 1.1053539394491334998e-06 0.0027949004582081944395 1.0978911404624207108e-05 -1.9168958612266600028 0.007056409288281554476 0.14438008496979934381 -151.72131661259777502 349.15938511832013091 248.59211550430140392 +1.3274578885178796028 0.21859953092315079215 0.320957243800680192 +115.253702801338178574 302.98458840238851053 113.343208273104565365 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -179 1.1053539394491334998e-06 0.0036523549016930081307 +179 1.1053539394491334998e-06 0.0019314272250903238583 1.0978911404624207108e-05 -1.7347119864968625347 0.0049406754123896539505 0.10886626440022140194 -160.03515451729236929 202.10728820239182824 341.81267540223694823 +0.917345123514006211 0.05859539720813596725 -0.392921176208752998 +159.47715978351993726 174.01546470352118945 335.47791240572797733 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -180 1.1053539394491334998e-06 0.002554490662880614255 +180 1.1053539394491334998e-06 0.0030009798778867529504 1.0978911404624207108e-05 -1.2132735431157677386 0.009012693132543448879 0.20287253985622424879 -137.60732509715026595 226.35874211489309005 119.96202040282430801 +1.4253367773742180447 0.000531564086534132502 -0.1538460783903009832 +88.9098830128897788 189.25312690573827012 117.5922309345887129 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -181 1.1053539394491334998e-06 0.0032644413488825219037 +181 1.1053539394491334998e-06 0.003942126268477348544 1.0978911404624207108e-05 -1.5504696803964859164 0.0015882651550474990911 0.2629421468984927679 -19.853622846005816172 282.67147248542340776 179.27177236000667904 +1.8723409620028756972 0.12299549814693115646 1.0491317671893014563 +163.9311289741089297 138.6046095249983523 109.23280332760865008 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -182 1.1053539394491334998e-06 0.002496578643751504793 +182 1.1053539394491334998e-06 0.0039098695896303731543 1.0978911404624207108e-05 -1.1857678169611340913 0.0035368608498801048373 0.26534779996152652037 -127.40771816421603546 68.26246775293370206 262.0444051742314855 +1.8570204225299755674 0.06716465698443395416 -1.3149449112218682956 +152.38549754439128492 132.96884769774723623 16.962081958112626978 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -183 1.1053539394491334998e-06 0.0011739045459812716557 +183 1.1053539394491334998e-06 0.0031229230239986469264 1.0978911404624207108e-05 -0.5575543291187078365 0.004031317733538368475 0.22041477683734150839 -27.303325911130052361 310.86366363031265792 306.69192190383233765 +1.4832545435621056207 0.1085148894337718134 -1.9141817954105773136 +68.16301760168497026 276.8171042261188859 49.994750228332200948 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -184 1.1053539394491334998e-06 0.0023048705969360054121 +184 1.1053539394491334998e-06 0.00081721522282645264065 1.0978911404624207108e-05 -1.0947147140535840038 0.0025038964607662496202 0.19917514015511508796 -148.66531783159700808 14.196492884164598536 60.54002871566093802 +0.38814219339079669702 0.17234637660136203907 -0.4562743658906511235 +169.93583976189941609 296.5950062644983518 56.72725900148243028 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -185 1.1053539394491334998e-06 0.0030873533281919436506 +185 1.1053539394491334998e-06 0.0017762514198957042457 1.0978911404624207108e-05 -1.4663604630762980818 0.0049515464039623733467 0.069258198109803090214 -34.477975374555292376 320.58517167090400335 124.00245660596641528 +0.8436432690856123795 0.20575243354431554943 -1.8817385630593237433 +300.50243358157462126 330.94730641487603862 268.21749858047797943 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -186 1.1053539394491334998e-06 0.0030080188752002284319 +186 1.1053539394491334998e-06 0.0010805702192394113826 1.0978911404624207108e-05 -1.4286799993067156311 0.008677599963277099829 0.23911557876878630768 -116.685633289501197396 326.47262446684203496 244.42996381946051088 +0.5132245255512426496 0.11174442994477924718 -0.2228803637432475171 +294.36350605264971136 129.27768307376197754 12.111622360957854383 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -187 1.1053539394491334998e-06 0.0013260390165021340508 +187 1.1053539394491334998e-06 0.0029247147938769755225 1.0978911404624207108e-05 -0.62981167997186870977 0.006466129287410752463 0.24799316121864192763 -264.7147300811375885 137.61164517995140955 157.30801824277600076 +1.3891141322743056907 0.21057431228455938954 0.20449278303411849711 +287.08243330389416315 98.26984841406665794 296.02510818269621495 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -188 1.1053539394491334998e-06 0.004047724831717211548 +188 1.1053539394491334998e-06 0.00356444049818483374 1.0978911404624207108e-05 -1.9224957520875207706 0.0096351031122967664005 0.17250170868693590065 -329.24319752439635067 277.10306620588750093 189.59474863577838732 +1.6929564140905064562 0.33946680825649450108 -0.81549196668223478124 +156.65500901096436337 255.47469290732212244 264.87468372294227947 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -189 1.1053539394491334998e-06 0.001989303986442867738 +189 1.1053539394491334998e-06 0.0024639627479837569986 1.0978911404624207108e-05 -0.94483410373642029434 0.0012534169895359814021 0.1346478218840848895 -260.06939765288524313 233.9557554846379901 58.524858500524096883 +1.1702766648520064319 0.095533956530102201454 -0.56855787135811841626 +164.14221442959131991 43.687234168585433736 327.22722705425945833 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -190 1.1053539394491334998e-06 0.003852114181472425877 +190 1.1053539394491334998e-06 0.0032573952333840586126 1.0978911404624207108e-05 -1.8295890798720733095 0.0047800505093452769906 0.24608505314649714579 -340.24309099459532035 152.54064815014820056 165.96862877264817371 +1.5471230776313056321 0.11650354498733481168 0.70191113735239396565 +206.13239796851379992 107.34904694021790306 328.97993323307110813 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -191 1.1053539394491334998e-06 0.0024016254478726418928 +191 1.1053539394491334998e-06 0.0030009717728063268295 1.0978911404624207108e-05 -1.1406691199613174792 0.00970232366006403002 0.16778709060778534967 -70.93612678151409057 81.322750075994733265 125.426196970942498865 +1.4253329278085145049 0.1501597220830941104 0.39652973909692856846 +40.247443601007283576 319.6452516167091744 134.10739537653478237 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -192 1.1053539394491334998e-06 0.0038197051182224726972 +192 1.1053539394491334998e-06 0.0013422611377651077112 1.0978911404624207108e-05 -1.8141961643411186333 0.0050739626045544425348 0.23340728752776873645 -99.443249722025811366 307.69429006859348874 124.14483599341727427 +0.63751649206125293734 0.075806715266713647905 0.2804420427983563835 +218.64915386173939282 221.05546802701758224 342.40292961773849356 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -193 1.1053539394491334998e-06 0.0013984785629403686772 +193 1.1053539394491334998e-06 0.0008859869329946546352 1.0978911404624207108e-05 -0.6642173587421745795 0.009550705541536445506 0.12710458773747337902 -162.09339280487338897 165.61923957210163394 212.05571984302483202 +0.42080580718839571963 0.0119983282484818626346 -0.3161299048427956837 +149.18800802604991418 60.5909845801289606 208.51819419275437895 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -194 1.1053539394491334998e-06 0.0013434121954895413534 +194 1.1053539394491334998e-06 0.0017584741051124559682 1.0978911404624207108e-05 -0.63806319512967579755 0.0033639670664944187374 0.12550779218906182866 -194.90737411681726599 104.80186676573379145 335.22805516969197015 +0.8351998067517811819 0.011445746095452903959 0.6209122535088795747 +340.73475654779997512 127.744962085477155256 235.50810308362565593 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -195 1.1053539394491334998e-06 0.00097030750950317884436 +195 1.1053539394491334998e-06 0.0035941240418474881858 1.0978911404624207108e-05 -0.46085446585238809547 0.0017726026583020893478 0.20642461236349177178 -324.51443733995040475 250.52740678430171783 138.84059354440069001 +1.707054824671975668 0.19976014603758748822 -0.40427351713021869584 +173.0405374702452832 359.9823243093545102 112.37341495235216371 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -196 1.1053539394491334998e-06 0.003539374219345327824 +196 1.1053539394491334998e-06 0.0010295966364755685371 1.0978911404624207108e-05 -1.6810510063384811463 0.005599949985720790481 0.27399860974021150728 -122.4861974724007041 109.18863577631832129 242.64119100582422561 +0.48901425919017793564 0.21632130543458943928 0.57355417082153137276 +281.58315004540042992 246.10691711085428324 320.5755538814161696 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -197 1.1053539394491334998e-06 0.0014967034581510140879 +197 1.1053539394491334998e-06 0.0029210208351740743726 1.0978911404624207108e-05 -0.7108699726530849361 0.0056559465681537690607 0.17751933040428050092 -5.0883921390393593853 311.8945342963957046 136.0008735092846166 +1.3873596602659648003 0.1617268262422353331 -0.6504742503246054852 +221.1529377647605088 22.37617605678385857 115.29188260119302356 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -198 1.1053539394491334998e-06 0.00088559123726717096815 +198 1.1053539394491334998e-06 0.0030153034986417409185 1.0978911404624207108e-05 -0.42061786868298012276 0.0036435145280732461961 0.14692939571045285363 -251.85508975176313129 162.39345545595963927 156.99392328849333467 +1.4321398831190061962 0.0746173051279102606 -0.60194226607724632405 +148.59323511314542543 92.511183554749820246 111.27779362238067051 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -199 1.1053539394491334998e-06 0.003314904658588292115 +199 1.1053539394491334998e-06 0.0018280467594351772708 1.0978911404624207108e-05 -1.5744375889325170625 0.0067655761793409784077 0.24699533456281858035 -80.57915771897299351 50.272637768379993872 86.94939474128953805 +0.8682438346829342013 0.092804786424910273857 1.1047880555090123789 +346.73279504462232126 269.01768225172332905 46.60263258409608511 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -200 1.1053539394491334998e-06 0.0018747184461231479178 +200 1.1053539394491334998e-06 0.001895079425048801046 1.0978911404624207108e-05 -0.8904108848483274219 0.0034326694835287762178 0.055467591112720752988 -49.028681012155956864 110.95560793968778057 117.609844148239247374 +0.90008147687725870156 0.1953041133905608906 -0.7071950533141724282 +26.887827460724263773 114.32513513835675667 168.42698960989307011 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -201 1.1053539394491334998e-06 0.0017894099511385026191 +201 1.1053539394491334998e-06 0.0030867621284638698105 1.0978911404624207108e-05 -0.8498930072643953171 0.00223057304887631664 0.0891226947299802591 -146.60042304094312726 304.5489249640868934 199.75791387394090748 +1.4660796685526804595 0.0085739749330765221286 0.27371637337949644708 +298.58078564598787352 320.5137290947542965 278.35072101533080513 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -202 1.1053539394491334998e-06 0.0019028235160252391051 +202 1.1053539394491334998e-06 0.0030785318205770588764 1.0978911404624207108e-05 -0.90375958806933431866 0.0060950113486868918652 0.08314131138975405788 -232.95366797868115327 298.34755441183693847 171.86518971921520915 +1.4621706251743404881 0.09314105154763369088 -0.19982872935061440911 +341.27447224579543672 42.872713102683988495 295.32780974335366864 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -203 1.1053539394491334998e-06 0.000818434016452201313 +203 1.1053539394491334998e-06 0.0040235828068203239454 1.0978911404624207108e-05 -0.38872106810822137923 0.0037761494322913202737 0.08994186965443598525 -67.27295741146468799 78.216677088941693796 257.33635907095367656 +1.9110293253315875361 0.0905593708657903701 0.83879090916646836806 +85.700950515521100215 61.811955605255384683 349.71073910239721272 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -204 1.1053539394491334998e-06 0.0037411273709527709603 +204 1.1053539394491334998e-06 0.0014830691354881705547 1.0978911404624207108e-05 -1.77687510334633747 0.0028970237975022494412 0.123293574520790094606 -36.074664757468788423 152.41742378959796156 13.839837766773047889 +0.70439425394895871513 0.11249602781023473885 0.49617827668886205217 +177.26744710934571003 249.86834382747201744 314.7773631948811044 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -205 1.1053539394491334998e-06 0.00377827688950105205 +205 1.1053539394491334998e-06 0.0019428111400564144058 1.0978911404624207108e-05 -1.7945195319007527512 0.0027417575511466418282 0.098334795398838964475 -305.67908368262527574 8.878845059270208395 232.9892076242130372 +0.92275199504661231664 0.059354095297856256097 1.2547767808068381878 +101.635886213889591545 165.3545513447238875 159.37639449250872303 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -206 1.1053539394491334998e-06 0.0041782238019537728463 +206 1.1053539394491334998e-06 0.0038120392872392591633 1.0978911404624207108e-05 -1.9844771679104806772 0.004965187588850221434 0.093920890331302048226 -130.35743042250172152 52.769936552323152057 253.04922437282974101 +1.8105552232904897902 0.12853096418984419347 -0.24818631836184507078 +292.97206108073658015 311.99808573320262894 286.06233119383887242 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -207 1.1053539394491334998e-06 0.0024538005361381455215 +207 1.1053539394491334998e-06 0.0024300313022697688199 1.0978911404624207108e-05 -1.1654500499220796783 0.00041897439756099054756 0.17152502517714784958 -20.646147745321581368 58.4518180109311416 187.95900489185814308 +1.154160682921570702 0.08725966411365988773 -1.8006975964365456999 +233.04812516155811863 52.814429252264126546 321.0861944621534576 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -208 1.1053539394491334998e-06 0.0025589971288881362916 +208 1.1053539394491334998e-06 0.0015982765235963521285 1.0978911404624207108e-05 -1.2154139212582000251 0.0053263146453688004628 0.086766321772624596664 -71.49498095535852826 199.55697167047924268 82.02938490687228068 +0.75911282387534229077 0.51659451481006268825 0.42252783276096317344 +314.12072261030692744 86.16958179084514313 171.75042779325343645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -209 1.1053539394491334998e-06 0.0026927514450717691936 +209 1.1053539394491334998e-06 0.002987756118270597301 1.0978911404624207108e-05 -1.2789414868356543398 0.004241403885455575541 0.18344579890812029443 -258.7760529923453987 316.01299259592332191 353.57286365715992815 +1.4190560585147049544 0.13833450707790773127 3.0860107820975382076 +11.696961996630040659 56.084307131607140207 217.04746738497121328 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -210 1.1053539394491334998e-06 0.0026095417911298547581 +210 1.1053539394491334998e-06 0.0021608993591002524575 1.0978911404624207108e-05 -1.2394204687608814108 0.0028615955460106470495 0.16432217496028059256 -137.34718063982845138 276.77488283206099595 257.398773057183746 +1.02633454873375074 0.001706127426222724423 0.50327911324638396895 +336.73914531318530408 123.060327817306941256 356.54459228886423716 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -211 1.1053539394491334998e-06 0.0012104495733819770992 +211 1.1053539394491334998e-06 0.0011901801589035696437 1.0978911404624207108e-05 -0.574911650295101162 0.00732962987834302835 0.09094186706087993566 -197.58897025968587968 216.4500587345692395 32.142690974564700923 +0.5652845474528588321 0.13309684635181026624 -0.50933903891211396164 +233.44186510457919326 88.707874477884189446 167.97424441001098216 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -212 1.1053539394491334998e-06 0.0013114517797230782154 +212 1.1053539394491334998e-06 0.0025815821371737700718 1.0978911404624207108e-05 -0.6228833679179753835 0.0035301453282308783987 0.026520907213248515882 -203.93770909810530156 287.61014862136562442 242.06878687905944503 +1.2261408318796347405 0.05557419448572172016 -0.4828656335899123575 +23.015180300770929023 254.57060004800263187 239.88648631376381104 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -213 1.1053539394491334998e-06 0.00065628109701938868933 +213 1.1053539394491334998e-06 0.00063277265540905251985 1.0978911404624207108e-05 -0.31170538355490157167 0.0024132385307648130182 0.12713185331949014567 -105.20511844911963806 16.056112168560989772 244.24341611382067185 +0.30053988169570150513 0.19328138650894285955 0.21598956530403218279 +34.45632873143042474 178.68318386987357371 211.93307697865560613 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -214 1.1053539394491334998e-06 0.0038552529171225749194 +214 1.1053539394491334998e-06 0.0035740753439909996703 1.0978911404624207108e-05 -1.8310798447351031015 0.0053473729307617848955 0.15062261092501649795 -43.354544296036287676 331.8173735468632799 170.05926695404545512 +1.6975325527620954702 0.24120804132669299014 -0.21696041126133647214 +68.37839825154846096 50.92193921181014815 113.08108523892369135 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -215 1.1053539394491334998e-06 0.0028466074219119853122 +215 1.1053539394491334998e-06 0.0025543900773323839662 1.0978911404624207108e-05 -1.3520164793822959659 0.0049251371115639616324 0.17288169273885795052 -212.77950859181953547 336.0581226917943809 77.42768272234950189 +1.2132257692928836157 0.107237295473953248015 -0.10098482776314489373 +87.7455270808371921 83.80897091022158918 71.41361906076322441 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -216 1.1053539394491334998e-06 0.0021985221733891035234 +216 1.1053539394491334998e-06 0.0009699251654736918429 1.0978911404624207108e-05 -1.0442037724727588621 0.0016673703284148389935 0.021604928275600978477 -139.45741585695469666 284.89487782135802263 10.567521045672329194 +0.46067286883107749773 0.1688662506455884671 -1.2569510875080234236 +350.21222578236876188 302.2583234297789545 47.826742066457129 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -217 1.1053539394491334998e-06 0.0041585269987210155198 +217 1.1053539394491334998e-06 0.0036435924066057581685 1.0978911404624207108e-05 -1.9751220308596710851 0.009473475533086925596 0.035300137086330951597 -122.95621128533730371 260.48599796310674037 124.62256340954461109 +1.7305501770154163577 0.01735285133146844544 -0.7267473245905722301 +118.01325714816015022 96.33835317525982589 159.57688806539982806 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -218 1.1053539394491334998e-06 0.0036850979269059709786 +218 1.1053539394491334998e-06 0.00093596506834407177743 1.0978911404624207108e-05 -1.7502635196418936392 0.0050741844761371711695 0.1658857333368631004 -157.74995091841947215 201.01550775263439164 24.642900556579590443 +0.44454327870662324607 0.060706209883527338655 0.13647043720933876854 +153.51109684968784563 173.5905181665501118 316.67704628147691892 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -219 1.1053539394491334998e-06 0.0024098792270461044352 +219 1.1053539394491334998e-06 0.003344460699277991393 1.0978911404624207108e-05 -1.1445893111945042442 0.006254894994526396558 0.26812616136996125782 -55.8403116509916444 188.31560576999075352 176.08115773745512911 +1.5884754410684209791 0.21051458148932752912 -0.21153964564835864293 +347.3998241231585098 58.557323906380361223 229.99417839573837341 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -220 1.1053539394491334998e-06 0.0014194649641254083406 +220 1.1053539394491334998e-06 0.00092400884206938656 1.0978911404624207108e-05 -0.67418499952983323986 0.009370914403225643133 0.2607023782927515021 -74.568348301104421694 171.69028949645840498 330.08218397926469834 +0.43886458383982618336 0.11504228028084058366 -1.109711750898744409 +228.55908769144272696 179.57820706365569663 281.629801207905075 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -221 1.1053539394491334998e-06 0.0038857315851970468092 +221 1.1053539394491334998e-06 0.0028006634216882680454 1.0978911404624207108e-05 -1.8455559053218597576 0.0032852640630340579873 0.13146720816486856531 -181.57781545052452543 87.8424776041924531 117.749266632278107636 +1.3301950490884455469 0.04416368365623272313 1.5561505044971055689 +52.277563553165684596 69.80815438547521978 113.31762076029116315 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -222 1.1053539394491334998e-06 0.003451467710803740472 +222 1.1053539394491334998e-06 0.004184223063114922385 1.0978911404624207108e-05 -1.6392991837027635071 0.008172993347506901651 0.07942047748286509834 -92.02202764669651458 136.44658809966159652 207.06688706223678764 +1.9873265597484828238 0.287399113055856803 -0.22220832092245362821 +193.69315906464794352 62.25770560806260079 306.53585658446820617 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -223 1.1053539394491334998e-06 0.0037938786789413665213 +223 1.1053539394491334998e-06 0.0023224934645144257279 1.0978911404624207108e-05 -1.8019297129706066674 0.0082471276931415059275 0.16900132120254876544 -7.646139907393401103 26.181477918732003474 356.9546976907500948 +1.1030848205869228096 0.06557027663910168502 0.5064326685684403806 +13.36229549641530312 200.23977252213728661 161.4439250109718671 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -224 1.1053539394491334998e-06 0.0033882516596473381441 +224 1.1053539394491334998e-06 0.0021741135837244968142 1.0978911404624207108e-05 -1.6092742697413142672 0.0054203798375991154093 0.03304709238437338048 -41.255547311385861065 128.5294686483246096 51.326700392261827233 +1.0326107388809111498 0.14122717938897408341 -1.3254658748396144219 +54.494478835311170428 283.56216339209044008 283.47035258272427427 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -225 1.1053539394491334998e-06 0.0016442728414775665287 +225 1.1053539394491334998e-06 0.0024932384379273495862 1.0978911404624207108e-05 -0.7809591028134259538 0.0027842582556533990168 0.047076208156716640996 -303.47610195868935534 310.11757116316641714 333.1326779659828503 +1.1841813624033246111 0.3176464445203699971 0.25123880947024102017 +178.97137225462668653 264.78745341679052672 280.9719525978529191 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -226 1.1053539394491334998e-06 0.0035769359282418285922 +226 1.1053539394491334998e-06 0.0028565277287989922968 1.0978911404624207108e-05 -1.6988912076359679038 0.0027544225353991545584 0.004911566701016785441 -19.804093696957437487 116.867688699944906716 230.06366975865716995 +1.3567281998283680089 0.051711033393789886115 -1.3046568876544615279 +246.79115051569343109 349.31729086911923332 175.86420958002608472 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -227 1.1053539394491334998e-06 0.0035967711068804861586 +227 1.1053539394491334998e-06 0.0024426170266918286589 1.0978911404624207108e-05 -1.7083120670718447975 0.00911417171715175195 0.25502606246125725242 -132.71941125120628158 127.705833276839655355 225.39323602534688007 +1.1601383624191390354 0.017143942263863547887 -0.79026418791554764454 +105.6180709317223716 215.95370041886656054 59.37843762972664763 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -228 1.1053539394491334998e-06 0.00334326458481887513 +228 1.1053539394491334998e-06 0.002232570437015297391 1.0978911404624207108e-05 -1.5879073379827954859 0.0011623894671392387499 0.05850712316967049409 -159.65555127883030195 127.36551163027768041 64.885410734468138116 +1.0603752379030173536 0.006504765001193468961 1.5889932928049996796 +84.09974692968317811 343.65790189593803916 115.0537798259878457 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -229 1.1053539394491334998e-06 0.0030020484084863051707 +229 1.1053539394491334998e-06 0.0009451832487200006834 1.0978911404624207108e-05 -1.4258442835966069762 0.00848590023816955287 0.27942994206520843647 -153.80249494957928391 50.81493058271808394 338.62245737434164994 +0.44892151916304812165 0.078801554643226787156 -1.1890371638492829298 +44.280503484524793123 58.887298777879166778 149.54309227449363107 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -230 1.1053539394491334998e-06 0.0025532932625720591768 +230 1.1053539394491334998e-06 0.0018790809461773211109 1.0978911404624207108e-05 -1.2127048293067885787 0.0009963654234914987376 0.18380227254641912094 -296.31116977945151802 353.61244872953659524 271.6889881796664099 +0.892482885335344589 0.035572638795251999844 0.2940836905127558465 +185.50011760473597633 22.684333587583402903 287.67002313108827138 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -231 1.1053539394491334998e-06 0.001082604651499275318 +231 1.1053539394491334998e-06 0.0033555440862178059289 1.0978911404624207108e-05 -0.5141907936500152987 0.00043191285328578746727 0.19126984756319301284 -85.01172102721294266 39.721565442605687224 275.549376030423673 +1.5937395746734457358 0.18011588584765314547 0.5096496392660394559 +341.27235396837454573 353.21622952277823515 36.553075875877638623 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -232 1.1053539394491334998e-06 0.0033134773912811132366 +232 1.1053539394491334998e-06 0.00103152973312111297 1.0978911404624207108e-05 -1.5737596981545560748 0.0019741946170468748292 0.12460781029519701901 -248.19786176602471528 119.28349434597694767 228.47567541408912462 +0.48993239721683257137 0.06638690014504135262 0.64479276081127034903 +255.65498136273069463 68.56717412261879474 155.30622770921908682 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -233 1.1053539394491334998e-06 0.0016296203193969590176 +233 1.1053539394491334998e-06 0.0033812199497956214844 1.0978911404624207108e-05 -0.77399978304035088605 0.0012284582489639817894 0.09559581935893739224 -322.2110087566335892 92.73970892762623919 351.59239176508305036 +1.6059345090407080026 0.033659166124144296317 0.43860972917033291818 +38.80431967647766811 102.52939986535656658 67.88211610029772203 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -234 1.1053539394491334998e-06 0.0022344581149205248296 +234 1.1053539394491334998e-06 0.0029520001660215044775 1.0978911404624207108e-05 -1.0612718039753137322 0.004484186353959148698 0.12151011051255730666 -263.87913579741410786 205.99234601775421538 295.5571009617409004 +1.4020735142043589949 0.029559902498528051185 0.5157511816230192503 +99.106262075959591584 181.03238775815361805 311.76674693965139795 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -235 1.1053539394491334998e-06 0.0025929891572818648881 +235 1.1053539394491334998e-06 0.0027651059487451273616 1.0978911404624207108e-05 -1.2315586773640783136 0.0053930633777768497567 0.19307315608603120571 -235.90181752450615704 48.929514224976159653 321.86546383708378016 +1.3133067739387846995 0.059456482834846592633 1.0821307348863606901 +189.37153868950656488 61.637284594410999716 36.933412538324773777 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -236 1.1053539394491334998e-06 0.0013570090956489526244 +236 1.1053539394491334998e-06 0.0023103658574793706543 1.0978911404624207108e-05 -0.6445211397491317218 0.009481534918553509092 0.04375079099795432802 -171.78425940023910812 4.8286745259339225456 351.6065975856236605 +1.0973247272067636615 0.081786317551109169455 0.49155601510729562964 +177.32103819493687524 42.319798878712802548 121.0538418102005096 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -237 1.1053539394491334998e-06 0.0024626642311546409592 +237 1.1053539394491334998e-06 0.0010568843489413937982 1.0978911404624207108e-05 -1.1696599250310510953 0.005127240148268814683 0.2105553591902456223 -100.95332000457001698 348.06710353881669562 97.98306528295765361 +0.5019747526725075737 0.18012357891469493731 -0.6670429361679561797 +259.3287518732328749 155.8189007118570828 308.1657410675054507 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -238 1.1053539394491334998e-06 0.0038693794281005786159 +238 1.1053539394491334998e-06 0.0038190141868241248855 1.0978911404624207108e-05 -1.8377893317867484146 0.004014814781838210722 0.27787245250819364584 -104.63028723289626498 96.580313691242125174 278.5777544967936592 +1.8138680015500368015 0.06542001905237525283 0.34929480995373435315 +238.94221046294680377 69.74850544769508076 265.18431123684644035 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -239 1.1053539394491334998e-06 0.001999859417886389329 +239 1.1053539394491334998e-06 0.0016791334970090412546 1.0978911404624207108e-05 -0.9498474811163772902 0.006849729004888246639 0.23685913701271052445 -286.44113360058582884 36.49767264907672626 11.524501355426210125 +0.79751641956803698275 0.017796594964407531914 -1.5336867978940169621 +131.1039253212541098 149.87639581590860871 189.94640952444078152 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -240 1.1053539394491334998e-06 0.0016538269594082795101 +240 1.1053539394491334998e-06 0.0038120016742585246999 1.0978911404624207108e-05 -0.78549689920531817755 0.009618251386837464376 0.062564472478197200034 -106.10813836232580343 245.34879128293727035 8.483230361695257571 +1.8105373587372675104 0.2736913769073844871 0.9204772464905174312 +217.60746020880563378 193.29416906730736514 157.0402949713867713 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -241 1.1053539394491334998e-06 0.002723870616539034557 +241 1.1053539394491334998e-06 0.0029353054938965504343 1.0978911404624207108e-05 -1.2937217590729150896 0.0081012632352857969625 0.003736891747374473504 -318.69220722883733288 286.78306881772454062 129.51331016110151495 +1.394144260715775907 0.10294914336140900679 -0.11063502598404949262 +353.23956745785028488 181.72873017055380274 221.08208652682506568 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -242 1.1053539394491334998e-06 0.0035509263433730942577 +242 1.1053539394491334998e-06 0.0029327693736554875675 1.0978911404624207108e-05 -1.6865377699635537567 0.0085211867778089960684 0.1808603771617869338 -355.72073380858671499 104.144419618249756354 228.95309686611733468 +1.3929397123354063659 0.1567073502106984817 -1.0667538437947410301 +115.907567324832726285 59.85206470834485515 260.56459108426372495 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -243 1.1053539394491334998e-06 0.0019667886220503015487 +243 1.1053539394491334998e-06 0.003764734340265912237 1.0978911404624207108e-05 -0.9341402709782662406 0.0028907534107824417284 0.17459206591438974909 -17.281334610707403954 281.8598434220742206 295.65199935715946822 +1.7880874016400731819 0.16719682166172822324 0.23120039763628549845 +51.548815611349631638 65.11627242296204088 202.15637959449890104 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -244 1.1053539394491334998e-06 0.0011426227189501233375 +244 1.1053539394491334998e-06 0.0019887211843498044838 1.0978911404624207108e-05 -0.54269680246233042986 0.006062420346430625294 0.18189964090404234232 -257.82341809918989384 279.63417631190066004 264.79438787620637186 +0.9445572977293907879 0.08919984476385846295 0.54490643910550951023 +246.78128776954710588 206.01086480485230368 266.56846272027337363 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -245 1.1053539394491334998e-06 0.0039612549184543410322 +245 1.1053539394491334998e-06 0.0025079457016496560636 1.0978911404624207108e-05 -1.8814262506163152988 0.00713425705142452498 0.036678666696773026823 -279.36446391679663748 218.94276893606445356 72.76793396285118831 +1.1911666821092024016 0.074351177989952915715 -0.69538887092890699915 +72.267673460454219025 212.94200785962866007 303.0544687451530308 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -246 1.1053539394491334998e-06 0.0011069113753110580419 +246 1.1053539394491334998e-06 0.0031434859938471441787 1.0978911404624207108e-05 -0.5257354453291889218 0.0065663531910162857216 0.08821788676682744412 -313.21826205225062267 78.7334678501035512 66.625782692959901965 +1.4930210726191879278 0.059788521244801128007 -0.17403999764057989652 +14.058744144383563679 257.13741630072581756 238.05948750247222279 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -247 1.1053539394491334998e-06 0.00084896706738007961826 +247 1.1053539394491334998e-06 0.0035281167851081643952 1.0978911404624207108e-05 -0.40322295821872455868 0.0023563378205480678754 0.14379403784542810207 -66.033482039089463456 357.4538328606508344 62.74045221395471117 +1.6757042077293549109 0.10527876653653885086 0.72614096902153491 +298.9807005550179042 224.28765074111709055 328.7990264357159731 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -248 1.1053539394491334998e-06 0.0019979486651708478538 +248 1.1053539394491334998e-06 0.0027009046389202507528 1.0978911404624207108e-05 -0.94893995549849585736 0.005083924661341961311 0.118823342033357426395 -6.8149540377181416773 9.181500809113174455 95.27358157374189318 +1.2828139043519908302 0.09921195956887646217 0.58230508536927572116 +15.864947101737566726 230.95250431192721408 259.8396337761254813 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -249 1.1053539394491334998e-06 0.0025774232222600479035 +249 1.1053539394491334998e-06 0.0016022886022436256328 1.0978911404624207108e-05 -1.2241655256057810686 0.0020341521214730850717 0.27576171800939880407 -159.81791713660427945 341.93421212230111905 226.18727910338799347 +0.7610183892181208165 0.15475150980894822328 -0.5610432264585476503 +172.61424792316188359 299.7158071599064897 263.46266360461993372 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -250 1.1053539394491334998e-06 0.0015643136657066606002 +250 1.1053539394491334998e-06 0.0020342639444169473436 1.0978911404624207108e-05 -0.74298192250821948335 0.008137288135894959681 0.22809676884599014435 -96.52537440088759979 121.2909095205949086 136.02299284070218732 +0.9661881561517204897 0.09850479147252759471 -1.9386322323343987417 +248.1531023702021912 352.63109468600481478 37.851907300542826817 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -251 1.1053539394491334998e-06 0.0031667115927545822995 +251 1.1053539394491334998e-06 0.0023480583550367446927 1.0978911404624207108e-05 -1.5040522363211670243 0.007027564137810949317 0.10653626114394891544 -278.13618264029696547 248.33667224358791259 68.80918757195135527 +1.1152270475107055603 0.0028662551334571089237 0.5734677325458960029 +288.68780518690425652 229.23151170663010134 254.18031319514730626 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -252 1.1053539394491334998e-06 0.004194380672915214599 +252 1.1053539394491334998e-06 0.0031331969524242357334 1.0978911404624207108e-05 -1.992150988904191955 0.0053245068265041408523 0.16419521861955760356 -6.9881313654412213765 162.84367291811329892 136.01685989952173372 +1.4881342190777622214 0.04045634026057227245 -0.2956718589487913329 +121.05353482593721992 146.70740167121149966 324.92755783433256056 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -253 1.1053539394491334998e-06 0.0035312395672294702313 +253 1.1053539394491334998e-06 0.0007893125087329286851 1.0978911404624207108e-05 -1.6771873953501790222 0.0080761985352756811285 0.24505026568791535291 -21.921837033461464728 74.11564328757721398 164.4182830076092614 +0.37488960050301511906 0.19039987271024397253 -1.1559837696931039019 +207.90674131377170397 41.325492523136382772 30.605681300644242526 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 From 2ba0de50dafb32e0da221f51ad99491c9b0fa8a4 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 18:31:01 -0400 Subject: [PATCH 179/315] Changed back to small e and i distributions for Chambers 2013 --- examples/symba_chambers_2013/init_cond.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index d02830a11..b7b82e475 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -60,10 +60,10 @@ # Define the initial orbital elements of the big and small bodies avalb = default_rng().uniform(0.3, 2.0, Nb) avals = default_rng().uniform(0.3, 2.0, Ns) -evalb = np.abs(default_rng().normal(loc=0.0, scale=0.13, size=Nb)) -evals = np.abs(default_rng().normal(loc=0.0, scale=0.13, size=Ns)) -incvalb = default_rng().normal(loc=0.0, scale=1.0, size=Nb) -incvals = default_rng().normal(loc=0.0, scale=1.0, size=Ns) +evalb = default_rng().uniform(0.0, 0.01, Nb) +evals = default_rng().uniform(0.0, 0.01, Ns) +incvalb = default_rng().uniform(0.0, 0.5, Nb) +incvals = default_rng().uniform(0.0, 0.5, Ns) capomvalb = default_rng().uniform(0.0, 360.0, Nb) capomvals = default_rng().uniform(0.0, 360.0, Ns) omegavalb = default_rng().uniform(0.0, 360.0, Nb) From b41ff552adde682ad5d03acc80ac554d80203451 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 18:31:33 -0400 Subject: [PATCH 180/315] Updated initial conditions --- .../symba_chambers_2013/pl_chambers_2013.in | 924 +++++++++--------- 1 file changed, 462 insertions(+), 462 deletions(-) diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 1e7b81518..9f07ba581 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -11,927 +11,927 @@ 113.5952699440524043 335.70375572759667193 225.29914557362599226 0.0 0.0 0.22000000000000000111 441.93102714484842597 378.52937229654824397 5135.9113502360652523 -100 1.1053539394491336042e-05 0.0015461504183583823242 +100 1.1053539394491336042e-05 0.0024942259412694431663 2.3653347588909066005e-05 -0.3408574704771777375 0.033070637332515993856 -1.9453843289198495814 -202.62065666421335663 105.22548960961742637 78.87126004681208258 +0.54986599948168679575 0.00790211437739073673 0.17380192597475080385 +107.43156870400773073 276.28353146985244848 194.7142891976026533 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -101 1.1053539394491336042e-05 0.0025360931126129128548 +101 1.1053539394491336042e-05 0.004438085330891615839 2.3653347588909066005e-05 -0.5590958505690871716 0.08583989624433346899 -0.8741170670306142032 -48.47846685156916635 175.8996408386432222 221.32287546151425772 +0.9784006275765486649 0.008894460002898382789 0.06959456688275278413 +230.72372262612213945 175.80689672313920369 127.98999815613836972 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -102 1.1053539394491336042e-05 0.006913473140641587443 +102 1.1053539394491336042e-05 0.0022118749019394030531 2.3653347588909066005e-05 -1.5241136560523089738 0.18239654760331197592 0.1607508935962914387 -136.58884566281579964 231.20294427720486397 287.3988794753212801 +0.48762014040490725408 0.007065173882583869816 0.08255052734200557518 +59.69880211598947284 257.706889533954552 96.36252359516613808 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -103 1.1053539394491336042e-05 0.0075661003769676196835 +103 1.1053539394491336042e-05 0.0050274480066339513537 2.3653347588909066005e-05 -1.6679889648820869219 0.079370128317116345196 2.3221490483247109182 -116.561539056550742544 204.98175901582067127 322.81051940631039088 +1.1083289116955583609 0.004924644152842923804 0.24223522245862766367 +188.40224626199380964 313.44855208036375416 129.90947721881380517 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -104 1.1053539394491336042e-05 0.0063630581436780486472 +104 1.1053539394491336042e-05 0.005497178565716073497 2.3653347588909066005e-05 -1.4027716046257132643 0.16399328629763007537 1.1315204461456485063 -8.74019575470427057 260.6289225748030276 96.83674362960462645 +1.2118836294471209136 0.0006636314586658864428 0.21679091691902274697 +292.58786958533733014 349.21714004172918067 92.84912374945815827 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -105 1.1053539394491336042e-05 0.0058009220458947593733 +105 1.1053539394491336042e-05 0.0058680503539993149066 2.3653347588909066005e-05 -1.2788455712467858838 0.18533456034292952741 0.68186312030104589965 -350.87272492154227166 154.27547344580884214 19.236717678667375253 +1.2936443806163331338 0.004833849563252618463 0.008567844508054200947 +328.27890426256050205 131.98075608160368688 322.13564633221562872 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -106 1.1053539394491336042e-05 0.008660716727921125838 +106 1.1053539394491336042e-05 0.002694510776600401099 2.3653347588909066005e-05 -1.9093032355370187503 0.098142842537277064086 2.1641037267406222355 -246.01465169503958919 201.77181776781199574 203.98097754990340036 +0.5940199068475252586 0.0067237368733709312538 0.060288304615935095487 +79.16558592832937791 133.19532279503386007 105.316435864485242746 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -107 1.1053539394491336042e-05 0.0060132811568352904626 +107 1.1053539394491336042e-05 0.00894284236059420335 2.3653347588909066005e-05 -1.3256613199142572856 0.07074894244997383119 1.7139622934915241803 -283.09363206889401 287.16517264248420815 240.8092175491846092 +1.9714994024609464596 0.0012301078319352542253 0.24539756157331871211 +30.202531544478411263 131.4722075501692018 190.3346811342855176 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -108 1.1053539394491336042e-05 0.0069910563576214435413 +108 1.1053539394491336042e-05 0.00847142435998454647 2.3653347588909066005e-05 -1.5412173083084157454 0.12776909282445714222 1.1360174231116362265 -313.9666515125636579 341.48278821718713516 226.4847958382236186 +1.8675726788270168299 0.008026755773111227815 0.4017258251905144184 +133.3423586393701612 179.84390448017239805 225.68364681866682986 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -109 1.1053539394491336042e-05 0.008266822793656672685 +109 1.1053539394491336042e-05 0.007174596670026274337 2.3653347588909066005e-05 -1.8224671240723677723 0.18917753633932268831 0.42218056327965103325 -166.23596763765075934 210.4839779991240789 13.957384212762114828 +1.5816797923423595584 0.0031475338026421342819 0.4360851322619670456 +63.04925866997809436 321.46581691044519857 79.431408115766444666 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -110 1.1053539394491336042e-05 0.006746457469115792023 +110 1.1053539394491336042e-05 0.0081372984647778109835 2.3653347588909066005e-05 -1.4872941211284214091 0.13127576517426767233 0.1324853145958510281 -84.05982445710027662 332.81599386147166797 1.0944685581848645484 +1.7939127644300645326 0.0019829617212629392295 0.33499759592398342667 +335.2559643572936352 187.7176940339578266 256.98389267937642444 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -111 1.1053539394491336042e-05 0.0082493639643422834375 +111 1.1053539394491336042e-05 0.005574526073514087418 2.3653347588909066005e-05 -1.8186182279190983291 0.016672362292800089328 0.64664359520385428226 -70.924763596142568645 169.29431495915679307 289.1999780421409696 +1.2289353183013898008 0.0087975519315924410185 0.0931356879078180655 +38.076421761989216463 246.32382787018278236 116.79845254567619861 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -112 1.1053539394491336042e-05 0.0072197889886022933974 +112 1.1053539394491336042e-05 0.0024200689107431695442 2.3653347588909066005e-05 -1.5916426906554330678 0.17614519443071968707 1.6586990548226496767 -351.28618211282201855 152.64576116734403399 207.37858962523898754 +0.53351766911023290607 0.0035617909124576263916 0.42026149289799202835 +131.64906776807390543 176.17113073415276858 35.570566593488898377 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -113 1.1053539394491336042e-05 0.0049369369099628909872 +113 1.1053539394491336042e-05 0.0047743187507997904987 2.3653347588909066005e-05 -1.0883752363641703287 0.23728857051859264526 -0.73837230646325235917 -157.20140148643247358 202.1890325840993512 303.84935191116198894 +1.0525251575310632379 0.0047905759606499866837 0.077107525060287229746 +10.342512502279181064 88.664376332507956135 298.3693887978787984 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -114 1.1053539394491334998e-06 0.003603137716011808236 +114 1.1053539394491334998e-06 0.0027667873593623189602 1.0978911404624207108e-05 -1.7113359334459272709 0.17252011595660135534 0.70794466274093581504 -178.27643590102056237 253.67568000932274686 118.67157800331830231 +1.3141053718928097371 0.0034379157133108007721 0.41062772150774839997 +117.94487904653206556 135.95661427482011163 357.92535799856455014 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -115 1.1053539394491334998e-06 0.0037444524662690442753 +115 1.1053539394491334998e-06 0.0020116765919858510565 1.0978911404624207108e-05 -1.7784543810607540415 0.07903522601543884474 -0.9831116262823587082 -161.1369100740436977 180.65311460629285989 182.539021853529988 +0.95546013216169445315 0.0060206064844968258665 0.07110023689215083653 +180.02093341162267848 11.570684680871377026 52.45363865763020783 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -116 1.1053539394491334998e-06 0.003633827920834672617 +116 1.1053539394491334998e-06 0.0033395287462686999945 1.0978911404624207108e-05 -1.7259124649187007616 0.09708420850164076188 -0.65670183726723430073 -69.39873471782885872 190.86848558673287357 8.302234562462324163 +1.586132974842564547 0.00645121634259801513 0.096969056514780882505 +171.91023859938232476 254.67841176708233775 313.28806379016128858 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -117 1.1053539394491334998e-06 0.001329029849613716992 +117 1.1053539394491334998e-06 0.00371593566160539721 1.0978911404624207108e-05 -0.63123219747028314064 0.33301433414859532567 1.0743814491973293634 -358.08761310640107922 199.17379372705602236 169.23693068417148311 +1.7649101214808080584 0.0023577563737892525027 0.48595446091290439572 +47.606286791272218295 202.27273102322442355 347.88058470986658222 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -118 1.1053539394491334998e-06 0.0018514326364684498849 +118 1.1053539394491334998e-06 0.0015295236196825508856 1.0978911404624207108e-05 -0.87935112362288769816 0.19002899321716409942 0.031428565836475116924 -219.87421514625864916 22.874313851100001926 232.96258344609623236 +0.72645814224228044687 0.0020370449700726233656 0.3606883424967191054 +274.4280316761291374 280.74766948740551697 24.536589249099783672 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -119 1.1053539394491334998e-06 0.0016445035329517209998 +119 1.1053539394491334998e-06 0.0033834333628134683705 1.0978911404624207108e-05 -0.7810686713729361186 0.059484527778062686043 -1.1489020802783456165 -286.4666747065199388 111.29876897677330305 120.10942191740198837 +1.6069857853258651126 0.0098416039402617061516 0.44624727946733649953 +222.77492385480474013 170.8759481887598497 79.99493114501900948 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -120 1.1053539394491334998e-06 0.0011366304024225739696 +120 1.1053539394491334998e-06 0.0040359986896511094793 1.0978911404624207108e-05 -0.53985070902754273003 0.019621469881391989665 -0.46488373938006410935 -47.205604450599871313 304.05572172839578116 40.517661924980437504 +1.9169263373551235219 0.0029802273191661932637 0.230406336919138921 +310.79966407192694078 1.4550646525895816197 252.0063452744394965 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -121 1.1053539394491334998e-06 0.00085048324521620890064 +121 1.1053539394491334998e-06 0.0031542038750952466353 1.0978911404624207108e-05 -0.40394307768596887653 0.041794151485500086185 -1.9429709778170833889 -58.18456815299932572 236.36842728706929506 67.212256363082232724 +1.4981116066914148544 0.006503703527213184135 0.26407165396100124033 +26.062848056125357488 210.56488681239142124 301.56600646968121282 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -122 1.1053539394491334998e-06 0.0012275168389763736018 +122 1.1053539394491334998e-06 0.0018880288863730688365 1.0978911404624207108e-05 -0.58301786970702118573 0.029905246409433816623 0.21841281526886652253 -337.81989362889663653 137.51598287788544894 10.117542761690124564 +0.8967327732925158834 0.007238336978075715633 0.033528086738177642623 +69.065440349257514185 293.81947043939737796 286.96470672499521015 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -123 1.1053539394491334998e-06 0.0018136756665501053485 +123 1.1053539394491334998e-06 0.0012989977425082224311 1.0978911404624207108e-05 -0.86141818171168593743 0.10673662047410724385 0.72671627689632689595 -211.0350359229977073 1.4239481147088728363 145.60771901575543552 +0.61696823419784485587 0.0019528884250943146297 0.47321436840562031145 +249.99391755383430791 343.34598728791138456 346.86912583193304727 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -124 1.1053539394491334998e-06 0.0019420720990199057541 +124 1.1053539394491334998e-06 0.0021375309010602413823 1.0978911404624207108e-05 -0.9224009822400665026 0.07366252519675375865 0.5005925007110804126 -329.4054277981816199 92.35229633759000478 230.4022935507789498 +1.0152355330687710122 0.0024575205682447810208 0.49078797741929608422 +336.94314367642243724 93.98747142904542784 343.1238225943502016 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -125 1.1053539394491334998e-06 0.004161069866977504577 +125 1.1053539394491334998e-06 0.0021886806744636735113 1.0978911404624207108e-05 -1.9763297842580522801 0.26074349612071229254 -0.13913685976997289262 -147.13395328101228188 38.13236054380058704 56.212885403166417575 +1.0395294824296072989 0.0015032750981988285063 0.09664665566612262726 +261.27453454035151026 87.106680576905262114 281.8545767584969326 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -126 1.1053539394491334998e-06 0.003412249677518104273 +126 1.1053539394491334998e-06 0.0009572790019622815113 1.0978911404624207108e-05 -1.620672299334026345 0.04772576605865852528 -0.67259261126238567563 -280.03974987409031883 61.427836214521768454 66.199969641336409154 +0.45466648335734549669 0.007148101776801299087 0.14093359206177985543 +154.4274485437105966 76.386907113986950435 65.4137928754450968 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -127 1.1053539394491334998e-06 0.0019992475043125020787 +127 1.1053539394491334998e-06 0.003729812565234214185 1.0978911404624207108e-05 -0.9495568484040879387 0.03633047379318007225 -0.9333650403912433502 -201.72179896001696875 6.0499386044710457 255.19704507235451274 +1.7715010557433059635 0.0048324755718385462716 0.43641352554780121764 +301.99915691100079584 305.68759778831190488 138.29375135377947004 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -128 1.1053539394491334998e-06 0.0015835208107838788018 +128 1.1053539394491334998e-06 0.0016846822255838862265 1.0978911404624207108e-05 -0.75210449292885139805 0.20208588393581308762 -0.32356025147650785412 -168.46438517119173639 354.38940120612028295 42.932994902004701032 +0.80015182774377024977 0.0036167730417621802956 0.30363913306983342233 +217.30104253608558906 127.25594694684403407 68.62323143700560024 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -129 1.1053539394491334998e-06 0.0026040992516459701312 +129 1.1053539394491334998e-06 0.0028156518271099348789 1.0978911404624207108e-05 -1.2368354958505816121 0.05472455534143873257 0.3292292606781900277 -122.895918110402618595 90.17265069787075049 148.94125462646059077 +1.3373138990477930754 0.0015358743297277000113 0.07854569816442086294 +195.79544064919386415 111.78591391871525218 42.72825320073468447 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -130 1.1053539394491334998e-06 0.0039179975287651961917 +130 1.1053539394491334998e-06 0.0025544219135459682557 1.0978911404624207108e-05 -1.8608808451400999928 0.13390537781965355935 0.13624514777263913023 -282.60450624226194805 316.2615447751669535 333.83910115570051858 +1.2132408901293838532 0.0045333183675212128383 0.42641938966810982725 +335.4707082103248581 340.32782670462358965 78.71452296875966681 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -131 1.1053539394491334998e-06 0.0012271474522682037647 +131 1.1053539394491334998e-06 0.0017385535134058515513 1.0978911404624207108e-05 -0.58284242685780141 0.097435309705656322765 -0.3386348393304988158 -56.274075743635243896 332.60972838905860272 270.3524667792420928 +0.82573837977064679094 0.00947228661087365191 0.23945040316916776924 +19.579735631200563262 154.31747127598504221 359.85036935042643336 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -132 1.1053539394491334998e-06 0.004004870476520079749 +132 1.1053539394491334998e-06 0.0012114779308318496938 1.0978911404624207108e-05 -1.9021417707152288301 0.024222809404677653894 -0.9614808581350420269 -170.40309010105522702 290.6819137629074703 352.73423380011092831 +0.5754000759937840659 0.008441518730336730614 0.075040026844357343716 +322.159144370426759 120.90343932105199087 100.737894230941492424 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -133 1.1053539394491334998e-06 0.0033162091193391575378 +133 1.1053539394491334998e-06 0.004078388748157303896 1.0978911404624207108e-05 -1.5750571518614624456 0.4680866391512292779 -1.5382511040352000453 -210.5267618034343684 301.22626486707730464 270.11642990353152527 +1.9370597977055710182 0.0047539556352681408558 0.3644800323507790818 +343.45071951804578703 154.80672968106802045 201.89115733144456044 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -134 1.1053539394491334998e-06 0.0039811167280778447966 +134 1.1053539394491334998e-06 0.0036039203608008465391 1.0978911404624207108e-05 -1.890859758628211873 0.0184765429415361844 -0.5239208074828266559 -216.78922065874436953 256.25273285658602163 117.77105341497980362 +1.7117076561654485101 0.006971012371901982689 0.10052614663363507175 +301.49565382461685203 343.23510866942172015 146.10462884072774159 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -135 1.1053539394491334998e-06 0.0036347692823004885955 +135 1.1053539394491334998e-06 0.0026929339739795838812 1.0978911404624207108e-05 -1.7263595712548402972 0.0070755739234528332304 -0.35597868999073312146 -209.50875535650939696 249.48760516711772084 58.25116765300475663 +1.2790281802410847778 0.0073399150338953915093 0.22998077022595031504 +236.3867911788404399 68.590499117694676556 211.12134048117644625 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -136 1.1053539394491334998e-06 0.0031279229240370295723 +136 1.1053539394491334998e-06 0.0010561758343539430626 1.0978911404624207108e-05 -1.4856292817136056428 0.02827793516017371167 -1.1695993959952437624 -83.851060695237606524 337.85532131590940708 35.38058552302099713 +0.5016382386204670807 0.009262343459015066546 0.25431397403127209422 +240.85528397317872873 280.3614716393232129 287.26674439180794707 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -137 1.1053539394491334998e-06 0.0022143194543191664736 +137 1.1053539394491334998e-06 0.0028006595358145995742 1.0978911404624207108e-05 -1.0517068036187013913 0.12504141694694215214 1.0986835238636969425 -357.59351475740095339 265.14244170514302823 295.83425557466119926 +1.3301932034650567616 0.00022993810281455418594 0.08342160340369197957 +70.66457523971979526 275.49054890145470154 246.17193312636263158 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -138 1.1053539394491334998e-06 0.0028375458219479651553 +138 1.1053539394491334998e-06 0.0031345916538533425973 1.0978911404624207108e-05 -1.3477126079082673016 0.020241368203925858005 0.73582305509545364863 -128.01538745739060232 164.13684097395810113 246.74448878319807932 +1.4887966424598750859 0.0042935099714141999883 0.29314963965799401002 +18.314807368556046185 317.45412549425219595 74.96719911477174492 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -139 1.1053539394491334998e-06 0.0028590085439002299716 +139 1.1053539394491334998e-06 0.0031727769387009091975 1.0978911404624207108e-05 -1.3579064806384844033 0.053934013953949935805 -1.1567727028831349401 -270.8616704031354061 16.174162339537577537 26.061519427656314463 +1.5069330155987958886 0.00042623156360929617507 0.45965895515338095478 +20.129300049819683238 327.29502018496526716 59.231125864523988866 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -140 1.1053539394491334998e-06 0.0015608838331539529205 +140 1.1053539394491334998e-06 0.0029468534902006606923 1.0978911404624207108e-05 -0.7413528990970221777 0.092454437546430692785 0.49107448374198248153 -239.59555490584881454 175.5556016851099912 184.31816918834064722 +1.399629063849084698 0.007272282375730997235 0.20432669181302576256 +187.73561134042344634 233.75900696254421973 213.69939588190965196 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -141 1.1053539394491334998e-06 0.0022632805092637347122 +141 1.1053539394491334998e-06 0.0017889952492140027216 1.0978911404624207108e-05 -1.0749612055511379438 0.18613491656550704145 0.6486970624726356993 -325.1747302070801311 283.7987041568865152 237.12586404026308173 +0.8496960416302725694 0.00931974963626281197 0.08786331420963222616 +125.44242963323571871 213.90820310140793481 297.45792212645267227 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -142 1.1053539394491334998e-06 0.0019322430435475023308 +142 1.1053539394491334998e-06 0.0008745444542327522458 1.0978911404624207108e-05 -0.9177326023035994318 0.10187394966886953451 0.42422986693301778516 -18.083119108230960137 200.15320295324826816 94.90922228290227736 +0.4153711203636550886 0.005598789000554379308 0.28860546557484068053 +292.6804153683137315 293.15323963175370636 16.632979010081850646 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -143 1.1053539394491334998e-06 0.0017397961850092495534 +143 1.1053539394491334998e-06 0.00173576060783876918 1.0978911404624207108e-05 -0.82632859550370563184 0.071374104222150014376 1.6847023844566795248 -244.48310851178248981 317.72142892656648883 197.34750351321378048 +0.8244118693698843092 0.0011315413061166990603 0.44860347344260603775 +182.34383300537979267 131.24180851437259321 59.650805508873453675 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -144 1.1053539394491334998e-06 0.0030109859111638281656 +144 1.1053539394491334998e-06 0.002134797181745330879 1.0978911404624207108e-05 -1.4300892141801218038 0.06013390964571298236 0.95426051220218155446 -224.77981457517233821 166.77598990812870738 253.32568955631231233 +1.0139371336002267476 0.007289343253590587976 0.4634087498204931821 +69.447553734797935476 272.51215072362390401 180.88652358187317759 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -145 1.1053539394491334998e-06 0.0039069281295739031467 +145 1.1053539394491334998e-06 0.0029149732559586442152 1.0978911404624207108e-05 -1.8556233551159093675 0.041587544415182919888 -1.1052173470095545404 -104.85933523981042015 79.223786507295827164 150.83753568870520212 +1.3844873194237774516 0.00093405874852250936335 0.49831837684007984635 +52.65042390426480523 132.1570385313290501 335.1642645009007424 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -146 1.1053539394491334998e-06 0.0028373114200539287132 +146 1.1053539394491334998e-06 0.0009297558019152983528 1.0978911404624207108e-05 -1.3476012770583944977 0.0141079817524343512775 0.33273864923752016765 -275.64587225718310037 321.0433247249368378 284.9705506063763778 +0.44159414337030833408 0.0020058824691861665453 0.2050019411895118715 +258.613537774471979 316.83987106637459874 136.16219228862655655 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -147 1.1053539394491334998e-06 0.0032936029453222368515 +147 1.1053539394491334998e-06 0.0030225941590539279168 1.0978911404624207108e-05 -1.5643201884251303202 0.09233460292837064598 -0.19569933462664845791 -169.71850615050692568 254.29363681833123678 86.45223733921757514 +1.4356026342335368451 0.008673339650493765152 0.44714004675905749675 +263.19836098306842587 200.28114364179853624 93.21390608694554203 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -148 1.1053539394491334998e-06 0.0016816361723253655007 +148 1.1053539394491334998e-06 0.0038587364317993124525 1.0978911404624207108e-05 -0.79870508304308018843 0.16293339698941008975 -0.9471684403628577442 -77.54491701450814389 187.76746197311504716 87.42929180132320255 +1.8327343648536362775 0.0023968869061356022979 0.4162622981093172525 +150.99202022316734428 214.42374102088223253 234.46673681709688708 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -149 1.1053539394491334998e-06 0.0019522235012067042261 +149 1.1053539394491334998e-06 0.0039857019664824380383 1.0978911404624207108e-05 -0.92722246304551259044 0.1946437318320309029 0.5913718503177081143 -233.67881944342650513 129.58959412826339985 173.42163428111530266 +1.8930375502819491995 0.0054042423153714269635 0.280354479114709787 +309.89818193102905752 339.47805287826588483 108.2834163186351617 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -150 1.1053539394491334998e-06 0.0034631135937389434378 +150 1.1053539394491334998e-06 0.002526214410417571716 1.0978911404624207108e-05 -1.6448304787890299927 0.07080211110064134339 -0.16804535084108726539 -104.83842752774481255 93.06725981433478978 139.09453360213626638 +1.199843535517624904 0.00807200501209657216 0.29297227617312499026 +311.1092985416864849 134.93278660564592997 298.0184908095267815 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -151 1.1053539394491334998e-06 0.0020480352266326181632 +151 1.1053539394491334998e-06 0.0036581411698850117867 1.0978911404624207108e-05 -0.9727289247714079323 0.039222042708152236867 -1.0198922820043097026 -255.26737006742024505 161.11728195901361005 142.57826352792659463 +1.7374602158064242907 0.007153689989388728465 0.44052283973240657922 +237.80983305122521188 259.39413015086012138 14.914034897260304291 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -152 1.1053539394491334998e-06 0.00416504558445412392 +152 1.1053539394491334998e-06 0.000802372644126310084 1.0978911404624207108e-05 -1.9782180796037263093 0.07046696142247479977 0.43640796065865716802 -186.47490165882413748 136.37748143663282008 198.61860296562298345 +0.3810926048719686654 0.006030170704880976132 0.26258916301020024386 +0.15571237391343473178 101.42157830594325674 191.6534478425715804 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -153 1.1053539394491334998e-06 0.0014097819459136979314 +153 1.1053539394491334998e-06 0.0008778988031953014719 1.0978911404624207108e-05 -0.6695859810309641169 0.23162259779089477973 -0.7336565136358753625 -322.69843659571847638 36.623221740285572423 83.17277039944451644 +0.41696429230582593428 0.0089104527399628801615 0.18935210551241321575 +290.94348385697963977 194.03201349755511274 246.1264492528840151 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -154 1.1053539394491334998e-06 0.0014796951777769435992 +154 1.1053539394491334998e-06 0.0019399977622078306769 1.0978911404624207108e-05 -0.7027917686918754292 0.07707021825505425139 -0.43738358489223622128 -313.25986597960348945 198.99285071656103696 117.22066066083039004 +0.9214157611898694533 0.0074622525238668066527 0.044888899465576392878 +352.50451572365290076 314.09425533244291273 232.43445962578101671 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -155 1.1053539394491334998e-06 0.00071568235606203755964 +155 1.1053539394491334998e-06 0.0031391545550959035403 1.0978911404624207108e-05 -0.3399184348184913218 0.40570980479945184527 -0.45596089285675273084 -169.89135804664692841 146.95615005868651792 107.09438513159021511 +1.4909638249193351012 0.0014758841420516332667 0.0055864793798309220207 +218.56254662217830287 78.14339758395870206 316.430657512916639 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -156 1.1053539394491334998e-06 0.00097178507731553673936 +156 1.1053539394491334998e-06 0.0019439900334437632077 1.0978911404624207108e-05 -0.46155624721371502073 0.11487451837935816479 0.23717381260447478741 -354.6834957926035372 182.7049785095020411 262.33859361122159726 +0.9233119188614880013 0.0035238992618186449311 0.15216969786581269197 +87.51270655933404896 92.86798277740109597 135.18235847560532648 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -157 1.1053539394491334998e-06 0.0025852533878527895926 +157 1.1053539394491334998e-06 0.0013581656022498558282 1.0978911404624207108e-05 -1.2278845185502202941 0.16551060166892003767 -1.6426474037432137187 -163.78959504813784065 14.455581307667655366 125.19243080508162791 +0.64507043080026138515 0.006017967999349400042 0.044024484429886545644 +243.82486182874328051 313.91412429654531024 17.842738258345278268 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -158 1.1053539394491334998e-06 0.0013421642805498459896 +158 1.1053539394491334998e-06 0.0007957084646394230086 1.0978911404624207108e-05 -0.6374704890366795773 0.20966390696384992753 0.96821850019353039585 -128.03095745302479713 131.70263651729513299 82.77283080834268958 +0.37792740533708479855 0.00079709924865743134875 0.49822584694119959048 +117.10532475856990686 273.82529416769699537 142.59754259648363472 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -159 1.1053539394491334998e-06 0.0036960012044613396307 +159 1.1053539394491334998e-06 0.0025211857007434836788 1.0978911404624207108e-05 -1.7554421090113530024 0.006936921817132417692 -0.10507057771126256107 -120.20823629105090902 268.98220185163302176 0.9783865182988593645 +1.1974551140243550051 0.0020342978333770613854 0.05030793806922934097 +329.78186071094091858 192.3131026578458318 69.88335078328420025 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -160 1.1053539394491334998e-06 0.003994786415843535782 +160 1.1053539394491334998e-06 0.0029456358665218289093 1.0978911404624207108e-05 -1.8973522742399400176 0.009265339060740920146 -1.9234801622216430861 -325.57420852425093472 115.78623904836624092 69.81298143596565353 +1.399050744806284996 0.008335673423392558901 0.37206739455989384924 +343.64590296578933248 312.07849532760184275 256.63764061611948364 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -161 1.1053539394491334998e-06 0.0040119353635669510593 +161 1.1053539394491334998e-06 0.0021827320107767314121 1.0978911404624207108e-05 -1.9054972891610877372 0.2057908843466856319 -0.44582455876017351715 -316.51992311017295378 76.19557671517526387 306.68760678383847562 +1.0367041222225272801 0.00029136466928890268494 0.11776130787270561173 +350.3069098964570003 208.28777218518968084 13.916149934058807958 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -162 1.1053539394491334998e-06 0.003817599159073077862 +162 1.1053539394491334998e-06 0.0039978967833819220262 1.0978911404624207108e-05 -1.8131959240364772246 0.038389633304362756616 -0.51995909907717974274 -10.4153005449348246 356.17672297846132778 33.314218300546144746 +1.898829565466142677 0.0007690667793557670953 0.05189455759954236802 +143.58325146495602098 143.25676647476683456 249.32199351899294015 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -163 1.1053539394491334998e-06 0.0011138439509102615346 +163 1.1053539394491334998e-06 0.003272058425080806188 1.0978911404624207108e-05 -0.52902812151015354836 0.17346273414379861921 2.0400001906145304176 -328.6095098907458123 168.58689044183410033 161.29334174715575045 +1.5540874650145959368 0.008269972669539046167 0.06961212410979411569 +95.125280555953153794 23.840220641634189747 215.57362311616685702 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -164 1.1053539394491334998e-06 0.0030953313400110498847 +164 1.1053539394491334998e-06 0.002084380419276098977 1.0978911404624207108e-05 -1.4701496766394712701 0.110747368172590412994 -1.0714422048443947855 -236.6207355221217199 154.79786852769112215 326.96626962694404028 +0.9899913330058756067 0.001806727826544205634 0.24664641966640482584 +215.72125982122091159 64.54893275208473824 83.09008589262639077 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -165 1.1053539394491334998e-06 0.0014870924763380849233 +165 1.1053539394491334998e-06 0.0026146669636595032606 1.0978911404624207108e-05 -0.70630516835513368346 0.05197959889064945188 0.26182985864609720217 -141.54386130529087495 192.93088607850509675 0.46257655184585466657 +1.241854705974774431 0.0073163913270025450475 0.43641130899208679939 +308.0761874808885068 218.62011086494891288 148.7932624505823469 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -166 1.1053539394491334998e-06 0.0026060705004434367802 +166 1.1053539394491334998e-06 0.0027294558735364785618 1.0978911404624207108e-05 -1.237771754513656175 0.09985090848233675598 -0.673493464733506797 -159.8653376323906059 167.67939398828988828 67.79515481250830078 +1.2963745166832558731 0.0034043325384798118864 0.33020015938329294602 +73.96163975096013132 354.886841550204565 206.63567540075379725 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -167 1.1053539394491334998e-06 0.0032876807428519572333 +167 1.1053539394491334998e-06 0.0023440737884687683454 1.0978911404624207108e-05 -1.5615073961614613918 0.08588784473715820045 1.2619368121351299816 -108.4096329228115394 340.3401960769302832 63.319076699854733192 +1.1133345492260346976 0.0011591388934861801031 0.48103431467001306343 +226.41816836110476174 173.94407663538297015 144.67436636749943091 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -168 1.1053539394491334998e-06 0.0019942676122301436384 +168 1.1053539394491334998e-06 0.0012672577499801911835 1.0978911404624207108e-05 -0.94719161317387423615 0.0025784399633685993816 -1.4181104206233869913 -307.07053178506879476 152.09143191188155697 133.06819959682104582 +0.60189309857392880865 0.0083767637767715036334 0.018624213155859659086 +229.40491160703805917 289.0753963788822034 22.11230128196215361 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -169 1.1053539394491334998e-06 0.002882870214797733859 +169 1.1053539394491334998e-06 0.0016816587455295810122 1.0978911404624207108e-05 -1.369239751264664795 0.10918743269723539535 -0.2883961803729450657 -170.9289348637493049 153.83767062101799183 186.2272754424308232 +0.7987158043472744051 0.00047420727998471746663 0.46591218774088305477 +43.025524209519325325 126.20059793122902647 6.7084425859654972513 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -170 1.1053539394491334998e-06 0.0029537440839056139165 +170 1.1053539394491334998e-06 0.0027469802655764696665 1.0978911404624207108e-05 -1.4029018004302207245 0.24809775240944806352 1.471867721483669289 -305.25948508988943786 27.311469106159059095 169.23129972274861643 +1.3046978515579010782 0.009718325881772035477 0.2879767022977701152 +233.91150510083792824 254.98840830964169868 219.45043790648659865 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -171 1.1053539394491334998e-06 0.0020155745158349693355 +171 1.1053539394491334998e-06 0.0031926528968724679073 1.0978911404624207108e-05 -0.9573114788696452937 0.28030529796387287922 -0.5616708523061261227 -167.94345738435089288 155.77265709656450099 8.791339765064240197 +1.5163732435644108332 0.0029295138139127110087 0.32840722977188846476 +323.51936544562488507 34.22854017443987118 126.816058110113985435 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -172 1.1053539394491334998e-06 0.0041758312566283607958 +172 1.1053539394491334998e-06 0.0035052067479395476428 1.0978911404624207108e-05 -1.9833408114593851224 0.07838747704316120779 1.2287329234993096261 -66.3466683143381033 353.2468506381413249 172.7150842704386946 +1.6648229223238577568 0.002654112317870128794 0.17083834486027260624 +48.117742607139220468 178.38978668204242695 226.22621143244791142 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -173 1.1053539394491334998e-06 0.0016145006754889844669 +173 1.1053539394491334998e-06 0.001838393003548669653 1.0978911404624207108e-05 -0.7668186004267527611 0.06755032943396471756 -1.5258677315157571641 -221.3574836052374053 209.59221636096248176 134.89004930578829544 +0.8731578570498674807 0.00043382965833911770045 0.14108441272084493168 +290.24618248374150653 358.88384573110090514 10.601402057842364002 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -174 1.1053539394491334998e-06 0.0006639739583088267312 +174 1.1053539394491334998e-06 0.00093067278714692325337 1.0978911404624207108e-05 -0.31535916284208420635 0.029524443460272015854 -0.63730191247031331425 -121.825026691140237745 339.393255789165039 121.73367286454929115 +0.44202967204031873294 0.008257710081936825083 0.34599096908411330897 +203.48739340960284494 195.89940138259203195 17.082183487022412294 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -175 1.1053539394491334998e-06 0.0011058379721728341227 +175 1.1053539394491334998e-06 0.0017450042528889666407 1.0978911404624207108e-05 -0.525225624859837148 0.06904850791731366455 -0.18949769737094498967 -76.674248826470702056 342.70754527149875912 108.552867711473822965 +0.8288022044548091216 0.006115886185979944184 0.25529116017821090745 +53.829490571961741807 219.33778473703310397 343.53534427898989634 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -176 1.1053539394491334998e-06 0.003210376983246928588 +176 1.1053539394491334998e-06 0.0011667698358213854431 1.0978911404624207108e-05 -1.5247914246861935528 0.09476521090361228472 -0.4305633183563527533 -314.074301132280425 308.57041820537131116 84.736264096821372505 +0.5541656476877772075 0.0016390618557769155109 0.3104864966220892697 +176.9572515015768488 104.788569746962281215 77.14886608478597907 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -177 1.1053539394491334998e-06 0.0025248877344846715142 +177 1.1053539394491334998e-06 0.0015849004106428059382 1.0978911404624207108e-05 -1.1992134213296712364 0.035317570222131118574 0.7628052528012111422 -219.29855223302547529 341.31804878656163282 348.61242694200745973 +0.75275974371259668505 0.009038114731466031712 0.015702172595620456086 +283.44398352098153282 81.58770635648234304 350.55144207852117688 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -178 1.1053539394491334998e-06 0.0027949004582081944395 +178 1.1053539394491334998e-06 0.0014779839130640572598 1.0978911404624207108e-05 -1.3274578885178796028 0.21859953092315079215 0.320957243800680192 -115.253702801338178574 302.98458840238851053 113.343208273104565365 +0.70197899132236596387 0.0027532363280162652427 0.31837156736772159737 +179.79513291005125097 214.85384715268216382 69.9170103997386434 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -179 1.1053539394491334998e-06 0.0019314272250903238583 +179 1.1053539394491334998e-06 0.0024947503142784889404 1.0978911404624207108e-05 -0.917345123514006211 0.05859539720813596725 -0.392921176208752998 -159.47715978351993726 174.01546470352118945 335.47791240572797733 +1.1848994388496214558 0.0028306863944576278122 0.39380634232213529433 +257.86875984787252492 39.217060266705907168 307.09409211912384308 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -180 1.1053539394491334998e-06 0.0030009798778867529504 +180 1.1053539394491334998e-06 0.0024209039871307366447 1.0978911404624207108e-05 -1.4253367773742180447 0.000531564086534132502 -0.1538460783903009832 -88.9098830128897788 189.25312690573827012 117.5922309345887129 +1.1498255995568971155 0.005869562964554509224 0.49891729637140685982 +22.952690308212837067 27.786705678660602814 76.562922938223778146 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -181 1.1053539394491334998e-06 0.003942126268477348544 +181 1.1053539394491334998e-06 0.0024519234158279439095 1.0978911404624207108e-05 -1.8723409620028756972 0.12299549814693115646 1.0491317671893014563 -163.9311289741089297 138.6046095249983523 109.23280332760865008 +1.1645584982547720898 0.00089326472872355627483 0.17352040769354859506 +189.10428527863840031 248.98443834165630051 196.70913584086514447 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -182 1.1053539394491334998e-06 0.0039098695896303731543 +182 1.1053539394491334998e-06 0.001024322156351863638 1.0978911404624207108e-05 -1.8570204225299755674 0.06716465698443395416 -1.3149449112218682956 -152.38549754439128492 132.96884769774723623 16.962081958112626978 +0.48650910727055229898 0.0062340291869955035894 0.31558320184418009458 +60.187390464613173435 212.04805898225171745 213.57189992478367913 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -183 1.1053539394491334998e-06 0.0031229230239986469264 +183 1.1053539394491334998e-06 0.0037527897284826381195 1.0978911404624207108e-05 -1.4832545435621056207 0.1085148894337718134 -1.9141817954105773136 -68.16301760168497026 276.8171042261188859 49.994750228332200948 +1.7824142231587343232 0.008076098062902195909 0.22731699318437420532 +241.33034681508564745 91.29964040867220376 77.55454829343980805 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -184 1.1053539394491334998e-06 0.00081721522282645264065 +184 1.1053539394491334998e-06 0.002433831311738762775 1.0978911404624207108e-05 -0.38814219339079669702 0.17234637660136203907 -0.4562743658906511235 -169.93583976189941609 296.5950062644983518 56.72725900148243028 +1.1559655244969635479 0.0016380661739020753367 0.235790930269410004 +321.19446586376886899 54.22389316392560943 271.04642625993039928 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -185 1.1053539394491334998e-06 0.0017762514198957042457 +185 1.1053539394491334998e-06 0.0029350973355299183975 1.0978911404624207108e-05 -0.8436432690856123795 0.20575243354431554943 -1.8817385630593237433 -300.50243358157462126 330.94730641487603862 268.21749858047797943 +1.3940453944162498612 0.00077841784491747170564 0.28092453139431766695 +44.344994449764591593 339.67291104634369958 151.12443679878529679 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -186 1.1053539394491334998e-06 0.0010805702192394113826 +186 1.1053539394491334998e-06 0.0038169290788321545519 1.0978911404624207108e-05 -0.5132245255512426496 0.11174442994477924718 -0.2228803637432475171 -294.36350605264971136 129.27768307376197754 12.111622360957854383 +1.8128776646511952642 0.009577144155417962462 0.102383372042556208825 +58.42283688193803215 102.30186777369159756 98.086142829228379014 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -187 1.1053539394491334998e-06 0.0029247147938769755225 +187 1.1053539394491334998e-06 0.0037092087455415407268 1.0978911404624207108e-05 -1.3891141322743056907 0.21057431228455938954 0.20449278303411849711 -287.08243330389416315 98.26984841406665794 296.02510818269621495 +1.7617151247616444909 0.006801862124626666291 0.49660760298493189513 +219.13814363048163614 188.94648500227631871 13.318695124000999641 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -188 1.1053539394491334998e-06 0.00356444049818483374 +188 1.1053539394491334998e-06 0.0035179805920149388823 1.0978911404624207108e-05 -1.6929564140905064562 0.33946680825649450108 -0.81549196668223478124 -156.65500901096436337 255.47469290732212244 264.87468372294227947 +1.6708899505912782057 0.0013143444126650139815 0.16851823163657153604 +268.10095886723007652 100.026140809892083894 105.8844956443853107 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -189 1.1053539394491334998e-06 0.0024639627479837569986 +189 1.1053539394491334998e-06 0.0017793602037805589573 1.0978911404624207108e-05 -1.1702766648520064319 0.095533956530102201454 -0.56855787135811841626 -164.14221442959131991 43.687234168585433736 327.22722705425945833 +0.84511980814428544484 0.0018945620033825627017 0.36108250227350330297 +191.93161504103943571 34.666401519514842278 212.80421272965310209 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -190 1.1053539394491334998e-06 0.0032573952333840586126 +190 1.1053539394491334998e-06 0.001337398180775289937 1.0978911404624207108e-05 -1.5471230776313056321 0.11650354498733481168 0.70191113735239396565 -206.13239796851379992 107.34904694021790306 328.97993323307110813 +0.63520679598649709696 0.0014330566748994245842 0.015380000441147401169 +57.881111666861649212 31.610168368282963058 120.38149686642903191 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -191 1.1053539394491334998e-06 0.0030009717728063268295 +191 1.1053539394491334998e-06 0.0020675986630140241381 1.0978911404624207108e-05 -1.4253329278085145049 0.1501597220830941104 0.39652973909692856846 -40.247443601007283576 319.6452516167091744 134.10739537653478237 +0.9820207182858231576 0.0038878276442858871777 0.32469455752036718854 +105.35731765914751179 257.3843644363531098 192.07302426945980756 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -192 1.1053539394491334998e-06 0.0013422611377651077112 +192 1.1053539394491334998e-06 0.0025029455637043175103 1.0978911404624207108e-05 -0.63751649206125293734 0.075806715266713647905 0.2804420427983563835 -218.64915386173939282 221.05546802701758224 342.40292961773849356 +1.1887918309620983948 0.0064629091304864109274 0.12679380439923110258 +352.71774998892141184 147.45947326342127326 232.0002771188475208 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -193 1.1053539394491334998e-06 0.0008859869329946546352 +193 1.1053539394491334998e-06 0.00094512130272425033487 1.0978911404624207108e-05 -0.42080580718839571963 0.0119983282484818626346 -0.3161299048427956837 -149.18800802604991418 60.5909845801289606 208.51819419275437895 +0.44889209747095193404 0.0053373915614944849456 0.32941854539394571644 +305.71069304813414647 172.2992104392735655 91.00916799981128236 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -194 1.1053539394491334998e-06 0.0017584741051124559682 +194 1.1053539394491334998e-06 0.0034092625577608660855 1.0978911404624207108e-05 -0.8351998067517811819 0.011445746095452903959 0.6209122535088795747 -340.73475654779997512 127.744962085477155256 235.50810308362565593 +1.6192535455197185623 0.0030470668778012624175 0.41462701601666840379 +140.33788510416528084 61.311580446985658455 259.46790100376045984 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -195 1.1053539394491334998e-06 0.0035941240418474881858 +195 1.1053539394491334998e-06 0.0031194310802934548436 1.0978911404624207108e-05 -1.707054824671975668 0.19976014603758748822 -0.40427351713021869584 -173.0405374702452832 359.9823243093545102 112.37341495235216371 +1.4815960200164444149 0.00027725778011730597798 0.15321623213376195372 +26.125021238802005996 230.51083794879502875 172.17747993701027553 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -196 1.1053539394491334998e-06 0.0010295966364755685371 +196 1.1053539394491334998e-06 0.0030603886610092652493 1.0978911404624207108e-05 -0.48901425919017793564 0.21632130543458943928 0.57355417082153137276 -281.58315004540042992 246.10691711085428324 320.5755538814161696 +1.4535534022531539922 0.0069977768552927210183 0.34106957969408180364 +170.36755571685284849 106.74391944489579487 243.93856426771816359 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -197 1.1053539394491334998e-06 0.0029210208351740743726 +197 1.1053539394491334998e-06 0.00074818681152074183633 1.0978911404624207108e-05 -1.3873596602659648003 0.1617268262422353331 -0.6504742503246054852 -221.1529377647605088 22.37617605678385857 115.29188260119302356 +0.35535665755873779847 0.0058593579788037497905 0.2210846705896606923 +93.32630747998547349 93.38559488248714047 144.73647810339707576 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -198 1.1053539394491334998e-06 0.0030153034986417409185 +198 1.1053539394491334998e-06 0.0010189341349627265995 1.0978911404624207108e-05 -1.4321398831190061962 0.0746173051279102606 -0.60194226607724632405 -148.59323511314542543 92.511183554749820246 111.27779362238067051 +0.48395002811783771612 0.004355929018771392998 0.3148147651486025711 +104.37134461938777008 148.3206361948264771 319.21143480785696056 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -199 1.1053539394491334998e-06 0.0018280467594351772708 +199 1.1053539394491334998e-06 0.0012841975153201117172 1.0978911404624207108e-05 -0.8682438346829342013 0.092804786424910273857 1.1047880555090123789 -346.73279504462232126 269.01768225172332905 46.60263258409608511 +0.6099387608314446041 0.008206854224227476402 0.36303861724155556123 +167.05504491633865882 55.509667745005231154 62.54928443720996256 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -200 1.1053539394491334998e-06 0.001895079425048801046 +200 1.1053539394491334998e-06 0.0017521184176711138835 1.0978911404624207108e-05 -0.90008147687725870156 0.1953041133905608906 -0.7071950533141724282 -26.887827460724263773 114.32513513835675667 168.42698960989307011 +0.8321811277121804462 0.0074729471446112610833 0.27027343319120750165 +83.909248607546928156 177.97057268141455211 292.71160190085106478 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -201 1.1053539394491334998e-06 0.0030867621284638698105 +201 1.1053539394491334998e-06 0.0011400563073696778689 1.0978911404624207108e-05 -1.4660796685526804595 0.0085739749330765221286 0.27371637337949644708 -298.58078564598787352 320.5137290947542965 278.35072101533080513 +0.54147786699447120196 0.0075253498170819400556 0.36311252466536780847 +132.13500697470266232 8.066085135284627228 85.49238498185923163 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -202 1.1053539394491334998e-06 0.0030785318205770588764 +202 1.1053539394491334998e-06 0.0007266806633034729832 1.0978911404624207108e-05 -1.4621706251743404881 0.09314105154763369088 -0.19982872935061440911 -341.27447224579543672 42.872713102683988495 295.32780974335366864 +0.34514215921451030233 0.003138712621743231651 0.44549759279474399065 +172.0718978485695061 126.04240106870447846 60.443420132649201548 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -203 1.1053539394491334998e-06 0.0040235828068203239454 +203 1.1053539394491334998e-06 0.0021270971459522370655 1.0978911404624207108e-05 -1.9110293253315875361 0.0905593708657903701 0.83879090916646836806 -85.700950515521100215 61.811955605255384683 349.71073910239721272 +1.0102799467314087511 0.008936437059711933514 0.12275610939039000025 +166.58882157985800632 112.606652616931071975 258.1699258129560235 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -204 1.1053539394491334998e-06 0.0014830691354881705547 +204 1.1053539394491334998e-06 0.0039396547555080155497 1.0978911404624207108e-05 -0.70439425394895871513 0.11249602781023473885 0.49617827668886205217 -177.26744710934571003 249.86834382747201744 314.7773631948811044 +1.8711670993065925295 0.0041692516961832964614 0.27372930913918147589 +318.97638827684272655 79.61204505900145989 245.10666614701753474 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -205 1.1053539394491334998e-06 0.0019428111400564144058 +205 1.1053539394491334998e-06 0.0022620131795458212741 1.0978911404624207108e-05 -0.92275199504661231664 0.059354095297856256097 1.2547767808068381878 -101.635886213889591545 165.3545513447238875 159.37639449250872303 +1.0743592782708812905 0.0075169185908215887387 0.20882146866135353758 +234.88520970008934796 17.095830900992531554 138.43215727509851831 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -206 1.1053539394491334998e-06 0.0038120392872392591633 +206 1.1053539394491334998e-06 0.0026566875365635395124 1.0978911404624207108e-05 -1.8105552232904897902 0.12853096418984419347 -0.24818631836184507078 -292.97206108073658015 311.99808573320262894 286.06233119383887242 +1.2618126765055976968 0.0051193244260370820986 0.44677877859452302944 +150.47122191491908438 343.37990617736471677 301.97701769135204586 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -207 1.1053539394491334998e-06 0.0024300313022697688199 +207 1.1053539394491334998e-06 0.0034560287471722631767 1.0978911404624207108e-05 -1.154160682921570702 0.08725966411365988773 -1.8006975964365456999 -233.04812516155811863 52.814429252264126546 321.0861944621534576 +1.6414654804270103483 0.0037589487554753808415 0.09860035604127542763 +128.45161012695862723 138.12513353072444033 5.526087606209117986 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -208 1.1053539394491334998e-06 0.0015982765235963521285 +208 1.1053539394491334998e-06 0.002304056067954902178 1.0978911404624207108e-05 -0.75911282387534229077 0.51659451481006268825 0.42252783276096317344 -314.12072261030692744 86.16958179084514313 171.75042779325343645 +1.0943278477098412615 0.009219538533139311556 0.095222162006226629405 +88.84804456629333913 324.895702579789031 92.17463967125601698 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -209 1.1053539394491334998e-06 0.002987756118270597301 +209 1.1053539394491334998e-06 0.0023066637656628765428 1.0978911404624207108e-05 -1.4190560585147049544 0.13833450707790773127 3.0860107820975382076 -11.696961996630040659 56.084307131607140207 217.04746738497121328 +1.0955663923181668817 0.0023950527694435730375 0.46421151527080745103 +324.69082920897227496 153.43578428037761796 41.923263645731672966 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -210 1.1053539394491334998e-06 0.0021608993591002524575 +210 1.1053539394491334998e-06 0.002666806636181415379 1.0978911404624207108e-05 -1.02633454873375074 0.001706127426222724423 0.50327911324638396895 -336.73914531318530408 123.060327817306941256 356.54459228886423716 +1.2666188149757524606 0.003488235603050726663 0.19193371390053609593 +347.20274230104041635 274.35539277308657802 284.14459644239968839 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -211 1.1053539394491334998e-06 0.0011901801589035696437 +211 1.1053539394491334998e-06 0.0025343612448345294427 1.0978911404624207108e-05 -0.5652845474528588321 0.13309684635181026624 -0.50933903891211396164 -233.44186510457919326 88.707874477884189446 167.97424441001098216 +1.2037129325766431354 0.005956303872558349824 0.3559311915280667371 +48.760650502383171556 87.16581688184170673 276.1874380855203981 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -212 1.1053539394491334998e-06 0.0025815821371737700718 +212 1.1053539394491334998e-06 0.002164860753990135927 1.0978911404624207108e-05 -1.2261408318796347405 0.05557419448572172016 -0.4828656335899123575 -23.015180300770929023 254.57060004800263187 239.88648631376381104 +1.0282160414647947277 0.003302246673230939747 0.45300872701331695858 +8.341266489676053553 174.76177078024284128 139.30465877858190993 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -213 1.1053539394491334998e-06 0.00063277265540905251985 +213 1.1053539394491334998e-06 0.0040843078728013477335 1.0978911404624207108e-05 -0.30053988169570150513 0.19328138650894285955 0.21598956530403218279 -34.45632873143042474 178.68318386987357371 211.93307697865560613 +1.9398711281337372991 0.0032104583781716335665 0.49487356206707699968 +44.65480097070717136 319.46209090426640387 209.69564164397232275 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -214 1.1053539394491334998e-06 0.0035740753439909996703 +214 1.1053539394491334998e-06 0.0040395756391825065194 1.0978911404624207108e-05 -1.6975325527620954702 0.24120804132669299014 -0.21696041126133647214 -68.37839825154846096 50.92193921181014815 113.08108523892369135 +1.9186252350236749908 0.00069040374099674673303 0.28080790407379557783 +219.22548593736834732 69.77143869502911855 223.94515672652107696 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -215 1.1053539394491334998e-06 0.0025543900773323839662 +215 1.1053539394491334998e-06 0.00091136450338093370237 1.0978911404624207108e-05 -1.2132257692928836157 0.107237295473953248015 -0.10098482776314489373 -87.7455270808371921 83.80897091022158918 71.41361906076322441 +0.43285906507876115157 0.00578665741605939761 0.2520692500298778449 +44.834183261530739628 285.77456721148087126 192.38915101002694996 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -216 1.1053539394491334998e-06 0.0009699251654736918429 +216 1.1053539394491334998e-06 0.00089616742587646485246 1.0978911404624207108e-05 -0.46067286883107749773 0.1688662506455884671 -1.2569510875080234236 -350.21222578236876188 302.2583234297789545 47.826742066457129 +0.42564110482673200853 0.0005533013370391437393 0.053116133899315576272 +231.8805534469131544 245.91272374704527692 14.578357422055852055 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -217 1.1053539394491334998e-06 0.0036435924066057581685 +217 1.1053539394491334998e-06 0.0023193968496302787142 1.0978911404624207108e-05 -1.7305501770154163577 0.01735285133146844544 -0.7267473245905722301 -118.01325714816015022 96.33835317525982589 159.57688806539982806 +1.101614061281849688 0.002375347752201917382 0.09571246417006856744 +2.1596347900400880704 186.47676216633470858 354.55084390332558542 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -218 1.1053539394491334998e-06 0.00093596506834407177743 +218 1.1053539394491334998e-06 0.0025152446923543384353 1.0978911404624207108e-05 -0.44454327870662324607 0.060706209883527338655 0.13647043720933876854 -153.51109684968784563 173.5905181665501118 316.67704628147691892 +1.1946333897555136971 0.008334727953654641475 0.018759532069737849813 +64.0613065617537103 229.64622309479892692 219.95966530084248802 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -219 1.1053539394491334998e-06 0.003344460699277991393 +219 1.1053539394491334998e-06 0.0032400431175406403072 1.0978911404624207108e-05 -1.5884754410684209791 0.21051458148932752912 -0.21153964564835864293 -347.3998241231585098 58.557323906380361223 229.99417839573837341 +1.5388815665638277963 0.0038596927309883745025 0.07238357784374110926 +10.920921913452374952 45.915301829139480105 239.98713144054397617 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -220 1.1053539394491334998e-06 0.00092400884206938656 +220 1.1053539394491334998e-06 0.0014717978465589673241 1.0978911404624207108e-05 -0.43886458383982618336 0.11504228028084058366 -1.109711750898744409 -228.55908769144272696 179.57820706365569663 281.629801207905075 +0.69904087495512245987 0.0002590716396011583187 0.47895548340827731604 +134.11954212847601298 251.59803103538556002 309.99281161383004246 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -221 1.1053539394491334998e-06 0.0028006634216882680454 +221 1.1053539394491334998e-06 0.0013681262389589482948 1.0978911404624207108e-05 -1.3301950490884455469 0.04416368365623272313 1.5561505044971055689 -52.277563553165684596 69.80815438547521978 113.31762076029116315 +0.64980130618271503273 0.0025999932632500477245 0.30082009587089675318 +74.681300459323509244 205.48992092596844827 205.89842465713653041 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -222 1.1053539394491334998e-06 0.004184223063114922385 +222 1.1053539394491334998e-06 0.0007066410520629793092 1.0978911404624207108e-05 -1.9873265597484828238 0.287399113055856803 -0.22220832092245362821 -193.69315906464794352 62.25770560806260079 306.53585658446820617 +0.33562420305764623096 0.0057440840623750911986 0.49342242728993979117 +120.04528088590963364 66.99678235535563431 33.598980329756699348 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -223 1.1053539394491334998e-06 0.0023224934645144257279 +223 1.1053539394491334998e-06 0.0029659316169642682108 1.0978911404624207108e-05 -1.1030848205869228096 0.06557027663910168502 0.5064326685684403806 -13.36229549641530312 200.23977252213728661 161.4439250109718671 +1.4086903561023089715 0.004259341892601368508 0.14267186104797779933 +14.54174899091190909 269.45780351797532148 187.85278880815860703 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -224 1.1053539394491334998e-06 0.0021741135837244968142 +224 1.1053539394491334998e-06 0.0017923632718833247994 1.0978911404624207108e-05 -1.0326107388809111498 0.14122717938897408341 -1.3254658748396144219 -54.494478835311170428 283.56216339209044008 283.47035258272427427 +0.85129570799691123284 0.0035517834521794121663 0.33564765636087789957 +60.086176349130006713 71.36287420486030442 34.692133839275442142 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -225 1.1053539394491334998e-06 0.0024932384379273495862 +225 1.1053539394491334998e-06 0.0025792465993613212239 1.0978911404624207108e-05 -1.1841813624033246111 0.3176464445203699971 0.25123880947024102017 -178.97137225462668653 264.78745341679052672 280.9719525978529191 +1.225031551553044995 0.007727504177897022257 0.43707332848336299946 +222.49856223195729399 67.49883181549482458 155.70267988055215369 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -226 1.1053539394491334998e-06 0.0028565277287989922968 +226 1.1053539394491334998e-06 0.0025218031217037754374 1.0978911404624207108e-05 -1.3567281998283680089 0.051711033393789886115 -1.3046568876544615279 -246.79115051569343109 349.31729086911923332 175.86420958002608472 +1.1977483625090616925 0.0063833015042883698223 0.35426145269927189485 +158.78039132816695655 326.73787900488514424 196.37060773228171229 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -227 1.1053539394491334998e-06 0.0024426170266918286589 +227 1.1053539394491334998e-06 0.0037271560089606554719 1.0978911404624207108e-05 -1.1601383624191390354 0.017143942263863547887 -0.79026418791554764454 -105.6180709317223716 215.95370041886656054 59.37843762972664763 +1.7702393054110998616 0.009025891821731380285 0.42491523235654526935 +153.68685705365447802 110.118312544184320245 339.71639203889168357 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -228 1.1053539394491334998e-06 0.002232570437015297391 +228 1.1053539394491334998e-06 0.0020252561485106393543 1.0978911404624207108e-05 -1.0603752379030173536 0.006504765001193468961 1.5889932928049996796 -84.09974692968317811 343.65790189593803916 115.0537798259878457 +0.96190983929829898536 0.005028390165655082303 0.10997122163472444756 +176.66660117126502882 284.4337634361459095 342.56504716502763586 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -229 1.1053539394491334998e-06 0.0009451832487200006834 +229 1.1053539394491334998e-06 0.0022163078324654828465 1.0978911404624207108e-05 -0.44892151916304812165 0.078801554643226787156 -1.1890371638492829298 -44.280503484524793123 58.887298777879166778 149.54309227449363107 +1.0526511979880723846 0.0072927562709262181567 0.36442810076757331528 +311.91609402259734907 83.16466928132197722 145.73476099765306913 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -230 1.1053539394491334998e-06 0.0018790809461773211109 +230 1.1053539394491334998e-06 0.0021864883259347588167 1.0978911404624207108e-05 -0.892482885335344589 0.035572638795251999844 0.2940836905127558465 -185.50011760473597633 22.684333587583402903 287.67002313108827138 +1.0384882108735697948 0.004272215538613700729 0.48261188771066088066 +5.0174868989032495037 63.042328755519697836 134.43975920341418373 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -231 1.1053539394491334998e-06 0.0033555440862178059289 +231 1.1053539394491334998e-06 0.003586532509954617801 1.0978911404624207108e-05 -1.5937395746734457358 0.18011588584765314547 0.5096496392660394559 -341.27235396837454573 353.21622952277823515 36.553075875877638623 +1.7034491725037455012 0.00091850208316692221085 0.4865720816280050265 +186.59166544767518303 328.54463528608755496 169.13916587264412783 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -232 1.1053539394491334998e-06 0.00103152973312111297 +232 1.1053539394491334998e-06 0.0019971223755757787394 1.0978911404624207108e-05 -0.48993239721683257137 0.06638690014504135262 0.64479276081127034903 -255.65498136273069463 68.56717412261879474 155.30622770921908682 +0.9485475033673462786 0.0024845240039717132567 0.42570943759153928587 +266.1136976489871131 251.90747956373090233 134.63749761808043104 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -233 1.1053539394491334998e-06 0.0033812199497956214844 +233 1.1053539394491334998e-06 0.0018117777664029862334 1.0978911404624207108e-05 -1.6059345090407080026 0.033659166124144296317 0.43860972917033291818 -38.80431967647766811 102.52939986535656658 67.88211610029772203 +0.8605167605127614916 0.008511268700557947375 0.14756130233560865728 +207.83259904623565717 241.90873517882627652 66.39053522116275019 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -234 1.1053539394491334998e-06 0.0029520001660215044775 +234 1.1053539394491334998e-06 0.0041112960409139540064 1.0978911404624207108e-05 -1.4020735142043589949 0.029559902498528051185 0.5157511816230192503 -99.106262075959591584 181.03238775815361805 311.76674693965139795 +1.9526893508910134756 0.0053017033825177826978 0.18168625664735371661 +107.23622785654312395 264.34294940319352918 139.24585411098206578 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -235 1.1053539394491334998e-06 0.0027651059487451273616 +235 1.1053539394491334998e-06 0.00084542567454914067173 1.0978911404624207108e-05 -1.3133067739387846995 0.059456482834846592633 1.0821307348863606901 -189.37153868950656488 61.637284594410999716 36.933412538324773777 +0.4015409484584254729 0.004569942210221058891 0.20513364186354821062 +147.04352523756176652 145.80768674791906392 141.08054790192051087 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -236 1.1053539394491334998e-06 0.0023103658574793706543 +236 1.1053539394491334998e-06 0.0027510687630676706793 1.0978911404624207108e-05 -1.0973247272067636615 0.081786317551109169455 0.49155601510729562964 -177.32103819493687524 42.319798878712802548 121.0538418102005096 +1.3066397125751481045 0.0014607117158009586076 0.17392330571108188808 +41.268742310849482635 50.34908495498763159 131.26010660592496038 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -237 1.1053539394491334998e-06 0.0010568843489413937982 +237 1.1053539394491334998e-06 0.0018516760523599570933 1.0978911404624207108e-05 -0.5019747526725075737 0.18012357891469493731 -0.6670429361679561797 -259.3287518732328749 155.8189007118570828 308.1657410675054507 +0.87946673573509115407 0.0069253255867478746496 0.42639371801740005852 +183.18023072835251241 66.90390603052549068 269.9485162822036841 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -238 1.1053539394491334998e-06 0.0038190141868241248855 +238 1.1053539394491334998e-06 0.0009976837669774952503 1.0978911404624207108e-05 -1.8138680015500368015 0.06542001905237525283 0.34929480995373435315 -238.94221046294680377 69.74850544769508076 265.18431123684644035 +0.47385701441745431417 0.008776175977294868938 0.2420535467050825007 +13.241003135370498001 29.930518870899959438 264.79758292300277844 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -239 1.1053539394491334998e-06 0.0016791334970090412546 +239 1.1053539394491334998e-06 0.002403879454815229617 1.0978911404624207108e-05 -0.79751641956803698275 0.017796594964407531914 -1.5336867978940169621 -131.1039253212541098 149.87639581590860871 189.94640952444078152 +1.141739676620294297 0.0052954006268846765676 0.39314436349414877414 +268.12797354862044585 89.01621607348261023 283.2200310651768973 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -240 1.1053539394491334998e-06 0.0038120016742585246999 +240 1.1053539394491334998e-06 0.003342777170318209772 1.0978911404624207108e-05 -1.8105373587372675104 0.2736913769073844871 0.9204772464905174312 -217.60746020880563378 193.29416906730736514 157.0402949713867713 +1.5876758369924879322 0.0075782735246336385693 0.18385331654242520472 +33.490939838720102273 95.664683550198063244 192.41953657540850031 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -241 1.1053539394491334998e-06 0.0029353054938965504343 +241 1.1053539394491334998e-06 0.0034831354783670050171 1.0978911404624207108e-05 -1.394144260715775907 0.10294914336140900679 -0.11063502598404949262 -353.23956745785028488 181.72873017055380274 221.08208652682506568 +1.654340015565003208 0.007918655724342917382 0.36378558708580316372 +210.66813303450092576 38.317401760357086005 89.57021493780356991 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -242 1.1053539394491334998e-06 0.0029327693736554875675 +242 1.1053539394491334998e-06 0.0015733736610314644142 1.0978911404624207108e-05 -1.3929397123354063659 0.1567073502106984817 -1.0667538437947410301 -115.907567324832726285 59.85206470834485515 260.56459108426372495 +0.74728503184741801313 0.0032172058887935338876 0.34763922608101577305 +330.30756327774741976 78.395884514425375755 154.66807042402732009 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -243 1.1053539394491334998e-06 0.003764734340265912237 +243 1.1053539394491334998e-06 0.0015024124635363894444 1.0978911404624207108e-05 -1.7880874016400731819 0.16719682166172822324 0.23120039763628549845 -51.548815611349631638 65.11627242296204088 202.15637959449890104 +0.71358150544207954447 0.005098169278581456132 0.354132981158384208 +101.241415954006015454 226.88387410856495308 213.36195978437388021 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -244 1.1053539394491334998e-06 0.0019887211843498044838 +244 1.1053539394491334998e-06 0.0024256195223060660179 1.0978911404624207108e-05 -0.9445572977293907879 0.08919984476385846295 0.54490643910550951023 -246.78128776954710588 206.01086480485230368 266.56846272027337363 +1.1520652765903638404 0.00039979469491987498168 0.2619806069247970215 +129.34836716938255563 32.698660384755541486 47.76954843794489136 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -245 1.1053539394491334998e-06 0.0025079457016496560636 +245 1.1053539394491334998e-06 0.0010295582610689521239 1.0978911404624207108e-05 -1.1911666821092024016 0.074351177989952915715 -0.69538887092890699915 -72.267673460454219025 212.94200785962866007 303.0544687451530308 +0.4889960325173501321 0.00953330627798549754 0.032636225049778477825 +30.945257375386532317 8.9502855637170739556 281.9619345119862146 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -246 1.1053539394491334998e-06 0.0031434859938471441787 +246 1.1053539394491334998e-06 0.0040735004214879100807 1.0978911404624207108e-05 -1.4930210726191879278 0.059788521244801128007 -0.17403999764057989652 -14.058744144383563679 257.13741630072581756 238.05948750247222279 +1.9347380521207213633 0.0061709428962725245207 0.18206378926998395551 +268.40431808929264434 139.72384314612651224 97.64478403540555007 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -247 1.1053539394491334998e-06 0.0035281167851081643952 +247 1.1053539394491334998e-06 0.0039790977499327418195 1.0978911404624207108e-05 -1.6757042077293549109 0.10527876653653885086 0.72614096902153491 -298.9807005550179042 224.28765074111709055 328.7990264357159731 +1.889900830571367818 0.0059630702111043397406 0.44802136438877876445 +344.6465255333775417 236.14941078506609529 93.97870420135595282 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -248 1.1053539394491334998e-06 0.0027009046389202507528 +248 1.1053539394491334998e-06 0.0021148161915397994054 1.0978911404624207108e-05 -1.2828139043519908302 0.09921195956887646217 0.58230508536927572116 -15.864947101737566726 230.95250431192721408 259.8396337761254813 +1.004447019921639539 0.0061398326141391566454 0.24818031299564763392 +77.2653313418328338 16.855370968656181674 295.22318336849701836 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -249 1.1053539394491334998e-06 0.0016022886022436256328 +249 1.1053539394491334998e-06 0.002161969124119271856 1.0978911404624207108e-05 -0.7610183892181208165 0.15475150980894822328 -0.5610432264585476503 -172.61424792316188359 299.7158071599064897 263.46266360461993372 +1.0268426412524618296 0.0020303539850371954065 0.4545716073597971807 +101.72505014017664848 353.0747641621397861 17.310508232021199149 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -250 1.1053539394491334998e-06 0.0020342639444169473436 +250 1.1053539394491334998e-06 0.0013500001344871598864 1.0978911404624207108e-05 -0.9661881561517204897 0.09850479147252759471 -1.9386322323343987417 -248.1531023702021912 352.63109468600481478 37.851907300542826817 +0.6411921837009073588 0.008810306621742310801 0.30869615351986745555 +355.9149898972989945 358.0328710131873322 174.7162073679091634 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -251 1.1053539394491334998e-06 0.0023480583550367446927 +251 1.1053539394491334998e-06 0.0014155631438375293998 1.0978911404624207108e-05 -1.1152270475107055603 0.0028662551334571089237 0.5734677325458960029 -288.68780518690425652 229.23151170663010134 254.18031319514730626 +0.6723318021805277933 0.00842670699769050742 0.4283300305564463062 +192.77762805609106067 180.17735441882669534 255.90801647172918365 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -252 1.1053539394491334998e-06 0.0031331969524242357334 +252 1.1053539394491334998e-06 0.0020923628796454186781 1.0978911404624207108e-05 -1.4881342190777622214 0.04045634026057227245 -0.2956718589487913329 -121.05353482593721992 146.70740167121149966 324.92755783433256056 +0.9937826594396721447 0.006172407155352415374 0.19106488268036120326 +257.4605374263549038 85.1732723860656904 228.11893704313536091 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -253 1.1053539394491334998e-06 0.0007893125087329286851 +253 1.1053539394491334998e-06 0.0024110010975998127964 1.0978911404624207108e-05 -0.37488960050301511906 0.19039987271024397253 -1.1559837696931039019 -207.90674131377170397 41.325492523136382772 30.605681300644242526 +1.1451221516082092933 0.008873912374514099713 0.012132993003118819342 +198.23741779484768699 261.31906330910709357 268.37623845258082156 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 From 55d4de3b856a02478a21a10e1c38b805d890e02e Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 20:32:08 -0400 Subject: [PATCH 181/315] Fixed bug that was incorrectly setting status flags on encounter spills --- src/util/util_spill.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index ccc494474..6cff74d42 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -316,7 +316,7 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive ! Therefore we need to set the nenc values for both the keeps and discareds discards%nenc = count(lspill_list(:)) keeps%nenc = count(.not.lspill_list(:)) - if (keeps%nenc > size(keeps%status)) keeps%status(keeps%nenc+1:size(keeps%status)) = INACTIVE + if (size(keeps%status) > keeps%nenc) keeps%status(keeps%nenc+1:size(keeps%status)) = INACTIVE end associate return From 3a1e58ce5112bd932cb7e05ce542bfed71a0343c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 22:37:02 -0400 Subject: [PATCH 182/315] Removed problematic status updates from spill methods --- src/util/util_spill.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 6cff74d42..63cce317a 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -281,7 +281,6 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) ! Therefore we need to set the nbody values for both the keeps and discareds discards%nbody = count(lspill_list(:)) keeps%nbody = keeps%nbody - discards%nbody - if (keeps%nbody > size(keeps%status)) keeps%status(keeps%nbody+1:size(keeps%status)) = INACTIVE end associate return @@ -316,7 +315,6 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive ! Therefore we need to set the nenc values for both the keeps and discareds discards%nenc = count(lspill_list(:)) keeps%nenc = count(.not.lspill_list(:)) - if (size(keeps%status) > keeps%nenc) keeps%status(keeps%nenc+1:size(keeps%status)) = INACTIVE end associate return From e9a165f717b6b1832f096d7a78f592bd6d13d105 Mon Sep 17 00:00:00 2001 From: David Minton Date: Mon, 23 Aug 2021 22:58:35 -0400 Subject: [PATCH 183/315] Converted the bad Rhill value from the Clement run and re-saved the initial conditions. --- .../symba_clement_2018/ConvertRhill.ipynb | 543 + examples/symba_clement_2018/param.in | 67 +- .../symba_clement_2018/pl_clement_2018.in | 13262 ++++++++-------- examples/symba_clement_2018/sun_MsunAUYR.in | 14 +- examples/symba_clement_2018/tp.in | 12974 ++++++++++++++- 5 files changed, 20189 insertions(+), 6671 deletions(-) create mode 100644 examples/symba_clement_2018/ConvertRhill.ipynb diff --git a/examples/symba_clement_2018/ConvertRhill.ipynb b/examples/symba_clement_2018/ConvertRhill.ipynb new file mode 100644 index 000000000..651ca35b3 --- /dev/null +++ b/examples/symba_clement_2018/ConvertRhill.ipynb @@ -0,0 +1,543 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import swiftest" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.in\n" + ] + } + ], + "source": [ + "sim = sim = swiftest.Simulation(param_file=\"param.in\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading in time 9.900e+03\n", + "Creating Dataset\n", + "Successfully converted 100 output frames.\n", + "\n", + "Adding particle info to Dataset\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "sim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'a' (time: 100, id: 5430)>\n",
    +       "array([[       nan, 5.17228168, 9.4952418 , ...,        nan,        nan,\n",
    +       "               nan],\n",
    +       "       [       nan, 5.17132001, 9.50066687, ...,        nan,        nan,\n",
    +       "               nan],\n",
    +       "       [       nan, 5.17114709, 9.48660888, ...,        nan,        nan,\n",
    +       "               nan],\n",
    +       "       ...,\n",
    +       "       [       nan, 5.17127142, 9.43908273, ...,        nan,        nan,\n",
    +       "               nan],\n",
    +       "       [       nan, 5.17205309, 9.42926044, ...,        nan,        nan,\n",
    +       "               nan],\n",
    +       "       [       nan, 5.17130269, 9.43661066, ...,        nan,        nan,\n",
    +       "               nan]])\n",
    +       "Coordinates:\n",
    +       "  * id       (id) float64 0.0 2.0 3.0 4.0 ... 5.448e+03 5.449e+03 5.45e+03\n",
    +       "  * time     (time) float64 0.0 100.0 200.0 300.0 ... 9.7e+03 9.8e+03 9.9e+03
    " + ], + "text/plain": [ + "\n", + "array([[ nan, 5.17228168, 9.4952418 , ..., nan, nan,\n", + " nan],\n", + " [ nan, 5.17132001, 9.50066687, ..., nan, nan,\n", + " nan],\n", + " [ nan, 5.17114709, 9.48660888, ..., nan, nan,\n", + " nan],\n", + " ...,\n", + " [ nan, 5.17127142, 9.43908273, ..., nan, nan,\n", + " nan],\n", + " [ nan, 5.17205309, 9.42926044, ..., nan, nan,\n", + " nan],\n", + " [ nan, 5.17130269, 9.43661066, ..., nan, nan,\n", + " nan]])\n", + "Coordinates:\n", + " * id (id) float64 0.0 2.0 3.0 4.0 ... 5.448e+03 5.449e+03 5.45e+03\n", + " * time (time) float64 0.0 100.0 200.0 300.0 ... 9.7e+03 9.8e+03 9.9e+03" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.ds['a']" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "Mcb = sim.ds.sel(id=0, time=0.0)['GMass'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ds['Rhill'] = sim.ds['a'] * (sim.ds['GMass'] / (3 * Mcb))**(1.0/3.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "sim.param['IN_FORM'] = 'EL'" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "sim.save(param_file=\"param.in\",framenum=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index 86c852f45..3e4688223 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -1,32 +1,35 @@ -! -! Parameter file for Chambers 2013 in units of Msun, AU, year -! -T0 0.0e0 -TSTOP 1e8 ! simulation length in years -DT 0.016 ! stepsize in years -CB_IN sun_MsunAUYR.in -PL_IN pl_clement_2018.in -TP_IN tp.in -IN_TYPE ASCII -ISTEP_OUT 625 ! output cadence -ISTEP_DUMP 625 ! system dump cadence -BIN_OUT bin.dat -PARTICLE_OUT particle.dat -OUT_TYPE REAL8 ! double precision real output -OUT_FORM EL ! osculating element output -OUT_STAT REPLACE -CHK_CLOSE yes ! check for planetary close encounters -CHK_RMAX 100000.0 ! discard outside of -EXTRA_FORCE no ! no extra user-defined forces -BIG_DISCARD no ! output all planets if anything discarded -RHILL_PRESENT yes ! Hill's sphere radii in input file -MU2KG 1.98847e30 ! (M_sun-> kg) -DU2M 1.495979e11 ! distance unit to meters (AU --> m) -TU2S 3.15569259747e7 ! time unit to seconds (years --> seconds) -GMTINY 1e-10 -ENERGY yes -ROTATION yes -FRAGMENTATION yes -DISCARD_OUT discard.out -SEED 8 12261555 871132 92734722 21132443 36344777 4334443 219291656 3848566 -ENERGY_OUT energy.out +! VERSION Swiftest parameter input from file param.in +T0 0.0 +TSTOP 100000000.0 +DT 0.016 +ISTEP_OUT 6250 +ISTEP_DUMP 6250 +OUT_FORM EL +OUT_TYPE REAL8 +OUT_STAT REPLACE +IN_TYPE ASCII +PL_IN pl_clement_2018.in +TP_IN tp.in +CB_IN sun_MsunAUYR.in +BIN_OUT bin.dat +CHK_QMIN -1.0 +CHK_RMIN -1.0 +CHK_RMAX 100000.0 +CHK_EJECT -1.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE -1.0 -1.0 +MU2KG 1.98847e+30 +TU2S 31556925.9747 +DU2M 149597900000.0 +IN_FORM EL +EXTRA_FORCE NO +DISCARD_OUT discard.out +PARTICLE_OUT particle.dat +BIG_DISCARD NO +CHK_CLOSE YES +RHILL_PRESENT YES +FRAGMENTATION YES +ROTATION YES +TIDES NO +ENERGY YES +GR NO diff --git a/examples/symba_clement_2018/pl_clement_2018.in b/examples/symba_clement_2018/pl_clement_2018.in index 6531293ab..584245a70 100644 --- a/examples/symba_clement_2018/pl_clement_2018.in +++ b/examples/symba_clement_2018/pl_clement_2018.in @@ -1,6631 +1,6631 @@ -1105 ! Solar System in unit system AU, M_sun, and years -2 3.76722155e-02 7.02179932e-03 ! ID / G*Mass / Rhill -4.67326079e-04 ! Radius -3.46016026e+00 -3.69444209e+00 -6.20863032e-02 ! x y z -1.97779378e+00 2.01435697e+00 -5.26023669e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -3 1.12798314e-02 1.28358892e-02 ! ID / G*Mass / Rhill -3.89256801e-04 ! Radius -5.80057555e+00 -8.09777935e+00 -9.01449584e-02 ! x y z -1.54008846e+00 1.17938756e+00 -8.18949214e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -4 1.72303742e-03 2.60453463e-02 ! ID / G*Mass / Rhill -1.69534465e-04 ! Radius -1.49686212e+01 1.28837160e+01 -1.46070677e-01 ! x y z --9.47697181e-01 1.02187103e+00 1.60728490e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -5 2.03247359e-03 4.06127965e-02 ! ID / G*Mass / Rhill -1.64587872e-04 ! Radius -2.95271772e+01 -4.76916274e+00 -5.82292396e-01 ! x y z -1.75236191e-01 1.13864010e+00 -2.74871413e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -6 2.03247359e-03 4.75205933e-02 ! ID / G*Mass / Rhill -1.64587872e-04 ! Radius --3.04519295e+01 -1.91596620e+01 7.41542471e-01 ! x y z -5.81398717e-01 -8.52969532e-01 -2.45385731e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -7 2.96336237e-06 2.55850733e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -5.66523499e-01 1.79402280e+00 8.44292253e-02 ! x y z --4.34952567e+00 1.35145687e+00 4.82415849e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -8 2.96336237e-06 8.90172762e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.53317332e-01 -6.04769252e-01 -9.89530340e-04 ! x y z -7.15717041e+00 2.99720377e+00 3.97992456e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -9 2.96336237e-06 1.90886004e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --9.12608639e-03 -1.40324765e-01 5.97704925e-04 ! x y z -1.67116314e+01 -1.08132338e+00 5.00920339e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -10 2.96336237e-06 1.65160505e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -9.00038912e-02 7.97626220e-02 -1.72360158e-02 ! x y z --1.19225579e+01 1.35352747e+01 1.96141716e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -11 2.96336237e-06 1.96750200e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --8.00576436e-02 1.43721132e+00 1.54373807e-01 ! x y z --5.21664730e+00 -2.90853697e-01 -2.54928816e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -12 2.96336237e-06 1.98710528e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.30542022e-01 -6.36933948e-02 -1.68821146e-02 ! x y z -7.08252820e+00 1.48056049e+01 -9.26228367e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -13 2.96336237e-06 1.92492700e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.38243683e-01 -3.16784040e-02 -3.88816365e-03 ! x y z -3.70831361e+00 -1.62507913e+01 4.77490916e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -14 2.96336237e-06 3.10412339e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.91748448e-01 -1.23884060e-01 2.63776737e-03 ! x y z -7.14028861e+00 1.10520863e+01 -2.17262930e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -15 2.96336237e-06 3.37224346e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.67858115e-01 1.82806647e-01 9.78285009e-03 ! x y z --9.27340968e+00 8.53816575e+00 -2.47211728e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -16 2.96336237e-06 1.71849500e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.18275974e-01 4.38920203e-02 -1.04285189e-02 ! x y z --6.06667533e+00 -1.65601619e+01 -8.97959549e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -17 2.96336237e-06 1.72484792e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -5.47122549e-03 1.27171688e-01 2.49596331e-04 ! x y z --1.75769160e+01 7.56278698e-01 -1.99936830e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -18 2.96336237e-06 4.58899065e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -7.65496900e-01 3.29356285e+00 1.16345951e-01 ! x y z --3.30779398e+00 7.56368268e-01 3.79199886e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -19 2.96336237e-06 1.41237877e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.59492523e-02 -1.00641476e-01 -6.21175544e-03 ! x y z -1.88015679e+01 4.73245600e+00 1.72033971e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -20 2.96336237e-06 1.92187081e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.25618883e-02 -1.35936819e-01 2.07675392e-02 ! x y z -1.62343315e+01 -3.98353210e+00 -6.48830154e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -21 2.96336237e-06 2.78172727e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.81828060e-01 -8.79809539e-02 -3.39709708e-02 ! x y z -6.02134521e+00 -1.25111484e+01 1.03925770e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -22 2.96336237e-06 1.09419386e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --7.62412793e-01 -2.16191898e-01 -1.49023575e-01 ! x y z -1.93601277e+00 -6.72048540e+00 -1.45492761e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -23 2.96336237e-06 1.95617222e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.40080131e-01 3.16950579e-02 -1.16555942e-02 ! x y z --3.49313840e+00 -1.60926303e+01 -1.67120585e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -24 2.96336237e-06 2.95699775e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.15760368e-01 -2.91110588e-02 6.17139230e-04 ! x y z -1.79456171e+00 1.32957819e+01 1.18560506e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -25 2.96336237e-06 7.37694354e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -5.26748110e-01 1.25330549e-01 -4.82892963e-02 ! x y z --2.00895217e+00 8.26007214e+00 -5.72597424e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -26 2.96336237e-06 1.38187012e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --7.60074036e-02 6.71728131e-02 -8.17370040e-03 ! x y z --1.28706410e+01 -1.48153303e+01 -1.69392316e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -27 2.96336237e-06 2.98635158e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.82636170e-01 1.21690566e-01 1.01459191e-02 ! x y z --7.43193220e+00 -1.11639911e+01 2.13692039e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -28 2.96336237e-06 1.97488072e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.20233458e-02 1.43750110e-01 -2.35221899e-04 ! x y z --1.62138414e+01 -2.48066138e+00 1.57896729e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -29 2.96336237e-06 2.48578387e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.76135681e-01 -4.84229919e-02 5.60864720e-03 ! x y z -3.91284521e+00 1.39672296e+01 -2.45429398e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -30 2.96336237e-06 7.25227897e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -5.27943044e-01 8.46852756e-02 6.96857300e-04 ! x y z --1.36032970e+00 8.47994233e+00 -6.28040065e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -31 2.96336237e-06 4.02799742e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --7.22706393e-03 -2.96095554e-01 -2.33599721e-02 ! x y z -1.14275031e+01 -1.56126902e-01 -1.44276095e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -32 2.96336237e-06 4.51857012e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.63589273e-01 2.02130609e-01 5.55793169e-03 ! x y z --6.64376499e+00 -8.65267602e+00 -2.10678008e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -33 2.96336237e-06 1.76467310e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.26320758e+00 3.03288204e-01 3.29789296e-02 ! x y z --1.28420613e+00 -5.35446228e+00 2.58056975e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -34 2.96336237e-06 2.54334051e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.80522672e-02 1.83546865e-01 3.58952309e-03 ! x y z --1.42013310e+01 -2.95280237e+00 8.39818470e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -35 2.96336237e-06 1.92563113e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.64127464e-02 -1.39351845e-01 -1.82225350e-03 ! x y z -1.63895331e+01 3.09643997e+00 -3.20577671e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -36 2.96336237e-06 2.04713108e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.04271372e+00 -1.09046638e+00 -1.40113897e-02 ! x y z -3.63235564e+00 -3.45321638e+00 -1.01468615e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -37 2.96336237e-06 1.35854778e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -9.64832654e-02 2.55978213e-02 3.23500859e-03 ! x y z --5.10994329e+00 1.92337154e+01 5.09146692e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -38 2.96336237e-06 2.45751474e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.59118984e-01 8.52000503e-02 -1.03825032e-02 ! x y z --6.87843878e+00 1.30022210e+01 1.50410166e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -39 2.96336237e-06 4.10225851e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.85165693e+00 -9.83933774e-01 2.08613851e-01 ! x y z -1.18831306e+00 3.40677272e+00 -1.67190215e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -40 2.96336237e-06 1.56983076e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.15043845e+00 -4.75214310e-04 -1.15384109e-01 ! x y z -1.36168482e-02 -5.84257924e+00 -1.07357229e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -41 2.96336237e-06 8.63077838e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.03626525e-01 -6.26231864e-01 -4.75087591e-03 ! x y z -7.77008368e+00 1.28671384e+00 5.07371811e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -42 2.96336237e-06 1.82360183e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.06670651e-01 -8.15558319e-02 2.68720322e-03 ! x y z -1.03980704e+01 -1.36328601e+01 -1.39088180e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -43 2.96336237e-06 1.99807059e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --9.17701058e-02 -1.14518004e-01 1.13244354e-02 ! x y z -1.27691041e+01 -1.02513960e+01 -2.20077139e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -44 2.96336237e-06 2.13073290e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --7.52058262e-02 -1.37147912e-01 1.06620439e-02 ! x y z -1.37046324e+01 -7.69793595e+00 -2.23714526e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -45 2.96336237e-06 1.68022331e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -8.70823705e-02 -8.77104728e-02 -4.16394361e-03 ! x y z -1.26725615e+01 1.25473673e+01 1.19877247e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -46 2.96336237e-06 1.54290758e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -8.78464690e-02 -7.17359238e-02 6.80426203e-03 ! x y z -1.17745635e+01 1.44377972e+01 6.74065437e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -47 2.96336237e-06 2.30394141e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.90629534e-02 1.67175274e-01 -5.15090589e-03 ! x y z --1.48124644e+01 2.51685780e+00 -2.59440088e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -48 2.96336237e-06 2.39408992e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --6.31629379e-02 -1.64437941e-01 -4.21265914e-03 ! x y z -1.39601454e+01 -5.37797939e+00 6.49836474e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -49 2.96336237e-06 6.67322685e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -4.80428544e-01 1.07625021e-01 4.64810594e-03 ! x y z --1.96024550e+00 8.71960904e+00 4.16818956e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -50 2.96336237e-06 8.57270405e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -7.93867486e-02 6.26370978e-01 3.70416397e-03 ! x y z --7.83896900e+00 9.95133874e-01 -3.02638156e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -51 2.96336237e-06 3.18771092e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.46936372e-01 -1.79107677e-01 -3.94308354e-02 ! x y z -1.00882444e+01 8.08803625e+00 8.13029066e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -52 2.96336237e-06 5.31205979e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.76927905e-01 -2.74689076e-01 3.16396857e-02 ! x y z -7.08469168e+00 -7.11809347e+00 6.85186336e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -53 2.96336237e-06 3.35901294e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --4.73231109e-02 2.41683214e-01 -2.56931693e-02 ! x y z --1.23563545e+01 -2.49464137e+00 -6.42045959e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -54 2.96336237e-06 5.02313479e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.69106371e-01 1.94950737e-02 -1.15240620e-02 ! x y z --5.65639555e-01 -1.03178976e+01 1.80572913e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -55 2.96336237e-06 1.59755138e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --4.28522246e-03 1.17539559e-01 5.90218108e-03 ! x y z --1.82138411e+01 -5.61389121e-01 -1.70410021e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -56 2.96336237e-06 2.55894735e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.18440542e-02 1.88009803e-01 -6.44871654e-03 ! x y z --1.44178626e+01 -8.69475309e-01 8.97142075e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -57 2.96336237e-06 8.65740849e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.91040188e-01 5.63702069e-01 6.45762481e-02 ! x y z --6.84444296e+00 -3.67087020e+00 1.26036040e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -58 2.96336237e-06 1.42464374e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.04760272e-01 -1.22136583e-03 4.48888625e-04 ! x y z -2.40281653e-01 -1.94249235e+01 -1.82728909e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -59 2.96336237e-06 4.06340654e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.89312203e+00 -6.46473621e-01 -4.15103227e-01 ! x y z -8.23576732e-01 3.52688638e+00 2.63793368e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -60 2.96336237e-06 1.78913947e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -8.31975440e-02 -1.02200408e-01 -1.61821611e-03 ! x y z -1.34169190e+01 1.09109697e+01 6.80329268e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -61 2.96336237e-06 4.96870828e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.86746289e-01 3.14854888e-01 6.02036532e-03 ! x y z --8.90358668e+00 5.26975945e+00 8.62865623e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -62 2.96336237e-06 3.22763412e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.68525624e+00 1.64984556e+00 3.00838400e-01 ! x y z --2.83450668e+00 -2.92336117e+00 1.53842033e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -63 2.96336237e-06 2.55414618e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.87299845e-01 1.05116775e-02 -1.51792555e-02 ! x y z --8.21679101e-01 1.44544753e+01 -2.60777554e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -64 2.96336237e-06 2.00160244e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.34231074e-01 6.09596770e-02 -1.11141486e-03 ! x y z --6.76625475e+00 1.48997931e+01 -5.27596276e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -65 2.96336237e-06 3.63826375e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.28159524e-01 -1.40568977e-01 -9.22236504e-03 ! x y z -6.37581067e+00 -1.02946382e+01 -7.14592945e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -66 2.96336237e-06 2.14306051e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.01115698e-01 1.21470452e-01 3.55874508e-03 ! x y z --1.21342912e+01 -1.00854614e+01 -6.26352753e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -67 2.96336237e-06 4.48382499e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.28175639e-01 -3.04855778e-01 -6.95097536e-04 ! x y z -1.00587755e+01 -4.22888680e+00 3.93895336e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -68 2.96336237e-06 1.93381926e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --9.66850846e-02 -1.04492055e-01 6.04473678e-03 ! x y z -1.20810341e+01 -1.10015814e+01 3.15945521e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -69 2.96336237e-06 8.13564084e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --5.96169251e-01 5.89954369e-02 9.93373696e-03 ! x y z --8.04635758e-01 -8.06704294e+00 -4.17590745e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -70 2.96336237e-06 8.68455551e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --6.12448361e-01 -1.84313946e-01 9.63453955e-03 ! x y z -2.26444389e+00 -7.49859023e+00 6.03862670e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -71 2.96336237e-06 1.51843317e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -4.52697455e-02 -1.02248173e-01 -2.27016513e-03 ! x y z -1.68788163e+01 7.40608886e+00 3.63709971e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -72 2.96336237e-06 1.14806791e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -8.06881335e-01 -2.52781545e-01 1.51870607e-02 ! x y z -2.04735371e+00 6.47436428e+00 -7.55128577e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -73 2.96336237e-06 8.63702158e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.30060694e-01 6.20198928e-01 4.81770340e-02 ! x y z --7.69676016e+00 1.54296493e+00 7.51032843e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -74 2.96336237e-06 2.71625817e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.50105626e-01 1.32445435e-01 3.33193699e-03 ! x y z --9.29385053e+00 1.05048078e+01 5.66001538e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -75 2.96336237e-06 2.51868339e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.03555407e-01 -1.53889323e-01 -2.80252364e-03 ! x y z -1.19940698e+01 -8.03473593e+00 -2.09993906e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -76 2.96336237e-06 1.54287110e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -8.06499829e-02 -7.99432224e-02 -2.43269454e-03 ! x y z -1.31238101e+01 1.32442951e+01 3.28918613e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -77 2.96336237e-06 8.71609417e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --5.36528986e-01 3.51525670e-01 -1.53165370e-02 ! x y z --4.31160704e+00 -6.55314245e+00 1.84364774e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -78 2.96336237e-06 6.30934788e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --4.65066281e-01 -4.66798737e-03 -1.68077756e-02 ! x y z -7.45184502e-02 -9.20024675e+00 2.39159931e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -79 2.96336237e-06 7.40144722e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -3.79334922e-01 3.80245448e-01 -9.49803615e-02 ! x y z --6.04247275e+00 5.98348854e+00 -1.74163143e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -80 2.96336237e-06 3.92313381e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.39606781e-01 1.61754224e-01 -3.96153129e-03 ! x y z --6.55006124e+00 -9.67134853e+00 -1.87736549e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -81 2.96336237e-06 1.87729448e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.36574174e+00 -2.79526538e-02 -2.16095439e-01 ! x y z -5.14171563e-02 5.32723947e+00 -3.97391050e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -82 2.96336237e-06 5.30133384e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -3.15085837e+00 -2.30561258e+00 -1.08992743e-01 ! x y z -1.87274269e+00 2.56509205e+00 -1.34048622e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -83 2.96336237e-06 2.06037161e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.26667281e+00 7.87155762e-01 -2.77694402e-01 ! x y z --2.74492954e+00 -4.28490600e+00 3.75194091e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -84 2.96336237e-06 8.00085058e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -4.36864628e-01 -3.93082642e-01 -4.05835180e-02 ! x y z -5.43580080e+00 6.10031206e+00 -5.32305492e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -85 2.96336237e-06 1.68422496e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.91154020e-02 1.17755097e-01 9.07209905e-04 ! x y z --1.69254394e+01 -5.62237540e+00 3.47759783e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -86 2.96336237e-06 6.20018626e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --6.46245036e-03 -4.54649738e-01 -3.91985585e-02 ! x y z -9.26143100e+00 -2.14727983e-01 8.60739213e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -87 2.96336237e-06 4.32952233e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --8.92360083e-01 3.04526182e+00 -3.16119245e-01 ! x y z --3.37597828e+00 -9.90665483e-01 -2.93334400e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -88 2.96336237e-06 5.07356023e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.42658885e-01 -3.45354060e-01 -6.48020090e-04 ! x y z -9.46356028e+00 3.92258455e+00 -8.48866140e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -89 2.96336237e-06 1.44357825e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -3.12767928e-02 1.01738946e-01 7.81498408e-04 ! x y z --1.83783005e+01 5.65204164e+00 8.95253245e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -90 2.96336237e-06 2.46788347e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.22315810e-01 -1.78032278e+00 1.72704611e-01 ! x y z -4.58611778e+00 -8.01969428e-01 2.21857061e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -91 2.96336237e-06 2.58881689e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.46842370e-02 -1.88923646e+00 2.53318223e-01 ! x y z -4.51037223e+00 1.36690116e-01 5.94305988e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -92 2.96336237e-06 1.60789903e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --9.46160200e-02 6.98494722e-02 -1.45892420e-02 ! x y z --1.09628713e+01 -1.45060459e+01 1.52195776e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -93 2.96336237e-06 6.29721623e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --2.56683335e-01 -3.77201562e-01 -8.23958484e-02 ! x y z -7.59604700e+00 -5.23386806e+00 3.06289920e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -94 2.96336237e-06 4.64202573e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.67913812e-01 -2.07146871e-01 -4.61422780e-02 ! x y z -6.41188242e+00 8.56110427e+00 -1.07101833e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -95 2.96336237e-06 1.50660133e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.34791305e-02 1.10090801e-01 -3.59740832e-03 ! x y z --1.87180167e+01 2.32104622e+00 -8.83494098e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -96 2.96336237e-06 2.40330388e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --1.75929313e-01 1.80966113e-02 6.81114161e-03 ! x y z --1.42005853e+00 -1.46887245e+01 2.30712447e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -97 2.96336237e-06 7.03247975e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.36662692e-01 -4.99639162e-01 4.35439316e-03 ! x y z -8.35547799e+00 2.29467581e+00 1.06273679e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -98 2.96336237e-06 1.55495266e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.17050444e-03 1.14350623e-01 7.08807266e-03 ! x y z --1.84559208e+01 -6.04308169e-01 1.79494843e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -99 2.96336237e-06 5.97585391e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -2.48395076e-01 3.63094145e-01 -1.73096769e-02 ! x y z --7.80067516e+00 5.35353886e+00 3.69892012e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -100 2.96336237e-06 1.89552312e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --6.37920370e-02 1.23274206e-01 -1.57564364e-02 ! x y z --1.46021274e+01 -7.89324871e+00 -2.63331736e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -101 2.96336237e-06 6.14681361e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -1.77289854e-01 4.11867988e-01 6.04542862e-02 ! x y z --8.47592235e+00 3.80524704e+00 -9.94230260e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -102 2.96336237e-06 9.18598551e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -3.34848937e-01 5.82886909e-01 8.09410585e-02 ! x y z --6.63163318e+00 3.75549099e+00 4.30343778e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -103 2.96336237e-06 1.41351789e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --3.19842172e-02 -9.91147264e-02 1.99335782e-03 ! x y z -1.85292059e+01 -5.95613268e+00 2.44892309e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -104 2.96336237e-06 1.36971011e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius -9.99348035e-02 5.87784902e-03 -1.39124747e-02 ! x y z --1.19793181e+00 1.97081255e+01 -2.43650563e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -105 2.96336237e-06 1.77615634e-04 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --6.84080283e-02 1.11451618e-01 1.73309638e-03 ! x y z --1.48079744e+01 -9.08518565e+00 -3.87254392e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -106 2.96336237e-06 1.59192516e-03 ! ID / G*Mass / Rhill -1.52529846e-05 ! Radius --9.47253716e-01 6.89012203e-01 4.20854721e-02 ! x y z --3.42520654e+00 -4.67572582e+00 -3.18403868e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -107 2.96336237e-07 1.68166842e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.02595684e-01 -6.76459502e-02 1.60316045e-02 ! x y z -9.99081535e+00 -1.46155702e+01 2.22663292e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -108 2.96336237e-07 3.12384561e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.51485318e-01 -1.68186001e-01 4.32857084e-02 ! x y z -9.59646619e+00 8.84866760e+00 8.06843830e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -109 2.96336237e-07 9.87896939e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.45743446e-01 -4.81062788e-01 9.15155077e-04 ! x y z -4.87059296e+00 -5.52764292e+00 -6.00515206e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -110 2.96336237e-07 7.85782509e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.14453180e-01 -5.59505145e-01 -9.45764181e-02 ! x y z -8.09174189e+00 -1.64597361e+00 -6.13585822e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -111 2.96336237e-07 6.15534612e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.60708451e-01 -3.70794487e-01 5.45649920e-03 ! x y z -7.60919345e+00 -5.36531295e+00 -6.47059577e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -112 2.96336237e-07 4.40360494e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.64799526e+00 2.79254018e+00 8.65946920e-02 ! x y z --2.97493927e+00 1.76842827e+00 -4.38913020e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -113 2.96336237e-07 8.62807107e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.30143272e-01 -7.47801946e-02 3.80094060e-02 ! x y z -9.04317791e-01 7.81471532e+00 4.43428969e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -114 2.96336237e-07 1.79366225e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.08798204e-01 -7.39780702e-02 1.15936386e-02 ! x y z -9.80679616e+00 1.41610097e+01 -1.51208923e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -115 2.96336237e-07 1.94894376e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.22016107e-01 -7.03011772e-02 -2.75148566e-02 ! x y z -8.31341151e+00 -1.43578841e+01 -1.42788664e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -116 2.96336237e-07 1.62844586e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.27148441e-02 1.07781075e-01 3.25629885e-03 ! x y z --1.61481276e+01 7.79057150e+00 2.69155154e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -117 2.96336237e-07 3.19578013e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.60875488e+00 1.70794437e+00 2.02450467e-01 ! x y z --2.98944691e+00 2.77464669e+00 3.46638934e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -118 2.96336237e-07 2.24179169e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.86211723e-02 1.60584260e-01 -5.89986850e-04 ! x y z --1.50281430e+01 -3.61169530e+00 2.80559729e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -119 2.96336237e-07 1.47404316e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.12556305e-02 -1.07559642e-01 7.75828804e-03 ! x y z -1.89906733e+01 -1.97220292e+00 2.69482546e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -120 2.96336237e-07 2.95853738e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.43756019e-01 1.63519920e-01 1.05007253e-02 ! x y z --1.01140371e+01 8.85158256e+00 6.44989154e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -121 2.96336237e-07 7.72710208e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.37187955e-01 1.78861079e-01 -5.16128716e-02 ! x y z --2.66847756e+00 7.89164576e+00 -3.42257110e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -122 2.96336237e-07 2.13334019e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.51622167e-01 3.80151272e-02 -1.72165804e-02 ! x y z --3.61611838e+00 -1.53062819e+01 -1.86619947e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -123 2.96336237e-07 5.03662501e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.44036246e+00 -1.39813019e+00 4.75623645e-02 ! x y z -1.20942823e+00 -2.99183517e+00 -4.52172448e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -124 2.96336237e-07 4.88823155e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.62893789e-02 -3.53747469e-01 -5.77668949e-02 ! x y z -1.03711301e+01 -8.89368941e-01 -1.07968578e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -125 2.96336237e-07 1.42647753e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.67757076e-02 -9.23385161e-02 -1.80890251e-02 ! x y z -1.72463614e+01 8.83199566e+00 -4.78682258e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -126 2.96336237e-07 3.09112166e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.11495221e-01 -8.26213372e-02 1.35875240e-02 ! x y z -4.67644911e+00 -1.22342127e+01 -1.47565507e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -127 2.96336237e-07 2.70124619e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.69696847e-02 1.78674392e-01 -1.12522217e-02 ! x y z --1.26304475e+01 -6.19234342e+00 -6.39189840e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -128 2.96336237e-07 1.14086344e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.71767403e-01 7.94743241e-01 2.69536423e-02 ! x y z --6.48477177e+00 2.21216304e+00 1.75025543e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -129 2.96336237e-07 2.09303319e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.52392169e+00 -5.75896547e-02 2.44884427e-01 ! x y z -1.61682826e-01 -5.04596629e+00 -1.56134895e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -130 2.96336237e-07 2.40982693e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.36355388e-01 -1.13892018e-01 7.34357271e-04 ! x y z -9.55305129e+00 -1.14302111e+01 3.05071402e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -131 2.96336237e-07 1.74885689e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.06479332e-01 7.24748516e-02 -2.41989518e-03 ! x y z --9.79342428e+00 1.44541712e+01 1.25933409e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -132 2.96336237e-07 1.82949377e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.52791264e-02 -1.02318350e-01 -2.05635638e-02 ! x y z -1.32513973e+01 1.06585789e+01 1.91580240e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -133 2.96336237e-07 7.18520234e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.94961604e-01 3.42139554e-01 -8.60079460e-02 ! x y z --5.52911126e+00 -6.58039168e+00 -7.92228526e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -134 2.96336237e-07 3.35642838e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.25606515e-01 2.10721925e-01 2.77166521e-02 ! x y z --1.08090097e+01 6.53767174e+00 -7.47690197e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -135 2.96336237e-07 3.67847000e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.81485335e-03 -2.70102892e-01 -2.50067169e-02 ! x y z -1.20486417e+01 2.86996526e-01 -2.27170923e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -136 2.96336237e-07 1.02072598e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.15773343e-01 5.43448049e-01 5.55284218e-02 ! x y z --5.13914368e+00 4.99902919e+00 -1.08827824e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -137 2.96336237e-07 3.45810394e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.05216602e-01 -1.48909097e-01 -1.85718974e-02 ! x y z -7.34237560e+00 1.00770392e+01 3.52799818e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -138 2.96336237e-07 5.42377513e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.06722103e+00 3.41650411e+00 2.58569782e-01 ! x y z --2.68085769e+00 -1.62948459e+00 8.49153035e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -139 2.96336237e-07 2.24637379e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.99077410e-02 1.42884876e-01 -2.37521279e-02 ! x y z --1.35231867e+01 -7.43274054e+00 7.61380965e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -140 2.96336237e-07 1.78919182e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.98991162e-02 -8.51676073e-02 -9.62279096e-03 ! x y z -1.12673433e+01 -1.31469580e+01 -7.00686347e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -141 2.96336237e-07 3.57294435e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.99868536e-01 -2.42749465e+00 2.38341811e-01 ! x y z -3.57549013e+00 1.47177643e+00 -2.02730345e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -142 2.96336237e-07 6.01219491e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.38108503e-01 -2.83265024e-01 2.92889966e-02 ! x y z -5.93042973e+00 -7.22405589e+00 -1.45178087e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -143 2.96336237e-07 3.79143460e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.78176325e-03 -2.78312567e-01 1.55544144e-02 ! x y z -1.19064116e+01 1.39553854e-01 -2.89012584e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -144 2.96336237e-07 1.31357348e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.52265022e-01 1.70514389e-01 1.61046840e-02 ! x y z --1.11263342e+00 6.28773463e+00 -1.70190136e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -145 2.96336237e-07 1.92647514e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.26666120e-01 -6.37558920e-02 5.28973247e-03 ! x y z -7.50977187e+00 -1.48910618e+01 -2.25564970e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -146 2.96336237e-07 3.41009580e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.24608739e-01 1.11496176e-01 1.13965546e-02 ! x y z --5.52228513e+00 -1.12168373e+01 1.02975922e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -147 2.96336237e-07 4.49280552e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.64642165e-01 -1.98437443e-01 1.17261079e-02 ! x y z -6.55355101e+00 8.73493305e+00 -8.55984701e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -148 2.96336237e-07 3.16462317e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.11408931e-01 9.78735032e-02 1.24755660e-02 ! x y z --5.49965363e+00 -1.16585345e+01 -1.70423395e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -149 2.96336237e-07 3.00071642e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.53259053e-01 -2.18306264e+00 1.23215351e-02 ! x y z -4.16899485e+00 6.73550276e-01 -8.47796206e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -150 2.96336237e-07 4.46607818e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.69371029e-01 -1.87178387e-01 2.18926088e-02 ! x y z -6.28573587e+00 8.93722250e+00 -8.82582676e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -151 2.96336237e-07 1.58916270e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.45286684e-02 8.06964612e-02 -3.55050596e-04 ! x y z --1.24944704e+01 -1.31188331e+01 -3.18586153e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -152 2.96336237e-07 1.38278476e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.02012371e-01 6.26193065e-01 7.11494268e-02 ! x y z --3.83644935e+00 -4.87609633e+00 -3.91728102e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -153 2.96336237e-07 3.80372480e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.08082021e-01 1.82266157e-01 -4.25539023e-02 ! x y z --7.90539072e+00 8.82282593e+00 -9.32469375e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -154 2.96336237e-07 1.36284709e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.49651990e-01 -3.24158825e-01 1.28456691e-02 ! x y z -2.02981792e+00 5.89374813e+00 -7.03315168e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -155 2.96336237e-07 1.36478610e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.65489094e-01 2.62961132e-01 -7.58675127e-02 ! x y z --1.63993959e+00 -6.05927735e+00 -5.67787397e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -156 2.96336237e-07 2.21453956e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.28774377e-02 1.43489681e-01 -2.67975170e-02 ! x y z --1.39180127e+01 6.76953196e+00 -1.54412458e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -157 2.96336237e-07 3.17758657e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.71721634e-02 -2.24211039e-01 -2.23227042e-04 ! x y z -1.24396833e+01 -3.73091701e+00 3.29715938e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -158 2.96336237e-07 2.93402355e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.25046197e-01 -1.75973708e-01 7.05768084e-03 ! x y z -1.10088381e+01 7.83118455e+00 5.95103712e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -159 2.96336237e-07 6.75394436e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.99079271e-02 4.93799026e-01 -5.14568830e-02 ! x y z --8.82873148e+00 6.31970369e-01 1.02213191e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -160 2.96336237e-07 2.06668352e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.92655875e-02 1.50834125e+00 1.91413945e-01 ! x y z --5.09335109e+00 1.41113150e-01 -1.29857117e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -161 2.96336237e-07 4.51514886e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.16996692e+00 -9.91364302e-01 4.16124385e-02 ! x y z -1.01884350e+00 -3.26936059e+00 -4.16167657e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -162 2.96336237e-07 1.02360684e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.69844349e-01 -3.40285674e-01 -5.94581079e-02 ! x y z -3.31508191e+00 -6.39237087e+00 -7.41252924e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -163 2.96336237e-07 2.71876263e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.26422107e-01 1.54442560e-01 1.53276659e-02 ! x y z --1.08158915e+01 -8.93275104e+00 7.23445450e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -164 2.96336237e-07 1.80180479e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.85587981e-03 1.32674006e-01 4.28548397e-03 ! x y z --1.72140967e+01 1.96556098e-01 9.60528175e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -165 2.96336237e-07 1.75592517e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.07708701e-02 -9.11416548e-02 -1.28025238e-02 ! x y z -1.24310813e+01 -1.20389307e+01 -2.46935980e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -166 2.96336237e-07 3.99623180e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.45385891e-01 2.55881809e-01 1.42121903e-02 ! x y z --1.00624985e+01 -5.70943735e+00 5.83151434e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -167 2.96336237e-07 2.21152384e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.56537348e-01 3.78485088e-02 -2.44998270e-02 ! x y z --3.80403850e+00 1.50608237e+01 -1.01858258e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -168 2.96336237e-07 8.06032057e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.51482822e-01 2.18206619e-01 2.92372855e-02 ! x y z --3.00196406e+00 -7.57892718e+00 -1.44335239e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -169 2.96336237e-07 3.11065716e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.91026870e-01 -1.23484671e-01 -2.54924425e-02 ! x y z -7.24043657e+00 1.08632919e+01 1.49017200e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -170 2.96336237e-07 3.67131711e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.37503232e-01 2.32589683e-01 1.11853556e-02 ! x y z --1.04039430e+01 6.12811275e+00 4.32021998e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -171 2.96336237e-07 1.40685155e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.01905614e-01 -1.19240725e-02 -1.50479123e-02 ! x y z -2.60034269e+00 1.91945629e+01 2.28872102e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -172 2.96336237e-07 1.61904612e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.08549262e-01 -4.93125027e-02 -1.89393365e-03 ! x y z -7.52551683e+00 1.65260884e+01 1.17281718e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -173 2.96336237e-07 1.99596731e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.29296371e-01 -6.99787123e-02 6.21516753e-03 ! x y z -7.64431276e+00 1.43073841e+01 2.21500327e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -174 2.96336237e-07 2.60541101e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.94752033e-02 -1.69531690e-01 -1.41829706e-03 ! x y z -1.26044350e+01 6.66004842e+00 -1.71258676e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -175 2.96336237e-07 1.41101203e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.24192668e-02 4.54823471e-02 1.22601580e-02 ! x y z --8.76894444e+00 -1.73680255e+01 -1.66506754e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -176 2.96336237e-07 3.35294916e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.03750495e-02 -2.28910399e-01 2.04323304e-02 ! x y z -1.15911858e+01 -4.73287592e+00 -1.76594962e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -177 2.96336237e-07 9.92073896e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.09708271e-01 4.01333815e-01 2.68896617e-02 ! x y z --3.97025381e+00 6.08470040e+00 -1.13285870e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -178 2.96336237e-07 5.05019009e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.58403603e-01 9.99747165e-02 -7.41406593e-03 ! x y z --2.74933881e+00 9.91016262e+00 5.08342862e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -179 2.96336237e-07 2.12985442e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.49342173e-02 -1.53441688e-01 -2.19126018e-02 ! x y z -1.56210566e+01 2.62637644e+00 -6.11374559e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -180 2.96336237e-07 1.54678196e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.41939885e-02 -1.00043093e-01 -3.85321428e-03 ! x y z -1.63937778e+01 -8.84799477e+00 -2.52574906e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -181 2.96336237e-07 1.41497185e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.73415306e-01 -9.66357206e-01 -1.21199946e-01 ! x y z -5.71639955e+00 2.08880107e+00 8.82117200e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -182 2.96336237e-07 4.28958695e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.40660496e-01 2.03374987e-01 2.01793384e-02 ! x y z --7.23178249e+00 8.41477449e+00 1.42172029e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -183 2.96336237e-07 1.99059706e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.32418609e-01 -6.33495780e-02 1.52447151e-03 ! x y z -7.06555312e+00 -1.47870819e+01 -1.47598659e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -184 2.96336237e-07 3.81792224e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.59441934e-01 1.07188724e-01 -1.59194237e-02 ! x y z --4.47747771e+00 1.09409816e+01 8.27511247e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -185 2.96336237e-07 6.64097194e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.61470934e-01 -4.59662253e-01 4.19507284e-02 ! x y z -8.40652229e+00 -3.03327503e+00 -9.42304810e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -186 2.96336237e-07 3.65627186e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.91716294e-02 2.68585655e-01 1.65456147e-02 ! x y z --1.20376875e+01 9.01816731e-01 -6.04344674e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -187 2.96336237e-07 1.07266269e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.84037169e-01 3.34448860e-02 8.92035326e-02 ! x y z --3.76987440e-01 7.02922281e+00 6.71778347e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -188 2.96336237e-07 2.76053130e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.65592103e-01 -2.02262355e+00 9.64532175e-02 ! x y z -4.38399914e+00 -3.69274450e-01 -3.02243313e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -189 2.96336237e-07 1.49180645e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.66468727e-02 9.78397092e-02 1.86359797e-02 ! x y z --1.71381047e+01 -8.04260909e+00 -4.87836279e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -190 2.96336237e-07 1.69416385e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.52861173e-02 -9.89948574e-02 -1.09499414e-02 ! x y z -1.40487042e+01 -1.08378695e+01 1.10267550e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -191 2.96336237e-07 2.11992597e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.23756833e-01 -9.48449362e-02 8.49987629e-03 ! x y z -9.64037459e+00 -1.23256601e+01 2.82037391e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -192 2.96336237e-07 1.40164561e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.26598110e-02 7.33084575e-02 6.78097528e-05 ! x y z --1.38859112e+01 1.37729835e+01 2.49147892e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -193 2.96336237e-07 1.22290282e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.40766574e-01 -6.33155550e-01 1.23966097e-02 ! x y z -4.64976372e+00 4.70156647e+00 -2.98307686e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -194 2.96336237e-07 7.66734076e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.04703817e-02 -5.55392633e-01 8.13051763e-02 ! x y z -8.28775896e+00 9.69944086e-01 5.69301929e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -195 2.96336237e-07 3.29074485e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.24495073e-01 -9.20143724e-02 2.02921632e-03 ! x y z -4.73910594e+00 1.16362548e+01 2.16490213e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -196 2.96336237e-07 3.56646499e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.41206884e+00 -1.01015931e+00 2.59146857e-01 ! x y z -1.53231645e+00 3.51376781e+00 -5.68577128e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -197 2.96336237e-07 2.00668495e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.56759215e-01 -1.37713329e+00 2.78941831e-01 ! x y z -4.91283479e+00 1.60529662e+00 -1.34031808e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -198 2.96336237e-07 1.69799956e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.82837757e-01 1.21782572e+00 2.96764613e-02 ! x y z --5.47371816e+00 -1.25801406e+00 -1.62601027e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -199 2.96336237e-07 2.43591457e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.78649226e-01 -1.15701711e-02 -1.15491428e-02 ! x y z -9.83636215e-01 -1.47911380e+01 -5.93605692e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -200 2.96336237e-07 1.60100462e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15594974e-01 -2.02011443e-02 -1.23609819e-02 ! x y z -3.06227831e+00 1.80156682e+01 -6.55882175e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -201 2.96336237e-07 8.78788999e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.23683389e-01 -4.78816324e-01 1.04286433e-01 ! x y z -5.83399865e+00 5.18037893e+00 1.48238651e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -202 2.96336237e-07 1.79545603e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.31193706e+00 -8.55848939e-02 1.42321645e-01 ! x y z -4.42659702e-01 5.38592216e+00 -8.06877745e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -203 2.96336237e-07 1.29917327e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.58123041e-01 5.83432978e-01 3.16688902e-02 ! x y z --3.91781485e+00 5.08739885e+00 -7.15379602e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -204 2.96336237e-07 3.39913445e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.88461426e-01 -1.64730118e-01 1.18953164e-02 ! x y z -8.22702787e+00 -9.46302955e+00 -4.14367630e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -205 2.96336237e-07 2.47936228e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.56478894e-01 9.36699288e-02 2.29323694e-03 ! x y z --7.54851155e+00 1.26280718e+01 5.34415861e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -206 2.96336237e-07 1.47718920e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.65493277e-02 9.22841964e-02 -1.12810019e-02 ! x y z --1.62688169e+01 -9.72577893e+00 1.86718774e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -207 2.96336237e-07 1.72642428e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.92351995e-02 -1.19874879e-01 -1.57092886e-02 ! x y z -1.67530240e+01 5.48257990e+00 -8.30901786e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -208 2.96336237e-07 1.86207273e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.95319863e-01 1.04057977e+00 -4.37075211e-03 ! x y z --4.06510021e+00 3.49405499e+00 -1.85829894e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -209 2.96336237e-07 1.50074871e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.13098146e-02 -6.22620847e-02 3.83999649e-03 ! x y z -1.06548604e+01 -1.55222301e+01 1.54823380e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -210 2.96336237e-07 2.08437577e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.63204139e-02 1.51495634e+00 2.33349335e-01 ! x y z --5.05067222e+00 2.28922030e-01 3.92035760e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -211 2.96336237e-07 3.70979306e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.71899987e+00 -2.33907314e-01 8.45763198e-03 ! x y z -3.27253005e-01 -3.72728480e+00 6.96173655e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -212 2.96336237e-07 3.81151089e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.53714041e-02 2.68067858e-01 3.48793769e-02 ! x y z --1.14200906e+01 3.10401124e+00 8.21132077e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -213 2.96336237e-07 1.47857088e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.08922131e-01 -8.90553336e-04 -8.79337556e-04 ! x y z -1.20272732e-01 1.90283595e+01 -5.04506391e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -214 2.96336237e-07 4.73995322e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.12126656e-01 -1.56632296e-01 7.76600632e-03 ! x y z -4.75074720e+00 -9.41798090e+00 1.30128221e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -215 2.96336237e-07 1.69776395e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.97080320e-02 -1.23567582e-01 1.56811782e-03 ! x y z -1.75356900e+01 2.78198531e+00 1.29434632e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -216 2.96336237e-07 2.29798896e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.66195883e+00 -2.64134975e-01 -1.85975662e-01 ! x y z -7.34522456e-01 -4.76685962e+00 2.22373045e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -217 2.96336237e-07 3.52891353e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.40115410e-01 9.68265959e-02 -2.07385488e-02 ! x y z --4.65024198e+00 1.13999716e+01 -7.26496662e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -218 2.96336237e-07 2.53009710e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.11546414e-01 1.45892204e-01 3.30367885e-02 ! x y z --1.15784500e+01 8.78369165e+00 2.94773786e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -219 2.96336237e-07 1.47626590e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.05432444e+00 -2.60672731e-01 -5.72149808e-02 ! x y z -1.46409466e+00 5.78825209e+00 8.03267514e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -220 2.96336237e-07 3.14908501e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.13062345e-01 9.13209737e-02 8.63670516e-03 ! x y z --5.13672953e+00 1.19910589e+01 -6.74367894e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -221 2.96336237e-07 1.95059415e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.45942896e-02 1.36362423e-01 -9.40008353e-03 ! x y z --1.55751730e+01 5.24501882e+00 2.07179044e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -222 2.96336237e-07 1.36153260e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.11020964e-02 9.97628339e-02 9.06231707e-04 ! x y z --1.96963341e+01 -2.21458522e+00 2.33051077e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -223 2.96336237e-07 3.84395515e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.76499188e-01 6.16040642e-02 -8.97883830e-03 ! x y z --2.55698202e+00 1.15050248e+01 4.97784345e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -224 2.96336237e-07 1.81495968e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.70215546e-02 -1.30885606e-01 2.17424272e-02 ! x y z -1.70082888e+01 1.96040585e+00 -1.35007722e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -225 2.96336237e-07 1.91539798e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.63947917e-02 1.18396959e-01 -1.05167573e-02 ! x y z --1.39482384e+01 -8.73699507e+00 2.84478428e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -226 2.96336237e-07 1.23670507e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.14930135e-03 -9.04988555e-01 -9.63762785e-02 ! x y z -6.57106189e+00 1.09338151e-01 -4.71620354e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -227 2.96336237e-07 6.03338037e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.52159298e-01 -4.17521527e-01 1.02950952e-02 ! x y z -8.85444473e+00 -3.22312851e+00 7.04377524e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -228 2.96336237e-07 2.29501387e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.73120208e-02 -1.58774750e-01 1.11169633e-03 ! x y z -1.43912187e+01 -5.20423975e+00 -9.00929414e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -229 2.96336237e-07 6.80178340e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.48633642e-01 2.23937586e-01 -2.26413038e-02 ! x y z --3.93868145e+00 -7.92836960e+00 -3.68245574e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -230 2.96336237e-07 8.30919822e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.31628858e-01 4.28354869e-01 7.13629985e-02 ! x y z --5.68579970e+00 -5.61206488e+00 -7.92918557e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -231 2.96336237e-07 2.88748668e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.10233066e-01 1.97876843e-02 -2.35827282e-02 ! x y z --1.47390853e+00 -1.33999737e+01 2.06264744e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -232 2.96336237e-07 4.78912150e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.35092035e+00 -1.10079153e+00 -2.27741830e-03 ! x y z -1.04438723e+00 3.17859762e+00 4.91489625e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -233 2.96336237e-07 1.56024644e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.02536167e-01 5.16023512e-02 -4.82964369e-03 ! x y z --8.28502601e+00 -1.65479832e+01 -1.11463790e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -234 2.96336237e-07 3.33611198e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.41416332e-01 3.90687702e-02 2.21398720e-02 ! x y z --2.04031618e+00 -1.25168759e+01 -2.20179291e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -235 2.96336237e-07 7.25553510e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.55575378e-01 5.09805643e-01 -3.70189723e-02 ! x y z --8.21272972e+00 2.46146852e+00 -6.30505998e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -236 2.96336237e-07 1.40506298e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.01069553e-02 4.91907944e-02 1.29764938e-02 ! x y z --9.56289030e+00 -1.67867849e+01 -2.88786661e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -237 2.96336237e-07 3.77969007e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.14704049e-02 -2.62441008e-01 -1.72907598e-02 ! x y z -1.12426074e+01 -3.91634715e+00 -9.09943002e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -238 2.96336237e-07 2.81867372e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.27728440e-02 2.00365075e-01 1.70132895e-02 ! x y z --1.33128879e+01 -3.52189829e+00 -5.74261981e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -239 2.96336237e-07 1.79620777e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.31787414e-01 -1.25733813e-02 -2.89624292e-04 ! x y z -1.63034155e+00 -1.70615211e+01 -2.06611584e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -240 2.96336237e-07 1.47632455e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.70839894e-02 -4.76289266e-02 -1.15351398e-02 ! x y z -8.53391623e+00 -1.69155803e+01 -2.00516647e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -241 2.96336237e-07 2.14136341e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.28282315e-01 9.18757479e-02 3.28978148e-03 ! x y z --9.19328813e+00 1.28482973e+01 6.27067011e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -242 2.96336237e-07 3.02915935e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.12846684e-01 5.88001592e-02 3.42241749e-02 ! x y z --3.51634627e+00 -1.28074061e+01 1.11441054e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -243 2.96336237e-07 2.17631114e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.73459104e-01 1.52457725e+00 1.46088577e-01 ! x y z --4.73287250e+00 -1.42868872e+00 -4.29632131e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -244 2.96336237e-07 2.43174877e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.95476280e-02 1.64055074e-01 -1.80734950e-02 ! x y z --1.36691499e+01 -5.64447412e+00 1.31758720e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -245 2.96336237e-07 3.86914388e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.64701329e-01 -2.30941251e-01 2.73835709e-02 ! x y z -9.48038325e+00 6.89018120e+00 1.09025811e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -246 2.96336237e-07 4.70538425e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.92068436e-01 2.87735154e-01 -2.49408437e-02 ! x y z --8.87474271e+00 -5.83135629e+00 9.84182145e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -247 2.96336237e-07 1.59485836e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.41345316e-02 7.01666314e-02 -3.48741947e-03 ! x y z --1.07559017e+01 1.45365434e+01 3.02274429e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -248 2.96336237e-07 1.01184314e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.55373585e-01 -6.53010262e-01 2.56093361e-02 ! x y z -6.34869656e+00 -3.49090411e+00 -8.23620080e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -249 2.96336237e-07 6.91585236e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.30220093e-02 -4.97468789e-01 -8.46158844e-02 ! x y z -8.69064143e+00 -1.32669340e+00 2.64599708e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -250 2.96336237e-07 4.13080194e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.93682991e-01 8.01945913e-02 8.60137125e-04 ! x y z --3.00211229e+00 -1.09716713e+01 -4.61987646e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -251 2.96336237e-07 1.47202714e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.62521286e-03 1.07932666e-01 9.21258947e-03 ! x y z --1.90745546e+01 4.32493326e-01 7.36730003e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -252 2.96336237e-07 9.84586089e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.93436932e-01 2.08666171e-01 -2.43478761e-02 ! x y z --2.14463901e+00 -7.06205653e+00 2.51727127e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -253 2.96336237e-07 4.05663959e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.86097517e-01 2.33456587e-01 -1.08350477e-02 ! x y z --8.99668896e+00 -7.14573611e+00 4.07612357e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -254 2.96336237e-07 2.37179565e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.71798627e-01 -3.08238112e-02 8.89335024e-03 ! x y z -2.66177065e+00 -1.47887456e+01 1.02118590e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -255 2.96336237e-07 4.28362153e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.13801328e+00 2.87532506e-01 1.47893186e-01 ! x y z --3.23274753e-01 3.52229850e+00 7.47743284e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -256 2.96336237e-07 8.17125843e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.14249606e-01 -5.90426302e-01 2.59329017e-02 ! x y z -7.94241903e+00 1.54650663e+00 3.23598839e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -257 2.96336237e-07 1.55283036e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.59976639e-02 -1.06543878e-01 2.13050029e-02 ! x y z -1.76171284e+01 -5.83528097e+00 4.89958154e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -258 2.96336237e-07 8.43446325e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.24649851e-01 5.26871225e-01 -5.27598342e-02 ! x y z --6.79074911e+00 -4.17565801e+00 1.63147786e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -259 2.96336237e-07 2.14715069e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.05388127e-02 -1.28239443e-01 1.90288338e-02 ! x y z -1.28278629e+01 -9.18941535e+00 -8.36108150e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -260 2.96336237e-07 4.04704141e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.83402108e-01 9.11584818e-02 8.45233768e-03 ! x y z --3.50935750e+00 1.09523478e+01 -6.38774699e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -261 2.96336237e-07 1.62617133e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.51952882e-02 1.17037220e-01 3.94518479e-03 ! x y z --1.77472607e+01 -3.81596629e+00 2.11550976e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -262 2.96336237e-07 1.78052773e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.19829138e-02 -1.15550238e-01 7.84987673e-03 ! x y z -1.52270917e+01 -8.23117147e+00 -6.61169827e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -263 2.96336237e-07 2.40641246e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.30305098e-01 1.17761215e-01 -2.35439060e-02 ! x y z --9.74178836e+00 -1.11635168e+01 -1.82094726e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -264 2.96336237e-07 5.83292472e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.18630577e-01 9.36751674e-02 1.24384864e-03 ! x y z --2.08878837e+00 -9.35000019e+00 6.17962317e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -265 2.96336237e-07 4.65039402e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.52414264e-01 2.31441933e-01 -1.56746702e-02 ! x y z --7.24824143e+00 7.90473829e+00 -2.04045930e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -266 2.96336237e-07 2.83049642e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.05785578e-01 2.99864764e-02 -1.73141242e-02 ! x y z --1.94317166e+00 1.36035665e+01 4.18889844e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -267 2.96336237e-07 5.59111892e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.08343025e-01 -5.61538698e-02 -1.81981829e-03 ! x y z -1.31395033e+00 -9.69037598e+00 2.51093082e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -268 2.96336237e-07 4.56043200e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.91622087e-01 1.65243467e-01 -2.18471468e-02 ! x y z --5.33588475e+00 -9.43665612e+00 -1.19835404e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -269 2.96336237e-07 4.22161804e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.47658278e+00 -1.84309704e+00 -3.75630701e-01 ! x y z -2.12363705e+00 -2.86038000e+00 3.46870723e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -270 2.96336237e-07 2.89581607e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.96491417e-01 -2.07401519e+00 -4.69537306e-02 ! x y z -4.18517251e+00 9.94833269e-01 -2.36464829e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -271 2.96336237e-07 2.79186011e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.03672369e+00 1.76655589e+00 1.81010951e-01 ! x y z --3.78172776e+00 -2.19429373e+00 -2.89502014e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -272 2.96336237e-07 6.19323910e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.46810215e-01 -3.83848737e-01 -7.60627917e-03 ! x y z -7.81959921e+00 5.03050350e+00 -6.46092663e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -273 2.96336237e-07 1.36331345e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.50043265e-01 9.40515952e-01 1.07283101e-02 ! x y z --5.87667764e+00 -2.18985929e+00 1.69169176e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -274 2.96336237e-07 2.24478987e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.25859435e-01 -1.06093260e-01 -1.72452243e-02 ! x y z -9.75363768e+00 1.18470676e+01 -1.67286465e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -275 2.96336237e-07 2.33847980e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.16756944e-01 1.26472606e-01 4.13500138e-03 ! x y z --1.11182509e+01 -1.02764188e+01 4.05916035e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -276 2.96336237e-07 7.23664553e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.53057857e-01 -2.79563410e-01 2.05600031e-02 ! x y z -4.53217581e+00 -7.31948561e+00 1.49284406e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -277 2.96336237e-07 4.87764482e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.72004945e+00 3.14969018e+00 1.75974204e-01 ! x y z --2.90999105e+00 -1.58214562e+00 -1.23326783e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -278 2.96336237e-07 1.59320602e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.86393148e-01 -1.13689426e+00 3.75475631e-02 ! x y z -5.62341185e+00 -1.42142955e+00 -1.63208843e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -279 2.96336237e-07 1.54384183e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.64445542e-02 -1.07772480e-01 1.38203119e-03 ! x y z -1.76084964e+01 5.90543469e+00 -1.36448031e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -280 2.96336237e-07 4.67617477e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.27257020e-02 -3.36603320e-01 -7.18747059e-03 ! x y z -1.03515592e+01 2.20008795e+00 1.61724473e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -281 2.96336237e-07 3.06888017e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.86567801e-02 -2.03217183e-01 7.66179285e-03 ! x y z -1.17991108e+01 5.65678690e+00 -1.85868605e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -282 2.96336237e-07 1.63367151e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.20226801e-01 5.32732415e-03 -4.52859140e-03 ! x y z --8.58448346e-01 -1.80125367e+01 1.53562080e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -283 2.96336237e-07 3.56522917e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.53305250e-01 5.48751540e-02 -4.36792330e-02 ! x y z --2.78346860e+00 -1.18762585e+01 1.13001490e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -284 2.96336237e-07 2.91636527e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.14329785e-01 -4.85464161e-03 -1.43382046e-02 ! x y z -3.31983285e-01 1.35442696e+01 3.66465712e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -285 2.96336237e-07 2.47229444e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.72001149e-01 1.80932953e+00 -1.14508837e-01 ! x y z --4.63466043e+00 4.34705161e-01 -9.29035921e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -286 2.96336237e-07 1.93360884e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.43669654e-02 -1.04582340e-01 -2.08243669e-02 ! x y z -1.23747734e+01 -1.11431296e+01 -6.74003277e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -287 2.96336237e-07 6.11984953e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.71540818e-02 4.48539246e-01 2.96686219e-02 ! x y z --9.18476340e+00 6.61768116e-01 -1.71761040e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -288 2.96336237e-07 4.28263707e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.10609661e-01 4.06095913e-02 -3.74040484e-02 ! x y z --1.43723777e+00 1.10915843e+01 1.91845378e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -289 2.96336237e-07 1.74105543e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.02422963e-02 1.27815148e-01 1.78156320e-03 ! x y z --1.74882467e+01 -1.40662504e+00 2.19081747e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -290 2.96336237e-07 1.51148580e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.91495928e-02 -1.04087681e-01 -5.41684969e-03 ! x y z -1.75843626e+01 6.52789912e+00 1.65333603e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -291 2.96336237e-07 2.17346731e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.55690504e-02 1.27758558e-01 -1.55404831e-02 ! x y z --1.25717007e+01 9.37316892e+00 -2.07496427e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -292 2.96336237e-07 1.19445522e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.68946733e-01 7.98683376e-01 -2.40782247e-02 ! x y z --6.03118091e+00 2.80488176e+00 7.73235795e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -293 2.96336237e-07 1.52781756e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.00363979e-02 1.12022203e-01 -3.81575949e-03 ! x y z --1.86227442e+01 1.62815433e+00 -1.16154580e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -294 2.96336237e-07 3.48956791e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.61696538e-01 -1.98378629e-01 -2.39219925e-02 ! x y z -9.57353831e+00 -7.85706870e+00 4.37960504e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -295 2.96336237e-07 2.54779562e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.12974618e-03 1.87847559e-01 1.34312994e-03 ! x y z --1.44703736e+01 -4.85579057e-01 -3.07556816e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -296 2.96336237e-07 6.25074756e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.04655355e-01 -4.48375772e-01 1.35991775e-02 ! x y z -9.00969592e+00 2.09776569e+00 -3.00129080e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -297 2.96336237e-07 2.28217924e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.50278346e-02 -1.50228234e-01 2.15633643e-03 ! x y z -1.36682390e+01 6.83088672e+00 -1.35156613e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -298 2.96336237e-07 9.47719963e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.96051323e-01 -6.68809127e-01 4.12417478e-02 ! x y z -7.18447620e+00 2.14100800e+00 5.79800824e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -299 2.96336237e-07 3.14070492e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.13209231e+00 -2.01862562e+00 -6.84442746e-02 ! x y z -3.57218440e+00 -2.02387760e+00 4.22422023e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -300 2.96336237e-07 4.20431176e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.42391696e-01 -2.73705937e-01 -3.19347026e-02 ! x y z -9.97827462e+00 -5.22667951e+00 4.32787777e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -301 2.96336237e-07 9.94203262e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.72336776e-01 7.10845264e-01 -3.52014364e-02 ! x y z --7.07980619e+00 1.66489668e+00 -1.00855792e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -302 2.96336237e-07 1.86832252e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.10701384e-01 8.18918120e-02 -1.68984869e-03 ! x y z --9.99799831e+00 1.35699692e+01 1.54216520e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -303 2.96336237e-07 2.51327916e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.15695021e-01 1.44524010e-01 -6.17031135e-03 ! x y z --1.12995953e+01 -9.09938000e+00 -1.58905923e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -304 2.96336237e-07 1.95006335e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.34548438e-01 -4.37926057e-02 2.44262881e-02 ! x y z -5.17817300e+00 1.57521224e+01 -2.96260854e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -305 2.96336237e-07 1.62536925e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.97288406e-03 -1.19651937e-01 2.32058884e-03 ! x y z -1.81062557e+01 4.02564492e-01 -1.34341433e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -306 2.96336237e-07 2.35856429e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.63295263e-01 5.85123195e-02 2.51767646e-03 ! x y z --5.07708796e+00 -1.41444440e+01 -1.43082957e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -307 2.96336237e-07 3.36584122e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.64045301e-02 2.39329068e-01 3.43130630e-02 ! x y z --1.22055648e+01 2.63928819e+00 1.68790846e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -308 2.96336237e-07 2.35713166e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.64581706e-01 -5.36397223e-02 -1.42777001e-02 ! x y z -4.61129154e+00 1.43368142e+01 -6.25559052e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -309 2.96336237e-07 1.80105465e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.85740962e-02 1.18786229e-01 -6.56202856e-03 ! x y z --1.54663562e+01 -7.53644091e+00 1.35408336e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -310 2.96336237e-07 4.92254230e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.48297591e+00 1.01694819e+00 5.59513929e-02 ! x y z --9.24784874e-01 3.16320271e+00 9.44239169e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -311 2.96336237e-07 1.60638450e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.93322100e-01 1.12469609e+00 -2.22993750e-01 ! x y z --5.59442359e+00 -1.38913452e+00 3.48403322e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -312 2.96336237e-07 2.29533892e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.65402441e-02 -1.55441440e-01 -2.52316138e-03 ! x y z -1.40284075e+01 6.01637541e+00 -6.43866723e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -313 2.96336237e-07 4.55994413e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.27905375e-01 6.78699175e-02 -1.79777606e-02 ! x y z --2.14975909e+00 -1.06030243e+01 -9.32497343e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -314 2.96336237e-07 2.05893516e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.46950207e-01 3.66158970e-02 4.73692468e-03 ! x y z --3.95133574e+00 1.54799604e+01 2.35533458e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -315 2.96336237e-07 1.71035386e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.03975142e+00 7.12426695e-01 -4.24473083e-02 ! x y z --3.14715363e+00 4.54521854e+00 -8.41166687e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -316 2.96336237e-07 3.64808571e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.28395262e-02 2.67757757e-01 -1.69778173e-03 ! x y z --1.18840609e+01 -1.00030821e+00 2.15824929e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -317 2.96336237e-07 5.67789053e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.55673979e-01 3.30106710e-01 -6.83834991e-03 ! x y z --7.68547512e+00 -5.93124955e+00 6.57145614e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -318 2.96336237e-07 1.78691335e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.31059297e-02 -1.09142388e-01 5.36605245e-03 ! x y z -1.44091108e+01 -9.61902644e+00 6.78196326e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -319 2.96336237e-07 1.52284782e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.11465787e-01 1.17702250e-02 -5.60041093e-03 ! x y z --1.98141532e+00 1.86459254e+01 4.64702035e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -320 2.96336237e-07 2.22873167e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.61921599e-01 2.76658410e-02 1.51288955e-03 ! x y z --2.58058649e+00 1.50877909e+01 2.41909079e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -321 2.96336237e-07 1.66574309e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.05896568e-01 -6.16778889e-02 -5.40333761e-03 ! x y z -9.02534711e+00 -1.55060679e+01 7.55381114e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -322 2.96336237e-07 3.11980489e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.12141531e-01 8.69468810e-02 1.49958803e-02 ! x y z --5.02629091e+00 1.20233190e+01 1.42500243e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -323 2.96336237e-07 3.63628531e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.89645687e-02 -2.48572626e-01 -1.26248709e-02 ! x y z -1.11738835e+01 -4.51858526e+00 1.45409387e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -324 2.96336237e-07 1.58479502e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.08902661e-01 -4.04543846e-02 9.72484544e-03 ! x y z -6.18170668e+00 1.72185121e+01 2.09387639e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -325 2.96336237e-07 2.78359613e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.98092646e-01 5.22944708e-02 -9.07845731e-03 ! x y z --3.39070024e+00 1.32282608e+01 2.44397272e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -326 2.96336237e-07 2.68359631e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.85680463e-01 -6.28590761e-02 2.48874179e-02 ! x y z -4.61888312e+00 1.33244757e+01 -9.84428095e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -327 2.96336237e-07 3.58926235e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.80921446e-01 1.92203956e-01 -1.49860478e-02 ! x y z --8.90940541e+00 -8.32243014e+00 8.22222040e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -328 2.96336237e-07 1.48223341e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.86026375e-02 1.07513050e-01 3.59087940e-03 ! x y z --1.86630325e+01 3.26370801e+00 -1.64002618e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -329 2.96336237e-07 6.50495354e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.62782223e-01 3.98105694e-01 4.74931344e-02 ! x y z --7.58956373e+00 4.91880838e+00 7.19427712e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -330 2.96336237e-07 7.16951074e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.00633530e-01 3.44432827e-01 -1.72260762e-02 ! x y z --5.62992253e+00 -6.54762524e+00 -1.99011243e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -331 2.96336237e-07 1.42901597e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.02975298e-01 2.14174721e-02 1.48404774e-03 ! x y z --3.96359997e+00 1.89693360e+01 -4.17945195e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -332 2.96336237e-07 2.71071976e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.72915192e+00 9.88331941e-01 1.39049311e-01 ! x y z --2.21605736e+00 -3.85168644e+00 -1.68554191e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -333 2.96336237e-07 2.18892887e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.09179779e-02 -1.54966380e-01 -1.87629802e-02 ! x y z -1.50663981e+01 -3.73259050e+00 -1.87052084e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -334 2.96336237e-07 1.17725194e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.91062992e-02 8.62312897e-01 9.71322333e-02 ! x y z --6.72169407e+00 -1.02893330e-01 -4.97198301e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -335 2.96336237e-07 1.43213789e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.63303674e-02 -4.26286128e-02 -2.25361083e-03 ! x y z -7.82792290e+00 -1.76245093e+01 -1.79379737e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -336 2.96336237e-07 2.98892609e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.69388680e-02 1.97766935e-01 9.58504561e-03 ! x y z --1.19246307e+01 5.75952764e+00 1.86101992e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -337 2.96336237e-07 1.84152463e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.28334483e-02 9.87299526e-02 -6.49193674e-03 ! x y z --1.23921443e+01 -1.14970058e+01 2.27150876e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -338 2.96336237e-07 3.54365437e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.34201835e+00 1.11034535e+00 3.40140510e-01 ! x y z --1.62800086e+00 -3.51354391e+00 2.89386799e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -339 2.96336237e-07 8.24324168e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.83102856e-01 -5.37287777e-01 -4.81656574e-03 ! x y z -7.12623472e+00 3.75887202e+00 2.72635851e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -340 2.96336237e-07 5.00875626e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.34702365e+00 -2.84145989e+00 -1.50021535e-01 ! x y z -2.49982661e+00 2.03809037e+00 5.50072319e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -341 2.96336237e-07 1.50360139e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.12153547e-02 6.30370227e-02 -2.65423537e-03 ! x y z --1.07335938e+01 1.54962274e+01 -3.11835645e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -342 2.96336237e-07 1.37325935e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.50572893e-02 -2.90402691e-02 1.80092933e-02 ! x y z -5.90493876e+00 -1.88689938e+01 6.73450412e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -343 2.96336237e-07 1.10150090e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.84924690e-01 6.41714973e-01 1.02600171e-01 ! x y z --5.50680791e+00 4.25131479e+00 -5.64104984e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -344 2.96336237e-07 2.49641599e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.71018252e-01 6.65136036e-02 8.59918173e-03 ! x y z --5.24864684e+00 1.36223248e+01 -1.41505546e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -345 2.96336237e-07 7.86393262e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.37590836e-01 -4.69553031e-01 3.39849242e-03 ! x y z -6.70312905e+00 -4.82878448e+00 3.48894069e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -346 2.96336237e-07 3.38867959e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.04261592e-01 -2.26561631e-01 -3.27950347e-04 ! x y z -1.12594640e+01 -5.20036639e+00 -2.14487658e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -347 2.96336237e-07 4.26441447e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.72086667e-01 2.61018307e-01 -3.09025518e-02 ! x y z --9.24236643e+00 -6.23248882e+00 -1.17166464e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -348 2.96336237e-07 6.44410689e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.27740142e-01 3.44029507e-01 -2.92230023e-03 ! x y z --6.54706751e+00 -6.25033209e+00 -1.03197793e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -349 2.96336237e-07 5.42256721e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.37616598e-01 2.02980052e-01 6.60788522e-02 ! x y z --5.18840076e+00 -8.45536631e+00 -6.44059955e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -350 2.96336237e-07 4.79538909e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.95024985e-03 3.52976307e-01 6.66766848e-04 ! x y z --1.05750536e+01 -1.91498252e-01 -8.88302564e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -351 2.96336237e-07 2.80094606e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.44917298e-01 1.46896616e-01 -3.00771109e-03 ! x y z --9.83128145e+00 9.72294093e+00 2.30274431e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -352 2.96336237e-07 2.56232072e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.43577814e-01 -1.22681677e-01 6.14664113e-04 ! x y z -9.39168710e+00 1.09855888e+01 -1.45190396e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -353 2.96336237e-07 4.05817714e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.76150978e-01 1.14306049e-01 -5.53696630e-03 ! x y z --4.39889142e+00 -1.06113876e+01 3.34799914e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -354 2.96336237e-07 1.92799688e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.14824480e-01 8.32536168e-02 1.29067249e-03 ! x y z --9.75891742e+00 -1.35052597e+01 1.02642147e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -355 2.96336237e-07 4.77388990e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.50594061e+00 1.89487799e-01 -1.10776418e-01 ! x y z --1.74898078e-01 3.34584841e+00 1.55982954e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -356 2.96336237e-07 1.15900447e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.28679880e-01 1.64171099e-01 1.12408174e-01 ! x y z --1.32032553e+00 6.68266447e+00 -3.77178284e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -357 2.96336237e-07 1.78326922e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.27246483e+00 -2.07431597e-01 2.51295285e-01 ! x y z -8.79452000e-01 -5.41123016e+00 -1.29786724e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -358 2.96336237e-07 3.96972985e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.76041471e-01 2.28173826e-01 -5.01314047e-02 ! x y z --9.09876816e+00 -7.17798953e+00 -7.71119240e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -359 2.96336237e-07 2.95574866e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.01303558e-01 -7.90205748e-02 2.32529552e-02 ! x y z -4.77963431e+00 1.25445250e+01 1.21208674e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -360 2.96336237e-07 1.48333629e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.08091507e+00 -1.52920948e-01 -3.52003300e-02 ! x y z -8.49131305e-01 -5.95132813e+00 -1.27166412e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -361 2.96336237e-07 9.93434183e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.93585604e-01 -7.04354333e-01 1.99030539e-02 ! x y z -7.08789902e+00 -1.95471330e+00 -1.97463547e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -362 2.96336237e-07 5.46335011e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.83832083e-01 1.01400790e-01 -6.82830848e-02 ! x y z --2.37393539e+00 -9.56981770e+00 -8.27672711e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -363 2.96336237e-07 3.88174651e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.12836866e-01 -2.62714235e-01 -2.23240748e-03 ! x y z -1.06544118e+01 -4.59156390e+00 1.86168167e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -364 2.96336237e-07 1.39684715e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.65674301e-01 -9.94396924e-01 -4.97890722e-02 ! x y z -5.97611628e+00 -1.58585732e+00 -1.49128145e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -365 2.96336237e-07 2.63016257e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.05181886e-01 -1.62659678e-01 3.75498822e-03 ! x y z -1.19079955e+01 -7.67224971e+00 1.75916456e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -366 2.96336237e-07 2.74989426e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.26068740e-02 -1.80296451e-01 3.06740069e-03 ! x y z -1.23572716e+01 -6.38260377e+00 -1.07462337e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -367 2.96336237e-07 3.48022342e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.16971931e-01 -1.35786427e-01 1.30123170e-02 ! x y z -6.53305331e+00 1.05234893e+01 8.03873001e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -368 2.96336237e-07 3.64436086e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.59780993e-01 6.09682199e-02 2.74509603e-02 ! x y z --2.70228190e+00 1.18097033e+01 -7.08162175e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -369 2.96336237e-07 8.46983204e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.22106687e-01 1.53829631e-02 -4.51201744e-02 ! x y z --1.98166504e-01 -7.95159095e+00 8.60968175e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -370 2.96336237e-07 2.79966610e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.96084098e-01 6.03701947e-02 2.03429473e-02 ! x y z --4.00626565e+00 -1.32335109e+01 5.88204163e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -371 2.96336237e-07 5.42129386e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.32804448e-01 3.76268189e-01 2.32702428e-02 ! x y z --9.34106532e+00 3.32885748e+00 -5.83997787e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -372 2.96336237e-07 6.29442732e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.93351137e-01 -3.58675292e-01 -1.35339509e-02 ! x y z -7.14375596e+00 -5.84118455e+00 -1.56498352e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -373 2.96336237e-07 2.80975739e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.99311343e-01 5.52678059e-02 8.50660489e-04 ! x y z --3.68576775e+00 -1.33188519e+01 -9.69110262e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -374 2.96336237e-07 1.81660771e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.09322328e-01 1.05761672e+00 -1.24033041e-01 ! x y z --4.27549892e+00 -3.32755566e+00 -4.19461137e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -375 2.96336237e-07 1.63925954e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.02851334e-02 8.99386865e-02 6.21423455e-03 ! x y z --1.35022683e+01 1.20270766e+01 3.54967412e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -376 2.96336237e-07 2.95713583e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.17802385e-01 2.28533210e-03 -7.79538718e-04 ! x y z --1.45445253e-01 -1.34618028e+01 7.02830863e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -377 2.96336237e-07 2.08112975e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.82043397e-02 -1.36771303e-01 7.52965763e-03 ! x y z -1.43908386e+01 -7.15698539e+00 3.65283635e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -378 2.96336237e-07 1.55935417e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.15587490e-02 9.71369829e-02 -3.02386329e-03 ! x y z --1.55151080e+01 -9.91160961e+00 -1.91553301e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -379 2.96336237e-07 1.25889732e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.82560979e-01 -9.09843620e-01 9.48818739e-03 ! x y z -6.39229955e+00 -1.28106823e+00 5.22457788e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -380 2.96336237e-07 2.12561572e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.23108009e-01 -1.32617278e+00 1.23662701e-01 ! x y z -4.25370146e+00 2.65982371e+00 2.10168530e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -381 2.96336237e-07 9.77292699e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.10615145e-01 1.11068105e-01 -6.40369136e-03 ! x y z --1.13341270e+00 -7.27360365e+00 -8.60646993e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -382 2.96336237e-07 8.65057596e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.64144451e-02 6.32798503e-01 4.83297027e-03 ! x y z --7.79463296e+00 -9.41303617e-01 -5.19602064e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -383 2.96336237e-07 4.16694780e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.87795800e-02 2.97221164e-01 -3.70513499e-02 ! x y z --1.10257888e+01 2.58340095e+00 2.36037441e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -384 2.96336237e-07 1.28879730e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.04909817e-02 9.45845669e-01 1.26414532e-02 ! x y z --6.42408731e+00 5.52782678e-01 8.84100450e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -385 2.96336237e-07 4.17093904e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.00250010e-01 -4.61717434e-02 4.54437632e-02 ! x y z -1.65626222e+00 1.12062055e+01 4.79470271e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -386 2.96336237e-07 6.42411770e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.20189451e-01 4.56439271e-01 -3.43259226e-02 ! x y z --8.81936352e+00 2.35383445e+00 2.96741433e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -387 2.96336237e-07 2.97492800e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.16025925e-01 3.67289756e-02 2.05891276e-04 ! x y z --2.24944633e+00 -1.32322049e+01 1.06228131e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -388 2.96336237e-07 3.73329704e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.12578184e-01 -2.51071118e-01 -3.24633349e-03 ! x y z -1.09246995e+01 -4.88819098e+00 -3.52020662e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -389 2.96336237e-07 4.14696261e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.36304268e+00 -2.71276067e+00 -3.42951553e-01 ! x y z -3.14534902e+00 -1.65403279e+00 5.37973524e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -390 2.96336237e-07 3.36608807e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.42820725e-01 3.46024676e-02 3.75755809e-02 ! x y z --1.64163701e+00 -1.24702352e+01 8.78352591e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -391 2.96336237e-07 5.94668489e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.41070611e-01 3.63922922e-01 3.80359426e-02 ! x y z --7.91980525e+00 -5.15491507e+00 -8.75416896e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -392 2.96336237e-07 2.13567453e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.16213940e+00 -1.05899627e+00 6.10323500e-02 ! x y z -3.37229977e+00 -3.67334562e+00 4.67278447e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -393 2.96336237e-07 8.88140076e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.85392094e-01 -4.37105729e-01 3.12169935e-02 ! x y z -5.20303191e+00 -5.77180451e+00 -7.98137265e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -394 2.96336237e-07 7.24437484e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.61820493e-01 2.66353997e-01 2.17965804e-02 ! x y z --4.24887830e+00 -7.43429555e+00 8.19523242e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -395 2.96336237e-07 6.65300130e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.62221188e-01 1.60781889e-01 7.33018371e-03 ! x y z --2.93895152e+00 8.49233635e+00 -3.92816950e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -396 2.96336237e-07 7.16134489e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.47706740e-01 -2.77957916e-01 -1.85035016e-02 ! x y z -4.57102613e+00 -7.34757403e+00 -1.19957865e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -397 2.96336237e-07 1.92376584e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.88328782e-02 1.00482109e-01 -1.34781469e-02 ! x y z --1.19672505e+01 1.14783531e+01 -2.02223637e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -398 2.96336237e-07 2.69462718e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.56618135e-02 -1.95179692e-01 -2.56357128e-02 ! x y z -1.39771705e+01 -1.75913056e+00 -6.02418142e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -399 2.96336237e-07 5.55902193e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.85511389e-01 -1.36099464e-01 -2.96613144e-02 ! x y z -3.18804063e+00 -9.21908363e+00 1.02571066e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -400 2.96336237e-07 5.64862235e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.12182283e-01 -2.72484470e-01 4.07795393e-02 ! x y z -6.19773943e+00 7.33314751e+00 1.59866153e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -401 2.96336237e-07 3.56339876e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.62099711e-01 -1.00892918e-02 1.62109221e-03 ! x y z -4.70613382e-01 1.22581236e+01 3.52052855e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -402 2.96336237e-07 1.61041437e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15583132e-01 2.43382033e-02 9.50065586e-03 ! x y z --3.80718147e+00 1.78518032e+01 5.52783825e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -403 2.96336237e-07 5.29594349e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.05609539e-01 3.29682657e-01 3.47732583e-02 ! x y z --8.47434628e+00 5.36846670e+00 -7.50738558e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -404 2.96336237e-07 6.80601190e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.04944854e-01 -2.95970631e-01 -2.59948939e-03 ! x y z -5.21385720e+00 -7.15795730e+00 4.94364928e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -405 2.96336237e-07 3.60706427e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.98415475e-01 -1.76282053e-01 8.95959811e-03 ! x y z -8.06477417e+00 -9.11262800e+00 -8.04042263e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -406 2.96336237e-07 1.22185244e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.50656218e-01 7.80652266e-01 -5.66794931e-03 ! x y z --5.72481687e+00 -3.30946010e+00 -2.74239813e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -407 2.96336237e-07 2.24692639e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.20076564e-02 1.52461263e-01 -1.66579633e-02 ! x y z --1.42210536e+01 5.52271861e+00 -2.45125040e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -408 2.96336237e-07 3.01920495e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.37548329e-01 1.74628245e-01 -3.14059950e-04 ! x y z --1.04659256e+01 8.24037653e+00 -4.78988926e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -409 2.96336237e-07 7.19185417e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.48465166e-01 -2.79691978e-01 1.66983254e-02 ! x y z -4.56350910e+00 -7.34292846e+00 -2.10492338e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -410 2.96336237e-07 2.56051675e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.85944658e-01 -2.77858214e-03 -3.04556434e-02 ! x y z -1.69348588e-01 -1.44728752e+01 4.25617604e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -411 2.96336237e-07 1.41373242e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.57939644e-01 -9.72362754e-01 9.71190219e-02 ! x y z -5.78057114e+00 -2.08525173e+00 4.40592327e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -412 2.96336237e-07 1.88511528e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.34885906e-01 -3.20150550e-02 -7.83482504e-03 ! x y z -3.88157821e+00 1.64046707e+01 -3.59851959e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -413 2.96336237e-07 2.27441077e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.22714051e-01 -1.13915237e-01 -1.01688160e-03 ! x y z -1.04326996e+01 1.12651273e+01 3.88159864e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -414 2.96336237e-07 6.89843026e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.30829755e-01 -2.68506119e-01 8.26621958e-04 ! x y z -4.66297846e+00 -7.48964199e+00 1.15495731e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -415 2.96336237e-07 8.26615711e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.74197899e-01 -5.43602536e-01 -4.29449805e-03 ! x y z -7.11308249e+00 -3.59570455e+00 1.14704901e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -416 2.96336237e-07 4.53486252e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.35582867e-02 3.22357548e-01 -2.71008582e-02 ! x y z --1.04320563e+01 -2.80914233e+00 -1.18728351e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -417 2.96336237e-07 4.24891295e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.86985797e-01 1.24642087e-01 2.31224096e-04 ! x y z --4.47483315e+00 -1.03045069e+01 2.88495560e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -418 2.96336237e-07 9.87915013e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.20631660e-01 5.98098282e-02 -7.61709018e-02 ! x y z --7.17860422e-01 -7.24472311e+00 1.15563596e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -419 2.96336237e-07 1.55024247e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.35156071e-01 7.78478954e-01 4.52480826e-02 ! x y z --4.00131250e+00 4.25179653e+00 6.63408429e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -420 2.96336237e-07 1.70693696e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.12082937e-02 -1.14865207e-01 1.05466758e-03 ! x y z -1.60352488e+01 -7.11498918e+00 2.45969909e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -421 2.96336237e-07 8.54889179e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.82364301e-01 -2.35786349e-01 -5.03085394e-02 ! x y z -2.90118527e+00 -7.33264171e+00 6.24122661e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -422 2.96336237e-07 2.06759317e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.41969344e+00 5.46475329e-01 -2.75174874e-02 ! x y z --1.81658616e+00 -4.75431993e+00 -2.61454444e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -423 2.96336237e-07 1.43176681e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.68588764e-01 -5.79721560e-01 1.44555313e-01 ! x y z -3.40325467e+00 5.08661448e+00 -6.51907329e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -424 2.96336237e-07 2.92359728e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.97666602e-02 2.11166252e-01 -1.17087721e-02 ! x y z --1.32176825e+01 -2.55941044e+00 -1.52335687e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -425 2.96336237e-07 2.02675932e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.53168207e-02 -1.42171945e-01 4.61423367e-03 ! x y z -1.54907880e+01 -4.94299964e+00 -1.77986296e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -426 2.96336237e-07 2.16684285e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.54847711e+00 -3.30904648e-01 -2.03004907e-01 ! x y z -1.03397055e+00 -4.86225620e+00 1.15869835e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -427 2.96336237e-07 1.55313392e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.12093570e-02 9.51509221e-02 -1.71687947e-02 ! x y z --1.55998841e+01 -1.00728646e+01 -2.63595862e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -428 2.96336237e-07 6.31130819e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.34969553e-02 4.63360586e-01 -1.87530887e-02 ! x y z --9.17524778e+00 6.43565776e-01 -5.44346029e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -429 2.96336237e-07 1.83521468e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.34485639e-01 -2.62016560e-03 -1.35071107e-02 ! x y z -7.47594237e-02 -1.68864601e+01 2.61653309e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -430 2.96336237e-07 2.39309130e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.63939940e-01 -6.15326804e-02 -1.84454836e-02 ! x y z -5.01651888e+00 -1.39589861e+01 2.10673063e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -431 2.96336237e-07 2.93091033e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.36454071e-01 1.67420190e-01 2.31157124e-03 ! x y z --1.04670318e+01 8.55064839e+00 -6.49096834e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -432 2.96336237e-07 4.22263109e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.60437990e-01 3.05129261e+00 4.89087031e-01 ! x y z --3.53781459e+00 -4.06922362e-01 -6.08435339e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -433 2.96336237e-07 7.48573854e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.47518755e-02 5.44565306e-01 1.16419465e-02 ! x y z --8.35003295e+00 1.31556143e+00 -4.25106838e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -434 2.96336237e-07 7.30614080e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.55024567e-01 2.85462982e-01 2.34849534e-02 ! x y z --4.55328116e+00 -7.26309227e+00 7.69716795e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -435 2.96336237e-07 1.38969036e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.01667846e-02 7.45119946e-02 9.93371195e-04 ! x y z --1.42999379e+01 1.34614816e+01 1.65501165e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -436 2.96336237e-07 2.97791322e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.38715001e-01 -1.64751522e-01 -4.22198947e-02 ! x y z -1.02952577e+01 -8.58293358e+00 -3.42918908e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -437 2.96336237e-07 1.70873229e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.02735594e-02 -1.23592443e-01 1.46946078e-02 ! x y z -1.74459801e+01 2.83547417e+00 -2.38379975e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -438 2.96336237e-07 7.28616991e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.86775760e-01 -2.06021084e-01 -9.10048444e-02 ! x y z -3.34626573e+00 7.90263542e+00 1.02025325e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -439 2.96336237e-07 1.35991176e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.02400818e-02 -7.03889648e-02 -1.23708027e-02 ! x y z -1.41211931e+01 1.39006563e+01 1.08576673e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -440 2.96336237e-07 1.87977460e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.46315901e-01 1.22685859e+00 1.52157688e-02 ! x y z --4.70252112e+00 -2.47549242e+00 4.25683364e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -441 2.96336237e-07 1.99751638e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.28398210e-03 1.46740000e-01 7.92684483e-03 ! x y z --1.63576039e+01 -8.26094255e-01 2.38645839e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -442 2.96336237e-07 2.45251621e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.67123503e-02 -1.74017282e-01 1.47575177e-02 ! x y z -1.42738524e+01 -3.77230021e+00 4.89179037e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -443 2.96336237e-07 2.71954726e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.74868597e-01 9.54796146e-02 2.13928818e-02 ! x y z --6.65021169e+00 1.23302849e+01 -8.28868729e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -444 2.96336237e-07 2.40120483e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.27247667e-01 1.50687224e+00 -6.09014414e-02 ! x y z --4.00962724e+00 -2.48167195e+00 -2.06220661e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -445 2.96336237e-07 1.28146659e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.29512661e-01 -8.33678655e-01 -1.00503750e-01 ! x y z -5.75433130e+00 -2.88687173e+00 -6.64292970e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -446 2.96336237e-07 2.21454047e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.53292870e-01 5.48794077e-02 -1.03566499e-02 ! x y z --5.26757054e+00 -1.46208727e+01 6.42185817e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -447 2.96336237e-07 3.71317328e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.72380007e-01 -2.09794020e-02 -4.48877896e-03 ! x y z -9.01380369e-01 1.19705549e+01 -7.28828651e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -448 2.96336237e-07 1.88133306e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.36629235e-02 -1.33287212e-01 1.70068999e-02 ! x y z -1.62171433e+01 4.32627342e+00 1.84307871e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -449 2.96336237e-07 2.82967444e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.32972925e-01 1.60363672e-01 2.62532313e-03 ! x y z --1.05962488e+01 -8.78492767e+00 3.39026344e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -450 2.96336237e-07 1.97476666e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.14667974e-01 8.60420612e-02 -2.41968058e-02 ! x y z --1.00740249e+01 -1.29298760e+01 1.73225479e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -451 2.96336237e-07 1.24560075e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.99044641e-01 6.94415774e-01 -2.72189745e-02 ! x y z --4.95406800e+00 4.28653731e+00 3.31209230e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -452 2.96336237e-07 2.48697738e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.60387987e-01 -8.55569874e-02 -2.17110739e-02 ! x y z -6.66346394e+00 1.29684727e+01 -1.78603358e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -453 2.96336237e-07 1.66926391e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.19091709e-02 -1.18611467e-01 6.93991962e-04 ! x y z -1.70595380e+01 4.57810905e+00 -3.12057238e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -454 2.96336237e-07 5.44556123e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.21229996e-01 2.40071132e-01 -9.66251321e-04 ! x y z --5.94994824e+00 -7.94081626e+00 -5.79077084e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -455 2.96336237e-07 6.41822118e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.48225673e-01 -1.48251167e-01 -1.62402065e-02 ! x y z -2.79897756e+00 -8.57698534e+00 1.49583909e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -456 2.96336237e-07 3.30547629e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.86095015e-01 -1.55506128e-01 2.39343721e-02 ! x y z -7.94956344e+00 9.77556087e+00 1.75948163e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -457 2.96336237e-07 8.87191145e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.37324082e-01 -3.71096574e-01 1.40059736e-02 ! x y z -4.41299141e+00 -6.39105431e+00 3.88065657e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -458 2.96336237e-07 7.93953146e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.42917106e-01 -5.66898954e-01 -1.70393543e-02 ! x y z -7.96327449e+00 -2.01468266e+00 1.25216253e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -459 2.96336237e-07 2.69623577e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.25885000e-02 -1.88370549e-01 8.01319278e-03 ! x y z -1.33515062e+01 -4.37290691e+00 1.13110545e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -460 2.96336237e-07 6.88113661e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.36878817e-02 5.01468870e-01 -3.49387791e-02 ! x y z --8.73675688e+00 -1.14770527e+00 -5.34876959e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -461 2.96336237e-07 3.63505260e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.29585488e-01 -1.34800853e-01 2.88054342e-02 ! x y z -6.13218401e+00 -1.04784085e+01 -3.35334988e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -462 2.96336237e-07 4.48600356e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.80904494e-01 1.72983824e-01 2.39099476e-02 ! x y z --5.66892025e+00 -9.31281392e+00 6.09045924e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -463 2.96336237e-07 4.60421201e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.37402744e-01 2.15490530e-02 2.57295112e-02 ! x y z --7.22874362e-01 -1.07589434e+01 -4.21222948e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -464 2.96336237e-07 5.14296808e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.50742029e-01 -2.82234982e-01 -2.94391082e-02 ! x y z -7.63843944e+00 -6.77837022e+00 -3.04010490e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -465 2.96336237e-07 6.66724405e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.80450534e-01 -3.10806357e-01 3.06213287e-03 ! x y z -5.66471824e+00 6.94483108e+00 9.24105070e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -466 2.96336237e-07 5.86356219e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.53301328e-02 4.28458971e-01 1.31347115e-02 ! x y z --9.45379180e+00 1.23817457e+00 -6.03268825e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -467 2.96336237e-07 2.94669732e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.11978979e-01 3.99104729e-02 2.49901868e-02 ! x y z --2.32258920e+00 1.32046443e+01 -1.40139404e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -468 2.96336237e-07 2.80867894e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.08747588e+00 -1.71879511e+00 3.78360474e-01 ! x y z -3.69842118e+00 -2.32368911e+00 6.68941522e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -469 2.96336237e-07 3.45065089e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.04953230e-01 -1.48069140e-01 -2.62804192e-02 ! x y z -7.16157278e+00 -1.01193616e+01 1.25927513e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -470 2.96336237e-07 4.69733726e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.84029652e-02 -3.35038325e-01 2.50633642e-04 ! x y z -1.02947402e+01 -2.72986635e+00 -5.74793960e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -471 2.96336237e-07 4.18657783e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.67389609e-02 2.94933763e-01 2.20228610e-02 ! x y z --1.07314933e+01 3.01395895e+00 1.97635356e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -472 2.96336237e-07 3.21458680e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.17769643e-01 9.06562121e-02 -2.14940438e-02 ! x y z --5.04519229e+00 1.17994339e+01 -1.38944344e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -473 2.96336237e-07 3.26326331e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.35770292e+00 -3.69216175e-01 -2.68917545e-01 ! x y z -6.64782930e-01 3.98788156e+00 3.28458551e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -474 2.96336237e-07 8.21429873e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.56084537e-02 -6.02584980e-01 3.87591085e-02 ! x y z -7.97734690e+00 -4.29857311e-01 -1.25323125e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -475 2.96336237e-07 8.83749527e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.43818011e-02 -6.48128586e-01 -5.07797525e-02 ! x y z -7.76024201e+00 5.42566020e-01 -7.00809703e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -476 2.96336237e-07 1.09821035e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.63672881e-01 7.63519991e-01 -4.65831578e-02 ! x y z --6.60168883e+00 -2.27863704e+00 -7.83476422e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -477 2.96336237e-07 1.37334600e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.93911296e-01 -1.97273622e-01 -6.33817221e-03 ! x y z -1.19142617e+00 -6.02121881e+00 1.10339274e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -478 2.96336237e-07 1.07104699e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.74830200e-01 5.40122002e-01 9.49532824e-03 ! x y z --4.80149648e+00 -5.13565644e+00 7.88810664e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -479 2.96336237e-07 1.38042525e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.61834016e-02 9.79775804e-02 7.20783264e-03 ! x y z --1.89353132e+01 5.18816885e+00 -1.68983838e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -480 2.96336237e-07 5.10978276e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.66903284e-01 6.91149116e-02 -5.01968098e-02 ! x y z --1.85318085e+00 -1.00593554e+01 -2.75616160e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -481 2.96336237e-07 3.05274909e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.71729164e-01 -1.40980333e-01 3.45145092e-02 ! x y z -8.50264083e+00 1.01157393e+01 -9.78829565e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -482 2.96336237e-07 7.59583015e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.74863167e-01 -4.87288914e-01 -7.01091981e-03 ! x y z -7.29926377e+00 -4.12480370e+00 5.13053423e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -483 2.96336237e-07 5.02618655e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.98738496e-02 3.63192226e-01 2.03347619e-02 ! x y z --1.01387678e+01 1.92473563e+00 1.55630941e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -484 2.96336237e-07 1.49466787e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.08546583e+00 -1.77271688e-01 1.48019030e-02 ! x y z -9.61232521e-01 -5.91530968e+00 -9.21884448e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -485 2.96336237e-07 1.84096963e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.13395394e-01 -7.05886785e-02 2.37638570e-02 ! x y z -9.13457331e+00 1.43767027e+01 -8.44936245e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -486 2.96336237e-07 1.53863823e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.78394029e-02 -9.61026782e-02 -1.60359293e-02 ! x y z -1.59663299e+01 9.66929005e+00 -2.84587179e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -487 2.96336237e-07 3.08205176e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.15422727e-01 1.94890266e-01 8.56867922e-03 ! x y z --1.13546945e+01 -6.71532963e+00 -6.41539415e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -488 2.96336237e-07 1.45829767e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.25199647e-02 -5.03219272e-02 2.10496182e-02 ! x y z -9.15952325e+00 1.68438130e+01 -1.66829844e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -489 2.96336237e-07 5.60589128e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.92688131e-01 1.16571621e-01 5.18783048e-02 ! x y z --2.81164605e+00 9.36227202e+00 2.43625132e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -490 2.96336237e-07 2.18575036e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.57192142e-01 3.50036711e-02 1.24490771e-03 ! x y z --3.42010231e+00 1.52757278e+01 -1.12298984e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -491 2.96336237e-07 1.96739500e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.88624087e-02 1.39124359e-01 -9.02129479e-03 ! x y z --1.59048400e+01 -4.47159171e+00 -3.90067015e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -492 2.96336237e-07 2.15913074e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.55584668e-01 3.17335414e-02 6.41741208e-03 ! x y z --3.09008864e+00 -1.54338076e+01 9.24390160e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -493 2.96336237e-07 1.62567352e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19461645e+00 -8.83644411e-02 -2.61179095e-03 ! x y z -4.25024298e-01 -5.72376019e+00 -4.65699708e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -494 2.96336237e-07 1.42504876e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.46323736e-02 -1.01955043e-01 -3.55389051e-03 ! x y z -1.88487562e+01 -4.53688143e+00 -6.06593359e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -495 2.96336237e-07 5.38016367e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.98038356e+00 -3.40535260e+00 -4.66042110e-01 ! x y z -2.70747247e+00 -1.60138376e+00 2.17920750e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -496 2.96336237e-07 1.05967929e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.07313263e-02 -7.76659974e-01 -5.69065282e-02 ! x y z -7.07563163e+00 -5.84817707e-01 3.12535117e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -497 2.96336237e-07 3.97562064e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.78863913e+00 8.29018944e-01 3.31578789e-01 ! x y z --1.06249962e+00 -3.51171701e+00 -1.50617364e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -498 2.96336237e-07 1.64010346e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19312604e-01 6.93617890e-03 -1.66125280e-02 ! x y z --9.67362351e-01 -1.80606482e+01 -6.64959086e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -499 2.96336237e-07 2.35165304e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.67083527e-02 -1.72316262e-01 -3.77617658e-03 ! x y z -1.50252499e+01 -1.48031463e+00 3.11671094e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -500 2.96336237e-07 2.37291382e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.42837068e+00 -1.00814045e+00 -5.13788961e-03 ! x y z -2.73953272e+00 3.88140381e+00 -6.32240209e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -501 2.96336237e-07 8.36411429e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.23810047e-01 5.73523706e-01 2.23891100e-02 ! x y z --7.43705090e+00 2.87749193e+00 7.03965829e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -502 2.96336237e-07 4.23744274e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.29428284e-01 -2.10230652e-01 -2.69694466e-02 ! x y z -7.61962290e+00 -8.24358240e+00 -5.32437540e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -503 2.96336237e-07 2.80990992e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.39607016e-02 1.91767602e-01 -2.43899192e-02 ! x y z --1.28301360e+01 4.69731488e+00 -2.01320121e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -504 2.96336237e-07 2.10323912e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.23915003e-02 1.35674808e-01 -1.89893003e-02 ! x y z --1.38645742e+01 7.66898473e+00 1.92306704e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -505 2.96336237e-07 1.40586241e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.79792818e-02 -6.81422303e-02 -3.99266216e-05 ! x y z -1.28465439e+01 -1.47026621e+01 -4.09588458e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -506 2.96336237e-07 2.61644240e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.85232115e-01 5.36288795e-02 -6.65183829e-03 ! x y z --3.97027669e+00 -1.37312546e+01 -2.03560707e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -507 2.96336237e-07 1.83025109e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.37652645e-02 1.32666931e-01 -3.29140196e-03 ! x y z --1.68344741e+01 -3.02898827e+00 -4.84909032e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -508 2.96336237e-07 2.00385674e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.58952901e-01 1.10088428e+00 2.11129960e-01 ! x y z --3.91006081e+00 -3.38903362e+00 -5.25833510e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -509 2.96336237e-07 2.10409880e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.45070891e-02 -1.22625130e-01 -8.21405938e-03 ! x y z -1.26393972e+01 -9.73581830e+00 -1.12303107e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -510 2.96336237e-07 3.44196049e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.35866189e-01 9.28315354e-02 -1.28285948e-03 ! x y z --4.57176896e+00 -1.16107525e+01 -2.50452619e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -511 2.96336237e-07 1.58326635e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.51746622e-01 6.70204769e-01 2.52434901e-02 ! x y z --3.35134130e+00 4.75908858e+00 2.84487230e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -512 2.96336237e-07 1.88062826e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.96139949e-02 -1.24558414e-01 -1.28354607e-02 ! x y z -1.52137734e+01 -7.26806241e+00 -2.12454466e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -513 2.96336237e-07 1.69557622e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.04758010e-01 6.78623954e-02 3.72999244e-03 ! x y z --9.45160423e+00 1.47535363e+01 -3.03166321e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -514 2.96336237e-07 1.86915616e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.25033228e-01 5.23558394e-02 -2.32494756e-02 ! x y z --6.67105471e+00 -1.55675151e+01 7.08584215e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -515 2.96336237e-07 2.37212396e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.25364198e-02 -1.69346444e-01 -1.06788137e-02 ! x y z -1.42635079e+01 -3.76132657e+00 2.79486328e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -516 2.96336237e-07 4.87550708e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.54310915e-01 6.05134652e-02 -6.53974311e-03 ! x y z --1.75726370e+00 -1.03156503e+01 -4.43085251e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -517 2.96336237e-07 3.77494352e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.36713205e-01 -2.41367591e-01 -1.99006867e-02 ! x y z -1.01604142e+01 5.91358715e+00 -1.92832189e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -518 2.96336237e-07 7.25955810e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.88703537e-01 -3.66782723e-01 -3.95139801e-03 ! x y z -5.85998079e+00 6.21645634e+00 -9.59639662e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -519 2.96336237e-07 1.32620305e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.33345329e-02 -9.73694597e-01 -5.95991625e-02 ! x y z -6.35786090e+00 2.01006206e-01 1.18822475e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -520 2.96336237e-07 1.39487685e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.15930352e-02 4.43288352e-02 1.37885447e-02 ! x y z --8.54263494e+00 1.76547673e+01 -7.83403605e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -521 2.96336237e-07 1.59293630e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.59646180e-02 -7.89984657e-02 1.21394860e-02 ! x y z -1.24654876e+01 1.31181324e+01 -2.95214546e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -522 2.96336237e-07 1.98247277e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.30817476e-01 -6.46309480e-02 -6.56300943e-03 ! x y z -7.22843846e+00 1.47325007e+01 -9.61333526e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -523 2.96336237e-07 2.12070858e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.68896882e-02 1.40477764e-01 1.61707214e-02 ! x y z --1.43381301e+01 6.80655094e+00 3.22001948e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -524 2.96336237e-07 5.13604328e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.58234319e-01 1.20461127e-01 -1.21864145e-02 ! x y z --3.24155378e+00 -9.69030255e+00 -1.92293262e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -525 2.96336237e-07 4.10902358e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.45377903e+00 1.76485940e+00 4.33485313e-02 ! x y z --2.11172628e+00 -2.93273226e+00 -1.25768796e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -526 2.96336237e-07 1.49304338e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.94115625e-02 6.38050179e-02 8.59670957e-04 ! x y z --1.10150464e+01 1.54365794e+01 4.37366407e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -527 2.96336237e-07 2.86881087e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.89637459e-01 9.31542402e-02 -9.14067738e-03 ! x y z --5.99723059e+00 1.22602491e+01 4.95210380e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -528 2.96336237e-07 1.55558944e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.13400087e-01 -8.69466529e-03 -1.32599317e-02 ! x y z -1.72514459e+00 -1.83063899e+01 -2.62908926e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -529 2.96336237e-07 2.15638745e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.47995018e-01 5.75461361e-02 1.75652969e-03 ! x y z --5.71848999e+00 1.46865069e+01 -5.14295377e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -530 2.96336237e-07 2.10629647e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.37509872e-01 -7.21985691e-02 9.82476434e-04 ! x y z -7.38932340e+00 1.41055794e+01 5.77939589e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -531 2.96336237e-07 3.19581465e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.89229200e-03 2.31683820e-01 4.27609062e-02 ! x y z --1.29059816e+01 -4.04340421e-01 7.89790953e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -532 2.96336237e-07 3.80292466e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.29332026e-02 2.75088091e-01 -2.29074633e-03 ! x y z --1.16534692e+01 -2.25226228e+00 1.73926099e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -533 2.96336237e-07 8.08615790e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.31548001e-01 5.81644937e-01 -1.92828250e-02 ! x y z --7.91943835e+00 1.77979999e+00 -4.07451925e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -534 2.96336237e-07 9.37824352e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.11546674e-01 -4.52679827e-01 -9.71334944e-02 ! x y z -5.05766923e+00 5.59911288e+00 5.97503175e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -535 2.96336237e-07 2.39755970e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.61851139e-01 6.37804133e-02 3.19767135e-02 ! x y z --5.65849551e+00 -1.37628870e+01 -1.18447683e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -536 2.96336237e-07 3.92931879e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.51012389e-01 -2.46606087e-01 7.53479358e-03 ! x y z -9.96362197e+00 6.10470212e+00 9.01395516e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -537 2.96336237e-07 5.26277224e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.50289584e-01 -1.65676588e-01 5.67832345e-03 ! x y z -4.28508529e+00 -9.00879595e+00 1.54200267e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -538 2.96336237e-07 1.42636182e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.75445959e-01 5.69629175e-01 -1.08396720e-01 ! x y z --3.36296391e+00 5.12654357e+00 -1.58238342e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -539 2.96336237e-07 4.03332109e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.24937685e-01 2.67583033e-01 -2.89409684e-02 ! x y z --1.04552212e+01 4.88787128e+00 3.92694408e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -540 2.96336237e-07 1.51996823e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.10722600e+00 1.73548896e-01 -2.20777532e-02 ! x y z --9.22071822e-01 -5.85858030e+00 3.51680681e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -541 2.96336237e-07 3.94721319e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.91630441e-01 -2.18416612e-01 6.71268569e-03 ! x y z -8.70314928e+00 -7.67030314e+00 -1.13964851e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -542 2.96336237e-07 9.01095584e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.43626399e-01 6.36081444e-01 1.25576531e-01 ! x y z --7.50316582e+00 1.74429262e+00 -2.76987385e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -543 2.96336237e-07 4.26708936e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.51859852e-01 -2.75296435e-01 -1.80321879e-03 ! x y z -9.81312713e+00 5.40527617e+00 -8.07894004e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -544 2.96336237e-07 2.09631430e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19646120e-01 -9.38928734e-02 2.66190406e-02 ! x y z -9.98049746e+00 -1.24600020e+01 9.15594008e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -545 2.96336237e-07 2.91322807e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.44624039e-02 2.09694106e-01 1.47358113e-02 ! x y z --1.32394182e+01 -2.74490731e+00 -8.25024319e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -546 2.96336237e-07 3.71641059e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.48858646e-02 -2.67804958e-01 -3.40132278e-02 ! x y z -1.17526334e+01 2.12720619e+00 -1.28483496e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -547 2.96336237e-07 2.21213140e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.05902475e-01 1.23466476e-01 1.11122575e-02 ! x y z --1.15218808e+01 1.01052113e+01 -2.66718528e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -548 2.96336237e-07 6.33840222e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.33468133e-02 4.62176323e-01 -3.94042822e-02 ! x y z --9.13439328e+00 1.04329843e+00 -1.38557746e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -549 2.96336237e-07 4.39863596e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.65066452e-01 3.13215256e+00 -4.79875796e-01 ! x y z --3.41576805e+00 -6.89596386e-01 2.41535843e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -550 2.96336237e-07 2.69688250e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.70494651e-01 1.01389806e-01 1.13846483e-02 ! x y z --7.16363306e+00 -1.21143389e+01 7.56698890e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -551 2.96336237e-07 1.87425525e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.37092662e-01 1.47070424e-02 -6.42290350e-03 ! x y z --1.82777623e+00 -1.68068813e+01 5.02981376e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -552 2.96336237e-07 1.87449787e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.70463571e-02 -1.19985347e-01 -1.34352121e-02 ! x y z -1.47646213e+01 8.23106039e+00 2.28690720e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -553 2.96336237e-07 7.52709177e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.42639429e-01 -1.09943868e-01 -2.21172532e-02 ! x y z -1.67832514e+00 -8.26484008e+00 -4.04191328e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -554 2.96336237e-07 1.99863766e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19921410e+00 -8.53319367e-01 1.61413409e-02 ! x y z -3.00269256e+00 -4.21903206e+00 9.42205511e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -555 2.96336237e-07 2.28586675e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.59777449e-01 -5.28881823e-02 -2.92518092e-03 ! x y z -4.81948118e+00 1.45380762e+01 7.80128461e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -556 2.96336237e-07 2.99582435e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.29411621e+00 1.78281849e+00 1.11116640e-01 ! x y z --3.41610643e+00 -2.44942993e+00 -4.84742527e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -557 2.96336237e-07 8.81117215e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.35008466e-01 1.31435413e-01 -1.46413679e-02 ! x y z --1.58449106e+00 -7.63523076e+00 -3.02586995e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -558 2.96336237e-07 2.44024025e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.27616010e-02 -1.64056091e-01 9.32142368e-03 ! x y z -1.35389561e+01 5.94751097e+00 -1.02013369e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -559 2.96336237e-07 8.09745189e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.00072858e-01 3.23316707e-01 3.38141528e-02 ! x y z --4.27710487e+00 6.75782783e+00 -1.49194244e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -560 2.96336237e-07 3.35304996e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.40791718e-01 -2.01902823e-01 2.16741965e-02 ! x y z -1.03799556e+01 7.19829477e+00 -3.62821649e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -561 2.96336237e-07 3.50732384e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.12899814e+00 1.42939356e+00 3.23469933e-01 ! x y z --2.17681574e+00 -3.24414472e+00 6.11039816e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -562 2.96336237e-07 1.81351661e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.21898926e-02 1.05086314e-01 -6.77716277e-05 ! x y z --1.35449400e+01 1.06218556e+01 1.84672746e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -563 2.96336237e-07 3.70963516e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.27034014e-01 2.69465591e+00 -2.27882453e-01 ! x y z --3.73239917e+00 -6.13975293e-01 -2.89358782e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -564 2.96336237e-07 1.85538359e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.36452659e-02 -9.94674735e-02 -3.90578610e-03 ! x y z -1.23354529e+01 -1.14836238e+01 -2.19300428e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -565 2.96336237e-07 1.59609305e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.73730630e-01 1.07455170e+00 1.81100951e-02 ! x y z --5.28646474e+00 -2.32640775e+00 -5.36238492e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -566 2.96336237e-07 3.83981235e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.32629110e-01 1.60450925e-01 -2.84219537e-03 ! x y z --6.71072850e+00 9.73443437e+00 -8.12755507e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -567 2.96336237e-07 1.41144464e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.88297358e-02 9.60042376e-02 9.37391450e-03 ! x y z --1.80706494e+01 7.18534788e+00 1.18855694e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -568 2.96336237e-07 1.51926723e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.21119394e-02 6.24740196e-02 -1.16898070e-02 ! x y z --1.06308898e+01 -1.54270819e+01 1.31585604e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -569 2.96336237e-07 3.18834942e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.81085072e-01 -1.49111264e-01 -1.22381880e-02 ! x y z -8.22661447e+00 1.00159591e+01 -1.87418050e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -570 2.96336237e-07 2.76040969e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.78575101e-01 -1.87758885e+00 3.51506542e-02 ! x y z -4.03074608e+00 -1.68418282e+00 -5.82453464e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -571 2.96336237e-07 1.50235923e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.60738225e-02 -8.87329905e-02 2.31718431e-03 ! x y z -1.51492466e+01 1.12746331e+01 -4.03263310e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -572 2.96336237e-07 1.41960489e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.09346681e-02 5.14951673e-02 3.64324554e-03 ! x y z --9.59034656e+00 -1.68799980e+01 -7.91768623e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -573 2.96336237e-07 1.76446528e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.29985747e-01 -1.59036645e-03 3.93649392e-03 ! x y z -1.93847745e-01 1.74138292e+01 2.50074551e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -574 2.96336237e-07 4.88945166e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.46311157e+00 -9.14252085e-01 -3.48610571e-01 ! x y z -8.54465379e-01 -3.19883187e+00 -1.26377589e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -575 2.96336237e-07 3.11866777e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.12294429e-01 -8.35805260e-02 -2.42273615e-02 ! x y z -4.92904842e+00 1.20534557e+01 1.64014359e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -576 2.96336237e-07 1.48760031e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24207381e-02 1.08722229e-01 -9.47808556e-04 ! x y z --1.87932169e+01 -2.14040298e+00 -1.85576118e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -577 2.96336237e-07 3.87436377e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.56799683e+00 -1.24763797e+00 5.66021649e-03 ! x y z -1.62627663e+00 3.34292534e+00 -3.76455778e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -578 2.96336237e-07 1.16389287e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.44401067e-01 5.62584309e-01 5.79511708e-02 ! x y z --4.45779140e+00 -5.11418166e+00 1.14508903e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -579 2.96336237e-07 7.55726903e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.28182526e-02 -5.44691691e-01 -8.20485799e-02 ! x y z -8.32087566e+00 1.19399306e+00 4.02689629e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -580 2.96336237e-07 7.44095731e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.24635829e-01 5.33869637e-01 1.50316921e-02 ! x y z --8.24635362e+00 1.95018858e+00 -3.63964929e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -581 2.96336237e-07 6.40404367e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.69467391e-01 4.36355014e-01 5.83964390e-02 ! x y z --8.53604431e+00 -3.27613954e+00 -2.90794852e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -582 2.96336237e-07 4.17029826e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.60906602e-02 3.01432661e-01 -1.90984647e-02 ! x y z --1.11036840e+01 -1.97930310e+00 1.13510485e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -583 2.96336237e-07 6.14266528e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.27467175e-01 3.91731461e-01 -5.04600203e-04 ! x y z --8.07095903e+00 -4.68031825e+00 -5.71919851e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -584 2.96336237e-07 2.18598885e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.62271901e-02 -1.54540898e-01 -2.65585886e-02 ! x y z -1.52570786e+01 3.55344727e+00 1.22218432e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -585 2.96336237e-07 1.51631116e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.07832444e-02 -6.36200842e-02 -1.33144249e-02 ! x y z -1.09313736e+01 -1.52307509e+01 -1.48953721e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -586 2.96336237e-07 1.38036572e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.91749307e-02 8.88729285e-02 -6.36406080e-04 ! x y z --1.72469187e+01 9.54491204e+00 -7.05594229e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -587 2.96336237e-07 1.43854413e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.23403936e-02 7.71844338e-02 -8.39500380e-03 ! x y z --1.40989009e+01 1.31187303e+01 -7.64787423e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -588 2.96336237e-07 1.04584583e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.19019526e-01 -4.55774501e-01 -5.86070392e-02 ! x y z -4.25411040e+00 5.60431169e+00 1.28928884e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -589 2.96336237e-07 6.91565422e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.92164797e-03 -5.09070142e-01 -1.05625324e-02 ! x y z -8.80208381e+00 5.89235329e-02 2.83030007e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -590 2.96336237e-07 1.60450446e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.76763840e-02 -1.03250821e-01 -2.35168325e-03 ! x y z -1.58765844e+01 -8.90933533e+00 1.41106303e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -591 2.96336237e-07 1.21525461e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.04983136e-01 7.36448723e-01 8.20833448e-02 ! x y z --5.43930432e+00 -3.77325399e+00 3.51455868e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -592 2.96336237e-07 2.23798852e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.22283337e-02 1.64769781e+00 2.73366451e-02 ! x y z --4.89029510e+00 -1.55691533e-01 2.51345980e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -593 2.96336237e-07 2.48541288e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.75601377e-01 -4.70165867e-02 -2.19260970e-02 ! x y z -3.60823292e+00 1.41545302e+01 -1.48105034e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -594 2.96336237e-07 1.11622544e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.96645903e-01 -7.98044760e-01 2.04579528e-02 ! x y z -6.72281589e+00 1.64954714e+00 -3.17131703e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -595 2.96336237e-07 2.38634159e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.60463085e-02 -1.70858650e-01 -2.28151059e-02 ! x y z -1.45855513e+01 2.85087086e+00 1.69894649e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -596 2.96336237e-07 5.97331168e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.28662273e-01 -9.17330164e-02 -3.82734106e-02 ! x y z -1.94592874e+00 -9.25024513e+00 5.92353521e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -597 2.96336237e-07 2.67868225e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.63475007e-02 -1.77137918e-01 1.41083788e-03 ! x y z -1.27296681e+01 6.19800971e+00 -3.29690764e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -598 2.96336237e-07 1.81821597e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.30757598e-02 -1.11353949e-01 -1.40962489e-02 ! x y z -1.43527379e+01 9.12650252e+00 2.33278920e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -599 2.96336237e-07 6.94275197e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.02482808e-01 8.18401487e-02 -4.84234405e-02 ! x y z --1.51031900e+00 8.57435180e+00 -1.18026589e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -600 2.96336237e-07 3.25134987e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.46227703e+00 -1.87594396e+00 2.45026033e-01 ! x y z -3.17551882e+00 -2.51759932e+00 -3.37504561e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -601 2.96336237e-07 8.03783069e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.69874202e-01 1.59465770e-01 1.35551450e-02 ! x y z --2.19867661e+00 -7.86092835e+00 2.84630093e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -602 2.96336237e-07 3.12174638e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.74974581e-02 -2.16560994e-01 1.02688120e-03 ! x y z -1.23335326e+01 -4.41162723e+00 5.32348653e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -603 2.96336237e-07 1.90518686e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.21851956e+00 6.77989624e-01 1.68433634e-01 ! x y z --2.59340742e+00 -4.61670361e+00 -2.04740034e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -604 2.96336237e-07 5.63929521e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.91433941e-02 4.10002809e-01 -2.04495741e-04 ! x y z --9.60487064e+00 1.61194455e+00 5.10206236e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -605 2.96336237e-07 8.16273503e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.49233759e-02 5.97511742e-01 3.07716540e-02 ! x y z --8.05513568e+00 -7.69105637e-01 5.26573500e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -606 2.96336237e-07 3.25799451e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.74566337e+00 1.62101485e+00 -2.87608071e-01 ! x y z --2.77124269e+00 2.95845630e+00 -1.47490738e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -607 2.96336237e-07 8.18469440e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.40350917e-01 4.97473380e-01 1.41150953e-02 ! x y z --6.67596681e+00 -4.57042779e+00 1.18431878e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -608 2.96336237e-07 2.61815684e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.83073308e-01 -6.15956666e-02 2.50370546e-05 ! x y z -4.54736224e+00 1.35416066e+01 -9.29234355e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -609 2.96336237e-07 5.90625249e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.16894922e-01 1.20061003e-01 -3.17923636e-02 ! x y z --2.62881151e+00 9.15316489e+00 2.66002108e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -610 2.96336237e-07 3.27023679e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.12197902e-01 1.12217856e-01 -2.02426741e-02 ! x y z --5.79267316e+00 -1.12761097e+01 -1.77860138e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -611 2.96336237e-07 5.06876426e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.72533883e+00 4.16240206e-02 2.60752165e-01 ! x y z --2.42882755e-02 3.24591487e+00 -1.75584896e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -612 2.96336237e-07 4.35066251e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.65258650e-02 3.17545541e-01 5.57474330e-03 ! x y z --1.09635234e+01 -1.60736686e+00 8.38908971e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -613 2.96336237e-07 1.44594811e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.69273956e-03 1.06161650e-01 6.24217721e-03 ! x y z --1.91745027e+01 -1.10664853e+00 1.35563944e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -614 2.96336237e-07 1.03732981e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.43380912e-01 1.70012029e-01 4.98369944e-02 ! x y z --1.64856227e+00 -6.93061377e+00 -9.48448729e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -615 2.96336237e-07 1.85397989e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.97069191e-02 -1.33432298e-01 -2.90588842e-03 ! x y z -1.65432860e+01 -3.70609919e+00 9.76895217e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -616 2.96336237e-07 3.05998157e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.79995669e+00 1.31310730e+00 -3.14167634e-01 ! x y z --2.51433364e+00 3.31022362e+00 -5.43846538e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -617 2.96336237e-07 1.93349590e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.59856145e-02 -1.26189079e-01 2.06258266e-03 ! x y z -1.47368402e+01 7.71794514e+00 6.82895014e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -618 2.96336237e-07 1.64910584e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.12201131e-02 -1.13788907e-01 -1.04423714e-02 ! x y z -1.69533477e+01 6.04658594e+00 9.99480874e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -619 2.96336237e-07 2.78867604e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.79960014e-01 -9.84416632e-02 -1.14695792e-02 ! x y z -6.47555761e+00 -1.20947922e+01 1.97631665e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -620 2.96336237e-07 2.29590806e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.38831743e-02 -1.56637787e-01 -5.44913095e-04 ! x y z -1.41412568e+01 -5.76960987e+00 -1.81307125e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -621 2.96336237e-07 6.07952654e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.31076749e-02 4.44770577e-01 -2.69105921e-02 ! x y z --9.28431439e+00 9.51562560e-01 1.05373719e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -622 2.96336237e-07 2.60616309e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.62195318e+00 -1.00414075e+00 -2.01269243e-01 ! x y z -2.40937187e+00 3.83958181e+00 2.20145937e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -623 2.96336237e-07 3.17007569e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.74894078e-02 2.11096358e-01 -2.12767971e-02 ! x y z --1.17897768e+01 -5.48276470e+00 -1.53192365e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -624 2.96336237e-07 1.73058888e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.21269776e-01 1.05191933e+00 5.70958780e-03 ! x y z --4.56330149e+00 -3.13833277e+00 5.10947665e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -625 2.96336237e-07 4.59707954e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.18164002e-01 -1.12382324e-01 -2.56211982e-02 ! x y z -3.49691320e+00 1.01776699e+01 -9.59116440e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -626 2.96336237e-07 2.90842802e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.08473102e-01 -3.31363673e-02 3.43212785e-02 ! x y z -2.34128435e+00 -1.33172807e+01 1.44220076e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -627 2.96336237e-07 5.36171517e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.06069706e-02 -3.92604714e-01 -6.27682450e-03 ! x y z -9.94635357e+00 -1.02888499e+00 -2.56258168e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -628 2.96336237e-07 2.34501910e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.97847552e-02 -1.71731987e-01 6.21563982e-04 ! x y z -1.50047181e+01 -1.74400102e+00 3.25375895e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -629 2.96336237e-07 1.68004213e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.61556068e-02 1.22586319e-01 2.89469087e-03 ! x y z --1.75716440e+01 2.24742207e+00 2.35724001e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -630 2.96336237e-07 7.72355252e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.66959670e-01 5.41159508e-01 6.47139993e-02 ! x y z --7.94299578e+00 2.37921987e+00 6.08495263e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -631 2.96336237e-07 2.48680427e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.54746301e+00 9.79549940e-01 1.37386754e-02 ! x y z --2.49006210e+00 -3.91857439e+00 -4.84244593e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -632 2.96336237e-07 9.87189929e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.75814969e-01 5.49394824e-01 -6.75028908e-03 ! x y z --5.57316874e+00 4.82404978e+00 -8.46510735e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -633 2.96336237e-07 2.48700392e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.13440967e+00 -1.42740496e+00 -1.43900279e-01 ! x y z -3.64628331e+00 2.88370926e+00 9.05202264e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -634 2.96336237e-07 1.22624079e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.50027759e-01 3.03919432e-01 -3.89397702e-02 ! x y z --2.17331704e+00 -6.18490989e+00 -8.35699763e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -635 2.96336237e-07 1.95212683e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.43508634e-01 9.61590776e-03 -2.66628653e-03 ! x y z --1.10861680e+00 -1.64452545e+01 1.62127088e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -636 2.96336237e-07 1.42151811e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.88077433e-02 9.26009149e-02 -4.77508872e-04 ! x y z --1.71715553e+01 -9.05409774e+00 6.36022316e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -637 2.96336237e-07 1.36841800e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.61300492e-02 -5.24525766e-02 2.10503553e-03 ! x y z -1.02646384e+01 -1.68225460e+01 1.65770983e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -638 2.96336237e-07 3.22418068e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.04979098e+00 2.10768441e+00 -3.28384390e-01 ! x y z --3.65209869e+00 1.78997499e+00 -2.12982563e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -639 2.96336237e-07 2.55628249e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.83254766e-02 -1.69103168e-01 -2.68396490e-02 ! x y z -1.31375483e+01 6.08907729e+00 -7.53970153e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -640 2.96336237e-07 3.56086215e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.52215182e+00 -6.91927079e-01 2.10009718e-01 ! x y z -9.81071068e-01 3.72148840e+00 4.78695157e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -641 2.96336237e-07 2.67952194e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.51825845e-01 -1.82200452e+00 9.99127967e-02 ! x y z -4.13441811e+00 -1.69161526e+00 2.23011355e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -642 2.96336237e-07 4.99866167e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.34810260e-01 2.82703815e-01 -2.70759398e-02 ! x y z --7.97130925e+00 -6.58852727e+00 3.04460856e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -643 2.96336237e-07 2.47457326e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.70047519e-02 -1.54387529e-01 8.60629155e-05 ! x y z -1.24575751e+01 7.82628279e+00 -1.03634289e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -644 2.96336237e-07 9.02799508e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.77078192e-01 -6.03173215e-01 -1.16308385e-02 ! x y z -7.01464945e+00 -3.20993713e+00 -2.38006625e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -645 2.96336237e-07 1.81590994e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.26267849e-01 4.41761979e-02 -3.17532195e-04 ! x y z --5.66959937e+00 -1.62010641e+01 6.75535787e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -646 2.96336237e-07 1.96941495e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.12488161e-01 9.07010040e-02 1.27616170e-02 ! x y z --1.03477535e+01 -1.28476622e+01 8.78319668e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -647 2.96336237e-07 1.82537837e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.14753600e-02 -1.06847712e-01 -7.17562457e-03 ! x y z -1.35709637e+01 1.02049864e+01 2.20082000e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -648 2.96336237e-07 1.00119083e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.04622320e-01 7.29429970e-01 1.98364101e-02 ! x y z --7.23958912e+00 -1.02326913e+00 -3.41589914e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -649 2.96336237e-07 1.79202509e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.77193806e-02 -1.22786147e-01 -6.70466919e-03 ! x y z -1.61420621e+01 -6.24014257e+00 1.45591414e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -650 2.96336237e-07 5.42431268e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.06313948e-01 2.55000734e-01 -2.98772206e-02 ! x y z --6.30401155e+00 -7.65376512e+00 -6.46737982e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -651 2.96336237e-07 8.85457056e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.28646118e-01 5.60638098e-01 -3.90279435e-02 ! x y z --6.72640705e+00 3.91862876e+00 -3.84343314e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -652 2.96336237e-07 8.69444888e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.33090644e-01 6.26309924e-01 9.64740768e-04 ! x y z --7.54819440e+00 1.60316156e+00 -1.45671040e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -653 2.96336237e-07 5.87401673e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.14697073e-01 1.19556556e-01 -2.68827274e-02 ! x y z --2.59704069e+00 9.16782045e+00 7.43337809e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -654 2.96336237e-07 1.59013651e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.16911984e-01 -4.37587793e-03 -5.33484662e-03 ! x y z -8.12471927e-01 1.80783705e+01 3.10294675e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -655 2.96336237e-07 8.36705872e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.48019453e-01 5.08826915e-01 9.94632487e-03 ! x y z --6.60455450e+00 -4.50726346e+00 -2.66580871e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -656 2.96336237e-07 8.17610063e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.67001886e-01 1.95275866e-01 -5.11224376e-02 ! x y z --2.64346055e+00 7.65795167e+00 -3.92230198e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -657 2.96336237e-07 3.06425265e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.54162472e-01 1.64889686e-01 -1.76906052e-03 ! x y z --9.65890230e+00 -9.03109577e+00 -6.41735952e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -658 2.96336237e-07 4.45673389e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.95293449e-02 -3.27551135e-01 1.00342026e-02 ! x y z -1.09289742e+01 -6.36621063e-01 6.34262612e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -659 2.96336237e-07 2.48969379e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.76295309e-02 1.78460689e-01 3.34461224e-02 ! x y z --1.44691735e+01 -2.05068504e+00 -1.03554645e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -660 2.96336237e-07 2.26662026e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.54367400e-01 5.61249663e-02 3.01735853e-02 ! x y z --5.22022469e+00 -1.44578060e+01 2.13775173e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -661 2.96336237e-07 5.50974109e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.66919357e-01 -3.05181421e-01 1.34880314e-02 ! x y z -7.38408344e+00 -6.51128956e+00 -6.60606038e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -662 2.96336237e-07 8.55378317e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.21838947e-01 1.00510446e-01 5.94890361e-03 ! x y z --1.26449895e+00 7.81492839e+00 -9.51481519e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -663 2.96336237e-07 2.18473995e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.58896173e-01 2.54864919e-02 -8.86766247e-03 ! x y z --2.39489861e+00 -1.54043484e+01 -1.24003094e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -664 2.96336237e-07 4.62987226e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.39108884e+00 -3.41381320e-01 -2.06725196e-01 ! x y z -3.52829788e-01 -3.36535657e+00 -3.12175626e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -665 2.96336237e-07 6.67532011e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.98506546e-01 2.87890329e-01 3.20314889e-04 ! x y z --5.26105549e+00 7.25500259e+00 2.16614276e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -666 2.96336237e-07 1.64225912e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.80160179e-03 -1.20953221e-01 -8.26885241e-04 ! x y z -1.80161409e+01 8.56881733e-01 5.85017542e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -667 2.96336237e-07 1.39284342e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.43663334e-02 -4.04917452e-02 -1.41840103e-03 ! x y z -7.67509475e+00 -1.78212667e+01 -2.74308257e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -668 2.96336237e-07 3.05506947e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.18096786e-01 5.47862694e-02 1.22033159e-04 ! x y z --3.22302313e+00 -1.28382921e+01 -6.85661779e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -669 2.96336237e-07 4.60709805e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.57346031e-01 -2.14809528e-01 5.25928460e-02 ! x y z -7.00410293e+00 8.14788939e+00 -9.54249904e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -670 2.96336237e-07 4.75705120e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.38192441e-01 -8.71324154e-02 -2.49117325e-02 ! x y z -2.73369362e+00 1.01852786e+01 1.27598730e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -671 2.96336237e-07 6.12008048e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.87329492e-01 -3.43360708e-01 -5.35680567e-02 ! x y z -7.16973922e+00 -6.00971255e+00 7.16830949e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -672 2.96336237e-07 2.67891351e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.68981404e-01 -1.00952878e-01 1.04747480e-02 ! x y z -7.07386897e+00 1.20861941e+01 2.08944534e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -673 2.96336237e-07 1.89630800e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.34092705e-01 -3.90259040e-02 -3.49303130e-03 ! x y z -4.70812898e+00 1.61321555e+01 3.65040401e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -674 2.96336237e-07 4.34622125e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.14567860e-01 -2.55115590e-02 -5.39750673e-02 ! x y z -7.46788611e-01 1.10448520e+01 -8.55881460e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -675 2.96336237e-07 1.47217456e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.15421738e-02 -7.12083854e-02 7.53014508e-03 ! x y z -1.24093622e+01 -1.43914609e+01 -1.55092798e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -676 2.96336237e-07 1.55274570e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.13175766e-01 9.36768631e-03 -1.34865492e-02 ! x y z --1.55716135e+00 1.85139313e+01 -2.18799281e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -677 2.96336237e-07 1.50852021e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.00980674e-01 -4.42411201e-02 1.54326835e-02 ! x y z -7.70960399e+00 -1.70958215e+01 1.50425854e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -678 2.96336237e-07 6.28416077e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.77460346e-01 3.70257597e-01 -1.64084101e-03 ! x y z --7.39296590e+00 5.53864801e+00 1.62874740e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -679 2.96336237e-07 5.66784502e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.95291209e-01 3.68153577e-01 -3.43886851e-02 ! x y z --8.56485072e+00 4.43489062e+00 -1.10910329e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -680 2.96336237e-07 3.02299454e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.20314746e-01 2.30193377e-02 2.28679452e-02 ! x y z --1.56352382e+00 1.30692125e+01 2.00209749e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -681 2.96336237e-07 2.66676492e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.28473948e-01 1.48717575e-01 4.97279884e-03 ! x y z --1.07141774e+01 -9.25784287e+00 3.86781278e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -682 2.96336237e-07 1.89030652e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.13421857e-01 8.00367857e-02 1.07242712e-02 ! x y z --9.68269795e+00 1.37714218e+01 -3.79363829e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -683 2.96336237e-07 3.28209745e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.55079565e-01 -1.81568668e-01 3.94908336e-02 ! x y z -9.76719582e+00 8.17181961e+00 -8.68047943e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -684 2.96336237e-07 1.47614576e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.33338150e-03 -1.07162361e-01 -1.55844717e-02 ! x y z -1.89736432e+01 -1.72967015e+00 5.91809027e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -685 2.96336237e-07 2.31500094e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.48558630e-02 1.68090226e-01 1.44542919e-02 ! x y z --1.48681377e+01 -1.95682922e+00 -2.56714677e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -686 2.96336237e-07 2.17961346e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.41257219e+00 7.66999937e-01 5.21575111e-02 ! x y z --2.36919106e+00 4.33264129e+00 3.47163159e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -687 2.96336237e-07 1.31586235e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.40689808e-01 -2.02107769e-01 -1.28530420e-01 ! x y z -1.27223992e+00 -6.22883483e+00 4.36970856e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -688 2.96336237e-07 4.93902528e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.29555037e-02 3.51463487e-01 -4.41681603e-02 ! x y z --1.01413457e+01 -2.33960594e+00 4.32885638e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -689 2.96336237e-07 9.27562833e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.91780834e-01 -6.17101305e-01 6.89876590e-03 ! x y z -6.83213914e+00 3.24740272e+00 8.10445442e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -690 2.96336237e-07 1.70375378e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.77577664e-01 -1.04422878e+00 -1.47844481e-01 ! x y z -4.71586400e+00 3.04484717e+00 1.32742001e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -691 2.96336237e-07 1.49824251e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.00947433e-01 4.30203383e-02 -1.07927959e-02 ! x y z --7.47744808e+00 1.73815534e+01 -5.64357734e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -692 2.96336237e-07 1.95787248e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.36486867e-01 -4.29040442e-02 1.74057694e-02 ! x y z -5.17312765e+00 -1.55289939e+01 2.48315414e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -693 2.96336237e-07 5.40369345e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.46015843e-01 -3.09002792e-01 5.16028199e-02 ! x y z -7.83217430e+00 -6.06050964e+00 9.78933382e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -694 2.96336237e-07 1.38423036e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.61435327e-02 3.16197878e-02 1.10748892e-02 ! x y z --6.20730027e+00 1.86927145e+01 5.93162186e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -695 2.96336237e-07 7.86364273e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.54291489e-01 -5.20391238e-01 -1.71072882e-02 ! x y z -7.40932705e+00 3.62782414e+00 2.08073134e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -696 2.96336237e-07 2.32154019e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.00178769e-01 1.38361895e-01 3.33173100e-03 ! x y z --1.23114612e+01 8.92317320e+00 -2.56428551e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -697 2.96336237e-07 9.57341303e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.54078551e-01 5.41272052e-01 -5.15201201e-03 ! x y z --5.70000001e+00 -4.77211403e+00 7.09601795e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -698 2.96336237e-07 9.86433966e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.70530144e-01 -2.79332772e-01 -5.71451814e-03 ! x y z -2.84255519e+00 -6.79608842e+00 3.05108624e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -699 2.96336237e-07 5.34739107e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.59267494e-01 2.94514280e-01 -3.43645558e-02 ! x y z --7.39986431e+00 6.64708852e+00 1.13462624e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -700 2.96336237e-07 1.18255245e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.50663530e-02 -8.61224889e-01 -9.31108722e-02 ! x y z -6.67657648e+00 -6.86667844e-01 -4.82351137e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -701 2.96336237e-07 8.64275703e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.21703884e-01 -5.85897448e-01 -1.07804357e-01 ! x y z -7.39160105e+00 -2.69823954e+00 -5.32587057e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -702 2.96336237e-07 1.79332496e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.19558909e-02 -1.25100921e-01 2.54897360e-03 ! x y z -1.64081635e+01 5.47703354e+00 -4.22098817e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -703 2.96336237e-07 1.40183109e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.25967529e-02 9.39116725e-02 1.57706640e-03 ! x y z --1.78022771e+01 -8.08500074e+00 -9.78083679e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -704 2.96336237e-07 1.55400949e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.09788141e-01 3.06090183e-02 9.80068508e-03 ! x y z --4.98161452e+00 1.79021840e+01 -5.50442980e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -705 2.96336237e-07 1.08036306e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.92820222e-01 5.27219922e-01 6.98178633e-02 ! x y z --4.69455781e+00 5.24104184e+00 1.50273822e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -706 2.96336237e-07 3.33647425e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.26177781e-02 2.44332016e-01 -2.53825733e-02 ! x y z --1.25330063e+01 4.62608070e-01 -1.75191830e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -707 2.96336237e-07 1.89891167e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.00627232e-02 1.12884466e-01 -2.02052654e-02 ! x y z --1.37126247e+01 9.70744519e+00 -1.06588127e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -708 2.96336237e-07 6.35397976e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.08460061e-01 -2.28905674e-01 -1.09808862e-03 ! x y z -4.48242345e+00 8.00742527e+00 -2.54245798e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -709 2.96336237e-07 3.46806832e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.74909884e-02 2.52112904e-01 -1.93462139e-02 ! x y z --1.22890269e+01 -1.80330491e+00 2.59885202e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -710 2.96336237e-07 4.47338526e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.47859055e-01 -2.17088330e-01 3.63522719e-03 ! x y z -7.21250107e+00 -8.23317856e+00 -3.88904998e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -711 2.96336237e-07 4.33786703e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.79187908e-02 3.14003265e-01 -1.60742457e-02 ! x y z --1.08749681e+01 -1.94809943e+00 1.16215469e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -712 2.96336237e-07 2.28876823e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.92386859e-02 -1.53417405e-01 1.13292987e-02 ! x y z -1.39310300e+01 6.30651908e+00 1.08308644e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -713 2.96336237e-07 1.37027223e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.37429467e-02 -8.43380623e-02 1.37614002e-02 ! x y z -1.66905353e+01 1.06030722e+01 -6.29605094e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -714 2.96336237e-07 3.80242418e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.23923334e-03 -2.79770536e-01 1.87303502e-02 ! x y z -1.17687135e+01 -8.38117263e-03 -1.45649390e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -715 2.96336237e-07 1.27104916e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.22752523e-01 -1.04874434e-01 1.05184050e-01 ! x y z -6.11259758e-01 -6.40304112e+00 -9.68822077e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -716 2.96336237e-07 1.51129238e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.66971912e-02 9.54175641e-02 6.76189973e-03 ! x y z --1.61018580e+01 -9.65359879e+00 1.71843068e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -717 2.96336237e-07 5.06569442e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.78182721e-01 -3.28126081e-01 6.27665584e-03 ! x y z -9.02087694e+00 -4.89229828e+00 -5.62933559e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -718 2.96336237e-07 3.38714273e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.22013174e-01 2.15118788e-01 3.16865325e-02 ! x y z --1.08240548e+01 6.31361718e+00 -1.18775407e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -719 2.96336237e-07 8.52900215e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.44970347e-01 -4.43371892e-01 2.98143491e-03 ! x y z -5.59534421e+00 -5.61639540e+00 4.31085351e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -720 2.96336237e-07 1.45044025e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.57772504e-01 1.00717550e+00 -2.65893967e-03 ! x y z --5.72279752e+00 -2.04173741e+00 -6.45738812e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -721 2.96336237e-07 3.99581125e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.94046461e-01 1.05711434e-02 -7.46864290e-03 ! x y z --4.37198242e-01 -1.15392490e+01 8.82417505e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -722 2.96336237e-07 4.66300401e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.51111996e-02 3.30680671e-01 3.27957346e-02 ! x y z --1.03955183e+01 -2.67603231e+00 7.03046550e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -723 2.96336237e-07 1.61606243e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.46408296e-02 -1.10294415e-01 1.19016279e-03 ! x y z -1.68277169e+01 6.76472666e+00 -1.71983882e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -724 2.96336237e-07 3.01449021e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.54971919e-02 -2.18816192e-01 -1.30043696e-02 ! x y z -1.31606761e+01 2.12562796e+00 2.16506067e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -725 2.96336237e-07 1.95876801e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.39787377e-02 1.42466513e-01 -1.73912071e-02 ! x y z --1.64701793e+01 1.55443170e+00 -4.75899271e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -726 2.96336237e-07 1.82235772e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.28357389e-01 -3.85149702e-02 1.38051704e-03 ! x y z -4.95862851e+00 1.64399907e+01 -4.19222694e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -727 2.96336237e-07 2.20848197e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.29211470e+00 9.82793714e-01 2.29605808e-02 ! x y z --2.98640291e+00 -3.92982410e+00 2.46156038e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -728 2.96336237e-07 8.10812797e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.72365409e-01 1.65443426e-01 -4.07694230e-02 ! x y z --2.27690414e+00 -7.79581543e+00 3.89075937e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -729 2.96336237e-07 1.13271650e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.96366656e-01 -8.10941753e-01 6.19428946e-03 ! x y z -6.67055470e+00 -1.62129397e+00 -4.29289810e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -730 2.96336237e-07 3.27270092e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.08768319e-03 2.37472284e-01 -4.12437673e-02 ! x y z --1.27738539e+01 -3.90572029e-01 -6.45025516e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -731 2.96336237e-07 9.75230677e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.71612528e-01 2.55091143e-01 -1.08856716e-02 ! x y z --2.62175803e+00 -6.93215398e+00 -5.26371643e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -732 2.96336237e-07 1.14282862e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.28343431e-01 8.09552332e-01 3.18147119e-02 ! x y z --6.59285238e+00 -1.85363625e+00 3.26816565e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -733 2.96336237e-07 4.57255737e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.72995057e-01 1.96674115e-01 1.89425811e-02 ! x y z --6.25082573e+00 -8.77263010e+00 1.02416414e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -734 2.96336237e-07 1.57788631e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.07292480e-01 4.38255693e-02 -6.57722817e-03 ! x y z --7.00129615e+00 1.70626814e+01 -5.77078145e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -735 2.96336237e-07 1.49426986e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.41277140e-01 1.04657012e+00 -2.37175216e-04 ! x y z --5.69365623e+00 1.85458785e+00 1.49390316e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -736 2.96336237e-07 1.46371094e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.50979679e-02 9.77563812e-02 -5.40625571e-03 ! x y z --1.71338587e+01 -7.73175403e+00 3.59995854e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -737 2.96336237e-07 8.60809962e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.08339130e-01 -3.76606194e-01 -2.54741750e-02 ! x y z -4.67593917e+00 -6.35088602e+00 4.90667590e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -738 2.96336237e-07 2.25511936e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.41112112e-02 -1.42810683e-01 -5.61155322e-03 ! x y z -1.32920422e+01 -7.84161211e+00 5.27300913e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -739 2.96336237e-07 8.34398714e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.04076336e-01 -6.05037276e-01 4.62779889e-03 ! x y z -7.90620815e+00 -1.36317572e+00 7.16133501e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -740 2.96336237e-07 3.86473095e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.45676749e-01 -2.44761377e-01 -1.70039207e-04 ! x y z -1.01143354e+01 -6.01829087e+00 -1.64257773e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -741 2.96336237e-07 1.44062574e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.11409581e-02 1.01366786e-01 3.37142167e-03 ! x y z --1.83784234e+01 -5.59491726e+00 -1.75754317e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -742 2.96336237e-07 2.10670223e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.42756570e-02 1.48767894e-01 -7.47526922e-03 ! x y z --1.52102044e+01 -4.46154274e+00 1.55839730e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -743 2.96336237e-07 3.47395487e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.87399606e-02 2.40086691e-01 8.39527737e-03 ! x y z --1.16391358e+01 -4.30715964e+00 1.62253027e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -744 2.96336237e-07 2.41612369e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.59847822e-01 -7.78912369e-02 -2.79933133e-03 ! x y z -6.45722219e+00 1.33582344e+01 -1.41814384e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -745 2.96336237e-07 5.62841738e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.67783441e-01 -1.88112027e-01 -3.66908206e-02 ! x y z -4.51970595e+00 -8.55011751e+00 -1.27453603e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -746 2.96336237e-07 2.85973478e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.87340286e-02 2.02501001e-01 9.53927121e-04 ! x y z --1.31337144e+01 3.80198275e+00 -3.16193501e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -747 2.96336237e-07 5.95551959e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.03791593e-01 -1.69904082e-01 -6.50308023e-03 ! x y z -3.68544597e+00 -8.75361554e+00 -9.31493130e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -748 2.96336237e-07 3.19408740e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.99271792e-01 -1.24925257e-01 -1.17272214e-02 ! x y z -6.87700521e+00 -1.09635307e+01 3.25594587e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -749 2.96336237e-07 2.13454604e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.13788529e-02 1.39877760e-01 6.20617922e-03 ! x y z --1.41062308e+01 7.11408069e+00 1.30607967e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -750 2.96336237e-07 1.85627069e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.70740837e-01 1.18273267e+00 1.46513513e-01 ! x y z --4.67937890e+00 -2.63414160e+00 -1.62840322e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -751 2.96336237e-07 3.43809092e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.77225524e-02 2.44116536e-01 -2.56050642e-03 ! x y z --1.20270840e+01 3.33222152e+00 -6.48574349e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -752 2.96336237e-07 7.35165209e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.46569942e-01 -3.05390477e-01 -2.59738601e-02 ! x y z -4.84253624e+00 -7.00233034e+00 -6.22963893e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -753 2.96336237e-07 1.44046780e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.12181523e-02 9.30276707e-02 -2.38731661e-03 ! x y z --1.68593697e+01 9.28547961e+00 8.80032674e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -754 2.96336237e-07 1.65675697e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.92401795e-03 1.20855892e-01 -1.29763995e-02 ! x y z --1.78802245e+01 -1.30361565e+00 1.58587358e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -755 2.96336237e-07 3.35710072e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.98381649e+00 -1.46945238e+00 8.82931312e-02 ! x y z -2.37729058e+00 -3.17603082e+00 5.07654331e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -756 2.96336237e-07 2.39474302e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.40759877e-02 -1.49188991e-01 3.71490400e-03 ! x y z -1.26430647e+01 -7.98027215e+00 4.72436149e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -757 2.96336237e-07 2.24727983e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.49291922e-01 6.89621953e-02 1.89443712e-02 ! x y z --6.29748750e+00 -1.40269094e+01 1.43503629e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -758 2.96336237e-07 1.36903625e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.45433508e-02 -3.49515856e-02 -1.36235215e-03 ! x y z -6.87357031e+00 1.85578630e+01 3.35768428e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -759 2.96336237e-07 2.56419603e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.80373021e-01 -5.23896698e-02 -1.73939888e-02 ! x y z -4.06523011e+00 1.38878785e+01 3.94343986e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -760 2.96336237e-07 3.25231400e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.57169455e-01 1.80630824e-01 2.63513787e-03 ! x y z --9.68853732e+00 8.43039016e+00 -5.99555931e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -761 2.96336237e-07 6.03475105e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.96975792e-01 -1.99491862e-01 4.23510905e-03 ! x y z -4.20175449e+00 -8.29760116e+00 1.54587372e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -762 2.96336237e-07 1.56746826e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.87951837e-02 -1.11722739e-01 4.96502435e-03 ! x y z -1.78993787e+01 -4.62297661e+00 -1.60481112e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -763 2.96336237e-07 4.45913950e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.18149275e-01 -8.20549546e-02 3.28697191e-03 ! x y z -2.74378352e+00 1.06043897e+01 -3.47225806e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -764 2.96336237e-07 2.08739896e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.24963013e-02 1.47802685e-01 -5.76624735e-03 ! x y z --1.53462200e+01 -4.46459071e+00 -9.15239696e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -765 2.96336237e-07 5.97697854e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.69825901e-01 3.48176588e-01 2.06086605e-02 ! x y z --7.45054034e+00 5.80493722e+00 -4.12093929e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -766 2.96336237e-07 5.46205392e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.98765254e-01 -5.06451707e-02 1.90791311e-02 ! x y z -1.29936072e+00 -9.74252968e+00 1.21330236e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -767 2.96336237e-07 1.95084867e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15754910e+00 8.44515062e-01 -1.10369558e-01 ! x y z --3.09604461e+00 4.22862828e+00 1.66431009e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -768 2.96336237e-07 2.14379358e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.45496851e-01 6.02285828e-02 1.53262995e-02 ! x y z --5.69568903e+00 1.44640592e+01 -2.71794913e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -769 2.96336237e-07 1.36376011e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.16746464e-02 -4.08796449e-02 -4.21604762e-03 ! x y z -8.04516261e+00 1.81061616e+01 -5.86258896e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -770 2.96336237e-07 3.96279271e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.91497357e-01 -1.25827804e-02 -2.22593450e-03 ! x y z -5.16558607e-01 1.16226576e+01 -3.35841077e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -771 2.96336237e-07 6.98353046e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.05278633e-01 -7.05350184e-04 1.00584152e-01 ! x y z -6.74014005e-02 8.74198837e+00 -2.84753241e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -772 2.96336237e-07 2.84611008e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.13649986e-01 1.73786159e-01 -3.01906324e-02 ! x y z --1.14044543e+01 7.57198327e+00 7.55388639e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -773 2.96336237e-07 3.30188593e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.40145414e+00 2.58777830e-01 2.86003963e-01 ! x y z --4.34118228e-01 4.00517775e+00 1.88131934e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -774 2.96336237e-07 1.60864116e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.07063855e-01 8.64861563e-01 3.63582142e-02 ! x y z --4.21428860e+00 -3.91074893e+00 -5.85011077e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -775 2.96336237e-07 4.05780221e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.23082874e-01 -1.98802277e-01 -5.68618210e-03 ! x y z -7.64624723e+00 -8.57974044e+00 1.61315604e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -776 2.96336237e-07 5.18260733e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.19086034e-01 -2.01522876e-01 5.91418839e-02 ! x y z -5.56261241e+00 8.41471026e+00 -1.23452315e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -777 2.96336237e-07 2.57733838e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.24796008e-01 1.43235233e-01 -6.10296921e-03 ! x y z --1.07365902e+01 9.41183269e+00 1.89444490e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -778 2.96336237e-07 1.15136431e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.50989126e-01 -7.61777481e-01 -1.22315070e-01 ! x y z -6.21139362e+00 -2.78349994e+00 -5.20130582e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -779 2.96336237e-07 1.90695656e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.55583476e-02 -1.24068548e-01 7.95673151e-04 ! x y z -1.48265503e+01 7.85964951e+00 -9.23654116e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -780 2.96336237e-07 1.83013176e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.68560707e-02 1.19742523e-01 2.45759749e-02 ! x y z --1.53753704e+01 -7.46515829e+00 8.24032729e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -781 2.96336237e-07 1.90099023e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.95571535e-02 -1.21574111e-01 4.94936102e-03 ! x y z -1.45492235e+01 8.33685157e+00 4.80579455e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -782 2.96336237e-07 1.57663010e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.91267404e-03 1.15263255e-01 -1.24769946e-02 ! x y z --1.83622878e+01 9.64435617e-01 -1.33153714e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -783 2.96336237e-07 1.92821763e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.05750147e-02 -1.36180634e-01 -1.40457536e-03 ! x y z -1.59662042e+01 4.76900258e+00 -1.20891179e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -784 2.96336237e-07 6.78590424e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.62987916e-01 1.88752961e-01 -1.22175236e-02 ! x y z --3.33880359e+00 -8.22666695e+00 -2.48451687e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -785 2.96336237e-07 1.37804911e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.01245883e-01 -7.59918468e-03 -1.24965799e-03 ! x y z -1.45029829e+00 -1.96389498e+01 -9.36095104e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -786 2.96336237e-07 3.40736161e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.03327376e-01 -1.47196088e-01 2.16269551e-04 ! x y z -7.33821311e+00 -1.00968075e+01 1.20635461e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -787 2.96336237e-07 3.13198357e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.10522670e-01 -9.23503065e-02 -1.83906271e-02 ! x y z -5.27416412e+00 -1.19725839e+01 -2.73697364e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -788 2.96336237e-07 7.90794183e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.43054916e-01 4.65452751e-01 -6.97292734e-02 ! x y z --6.64100241e+00 -4.73017450e+00 1.14716537e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -789 2.96336237e-07 1.91051293e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.06904372e-01 -9.03592611e-02 -1.36375226e-02 ! x y z -1.06598084e+01 -1.28237143e+01 1.67191250e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -790 2.96336237e-07 6.00254148e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.42054354e-01 2.76474387e-01 4.61746412e-02 ! x y z --5.72326799e+00 7.34546342e+00 -1.59290388e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -791 2.96336237e-07 2.18061483e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.10989936e-02 1.55065276e-01 -3.96283386e-03 ! x y z --1.51659906e+01 -4.02310592e+00 -2.36886124e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -792 2.96336237e-07 4.54092681e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.22626314e-01 3.10657283e-01 2.02442843e-02 ! x y z --9.90769766e+00 4.02152600e+00 -1.89960252e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -793 2.96336237e-07 1.04880774e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.30134262e-01 -2.30158523e-01 -1.01229995e-01 ! x y z -2.23111241e+00 -6.76215625e+00 -6.62698164e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -794 2.96336237e-07 5.99986034e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.39383791e-02 -4.39535025e-01 -2.89795976e-02 ! x y z -9.41405631e+00 -7.07882123e-01 -5.11111084e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -795 2.96336237e-07 2.81816070e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.27473860e-02 -2.02912146e-01 9.20809248e-03 ! x y z -1.33399421e+01 -2.89398906e+00 -1.96719273e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -796 2.96336237e-07 1.90143483e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.35805578e-02 -1.21762479e-01 -2.72249472e-02 ! x y z -1.48294564e+01 -7.86235135e+00 4.76623520e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -797 2.96336237e-07 4.84505077e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.58210729e-01 3.15357201e-01 -5.39763009e-02 ! x y z --9.42179059e+00 -4.64922098e+00 4.54164100e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -798 2.96336237e-07 1.57927955e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.32587461e-02 1.06408741e-01 -1.83663835e-02 ! x y z --1.70720088e+01 6.55692347e+00 -2.22138349e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -799 2.96336237e-07 5.02169534e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.33867019e-01 -1.55702732e-01 3.15324013e-02 ! x y z -4.16434398e+00 -9.29456595e+00 -1.75677469e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -800 2.96336237e-07 2.65217346e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.19428731e-03 1.93721907e-01 2.23513970e-02 ! x y z --1.41929355e+01 1.82427616e-01 1.11187381e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -801 2.96336237e-07 9.95553651e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.18104124e-01 7.24180969e-01 3.71298844e-03 ! x y z --7.23829629e+00 -1.17308051e+00 -6.82836239e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -802 2.96336237e-07 2.63510864e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.16708785e-01 -1.75642880e+00 1.71868108e-01 ! x y z -4.08441108e+00 1.86952949e+00 -2.91644838e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -803 2.96336237e-07 4.47215613e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.29902594e-01 5.20319376e-03 3.36301243e-03 ! x y z --1.51755396e-01 1.08923456e+01 -8.81913672e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -804 2.96336237e-07 9.54169744e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.57207976e-01 4.18798823e-01 -9.01260352e-02 ! x y z --4.52237521e+00 -5.97264162e+00 2.04989422e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -805 2.96336237e-07 1.78184251e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.46206930e-02 1.22962820e-01 1.11185827e-02 ! x y z --1.61312447e+01 5.58188582e+00 3.04368193e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -806 2.96336237e-07 7.75528379e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.92343451e-01 5.39059185e-01 -2.03180184e-03 ! x y z --7.80963705e+00 -2.78877458e+00 -2.70364383e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -807 2.96336237e-07 2.93378541e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.35417557e-01 -1.68089209e-01 6.77269174e-03 ! x y z -1.04318724e+01 -8.45651984e+00 -1.60764481e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -808 2.96336237e-07 1.83924266e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.33202394e-02 -1.06731490e-01 -6.08186958e-03 ! x y z -1.34405930e+01 -1.05036930e+01 3.87638201e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -809 2.96336237e-07 6.01560211e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.31593507e-01 9.10988156e-02 -4.67389387e-02 ! x y z --1.89081534e+00 -9.21658494e+00 -6.19530485e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -810 2.96336237e-07 1.38880895e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.92815071e-02 -8.27331562e-02 1.02160651e-02 ! x y z -1.57006393e+01 1.15437864e+01 2.48788988e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -811 2.96336237e-07 6.47671609e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.70028758e-01 8.14557517e-02 -1.31662731e-02 ! x y z --1.56659992e+00 8.95269848e+00 -3.05632686e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -812 2.96336237e-07 1.85698708e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.29531190e+00 -3.90803731e-01 -1.86749129e-01 ! x y z -1.63541179e+00 -5.08120468e+00 -6.73536116e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -813 2.96336237e-07 8.66325758e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.28098060e-01 6.24427959e-01 -3.01078691e-02 ! x y z --7.68037805e+00 -1.54138026e+00 7.05198231e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -814 2.96336237e-07 2.64890458e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.60835069e-02 1.74984420e-01 6.92031751e-03 ! x y z --1.27575411e+01 -6.24654564e+00 -7.16183589e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -815 2.96336237e-07 1.01622150e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.54546877e-01 5.94593281e-01 2.17346994e-02 ! x y z --5.75254727e+00 -4.37943025e+00 -6.61999084e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -816 2.96336237e-07 3.47725188e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.33463975e-01 -1.04601093e-01 -1.44765966e-02 ! x y z -5.05640214e+00 1.13275921e+01 -3.50041920e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -817 2.96336237e-07 2.80294608e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.95293513e+00 6.59020697e-01 -7.47004103e-02 ! x y z --1.38481735e+00 4.13723798e+00 3.54955844e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -818 2.96336237e-07 2.23555446e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.43597434e-01 1.46145201e+00 1.51442865e-01 ! x y z --4.36453071e+00 -2.21842302e+00 4.54519439e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -819 2.96336237e-07 2.76515018e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.70681768e-01 1.05789831e-01 3.47417261e-02 ! x y z --7.17355389e+00 -1.18859586e+01 9.33743336e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -820 2.96336237e-07 2.51275026e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.84907623e-01 1.10926490e-02 -5.24876010e-03 ! x y z --8.66709101e-01 -1.45603333e+01 -1.11843348e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -821 2.96336237e-07 3.24394147e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.83918335e-01 -1.52738306e-01 -1.05216388e-02 ! x y z -8.20245863e+00 -9.86931729e+00 -1.95543108e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -822 2.96336237e-07 9.08362345e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.63764000e-01 4.76496886e-01 7.60509245e-02 ! x y z --5.46224157e+00 -5.38230373e+00 4.07669098e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -823 2.96336237e-07 4.35564664e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.18903487e-02 3.07309894e-01 4.45982498e-03 ! x y z --1.06254996e+01 3.16479402e+00 4.07059713e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -824 2.96336237e-07 7.97506520e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.29812762e-01 5.73692010e-01 -1.83404362e-02 ! x y z --7.94432365e+00 -1.82489734e+00 -7.22094748e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -825 2.96336237e-07 1.70596872e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24087493e-01 1.75596414e-02 -7.10589845e-03 ! x y z --2.45408068e+00 -1.75715112e+01 -2.34400922e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -826 2.96336237e-07 3.32276137e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.04138004e+00 -2.21245905e+00 1.07898856e-01 ! x y z -3.63415934e+00 -1.70734376e+00 7.32242436e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -827 2.96336237e-07 5.05504963e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.05217246e-01 3.55992666e-01 3.01419741e-02 ! x y z --9.74965046e+00 2.98253670e+00 -1.42154062e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -828 2.96336237e-07 6.35310566e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.79006519e-01 -3.71275571e-01 -6.25741630e-02 ! x y z -7.35971685e+00 5.42534000e+00 7.23377362e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -829 2.96336237e-07 1.75131903e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.38183789e-02 -1.16957008e-01 -8.51045037e-03 ! x y z -1.58479495e+01 -7.15719852e+00 -1.87588018e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -830 2.96336237e-07 1.83785152e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.11713068e-01 -7.60749470e-02 7.11799714e-03 ! x y z -9.60814241e+00 1.37790064e+01 -3.09368364e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -831 2.96336237e-07 1.38889628e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.28797319e-02 -5.98054470e-02 -3.92102409e-03 ! x y z -1.14549412e+01 1.56784693e+01 3.00643526e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -832 2.96336237e-07 4.67566456e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.64453190e-01 2.20328306e-01 8.77678241e-03 ! x y z --6.83993978e+00 -8.23984441e+00 -2.59382036e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -833 2.96336237e-07 2.29079426e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.33867230e-01 1.02094609e-01 1.35744189e-02 ! x y z --9.31644191e+00 1.19315952e+01 2.08356137e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -834 2.96336237e-07 2.17268490e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.12175486e-02 1.59685363e-01 4.33533758e-03 ! x y z --1.56270590e+01 -1.07710196e+00 -1.00125820e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -835 2.96336237e-07 5.92418156e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.33772768e-01 -3.06567722e-02 3.57591899e-02 ! x y z -6.41814108e-01 -9.48535782e+00 -3.21209829e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -836 2.96336237e-07 2.81431102e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.96297586e-01 6.23879555e-02 2.46105900e-02 ! x y z --4.21971226e+00 -1.31246422e+01 -3.44864221e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -837 2.96336237e-07 3.07778766e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.36438064e-01 -2.21499344e+00 -2.51339484e-01 ! x y z -4.08215628e+00 -8.17954096e-01 1.09231196e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -838 2.96336237e-07 1.49883538e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.07903966e-01 9.68615644e-01 1.40347581e-01 ! x y z --5.22155509e+00 -2.84521869e+00 6.96929019e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -839 2.96336237e-07 2.03064870e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.49153932e+00 -3.71744808e-02 1.13198886e-01 ! x y z -1.30042895e-01 5.13217767e+00 -1.33550776e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -840 2.96336237e-07 1.16669173e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.82239224e-01 -7.66512256e-01 -5.40722936e-02 ! x y z -6.02109242e+00 3.05597380e+00 -6.82915706e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -841 2.96336237e-07 1.73542128e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24302244e+00 2.87995611e-01 -7.27903186e-02 ! x y z --1.29170625e+00 -5.36240055e+00 6.87059649e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -842 2.96336237e-07 2.53253250e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.45887845e-01 -1.14432909e-01 2.05422853e-02 ! x y z -8.83225803e+00 1.14874137e+01 1.28290491e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -843 2.96336237e-07 1.86343650e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.20794936e-01 6.50751338e-02 3.01806778e-03 ! x y z --8.05101802e+00 -1.49268229e+01 -2.34993259e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -844 2.96336237e-07 2.91585060e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.33840620e-01 1.62948437e-01 -3.94762442e-02 ! x y z --1.05604329e+01 8.49301750e+00 -7.57330670e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -845 2.96336237e-07 4.33641742e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.64844730e-02 3.18567365e-01 -1.89580047e-02 ! x y z --1.10511370e+01 6.26839446e-01 9.81356286e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -846 2.96336237e-07 5.23159554e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.83806176e-01 3.07445885e-02 -7.62473852e-03 ! x y z --7.71131851e-01 1.00172082e+01 1.27842409e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -847 2.96336237e-07 2.45363196e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.28603287e-02 -1.72499663e-01 -6.70407441e-04 ! x y z -1.41129376e+01 4.33805144e+00 -1.09349295e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -848 2.96336237e-07 7.71920598e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.41383198e-01 -5.46517765e-01 6.31103971e-02 ! x y z -8.07781171e+00 2.07109998e+00 -1.65437689e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -849 2.96336237e-07 2.38076491e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.68230140e-01 -4.99864739e-02 9.93911474e-04 ! x y z -4.29080967e+00 1.43649433e+01 -4.45544550e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -850 2.96336237e-07 3.61190002e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.39229416e-01 -2.26117099e-01 -1.89557099e-02 ! x y z -1.03238670e+01 6.41445943e+00 -6.82154245e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -851 2.96336237e-07 1.43701583e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.05334367e-01 -5.88342997e-03 -7.39022185e-03 ! x y z -9.34404274e-01 -1.92081544e+01 1.94467601e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -852 2.96336237e-07 2.94382046e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.76796973e-01 1.22086113e-01 2.71560749e-02 ! x y z --7.80302729e+00 -1.09203965e+01 -1.54257532e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -853 2.96336237e-07 3.61816615e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.63935378e+00 3.92577206e-01 5.58889721e-02 ! x y z --5.68417046e-01 3.80079266e+00 2.38218119e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -854 2.96336237e-07 1.04058174e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.41474367e-01 4.09278147e-01 -9.13878568e-02 ! x y z --3.77245356e+00 -6.06492544e+00 -7.08923899e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -855 2.96336237e-07 3.50749263e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.64588415e+00 -1.98709677e+00 -2.10707154e-02 ! x y z -3.01427815e+00 2.49640165e+00 -3.29050750e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -856 2.96336237e-07 4.21215046e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.28177803e-01 2.09346140e-01 -8.86469721e-03 ! x y z --7.64040942e+00 -8.31566885e+00 3.17844887e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -857 2.96336237e-07 2.55894722e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.69915289e-01 -8.07963428e-02 -8.69486692e-03 ! x y z -6.20427852e+00 1.30746686e+01 -5.61629542e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -858 2.96336237e-07 3.49941684e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.41586422e-01 -8.75868996e-02 -1.91367530e-02 ! x y z -4.14283118e+00 1.16394134e+01 -7.79179320e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -859 2.96336237e-07 2.33403020e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.96343926e-02 1.54596451e-01 2.80564952e-02 ! x y z --1.38520014e+01 6.12441009e+00 6.32972344e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -860 2.96336237e-07 3.01283362e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.87821170e-02 2.10846290e-01 -6.45993325e-03 ! x y z --1.26728544e+01 -4.15218221e+00 -3.47590281e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -861 2.96336237e-07 1.10138681e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.46280924e-01 2.84376690e-01 -1.40630278e-01 ! x y z --2.45516821e+00 6.53052599e+00 1.67831098e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -862 2.96336237e-07 5.94655788e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.17123920e-01 -1.30294016e-01 -2.65663817e-02 ! x y z -2.85914494e+00 9.05041867e+00 3.59414687e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -863 2.96336237e-07 6.44824888e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.30323865e-01 -3.41749855e-01 -5.98643656e-04 ! x y z -6.53717863e+00 -6.30277372e+00 -7.35989851e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -864 2.96336237e-07 1.83380366e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.35064054e+00 1.30390794e-02 -3.59445881e-02 ! x y z --3.89893059e-02 -5.35425160e+00 -7.33677656e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -865 2.96336237e-07 2.66358551e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.26440226e-03 -1.94235411e-01 -2.52108346e-02 ! x y z -1.41939022e+01 3.39456231e-01 4.09461701e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -866 2.96336237e-07 2.41460705e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.68943560e-01 4.37840341e-02 3.41997637e-02 ! x y z --3.80325128e+00 -1.44016730e+01 -3.47404051e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -867 2.96336237e-07 2.18146590e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.02171216e-03 1.59744507e-01 -1.57180521e-02 ! x y z --1.55815889e+01 -9.81125482e-01 -1.29415165e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -868 2.96336237e-07 7.49727890e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15348975e-01 -5.39236587e-01 -3.67022155e-02 ! x y z -8.22539784e+00 1.69889434e+00 9.13795594e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -869 2.96336237e-07 1.66746626e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.96378463e-02 7.14811319e-02 2.52567429e-03 ! x y z --1.04482494e+01 -1.45126980e+01 -1.59011767e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -870 2.96336237e-07 3.12499086e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.23404648e-01 -5.17797494e-02 2.19115552e-02 ! x y z -2.75082902e+00 -1.26760306e+01 -1.72499665e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -871 2.96336237e-07 2.30591857e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.67255801e-01 2.95893697e-02 3.86584626e-03 ! x y z --2.64610937e+00 1.48112516e+01 2.43371752e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -872 2.96336237e-07 2.20464325e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.98869920e-02 -1.54454260e-01 9.91647705e-04 ! x y z -1.48383421e+01 -4.81159769e+00 6.67476566e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -873 2.96336237e-07 2.73455177e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.81891843e-01 -8.04957405e-02 -2.97691135e-02 ! x y z -5.41143422e+00 1.28399026e+01 -1.55928055e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -874 2.96336237e-07 2.69166226e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.45534477e-02 1.83627561e-01 1.18716779e-03 ! x y z --1.30791260e+01 5.31071354e+00 -1.90314435e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -875 2.96336237e-07 2.22289446e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.31541536e+00 9.55601785e-01 -1.99523279e-01 ! x y z --2.86101353e+00 -3.98319651e+00 -1.94866199e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -876 2.96336237e-07 1.87776831e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.48672114e-02 -9.84868239e-02 -2.04933844e-02 ! x y z -1.22951452e+01 -1.14825138e+01 -1.60304683e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -877 2.96336237e-07 2.02119064e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.38546495e-02 -1.14620943e-01 1.50136750e-02 ! x y z -1.26398292e+01 1.01893591e+01 -1.22056825e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -878 2.96336237e-07 1.73898508e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.26334493e-01 1.62484731e-02 1.35757709e-02 ! x y z --2.30447457e+00 -1.73914442e+01 -6.32762537e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -879 2.96336237e-07 3.88617411e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.16141402e-01 -1.85611436e-01 -2.28078577e-02 ! x y z -7.65970634e+00 -8.92502982e+00 8.70731485e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -880 2.96336237e-07 9.22226305e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.33855336e-01 -4.19729502e-01 -2.89981903e-02 ! x y z -4.69784954e+00 -5.99633599e+00 1.33357967e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -881 2.96336237e-07 5.53689641e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.84206591e-01 -2.92729920e-01 -7.01303144e-03 ! x y z -7.03980325e+00 6.86295812e+00 -1.81345987e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -882 2.96336237e-07 1.82784536e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.04816908e-02 1.27746163e-01 1.45200659e-02 ! x y z --1.60832782e+01 -5.35559802e+00 2.27780462e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -883 2.96336237e-07 1.96061539e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.43783914e-01 1.09840151e-02 -3.50444257e-03 ! x y z --1.28269754e+00 -1.64917510e+01 6.19425588e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -884 2.96336237e-07 5.42371339e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.28607506e-01 2.25901058e-01 1.62474180e-02 ! x y z --5.57048514e+00 8.16506928e+00 -1.14852283e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -885 2.96336237e-07 1.39430004e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.11470781e-03 -1.02386627e-01 -4.25299809e-03 ! x y z -1.94866408e+01 1.23623098e+00 -1.86208733e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -886 2.96336237e-07 4.00590763e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.39598277e-02 2.93166761e-01 -9.91120102e-03 ! x y z --1.14532513e+01 1.35235256e+00 7.62770022e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -887 2.96336237e-07 5.58125448e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.97656063e-01 -1.05866853e-01 -1.23592980e-02 ! x y z -2.52113313e+00 -9.44032210e+00 -5.27701479e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -888 2.96336237e-07 2.16605842e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.12518274e-02 -1.50962888e-01 5.76470993e-04 ! x y z -1.48991302e+01 5.05845218e+00 -4.88861723e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -889 2.96336237e-07 3.16438766e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.72179174e-01 2.09727484e+00 2.98625971e-01 ! x y z --3.73956577e+00 1.71132050e+00 1.54619512e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -890 2.96336237e-07 4.58774736e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.42342805e-01 3.31723938e+00 -4.62991305e-01 ! x y z --3.36881435e+00 4.89818944e-01 3.14505168e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -891 2.96336237e-07 2.12439165e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.21509721e-02 1.42216353e-01 2.06105927e-02 ! x y z --1.43486334e+01 -6.55189788e+00 1.78756293e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -892 2.96336237e-07 4.28739806e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.83981146e-01 -2.53222839e-01 -4.20286665e-02 ! x y z -8.84722195e+00 6.67574571e+00 -1.46999461e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -893 2.96336237e-07 1.65173197e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.89941625e-01 1.06200541e+00 -4.08263292e-03 ! x y z --4.96862900e+00 2.76348413e+00 -4.67544309e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -894 2.96336237e-07 1.67633277e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.66124557e-01 7.56639506e-01 1.39884543e-01 ! x y z --3.44831921e+00 4.46372912e+00 -3.72261138e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -895 2.96336237e-07 1.16379791e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.31312126e-01 1.48179632e-01 -1.48577578e-01 ! x y z --1.18066108e+00 6.68141979e+00 2.40819604e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -896 2.96336237e-07 2.93634154e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.56985396e-01 2.05461664e+00 1.56156383e-01 ! x y z --3.98541177e+00 -1.33307628e+00 7.70635270e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -897 2.96336237e-07 2.47414346e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.22222583e-02 -1.66163844e-01 -2.10403956e-02 ! x y z -1.34968778e+01 5.82162583e+00 4.38995265e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -898 2.96336237e-07 1.62248295e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.82766579e-02 -8.99179417e-02 -9.20971151e-03 ! x y z -1.36688298e+01 1.15665387e+01 3.06056053e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -899 2.96336237e-07 3.12229870e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.61781161e-01 1.62879099e-01 -6.13390653e-03 ! x y z --9.28876514e+00 -9.25275592e+00 -5.04074622e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -900 2.96336237e-07 2.12037735e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.08823734e-02 1.25171844e-01 2.00405753e-02 ! x y z --1.29043439e+01 -9.00781054e+00 -2.40146487e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -901 2.96336237e-07 2.27328940e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.00029884e-02 1.64219591e-01 -1.33125235e-02 ! x y z --1.48642586e+01 -2.92358425e+00 -2.49187966e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -902 2.96336237e-07 2.78378124e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.99708416e-01 4.62944772e-02 -5.19548286e-03 ! x y z --3.14307367e+00 1.35039935e+01 -5.01572582e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -903 2.96336237e-07 8.69089301e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.06266720e-01 6.31558944e-01 -8.63032351e-03 ! x y z --7.66630289e+00 -1.27506932e+00 1.09799430e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -904 2.96336237e-07 4.26290995e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.89167595e-01 -1.22104105e-01 3.04334429e-03 ! x y z -4.30885916e+00 -1.01619667e+01 1.99214208e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -905 2.96336237e-07 5.79722917e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.37452276e-01 3.54896969e-01 -1.81102293e-04 ! x y z --7.98826275e+00 5.34944230e+00 -1.56159547e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -906 2.96336237e-07 7.44757006e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.40895435e-01 6.39101780e-02 6.45558261e-02 ! x y z --1.13693141e+00 -8.30858382e+00 -1.29088552e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -907 2.96336237e-07 1.17402335e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.62588916e-01 -8.40632953e-01 -1.18585707e-01 ! x y z -6.63496883e+00 1.22248558e+00 4.17387063e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -908 2.96336237e-07 1.85107456e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.10138740e-01 -1.32773578e+00 -2.04755836e-02 ! x y z -5.23842889e+00 -1.22253816e+00 -1.06249442e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -909 2.96336237e-07 2.34624867e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.68540683e-01 2.03533946e-02 -3.22348717e-02 ! x y z --1.86308838e+00 -1.50001052e+01 1.27031136e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -910 2.96336237e-07 1.50073317e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.08604598e-01 -1.71938386e-02 1.11741132e-02 ! x y z -3.09661839e+00 -1.85887938e+01 1.45401826e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -911 2.96336237e-07 1.96195016e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.10353169e-02 1.34775623e-01 1.08160966e-02 ! x y z --1.53889719e+01 5.66515837e+00 2.05851916e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -912 2.96336237e-07 1.45944107e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.49136582e-01 -8.45203217e-01 -1.43881979e-01 ! x y z -4.82956125e+00 3.57846326e+00 7.53097945e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -913 2.96336237e-07 4.90064459e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.53583686e-01 -7.20546248e-02 9.86953167e-03 ! x y z -2.07635143e+00 -1.02411066e+01 -4.06831624e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -914 2.96336237e-07 3.49713935e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.54012855e-01 6.11234741e-03 -3.92095928e-02 ! x y z --1.69596779e-01 -1.23755774e+01 -8.17088081e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -915 2.96336237e-07 1.38594107e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --9.99634051e-02 -2.07062387e-02 6.87734336e-04 ! x y z -3.98937852e+00 -1.92554495e+01 1.01125327e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -916 2.96336237e-07 1.93337579e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.31497624e-01 5.44125715e-02 1.02400831e-02 ! x y z --6.43350515e+00 -1.52169370e+01 -1.79464599e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -917 2.96336237e-07 2.45706841e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.69201523e-01 -6.46480013e-02 2.95742207e-03 ! x y z -5.25729533e+00 1.37827831e+01 3.31924280e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -918 2.96336237e-07 8.66069184e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.51306653e-01 5.31977230e-01 4.31592404e-02 ! x y z --6.50098636e+00 -4.34418809e+00 7.40633791e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -919 2.96336237e-07 1.66154614e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.91157903e-01 -8.35309990e-01 -7.35761154e-02 ! x y z -3.86512882e+00 -4.14535001e+00 3.80544359e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -920 2.96336237e-07 1.60364538e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.43049114e-01 -1.09454958e+00 3.00533875e-02 ! x y z -5.35766399e+00 -2.17066324e+00 -7.62193922e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -921 2.96336237e-07 1.39767654e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.81583879e-02 1.02708440e+00 -2.18433877e-02 ! x y z --6.05859003e+00 -4.38708795e-01 -1.20085012e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -922 2.96336237e-07 1.75603350e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.22237886e+00 -3.85503006e-01 -1.74667600e-01 ! x y z -1.63793961e+00 -5.27267834e+00 1.78264954e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -923 2.96336237e-07 7.62156310e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.72188596e-01 2.94636288e-01 7.33872818e-02 ! x y z --4.42616248e+00 -7.12220415e+00 6.97702601e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -924 2.96336237e-07 1.70892318e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15690219e-01 4.81224079e-02 1.08303908e-02 ! x y z --6.95791059e+00 1.60002014e+01 3.12244832e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -925 2.96336237e-07 3.47506158e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.37164057e-01 -9.63363228e-02 -1.53446103e-03 ! x y z -4.67308935e+00 1.15045133e+01 -1.12506365e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -926 2.96336237e-07 3.11290019e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.27998477e+00 -2.47726635e-01 9.90544394e-02 ! x y z -4.10011732e-01 4.05539473e+00 7.50632237e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -927 2.96336237e-07 3.35469224e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.89819446e-01 -1.58125529e-01 2.25026841e-03 ! x y z -8.10498877e+00 -9.70111130e+00 -9.97403119e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -928 2.96336237e-07 4.25310529e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.50014428e-01 1.82723047e-01 4.83040730e-02 ! x y z --6.66224222e+00 9.01971974e+00 4.05093305e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -929 2.96336237e-07 2.42315663e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.78158028e-01 1.07970702e-02 -5.27059743e-03 ! x y z --8.78446275e-01 -1.48319048e+01 -4.83066213e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -930 2.96336237e-07 1.66654604e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.85222762e-02 -1.07924522e-01 -6.72574518e-05 ! x y z -1.57101877e+01 8.51452165e+00 1.48635303e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -931 2.96336237e-07 1.14585326e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.33599367e-01 1.39645697e-01 -5.05377000e-04 ! x y z --1.13342702e+00 -6.73470103e+00 -4.44620673e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -932 2.96336237e-07 3.18563975e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.82743222e-01 1.47360893e-01 -4.52351230e-03 ! x y z --8.12727932e+00 1.00965316e+01 1.81325702e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -933 2.96336237e-07 1.73018531e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19630719e-01 -4.35024842e-02 3.47481229e-03 ! x y z -6.03705569e+00 -1.63923067e+01 2.25892158e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -934 2.96336237e-07 1.79291082e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.20004960e-01 5.27303194e-02 1.74934568e-02 ! x y z --6.71498644e+00 -1.58181122e+01 1.67974997e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -935 2.96336237e-07 3.86333802e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.67332562e-01 9.65056973e-02 1.02104652e-02 ! x y z --3.96103654e+00 -1.10743769e+01 7.47383823e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -936 2.96336237e-07 1.80206607e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.22504840e-01 -5.05748446e-02 7.88442782e-03 ! x y z -6.56425549e+00 -1.59354302e+01 -4.95675892e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -937 2.96336237e-07 1.38524143e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.56550514e-02 5.48163769e-02 -6.48107916e-03 ! x y z --1.06108906e+01 -1.65930609e+01 7.45965376e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -938 2.96336237e-07 5.12194286e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.66331305e-01 7.92208766e-02 -4.43755522e-02 ! x y z --2.32433368e+00 -9.82538831e+00 1.61832063e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -939 2.96336237e-07 3.61240067e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.44717545e-01 -1.03514924e-01 -9.04524590e-03 ! x y z -4.74612714e+00 1.12254092e+01 2.73100978e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -940 2.96336237e-07 2.00397143e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.73297473e-03 -1.46641295e-01 -1.69648762e-02 ! x y z -1.63013657e+01 3.30655606e-01 -1.23672548e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -941 2.96336237e-07 3.01652106e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.34310878e-01 -1.76910553e-01 5.93960210e-04 ! x y z -1.06194326e+01 -8.06307261e+00 -6.25621621e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -942 2.96336237e-07 1.73182356e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24895992e+00 1.14359414e-01 -2.37267504e-01 ! x y z --5.54627913e-01 -5.52446218e+00 2.85518718e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -943 2.96336237e-07 2.69009978e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.83398224e-02 1.71711429e-01 -8.61604988e-03 ! x y z --1.22447949e+01 7.01623231e+00 4.87460756e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -944 2.96336237e-07 2.90014965e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.15244680e+00 -1.78768066e+00 -2.05346911e-01 ! x y z -3.61174380e+00 2.32905320e+00 1.64056694e-04 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -945 2.96336237e-07 2.13303967e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.06566657e-01 -1.13718299e-01 -1.97286159e-02 ! x y z -1.14089146e+01 1.09256119e+01 -1.34633089e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -946 2.96336237e-07 2.55201254e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.38969266e-03 1.85886966e-01 2.69598651e-02 ! x y z --1.44618393e+01 6.56990874e-01 4.86907483e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -947 2.96336237e-07 1.65493084e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.95749009e-02 1.10853163e-01 1.00708900e-02 ! x y z --1.64441325e+01 7.32750101e+00 1.14142182e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -948 2.96336237e-07 4.00349742e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.48211660e-01 -1.59684926e-01 5.37953418e-03 ! x y z -6.24248312e+00 -9.70659091e+00 -6.43539666e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -949 2.96336237e-07 2.85479014e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.06025842e-01 -3.65965775e-02 1.88648875e-02 ! x y z -2.48635818e+00 1.34575153e+01 -8.79312234e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -950 2.96336237e-07 1.38588803e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.15379940e-01 8.79436847e-01 -2.49066442e-02 ! x y z --5.37661341e+00 3.13650316e+00 -1.30999749e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -951 2.96336237e-07 1.05264406e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.57715049e-01 1.60731162e-01 -2.24247590e-02 ! x y z --1.43844401e+00 -6.94192235e+00 -8.46373555e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -952 2.96336237e-07 1.61532953e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.14577362e+00 3.18573115e-01 3.86801838e-02 ! x y z --1.52356768e+00 -5.53580079e+00 4.59032515e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -953 2.96336237e-07 1.70510618e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.65374748e-01 1.22871246e+00 5.06370772e-02 ! x y z --5.46868214e+00 1.17952865e+00 1.70892375e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -954 2.96336237e-07 1.31957791e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.70293492e-01 -6.88887998e-01 1.48868000e-01 ! x y z -4.52889114e+00 -4.46543113e+00 -3.31525052e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -955 2.96336237e-07 4.10243348e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.99447071e-01 -3.88609000e-02 1.37093908e-02 ! x y z -1.47763097e+00 1.13300768e+01 -1.04419973e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -956 2.96336237e-07 2.41668950e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.71607343e-02 -1.75792727e-01 -9.92237389e-03 ! x y z -1.46885594e+01 2.23111918e+00 8.23545754e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -957 2.96336237e-07 9.46597319e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.17728779e-01 -4.64898703e-01 -9.54315460e-03 ! x y z -5.03848958e+00 -5.60834135e+00 9.14749650e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -958 2.96336237e-07 1.86952063e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.37418815e-01 2.17152862e-03 7.02002324e-03 ! x y z --2.08256274e-01 -1.69097914e+01 1.03655936e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -959 2.96336237e-07 3.70339256e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.70523456e+00 1.93879228e-01 -2.83408971e-01 ! x y z --3.26981757e-01 -3.75857508e+00 4.97961043e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -960 2.96336237e-07 3.73508869e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.35325027e-01 2.39444221e-01 -1.84735354e-03 ! x y z --1.04212016e+01 5.90862644e+00 2.39671578e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -961 2.96336237e-07 3.94424971e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.85895725e-01 -5.23770142e-02 -1.30994233e-02 ! x y z -1.95713875e+00 1.12527852e+01 -2.24343765e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -962 2.96336237e-07 2.05001826e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.27016727e-02 1.37371226e-01 -3.56702957e-03 ! x y z --1.47049219e+01 6.71072403e+00 -1.13817163e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -963 2.96336237e-07 7.08589148e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.74474733e-02 5.18079679e-01 3.15321610e-02 ! x y z --8.63547685e+00 -9.36137434e-01 -3.31970530e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -964 2.96336237e-07 1.49478376e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.81601720e-02 -1.04826753e-01 -1.87658164e-02 ! x y z -1.81987061e+01 -5.09219745e+00 1.04907276e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -965 2.96336237e-07 1.05860994e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.11294223e-01 -5.88750869e-01 -3.15903391e-04 ! x y z -5.31006560e+00 4.61049759e+00 -1.08263227e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -966 2.96336237e-07 2.27588242e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.67054832e-01 1.50088123e-02 2.42972682e-03 ! x y z --1.37743126e+00 -1.51795886e+01 -1.69545065e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -967 2.96336237e-07 9.99270509e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.92359212e-01 7.09564300e-01 2.76351418e-02 ! x y z --7.06199692e+00 -1.93782306e+00 2.42778297e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -968 2.96336237e-07 1.29115850e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.25385750e-01 -2.20645679e-01 -2.84606271e-04 ! x y z -1.49138284e+00 6.26585228e+00 -3.83501324e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -969 2.96336237e-07 1.60735945e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.86583287e-01 8.61444208e-01 1.94780081e-01 ! x y z --4.28480290e+00 -3.87607292e+00 -1.79161904e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -970 2.96336237e-07 3.47091730e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.47316085e+00 4.04918805e-01 -5.01180317e-01 ! x y z --6.38173445e-01 -3.87868782e+00 2.87383943e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -971 2.96336237e-07 3.38571096e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.06531044e-01 -2.25146584e-01 -1.53808308e-02 ! x y z -1.13376962e+01 -5.27742157e+00 -1.30136647e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -972 2.96336237e-07 5.09440047e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.43441183e-01 -3.38953248e-01 6.93233183e-02 ! x y z -9.43734744e+00 4.05627731e+00 3.02446887e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -973 2.96336237e-07 1.22978155e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.96389839e-01 8.46748525e-01 -1.11950598e-01 ! x y z --6.24804681e+00 -2.12634083e+00 4.37285738e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -974 2.96336237e-07 8.65038857e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.96337825e-01 3.99343165e-01 6.83019861e-03 ! x y z --4.92398369e+00 -6.12383879e+00 -4.77785888e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -975 2.96336237e-07 2.96107958e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.62746960e-01 2.10641893e+00 -5.87372037e-02 ! x y z --4.09768661e+00 -1.08483602e+00 3.63389985e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -976 2.96336237e-07 6.79914022e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.37778435e-01 -2.44848013e-01 -1.26117469e-02 ! x y z -4.27847832e+00 -7.70046909e+00 9.63388518e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -977 2.96336237e-07 4.82810698e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.36859265e+00 -3.27723362e+00 -1.33670888e-01 ! x y z -3.07804542e+00 -1.28010646e+00 -4.33275230e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -978 2.96336237e-07 1.41645102e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.57548591e-02 -1.00154783e-01 1.39502332e-02 ! x y z -1.87604397e+01 -4.96889822e+00 -1.27121063e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -979 2.96336237e-07 5.10977756e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.79620029e-01 3.27337489e-01 -4.38527641e-02 ! x y z --9.01255700e+00 -4.81706789e+00 8.35611885e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -980 2.96336237e-07 2.59838671e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.16845914e-02 -1.90161824e-01 -7.41123853e-05 ! x y z -1.42640322e+01 1.62614734e+00 3.93699290e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -981 2.96336237e-07 3.85651707e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.72402627e-01 -7.93168677e-02 4.05576025e-03 ! x y z -3.28030103e+00 -1.12640382e+01 1.28413044e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -982 2.96336237e-07 7.67792671e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.44312157e-01 5.46675491e-01 1.54945194e-02 ! x y z --8.06950886e+00 2.14424229e+00 -2.69010784e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -983 2.96336237e-07 1.36799784e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.62938451e-01 -8.31730782e-01 -8.56698693e-02 ! x y z -5.13353612e+00 3.53762914e+00 -5.33256758e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -984 2.96336237e-07 4.08041880e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.46281030e-01 2.59844570e-01 3.58061298e-02 ! x y z --1.00138605e+01 5.51759986e+00 9.07457705e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -985 2.96336237e-07 4.07272682e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.30190326e-01 2.69860092e-01 -1.00134699e-02 ! x y z --1.03277699e+01 -4.98812713e+00 -4.77085445e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -986 2.96336237e-07 1.90818234e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.67718988e-02 1.23536697e-01 -5.03497855e-03 ! x y z --1.47398486e+01 7.91260881e+00 -1.06969287e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -987 2.96336237e-07 2.07916241e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.01999173e-01 1.14183625e-01 4.14367511e-03 ! x y z --1.19651990e+01 1.06850701e+01 -6.21734279e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -988 2.96336237e-07 5.35625520e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.06643842e-01 2.45162080e-01 -3.89741089e-02 ! x y z --6.14824603e+00 -7.84600684e+00 -8.38101136e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -989 2.96336237e-07 3.12896277e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.03140847e-01 2.06490535e-01 -7.21872574e-03 ! x y z --1.16833807e+01 5.84045664e+00 -2.76008440e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -990 2.96336237e-07 1.40131191e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.03904870e-02 9.44675844e-02 8.86243696e-03 ! x y z --1.80049300e+01 -7.67036658e+00 -4.15499830e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -991 2.96336237e-07 2.33080776e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.23791398e+00 -1.19150241e+00 -7.11736278e-02 ! x y z -3.32202144e+00 3.43579966e+00 2.80623088e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -992 2.96336237e-07 2.63696766e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.07015938e-01 -1.83968564e+00 3.80167288e-01 ! x y z -4.34289672e+00 1.17069801e+00 -1.47741160e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -993 2.96336237e-07 1.64020704e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.17831022e-03 1.20641706e-01 -4.33108327e-03 ! x y z --1.79025093e+01 -8.46836411e-01 -2.33672715e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -994 2.96336237e-07 1.23769572e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.97190753e-01 7.65691844e-02 -1.42083825e-01 ! x y z --5.13604774e-01 -6.55492239e+00 -2.80837706e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -995 2.96336237e-07 2.26020475e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.48185454e+00 7.46321653e-01 1.42354362e-01 ! x y z --2.14625796e+00 -4.34398631e+00 4.72517326e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -996 2.96336237e-07 2.62157216e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.25172579e-01 -1.46915266e-01 9.01088569e-03 ! x y z -1.08477449e+01 -9.28178020e+00 -6.04832616e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -997 2.96336237e-07 1.80696664e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.30879183e-01 2.12348715e-02 1.11371504e-02 ! x y z --2.72513460e+00 -1.70077334e+01 3.11224576e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -998 2.96336237e-07 1.48356192e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.17454161e-01 -1.00990947e+00 -6.68005279e-05 ! x y z -5.55398155e+00 2.29724534e+00 2.96839485e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -999 2.96336237e-07 6.54223940e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.48540666e-02 -4.73509483e-01 -6.16171667e-02 ! x y z -8.92680781e+00 -1.31485883e+00 7.12200476e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1000 2.96336237e-07 2.38604708e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.88897076e-01 -1.57230791e+00 1.43343763e-02 ! x y z -4.22895643e+00 2.12916212e+00 4.84307179e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1001 2.96336237e-07 1.64126121e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.16745684e-01 -3.15007989e-02 3.40734839e-03 ! x y z -4.66911820e+00 -1.74172880e+01 -9.88294520e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1002 2.96336237e-07 1.06470041e-02 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.74074444e-01 3.57247588e+00 1.22712296e-01 ! x y z --3.23751959e+00 6.12821445e-01 5.64932650e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1003 2.96336237e-07 4.84814521e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.51182789e-02 1.51240274e-01 -2.16267083e-02 ! x y z --1.41415961e+01 -5.84210883e+00 1.76846605e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1004 2.96336237e-07 1.31673428e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.27916091e-01 -1.37918863e-01 -2.71529391e-02 ! x y z -2.86419355e+00 -8.91041758e+00 -6.01317699e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1005 2.96336237e-07 3.21721504e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.09148352e+00 1.09184215e-01 -8.29110680e-02 ! x y z --6.63759102e-01 -5.85966440e+00 1.05196899e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1006 2.96336237e-07 3.96552292e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24129761e-01 -5.37708141e-02 1.04456196e-02 ! x y z -6.60909031e+00 -1.55833259e+01 -2.05655592e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1007 2.96336237e-07 4.19165053e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.17225747e-01 8.21558748e-02 -4.23269930e-03 ! x y z --9.52731933e+00 -1.35953626e+01 -4.95702545e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1008 2.96336237e-07 5.22168686e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.65706774e-01 -6.61525764e-02 -3.20363277e-03 ! x y z -5.50113300e+00 1.38082680e+01 6.18414881e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1009 2.96336237e-07 6.20600588e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.56484900e-01 1.43278911e-01 -5.06980793e-04 ! x y z --9.19973551e+00 1.00692057e+01 -2.17110400e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1010 2.96336237e-07 3.95433171e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.25058673e+00 4.92783652e-01 -1.42343853e-01 ! x y z --2.02074681e+00 4.97909860e+00 -5.80519071e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1011 2.96336237e-07 6.67942889e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.23132417e-01 3.69719368e-02 2.90644682e-02 ! x y z --2.11525095e+00 -1.29929152e+01 2.84767847e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1012 2.96336237e-07 3.70395497e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.16360394e-01 5.00900190e-02 -6.17753068e-03 ! x y z --6.95453975e+00 1.61862870e+01 6.35036321e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1013 2.96336237e-07 2.58435335e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.78683362e-01 9.73989333e-02 -9.38461997e-03 ! x y z --7.32427667e-01 -6.63854489e+00 -1.33630739e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1014 2.96336237e-07 9.25804779e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.00962293e-01 8.03406362e-02 -5.54929609e-02 ! x y z --2.99296223e+00 -1.07423882e+01 6.77917660e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1015 2.96336237e-07 2.08185619e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.36389989e-01 3.18692338e-01 9.36078741e-03 ! x y z --3.33548840e+00 -6.65785191e+00 -9.18683758e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1016 2.96336237e-07 4.18608733e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.43010948e-01 4.81790633e-04 1.71369666e-03 ! x y z --5.29468391e-02 -1.66171276e+01 2.82598835e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1017 2.96336237e-07 5.06594524e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.47658927e-01 8.84455219e-02 -1.94988516e-02 ! x y z --7.71114929e+00 1.29700652e+01 4.34118486e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1018 2.96336237e-07 1.37325283e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.41194112e-01 1.60577039e-01 1.73742504e-03 ! x y z --3.13590065e+00 8.61664225e+00 -3.01150012e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1019 2.96336237e-07 3.49839062e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.76801700e-01 1.03724041e+00 -1.44302668e-01 ! x y z --5.02989010e+00 2.71169287e+00 -6.16925428e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1020 2.96336237e-07 5.08423673e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.23284921e-02 -1.68510141e-01 -9.20461387e-03 ! x y z -1.45280934e+01 -3.57985540e+00 -1.67457194e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1021 2.96336237e-07 2.88136692e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.56687149e-01 -8.71432369e-01 -3.07901282e-03 ! x y z -5.61701404e+00 -2.93701537e+00 8.14466659e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1022 2.96336237e-07 1.18694160e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.24048870e-01 -3.85993119e-01 -2.85301417e-02 ! x y z -9.37852789e+00 -2.97372717e+00 -4.23128322e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1023 2.96336237e-07 8.96459515e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.53276998e-01 -1.73081976e-01 -1.13169035e-03 ! x y z -6.39426668e+00 9.36386297e+00 5.26735434e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1024 2.96336237e-07 3.02450304e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.88838983e-02 -1.01821976e-01 6.54567242e-04 ! x y z -1.91821714e+01 3.55946988e+00 -8.43912795e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1025 2.96336237e-07 1.05654855e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.38464238e-02 -3.53644429e-01 -5.17728954e-03 ! x y z -1.01773856e+01 2.11438730e+00 1.08970005e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1026 2.96336237e-07 4.55847563e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.07892079e-02 -1.55411559e-01 4.23696601e-03 ! x y z -1.58725780e+01 -1.09253615e+00 4.42578222e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1027 2.96336237e-07 2.59703578e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.07944130e-01 -6.33539686e-01 1.25298354e-01 ! x y z -4.73176841e+00 4.67105756e+00 5.91252976e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1028 2.96336237e-07 4.95937323e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.38261779e-01 9.84481414e-02 -2.77272739e-03 ! x y z --8.68764136e+00 -1.23055878e+01 -2.32120158e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1029 2.96336237e-07 8.25295670e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.15312805e-01 1.79067589e-01 -3.85403858e-02 ! x y z --7.33967694e+00 9.13787549e+00 1.42230313e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1030 2.96336237e-07 2.93353480e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.57228267e-02 8.89156341e-02 -9.55076715e-03 ! x y z --1.73678855e+01 9.17771303e+00 2.57320503e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1031 2.96336237e-07 2.27668619e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.81106960e-01 -7.26498645e-01 1.56124406e-02 ! x y z -6.63191368e+00 2.57565486e+00 -4.46604449e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1032 2.96336237e-07 1.42093473e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -4.66035760e-01 1.34677980e-01 1.51474078e-02 ! x y z --2.48711618e+00 8.66288977e+00 -4.31348547e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1033 2.96336237e-07 5.09843210e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.49256391e-01 -8.98552957e-02 8.03161856e-03 ! x y z -7.67000539e+00 -1.28888894e+01 -1.13596382e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1034 2.96336237e-07 2.84104498e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.67047329e-01 9.28377081e-01 1.17555844e-01 ! x y z --6.11851787e+00 1.74304133e+00 1.28534970e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1035 2.96336237e-07 1.10279238e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.94562813e-01 -2.35512967e-01 -9.44091625e-03 ! x y z -6.30750817e+00 -7.94331886e+00 1.30443469e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1036 2.96336237e-07 3.23798109e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.89380141e-02 -9.36563886e-02 3.79456685e-03 ! x y z -1.59807157e+01 -1.00540926e+01 1.17743202e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1037 2.96336237e-07 9.44551536e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.25748690e-01 2.29346442e-01 2.69765311e-02 ! x y z --7.87715725e+00 7.75524591e+00 -2.21822295e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1038 2.96336237e-07 1.43736909e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.58403406e-01 -4.61724349e-01 5.68464249e-02 ! x y z -8.34916992e+00 -3.02775882e+00 -1.20511907e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1039 2.96336237e-07 1.54656595e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.24393405e-01 6.21171025e-02 1.87747805e-03 ! x y z --9.93775138e-01 8.46832981e+00 -1.46881518e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1040 2.96336237e-07 6.02900758e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.74552181e-02 -2.05437138e-01 -1.10303979e-03 ! x y z -1.37405990e+01 1.15091503e+00 -1.13712483e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1041 2.96336237e-07 4.87636153e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.26963530e-02 -1.44856828e-01 -6.37855396e-05 ! x y z -1.33567034e+01 -7.62604409e+00 -5.92237759e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1042 2.96336237e-07 2.00284670e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.06838668e-02 6.84254725e-01 9.12913403e-03 ! x y z --7.58232021e+00 -3.44409180e-01 1.93699933e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1043 2.96336237e-07 3.11769323e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.00801700e-01 3.47624129e-02 -2.99039627e-03 ! x y z --6.17605701e+00 1.81276908e+01 1.75096524e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1044 2.96336237e-07 8.16029827e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.36231606e-01 -2.43461847e-01 -3.84641919e-03 ! x y z -1.03273243e+01 -5.81026018e+00 1.03402054e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1045 2.96336237e-07 2.40073156e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.78147625e-01 4.56003365e-01 7.46575617e-02 ! x y z --3.83380119e+00 5.76751152e+00 -3.95322885e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1046 2.96336237e-07 3.40848950e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.09041757e-02 -1.04632567e-01 -6.11195864e-03 ! x y z -1.63194834e+01 -8.09100239e+00 2.65772836e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1047 2.96336237e-07 2.97356522e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -8.18035965e-02 -6.02983301e-02 -1.45641272e-04 ! x y z -1.16966126e+01 1.58596094e+01 5.19810521e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1048 2.96336237e-07 1.49726682e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.97534722e-01 1.15947877e-01 -4.33078255e-02 ! x y z --1.92732259e+00 -8.51844523e+00 -7.75528723e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1049 2.96336237e-07 8.85265431e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.02692645e-01 -1.40124988e-02 -4.41042733e-03 ! x y z -5.27292112e-01 -1.13562805e+01 9.27252443e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1050 2.96336237e-07 1.11824292e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.73992545e-01 -6.98394173e-02 -3.67233300e-02 ! x y z -1.93140005e+00 -9.94855540e+00 -7.77421387e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1051 2.96336237e-07 1.20020469e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.15392539e-01 -2.62139778e-01 -1.51623802e-02 ! x y z -6.24901693e+00 -7.54616708e+00 4.34791226e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1052 2.96336237e-07 3.23257150e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.27973678e-02 5.95891531e-02 6.38364525e-03 ! x y z --1.02606373e+01 1.58031691e+01 1.58657612e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1053 2.96336237e-07 5.81276260e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.86537730e-01 -6.32545793e-02 2.64190341e-02 ! x y z -4.34995894e+00 -1.33483995e+01 -1.24179804e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1054 2.96336237e-07 2.65103417e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.60715492e-01 4.79257662e-01 1.15238363e-01 ! x y z --3.58339492e+00 5.46023497e+00 9.44881220e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1055 2.96336237e-07 3.37850032e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.03189345e-01 5.10823801e-02 8.54272991e-03 ! x y z --8.07533814e+00 1.65808836e+01 -1.39166928e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1056 2.96336237e-07 1.67715490e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.44868474e-01 -1.75228361e-01 3.64405664e-02 ! x y z -2.58334069e+00 7.78885401e+00 -1.21757856e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1057 2.96336237e-07 4.31237497e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.46690021e+00 5.90166143e-03 -1.40576632e-01 ! x y z --4.81290244e-02 -5.16316655e+00 3.76887531e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1058 2.96336237e-07 6.74071813e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.07621519e-01 2.03716913e-01 2.58020698e-03 ! x y z --1.15721686e+01 6.11760527e+00 -1.74200379e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1059 2.96336237e-07 4.91411975e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.00718011e+00 -1.34799155e+00 3.53469553e-02 ! x y z -3.86824988e+00 2.88497454e+00 -3.57267475e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1060 2.96336237e-07 2.32551536e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.13013746e-01 5.01226320e-01 6.87559253e-02 ! x y z --4.48337459e+00 -5.39911255e+00 -6.58257106e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1061 2.96336237e-07 8.23105536e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.88915443e+00 2.08215730e+00 -4.66570027e-02 ! x y z --2.72298812e+00 2.48170068e+00 6.91140791e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1062 2.96336237e-07 1.60390650e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -3.51445528e-01 4.21052262e-01 4.72627688e-03 ! x y z --6.51084959e+00 5.43792465e+00 3.07567169e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1063 2.96336237e-07 6.64003256e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.13349199e+00 7.83666356e-01 -4.85010866e-02 ! x y z --1.42923283e+00 3.90610912e+00 2.00447908e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1064 2.96336237e-07 2.78356000e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.78637601e-01 -8.14174318e-01 1.09168535e-01 ! x y z -5.47313452e+00 -3.32371119e+00 -7.49892982e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1065 2.96336237e-07 1.07861022e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.75992202e-02 -3.58102214e-01 7.86041978e-03 ! x y z -9.84720379e+00 -2.45225267e+00 -2.02122454e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1066 2.96336237e-07 5.23798120e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.65381782e-01 -6.87581228e-02 -4.48553759e-03 ! x y z -5.58315921e+00 1.35541913e+01 -2.31531244e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1067 2.96336237e-07 1.04394794e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.75697797e-01 3.10379687e-01 -1.54170027e-02 ! x y z --9.14752704e+00 -5.14399835e+00 6.50547327e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1068 2.96336237e-07 4.94499829e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.43036749e-02 -1.51391839e-01 -8.05748123e-03 ! x y z -1.36980055e+01 -6.77168736e+00 8.06088207e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1069 2.96336237e-07 7.74460554e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -5.87839160e-02 -2.56591928e-01 2.89755970e-02 ! x y z -1.18512335e+01 2.54918268e+00 -1.44614828e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1070 2.96336237e-07 3.05335424e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.51194255e-03 -1.04143895e-01 -3.38992275e-03 ! x y z -1.94042987e+01 -1.20318977e+00 -3.41601478e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1071 2.96336237e-07 4.34434410e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.46013065e-01 -8.17783348e-03 -2.54165956e-02 ! x y z -6.36165066e-01 1.62398626e+01 -1.41188845e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1072 2.96336237e-07 6.38740328e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.64403679e-01 1.40592776e-01 -2.94350247e-02 ! x y z --8.57202067e+00 -1.02838769e+01 -1.28273744e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1073 2.96336237e-07 5.89611193e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.91767566e-01 -5.30006077e-02 -3.26097154e-02 ! x y z -3.70757015e+00 -1.34916225e+01 1.12725577e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1074 2.96336237e-07 3.34491447e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.51833151e-03 1.14301988e-01 -3.30329730e-03 ! x y z --1.84593496e+01 -3.39995502e-01 2.05813309e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1075 2.96336237e-07 7.72021864e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.55829128e-01 -2.12910607e-01 5.71720540e-03 ! x y z -9.86279771e+00 -7.23377860e+00 -1.06144560e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1076 2.96336237e-07 8.33130623e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.23285908e-01 1.76744500e-01 5.43874553e-03 ! x y z --7.29359278e+00 9.23557485e+00 3.45093345e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1077 2.96336237e-07 1.26094230e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.57679876e-01 -3.45418056e-01 1.14265971e-02 ! x y z -7.56449148e+00 -5.68969528e+00 -1.40828207e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1078 2.96336237e-07 3.37741082e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.14736221e-01 -1.14306465e+00 -1.19423170e-01 ! x y z -5.76845511e+00 -6.57143361e-01 6.81382086e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1079 2.96336237e-07 3.08203016e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --8.12650434e-02 -6.69588561e-02 5.10876930e-03 ! x y z -1.22941828e+01 -1.46898735e+01 2.71339914e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1080 2.96336237e-07 1.06429820e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.46017723e-02 3.61341639e-01 -1.24947094e-02 ! x y z --1.03239751e+01 -1.27008334e+00 2.06236097e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1081 2.96336237e-07 7.37152169e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.29915702e-02 2.43518428e-01 1.62289138e-02 ! x y z --1.20614056e+01 3.18917143e+00 -9.77157436e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1082 2.96336237e-07 1.13260750e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.65165244e-02 -3.83371639e-01 1.09899518e-02 ! x y z -9.97813790e+00 -1.46471938e+00 -8.96509684e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1083 2.96336237e-07 2.99942952e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.19355999e-02 -1.01904322e-01 -4.36932856e-03 ! x y z -1.93361108e+01 -2.38073808e+00 2.07853556e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1084 2.96336237e-07 4.46804808e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.49983331e-01 -2.31137074e-02 -1.64942321e-02 ! x y z -2.67649857e+00 -1.56830821e+01 -2.38430930e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1085 2.96336237e-07 3.81392853e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --6.93090078e-02 1.09200339e-01 1.62157581e-02 ! x y z --1.47268421e+01 -9.26025807e+00 -5.71019852e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1086 2.96336237e-07 4.39454416e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --5.77801902e-02 1.38488040e-01 -1.33495928e-03 ! x y z --1.49794567e+01 -6.23745343e+00 -3.15543375e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1087 2.96336237e-07 3.19023763e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -9.86061778e-02 -4.64504747e-02 -2.35609030e-03 ! x y z -8.10232111e+00 1.72222595e+01 2.87260072e-03 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1088 2.96336237e-07 5.88826960e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.12881161e-01 -1.66512529e-01 1.04882472e-02 ! x y z -1.15834503e+01 7.84245355e+00 -4.15451085e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1089 2.96336237e-07 3.29142954e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -6.03947069e-02 -9.42815116e-02 1.22518872e-02 ! x y z -1.55324442e+01 1.02255659e+01 2.08559910e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1090 2.96336237e-07 9.29289292e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --3.03564395e+00 9.39921312e-01 -8.34546688e-02 ! x y z --1.04774397e+00 -3.35741960e+00 2.04065024e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1091 2.96336237e-07 8.12478270e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.07965592e-01 2.55749684e-01 3.07345392e-03 ! x y z --1.09890599e+01 -4.63836951e+00 -7.78187575e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1092 2.96336237e-07 5.24578727e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.18514063e-01 -1.34391504e-01 -7.58923152e-03 ! x y z -1.10995932e+01 9.82416558e+00 -6.43092939e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1093 2.96336237e-07 4.30209233e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -1.02782557e+00 -1.04306613e+00 1.37070993e-01 ! x y z -3.70249669e+00 3.60207922e+00 -3.98760733e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1094 2.96336237e-07 5.41608855e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.18695664e-02 1.70384024e-01 1.00567477e-02 ! x y z --1.34452661e+01 5.65442673e+00 6.27537319e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1095 2.96336237e-07 3.36019031e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.85805986e-03 -1.14708749e-01 -1.45165778e-03 ! x y z -1.84912316e+01 -7.93490580e-01 1.20332304e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1096 2.96336237e-07 1.18372071e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --4.01987800e-01 3.37867792e-02 -2.62216127e-02 ! x y z --8.65498606e-01 -9.81378983e+00 8.38681506e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1097 2.96336237e-07 6.38873550e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.13156407e-01 4.33357320e-02 -1.99137422e-02 ! x y z --2.87166590e+00 1.29244592e+01 -2.33394631e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1098 2.96336237e-07 5.54987043e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.73818991e-01 -7.61492221e-02 2.58917243e-03 ! x y z -5.75918692e+00 -1.31742043e+01 -1.11378786e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1099 2.96336237e-07 4.22013250e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.32231765e-01 5.74613727e-02 -9.19312917e-03 ! x y z --6.56941527e+00 -1.51493572e+01 -4.93757362e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1100 2.96336237e-07 3.57874114e-04 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --1.22341493e-01 4.89018051e-03 -8.50115374e-04 ! x y z --7.44602891e-01 -1.79337569e+01 1.12998645e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1101 2.96336237e-07 2.81928574e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.30053266e-01 9.29205486e-01 -1.10295185e-01 ! x y z --6.12890823e+00 1.61718447e+00 8.96097437e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1102 2.96336237e-07 1.73071242e-02 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --2.32694955e-02 2.50350947e-01 -3.12224781e-02 ! x y z --1.24340259e+01 -1.14737108e+00 1.46788159e-02 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1103 2.96336237e-07 8.83612426e-02 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius --7.13882041e-01 -1.79593230e+00 -6.20490790e-02 ! x y z -4.18110608e+00 -1.65201225e+00 -4.67688900e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1104 2.96336237e-07 2.45752603e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.08585088e-02 7.14556640e-02 -1.36094941e-03 ! x y z --1.39251555e+01 1.37203539e+01 -3.19364899e+00 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1105 2.96336237e-07 3.71502554e-03 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -2.05965081e-02 1.42710299e-01 3.73644793e-03 ! x y z --1.63585519e+01 2.35884313e+00 3.59514969e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot -1106 2.96336237e-07 2.09799076e-02 ! ID / G*Mass / Rhill -7.07980829e-06 ! Radius -7.94472230e-01 -1.41835347e-01 1.01358631e-01 ! x y z -1.20564438e+00 6.85997610e+00 1.47041027e-01 ! vx vy vz -4.00000000e-01 4.00000000e-01 4.00000000e-01 ! ip -0.00000000e+00 0.00000000e+00 0.00000000e+00 ! rot +1105 +2.0 0.0376722155 0.35307558995269156 +0.000467326079 +5.172281681449432 0.046760050149286136 1.3034369794516383 +100.50370344615287 277.95408735904414 299.47072527467117 +0.4 0.4 0.4 +0.0 0.0 0.0 +3.0 0.0112798314 0.43362938279920926 +0.000389256801 +9.495241797076803 0.05831886504886423 2.4897150857337977 +113.60173064710709 341.1122276637114 214.47759752003608 +0.4 0.4 0.4 +0.0 0.0 0.0 +4.0 0.00172303742 0.4689444140515067 +0.000169534465 +19.209290579028355 0.04660264515690298 0.772131045762339 +74.00329991835538 95.9871868832834 234.95264516428847 +0.4 0.4 0.4 +0.0 0.0 0.0 +5.0 0.00203247359 0.7765171236861929 +0.000164587872 +30.104466076098753 0.009375961185985455 1.7702774190709465 +131.7823850231201 267.4341182268954 312.4212576431109 +0.4 0.4 0.4 +0.0 0.0 0.0 +6.0 0.00203247359 0.9027929359579849 +0.000164587872 +34.99999998103326 0.046602647094867104 1.770277414721863 +74.00329996123871 267.4340808607514 234.95264506877194 +0.4 0.4 0.4 +0.0 0.0 0.0 +7.0 2.96336237e-06 0.005512259131852213 +1.52529846e-05 +1.884616116091531 0.0007423022395688265 6.5728685708454355 +49.55283194123395 12.557899778504652 10.484350244753976 +0.4 0.4 0.4 +0.0 0.0 0.0 +8.0 2.96336237e-06 0.0019178533602580044 +1.52529846e-05 +0.6557052679466514 8.378761417954488e-05 0.3063403435881767 +309.12238967303904 280.7713337479704 62.82466997448164 +0.4 0.4 0.4 +0.0 0.0 0.0 +9.0 2.96336237e-06 0.0004112571359191792 +1.52529846e-05 +0.14060692860614776 0.00023031374149944594 1.7305895846896235 +258.19178410822843 126.80591596818843 241.30807229544132 +0.4 0.4 0.4 +0.0 0.0 0.0 +10.0 2.96336237e-06 0.0003558360060864788 +1.52529846e-05 +0.12165869849643374 0.001996906171922296 8.181163575953859 +127.03740060987732 228.31258600353382 45.987222950345235 +0.4 0.4 0.4 +0.0 0.0 0.0 +11.0 2.96336237e-06 0.004238951617733855 +1.52529846e-05 +1.4492781168343072 0.00123354906776431 6.127603772301239 +0.586278364878247 120.20877867772262 332.4438578039355 +0.4 0.4 0.4 +0.0 0.0 0.0 +12.0 2.96336237e-06 0.000428115645359569 +1.52529846e-05 +0.14637077566497864 0.0015174471395206497 7.384343118829618 +90.24919099580596 294.5077497540469 309.5576905676759 +0.4 0.4 0.4 +0.0 0.0 0.0 +13.0 2.96336237e-06 0.0004147219696796154 +1.52529846e-05 +0.1417915393779389 0.000636441064464215 2.271662502450314 +236.62326008233057 147.42136715339123 168.82519701899685 +0.4 0.4 0.4 +0.0 0.0 0.0 +14.0 2.96336237e-06 0.000668774022810232 +1.52529846e-05 +0.22865077117447094 0.0015399665313668989 1.1545306249464131 +182.11815578681754 152.61307302562298 352.4210953391632 +0.4 0.4 0.4 +0.0 0.0 0.0 +15.0 2.96336237e-06 0.0007265432314441647 +1.52529846e-05 +0.24840179865724105 0.0005839332787213311 2.5222956390757862 +290.9274478155636 36.95928606481527 79.46628403762982 +0.4 0.4 0.4 +0.0 0.0 0.0 +16.0 2.96336237e-06 0.0003702478544426329 +1.52529846e-05 +0.12658604335178142 2.5298156499728664e-05 5.555515038103633 +281.4445031789493 115.18582702932352 123.1281305262438 +0.4 0.4 0.4 +0.0 0.0 0.0 +17.0 2.96336237e-06 0.0003716166862503535 +1.52529846e-05 +0.12705404066891446 0.0018538649394883614 0.6607277579311023 +277.3261168781127 349.65966467861733 180.55214229908566 +0.4 0.4 0.4 +0.0 0.0 0.0 +18.0 2.96336237e-06 0.009886886821922786 +1.52529846e-05 +3.3802812598013072 0.0009489984628827527 6.676039983361881 +59.82012534336036 213.93617863051722 163.23770845915809 +0.4 0.4 0.4 +0.0 0.0 0.0 +19.0 2.96336237e-06 0.0003042929175250516 +1.52529846e-05 +0.10403635291135628 0.0009103080479353925 6.122729019987302 +318.3178593181005 175.8383457329596 150.09818752378183 +0.4 0.4 0.4 +0.0 0.0 0.0 +20.0 2.96336237e-06 0.000414062269914102 +1.52529846e-05 +0.1415659910537166 0.001778924678086685 8.74170905442332 +151.59204615190697 112.80122061317465 351.99863693065214 +0.4 0.4 0.4 +0.0 0.0 0.0 +21.0 2.96336237e-06 0.0005993179173196159 +1.52529846e-05 +0.204904047256471 0.0009022495147953 9.556673591780722 +293.15242050181297 205.54468433705313 66.99160557674251 +0.4 0.4 0.4 +0.0 0.0 0.0 +22.0 2.96336237e-06 0.002357418873323602 +1.52529846e-05 +0.8059907008673469 0.0005274445636380367 10.71837041537424 +292.38024093727984 54.5314890445609 209.0622657387699 +0.4 0.4 0.4 +0.0 0.0 0.0 +23.0 2.96336237e-06 0.0004214539772450991 +1.52529846e-05 +0.14409318188930928 0.0005277374008030665 7.435302831333165 +308.79862632298676 308.7903333476832 269.9580628313294 +0.4 0.4 0.4 +0.0 0.0 0.0 +24.0 2.96336237e-06 0.0006370769225463271 +1.52529846e-05 +0.21781367796788728 0.0005372113643125736 5.052697475502013 +350.4786532330898 328.18629143860676 33.62398940139005 +0.4 0.4 0.4 +0.0 0.0 0.0 +25.0 2.96336237e-06 0.0015893429501222733 +1.52529846e-05 +0.5433890653813334 0.0010833931179439658 6.392318924578698 +140.62795204427934 121.66139860726184 111.15061258998092 +0.4 0.4 0.4 +0.0 0.0 0.0 +26.0 2.96336237e-06 0.0002977220788417684 +1.52529846e-05 +0.10178981330163511 0.001554559170086404 6.762843301253261 +275.72551196143047 304.0824964166165 279.0982565916498 +0.4 0.4 0.4 +0.0 0.0 0.0 +27.0 2.96336237e-06 0.0006434040689664967 +1.52529846e-05 +0.21997690031050524 0.001305716802829907 2.7998391456887615 +75.36228204537746 56.58870706902731 14.357402916294584 +0.4 0.4 0.4 +0.0 0.0 0.0 +28.0 2.96336237e-06 0.00042548420866017075 +1.52529846e-05 +0.14547109952611498 0.0003031612390917364 5.499354660587805 +99.672922712559 349.8198724431721 9.207509473918162 +0.4 0.4 0.4 +0.0 0.0 0.0 +29.0 2.96336237e-06 0.000535554750738145 +1.52529846e-05 +0.18310371304176035 0.001924927935650522 9.765808261360519 +174.90404902276703 179.70781236278643 349.9071587094426 +0.4 0.4 0.4 +0.0 0.0 0.0 +30.0 2.96336237e-06 0.001562483215882271 +1.52529846e-05 +0.5342058454325218 0.000910989382946404 0.42557979839177 +199.2182898728689 348.6064975505299 181.29024903254737 +0.4 0.4 0.4 +0.0 0.0 0.0 +31.0 2.96336237e-06 0.00086782112982034 +1.52529846e-05 +0.29670406416372774 0.0015539346678792127 8.507172918199394 +56.78001502543606 2.1901152768222105 210.0052739519094 +0.4 0.4 0.4 +0.0 0.0 0.0 +32.0 2.96336237e-06 0.0009735172826472634 +1.52529846e-05 +0.3328410940568706 0.0019038946718063178 1.4641789250636663 +3.408328718128681 130.04949056115072 9.016242433085356 +0.4 0.4 0.4 +0.0 0.0 0.0 +33.0 2.96336237e-06 0.0038019527946996806 +1.52529846e-05 +1.2998702234636448 0.0009836202486354657 3.0512558532109577 +138.0591311501441 314.0932368495456 74.27234332051141 +0.4 0.4 0.4 +0.0 0.0 0.0 +34.0 2.96336237e-06 0.0005479571006109701 +1.52529846e-05 +0.187344019581899 0.0008844589852042751 1.1462571354370081 +28.565869118248454 220.9318913181933 212.27191880186984 +0.4 0.4 0.4 +0.0 0.0 0.0 +35.0 2.96336237e-06 0.00041487177744318864 +1.52529846e-05 +0.1418427579652354 0.000837740619082511 1.3240047327876507 +66.96059900785556 122.84289190897105 90.8401190418799 +0.4 0.4 0.4 +0.0 0.0 0.0 +36.0 2.96336237e-06 0.004410491996161498 +1.52529846e-05 +1.5079269854763997 0.0011606180197893023 11.458477170055312 +43.6564442974332 303.7628696474891 239.03035318801133 +0.4 0.4 0.4 +0.0 0.0 0.0 +37.0 2.96336237e-06 0.00029269568494804857 +1.52529846e-05 +0.1000713122821184 0.001992921364867069 1.862015266455362 +289.39207909055943 92.99956112881118 352.49936500999166 +0.4 0.4 0.4 +0.0 0.0 0.0 +38.0 2.96336237e-06 0.0005294652941220678 +1.52529846e-05 +0.18102175575303558 0.0015375005788222443 6.705775265229424 +57.457618895550674 4.8991276747484 325.7412316817131 +0.4 0.4 0.4 +0.0 0.0 0.0 +39.0 2.96336237e-06 0.008838173136496128 +1.52529846e-05 +3.0217308605103526 0.0007151903883037801 4.765943051487868 +217.00603073329984 316.7592986736139 167.08804213361745 +0.4 0.4 0.4 +0.0 0.0 0.0 +40.0 2.96336237e-06 0.0033821686043295175 +1.52529846e-05 +1.1563479340486675 0.00014024853976584234 5.824022890508242 +280.5118240980303 291.52707060581224 328.04622434434833 +0.4 0.4 0.4 +0.0 0.0 0.0 +41.0 2.96336237e-06 0.0018594751888462591 +1.52529846e-05 +0.6357460388830569 0.0016547156427348215 3.710620870063664 +286.0231816539961 14.646380981042592 338.78134855925765 +0.4 0.4 0.4 +0.0 0.0 0.0 +42.0 2.96336237e-06 0.0003928901625901477 +1.52529846e-05 +0.13432734466211702 0.0010140900941583708 1.2375646950643446 +105.27764656680067 32.503934734894735 79.49945640875738 +0.4 0.4 0.4 +0.0 0.0 0.0 +43.0 2.96336237e-06 0.00043047831964606665 +1.52529846e-05 +0.14717856316750708 0.00015736811248780546 4.479442312720945 +131.36322545134732 214.5151978549483 245.40096474843565 +0.4 0.4 0.4 +0.0 0.0 0.0 +44.0 2.96336237e-06 0.0004590595533962268 +1.52529846e-05 +0.15695035590346132 0.001208683669168596 9.003131147077262 +86.7435564939847 129.97504134377874 24.20918867850695 +0.4 0.4 0.4 +0.0 0.0 0.0 +45.0 2.96336237e-06 0.0003619975032214959 +1.52529846e-05 +0.1237652861081818 0.001187847968452721 4.302353822263908 +341.3972947599278 22.014032448755064 311.42016526303485 +0.4 0.4 0.4 +0.0 0.0 0.0 +46.0 2.96336237e-06 0.0003324131500351793 +1.52529846e-05 +0.11365053143765139 0.0015502484288971025 4.00871284588694 +261.88481642634423 339.06854717459015 79.69858695338057 +0.4 0.4 0.4 +0.0 0.0 0.0 +47.0 2.96336237e-06 0.000496379881807675 +1.52529846e-05 +0.16971000502365977 0.0014325900377036435 9.95061299344038 +250.17381730527916 87.95208230539924 102.0004995073183 +0.4 0.4 0.4 +0.0 0.0 0.0 +48.0 2.96336237e-06 0.0005157985955691492 +1.52529846e-05 +0.17634917419790458 0.0008367753488732046 2.8399055244426505 +277.80982627559274 335.24157779229466 355.91319936843087 +0.4 0.4 0.4 +0.0 0.0 0.0 +49.0 2.96336237e-06 0.0014377264318076988 +1.52529846e-05 +0.4915520731343233 0.001668761198248755 2.724730971254485 +1.184941006009358 180.7127233751173 190.77749105751863 +0.4 0.4 0.4 +0.0 0.0 0.0 +50.0 2.96336237e-06 0.0018469701340973388 +1.52529846e-05 +0.6314706180168207 0.00012548469609685502 2.2189534702546796 +271.48546449808333 181.24061098711405 350.0467753082608 +0.4 0.4 0.4 +0.0 0.0 0.0 +51.0 2.96336237e-06 0.0006867805867685211 +1.52529846e-05 +0.23480713280760443 0.0009799971984811224 10.32166937046239 +18.522746145836443 143.8970111474202 146.57428347230623 +0.4 0.4 0.4 +0.0 0.0 0.0 +52.0 2.96336237e-06 0.001144467965552166 +1.52529846e-05 +0.3912883485042818 0.0011562023962381485 4.654414911538165 +139.67234029432404 181.2814027780411 263.9615460438718 +0.4 0.4 0.4 +0.0 0.0 0.0 +53.0 2.96336237e-06 0.0007236927667533216 +1.52529846e-05 +0.24742723785263904 0.0009106011783749763 6.637469401668185 +217.37100372225163 27.820897562259916 216.10094469186052 +0.4 0.4 0.4 +0.0 0.0 0.0 +54.0 2.96336237e-06 0.0010822227367685607 +1.52529846e-05 +0.37000699026088424 0.00155625665305578 2.048697893892725 +237.61972697354346 230.27714637647796 68.89760532960919 +0.4 0.4 0.4 +0.0 0.0 0.0 +55.0 2.96336237e-06 0.0003441896635908343 +1.52529846e-05 +0.11767686741124705 0.001198428505168961 6.072268886189525 +300.23374778378593 22.65361177317996 128.9596052337353 +0.4 0.4 0.4 +0.0 0.0 0.0 +56.0 2.96336237e-06 0.0005513198683284796 +1.52529846e-05 +0.18849373444172296 0.0005538080547316358 4.06122956076789 +122.4297047079465 241.56914921410043 89.48149632078902 +0.4 0.4 0.4 +0.0 0.0 0.0 +57.0 2.96336237e-06 0.001865218727466639 +1.52529846e-05 +0.63770972839555 0.0008225834609268351 10.919992929087485 +85.46384904760785 305.6259559084242 86.59460080872209 +0.4 0.4 0.4 +0.0 0.0 0.0 +58.0 2.96336237e-06 0.0003069363065443012 +1.52529846e-05 +0.1049401154935597 0.0018009357119500263 0.592034643137779 +25.16469002163629 180.19944782836734 335.3887921629321 +0.4 0.4 0.4 +0.0 0.0 0.0 +59.0 2.96336237e-06 0.00875446597270691 +1.52529846e-05 +2.993111765120244 0.0006354800586648284 9.0042412902944 +49.4919597225473 36.11869018733198 261.5725854651475 +0.4 0.4 0.4 +0.0 0.0 0.0 +60.0 2.96336237e-06 0.0003854621874058603 +1.52529846e-05 +0.13178775401382103 4.4529010620616345e-05 2.360287043259888 +326.48003818293364 191.00545232281667 151.6460032361024 +0.4 0.4 0.4 +0.0 0.0 0.0 +61.0 2.96336237e-06 0.0010704942155659338 +1.52529846e-05 +0.36599706265267967 0.0005581318642156938 4.859609391716076 +48.17369372173571 244.08610894914074 127.05543357948909 +0.4 0.4 0.4 +0.0 0.0 0.0 +62.0 2.96336237e-06 0.006953870017056551 +1.52529846e-05 +2.377496266026745 1.0214216129345541e-05 7.587889256607299 +62.36017315943624 288.7093435214597 144.67669650162128 +0.4 0.4 0.4 +0.0 0.0 0.0 +63.0 2.96336237e-06 0.0005502814419966461 +1.52529846e-05 +0.18813870124144422 0.0008200124826780808 4.739467256908708 +105.80134697241932 140.8450054535519 116.52348499601447 +0.4 0.4 0.4 +0.0 0.0 0.0 +64.0 2.96336237e-06 0.00043123792660773683 +1.52529846e-05 +0.14743826930388712 6.654872018888729e-05 0.43233119103254647 +116.87246380412185 249.10658724790036 18.443296542154236 +0.4 0.4 0.4 +0.0 0.0 0.0 +65.0 2.96336237e-06 0.0007838544428803723 +1.52529846e-05 +0.26799623899863934 0.0006335544840110136 3.912013198254297 +1.422457404214392 1.1037941278376344 209.20450761766227 +0.4 0.4 0.4 +0.0 0.0 0.0 +66.0 2.96336237e-06 0.0004617177005654156 +1.52529846e-05 +0.1578591642294431 0.001462342243452415 2.6139086813479384 +339.32713268531063 324.9716853293816 185.46654489619115 +0.4 0.4 0.4 +0.0 0.0 0.0 +67.0 2.96336237e-06 0.000966026120046073 +1.52529846e-05 +0.3302798999205344 0.0012943277404190033 2.07090981231813 +250.52813757471867 172.21424522235066 184.46280287699042 +0.4 0.4 0.4 +0.0 0.0 0.0 +68.0 2.96336237e-06 0.0004166358165940514 +1.52529846e-05 +0.14244587486043392 0.0004004025716564624 11.216416510869244 +214.858418619383 233.3580913046752 139.20899858980107 +0.4 0.4 0.4 +0.0 0.0 0.0 +69.0 2.96336237e-06 0.001752802301460241 +1.52529846e-05 +0.5992750679237953 0.00020092576841079375 3.098104910493994 +12.188464684450674 184.25164373455684 337.8926560055481 +0.4 0.4 0.4 +0.0 0.0 0.0 +70.0 2.96336237e-06 0.0018710623936237275 +1.52529846e-05 +0.6397076510536248 0.0002264822119683341 4.492144164063947 +185.69461488058917 302.74015643751306 68.32329141485204 +0.4 0.4 0.4 +0.0 0.0 0.0 +71.0 2.96336237e-06 0.00032714043349845297 +1.52529846e-05 +0.11184781383620987 0.0006745963590975601 11.223592983244703 +299.7532726735807 81.53622715906313 272.5551284711186 +0.4 0.4 0.4 +0.0 0.0 0.0 +72.0 2.96336237e-06 0.0024734708981726376 +1.52529846e-05 +0.8456683559093109 0.00067595270188909 6.429813857902258 +171.77598150380612 78.85585985653326 91.83884206797602 +0.4 0.4 0.4 +0.0 0.0 0.0 +73.0 2.96336237e-06 0.001860822716695508 +1.52529846e-05 +0.6362067524744957 0.0019150357270504297 6.99716246024162 +39.881166427162526 94.16779161006244 304.496858353172 +0.4 0.4 0.4 +0.0 0.0 0.0 +74.0 2.96336237e-06 0.0005852088275810136 +1.52529846e-05 +0.20008021418391064 0.0009314005907283757 2.500651234196459 +19.02043485849883 157.19403208231407 225.30409522496208 +0.4 0.4 0.4 +0.0 0.0 0.0 +75.0 2.96336237e-06 0.0005426423718263105 +1.52529846e-05 +0.1855269381855715 0.0001464086728528122 8.321861407243103 +50.133767147926584 137.99182539572098 47.9871236095155 +0.4 0.4 0.4 +0.0 0.0 0.0 +76.0 2.96336237e-06 0.00033240500836887306 +1.52529846e-05 +0.11364774783928172 0.0007847641170717963 1.5894841887345945 +5.787407085828862 353.58328754555964 315.9332274421555 +0.4 0.4 0.4 +0.0 0.0 0.0 +77.0 2.96336237e-06 0.0018778603413056314 +1.52529846e-05 +0.6420318381883755 0.0015138855021274002 1.9208238539698494 +192.1660704480532 249.9821485712254 64.44683327824293 +0.4 0.4 0.4 +0.0 0.0 0.0 +78.0 2.96336237e-06 0.001359331142595401 +1.52529846e-05 +0.46474908330000686 0.001707547960728472 2.551257182249693 +234.77502060953586 161.44361253378054 144.21526760560283 +0.4 0.4 0.4 +0.0 0.0 0.0 +79.0 2.96336237e-06 0.0015946183954167843 +1.52529846e-05 +0.5451927159325465 0.0004578749650967072 10.098289348566071 +141.88454324679114 72.86297110120593 190.4352832521177 +0.4 0.4 0.4 +0.0 0.0 0.0 +80.0 2.96336237e-06 0.0008452285833792304 +1.52529846e-05 +0.288979776152588 0.0017867250039365573 1.2090758348980601 +285.4906115439976 114.40545630390098 105.89085636285911 +0.4 0.4 0.4 +0.0 0.0 0.0 +81.0 2.96336237e-06 0.004044561714236451 +1.52529846e-05 +1.3828171003665302 0.0009830800043135217 9.96155439965852 +114.57880137808799 146.18283890529827 98.29337208284545 +0.4 0.4 0.4 +0.0 0.0 0.0 +82.0 2.96336237e-06 0.011421491213150557 +1.52529846e-05 +3.904955462946195 0.0002493766806123511 2.8983381040505707 +110.34349021157364 57.27650400202746 156.207756210604 +0.4 0.4 0.4 +0.0 0.0 0.0 +83.0 2.96336237e-06 0.00443901923055079 +1.52529846e-05 +1.5176803160785328 0.0004705120497389799 11.377571422949671 +215.86224406942333 294.2470414571703 357.6385223802111 +0.4 0.4 0.4 +0.0 0.0 0.0 +84.0 2.96336237e-06 0.0017237509115899283 +1.52529846e-05 +0.5893425309666562 0.0005613530732356125 5.436319252086878 +91.49742720579809 263.2834004462977 323.40619872828955 +0.4 0.4 0.4 +0.0 0.0 0.0 +85.0 2.96336237e-06 0.0003628628664899316 +1.52529846e-05 +0.12406114984081071 0.00019277605226163423 0.43354596978899146 +33.3084551810417 256.88755156979323 178.17894205051425 +0.4 0.4 0.4 +0.0 0.0 0.0 +86.0 2.96336237e-06 0.0013358065929795853 +1.52529846e-05 +0.4567061476779175 0.0011858249024265526 7.255704549265122 +311.80420731067284 263.8411001240191 53.20182707985439 +0.4 0.4 0.4 +0.0 0.0 0.0 +87.0 2.96336237e-06 0.009327851159356281 +1.52529846e-05 +3.189149530696851 0.00044967413146262676 5.7088595655220225 +201.13803507415147 180.31863077187782 84.84802457451434 +0.4 0.4 0.4 +0.0 0.0 0.0 +88.0 2.96336237e-06 0.0010930789467634894 +1.52529846e-05 +0.3737186786678916 0.0010712575445926738 4.737993907013679 +111.24558688225532 262.75985237332554 278.564628048252 +0.4 0.4 0.4 +0.0 0.0 0.0 +89.0 2.96336237e-06 0.0003110136706795079 +1.52529846e-05 +0.10633414759121293 0.0010992579545403803 2.698638929207632 +63.949878138869906 213.00270074997584 155.9172911297509 +0.4 0.4 0.4 +0.0 0.0 0.0 +90.0 2.96336237e-06 0.005316960413365863 +1.52529846e-05 +1.8178443799471666 0.0014415005771152344 6.104347936783227 +196.54132799728893 145.59871447908833 277.8926496760078 +0.4 0.4 0.4 +0.0 0.0 0.0 +91.0 2.96336237e-06 0.005577501405309552 +1.52529846e-05 +1.9069221501634153 0.0005306043429530631 10.734771503339624 +225.7400967557793 353.1675426238301 52.2985523542907 +0.4 0.4 0.4 +0.0 0.0 0.0 +92.0 2.96336237e-06 0.0003464192022134111 +1.52529846e-05 +0.11843913644088624 0.0010195217727061176 8.555266129794546 +199.11263407523387 179.72300188226367 124.33321523618078 +0.4 0.4 0.4 +0.0 0.0 0.0 +93.0 2.96336237e-06 0.0013567124917219324 +1.52529846e-05 +0.4638537785763884 0.0005088412966745147 10.415384386783682 +315.0251998521479 301.9207071748058 338.6673300092794 +0.4 0.4 0.4 +0.0 0.0 0.0 +94.0 2.96336237e-06 0.0010001044219994175 +1.52529846e-05 +0.34193111506373947 0.001729140497532948 9.667089515541221 +89.17173976722862 309.26337399604756 284.4388045990902 +0.4 0.4 0.4 +0.0 0.0 0.0 +95.0 2.96336237e-06 0.0003245938403393872 +1.52529846e-05 +0.11097714531466465 0.0016926325067968522 1.8765632088536646 +181.15091271958 173.58221858572264 88.09695160724537 +0.4 0.4 0.4 +0.0 0.0 0.0 +96.0 2.96336237e-06 0.0005177858788758957 +1.52529846e-05 +0.17702861724612637 0.0002478281018597761 9.159778720650952 +160.3088036954629 38.53182945837775 335.4697169770586 +0.4 0.4 0.4 +0.0 0.0 0.0 +97.0 2.96336237e-06 0.0015151185752123697 +1.52529846e-05 +0.5180120920177788 2.9502982112599547e-06 7.009095414468045 +281.37693305656705 4.849548456356212 359.1004845579101 +0.4 0.4 0.4 +0.0 0.0 0.0 +98.0 2.96336237e-06 0.0003350113563366908 +1.52529846e-05 +0.11453884625588343 0.0011989095169828302 6.5905002472760374 +59.15624414719007 269.39010899221546 123.0990286579837 +0.4 0.4 0.4 +0.0 0.0 0.0 +99.0 2.96336237e-06 0.0012874772911666674 +1.52529846e-05 +0.4401825810426401 0.0002036497411803174 3.1771770594002913 +100.76352640956914 120.26047229947972 194.5615138427278 +0.4 0.4 0.4 +0.0 0.0 0.0 +100.0 2.96336237e-06 0.00040838650279990496 +1.52529846e-05 +0.1396254723083644 0.0004861527967895541 11.131515304468477 +262.1262484543326 33.59992903683474 182.1510046705191 +0.4 0.4 0.4 +0.0 0.0 0.0 +101.0 2.96336237e-06 0.0013243099351560306 +1.52529846e-05 +0.4527754930956137 0.001261914712861443 9.83965028122555 +297.72636258480867 71.8128525718681 56.63573381981481 +0.4 0.4 0.4 +0.0 0.0 0.0 +102.0 2.96336237e-06 0.0019790875030929254 +1.52529846e-05 +0.6766409405413768 0.0009016004840216479 7.593246713308825 +355.5379789655611 289.2039035363469 135.50491239970953 +0.4 0.4 0.4 +0.0 0.0 0.0 +103.0 2.96336237e-06 0.00030453665889241036 +1.52529846e-05 +0.10411968696697571 0.0011992959016376718 1.098941138399255 +165.94115750005759 198.33423950434633 247.96779069456593 +0.4 0.4 0.4 +0.0 0.0 0.0 +104.0 2.96336237e-06 0.0002950967801424541 +1.52529846e-05 +0.10089223571684924 0.0017749395365379967 7.944123402911042 +98.55169231931721 77.0260459225988 187.86561079123032 +0.4 0.4 0.4 +0.0 0.0 0.0 +105.0 2.96336237e-06 0.00038266901491270424 +1.52529846e-05 +0.13083278114884678 0.000397437811020739 1.485636402870702 +332.2718789916222 165.0358244796671 344.2374508160317 +0.4 0.4 0.4 +0.0 0.0 0.0 +106.0 2.96336237e-06 0.00342975196143917 +1.52529846e-05 +1.1726164656110538 0.0014673076508426542 3.761359336182932 +357.0970820407398 74.49778133500645 72.15707611613152 +0.4 0.4 0.4 +0.0 0.0 0.0 +107.0 2.96336237e-07 0.00016816959154585814 +7.07980829e-06 +0.12387226470904195 0.0005531995219881519 10.355978378376493 +167.8468401653107 194.82823573726952 211.2267678896405 +0.4 0.4 0.4 +0.0 0.0 0.0 +108.0 2.96336237e-07 0.00031238764510778253 +7.07980829e-06 +0.23010203397011544 0.0015261790638578562 11.402130907481173 +240.52621289420662 257.13676455604707 174.67141681189824 +0.4 0.4 0.4 +0.0 0.0 0.0 +109.0 2.96336237e-07 0.0009879110922956823 +7.07980829e-06 +0.7276867548345038 0.0003207190041773218 0.08589053062255086 +98.44578407007661 85.55661268681133 37.370841744572076 +0.4 0.4 0.4 +0.0 0.0 0.0 +110.0 2.96336237e-07 0.000785792619431494 +7.07980829e-06 +0.5788080381588274 0.00016604617562400475 9.412958915158283 +351.0710936405306 137.41416246163016 129.97454633579267 +0.4 0.4 0.4 +0.0 0.0 0.0 +111.0 2.96336237e-07 0.0006155430753947794 +7.07980829e-06 +0.45340369845833645 0.0005439008162404882 4.035430293108841 +64.71336831652852 103.21305113594659 66.88095597857762 +0.4 0.4 0.4 +0.0 0.0 0.0 +112.0 2.96336237e-07 0.004403662469145191 +7.07980829e-06 +3.243699637092097 0.0002020826503553822 7.389264551217258 +251.3369840198275 259.11381324975497 268.92906302672765 +0.4 0.4 0.4 +0.0 0.0 0.0 +113.0 2.96336237e-07 0.0008628168581811688 +7.07980829e-06 +0.6355434253575909 0.0005259848429150753 4.7087952689007215 +306.5808360320152 288.3570014006157 118.33807629420642 +0.4 0.4 0.4 +0.0 0.0 0.0 +114.0 2.96336237e-07 0.00017936753664072642 +7.07980829e-06 +0.13212057408672506 0.0008665990131266118 7.120353865956092 +190.6498907794794 67.47847112103364 67.34416211198067 +0.4 0.4 0.4 +0.0 0.0 0.0 +115.0 2.96336237e-07 0.00019489758562106689 +7.07980829e-06 +0.14355987366849599 0.0007000052466704764 11.067266200846223 +302.59326698995415 307.16068571669496 320.29539349711746 +0.4 0.4 0.4 +0.0 0.0 0.0 +116.0 2.96336237e-07 0.0001628468016523569 +7.07980829e-06 +0.11995154377122244 0.0014304974516166369 8.682040333318456 +53.699379689860955 126.10980496487173 244.39176131260652 +0.4 0.4 0.4 +0.0 0.0 0.0 +117.0 2.96336237e-07 0.0031958201254853424 +7.07980829e-06 +2.354013427205437 0.0004309473905377549 6.9308357983711355 +1.4931374316461492 223.11468690258278 182.31725106488204 +0.4 0.4 0.4 +0.0 0.0 0.0 +118.0 2.96336237e-07 0.00022418288944292232 +7.07980829e-06 +0.16513117483988746 0.00022456101212881178 1.0598981407408903 +114.65563902572339 195.5529426878297 153.30104159945483 +0.4 0.4 0.4 +0.0 0.0 0.0 +119.0 2.96336237e-07 0.00014740592815102062 +7.07980829e-06 +0.1085779300749866 0.0014275161808413696 4.182286103891713 +185.19997719955006 69.72766414334342 9.101445563021494 +0.4 0.4 0.4 +0.0 0.0 0.0 +120.0 2.96336237e-07 0.00029585734777689063 +7.07980829e-06 +0.217925960115925 0.0002554032758021398 3.8965563945123276 +3.601488246601578 242.95765486078784 162.17838073574453 +0.4 0.4 0.4 +0.0 0.0 0.0 +121.0 2.96336237e-07 0.0007727191730603037 +7.07980829e-06 +0.5691782507836827 0.0014564975655409615 5.719967231993963 +132.89767002952325 284.20909613831935 321.5205172054022 +0.4 0.4 0.4 +0.0 0.0 0.0 +122.0 2.96336237e-07 0.000213337994549106 +7.07980829e-06 +0.15714291918272705 0.0009494019514339251 9.258388123215918 +303.4191655124367 4.878388841323113 218.06868709619636 +0.4 0.4 0.4 +0.0 0.0 0.0 +123.0 2.96336237e-07 0.00503670254640343 +7.07980829e-06 +3.7099914755912216 0.0010572364648053154 8.010499521080863 +27.338053747350823 357.39960777194 177.32187278760247 +0.4 0.4 0.4 +0.0 0.0 0.0 +124.0 2.96336237e-07 0.0004888292015968271 +7.07980829e-06 +0.3600673564174043 0.0005742657612974902 10.991021500652414 +27.37893830965835 73.88568796383163 163.34375430175132 +0.4 0.4 0.4 +0.0 0.0 0.0 +125.0 2.96336237e-07 0.00014264880902187626 +7.07980829e-06 +0.10507387732323137 9.366386918200216e-05 10.015322656735082 +35.15867604017057 22.715911698400244 239.12458545347477 +0.4 0.4 0.4 +0.0 0.0 0.0 +126.0 2.96336237e-07 0.00030911707147207823 +7.07980829e-06 +0.22769295775468146 0.00114543654379223 7.2920536261670375 +49.219898695122154 122.03136784373147 29.828866312026616 +0.4 0.4 0.4 +0.0 0.0 0.0 +127.0 2.96336237e-07 0.00027012914569216496 +7.07980829e-06 +0.19897478927801643 0.000404593719157789 4.158279605327939 +244.79974749640303 9.508569293962292 221.75078468690472 +0.4 0.4 0.4 +0.0 0.0 0.0 +128.0 2.96336237e-07 0.001140878866283859 +7.07980829e-06 +0.8403614923850751 8.166778751100094e-05 2.3495898654178586 +19.66803963421033 324.7517696127286 86.7158886901674 +0.4 0.4 0.4 +0.0 0.0 0.0 +129.0 2.96336237e-07 0.002093064990976749 +7.07980829e-06 +1.5417335454775085 0.0019781302961249174 9.297247630023088 +80.94579107830113 303.78348612504453 157.20359273800975 +0.4 0.4 0.4 +0.0 0.0 0.0 +130.0 2.96336237e-07 0.00024098630227522674 +7.07980829e-06 +0.17750842320711635 0.0009065473133236789 1.1969282234062077 +208.46027229431306 177.53308148788503 193.90461945177137 +0.4 0.4 0.4 +0.0 0.0 0.0 +131.0 2.96336237e-07 0.00017488753769088187 +7.07980829e-06 +0.12882064565905776 0.0007637828097086882 4.264892111605374 +48.83276293064713 251.82172372717227 93.46042142454374 +0.4 0.4 0.4 +0.0 0.0 0.0 +132.0 2.96336237e-07 0.0001829508529618976 +7.07980829e-06 +0.13476001385578287 0.00012336312947165454 10.908632447200223 +3.041087803171923 147.6307876075636 158.6334537310142 +0.4 0.4 0.4 +0.0 0.0 0.0 +133.0 2.96336237e-07 0.0007185313679488019 +7.07980829e-06 +0.529263982829101 0.0006014399909228298 10.751025293098404 +259.0034496020978 71.26585297294893 169.2533123873972 +0.4 0.4 0.4 +0.0 0.0 0.0 +134.0 2.96336237e-07 0.0003356472216466589 +7.07980829e-06 +0.24723483661034923 0.0014629077708104236 7.287843144309161 +301.2638371683688 127.51989720943986 350.2545635084609 +0.4 0.4 0.4 +0.0 0.0 0.0 +135.0 2.96336237e-07 0.000367851307342242 +7.07980829e-06 +0.2709560872319762 0.001449899070243202 5.3985906685376595 +12.869632117018408 56.440619438168206 202.03548534709378 +0.4 0.4 0.4 +0.0 0.0 0.0 +136.0 2.96336237e-07 0.001020738812493088 +7.07980829e-06 +0.7518673692292205 0.0012878198164970637 9.63415161769334 +252.38383472649286 100.10844071089208 53.564469155545595 +0.4 0.4 0.4 +0.0 0.0 0.0 +137.0 2.96336237e-07 0.0003458138054797775 +7.07980829e-06 +0.25472345421467585 0.0019417161345252878 4.492776211582144 +32.81484412388676 294.309511162598 356.86306577351746 +0.4 0.4 0.4 +0.0 0.0 0.0 +138.0 2.96336237e-07 0.005423859736551002 +7.07980829e-06 +3.9951681089000517 0.0016294274679503591 4.017393924029837 +53.96037334403256 238.11794566096674 189.17852482330372 +0.4 0.4 0.4 +0.0 0.0 0.0 +139.0 2.96336237e-07 0.00022464116667460812 +7.07980829e-06 +0.16546873787986208 0.0003270774573829799 8.732005449682077 +190.0565396265665 252.49069835037028 36.440263763470895 +0.4 0.4 0.4 +0.0 0.0 0.0 +140.0 2.96336237e-07 0.00017892196313582106 +7.07980829e-06 +0.13179236850187698 0.0012997759733666453 4.791504166071849 +339.4645982231863 224.59146298588695 16.435525916126085 +0.4 0.4 0.4 +0.0 0.0 0.0 +141.0 2.96336237e-07 0.003572985279690336 +7.07980829e-06 +2.6318300133744494 0.0016593635605119624 5.196026746192993 +199.06815846896959 264.6777435678608 188.65547946252804 +0.4 0.4 0.4 +0.0 0.0 0.0 +142.0 2.96336237e-07 0.0006012280502272479 +7.07980829e-06 +0.4428593748944328 0.0018396972558659796 9.622671158320054 +63.01326469430487 166.6051238855187 350.0800519903532 +0.4 0.4 0.4 +0.0 0.0 0.0 +143.0 2.96336237e-07 0.0003791479110369971 +7.07980829e-06 +0.2792770676799085 0.001877076266242859 3.48890767723524 +157.21151440385083 97.74472544944372 15.724902633339642 +0.4 0.4 0.4 +0.0 0.0 0.0 +144.0 2.96336237e-07 0.0013135886106589365 +7.07980829e-06 +0.9675779943483723 0.00160002291337724 1.8015622994879954 +222.10756640600732 59.163772721633265 88.68453279850249 +0.4 0.4 0.4 +0.0 0.0 0.0 +145.0 2.96336237e-07 0.00019265066338718887 +7.07980829e-06 +0.14190481021036971 0.0012818420622606925 2.271664559627985 +96.82770203480024 200.08884344226988 269.93379244585316 +0.4 0.4 0.4 +0.0 0.0 0.0 +146.0 2.96336237e-07 0.0003410152371557038 +7.07980829e-06 +0.25118887034490417 0.0008201337497851175 5.3814977411779825 +124.75435580418859 354.6430029121366 34.25689544138114 +0.4 0.4 0.4 +0.0 0.0 0.0 +147.0 2.96336237e-07 0.0004492852049709176 +7.07980829e-06 +0.3309395909713998 0.00013413983096058658 2.079421664422223 +220.65257096631845 282.99697243327626 179.4785782033792 +0.4 0.4 0.4 +0.0 0.0 0.0 +148.0 2.96336237e-07 0.00031646761210079417 +7.07980829e-06 +0.2331073023228347 0.0008321440549849696 8.138223976196302 +357.1499273249601 345.83759313945666 171.95488139485323 +0.4 0.4 0.4 +0.0 0.0 0.0 +149.0 2.96336237e-07 0.0030007519303011394 +7.07980829e-06 +2.21032788401029 0.0005453550198973763 1.193619266234995 +114.70209914368695 359.1252528706196 165.34546146882104 +0.4 0.4 0.4 +0.0 0.0 0.0 +150.0 2.96336237e-07 0.00044661239308489296 +7.07980829e-06 +0.3289708208838966 0.0007315984915959174 5.998345784509511 +184.6392027490737 117.6774753530886 22.70218197599295 +0.4 0.4 0.4 +0.0 0.0 0.0 +151.0 2.96336237e-07 0.0001589193735568456 +7.07980829e-06 +0.11705863424934708 0.001782716686229557 9.975268794775284 +315.3388992722859 202.00883409163833 339.06925812232953 +0.4 0.4 0.4 +0.0 0.0 0.0 +152.0 2.96336237e-07 0.0013828055989717654 +7.07980829e-06 +1.0185626284896245 0.0015720599420678773 5.391948036033658 +9.820726173963978 286.1158705977679 206.034011860938 +0.4 0.4 0.4 +0.0 0.0 0.0 +153.0 2.96336237e-07 0.00038037707112716703 +7.07980829e-06 +0.2801824563572533 0.0013860194854161548 9.848432483325945 +158.82387513055312 205.0823418590616 37.56087631123559 +0.4 0.4 0.4 +0.0 0.0 0.0 +154.0 2.96336237e-07 0.0013628622598251458 +7.07980829e-06 +1.003872537592433 0.0013261028002044145 6.480312337478101 +167.62398308531448 98.09395195195651 75.24672256131272 +0.4 0.4 0.4 +0.0 0.0 0.0 +155.0 2.96336237e-07 0.001364806745053002 +7.07980829e-06 +1.0053048285711628 0.001983518426589933 4.367180046307461 +261.6577560096613 290.33343326668313 332.8968570055506 +0.4 0.4 0.4 +0.0 0.0 0.0 +156.0 2.96336237e-07 0.00022145689694976492 +7.07980829e-06 +0.16312323237773801 0.0006439448200590166 11.067956808253003 +184.72859242658714 344.652192145938 254.2430158874952 +0.4 0.4 0.4 +0.0 0.0 0.0 +157.0 2.96336237e-07 0.0003177625865168285 +7.07980829e-06 +0.23406116926262982 0.00029821637830765893 0.15540232276448177 +273.90933503912856 252.71441052672986 86.66419647342113 +0.4 0.4 0.4 +0.0 0.0 0.0 +158.0 2.96336237e-07 0.0002934051804898172 +7.07980829e-06 +0.21611971492912865 0.0011028044694697762 3.1406010838512883 +268.825042139767 338.59104007622176 57.915432061847646 +0.4 0.4 0.4 +0.0 0.0 0.0 +159.0 2.96336237e-07 0.0006754039114352842 +7.07980829e-06 +0.49749667186424473 0.0010626644786087133 8.88185444878993 +128.26300715096647 34.443743165914995 283.6020679966429 +0.4 0.4 0.4 +0.0 0.0 0.0 +160.0 2.96336237e-07 0.002066712252351126 +7.07980829e-06 +1.52232234643234 0.001793237979184002 7.375200915704474 +347.057516065177 161.152451712529 300.3840302811319 +0.4 0.4 0.4 +0.0 0.0 0.0 +161.0 2.96336237e-07 0.004515216758673851 +7.07980829e-06 +3.3258695606490276 0.0013745148894753647 6.966183990909284 +23.251726492966064 196.06378863722077 338.06632215580805 +0.4 0.4 0.4 +0.0 0.0 0.0 +162.0 2.96336237e-07 0.0010236214108874067 +7.07980829e-06 +0.7539906662418885 0.0004840005158154663 7.427940478904475 +349.557243638905 246.69414694612487 330.93962802388324 +0.4 0.4 0.4 +0.0 0.0 0.0 +163.0 2.96336237e-07 0.0002718807786590962 +7.07980829e-06 +0.20026502695153556 0.0006058354245075206 5.295860408343369 +73.35823722731428 98.10792491734249 317.9966842101337 +0.4 0.4 0.4 +0.0 0.0 0.0 +164.0 2.96336237e-07 0.00018018330144109257 +7.07980829e-06 +0.1327214593737879 0.0008093086192652557 3.6928066678370177 +59.170715481563 138.97885118139544 251.188395768202 +0.4 0.4 0.4 +0.0 0.0 0.0 +165.0 2.96336237e-07 0.00017559504684091343 +7.07980829e-06 +0.12934179077162636 0.0006135474766472398 9.933562821823118 +10.484576903357922 194.67967982707057 20.333846557878356 +0.4 0.4 0.4 +0.0 0.0 0.0 +166.0 2.96336237e-07 0.00039962935024950884 +7.07980829e-06 +0.2943635184254499 0.0012619760406024807 2.779578041982537 +35.52954059395194 305.2214761982664 138.76489378040108 +0.4 0.4 0.4 +0.0 0.0 0.0 +167.0 2.96336237e-07 0.00022115456668983884 +7.07980829e-06 +0.1629005385265913 0.0001929527786699337 9.440631307955767 +127.4007986821642 337.0886437695329 269.41233940608936 +0.4 0.4 0.4 +0.0 0.0 0.0 +168.0 2.96336237e-07 0.0008060441724070385 +7.07980829e-06 +0.5937251566931361 0.0005249423886786294 2.9987821947478523 +48.6375472295649 214.28217837784138 255.52618034001915 +0.4 0.4 0.4 +0.0 0.0 0.0 +169.0 2.96336237e-07 0.00031106873049514165 +7.07980829e-06 +0.22913053288883273 0.0016186032198070468 9.151761940335717 +11.200770827285309 266.3777681156726 49.034665032791885 +0.4 0.4 0.4 +0.0 0.0 0.0 +170.0 2.96336237e-07 0.0003671364476741176 +7.07980829e-06 +0.2704295277914392 0.00012545600265867656 3.134397409063039 +10.298354663953061 133.16092507665462 276.0065731998203 +0.4 0.4 0.4 +0.0 0.0 0.0 +171.0 2.96336237e-07 0.0001406861515402154 +7.07980829e-06 +0.10362820081972879 0.0010692074694615696 10.759956971253267 +43.8394536060831 179.56586036953883 129.3281899786029 +0.4 0.4 0.4 +0.0 0.0 0.0 +172.0 2.96336237e-07 0.00016190577897156664 +7.07980829e-06 +0.1192583946142283 0.00019753162900574672 3.8060033566757454 +349.38327819474637 26.026878084041176 320.1433164558795 +0.4 0.4 0.4 +0.0 0.0 0.0 +173.0 2.96336237e-07 0.00019959834578956432 +7.07980829e-06 +0.14702241289793241 0.0009524778563671583 8.147159648286227 +314.40136019421766 221.39624878001882 155.89907353446114 +0.4 0.4 0.4 +0.0 0.0 0.0 +174.0 2.96336237e-07 0.00026054361645258187 +7.07980829e-06 +0.1919141714550962 0.0011892772120079787 6.863317164196909 +114.29995318209117 163.44259320800703 20.060149144011508 +0.4 0.4 0.4 +0.0 0.0 0.0 +175.0 2.96336237e-07 0.00014110396260167847 +7.07980829e-06 +0.10393595682917241 0.0019650009001170015 8.380209652009132 +27.694704254845995 124.84538034739687 0.9605955234993264 +0.4 0.4 0.4 +0.0 0.0 0.0 +176.0 2.96336237e-07 0.000335299116311714 +7.07980829e-06 +0.24697842523537622 0.00013153259079534292 9.342039055239226 +98.7649591870879 183.74431768897168 325.6204743384124 +0.4 0.4 0.4 +0.0 0.0 0.0 +177.0 2.96336237e-07 0.0009920857025102555 +7.07980829e-06 +0.7307617365645729 0.0017633866996118002 9.110512873524705 +226.63496885023062 241.9899351563555 284.7615263965227 +0.4 0.4 0.4 +0.0 0.0 0.0 +178.0 2.96336237e-07 0.0005050245818596466 +7.07980829e-06 +0.3719967332597837 0.0006100482118329518 3.0520895784014277 +37.530361626110185 202.00026377977647 135.978768482857 +0.4 0.4 0.4 +0.0 0.0 0.0 +179.0 2.96336237e-07 0.00021298758224292248 +7.07980829e-06 +0.15688480851271908 0.0006791788186175694 8.326300133053458 +24.834781106245998 71.16192911147928 183.39434898702336 +0.4 0.4 0.4 +0.0 0.0 0.0 +180.0 2.96336237e-07 0.0001546801787549805 +7.07980829e-06 +0.11393608007161017 0.0016976011178171653 1.9413029702389735 +333.9359764465807 329.27703780599694 298.5147658284802 +0.4 0.4 0.4 +0.0 0.0 0.0 +181.0 2.96336237e-07 0.001414987985585469 +7.07980829e-06 +1.042267895755463 0.001616466643041654 10.645313273891006 +329.61906607910646 202.88772573773534 117.97158715648169 +0.4 0.4 0.4 +0.0 0.0 0.0 +182.0 2.96336237e-07 0.00042896379618307366 +7.07980829e-06 +0.3159710172507339 0.000766433922706978 8.17912136606349 +13.739394195734159 34.350772076221816 352.3560733672413 +0.4 0.4 0.4 +0.0 0.0 0.0 +183.0 2.96336237e-07 0.00019906284169194215 +7.07980829e-06 +0.14662796521732815 0.0012326717671009941 0.7877533807498188 +74.61864594498222 328.98883992061695 161.9126770172985 +0.4 0.4 0.4 +0.0 0.0 0.0 +184.0 2.96336237e-07 0.0003817964110505486 +7.07980829e-06 +0.2812279298526996 0.0006617861350581386 5.156218707648213 +61.38509954988284 30.762104505928384 290.25836261238675 +0.4 0.4 0.4 +0.0 0.0 0.0 +185.0 2.96336237e-07 0.0006641055159158564 +7.07980829e-06 +0.48917437157377647 0.0007007716015580458 7.78402706330698 +109.68696794203515 200.37796049973736 300.38920394549854 +0.4 0.4 0.4 +0.0 0.0 0.0 +186.0 2.96336237e-07 0.00036563238786947765 +7.07980829e-06 +0.26932165036516986 0.0017465208479135463 4.539557413499532 +316.6242898617949 323.76084431082694 165.39345302687377 +0.4 0.4 0.4 +0.0 0.0 0.0 +187.0 2.96336237e-07 0.0010726745256709551 +7.07980829e-06 +0.790122765769607 0.00041571389225238895 8.48743965069622 +312.8252679132003 63.779768711678884 346.1600707719443 +0.4 0.4 0.4 +0.0 0.0 0.0 +188.0 2.96336237e-07 0.002760564552000707 +7.07980829e-06 +2.033407941283969 0.0012487716784506683 4.780479160068423 +119.95278344844063 192.49227229271023 312.8861177607798 +0.4 0.4 0.4 +0.0 0.0 0.0 +189.0 2.96336237e-07 0.00014918339096463875 +7.07980829e-06 +0.10988719378987731 0.0018685801956184883 9.871355330700402 +16.62388996911967 341.4312426028597 117.11558241918884 +0.4 0.4 0.4 +0.0 0.0 0.0 +190.0 2.96336237e-07 0.0001694186633171762 +7.07980829e-06 +0.12479232015827643 0.001494790158159074 6.170794640494448 +287.2665655167668 196.7638664776334 108.39673013661518 +0.4 0.4 0.4 +0.0 0.0 0.0 +191.0 2.96336237e-07 0.00021199568746620945 +7.07980829e-06 +0.15615418741044323 2.78913477291886e-05 10.692986130530839 +200.68567455035873 82.4386461946673 294.62391664458 +0.4 0.4 0.4 +0.0 0.0 0.0 +192.0 2.96336237e-07 0.00014016614488350753 +7.07980829e-06 +0.10324516841988725 0.0004637618628390578 0.7308051275018799 +42.30233194875857 310.1699033238308 52.740299428167255 +0.4 0.4 0.4 +0.0 0.0 0.0 +193.0 2.96336237e-07 0.0012229160482499482 +7.07980829e-06 +0.9007893701427262 0.00022289967307811764 2.700684154462068 +152.30439809554642 286.5828940111849 236.45852634540913 +0.4 0.4 0.4 +0.0 0.0 0.0 +194.0 2.96336237e-07 0.0007667428750310092 +7.07980829e-06 +0.5647761614127097 0.0018924303727522655 9.159135124003821 +211.70900212994155 346.3426486608832 78.23424628533033 +0.4 0.4 0.4 +0.0 0.0 0.0 +195.0 2.96336237e-07 0.00032907751915612477 +7.07980829e-06 +0.2423956506523743 0.0012369454673971248 9.788750352316649 +334.9339658731037 143.94705891738602 218.96160352808548 +0.4 0.4 0.4 +0.0 0.0 0.0 +196.0 2.96336237e-07 0.0035665013066683814 +7.07980829e-06 +2.627053975000575 0.000316185566059322 10.18193359257925 +190.764389273938 312.49027742470116 193.61040983155738 +0.4 0.4 0.4 +0.0 0.0 0.0 +197.0 2.96336237e-07 0.0020067073773769673 +7.07980829e-06 +1.4781232751953437 0.0006941622875320177 10.98511563930743 +190.41758145328998 148.6655764055237 309.18433423478973 +0.4 0.4 0.4 +0.0 0.0 0.0 +198.0 2.96336237e-07 0.0016980237611734642 +7.07980829e-06 +1.2507495968375788 0.001614108985697043 2.1464434538508557 +322.37009572544537 55.104142869009216 85.39669528097619 +0.4 0.4 0.4 +0.0 0.0 0.0 +199.0 2.96336237e-07 0.0002435955289572822 +7.07980829e-06 +0.17943035698405208 0.0008730361704048029 4.3454735664214414 +305.60595571513664 160.92719052876444 77.14881713031818 +0.4 0.4 0.4 +0.0 0.0 0.0 +200.0 2.96336237e-07 0.00016010149885709995 +7.07980829e-06 +0.11792937750778232 0.0010256005854385702 6.358956336477252 +99.14079090569145 14.581675963536666 236.57160174756234 +0.4 0.4 0.4 +0.0 0.0 0.0 +201.0 2.96336237e-07 0.0008787982558057802 +7.07980829e-06 +0.6473151844418513 0.0015377994661774882 9.32745353877487 +228.24666762955778 323.9446178720141 119.24764249841333 +0.4 0.4 0.4 +0.0 0.0 0.0 +202.0 2.96336237e-07 0.0017954751469194494 +7.07980829e-06 +1.3225314436056246 0.000691805367143881 10.532213204900485 +211.87639711279724 61.735729223558934 82.11482242324249 +0.4 0.4 0.4 +0.0 0.0 0.0 +203.0 2.96336237e-07 0.0012991885817706806 +7.07980829e-06 +0.9569710577799532 0.0007249951304479727 2.000271567863135 +288.99784275305177 214.0678946094761 254.58478817829277 +0.4 0.4 0.4 +0.0 0.0 0.0 +204.0 2.96336237e-07 0.0003399181905856912 +7.07980829e-06 +0.2503807953423453 0.0013759788133305114 3.316892456213196 +96.23975353122707 357.4722317667782 127.2736160439848 +0.4 0.4 0.4 +0.0 0.0 0.0 +205.0 2.96336237e-07 0.00024793880705204326 +7.07980829e-06 +0.18262957801392843 0.0017157779266407896 2.2009158458663625 +11.807095777018043 339.8227906851545 39.16400100090238 +0.4 0.4 0.4 +0.0 0.0 0.0 +206.0 2.96336237e-07 0.00014772181136383643 +7.07980829e-06 +0.10881060691385727 0.0006751379178441995 8.205815716422652 +167.78369402264536 217.23434074847805 96.10947124818023 +0.4 0.4 0.4 +0.0 0.0 0.0 +207.0 2.96336237e-07 0.0001726437639612437 +7.07980829e-06 +0.12716790136188713 0.0007840743508914886 7.104423669752906 +20.288608511524213 215.52017237393778 52.26007028792386 +0.4 0.4 0.4 +0.0 0.0 0.0 +208.0 2.96336237e-07 0.0018620952900203491 +7.07980829e-06 +1.371603264053607 0.0009670280064962706 0.26975802667935367 +186.73900145950276 11.807046949130749 210.80209167405837 +0.4 0.4 0.4 +0.0 0.0 0.0 +209.0 2.96336237e-07 0.0001500772754354715 +7.07980829e-06 +0.11054562134965469 0.0004212731576929747 5.107089289406828 +191.41091549672987 168.2169823184333 214.77055756537882 +0.4 0.4 0.4 +0.0 0.0 0.0 +210.0 2.96336237e-07 0.002084404211654546 +7.07980829e-06 +1.535354090434984 0.0003044619843016671 9.817178189524565 +24.02751479490522 345.76928856220974 77.25094364044551 +0.4 0.4 0.4 +0.0 0.0 0.0 +211.0 2.96336237e-07 0.0037098487958060786 +7.07980829e-06 +2.732642494046239 0.0017533570248068017 10.541784042600442 +183.96265326310302 42.56564437980813 318.5382099562932 +0.4 0.4 0.4 +0.0 0.0 0.0 +212.0 2.96336237e-07 0.00038115621754547513 +7.07980829e-06 +0.2807563688612237 0.00042096780769310235 8.178730051971389 +13.660589419038033 61.78654310928999 359.09913531464383 +0.4 0.4 0.4 +0.0 0.0 0.0 +213.0 2.96336237e-07 0.00014785801751927767 +7.07980829e-06 +0.10891093518834927 0.001649245523746131 1.5883493999405343 +162.60580357685225 292.9008584369058 264.2190177580755 +0.4 0.4 0.4 +0.0 0.0 0.0 +214.0 2.96336237e-07 0.0004740021377059934 +7.07980829e-06 +0.34914586956439975 0.0008049997580228192 7.147446272658471 +196.43371055896776 244.68364848264363 125.53445762406609 +0.4 0.4 0.4 +0.0 0.0 0.0 +215.0 2.96336237e-07 0.0001697778484955723 +7.07980829e-06 +0.1250568928499792 0.0011272406254360131 0.8303248616962521 +219.21382519185622 294.0883983025753 125.65741218814509 +0.4 0.4 0.4 +0.0 0.0 0.0 +216.0 2.96336237e-07 0.0022980225363745223 +7.07980829e-06 +1.6927034983937899 0.00042475279959607796 6.839865737755455 +256.1546018631811 52.72632430493219 240.04551169076447 +0.4 0.4 0.4 +0.0 0.0 0.0 +217.0 2.96336237e-07 0.00035289505479375573 +7.07980829e-06 +0.25993944113257617 0.0010708877295575513 5.692463515502207 +148.48804231261136 191.641133752022 41.885954320221956 +0.4 0.4 0.4 +0.0 0.0 0.0 +218.0 2.96336237e-07 0.00025301275516371996 +7.07980829e-06 +0.18636700425033675 0.0012416834402048642 10.26542747504295 +329.24538975442806 257.9445474945486 185.52836484359017 +0.4 0.4 0.4 +0.0 0.0 0.0 +219.0 2.96336237e-07 0.0014762812657693556 +7.07980829e-06 +1.0874159951117812 0.0017109019247707644 8.236341398611993 +7.455178471365682 73.51925788845762 265.1313439020597 +0.4 0.4 0.4 +0.0 0.0 0.0 +220.0 2.96336237e-07 0.0003149117198965777 +7.07980829e-06 +0.231961245599929 3.4109124152629e-05 2.1542164870395832 +285.29015445980576 282.9646433174194 174.9398683992383 +0.4 0.4 0.4 +0.0 0.0 0.0 +221.0 2.96336237e-07 0.00019506210462675862 +7.07980829e-06 +0.14368105694328057 0.0008306655083517787 8.114916758603387 +99.24628499032778 189.16677308527224 143.18476513265207 +0.4 0.4 0.4 +0.0 0.0 0.0 +222.0 2.96336237e-07 0.00013615561035436202 +7.07980829e-06 +0.1002910434187357 0.001378237544990353 0.8497756036880315 +58.85638691575179 169.1319154934693 228.48288782623976 +0.4 0.4 0.4 +0.0 0.0 0.0 +223.0 2.96336237e-07 0.00038439934667768895 +7.07980829e-06 +0.2831452296930682 0.0012684965519581396 3.023547839769216 +49.435923162329786 103.29742604797761 219.8817809109895 +0.4 0.4 0.4 +0.0 0.0 0.0 +224.0 2.96336237e-07 0.00018149758177013166 +7.07980829e-06 +0.13368954688190451 0.001655295759468958 10.408320781356021 +161.15193021387574 5.411709863050264 110.29299367176876 +0.4 0.4 0.4 +0.0 0.0 0.0 +225.0 2.96336237e-07 0.0001915431981668877 +7.07980829e-06 +0.14108906092023843 0.0015564326687895838 10.714020711437744 +146.0653453808813 175.78773632718568 160.5520207087941 +0.4 0.4 0.4 +0.0 0.0 0.0 +226.0 2.96336237e-07 0.0012367194492356964 +7.07980829e-06 +0.910956835765222 0.0008941512327692245 7.343267100816448 +34.79194078075773 235.37851553601487 0.5637235052828101 +0.4 0.4 0.4 +0.0 0.0 0.0 +227.0 2.96336237e-07 0.0006033454038874619 +7.07980829e-06 +0.4444189992633197 0.00027434415554570955 1.3946438470777796 +177.87891221055915 205.47947156499617 226.64594351417597 +0.4 0.4 0.4 +0.0 0.0 0.0 +228.0 2.96336237e-07 0.0002295040567714756 +7.07980829e-06 +0.1690507006104184 0.0015495487122857464 0.506258533467444 +118.3395525479282 111.12727377366951 20.62163702517497 +0.4 0.4 0.4 +0.0 0.0 0.0 +229.0 2.96336237e-07 0.000680188629669569 +7.07980829e-06 +0.5010210538778258 0.0018125122300620218 3.516518540160953 +286.18394034264486 46.65261004443694 180.6934797702036 +0.4 0.4 0.4 +0.0 0.0 0.0 +230.0 2.96336237e-07 0.0008309321372508847 +7.07980829e-06 +0.612057416056242 0.0013479381556343616 8.781970742963736 +4.6502582809159225 235.79852002674681 254.58469355674114 +0.4 0.4 0.4 +0.0 0.0 0.0 +231.0 2.96336237e-07 0.00028875338348513253 +7.07980829e-06 +0.21269324154211386 0.0017014082467900972 10.805769273150426 +210.4351975769534 16.69354930850494 307.16209275059845 +0.4 0.4 0.4 +0.0 0.0 0.0 +232.0 2.96336237e-07 0.004789166988213282 +7.07980829e-06 +3.5276589271966508 0.00016917592282757524 0.0919403618348367 +5.541775361397037 316.5417521480938 19.724330375795756 +0.4 0.4 0.4 +0.0 0.0 0.0 +233.0 2.96336237e-07 0.00015602774231945101 +7.07980829e-06 +0.1149286837226979 0.0005694907494871749 4.2061005176099675 +298.3884159608733 160.7896563736114 54.12728271096299 +0.4 0.4 0.4 +0.0 0.0 0.0 +234.0 2.96336237e-07 0.00033361659151024965 +7.07980829e-06 +0.24573909203803246 0.0008538548336281108 5.267761887787151 +69.88816687432661 130.85673441359256 330.0663861704082 +0.4 0.4 0.4 +0.0 0.0 0.0 +235.0 2.96336237e-07 0.0007255629284671912 +7.07980829e-06 +0.5344433694104976 0.00029151450416525646 5.790283282713547 +209.80207261084993 200.85446052779668 22.50654792931252 +0.4 0.4 0.4 +0.0 0.0 0.0 +236.0 2.96336237e-07 0.00014050915870131856 +7.07980829e-06 +0.10349782942743427 0.0007924621844157655 11.173923475547578 +11.154342452970775 214.64853940043557 285.1138704849443 +0.4 0.4 0.4 +0.0 0.0 0.0 +237.0 2.96336237e-07 0.00037797350969624765 +7.07980829e-06 +0.2784120138231516 0.00035560782977214273 3.5867703877553323 +347.79807714965494 142.65591536366088 120.30910012971961 +0.4 0.4 0.4 +0.0 0.0 0.0 +238.0 2.96336237e-07 0.0002818717377284597 +7.07980829e-06 +0.20762428087586896 0.0019345055907977475 4.699858656823634 +11.910525225358313 225.4147272411337 227.5842364756943 +0.4 0.4 0.4 +0.0 0.0 0.0 +239.0 2.96336237e-07 0.00017962394541836337 +7.07980829e-06 +0.13230944257171812 0.0005909912378243259 6.874912174730618 +4.410205837761819 12.178632782698875 168.85550551610942 +0.4 0.4 0.4 +0.0 0.0 0.0 +240.0 2.96336237e-07 0.00014763491417794765 +7.07980829e-06 +0.10874659919929998 0.0001487868707847223 8.592895875798417 +341.2285492296072 117.82083180908305 107.39008168704405 +0.4 0.4 0.4 +0.0 0.0 0.0 +241.0 2.96336237e-07 0.00021413852875499322 +7.07980829e-06 +0.15773258574580046 0.0013968876742388708 2.5666121192866873 +7.892521759158565 273.23494428618056 114.36072842368112 +0.4 0.4 0.4 +0.0 0.0 0.0 +242.0 2.96336237e-07 0.000302920880213668 +7.07980829e-06 +0.2231288969355152 0.001490662786820567 8.823469116533468 +77.74603760548976 256.1711765244276 190.7090045158862 +0.4 0.4 0.4 +0.0 0.0 0.0 +243.0 2.96336237e-07 0.002176341257532404 +7.07980829e-06 +1.603074122212809 1.1249616815154717e-05 7.221093398248473 +333.49253555301203 218.11923385527152 275.41388027309995 +0.4 0.4 0.4 +0.0 0.0 0.0 +244.0 2.96336237e-07 0.00024317880758719938 +7.07980829e-06 +0.17912340363184193 0.000336998420125595 7.724078976290007 +161.37544585797195 241.90498095337946 69.3977624533481 +0.4 0.4 0.4 +0.0 0.0 0.0 +245.0 2.96336237e-07 0.00038691804961616397 +7.07980829e-06 +0.2850004844644586 9.420942546640277e-05 7.669912374939788 +259.7007514363307 35.13983765302773 10.91017038567923 +0.4 0.4 0.4 +0.0 0.0 0.0 +246.0 2.96336237e-07 0.00047054547278308634 +7.07980829e-06 +0.3465997201184457 0.0009193224760291305 6.7204038763804865 +161.4453141138866 180.73760235721628 141.2837397885981 +0.4 0.4 0.4 +0.0 0.0 0.0 +247.0 2.96336237e-07 0.0001594873671616805 +7.07980829e-06 +0.11747701341959062 0.0014297941505331205 9.641397929251935 +46.77020617086623 74.02294078385285 275.92894966924365 +0.4 0.4 0.4 +0.0 0.0 0.0 +248.0 2.96336237e-07 0.0010118558762477353 +7.07980829e-06 +0.7453242753210819 0.0019755797078711747 6.782190434597142 +78.2813100583065 150.3875582241861 12.61430541775426 +0.4 0.4 0.4 +0.0 0.0 0.0 +249.0 2.96336237e-07 0.0006915933047027637 +7.07980829e-06 +0.5094216387377067 0.0011040779288285353 9.711103505274918 +341.190827080925 137.43932028377347 142.79616533586562 +0.4 0.4 0.4 +0.0 0.0 0.0 +250.0 2.96336237e-07 0.0004130865867584533 +7.07980829e-06 +0.30427600229227064 0.0006650742528771187 2.3314517503433927 +348.7061105973839 33.495458937222274 142.47561828090258 +0.4 0.4 0.4 +0.0 0.0 0.0 +251.0 2.96336237e-07 0.00014720505103971152 +7.07980829e-06 +0.10842996573448166 0.0017727333230638425 5.354009837425878 +23.03294932605134 357.9059136353031 67.57407478038287 +0.4 0.4 0.4 +0.0 0.0 0.0 +252.0 2.96336237e-07 0.000984600319821135 +7.07980829e-06 +0.725248068502518 0.0016807788727423241 2.745464915439347 +207.77125122588643 259.65622404449584 55.63308259585522 +0.4 0.4 0.4 +0.0 0.0 0.0 +253.0 2.96336237e-07 0.00040567014772123635 +7.07980829e-06 +0.29881311752712514 0.0005181305464388276 2.907943351307752 +174.15791217888955 248.3289466312303 65.98173066158998 +0.4 0.4 0.4 +0.0 0.0 0.0 +254.0 2.96336237e-07 0.00023718335075471962 +7.07980829e-06 +0.17470720205236642 0.0004048198416281155 2.942839656148467 +107.79982635849616 232.18812022144456 210.21701646839182 +0.4 0.4 0.4 +0.0 0.0 0.0 +255.0 2.96336237e-07 0.004283665517049441 +7.07980829e-06 +3.155310921405471 0.0008690751471973748 2.9468228217980252 +299.4906587956731 350.15633095889694 75.52026808606432 +0.4 0.4 0.4 +0.0 0.0 0.0 +256.0 2.96336237e-07 0.000817134870139535 +7.07980829e-06 +0.6018944685925062 0.0005609106650894346 3.367785048520667 +233.83059625294527 309.822511579689 97.28410767563408 +0.4 0.4 0.4 +0.0 0.0 0.0 +257.0 2.96336237e-07 0.00015528474379070223 +7.07980829e-06 +0.11438139744112007 0.0011797166186013966 10.837249867290915 +169.6006931282434 208.11075987000896 233.87472157884088 +0.4 0.4 0.4 +0.0 0.0 0.0 +258.0 2.96336237e-07 0.0008434582955810151 +7.07980829e-06 +0.6212840758001004 0.0008612378969723491 5.01164468826643 +198.09164937559453 354.2664945635985 289.3258487055918 +0.4 0.4 0.4 +0.0 0.0 0.0 +259.0 2.96336237e-07 0.0002147178424179851 +7.07980829e-06 +0.15815930317284568 0.00048635766663721026 7.555015607446637 +120.8362654476432 47.0664105312282 66.63879584602019 +0.4 0.4 0.4 +0.0 0.0 0.0 +260.0 2.96336237e-07 0.0004047082180033782 +7.07980829e-06 +0.298104568427691 0.0010505831612709206 3.5709675793137308 +224.89284013971303 178.55081080406057 334.3940893078972 +0.4 0.4 0.4 +0.0 0.0 0.0 +261.0 2.96336237e-07 0.00016261985975975462 +7.07980829e-06 +0.11978438033854957 0.0006309182599047637 2.0017352253487477 +31.612113473826636 341.20755547153817 89.2680098475455 +0.4 0.4 0.4 +0.0 0.0 0.0 +262.0 2.96336237e-07 0.00017805495279096215 +7.07980829e-06 +0.13115373619055 0.0018221731090361927 4.067869231849736 +119.11962705630604 333.0495355236492 149.44948219551455 +0.4 0.4 0.4 +0.0 0.0 0.0 +263.0 2.96336237e-07 0.0002406453365312257 +7.07980829e-06 +0.17725727079300055 0.0009377733636088368 10.395809749714058 +270.9505765961 298.9615482937117 288.5573654373031 +0.4 0.4 0.4 +0.0 0.0 0.0 +264.0 2.96336237e-07 0.0005833010762516816 +7.07980829e-06 +0.42965452111961755 0.0015665462291608002 3.6943684564611403 +164.81313967514203 8.491196746822613 354.10643082270167 +0.4 0.4 0.4 +0.0 0.0 0.0 +265.0 2.96336237e-07 0.0004650446566381699 +7.07980829e-06 +0.3425478665856205 0.0011592257075281403 2.8377121499569835 +155.09023565207045 114.58340895178573 132.77196435560555 +0.4 0.4 0.4 +0.0 0.0 0.0 +266.0 2.96336237e-07 0.0002830521676258744 +7.07980829e-06 +0.20849377531525543 0.0009276865729839454 5.071334838260017 +78.03911987700765 127.5115304739284 162.63541069544019 +0.4 0.4 0.4 +0.0 0.0 0.0 +267.0 2.96336237e-07 0.0005591199386490625 +7.07980829e-06 +0.41184290458096057 0.001963941440472467 1.4928876090999643 +197.58335766687242 234.72955990999395 115.31060076949608 +0.4 0.4 0.4 +0.0 0.0 0.0 +268.0 2.96336237e-07 0.00045605011976187506 +7.07980829e-06 +0.335922568619241 0.00019918741957323128 3.782891073799093 +250.13842381649116 326.9879175546122 293.37785999714566 +0.4 0.4 0.4 +0.0 0.0 0.0 +269.0 2.96336237e-07 0.004221674486263204 +7.07980829e-06 +3.109648864998293 9.395893190170921e-05 6.959994520926894 +302.0166560623343 69.93562142002673 204.67515235084042 +0.4 0.4 0.4 +0.0 0.0 0.0 +270.0 2.96336237e-07 0.0028958481002412154 +7.07980829e-06 +2.133056631302087 0.0017127018283247966 1.2994943768340637 +27.3948787970591 164.80826908236628 91.06657370776342 +0.4 0.4 0.4 +0.0 0.0 0.0 +271.0 2.96336237e-07 0.0027918986640844586 +7.07980829e-06 +2.05648837687748 0.000909040281369389 6.316269060791007 +353.38275478294435 210.45802798856064 276.50218980188725 +0.4 0.4 0.4 +0.0 0.0 0.0 +272.0 2.96336237e-07 0.0006193301949800568 +7.07980829e-06 +0.4561932579467078 0.000531155583006727 0.9557363211994999 +35.14124101438557 62.789057177241475 204.8361250748343 +0.4 0.4 0.4 +0.0 0.0 0.0 +273.0 2.96336237e-07 0.0013633319545579942 +7.07980829e-06 +1.0042185106648833 0.0006243122502952267 1.6622398169826273 +88.79831610924471 31.759105856310057 349.87779027468093 +0.4 0.4 0.4 +0.0 0.0 0.0 +274.0 2.96336237e-07 0.00022448066128420477 +7.07980829e-06 +0.1653505109993392 0.000984910938394988 8.64712660160123 +96.32856540828398 33.39814592089414 190.49175636262328 +0.4 0.4 0.4 +0.0 0.0 0.0 +275.0 2.96336237e-07 0.00023385189275707766 +7.07980829e-06 +0.17225327894321488 0.0004507722173204072 2.0623087142726786 +90.86674638551156 35.708335043797334 6.1504009310031424 +0.4 0.4 0.4 +0.0 0.0 0.0 +276.0 2.96336237e-07 0.0007236741577720057 +7.07980829e-06 +0.5330521172740204 0.0010252529693844888 2.425520360206466 +145.93090085987384 124.27193077457585 301.5935684271459 +0.4 0.4 0.4 +0.0 0.0 0.0 +277.0 2.96336237e-07 0.004877712984588716 +7.07980829e-06 +3.592881141278991 5.830717080473449e-05 3.526339375615492 +351.36151318117334 338.22374970629886 148.99798219413535 +0.4 0.4 0.4 +0.0 0.0 0.0 +278.0 2.96336237e-07 0.0015932248899463701 +7.07980829e-06 +1.1735556558966482 0.0004713092568289672 2.4420849935412474 +124.5320238473141 142.44497982130548 348.8685090358063 +0.4 0.4 0.4 +0.0 0.0 0.0 +279.0 2.96336237e-07 0.00015438530451958966 +7.07980829e-06 +0.11371887826356362 0.001684106342533987 4.260438131801079 +118.06852705903006 63.0824313989246 107.32296690173546 +0.4 0.4 0.4 +0.0 0.0 0.0 +280.0 2.96336237e-07 0.0004676223281528159 +7.07980829e-06 +0.3444465570995242 0.00017458176162088424 8.771994098916668 +289.96532402399885 263.43716217781775 88.67844086604237 +0.4 0.4 0.4 +0.0 0.0 0.0 +281.0 2.96336237e-07 0.00030689082150139386 +7.07980829e-06 +0.2260531213065926 0.0001389546880067447 8.317900590662783 +129.3093251303657 126.75033720369892 39.68818985068336 +0.4 0.4 0.4 +0.0 0.0 0.0 +282.0 2.96336237e-07 0.00016337000737253707 +7.07980829e-06 +0.12033693257351236 0.0007847664923863612 5.325462720215728 +201.2719119400836 166.04592478545598 170.03779621767723 +0.4 0.4 0.4 +0.0 0.0 0.0 +283.0 2.96336237e-07 0.00035652831014559557 +7.07980829e-06 +0.26261566555913024 0.0014982151714328952 10.962654304958802 +228.23841788964108 174.9792769157084 123.96613498843118 +0.4 0.4 0.4 +0.0 0.0 0.0 +284.0 2.96336237e-07 0.00029163914318341435 +7.07980829e-06 +0.21481886714390272 0.00021469580921765585 4.1290254174892365 +66.5908804077143 125.64321519201816 166.41069852906648 +0.4 0.4 0.4 +0.0 0.0 0.0 +285.0 2.96336237e-07 0.002472326230018165 +7.07980829e-06 +1.821094089584001 2.107474130330652e-06 3.7825140479516866 +192.21174039003108 264.52980539740355 347.8641428782904 +0.4 0.4 0.4 +0.0 0.0 0.0 +286.0 2.96336237e-07 0.0001933634368959666 +7.07980829e-06 +0.14242983300399903 0.0009824500665722429 8.409381527228243 +318.1547354292355 345.2908820248665 284.6050377786674 +0.4 0.4 0.4 +0.0 0.0 0.0 +287.0 2.96336237e-07 0.0006119929742245199 +7.07980829e-06 +0.45078872468178216 0.0013030763010814608 11.232159219303057 +285.95416096202626 200.28696560521092 320.0404299094864 +0.4 0.4 0.4 +0.0 0.0 0.0 +288.0 2.96336237e-07 0.00042826795884411866 +7.07980829e-06 +0.31545846949312123 0.0009007784181869242 6.879509621691664 +89.2096671407246 12.235493134100752 266.0479848260117 +0.4 0.4 0.4 +0.0 0.0 0.0 +289.0 2.96336237e-07 0.00017410820540282124 +7.07980829e-06 +0.12824659624503737 0.00014342148426163992 1.0703625616233259 +46.538023129070226 107.4930627998194 300.56956795686585 +0.4 0.4 0.4 +0.0 0.0 0.0 +290.0 2.96336237e-07 0.00015114966336430465 +7.07980829e-06 +0.11133553301067563 2.766395057426916e-05 5.761202682615806 +319.4801151987132 141.96380152116765 189.0460950989753 +0.4 0.4 0.4 +0.0 0.0 0.0 +291.0 2.96336237e-07 0.00021734923207295198 +7.07980829e-06 +0.16009756200368674 0.0013191852741356376 5.615188330135927 +151.0271919560084 69.3646412761158 192.88078617531676 +0.4 0.4 0.4 +0.0 0.0 0.0 +292.0 2.96336237e-07 0.0011944697111478653 +7.07980829e-06 +0.8798360445912934 0.0006850212851320823 6.814346772167117 +78.44571808758236 103.92010109199413 242.81886155862486 +0.4 0.4 0.4 +0.0 0.0 0.0 +293.0 2.96336237e-07 0.00015278398644398032 +7.07980829e-06 +0.11253936123719822 5.183610896181789e-05 4.053109511534237 +236.27362376794815 258.6362917075659 310.0353562648458 +0.4 0.4 0.4 +0.0 0.0 0.0 +294.0 2.96336237e-07 0.00034896123301151255 +7.07980829e-06 +0.2570418220764263 6.0769476677815276e-05 5.713343744289857 +299.9253937144354 189.19621914314894 101.59353256474273 +0.4 0.4 0.4 +0.0 0.0 0.0 +295.0 2.96336237e-07 0.00025478314682010465 +7.07980829e-06 +0.18767105941204867 0.0018449348227060555 1.2835484399431265 +290.4682644970513 305.78831832496115 215.73128560603016 +0.4 0.4 0.4 +0.0 0.0 0.0 +296.0 2.96336237e-07 0.0006250814006742552 +7.07980829e-06 +0.46042954625304894 0.000596769292531275 2.5129034189216504 +145.43775163382543 274.05520730065695 223.66497443462396 +0.4 0.4 0.4 +0.0 0.0 0.0 +297.0 2.96336237e-07 0.0002282198327816247 +7.07980829e-06 +0.16810475234144653 0.0017247737094638039 5.107324795408434 +124.79937809811587 226.08434523725555 305.7830635332392 +0.4 0.4 0.4 +0.0 0.0 0.0 +298.0 2.96336237e-07 0.0009477301107050991 +7.07980829e-06 +0.6980897917800946 0.0001517768392752887 5.574014468921428 +249.01242380384846 257.47120895883273 139.97390722263367 +0.4 0.4 0.4 +0.0 0.0 0.0 +299.0 2.96336237e-07 0.0031407431101470235 +7.07980829e-06 +2.3134441746987386 0.0015616804960815864 6.117489231243545 +256.7324568865978 220.6785657320005 123.0674530910947 +0.4 0.4 0.4 +0.0 0.0 0.0 +300.0 2.96336237e-07 0.0004204361522249776 +7.07980829e-06 +0.30968962856439886 0.00195927594219296 6.306085925673815 +312.00891473474553 73.99762506858666 216.5279233163698 +0.4 0.4 0.4 +0.0 0.0 0.0 +301.0 2.96336237e-07 0.0009942157315783549 +7.07980829e-06 +0.7323306975291335 0.00021855504650573836 8.368350519218684 +237.27561034714356 272.3964709349121 286.9144825005913 +0.4 0.4 0.4 +0.0 0.0 0.0 +302.0 2.96336237e-07 0.00018683411530759256 +7.07980829e-06 +0.1376203912688386 0.0010315807571819164 5.2755550278547485 +44.12983056103787 223.37841130869015 128.86001971717735 +0.4 0.4 0.4 +0.0 0.0 0.0 +303.0 2.96336237e-07 0.00025133191919356077 +7.07980829e-06 +0.18512891503150636 0.0009331929516210252 6.536562647357183 +291.76734381546066 70.66568841443045 126.26321054382733 +0.4 0.4 0.4 +0.0 0.0 0.0 +304.0 2.96336237e-07 0.00019500768911756772 +7.07980829e-06 +0.14364097495047312 0.00039209244628038144 9.848623859718383 +245.89557619047113 117.87493794887448 338.12840463525515 +0.4 0.4 0.4 +0.0 0.0 0.0 +305.0 2.96336237e-07 0.0001625383298355381 +7.07980829e-06 +0.11972432610245717 0.0011745754487988123 4.387084176328411 +106.0618658508988 80.5444882525448 84.64174187568527 +0.4 0.4 0.4 +0.0 0.0 0.0 +306.0 2.96336237e-07 0.00023586028260954013 +7.07980829e-06 +0.1737326415149872 0.001671319316829762 5.501673418983377 +348.95321631475684 200.94418904994996 330.4440114985243 +0.4 0.4 0.4 +0.0 0.0 0.0 +307.0 2.96336237e-07 0.0003365884691163788 +7.07980829e-06 +0.2479281513449222 0.0014193080584742374 11.094828295285224 +31.371307509920015 240.58423164611085 165.28222019489715 +0.4 0.4 0.4 +0.0 0.0 0.0 +308.0 2.96336237e-07 0.00023571497841569307 +7.07980829e-06 +0.17362561170419857 0.0005768421886276322 5.284489567307279 +98.85486595751904 13.212732070412448 230.02980695324322 +0.4 0.4 0.4 +0.0 0.0 0.0 +309.0 2.96336237e-07 0.0001801084671471839 +7.07980829e-06 +0.13266633708099312 0.0009177789908346947 5.324485126624002 +148.3631841889071 267.83910430205896 59.843201690272075 +0.4 0.4 0.4 +0.0 0.0 0.0 +310.0 2.96336237e-07 0.004922591836343339 +7.07980829e-06 +3.625938514810581 0.0008037249965389214 1.863877400137279 +347.99161053606065 214.8189761659566 173.46818152084595 +0.4 0.4 0.4 +0.0 0.0 0.0 +311.0 2.96336237e-07 0.001606405521600504 +7.07980829e-06 +1.183264395022937 0.00025039709043080626 11.41113625586248 +176.51998858123935 140.35911454474774 147.38759836239387 +0.4 0.4 0.4 +0.0 0.0 0.0 +312.0 2.96336237e-07 0.00022953580689701405 +7.07980829e-06 +0.1690740874779198 0.00017995036684982085 2.5624472975864214 +93.69670004832261 5.072707264965885 194.42820284682057 +0.4 0.4 0.4 +0.0 0.0 0.0 +313.0 2.96336237e-07 0.0004560010949555674 +7.07980829e-06 +0.3358864573714915 0.0017281502204120312 5.808809764521844 +316.45299102623267 192.88920395505212 19.031504976546625 +0.4 0.4 0.4 +0.0 0.0 0.0 +314.0 2.96336237e-07 0.00020589517649069033 +7.07980829e-06 +0.15166060385902067 0.0014460419115430905 8.580387771814594 +2.027448348404554 61.39523640794668 310.8259013460574 +0.4 0.4 0.4 +0.0 0.0 0.0 +315.0 2.96336237e-07 0.0017103724786315462 +7.07980829e-06 +1.2598455551718035 0.001040160606823539 8.866568986800155 +201.9511825476413 25.06154164547849 167.52608336931982 +0.4 0.4 0.4 +0.0 0.0 0.0 +316.0 2.96336237e-07 0.00036481350926962107 +7.07980829e-06 +0.26871847148036926 6.7596178272466e-05 10.264244616216553 +96.8748429708464 157.16467008976218 200.80623110746035 +0.4 0.4 0.4 +0.0 0.0 0.0 +317.0 2.96336237e-07 0.0005677970507966551 +7.07980829e-06 +0.41823439024121756 0.0016492348678305217 3.985448712266753 +141.35422552657585 324.0916041102787 22.20933645695202 +0.4 0.4 0.4 +0.0 0.0 0.0 +318.0 2.96336237e-07 0.00017869361209387716 +7.07980829e-06 +0.13162416710200292 0.0011439008076636614 3.2407253494579034 +190.01218772119614 44.20946646779479 2.004533467122998 +0.4 0.4 0.4 +0.0 0.0 0.0 +319.0 2.96336237e-07 0.00015228572269447034 +7.07980829e-06 +0.11217234447449538 0.0009168186738675861 2.8638522507923314 +93.22615350753611 33.85431327929882 239.03387997148917 +0.4 0.4 0.4 +0.0 0.0 0.0 +320.0 2.96336237e-07 0.0002228749297341271 +7.07980829e-06 +0.1641677430459031 0.0014250007569514766 8.995787444712223 +6.360744237560372 246.00127166536984 117.23024488217823 +0.4 0.4 0.4 +0.0 0.0 0.0 +321.0 2.96336237e-07 0.00016657687495983734 +7.07980829e-06 +0.12269908346541473 0.0002722641518232161 2.5361455280784493 +294.747187083813 253.91062671694937 21.543427585789953 +0.4 0.4 0.4 +0.0 0.0 0.0 +322.0 2.96336237e-07 0.0003119834065271981 +7.07980829e-06 +0.22980427533254327 0.0002561538067768338 7.283682147132967 +351.50642528622967 353.05050444668393 37.915945343913684 +0.4 0.4 0.4 +0.0 0.0 0.0 +323.0 2.96336237e-07 0.0003636327820351304 +7.07980829e-06 +0.2678487580250677 0.00030140848800125055 7.394557096887053 +269.6118768787643 66.8992901686776 271.65173432137044 +0.4 0.4 0.4 +0.0 0.0 0.0 +324.0 2.96336237e-07 0.00015848034184009056 +7.07980829e-06 +0.11673524728899572 0.0019276867342928185 8.11274732856384 +303.66016858902975 82.72816698207556 313.66739660789585 +0.4 0.4 0.4 +0.0 0.0 0.0 +325.0 2.96336237e-07 0.00027836204038314506 +7.07980829e-06 +0.2050390682068539 0.0007631400667376777 10.463799400784199 +28.670451511576793 91.11735677392642 254.85925697503265 +0.4 0.4 0.4 +0.0 0.0 0.0 +326.0 2.96336237e-07 0.00026836168207477904 +7.07980829e-06 +0.19767289088447285 0.0016214214428952305 8.268846910383754 +222.17426119100602 196.7982012673432 282.25263254954075 +0.4 0.4 0.4 +0.0 0.0 0.0 +327.0 2.96336237e-07 0.0003589316062721598 +7.07980829e-06 +0.26438591267234157 7.76907304503399e-06 5.047413034763888 +173.2690936517081 28.344089675206597 291.5460190814182 +0.4 0.4 0.4 +0.0 0.0 0.0 +328.0 2.96336237e-07 0.00014822536550915556 +7.07980829e-06 +0.10918152053629596 0.0010554718431630332 5.294051241865372 +280.9870442314642 243.25347719092647 275.98182391301384 +0.4 0.4 0.4 +0.0 0.0 0.0 +329.0 2.96336237e-07 0.0006505027268334232 +7.07980829e-06 +0.47915467494187414 0.0006517479027116303 7.292113973652021 +5.488359739149935 185.63065345666627 225.7335982038429 +0.4 0.4 0.4 +0.0 0.0 0.0 +330.0 2.96336237e-07 0.0007169610725077651 +7.07980829e-06 +0.528107316806692 0.0012695547737103553 2.286365445938052 +264.56567615972165 94.99106094678771 139.68443412635122 +0.4 0.4 0.4 +0.0 0.0 0.0 +331.0 2.96336237e-07 0.00014290244996673993 +7.07980829e-06 +0.1052607070465743 0.0011677205977731777 0.8176499307396407 +273.11035397112664 153.26705683902466 305.48002207509745 +0.4 0.4 0.4 +0.0 0.0 0.0 +332.0 2.96336237e-07 0.0027107575201529735 +7.07980829e-06 +1.9967205129760297 0.0002174696896302886 4.548246093501465 +31.607783203459267 55.72124572358127 62.8218389960747 +0.4 0.4 0.4 +0.0 0.0 0.0 +333.0 2.96336237e-07 0.00021889530790215867 +7.07980829e-06 +0.16123638806977442 0.001444705141822196 9.609484812903395 +31.464950213756925 349.80740372868604 234.47574007627532 +0.4 0.4 0.4 +0.0 0.0 0.0 +334.0 2.96336237e-07 0.0011772666033075512 +7.07980829e-06 +0.8671643843427015 0.0017419436543695752 7.697186841151445 +327.70006686631075 245.93846763390636 237.56052707500405 +0.4 0.4 0.4 +0.0 0.0 0.0 +335.0 2.96336237e-07 0.00014321614347240008 +7.07980829e-06 +0.10549177096611795 0.0013551666337921638 5.4536982339343565 +10.92195396327973 165.29999635983054 27.633395340256648 +0.4 0.4 0.4 +0.0 0.0 0.0 +336.0 2.96336237e-07 0.00029889604796622495 +7.07980829e-06 +0.2201642403588903 0.0013608821634157593 8.38274482236048 +46.71017873691516 210.61788270484556 166.69795474367763 +0.4 0.4 0.4 +0.0 0.0 0.0 +337.0 2.96336237e-07 0.00018415554172083735 +7.07980829e-06 +0.13564737716247616 0.0003179485550799256 8.136125699171172 +152.81408877925242 209.80742536198633 130.40397707101712 +0.4 0.4 0.4 +0.0 0.0 0.0 +338.0 2.96336237e-07 0.003543703727191604 +7.07980829e-06 +2.6102614753951827 0.0017753297686231334 8.620159985630853 +94.67477537826696 273.860740239627 146.26748120005496 +0.4 0.4 0.4 +0.0 0.0 0.0 +339.0 2.96336237e-07 0.0008243326122071452 +7.07980829e-06 +0.6071962630638525 0.0007381654194420349 1.990384843054466 +310.9770511114949 94.0747249242464 252.80656511785244 +0.4 0.4 0.4 +0.0 0.0 0.0 +340.0 2.96336237e-07 0.005008804403226113 +7.07980829e-06 +3.6894419449371676 0.0005994918878210641 9.959226775698019 +322.9608823547301 50.78959164496634 295.6703866824421 +0.4 0.4 0.4 +0.0 0.0 0.0 +341.0 2.96336237e-07 0.0001503613961053045 +7.07980829e-06 +0.11075490217444199 0.0015504100076306501 1.6675619240329276 +159.33523472053665 29.682478042780815 205.71814487652136 +0.4 0.4 0.4 +0.0 0.0 0.0 +342.0 2.96336237e-07 0.00013732826243335652 +7.07980829e-06 +0.10115480878443323 0.0015317213079232641 10.458820129694365 +118.01043838028095 102.64908626926156 336.57718276865387 +0.4 0.4 0.4 +0.0 0.0 0.0 +343.0 2.96336237e-07 0.001101513135339633 +7.07980829e-06 +0.8113650358963385 0.0006358631971043168 8.635102019265844 +290.0593797645032 124.67027381809105 357.8987600908822 +0.4 0.4 0.4 +0.0 0.0 0.0 +344.0 2.96336237e-07 0.0002496437530839839 +7.07980829e-06 +0.18388542649546316 0.0017114415848874511 6.152672513669821 +227.02003856771577 207.80971255570097 306.4507853203065 +0.4 0.4 0.4 +0.0 0.0 0.0 +345.0 2.96336237e-07 0.000786402919866365 +7.07980829e-06 +0.5792575801736796 0.001996656772695265 2.4412597448951736 +226.3625546241884 331.64674246663526 36.1478697838596 +0.4 0.4 0.4 +0.0 0.0 0.0 +346.0 2.96336237e-07 0.0003388719406716841 +7.07980829e-06 +0.24961013671667837 0.0017937088367951564 9.811900318991631 +64.85290027540626 118.22661839313105 62.03376070937007 +0.4 0.4 0.4 +0.0 0.0 0.0 +347.0 2.96336237e-07 0.000426447460349051 +7.07980829e-06 +0.314117506067983 0.00015224476174463102 8.252536131358141 +260.43549278392493 32.70366712445605 190.55803156205212 +0.4 0.4 0.4 +0.0 0.0 0.0 +348.0 2.96336237e-07 0.0006444195357616657 +7.07980829e-06 +0.47467384908156435 0.0010876343271783054 6.514014864428936 +310.5233342327956 343.9574292034065 199.19111614640337 +0.4 0.4 0.4 +0.0 0.0 0.0 +349.0 2.96336237e-07 0.00054226433855886 +7.07980829e-06 +0.39942721553152877 0.0017981619784875422 10.227345064991548 +37.37523364182289 202.41739212372974 269.0861108570201 +0.4 0.4 0.4 +0.0 0.0 0.0 +350.0 2.96336237e-07 0.00047954498951542 +7.07980829e-06 +0.35322868620365555 0.0016492335376706317 0.49337664309798085 +283.7971089038009 95.5833514086352 71.56770760930895 +0.4 0.4 0.4 +0.0 0.0 0.0 +351.0 2.96336237e-07 0.00028009747225710857 +7.07980829e-06 +0.20631737229560168 0.0010316139909898982 1.2686189308547466 +86.55109564714702 214.38460242228032 104.33146341509861 +0.4 0.4 0.4 +0.0 0.0 0.0 +352.0 2.96336237e-07 0.00025623404455162827 +7.07980829e-06 +0.18873977811566775 0.0006452132368777103 0.6050579146050421 +157.43781147686246 2.5850389604214 159.43765898916868 +0.4 0.4 0.4 +0.0 0.0 0.0 +353.0 2.96336237e-07 0.0004058236215884254 +7.07980829e-06 +0.29892616504854447 1.3191328167835538e-05 1.9784258448731697 +189.94678909317844 33.557846185365456 293.99534737705994 +0.4 0.4 0.4 +0.0 0.0 0.0 +354.0 2.96336237e-07 0.00019280291180421137 +7.07980829e-06 +0.14201695507580933 0.001647108671401029 3.5640591075394887 +135.654713397442 47.85588862949121 320.6811997480477 +0.4 0.4 0.4 +0.0 0.0 0.0 +355.0 2.96336237e-07 0.004773934278971867 +7.07980829e-06 +3.516438645491477 0.0010761216903622214 3.221566589364664 +37.186866202379946 309.6540427909378 16.17630653640015 +0.4 0.4 0.4 +0.0 0.0 0.0 +356.0 2.96336237e-07 0.0011590159350373256 +7.07980829e-06 +0.8537211001537772 0.0017587197664019573 7.585968540023092 +278.7934262814676 99.53015751946636 352.88619866914877 +0.4 0.4 0.4 +0.0 0.0 0.0 +357.0 2.96336237e-07 0.0017832929898511443 +7.07980829e-06 +1.3135581722120224 3.17502276408299e-05 11.030328628464801 +98.53532708337863 56.9975562596022 33.71040048985311 +0.4 0.4 0.4 +0.0 0.0 0.0 +358.0 2.96336237e-07 0.00039697861826237725 +7.07980829e-06 +0.29241101220024956 0.0008458555454990808 10.58777976211051 +239.12203417314623 133.0689566770032 115.70577915610316 +0.4 0.4 0.4 +0.0 0.0 0.0 +359.0 2.96336237e-07 0.00029557716051867804 +7.07980829e-06 +0.21771957660807217 0.0010392643981527155 8.03170940349945 +288.9256328269013 67.78208540280802 342.17504476494315 +0.4 0.4 0.4 +0.0 0.0 0.0 +360.0 2.96336237e-07 0.0014833560516777343 +7.07980829e-06 +1.0926272211410928 0.0006092108167580567 2.2096414041046692 +311.3662182072021 291.7919905103377 304.97098144688493 +0.4 0.4 0.4 +0.0 0.0 0.0 +361.0 2.96336237e-07 0.000993445612055267 +7.07980829e-06 +0.7317634341580055 0.0014006123392814103 2.1919067330947506 +120.01996203370337 128.74716731340266 5.827785850564331 +0.4 0.4 0.4 +0.0 0.0 0.0 +362.0 2.96336237e-07 0.0005463426586983324 +7.07980829e-06 +0.40243127082619357 0.0011965762956253783 10.898821474898226 +281.91463076199005 29.575440192365903 214.20508522622518 +0.4 0.4 0.4 +0.0 0.0 0.0 +363.0 2.96336237e-07 0.0003881791589043536 +7.07980829e-06 +0.2859294066443704 2.900497725161311e-05 9.127483813809095 +249.54173239568317 90.63367169371816 266.5485228009919 +0.4 0.4 0.4 +0.0 0.0 0.0 +364.0 2.96336237e-07 0.0013968631201863857 +7.07980829e-06 +1.028917276871913 0.001603944913241954 3.0960547395036917 +11.620252615054142 44.62761359844495 198.88658277447743 +0.4 0.4 0.4 +0.0 0.0 0.0 +365.0 2.96336237e-07 0.0002630194417645936 +7.07980829e-06 +0.1937378429381731 0.000747167760463149 7.1657186191455775 +228.24188046622197 277.72286896705293 91.13011664684869 +0.4 0.4 0.4 +0.0 0.0 0.0 +366.0 2.96336237e-07 0.0002749926323670147 +7.07980829e-06 +0.2025571914427479 0.00133596025404816 4.503723068347708 +73.89042601654641 43.869574691929124 124.89440067010928 +0.4 0.4 0.4 +0.0 0.0 0.0 +367.0 2.96336237e-07 0.00034802520380482264 +7.07980829e-06 +0.25635235106920873 0.0003990604853807404 4.721069759511323 +289.9667438551355 89.90143863984306 308.2229017081904 +0.4 0.4 0.4 +0.0 0.0 0.0 +368.0 2.96336237e-07 0.00036443935286634496 +7.07980829e-06 +0.26844287111407733 0.0008485077286316471 6.764038727594673 +253.3611698186918 150.74732229379677 328.9769827782936 +0.4 0.4 0.4 +0.0 0.0 0.0 +369.0 2.96336237e-07 0.0008469945776758163 +7.07980829e-06 +0.6238888705653514 0.0001333427676397332 4.1474959515146415 +267.71710049416396 150.87718065006715 119.97373879602044 +0.4 0.4 0.4 +0.0 0.0 0.0 +370.0 2.96336237e-07 0.0002799708966091264 +7.07980829e-06 +0.20622413776949955 0.0005428172476920105 6.168519622305448 +96.33658992043293 129.60600999117443 297.12149196391545 +0.4 0.4 0.4 +0.0 0.0 0.0 +371.0 2.96336237e-07 0.0005421356999893545 +7.07980829e-06 +0.3993324614752984 0.0009919338011116921 4.745092400309358 +295.19339993138095 291.6130480807459 203.70027399593255 +0.4 0.4 0.4 +0.0 0.0 0.0 +372.0 2.96336237e-07 0.0006294503606226284 +7.07980829e-06 +0.46364768431387976 0.00041641717513561904 1.934529957130357 +350.8676271559399 177.52429758946244 62.301164228997536 +0.4 0.4 0.4 +0.0 0.0 0.0 +373.0 2.96336237e-07 0.0002809800292278342 +7.07980829e-06 +0.20696745611690134 0.0008475677763260917 0.46568355676114265 +14.900153214321696 190.0523015188567 319.6113375878809 +0.4 0.4 0.4 +0.0 0.0 0.0 +374.0 2.96336237e-07 0.0018166312625594561 +7.07980829e-06 +1.3381148551646602 0.0010624355759753792 6.933338705363457 +257.43788022187965 295.18471400586776 295.1190325206985 +0.4 0.4 0.4 +0.0 0.0 0.0 +375.0 2.96336237e-07 0.00016392755580813283 +7.07980829e-06 +0.12074761792255417 0.00023695768245123492 3.1581589183258623 +339.1487157944927 83.23577626586008 345.89695591969786 +0.4 0.4 0.4 +0.0 0.0 0.0 +376.0 2.96336237e-07 0.00029571793986295827 +7.07980829e-06 +0.2178232734538571 0.0002948999251832698 0.362705770588533 +213.82508431076934 242.2651748717798 83.27447892616063 +0.4 0.4 0.4 +0.0 0.0 0.0 +377.0 2.96336237e-07 0.00020811537789423138 +7.07980829e-06 +0.15329598498493502 0.0018051616135915112 3.106896506398628 +178.3112067859215 63.88472884866744 1.3270972588545527 +0.4 0.4 0.4 +0.0 0.0 0.0 +378.0 2.96336237e-07 0.0001559380129035177 +7.07980829e-06 +0.11486258981201816 0.0017844542058524017 6.130540321897014 +288.19324195157367 344.28272044710786 210.06820283808818 +0.4 0.4 0.4 +0.0 0.0 0.0 +379.0 2.96336237e-07 0.0012589113538808599 +7.07980829e-06 +0.9273032005350614 0.0007950274671429485 0.7443682928155341 +206.7513766110101 220.9240832277189 190.998462308951 +0.4 0.4 0.4 +0.0 0.0 0.0 +380.0 2.96336237e-07 0.0021256371126569047 +7.07980829e-06 +1.5657258882180163 1.9263879203954986e-05 5.128316556491018 +239.8438686641544 174.44658062206983 247.6331818960163 +0.4 0.4 0.4 +0.0 0.0 0.0 +381.0 2.96336237e-07 0.000977305599748203 +7.07980829e-06 +0.7198748408723243 0.0010168747207552594 6.687759662707231 +346.7619173455041 149.905703053694 34.41280092344825 +0.4 0.4 0.4 +0.0 0.0 0.0 +382.0 2.96336237e-07 0.0008650682748260707 +7.07980829e-06 +0.6372017993599538 0.0006067227825775598 3.8110465174551575 +283.42141873127645 296.75010671228034 236.75772996243154 +0.4 0.4 0.4 +0.0 0.0 0.0 +383.0 2.96336237e-07 0.0004166997753732313 +7.07980829e-06 +0.3069374457340919 0.0012556587656461812 7.028090843879932 +157.07945315433642 109.64383603363065 170.14986474214172 +0.4 0.4 0.4 +0.0 0.0 0.0 +384.0 2.96336237e-07 0.0012888125307341934 +7.07980829e-06 +0.9493281484477046 0.0011246500645733703 1.0945156676865877 +40.94588274454956 313.0368841398567 91.0294850281977 +0.4 0.4 0.4 +0.0 0.0 0.0 +385.0 2.96336237e-07 0.0004170975464251864 +7.07980829e-06 +0.3072304404460873 0.0005324736339296211 8.850334116104705 +277.3659221161124 9.697380193441212 64.32137229646291 +0.4 0.4 0.4 +0.0 0.0 0.0 +386.0 2.96336237e-07 0.0006424192463846406 +7.07980829e-06 +0.4732004532498454 0.0009767299868219384 4.560220727189972 +141.0032517869996 198.6227331147623 95.44242731540014 +0.4 0.4 0.4 +0.0 0.0 0.0 +387.0 2.96336237e-07 0.00029749720154096163 +7.07980829e-06 +0.21913386219667502 3.8428933346828534e-05 0.4566407574340587 +163.58034265489712 30.086812659347586 336.68557772655623 +0.4 0.4 0.4 +0.0 0.0 0.0 +388.0 2.96336237e-07 0.00037333395328135164 +7.07980829e-06 +0.2749945567485662 0.000790150080386718 1.8156192287506017 +43.99805042163406 347.86839033496585 214.04308309953382 +0.4 0.4 0.4 +0.0 0.0 0.0 +389.0 2.96336237e-07 0.004147011336074886 +7.07980829e-06 +3.054652635185745 0.0014026881427117554 10.790384698103471 +279.67254068824695 225.0250301683067 97.97655801733977 +0.4 0.4 0.4 +0.0 0.0 0.0 +390.0 2.96336237e-07 0.00033661360847250473 +7.07980829e-06 +0.24794666877692653 0.0007621219491829389 9.595112059936255 +106.89981329122423 248.35330221528335 176.9399293058729 +0.4 0.4 0.4 +0.0 0.0 0.0 +391.0 2.96336237e-07 0.0005946763114846585 +7.07980829e-06 +0.4380334208776199 0.000334786490861461 7.27688899569563 +346.55013797445457 314.40373096079713 182.33788039799467 +0.4 0.4 0.4 +0.0 0.0 0.0 +392.0 2.96336237e-07 0.0021357003856353578 +7.07980829e-06 +1.573138407941514 0.0002122062437119598 5.7992283642476155 +199.8708344637552 185.03678107510362 197.54499438742337 +0.4 0.4 0.4 +0.0 0.0 0.0 +393.0 2.96336237e-07 0.0008881507473098536 +7.07980829e-06 +0.6542041486870058 0.001082481934100155 2.7982249640470442 +119.9027947481912 170.5019847492018 291.70022422658934 +0.4 0.4 0.4 +0.0 0.0 0.0 +394.0 2.96336237e-07 0.0007244470355779672 +7.07980829e-06 +0.5336214123724252 9.630470210241686e-05 5.950031157607894 +126.92938559220951 32.644368454661134 350.5658369759275 +0.4 0.4 0.4 +0.0 0.0 0.0 +395.0 2.96336237e-07 0.0006653067544630493 +7.07980829e-06 +0.4900591934843774 0.0019737014910964673 0.8943016802588735 +272.8273238811659 55.953417510337296 50.223313961578874 +0.4 0.4 0.4 +0.0 0.0 0.0 +396.0 2.96336237e-07 0.0007161433044466716 +7.07980829e-06 +0.5275049559351265 0.0005776380861563799 2.1625712495313376 +323.42339680121006 295.9412274627063 312.5321427083825 +0.4 0.4 0.4 +0.0 0.0 0.0 +397.0 2.96336237e-07 0.00019237855607078444 +7.07980829e-06 +0.14170437831767688 0.001235027961422897 8.862824259166967 +187.64716698671413 265.10784930422506 313.1562873499811 +0.4 0.4 0.4 +0.0 0.0 0.0 +398.0 2.96336237e-07 0.0002694653837463263 +7.07980829e-06 +0.19848586797718606 0.0001843567188453995 7.817351154193235 +10.9747308973224 84.04994685907948 167.64074726542177 +0.4 0.4 0.4 +0.0 0.0 0.0 +399.0 2.96336237e-07 0.0005559092662315294 +7.07980829e-06 +0.40947795108406015 0.0015731368864208269 7.301942896898631 +233.93068498816038 96.85691573796926 228.57420704043378 +0.4 0.4 0.4 +0.0 0.0 0.0 +400.0 2.96336237e-07 0.0005648674168838437 +7.07980829e-06 +0.4160764472729765 0.0008511691534231788 11.02211477235316 +288.5365659185221 243.18693500084063 147.5758032364719 +0.4 0.4 0.4 +0.0 0.0 0.0 +401.0 2.96336237e-07 0.0003563429630533414 +7.07980829e-06 +0.2624791404961643 0.0006910428723700232 1.6815715845642314 +345.6424607017423 5.893839931298697 6.255682574253842 +0.4 0.4 0.4 +0.0 0.0 0.0 +402.0 2.96336237e-07 0.00016104257317250704 +7.07980829e-06 +0.11862256469838804 0.0010496344692817025 4.916447327909487 +302.6523312870475 77.2459630669138 352.07919775440547 +0.4 0.4 0.4 +0.0 0.0 0.0 +403.0 2.96336237e-07 0.0005296002136298966 +7.07980829e-06 +0.39009893078582225 0.00035129161820691924 6.677196188784857 +287.91001686761524 41.031404630978 88.87616473052356 +0.4 0.4 0.4 +0.0 0.0 0.0 +404.0 2.96336237e-07 0.000680609470172004 +7.07980829e-06 +0.501331041347253 0.001425845881592816 3.2094418329058256 +221.46587179584483 243.95606935186083 110.57964936968159 +0.4 0.4 0.4 +0.0 0.0 0.0 +405.0 2.96336237e-07 0.00036071081000078566 +7.07980829e-06 +0.26569645873014985 0.0005837248865675421 4.246745909239596 +68.65912803601522 184.39073957774 328.5406871742207 +0.4 0.4 0.4 +0.0 0.0 0.0 +406.0 2.96336237e-07 0.0012218677490596584 +7.07980829e-06 +0.9000172020378971 0.001653325602643437 0.4316924490710903 +243.42814614167057 36.062607930561725 200.57349259723486 +0.4 0.4 0.4 +0.0 0.0 0.0 +407.0 2.96336237e-07 0.00022469531896527966 +7.07980829e-06 +0.16550862598818775 0.0006231907034263553 10.828347490927952 +215.92068451736867 172.60595676103023 39.75954075681499 +0.4 0.4 0.4 +0.0 0.0 0.0 +408.0 2.96336237e-07 0.00030192373602011584 +7.07980829e-06 +0.22239440915825795 0.000472568455432349 2.060980747075354 +229.523789056114 199.61364747622306 342.653951976515 +0.4 0.4 0.4 +0.0 0.0 0.0 +409.0 2.96336237e-07 0.0007191942353202133 +7.07980829e-06 +0.5297522451941558 0.0019716610411549614 2.285858920711909 +84.27479164545005 103.59991024063056 23.961613159888778 +0.4 0.4 0.4 +0.0 0.0 0.0 +410.0 2.96336237e-07 0.00025605536434479824 +7.07980829e-06 +0.18860816382276702 0.001783512692209141 9.452149479129856 +260.4969228407456 340.862082769848 299.53745307977607 +0.4 0.4 0.4 +0.0 0.0 0.0 +411.0 2.96336237e-07 0.0014137481967857802 +7.07980829e-06 +1.0413546780627359 0.0006675714211968135 6.751304877817071 +197.4393793507263 34.63396263565147 17.886456900372362 +0.4 0.4 0.4 +0.0 0.0 0.0 +412.0 2.96336237e-07 0.00018851276799694233 +7.07980829e-06 +0.13885687230193297 0.0005099067038711923 3.4579373385270666 +97.37519886197563 161.24570001991358 88.00320543674819 +0.4 0.4 0.4 +0.0 0.0 0.0 +413.0 2.96336237e-07 0.00022744268097446977 +7.07980829e-06 +0.16753230905077734 0.001439434713915598 1.488957242480834 +330.64136140921306 54.28403635089244 292.3523663851032 +0.4 0.4 0.4 +0.0 0.0 0.0 +414.0 2.96336237e-07 0.0006898514209958568 +7.07980829e-06 +0.5081385822846886 0.0010638026176632393 0.11968083851335284 +160.7138589091659 25.382795589912288 25.782727478421545 +0.4 0.4 0.4 +0.0 0.0 0.0 +415.0 2.96336237e-07 0.0008266249233141564 +7.07980829e-06 +0.6088847595728408 0.00014688882663911135 8.1996019102165 +246.03901024919443 68.98131066613524 288.1999591902379 +0.4 0.4 0.4 +0.0 0.0 0.0 +416.0 2.96336237e-07 0.0004534921194170814 +7.07980829e-06 +0.33403836771868944 0.0005142348550326742 7.8216933915030875 +248.20221654965226 331.99676605650495 244.64201903455245 +0.4 0.4 0.4 +0.0 0.0 0.0 +417.0 2.96336237e-07 0.000424897105060519 +7.07980829e-06 +0.31297552778921833 0.00029497534822830286 0.15310919652858854 +140.46973581083438 24.65529286461425 351.40407552316753 +0.4 0.4 0.4 +0.0 0.0 0.0 +418.0 2.96336237e-07 0.0009879275456483537 +7.07980829e-06 +0.7276988742315883 0.0011029900349679963 10.864568129667113 +208.5430096157955 9.10233088314665 317.21898012234874 +0.4 0.4 0.4 +0.0 0.0 0.0 +419.0 2.96336237e-07 0.0015502587131062853 +7.07980829e-06 +1.1419071421424887 0.0006712296928285242 6.872092503437728 +23.789921841197497 176.23932642847208 203.11796148326633 +0.4 0.4 0.4 +0.0 0.0 0.0 +420.0 2.96336237e-07 0.0001706954398692114 +7.07980829e-06 +0.1257327827090514 0.0006363407247909787 7.996370665082673 +242.54962943655892 119.0581532962803 244.4636246279242 +0.4 0.4 0.4 +0.0 0.0 0.0 +421.0 2.96336237e-07 0.0008548996282611012 +7.07980829e-06 +0.6297116623652099 0.0018528503137257384 6.449151072040503 +247.14499536359432 194.51125232940055 120.02019995779871 +0.4 0.4 0.4 +0.0 0.0 0.0 +422.0 2.96336237e-07 0.0020676193368498715 +7.07980829e-06 +1.5229904970183599 0.0018279824313815899 3.119809687865496 +319.56432456135326 256.80466553677377 302.7810027784062 +0.4 0.4 0.4 +0.0 0.0 0.0 +423.0 2.96336237e-07 0.0014317805565749072 +7.07980829e-06 +1.0546371581151317 0.0005102985592123978 7.904804333209818 +231.8152004370599 136.71782915075784 317.74375180780237 +0.4 0.4 0.4 +0.0 0.0 0.0 +424.0 2.96336237e-07 0.0002923636451554646 +7.07980829e-06 +0.21535252902200486 0.0012571792466268344 7.172400983983878 +255.00609299925236 150.88650593626468 54.83063423384363 +0.4 0.4 0.4 +0.0 0.0 0.0 +425.0 2.96336237e-07 0.00020267791261800836 +7.07980829e-06 +0.1492907951533426 2.4169993512502616e-05 1.8789654006057819 +142.81133764592184 200.87399856342702 268.6282317022573 +0.4 0.4 0.4 +0.0 0.0 0.0 +426.0 2.96336237e-07 0.00216686956495537 +7.07980829e-06 +1.596097355489646 0.0019817103498467135 7.425491559820209 +271.70257003964826 15.863017483508967 264.63792447579806 +0.4 0.4 0.4 +0.0 0.0 0.0 +427.0 2.96336237e-07 0.0001553159107903783 +7.07980829e-06 +0.11440435478316135 0.0005117869222478517 8.667289313439003 +218.19361442257141 144.619241655023 119.95076677123069 +0.4 0.4 0.4 +0.0 0.0 0.0 +428.0 2.96336237e-07 0.0006311383297158283 +7.07980829e-06 +0.46489102772936586 0.000277977539000612 4.101627214272958 +231.6073302900749 98.09235602296367 116.20533850272857 +0.4 0.4 0.4 +0.0 0.0 0.0 +429.0 2.96336237e-07 0.00018352418073515838 +7.07980829e-06 +0.13518232212829265 0.0004995940876123834 10.532479056086265 +213.8058404309228 61.39961018062948 265.52368141249804 +0.4 0.4 0.4 +0.0 0.0 0.0 +430.0 2.96336237e-07 0.00023931226875080732 +7.07980829e-06 +0.17627534461090566 0.0014351073175199352 10.094752215598206 +236.8492000043581 1.4027964177489896 321.9949830850897 +0.4 0.4 0.4 +0.0 0.0 0.0 +431.0 2.96336237e-07 0.00029309420455664 +7.07980829e-06 +0.21589065274994054 0.0011799630485976175 0.6723681526471154 +296.59764239360464 359.5559702912326 114.540592515933 +0.4 0.4 0.4 +0.0 0.0 0.0 +432.0 2.96336237e-07 0.004222680517088697 +7.07980829e-06 +3.1103898985916754 0.00042637688730952177 9.098589541222267 +0.4371423916632341 329.05080871562564 127.13138850101329 +0.4 0.4 0.4 +0.0 0.0 0.0 +433.0 2.96336237e-07 0.000748582470725869 +7.07980829e-06 +0.5513993648787411 0.0008576894511570327 3.1242992472498163 +283.9222469806783 86.35211955431778 70.7562799265316 +0.4 0.4 0.4 +0.0 0.0 0.0 +434.0 2.96336237e-07 0.0007306232922059338 +7.07980829e-06 +0.5381707895154495 0.0009348514117079304 2.5557739076942165 +69.52099049625218 74.14516210351093 4.234771022669347 +0.4 0.4 0.4 +0.0 0.0 0.0 +435.0 2.96336237e-07 0.00013897041687791617 +7.07980829e-06 +0.10236440552650627 0.00013146320707978484 0.7364793187850734 +357.6923007593962 90.33367235008731 318.70658846752104 +0.4 0.4 0.4 +0.0 0.0 0.0 +436.0 2.96336237e-07 0.00029779475298576227 +7.07980829e-06 +0.21935303601398698 0.000555782890957427 11.18983876159149 +327.61355695929603 97.40480976734528 165.0138253761267 +0.4 0.4 0.4 +0.0 0.0 0.0 +437.0 2.96336237e-07 0.0001708745799574377 +7.07980829e-06 +0.12586473574660587 0.0018987729174404723 6.736566670953775 +182.67517715189774 273.16145577873795 183.44656120677303 +0.4 0.4 0.4 +0.0 0.0 0.0 +438.0 2.96336237e-07 0.000728623848165005 +7.07980829e-06 +0.5366980163509781 0.0006550250963848307 9.768788974647288 +67.0108552725336 257.03153378424787 13.000160888491234 +0.4 0.4 0.4 +0.0 0.0 0.0 +439.0 2.96336237e-07 0.00013599191518003068 +7.07980829e-06 +0.10017046697099641 0.0003582430996764604 7.76057892051022 +20.841385258916905 113.02934367613256 180.8733491565871 +0.4 0.4 0.4 +0.0 0.0 0.0 +440.0 2.96336237e-07 0.0018797971931425249 +7.07980829e-06 +1.3846423325870287 0.0019378229233473117 4.622098056806427 +109.98005607003847 225.20986743480188 142.48074218515666 +0.4 0.4 0.4 +0.0 0.0 0.0 +441.0 2.96336237e-07 0.0001997542634290336 +7.07980829e-06 +0.1471372604808492 7.759826083314737e-05 3.1994038265505984 +18.00063527962045 150.13335509330886 284.73890718547926 +0.4 0.4 0.4 +0.0 0.0 0.0 +442.0 2.96336237e-07 0.00024525408550693235 +7.07980829e-06 +0.18065203537468522 0.0013635787575385526 5.055965540023692 +187.18991520484477 189.55324411240977 238.44197104059097 +0.4 0.4 0.4 +0.0 0.0 0.0 +443.0 2.96336237e-07 0.0002719572676112937 +7.07980829e-06 +0.20032136805129583 0.0012308591993952483 7.0044899345984275 +269.552911515444 223.2589430936312 255.77773483876354 +0.4 0.4 0.4 +0.0 0.0 0.0 +444.0 2.96336237e-07 0.0024012337876925392 +7.07980829e-06 +1.7687280122591906 0.0014246905125783382 3.1894616327597674 +263.45723692347207 348.5056611813291 229.81072090051504 +0.4 0.4 0.4 +0.0 0.0 0.0 +445.0 2.96336237e-07 0.0012814807946355462 +7.07980829e-06 +0.9439276551335444 0.0008456351484432009 8.506847778604175 +16.976934831274097 204.11939881755924 21.926603695751165 +0.4 0.4 0.4 +0.0 0.0 0.0 +446.0 2.96336237e-07 0.0002214572277532168 +7.07980829e-06 +0.16312347604469576 0.0006328788606050711 4.341669245285442 +217.21176443296935 47.570634047337755 255.51497981231765 +0.4 0.4 0.4 +0.0 0.0 0.0 +447.0 2.96336237e-07 0.000371320605655443 +7.07980829e-06 +0.27351154232381 0.0012718461900307523 3.6005688541966956 +160.45882348034823 229.3479177073646 325.89926615619186 +0.4 0.4 0.4 +0.0 0.0 0.0 +448.0 2.96336237e-07 0.00018813481449221457 +7.07980829e-06 +0.13857847502359635 0.0004967774773828962 9.454215364643224 +236.19374241613463 15.838117427972968 32.50108674998017 +0.4 0.4 0.4 +0.0 0.0 0.0 +449.0 2.96336237e-07 0.0002829712914052262 +7.07980829e-06 +0.2084342025915501 0.0006005957457232561 1.584780194658919 +102.56822379223705 346.4911804247638 40.57008757741396 +0.4 0.4 0.4 +0.0 0.0 0.0 +450.0 2.96336237e-07 0.00019747957360339362 +7.07980829e-06 +0.1454617436551108 0.0005977045502023303 11.353602159881305 +200.3192108307083 271.1674421737156 31.081475067751285 +0.4 0.4 0.4 +0.0 0.0 0.0 +451.0 2.96336237e-07 0.001245613757542642 +7.07980829e-06 +0.9175083062354428 1.590462859464138e-05 3.357327507443001 +79.60987598923194 30.837831867702302 298.7278990002848 +0.4 0.4 0.4 +0.0 0.0 0.0 +452.0 2.96336237e-07 0.0002486996704319826 +7.07980829e-06 +0.18319002339017568 0.0009885566764127646 9.782621242440886 +108.07786801396067 273.9970912250933 310.35367852760163 +0.4 0.4 0.4 +0.0 0.0 0.0 +453.0 2.96336237e-07 0.00016692767554210932 +7.07980829e-06 +0.12295748013622683 0.0010979062296577725 10.024347500550677 +106.88907055247773 198.1327684359928 340.050135138907 +0.4 0.4 0.4 +0.0 0.0 0.0 +454.0 2.96336237e-07 0.0005445630251279117 +7.07980829e-06 +0.40112040815064176 0.0012765243645821193 0.36158828981659213 +300.78312579930036 122.72230217785753 79.57847915252297 +0.4 0.4 0.4 +0.0 0.0 0.0 +455.0 2.96336237e-07 0.0006418298530095252 +7.07980829e-06 +0.47276631119414475 0.0018754191712590468 9.618142402240167 +210.01360274606708 52.81319523404354 295.506781436836 +0.4 0.4 0.4 +0.0 0.0 0.0 +456.0 2.96336237e-07 0.0003305503945146837 +7.07980829e-06 +0.24348055788573156 0.0009724490518056483 9.764140650772767 +285.1217564231297 241.4693010940454 153.8706167630325 +0.4 0.4 0.4 +0.0 0.0 0.0 +457.0 2.96336237e-07 0.0008872014207357944 +7.07980829e-06 +0.6535048829541451 0.0012768686940541607 3.1122731807633186 +191.39791508615775 317.147311001137 65.98215050080154 +0.4 0.4 0.4 +0.0 0.0 0.0 +458.0 2.96336237e-07 0.0007939614798380874 +7.07980829e-06 +0.5848251499883511 0.00040825964837822265 1.8844887309819964 +318.2015406963481 193.18114828574815 104.40965648293675 +0.4 0.4 0.4 +0.0 0.0 0.0 +459.0 2.96336237e-07 0.0002696263073715259 +7.07980829e-06 +0.1986044029258377 0.001056477230864351 5.155184286743782 +225.03923040849543 131.52836819098496 255.26276672816687 +0.4 0.4 0.4 +0.0 0.0 0.0 +460.0 2.96336237e-07 0.0006881217741479458 +7.07980829e-06 +0.5068645393960302 0.0003326335736345842 5.266871447065479 +228.66670984475485 245.29263210567836 343.40974951486265 +0.4 0.4 0.4 +0.0 0.0 0.0 +461.0 2.96336237e-07 0.00036350958220436396 +7.07980829e-06 +0.2677580100966906 0.0011350441528606126 6.177365782766478 +118.87478336871442 355.77015297228894 95.63595646327923 +0.4 0.4 0.4 +0.0 0.0 0.0 +462.0 2.96336237e-07 0.0004486060856822659 +7.07980829e-06 +0.3304393575848548 0.0014687785019336904 5.241448084521409 +96.18365857942207 183.77862980776774 228.65495228458707 +0.4 0.4 0.4 +0.0 0.0 0.0 +463.0 2.96336237e-07 0.0004604269617478805 +7.07980829e-06 +0.33914651252072975 0.0004055292170800828 4.895873668563538 +59.02464154565896 62.12229762294026 55.07526689128356 +0.4 0.4 0.4 +0.0 0.0 0.0 +464.0 2.96336237e-07 0.0005143025297492694 +7.07980829e-06 +0.3788307893241148 0.0005293066055721069 4.462141950647905 +320.6002755530967 306.8596225069373 320.9666429183768 +0.4 0.4 0.4 +0.0 0.0 0.0 +465.0 2.96336237e-07 0.0006667305570919559 +7.07980829e-06 +0.49110795417006453 0.0007770182250284304 0.690544254500474 +289.6118630282647 147.3904940483378 243.83250464820526 +0.4 0.4 0.4 +0.0 0.0 0.0 +466.0 2.96336237e-07 0.0005863629315512525 +7.07980829e-06 +0.43190985721624947 0.0007198902586070987 4.0182624493743635 +288.28733727149256 324.69481343360036 189.6182444711077 +0.4 0.4 0.4 +0.0 0.0 0.0 +467.0 2.96336237e-07 0.000294672324076889 +7.07980829e-06 +0.21705308192133735 0.00044576452998949914 8.921250090759099 +238.22729318130882 296.190068054446 195.9121254193718 +0.4 0.4 0.4 +0.0 0.0 0.0 +468.0 2.96336237e-07 0.0028087096654579474 +7.07980829e-06 +2.0688712148984254 0.0002984810832466857 10.575534104328895 +152.56442877635615 170.47613853133058 274.7547200671628 +0.4 0.4 0.4 +0.0 0.0 0.0 +469.0 2.96336237e-07 0.0003450690782735793 +7.07980829e-06 +0.2541748946042599 0.0008041489377130242 8.309065348651579 +261.2187986265465 53.27309426724574 261.1432403005431 +0.4 0.4 0.4 +0.0 0.0 0.0 +470.0 2.96336237e-07 0.00046973846516796657 +7.07980829e-06 +0.3460052852981942 0.0018686403872765615 3.0895039953712953 +75.98671392677977 38.52726973601133 140.56799733511798 +0.4 0.4 0.4 +0.0 0.0 0.0 +471.0 2.96336237e-07 0.00041866256056546783 +7.07980829e-06 +0.30838321630809845 0.0007211803251128147 10.87151624456058 +51.710646603351435 342.61557663182634 39.59410990999061 +0.4 0.4 0.4 +0.0 0.0 0.0 +472.0 2.96336237e-07 0.0003214617114907036 +7.07980829e-06 +0.23678591268231478 0.00043228108644888024 8.092409625280016 +162.74609562124746 81.11807186647502 138.9873457289479 +0.4 0.4 0.4 +0.0 0.0 0.0 +473.0 2.96336237e-07 0.003263293606577269 +7.07980829e-06 +2.4037138090273222 0.001132185797944382 7.94561700619783 +44.938610848203766 268.82872855970845 36.99135992364371 +0.4 0.4 0.4 +0.0 0.0 0.0 +474.0 2.96336237e-07 0.0008214380972595391 +7.07980829e-06 +0.6050641884212358 0.0017016394827102327 9.659688816023383 +109.74887856274627 109.62683981188026 47.758744134896425 +0.4 0.4 0.4 +0.0 0.0 0.0 +475.0 2.96336237e-07 0.0008837582199748425 +7.07980829e-06 +0.6509686510932816 0.0012461324332944481 4.499649557650997 +10.572812949107973 47.77269188323101 215.6753167223474 +0.4 0.4 0.4 +0.0 0.0 0.0 +476.0 2.96336237e-07 0.001098223293562403 +7.07980829e-06 +0.8089417669347273 0.0008312252935948881 3.3621695139802132 +210.05120303274737 154.63817919238844 104.28857510691935 +0.4 0.4 0.4 +0.0 0.0 0.0 +477.0 2.96336237e-07 0.0013733620550810425 +7.07980829e-06 +1.0116065958450184 0.0017738610178885557 10.197193583320637 +193.21906157260963 160.6826353045648 197.35313110103235 +0.4 0.4 0.4 +0.0 0.0 0.0 +478.0 2.96336237e-07 0.0010710598818969162 +7.07980829e-06 +0.788933433149185 0.0011447284160657012 6.439774290412318 +130.66057255969486 89.60632128531438 276.6850184610414 +0.4 0.4 0.4 +0.0 0.0 0.0 +479.0 2.96336237e-07 0.00013804426495303047 +7.07980829e-06 +0.10168221003952403 0.00020449864584018424 6.3886896970000135 +294.43963116142464 80.85135126684784 59.551631887885094 +0.4 0.4 0.4 +0.0 0.0 0.0 +480.0 2.96336237e-07 0.000510984594283785 +7.07980829e-06 +0.37638682679503926 0.0009538703934352033 7.8137851712048985 +270.8856913657831 54.866604813306864 203.72806433585802 +0.4 0.4 0.4 +0.0 0.0 0.0 +481.0 2.96336237e-07 0.0003052773574941031 +7.07980829e-06 +0.22486465769213987 0.00010499401161215899 9.80847519219533 +204.58216972265092 63.46577648609118 52.22718811087346 +0.4 0.4 0.4 +0.0 0.0 0.0 +482.0 2.96336237e-07 0.0007595910572551223 +7.07980829e-06 +0.5595081943769218 1.603969670767141e-05 3.5748016430332377 +252.14559085297245 258.52147517626855 89.88327467849027 +0.4 0.4 0.4 +0.0 0.0 0.0 +483.0 2.96336237e-07 0.0005026243751300119 +7.07980829e-06 +0.3702287617695952 0.0017002155023706134 3.2650363437768473 +4.579531934785606 181.49448196402307 253.24637502081566 +0.4 0.4 0.4 +0.0 0.0 0.0 +484.0 2.96336237e-07 0.0014946853378614818 +7.07980829e-06 +1.100972275227372 0.0011016475133641122 1.1713720975409359 +50.43747985108622 106.6248278266832 32.13983751921431 +0.4 0.4 0.4 +0.0 0.0 0.0 +485.0 2.96336237e-07 0.0001840981898284837 +7.07980829e-06 +0.1356051322552614 0.0006111558538924435 10.4892853776386 +222.02834859636715 325.69799642747853 140.07145275861674 +0.4 0.4 0.4 +0.0 0.0 0.0 +486.0 2.96336237e-07 0.00015386479581017197 +7.07980829e-06 +0.11333547605604403 0.000622891064807166 8.184129534679386 +37.28466927526265 329.2628905575532 294.6220703951143 +0.4 0.4 0.4 +0.0 0.0 0.0 +487.0 2.96336237e-07 0.0003082091957628682 +7.07980829e-06 +0.22702422436988573 0.001991696543638015 3.5267414013239837 +338.50159401266495 180.01552983278972 322.20628816659337 +0.4 0.4 0.4 +0.0 0.0 0.0 +488.0 2.96336237e-07 0.00014583060375858106 +7.07980829e-06 +0.10741755977052718 0.0002905638340767039 11.302540381129162 +241.2135864811138 151.6941052951146 298.57489059943174 +0.4 0.4 0.4 +0.0 0.0 0.0 +489.0 2.96336237e-07 0.0005605944288335752 +7.07980829e-06 +0.41292900128113025 7.941636802451363e-05 7.359319334258025 +297.84171946708426 94.33235973893102 344.4529489692567 +0.4 0.4 0.4 +0.0 0.0 0.0 +490.0 2.96336237e-07 0.00021857685064681165 +7.07980829e-06 +0.16100181521346763 0.0012407299957247105 0.6038825024030959 +239.7275077723229 236.00381573862157 256.95939485907843 +0.4 0.4 0.4 +0.0 0.0 0.0 +491.0 2.96336237e-07 0.00019674218925549213 +7.07980829e-06 +0.14491859273052377 0.0013058487505551934 3.821881106309761 +216.39978867899538 258.25042579710794 351.02242222027417 +0.4 0.4 0.4 +0.0 0.0 0.0 +492.0 2.96336237e-07 0.0002159160466132611 +7.07980829e-06 +0.15904189000610347 0.0014522873185646632 4.0846204015874 +134.00372653420538 92.03836218081587 302.6381080058215 +0.4 0.4 0.4 +0.0 0.0 0.0 +493.0 2.96336237e-07 0.0016256926204691628 +7.07980829e-06 +1.197471105014716 0.0004360059768893441 0.4814083894751589 +349.1904845488782 337.1306233013751 217.9405054238214 +0.4 0.4 0.4 +0.0 0.0 0.0 +494.0 2.96336237e-07 0.00014250608506025607 +7.07980829e-06 +0.10496874808915509 0.0002830915520879843 2.6416972133031833 +29.164561498142817 179.8847025710235 47.37482513737826 +0.4 0.4 0.4 +0.0 0.0 0.0 +495.0 2.96336237e-07 0.005380221359981844 +7.07980829e-06 +3.9630244586470065 0.001250718071607223 7.831364396971 +299.152626258313 80.18063960689692 220.34424722803575 +0.4 0.4 0.4 +0.0 0.0 0.0 +496.0 2.96336237e-07 0.0010596897261804911 +7.07980829e-06 +0.7805582749190838 0.0013975054818890363 4.884298008228713 +324.268561752692 180.9283217090302 120.10113424767462 +0.4 0.4 0.4 +0.0 0.0 0.0 +497.0 2.96336237e-07 0.003975669049986422 +7.07980829e-06 +2.928443391153569 0.00019889105320171344 6.917866506846601 +53.38988957506836 56.96803300644175 52.93302086318209 +0.4 0.4 0.4 +0.0 0.0 0.0 +498.0 2.96336237e-07 0.00016401256780677155 +7.07980829e-06 +0.12081023702450965 0.0013348618001110496 8.191123147193156 +281.7322152624938 230.89269153751596 24.132095903135788 +0.4 0.4 0.4 +0.0 0.0 0.0 +499.0 2.96336237e-07 0.00023516729516164113 +7.07980829e-06 +0.17322219296244507 0.0011407861152418625 1.7214983246331481 +310.9919211691427 240.0381065105395 73.29352599760033 +0.4 0.4 0.4 +0.0 0.0 0.0 +500.0 2.96336237e-07 0.002372935488260879 +7.07980829e-06 +1.7478837299737187 0.0002530022664911261 0.7808132069679781 +132.332998689434 23.225140699784063 169.22321380849056 +0.4 0.4 0.4 +0.0 0.0 0.0 +501.0 2.96336237e-07 0.0008364206062998774 +7.07980829e-06 +0.6161001748251411 0.0003301383670470987 5.459400528391105 +46.31716383973629 305.7668990894059 76.65337789038414 +0.4 0.4 0.4 +0.0 0.0 0.0 +502.0 2.96336237e-07 0.0004237487750512881 +7.07980829e-06 +0.31212967784946866 0.0007325283957620936 5.65261886087358 +341.3807343417507 44.436293900198685 196.82498772211372 +0.4 0.4 0.4 +0.0 0.0 0.0 +503.0 2.96336237e-07 0.0002809942841018974 +7.07980829e-06 +0.20697795613368275 0.0003389102918443133 10.801909255067267 +210.45066679552102 128.9542129407433 89.9655687791985 +0.4 0.4 0.4 +0.0 0.0 0.0 +504.0 2.96336237e-07 0.00021032636207145845 +7.07980829e-06 +0.1549245767817718 0.00019034547652992633 9.896740981102905 +106.97073529266052 173.00512256005695 141.4982023951114 +0.4 0.4 0.4 +0.0 0.0 0.0 +505.0 2.96336237e-07 0.0001405877294726506 +7.07980829e-06 +0.10355570397713952 5.588787033835933e-05 0.025148184590135212 +339.6974022171061 134.4855494358087 106.9595251566057 +0.4 0.4 0.4 +0.0 0.0 0.0 +506.0 2.96336237e-07 0.0002616476332737474 +7.07980829e-06 +0.19272738068428888 0.0011840292720909423 2.1374607043381766 +276.3040437338511 74.32516348293399 173.22195104801668 +0.4 0.4 0.4 +0.0 0.0 0.0 +507.0 2.96336237e-07 0.0001830276335913892 +7.07980829e-06 +0.13481656980251192 7.772338761572637e-05 2.1436693812878 +239.43227036224593 323.59484907154894 257.15734762862957 +0.4 0.4 0.4 +0.0 0.0 0.0 +508.0 2.96336237e-07 0.0020038800548480675 +7.07980829e-06 +1.4760406939064297 0.0011508169614244208 8.250037489904742 +36.89799320893618 35.08064963050396 58.92373260868641 +0.4 0.4 0.4 +0.0 0.0 0.0 +509.0 2.96336237e-07 0.00021041196540253537 +7.07980829e-06 +0.15498763145408004 0.00032656122692631444 3.063724364482827 +329.95091023219123 101.64460523053472 160.78145664072994 +0.4 0.4 0.4 +0.0 0.0 0.0 +510.0 2.96336237e-07 0.00034420033681411346 +7.07980829e-06 +0.2535349871689057 0.00033342152374707547 1.1857613413900874 +324.36341312691667 144.5633870194615 49.563557204289175 +0.4 0.4 0.4 +0.0 0.0 0.0 +511.0 2.96336237e-07 0.0015832822576863253 +7.07980829e-06 +1.1662319990815273 0.0019487406036725137 3.0607160983513313 +11.225699088239294 351.3300983911463 32.506879328548955 +0.4 0.4 0.4 +0.0 0.0 0.0 +512.0 2.96336237e-07 0.0001880645524644118 +7.07980829e-06 +0.13852672062241733 0.001227333136741469 5.359209920502055 +342.184172049542 104.16755202122069 158.05339443952155 +0.4 0.4 0.4 +0.0 0.0 0.0 +513.0 2.96336237e-07 0.0001695592618230741 +7.07980829e-06 +0.12489588380007507 0.00020491376609093243 9.967337840176775 +222.72561471076645 200.2889141067975 329.78545124155136 +0.4 0.4 0.4 +0.0 0.0 0.0 +514.0 2.96336237e-07 0.00018691819550851435 +7.07980829e-06 +0.13768232401666558 0.001555586199538783 10.031201567524477 +233.12258895874854 238.5593259895004 45.262601699849064 +0.4 0.4 0.4 +0.0 0.0 0.0 +515.0 2.96336237e-07 0.0002372145015271881 +7.07980829e-06 +0.17473014744158713 0.0011718121703042283 11.298391017700013 +273.7254978829876 169.35877595958758 172.46893054714874 +0.4 0.4 0.4 +0.0 0.0 0.0 +516.0 2.96336237e-07 0.000487556463853684 +7.07980829e-06 +0.35912986881828135 0.0010875086244021 2.6390881856199 +327.05906565898886 41.46149650372694 161.77042037952188 +0.4 0.4 0.4 +0.0 0.0 0.0 +517.0 2.96336237e-07 0.00037749753986737175 +7.07980829e-06 +0.27806141856931255 0.00017474096544441254 10.193602074021994 +96.01356506043527 32.73445552687746 171.11188339049957 +0.4 0.4 0.4 +0.0 0.0 0.0 +518.0 2.96336237e-07 0.0007259623387149332 +7.07980829e-06 +0.5347375715399136 0.0006307112549701429 6.423123416772914 +132.89631888091645 152.6344585362946 31.11756389346557 +0.4 0.4 0.4 +0.0 0.0 0.0 +519.0 2.96336237e-07 0.0013262157694597188 +7.07980829e-06 +0.9768790501642038 0.0016801546962580637 3.6624407128558283 +344.8432510603976 225.88265169610546 61.03331943826858 +0.4 0.4 0.4 +0.0 0.0 0.0 +520.0 2.96336237e-07 0.00013948893650871826 +7.07980829e-06 +0.10274634259594391 0.0005862369214162208 7.71693453685987 +295.65211563192264 87.19006628973742 2.9786213795126453 +0.4 0.4 0.4 +0.0 0.0 0.0 +521.0 2.96336237e-07 0.00015929457772364975 +7.07980829e-06 +0.11733500638917965 0.00046241603580283465 11.030928489656732 +169.65241881138567 293.1253864516373 214.18603709260668 +0.4 0.4 0.4 +0.0 0.0 0.0 +522.0 2.96336237e-07 0.00019824865788944 +7.07980829e-06 +0.14602824447959978 0.0002413067174747541 4.229625827383947 +116.24908588305853 10.857662875818633 206.68925611407855 +0.4 0.4 0.4 +0.0 0.0 0.0 +523.0 2.96336237e-07 0.00021207331037066918 +7.07980829e-06 +0.1562113637696193 0.0016684263660526643 6.046041305164429 +345.6484692547302 292.66639197693917 146.17732450811894 +0.4 0.4 0.4 +0.0 0.0 0.0 +524.0 2.96336237e-07 0.0005136104792758559 +7.07980829e-06 +0.37832103093886404 0.001074156993879785 2.1395424495167066 +281.75088372571247 303.56480204625746 296.22629924132457 +0.4 0.4 0.4 +0.0 0.0 0.0 +525.0 2.96336237e-07 0.004109072545859522 +7.07980829e-06 +3.0267072508799453 0.00127398446590752 2.1560406699554804 +346.66700089774304 155.95497531651893 1.6343077005043352 +0.4 0.4 0.4 +0.0 0.0 0.0 +526.0 2.96336237e-07 0.00014930581917609634 +7.07980829e-06 +0.10997737335015408 0.0012084257180196292 1.3951600642609057 +16.76773394168345 8.795909418806362 9.929660069933089 +0.4 0.4 0.4 +0.0 0.0 0.0 +527.0 2.96336237e-07 0.0002868838371068101 +7.07980829e-06 +0.2113161498709467 0.0007791354218313612 3.234346128256671 +76.11991217262185 136.83240360065855 173.1533929976486 +0.4 0.4 0.4 +0.0 0.0 0.0 +528.0 2.96336237e-07 0.0001555609431935719 +7.07980829e-06 +0.11458484352926389 0.0010363406659536396 10.541470655799642 +325.59035485038135 265.93712788220773 313.42035876985943 +0.4 0.4 0.4 +0.0 0.0 0.0 +529.0 2.96336237e-07 0.00021564072526620022 +7.07980829e-06 +0.15883909068626403 0.0008601114966143062 1.9731166269703835 +219.97708142667824 234.306907552938 287.0479249364048 +0.4 0.4 0.4 +0.0 0.0 0.0 +530.0 2.96336237e-07 0.00021063118430903212 +7.07980829e-06 +0.1551491062020721 0.0012742398782430151 2.110216655102381 +322.4131256335296 156.66338000836896 213.30875362979424 +0.4 0.4 0.4 +0.0 0.0 0.0 +531.0 2.96336237e-07 0.0003195852526861271 +7.07980829e-06 +0.23540372937783355 0.0014827207961310713 11.034200232871168 +20.075050100885207 297.061404860893 134.27646383235646 +0.4 0.4 0.4 +0.0 0.0 0.0 +532.0 2.96336237e-07 0.00038029698725507155 +7.07980829e-06 +0.2801234672706298 0.0009391237366618727 0.961050066133553 +130.06618341196372 65.34014485280774 265.5894113155054 +0.4 0.4 0.4 +0.0 0.0 0.0 +533.0 2.96336237e-07 0.0008086245014997202 +7.07980829e-06 +0.5956258047560051 0.0017346144564827134 3.419230682901365 +224.4906528425378 41.564974205435675 171.21663430141882 +0.4 0.4 0.4 +0.0 0.0 0.0 +534.0 2.96336237e-07 0.0009378327930594523 +7.07980829e-06 +0.6907995133174945 0.001605499749195453 9.284357963360389 +18.93455793138919 339.4733996745166 319.8812805446561 +0.4 0.4 0.4 +0.0 0.0 0.0 +535.0 2.96336237e-07 0.00023975902634056496 +7.07980829e-06 +0.17660442238240123 0.0015568675724954336 11.38693154194754 +44.37020689907796 295.86645019371497 177.82671930546547 +0.4 0.4 0.4 +0.0 0.0 0.0 +536.0 2.96336237e-07 0.0003929351753048108 +7.07980829e-06 +0.28943264713572475 0.0005699233782748937 1.5567056350737614 +227.9860385142784 77.8850459256719 355.6214169541282 +0.4 0.4 0.4 +0.0 0.0 0.0 +537.0 2.96336237e-07 0.0005262829725743801 +7.07980829e-06 +0.38765547975311526 0.0003177615026623367 8.827340263326045 +199.89821685270525 352.371252920494 13.099545361125765 +0.4 0.4 0.4 +0.0 0.0 0.0 +538.0 2.96336237e-07 0.0014263756327302175 +7.07980829e-06 +1.0506559380201834 0.0011850450275658014 6.109575048260612 +137.21707874901938 317.54578704073776 298.4847960400838 +0.4 0.4 0.4 +0.0 0.0 0.0 +539.0 2.96336237e-07 0.00040333645655972814 +7.07980829e-06 +0.29709414082836405 0.0012408573548279333 5.600605325783357 +152.95523816976183 264.91770769590966 7.071477493229634 +0.4 0.4 0.4 +0.0 0.0 0.0 +540.0 2.96336237e-07 0.0015199855563997338 +7.07980829e-06 +1.1196081970914764 0.0013138724882288133 1.1787466854789124 +244.3058781253184 129.76972788859368 156.95401255974633 +0.4 0.4 0.4 +0.0 0.0 0.0 +541.0 2.96336237e-07 0.00039472534353346346 +7.07980829e-06 +0.29075126954929537 0.00037545014934496027 5.765569150437208 +61.964196642898294 171.97954045248818 354.7328600184298 +0.4 0.4 0.4 +0.0 0.0 0.0 +542.0 2.96336237e-07 0.0009011051757505035 +7.07980829e-06 +0.6637462684852627 0.0007574696521700472 11.096574280070378 +336.34868318728115 231.8204350102131 228.9728749303282 +0.4 0.4 0.4 +0.0 0.0 0.0 +543.0 2.96336237e-07 0.0004267125719876535 +7.07980829e-06 +0.3143127850049926 0.0007238579750846895 0.5277440721609482 +80.37180018466877 103.55653927353048 114.87976373867865 +0.4 0.4 0.4 +0.0 0.0 0.0 +544.0 2.96336237e-07 0.00020963363183072777 +7.07980829e-06 +0.1544143176858023 0.00010596757190516148 10.466373300966364 +146.7818903901798 36.69076173997252 34.93306695589757 +0.4 0.4 0.4 +0.0 0.0 0.0 +545.0 2.96336237e-07 0.00029132633094057064 +7.07980829e-06 +0.21458845235491755 0.001312258673813912 5.263516568737595 +330.2344757051127 325.3527645378588 166.22816141416666 +0.4 0.4 0.4 +0.0 0.0 0.0 +546.0 2.96336237e-07 0.0003716442765482616 +7.07980829e-06 +0.2737499555003259 0.0005701813356438088 9.435472283986273 +50.5993612097436 173.37357873802534 55.87387941263882 +0.4 0.4 0.4 +0.0 0.0 0.0 +547.0 2.96336237e-07 0.00022121543151980844 +7.07980829e-06 +0.16294537103323034 0.0010450316087317016 10.629320699054388 +250.72526708627996 283.0549912557477 235.35874115592677 +0.4 0.4 0.4 +0.0 0.0 0.0 +548.0 2.96336237e-07 0.0006338471318379385 +7.07980829e-06 +0.4668863079130782 9.80881213544338e-05 4.917842409782587 +183.5716451313882 137.80102400877854 122.07017831456447 +0.4 0.4 0.4 +0.0 0.0 0.0 +549.0 2.96336237e-07 0.004398684433331888 +7.07980829e-06 +3.2400328590240277 0.000795174145733708 9.411673637407711 +166.69529349617045 322.2493980338734 332.78622466184925 +0.4 0.4 0.4 +0.0 0.0 0.0 +550.0 2.96336237e-07 0.0002696915901036577 +7.07980829e-06 +0.19865248962094845 0.0006383917190026313 4.502193781959035 +102.46776932906943 299.3886454963272 107.42304201248047 +0.4 0.4 0.4 +0.0 0.0 0.0 +551.0 2.96336237e-07 0.00018742789541377648 +7.07980829e-06 +0.13805776455265326 0.00022135125820552654 3.165822612591817 +231.2522567846904 284.00788607334607 18.568891102091413 +0.4 0.4 0.4 +0.0 0.0 0.0 +552.0 2.96336237e-07 0.00018745115705878982 +7.07980829e-06 +0.13807489887891386 0.00038252357678747435 5.636462188612152 +21.26016001601263 38.97144934099217 238.96398622306455 +0.4 0.4 0.4 +0.0 0.0 0.0 +553.0 2.96336237e-07 0.0007527174634770774 +7.07980829e-06 +0.5544451647284006 0.0015926903230669928 3.5709289457786735 +331.65272711665096 152.2997527431007 67.38730245989973 +0.4 0.4 0.4 +0.0 0.0 0.0 +554.0 2.96336237e-07 0.0019986589647870623 +7.07980829e-06 +1.4721948841844608 0.00022013630176110412 1.2170747798596109 +184.3562047825064 1.3825637097073917 29.688792239766972 +0.4 0.4 0.4 +0.0 0.0 0.0 +555.0 2.96336237e-07 0.00022858846842984274 +7.07980829e-06 +0.16837628616737488 0.0004563697736791034 1.037718489230666 +55.32749146467346 234.60174223122448 51.71202442623142 +0.4 0.4 0.4 +0.0 0.0 0.0 +556.0 2.96336237e-07 0.002995858109066055 +7.07980829e-06 +2.2067231376712 0.00042132883736718585 7.18920001167939 +329.5453745377768 154.99871161132532 1.263889070543565 +0.4 0.4 0.4 +0.0 0.0 0.0 +557.0 2.96336237e-07 0.0008811270370001727 +7.07980829e-06 +0.6490305445013574 0.0015222806424304506 2.569952590511676 +318.10486175424745 143.8423848274806 66.22399625468148 +0.4 0.4 0.4 +0.0 0.0 0.0 +558.0 2.96336237e-07 0.00024402598794333842 +7.07980829e-06 +0.17974742934521437 0.0002150961941387449 4.943731950964769 +150.82092745036815 154.92037935629455 348.0792764816835 +0.4 0.4 0.4 +0.0 0.0 0.0 +559.0 2.96336237e-07 0.0008097529907645238 +7.07980829e-06 +0.5964570401752393 0.0009056928941771672 11.063627159187728 +229.76649388304784 251.88631294206922 271.0341809092236 +0.4 0.4 0.4 +0.0 0.0 0.0 +560.0 2.96336237e-07 0.00033530779260211027 +7.07980829e-06 +0.24698481611574155 0.0004575492589735706 5.29573681938387 +196.6887131179752 295.8424376270973 172.27820863278714 +0.4 0.4 0.4 +0.0 0.0 0.0 +561.0 2.96336237e-07 0.0035073641574024108 +7.07980829e-06 +2.5834940630053387 0.0017461636990900654 7.244140409413152 +63.206300786279186 337.9878014590007 104.79139588265613 +0.4 0.4 0.4 +0.0 0.0 0.0 +562.0 2.96336237e-07 0.0001813535469778788 +7.07980829e-06 +0.13358345210133657 0.0018257665528339558 0.06804701843758584 +77.29411815014136 289.8233053967625 44.70554421084728 +0.4 0.4 0.4 +0.0 0.0 0.0 +563.0 2.96336237e-07 0.00370967526002868 +7.07980829e-06 +2.732514669095504 0.001995822512916354 6.48078290387372 +231.67326349644276 62.4395595885095 165.01621451958113 +0.4 0.4 0.4 +0.0 0.0 0.0 +564.0 2.96336237e-07 0.00018554024250358602 +7.07980829e-06 +0.13666733576692272 0.0018703754785616086 7.597540731858161 +34.349929235997486 283.0074100974388 269.69008152808203 +0.4 0.4 0.4 +0.0 0.0 0.0 +565.0 2.96336237e-07 0.0015961104296749599 +7.07980829e-06 +1.175681119470667 0.0012730084315147824 5.377171503588457 +303.22071615442695 207.38446726959208 323.23225029635455 +0.4 0.4 0.4 +0.0 0.0 0.0 +566.0 2.96336237e-07 0.00038398491349272686 +7.07980829e-06 +0.2828399617982013 0.0008656344622862977 0.6978761551131981 +158.93800419606512 215.01005022703546 20.614101759917133 +0.4 0.4 0.4 +0.0 0.0 0.0 +567.0 2.96336237e-07 0.0001411459851863336 +7.07980829e-06 +0.10396691030109508 0.00038399114582490725 6.250057689311349 +12.23793133378916 169.4460441634575 246.49382276408937 +0.4 0.4 0.4 +0.0 0.0 0.0 +568.0 2.96336237e-07 0.00015192863370384972 +7.07980829e-06 +0.1119093158165541 3.5729588432924006e-05 7.225655657371077 +201.789567932713 174.36108665329155 129.48783093991912 +0.4 0.4 0.4 +0.0 0.0 0.0 +569.0 2.96336237e-07 0.00031883766930319916 +7.07980829e-06 +0.23485306593237423 0.000518575631308253 3.0998582988447634 +66.08807509880653 4.722678788284973 249.7975273077748 +0.4 0.4 0.4 +0.0 0.0 0.0 +570.0 2.96336237e-07 0.0027604374222985994 +7.07980829e-06 +2.0333142986463963 0.00043570189366228104 7.66004660343979 +74.86531219644911 109.11381471164702 63.388254479519375 +0.4 0.4 0.4 +0.0 0.0 0.0 +571.0 2.96336237e-07 0.00015023702103083965 +7.07980829e-06 +0.11066328857173478 0.0002025540454515301 1.713521712310485 +171.11108479090643 205.51382169603775 290.0568023988995 +0.4 0.4 0.4 +0.0 0.0 0.0 +572.0 2.96336237e-07 0.00014196229283846236 +7.07980829e-06 +0.10456819544806491 2.173921362080966e-05 3.073288627352398 +10.968423542573241 178.72148059876903 320.74860936554234 +0.4 0.4 0.4 +0.0 0.0 0.0 +573.0 2.96336237e-07 0.00017644798154518564 +7.07980829e-06 +0.12997005508799847 0.000934704509277352 1.9203136651672266 +294.72119378122954 199.03601184031737 225.6308009153569 +0.4 0.4 0.4 +0.0 0.0 0.0 +574.0 2.96336237e-07 0.00488950703768421 +7.07980829e-06 +3.6015685386473737 0.0011288535517277043 5.974265923620937 +306.34658415429885 203.69236750614562 44.76481984330883 +0.4 0.4 0.4 +0.0 0.0 0.0 +575.0 2.96336237e-07 0.00031186948806703133 +7.07980829e-06 +0.2297203639813691 0.0012567479194631834 9.41483183716345 +18.332217446078737 331.41003064049977 348.4144705113405 +0.4 0.4 0.4 +0.0 0.0 0.0 +576.0 2.96336237e-07 0.0001487618405166382 +7.07980829e-06 +0.10957668338069491 0.0017672399928124682 5.6249568984237825 +271.47221073307526 142.67097078512444 42.26206452246715 +0.4 0.4 0.4 +0.0 0.0 0.0 +577.0 2.96336237e-07 0.0038743964810022463 +7.07980829e-06 +2.8538468939054225 0.0006506913213680251 0.591259736892407 +165.1635937171999 39.0089297437918 129.8573140431278 +0.4 0.4 0.4 +0.0 0.0 0.0 +578.0 2.96336237e-07 0.0011639056319223877 +7.07980829e-06 +0.857322808532359 0.0003657736519404083 3.9944348302790336 +62.91043468737944 334.19923827705736 101.7599629885375 +0.4 0.4 0.4 +0.0 0.0 0.0 +579.0 2.96336237e-07 0.0007557338782340886 +7.07980829e-06 +0.5566670297149183 0.0013819556062958454 8.912729073447055 +350.379562278306 170.03008599931147 117.8897306536765 +0.4 0.4 0.4 +0.0 0.0 0.0 +580.0 2.96336237e-07 0.0007441033838763215 +7.07980829e-06 +0.5481001082962534 0.0017994302592596633 2.920918678345923 +289.36419883741945 37.746177522707 109.52089250377925 +0.4 0.4 0.4 +0.0 0.0 0.0 +581.0 2.96336237e-07 0.0006404112844241382 +7.07980829e-06 +0.4717214058595851 3.268654708260321e-05 7.342893652930963 +6.708118526039286 300.81672964848804 163.5847131251365 +0.4 0.4 0.4 +0.0 0.0 0.0 +582.0 2.96336237e-07 0.0004170343646860486 +7.07980829e-06 +0.30718390132422047 0.00129564052304586 6.772843533548752 +132.17508244267017 235.6246930233473 92.41348937785952 +0.4 0.4 0.4 +0.0 0.0 0.0 +583.0 2.96336237e-07 0.0006142731857822208 +7.07980829e-06 +0.452468308767536 0.0012831395547548085 0.35693486697819715 +289.84203743155155 37.471355251152374 152.76210299600683 +0.4 0.4 0.4 +0.0 0.0 0.0 +584.0 2.96336237e-07 0.0002186007074490638 +7.07980829e-06 +0.161019387927396 0.0005285228635833609 9.509448549686741 +10.441247455748337 258.7137472871262 13.98555666620972 +0.4 0.4 0.4 +0.0 0.0 0.0 +585.0 2.96336237e-07 0.00015163266460483272 +7.07980829e-06 +0.11169130754144252 0.0017351807711539903 8.236934752674342 +338.9561331034808 315.03020962224696 281.5056436671877 +0.4 0.4 0.4 +0.0 0.0 0.0 +586.0 2.96336237e-07 0.00013803807018296932 +7.07980829e-06 +0.10167764702554646 0.0010788844747734155 2.081152476831487 +231.1147779863094 173.32364579351096 16.576167527235604 +0.4 0.4 0.4 +0.0 0.0 0.0 +587.0 2.96336237e-07 0.00014385587000249536 +7.07980829e-06 +0.10596298798786918 0.0015337344335405886 5.078489864022907 +163.60494002217212 45.97076191655148 197.42281730424295 +0.4 0.4 0.4 +0.0 0.0 0.0 +588.0 2.96336237e-07 0.0010458551133801324 +7.07980829e-06 +0.7703678189442542 0.0009797708938080478 11.283297895529412 +346.10187303775945 197.66436899732548 139.39949915940022 +0.4 0.4 0.4 +0.0 0.0 0.0 +589.0 2.96336237e-07 0.0006915718567643916 +7.07980829e-06 +0.5094058403720506 0.0005370947777134646 2.1924826909073003 +303.2572365218713 287.6168495565728 39.50899662075566 +0.4 0.4 0.4 +0.0 0.0 0.0 +590.0 2.96336237e-07 0.00016045188829099034 +7.07980829e-06 +0.11818747133025725 0.0009670524569643206 4.577048973494536 +255.19398559665547 190.28022421180938 155.2474211536552 +0.4 0.4 0.4 +0.0 0.0 0.0 +591.0 2.96336237e-07 0.001215267645449028 +7.07980829e-06 +0.8951556228781464 0.001826137463166628 6.073642475279137 +64.67987211426808 222.7717361365298 197.18867931288221 +0.4 0.4 0.4 +0.0 0.0 0.0 +592.0 2.96336237e-07 0.00223801144996431 +7.07980829e-06 +1.6484998518667904 0.00016212374731820305 0.9945919558650346 +19.03525850339453 233.4268420634682 199.36203861767825 +0.4 0.4 0.4 +0.0 0.0 0.0 +593.0 2.96336237e-07 0.00024854336865957183 +7.07980829e-06 +0.18307489285826092 0.0002707099289692515 9.00702823491124 +115.46501288290709 103.59743334648506 126.27403706772289 +0.4 0.4 0.4 +0.0 0.0 0.0 +594.0 2.96336237e-07 0.001116235676776967 +7.07980829e-06 +0.8222095324153061 0.00016278175432533432 2.9858432167738442 +132.34492827913058 224.31294256691262 287.1697667291248 +0.4 0.4 0.4 +0.0 0.0 0.0 +595.0 2.96336237e-07 0.00023863615306077128 +7.07980829e-06 +0.1757773236490884 0.0018576596050919468 9.920915714559277 +330.2455528634638 130.04346261213527 181.20020042815298 +0.4 0.4 0.4 +0.0 0.0 0.0 +596.0 2.96336237e-07 0.0005973374935985437 +7.07980829e-06 +0.4399936245756842 0.001985323158316638 6.144072589369572 +246.27913594083248 38.497536024206944 267.37312751789614 +0.4 0.4 0.4 +0.0 0.0 0.0 +597.0 2.96336237e-07 0.000267870431344185 +7.07980829e-06 +0.19731103985076764 0.0012661897820085283 1.3957219833476502 +133.0753112837152 149.68409171850544 13.1900051947497 +0.4 0.4 0.4 +0.0 0.0 0.0 +598.0 2.96336237e-07 0.00018182297837722762 +7.07980829e-06 +0.1339292312046117 0.0001441448776271945 9.896120622591337 +340.6224666198475 68.34349319183616 253.90966951292768 +0.4 0.4 0.4 +0.0 0.0 0.0 +599.0 2.96336237e-07 0.0006942814168186987 +7.07980829e-06 +0.5114016788420551 6.8049624083765325e-06 9.459636655573432 +154.44073711328545 304.1283217208743 271.0508981064775 +0.4 0.4 0.4 +0.0 0.0 0.0 +600.0 2.96336237e-07 0.003251383035479193 +7.07980829e-06 +2.394940585507335 0.001630963008879431 7.576307456712098 +102.8245241661817 141.06190766153344 347.97067601007785 +0.4 0.4 0.4 +0.0 0.0 0.0 +601.0 2.96336237e-07 0.0008037917662087488 +7.07980829e-06 +0.5920660537943178 0.0007213802108214524 2.389162061972422 +131.06788341462484 323.2321573259845 70.0121031471566 +0.4 0.4 0.4 +0.0 0.0 0.0 +602.0 2.96336237e-07 0.00031217744297902224 +7.07980829e-06 +0.22994720090251478 0.00030871911273242983 0.3459312765581275 +202.62648951170405 203.82198400891744 203.87635197029647 +0.4 0.4 0.4 +0.0 0.0 0.0 +603.0 2.96336237e-07 0.0019052077650725712 +7.07980829e-06 +1.4033595398038192 0.0010517567411638877 7.236562515014696 +42.94701433835536 253.2677416745719 214.6279211388312 +0.4 0.4 0.4 +0.0 0.0 0.0 +604.0 2.96336237e-07 0.0005639353501258678 +7.07980829e-06 +0.415389894971165 0.001251950065233756 0.04115413323433487 +123.64172924201583 97.5090925740975 219.3676930750815 +0.4 0.4 0.4 +0.0 0.0 0.0 +605.0 2.96336237e-07 0.0008162820050460149 +7.07980829e-06 +0.6012662555508111 0.0007676231845837971 4.744473889977715 +57.08898789584103 52.682171100489235 345.59820093224397 +0.4 0.4 0.4 +0.0 0.0 0.0 +606.0 2.96336237e-07 0.003258024201738965 +7.07980829e-06 +2.3998324110588225 0.0001344199983331823 7.195320590308699 +149.8789211769831 232.34004143297224 20.78144650478375 +0.4 0.4 0.4 +0.0 0.0 0.0 +607.0 2.96336237e-07 0.000818478166276205 +7.07980829e-06 +0.6028839288932338 7.619711362721837e-05 1.582109832541075 +66.40045877569965 266.40990238571675 151.5736391228142 +0.4 0.4 0.4 +0.0 0.0 0.0 +608.0 2.96336237e-07 0.00026181785846330946 +7.07980829e-06 +0.19285276708469426 0.0016842003747065332 0.037999884642444644 +172.67468602923137 328.5727689535254 200.22342970631107 +0.4 0.4 0.4 +0.0 0.0 0.0 +609.0 2.96336237e-07 0.0005906305617148067 +7.07980829e-06 +0.4350533566351437 0.0013220093252810908 4.485287553433146 +85.1645899361914 15.799195242711468 275.19440166281646 +0.4 0.4 0.4 +0.0 0.0 0.0 +610.0 2.96336237e-07 0.00032702729366690516 +7.07980829e-06 +0.24088547231288193 7.239649384495158e-05 9.34505013261343 +301.3019304591288 335.6101116776717 235.56122618193643 +0.4 0.4 0.4 +0.0 0.0 0.0 +611.0 2.96336237e-07 0.005068804676918208 +7.07980829e-06 +3.733637626909645 0.000296354861569827 5.064043667693064 +232.80870301152322 288.950474782517 198.78340556645938 +0.4 0.4 0.4 +0.0 0.0 0.0 +612.0 2.96336237e-07 0.0004350708241459647 +7.07980829e-06 +0.3204694011586146 0.001607124776444409 1.0855739782503697 +31.890025121702593 247.87942399451754 178.5652208474234 +0.4 0.4 0.4 +0.0 0.0 0.0 +613.0 2.96336237e-07 0.0001445964642723686 +7.07980829e-06 +0.10650850331318125 0.00012408216834281383 5.256181079391067 +53.409562736385524 8.005838299167175 31.765234187618567 +0.4 0.4 0.4 +0.0 0.0 0.0 +614.0 2.96336237e-07 0.001037340939048294 +7.07980829e-06 +0.7640963518679676 0.00013706352333168513 8.464907155099446 +13.166394059277055 330.2140099724791 183.4900568440762 +0.4 0.4 0.4 +0.0 0.0 0.0 +615.0 2.96336237e-07 0.0001853996130910315 +7.07980829e-06 +0.13656374935954846 0.0012220329386595716 3.5161206014426596 +277.68898473237715 164.25753427871146 175.4559030865875 +0.4 0.4 0.4 +0.0 0.0 0.0 +616.0 2.96336237e-07 0.0030600086446074476 +7.07980829e-06 +2.2539758665787524 0.001938170619110775 10.991957090603162 +169.56250753355766 253.61474809359726 333.56278601175336 +0.4 0.4 0.4 +0.0 0.0 0.0 +617.0 2.96336237e-07 0.0001933510892994848 +7.07980829e-06 +0.14242073787136622 5.59282843625155e-05 2.493053399120122 +278.1744327941427 63.62100350694788 315.8316048030788 +0.4 0.4 0.4 +0.0 0.0 0.0 +618.0 2.96336237e-07 0.0001649118494017696 +7.07980829e-06 +0.12147264005920569 0.00015945612176493138 5.871601357082228 +346.9485775057369 207.28250697682012 95.52624383984607 +0.4 0.4 0.4 +0.0 0.0 0.0 +619.0 2.96336237e-07 0.00027887053207297185 +7.07980829e-06 +0.20541361878181558 0.00093405207335318 8.810722728327729 +229.82532153182538 238.9585445114894 99.56029732602983 +0.4 0.4 0.4 +0.0 0.0 0.0 +620.0 2.96336237e-07 0.00022959293197398893 +7.07980829e-06 +0.16911616531489085 0.00033642908510491933 0.7047005877969347 +52.63028151883537 46.299069317996285 148.8642116985476 +0.4 0.4 0.4 +0.0 0.0 0.0 +621.0 2.96336237e-07 0.0006079587867474103 +7.07980829e-06 +0.44781717712400537 0.0013185468969901452 7.308664230013674 +112.46886738432933 46.86784968040457 285.07913941124656 +0.4 0.4 0.4 +0.0 0.0 0.0 +622.0 2.96336237e-07 0.0026061845394853432 +7.07980829e-06 +1.9196929610648872 0.0012083646380991453 6.640368790446349 +33.235414808784235 244.45399861956838 50.2951600707005 +0.4 0.4 0.4 +0.0 0.0 0.0 +623.0 2.96336237e-07 0.0003170110547748826 +7.07980829e-06 +0.23350759749011243 0.0015671626539036127 5.2729849043237245 +212.27489278714967 350.2070572217914 272.5174350775053 +0.4 0.4 0.4 +0.0 0.0 0.0 +624.0 2.96336237e-07 0.001730607217961456 +7.07980829e-06 +1.2747502889203512 0.0011308593104387016 5.277543759453205 +121.65950877291856 122.31688340803859 240.58549078686895 +0.4 0.4 0.4 +0.0 0.0 0.0 +625.0 2.96336237e-07 0.00045971176710267036 +7.07980829e-06 +0.3386197063389724 0.0019245478296946632 6.706216859920054 +120.32281524162406 290.819121967765 289.80547811454966 +0.4 0.4 0.4 +0.0 0.0 0.0 +626.0 2.96336237e-07 0.0002908459664453671 +7.07980829e-06 +0.21423462002792132 0.001969455049293789 11.085891427221117 +132.95197570547631 28.5155536215231 27.955901095355458 +0.4 0.4 0.4 +0.0 0.0 0.0 +627.0 2.96336237e-07 0.0005361763985903277 +7.07980829e-06 +0.39494289167498225 0.0006466901925786029 1.7275362827264746 +52.27335330682294 171.19288612108963 40.59209846221847 +0.4 0.4 0.4 +0.0 0.0 0.0 +628.0 2.96336237e-07 0.00023450395183713944 +7.07980829e-06 +0.17273358001446604 0.0012843551732391793 0.240042602593119 +204.30976402358672 291.4345369683879 127.56746664520237 +0.4 0.4 0.4 +0.0 0.0 0.0 +629.0 2.96336237e-07 0.00016800600223417086 +7.07980829e-06 +0.12375176623880946 0.0009103926418732471 7.69965215426651 +72.52068660068198 60.65498279678075 309.48605631919054 +0.4 0.4 0.4 +0.0 0.0 0.0 +630.0 2.96336237e-07 0.0007723627532455746 +7.07980829e-06 +0.5689157150349078 0.0019387307530750579 7.7625148511423765 +15.896642110598476 241.9063891364222 175.27318973415365 +0.4 0.4 0.4 +0.0 0.0 0.0 +631.0 2.96336237e-07 0.002486831247250957 +7.07980829e-06 +1.8317783596577595 0.0016743653466072485 0.7366777508667895 +3.356802695185532 59.64222825547303 84.47374524883585 +0.4 0.4 0.4 +0.0 0.0 0.0 +632.0 2.96336237e-07 0.0009871990228380316 +7.07980829e-06 +0.7271622506388373 0.0004894926225488888 0.8463098189096294 +190.14793558849976 239.45267806069756 339.5271823753155 +0.4 0.4 0.4 +0.0 0.0 0.0 +633.0 2.96336237e-07 0.0024870247797498914 +7.07980829e-06 +1.8319209140203971 0.0018232071393422975 4.649935149793254 +24.48792011915197 256.5074942589969 27.33961953231162 +0.4 0.4 0.4 +0.0 0.0 0.0 +634.0 2.96336237e-07 0.001226253834333867 +7.07980829e-06 +0.9032479544654253 0.00035321447020389055 7.67738566283 +321.6636415432153 24.46232049015446 174.35299257792914 +0.4 0.4 0.4 +0.0 0.0 0.0 +635.0 2.96336237e-07 0.0001952149125384996 +7.07980829e-06 +0.14379361392768433 0.0014748479195456098 5.716360603748947 +186.838721744644 96.22300231415029 253.21447381830825 +0.4 0.4 0.4 +0.0 0.0 0.0 +636.0 2.96336237e-07 0.0001421534976608017 +7.07980829e-06 +0.10470903526428106 0.0004282321287474031 1.8946056877858317 +125.71925949311029 37.17364830551126 314.9302159306426 +0.4 0.4 0.4 +0.0 0.0 0.0 +637.0 2.96336237e-07 0.00013684327484605717 +7.07980829e-06 +0.10079757112783726 0.0011260152644128496 4.954417366881907 +197.40749831124947 246.4163541945344 127.46513997641759 +0.4 0.4 0.4 +0.0 0.0 0.0 +638.0 2.96336237e-07 0.0032242109199887713 +7.07980829e-06 +2.3749258405597247 0.0013893562078547517 8.490722761944754 +174.42451874149117 109.56331625471293 139.64190938036091 +0.4 0.4 0.4 +0.0 0.0 0.0 +639.0 2.96336237e-07 0.000255630348446776 +7.07980829e-06 +0.188295100793111 0.0004968066058958826 8.200683059805339 +26.93767816334544 184.29122347481268 83.5885263298429 +0.4 0.4 0.4 +0.0 0.0 0.0 +640.0 2.96336237e-07 0.003560890948578924 +7.07980829e-06 +2.622921433820083 0.0003197885895524075 8.459530567219446 +311.9819100543256 211.94534747535357 181.0177979938429 +0.4 0.4 0.4 +0.0 0.0 0.0 +641.0 2.96336237e-07 0.0026795472569350305 +7.07980829e-06 +1.9737313033844868 0.0004561766998506409 4.075608711482687 +202.22665550882067 124.25186617516704 281.22245218250043 +0.4 0.4 0.4 +0.0 0.0 0.0 +642.0 2.96336237e-07 0.0004998714824267933 +7.07980829e-06 +0.3682010048456824 0.0008391449584152692 4.540101495200403 +197.81257584084372 128.159905230966 163.6508318701311 +0.4 0.4 0.4 +0.0 0.0 0.0 +643.0 2.96336237e-07 0.0002474592404428257 +7.07980829e-06 +0.1822763334028394 0.0003184451665412306 0.04858474776077769 +155.96555493402232 337.1480022566122 169.02144916062696 +0.4 0.4 0.4 +0.0 0.0 0.0 +644.0 2.96336237e-07 0.0009028080095618069 +7.07980829e-06 +0.6650005611233689 0.00192871250885523 2.033364793084355 +35.754249594685135 237.97464340203368 331.7190243653989 +0.4 0.4 0.4 +0.0 0.0 0.0 +645.0 2.96336237e-07 0.00018159315424751834 +7.07980829e-06 +0.13375994474104727 9.811202791236438e-05 2.2579088584966875 +164.16846395501065 169.46331898131555 187.08397642347268 +0.4 0.4 0.4 +0.0 0.0 0.0 +646.0 2.96336237e-07 0.0001969438005298225 +7.07980829e-06 +0.145067097849152 7.98948634108138e-05 5.056301536012419 +54.6012366078569 152.94987752228718 293.59100133569535 +0.4 0.4 0.4 +0.0 0.0 0.0 +647.0 2.96336237e-07 0.00018253913903001993 +7.07980829e-06 +0.134456748939188 0.0007885297463161409 7.998766353585145 +329.66308300857037 142.40091293152295 195.08877923911388 +0.4 0.4 0.4 +0.0 0.0 0.0 +648.0 2.96336237e-07 0.0010012008611789895 +7.07980829e-06 +0.7374758834986245 0.0008944335972933425 3.08910296816031 +308.0829434011404 88.44126340113061 61.511908742687396 +0.4 0.4 0.4 +0.0 0.0 0.0 +649.0 2.96336237e-07 0.00017920413203351859 +7.07980829e-06 +0.13200021166821252 0.001973824026582865 2.9139223601352673 +337.9176766578831 339.15607143232756 291.8971934171335 +0.4 0.4 0.4 +0.0 0.0 0.0 +650.0 2.96336237e-07 0.0005424370023288993 +7.07980829e-06 +0.3995543981691946 0.0004742912607023718 5.689270060432094 +271.4202719848906 1.5739119660578094 227.40922594438504 +0.4 0.4 0.4 +0.0 0.0 0.0 +651.0 2.96336237e-07 0.0008854653444048179 +7.07980829e-06 +0.6522261041639429 0.0018448416347183673 4.451400094266383 +189.13747672082027 222.415694177009 8.122993879845518 +0.4 0.4 0.4 +0.0 0.0 0.0 +652.0 2.96336237e-07 0.0008694532655168269 +7.07980829e-06 +0.6404317455267905 0.0004377978709931798 10.690648451723188 +258.4604132749266 240.45445892419482 299.1240070410905 +0.4 0.4 0.4 +0.0 0.0 0.0 +653.0 2.96336237e-07 0.0005874066758094755 +7.07980829e-06 +0.43267867019756595 0.0006281792952345125 5.71369078021565 +54.584105248947814 341.5389079819305 339.8448963020495 +0.4 0.4 0.4 +0.0 0.0 0.0 +654.0 2.96336237e-07 0.00015901474490431352 +7.07980829e-06 +0.11712888395793357 0.00033420516718611843 10.079639002914915 +12.72024175587819 54.80935584066693 290.1403830678467 +0.4 0.4 0.4 +0.0 0.0 0.0 +655.0 2.96336237e-07 0.0008367144613707807 +7.07980829e-06 +0.6163166259254526 0.0006138384183936136 2.1220325309486077 +330.18413832377274 27.996198028777396 126.1181923299269 +0.4 0.4 0.4 +0.0 0.0 0.0 +656.0 2.96336237e-07 0.000817617054822833 +7.07980829e-06 +0.6022496416542891 0.0007079234911322488 4.880614628768484 +112.2946253899763 291.1896120333841 335.56499821019673 +0.4 0.4 0.4 +0.0 0.0 0.0 +657.0 2.96336237e-07 0.00030642858518189293 +7.07980829e-06 +0.22571264203682084 0.0001141107467010895 0.5281438837468506 +254.84352251320942 61.46898436421913 176.76216336533523 +0.4 0.4 0.4 +0.0 0.0 0.0 +658.0 2.96336237e-07 0.0004456773618062657 +7.07980829e-06 +0.3282820849418475 0.0004042465307940946 3.7503005974513846 +238.77939024376533 296.06082811160405 91.75212879566924 +0.4 0.4 0.4 +0.0 0.0 0.0 +659.0 2.96336237e-07 0.00024897193209457867 +7.07980829e-06 +0.18339056897293657 0.0014900248859833283 11.263834448814169 +347.22461050262575 279.3372667732881 191.89560719513707 +0.4 0.4 0.4 +0.0 0.0 0.0 +660.0 2.96336237e-07 0.00022666457893856436 +7.07980829e-06 +0.16695916582983994 0.0004164000259568861 10.44010411581719 +74.47573238247747 317.3036574166131 128.27636752925542 +0.4 0.4 0.4 +0.0 0.0 0.0 +661.0 2.96336237e-07 0.0005509794482643657 +7.07980829e-06 +0.4058466898638688 0.001868474142519383 4.290113023581601 +75.15165790995682 77.41956431569024 75.98320995463946 +0.4 0.4 0.4 +0.0 0.0 0.0 +662.0 2.96336237e-07 0.0008553855328424462 +7.07980829e-06 +0.6300695754716784 0.0003500264064981754 0.8756494453825668 +227.34439867668328 195.10245611576033 306.76358495203453 +0.4 0.4 0.4 +0.0 0.0 0.0 +663.0 2.96336237e-07 0.00021847646553867044 +7.07980829e-06 +0.1609278724121906 0.0015707531676115054 5.539447860380739 +316.2646884519082 19.14667473997313 195.6501405355072 +0.4 0.4 0.4 +0.0 0.0 0.0 +664.0 2.96336237e-07 0.0046299207857439595 +7.07980829e-06 +3.410359553600857 0.001896588298002862 6.312335279795444 +332.4966817409635 83.61093784848859 129.63382325605707 +0.4 0.4 0.4 +0.0 0.0 0.0 +665.0 2.96336237e-07 0.0006675378879534775 +7.07980829e-06 +0.4917026270908161 0.0018056644096763215 0.03984059849205596 +326.2892439770493 154.1995291255449 275.56243137649767 +0.4 0.4 0.4 +0.0 0.0 0.0 +666.0 2.96336237e-07 0.00016422724719542423 +7.07980829e-06 +0.12096836800297199 0.0010632375940384557 1.898596693109538 +284.6339609263093 177.91170359269552 170.17335060450043 +0.4 0.4 0.4 +0.0 0.0 0.0 +667.0 2.96336237e-07 0.00013928586120913445 +7.07980829e-06 +0.1025967590889931 0.0011505802075445371 8.0853667703526 +17.643915781547662 37.81574822381601 147.74946480962396 +0.4 0.4 0.4 +0.0 0.0 0.0 +668.0 2.96336237e-07 0.00030551019102325244 +7.07980829e-06 +0.2250361608532691 0.0007463695616484125 2.9654372783413208 +346.499205866674 192.7895672860623 346.62919463902944 +0.4 0.4 0.4 +0.0 0.0 0.0 +669.0 2.96336237e-07 0.00046071357116781613 +7.07980829e-06 +0.33935762653728896 0.0005718751041345676 10.28285976001631 +200.006881979692 41.74957018172289 77.92610778956914 +0.4 0.4 0.4 +0.0 0.0 0.0 +670.0 2.96336237e-07 0.0004757090054981114 +7.07980829e-06 +0.3504031335978378 0.0016231463843525307 8.030331289553216 +15.924355318435744 268.6979116032126 60.52120112419434 +0.4 0.4 0.4 +0.0 0.0 0.0 +671.0 2.96336237e-07 0.0006120138337095581 +7.07980829e-06 +0.4508040895978089 0.000265285576125677 6.8369691834517505 +316.3659801854172 71.741967981769 201.95398950257825 +0.4 0.4 0.4 +0.0 0.0 0.0 +672.0 2.96336237e-07 0.0002678933984330214 +7.07980829e-06 +0.19732795720949928 0.0014827227710590524 9.026813439297806 +309.574481788882 64.29359356770362 315.62242388091744 +0.4 0.4 0.4 +0.0 0.0 0.0 +673.0 2.96336237e-07 0.00018963216147158642 +7.07980829e-06 +0.13968140784090927 0.0002432662323447128 1.898068040476368 +32.77520487590174 187.89963303352357 123.05929733557318 +0.4 0.4 0.4 +0.0 0.0 0.0 +674.0 2.96336237e-07 0.000434625653282486 +7.07980829e-06 +0.32014149215595433 0.00022612721316125548 10.683120155053267 +110.32662597708337 10.31254512885041 235.1266578745043 +0.4 0.4 0.4 +0.0 0.0 0.0 +675.0 2.96336237e-07 0.0001472189376390587 +7.07980829e-06 +0.10844019448329664 0.0009411317524646069 6.1396351895991 +81.4179177567502 358.59783028280935 140.88338828782435 +0.4 0.4 0.4 +0.0 0.0 0.0 +676.0 2.96336237e-07 0.000155275679541639 +7.07980829e-06 +0.11437472079376051 0.00014078280759094789 6.80643269318097 +100.47008138693961 234.06621211429206 30.227410402726072 +0.4 0.4 0.4 +0.0 0.0 0.0 +677.0 2.96336237e-07 0.00015085363059412783 +7.07980829e-06 +0.11111747783593914 0.0019035866271859907 9.206963338815642 +143.93390754803625 255.0214135079393 164.96961100176586 +0.4 0.4 0.4 +0.0 0.0 0.0 +678.0 2.96336237e-07 0.0006284217651180013 +7.07980829e-06 +0.4628900297732671 0.00047998741958668416 1.0303231727163369 +64.52588412504464 11.451639250708514 337.19518620904057 +0.4 0.4 0.4 +0.0 0.0 0.0 +679.0 2.96336237e-07 0.0005667897074819582 +7.07980829e-06 +0.41749238987965404 0.0016594297588471735 8.093638105658696 +206.58695034847358 20.457138485484986 195.3333738138891 +0.4 0.4 0.4 +0.0 0.0 0.0 +680.0 2.96336237e-07 0.0003023018289134171 +7.07980829e-06 +0.22267290910901064 0.0007335787751952187 10.488189469864082 +332.07166362509565 297.83121697771855 96.42669951726079 +0.4 0.4 0.4 +0.0 0.0 0.0 +681.0 2.96336237e-07 0.0002666793468056547 +7.07980829e-06 +0.19643369729500934 0.0009795508494005235 2.132504721935984 +88.01559085201606 259.0222461437196 143.73866315216463 +0.4 0.4 0.4 +0.0 0.0 0.0 +682.0 2.96336237e-07 0.00018903218193703922 +7.07980829e-06 +0.13923946811185206 6.602681404781175e-05 4.603002472462074 +288.85709177130957 136.40944246624719 329.89625217303643 +0.4 0.4 0.4 +0.0 0.0 0.0 +683.0 2.96336237e-07 0.00032821229707185543 +7.07980829e-06 +0.2417583355583105 0.0015448242869727717 10.177886468554314 +197.6042898566892 248.32269227881912 224.3736884568563 +0.4 0.4 0.4 +0.0 0.0 0.0 +684.0 2.96336237e-07 0.0001476157870951627 +7.07980829e-06 +0.10873251035576964 0.0005980920597091385 8.435273501160374 +342.7004387606334 332.6896722540702 309.5558133299631 +0.4 0.4 0.4 +0.0 0.0 0.0 +685.0 2.96336237e-07 0.00023150245382020737 +7.07980829e-06 +0.17052270256950486 0.0013616593545773424 10.890136087894044 +304.6528113313791 61.04197597194677 92.14557773468027 +0.4 0.4 0.4 +0.0 0.0 0.0 +686.0 2.96336237e-07 0.002179631735533323 +7.07980829e-06 +1.6054978598112797 0.0018262799514842743 4.4325784016024885 +3.7549247937623407 183.00283602981585 201.8865183895837 +0.4 0.4 0.4 +0.0 0.0 0.0 +687.0 2.96336237e-07 0.0013158755088717858 +7.07980829e-06 +0.9692625037663991 0.0017704630109185754 8.578872157801683 +254.43921029038702 150.26756994645848 147.04436858266612 +0.4 0.4 0.4 +0.0 0.0 0.0 +688.0 2.96336237e-07 0.0004939073938160034 +7.07980829e-06 +0.3638079088266409 3.476963813007497e-05 7.372412467124726 +174.2397072432993 36.804476049813175 252.09380653575596 +0.4 0.4 0.4 +0.0 0.0 0.0 +689.0 2.96336237e-07 0.0009275705379094532 +7.07980829e-06 +0.6832404250497098 0.0012888767115054062 6.14322940730504 +289.9180198728175 52.50586858445317 313.02109249593957 +0.4 0.4 0.4 +0.0 0.0 0.0 +690.0 2.96336237e-07 0.001703767654000007 +7.07980829e-06 +1.2549804985489377 0.0012611754043086853 6.907937339024762 +21.593275472050017 306.5247233767375 334.8416878198467 +0.4 0.4 0.4 +0.0 0.0 0.0 +691.0 2.96336237e-07 0.00014982533379061578 +7.07980829e-06 +0.11036004331598093 0.0010076489714658532 5.873722340739745 +130.13028564258022 280.7695443082286 332.320263822961 +0.4 0.4 0.4 +0.0 0.0 0.0 +692.0 2.96336237e-07 0.00019578934965292167 +7.07980829e-06 +0.14421673933128612 0.0015622315821619312 11.09482074137682 +159.1055068305897 332.4641004637756 66.24381345940542 +0.4 0.4 0.4 +0.0 0.0 0.0 +693.0 2.96336237e-07 0.0005403743795116072 +7.07980829e-06 +0.3980350880652103 0.0011789556791269224 9.365646318173521 +179.08988980834505 182.25478313354176 230.60531044742112 +0.4 0.4 0.4 +0.0 0.0 0.0 +694.0 2.96336237e-07 0.00013842399008811172 +7.07980829e-06 +0.10196191228543591 0.001511674657718188 6.479749813751055 +303.7457569578909 58.507652243295375 15.998340357817439 +0.4 0.4 0.4 +0.0 0.0 0.0 +695.0 2.96336237e-07 0.000786370680814055 +7.07980829e-06 +0.5792338331669525 0.0015758918681709252 2.223362196868569 +345.57393152987873 54.32062551066704 256.30215707274664 +0.4 0.4 0.4 +0.0 0.0 0.0 +696.0 2.96336237e-07 0.00023215604873114143 +7.07980829e-06 +0.17100413492047556 0.000896305323811314 1.477365418838949 +283.2291601972887 120.31150953749442 10.525291736890637 +0.4 0.4 0.4 +0.0 0.0 0.0 +697.0 2.96336237e-07 0.0009573509260265156 +7.07980829e-06 +0.7051764010253001 0.0019473619911553302 5.46883494082748 +134.36185274508637 184.44009607520738 171.13748203011968 +0.4 0.4 0.4 +0.0 0.0 0.0 +698.0 2.96336237e-07 0.000986443639892288 +7.07980829e-06 +0.7266058421029556 0.0017744648819095605 2.4134341797858845 +213.37357339309585 70.55466510705511 278.87927999605495 +0.4 0.4 0.4 +0.0 0.0 0.0 +699.0 2.96336237e-07 0.0005347437515155118 +7.07980829e-06 +0.3938876162470352 4.179300896003979e-05 8.223098115975583 +85.94541014994134 271.8418525346638 50.56502453799913 +0.4 0.4 0.4 +0.0 0.0 0.0 +700.0 2.96336237e-07 0.0011825627283298537 +7.07980829e-06 +0.8710654641673258 0.0005109129898239557 7.391471968575326 +27.768736733955453 87.73669240747158 148.38631012868396 +0.4 0.4 0.4 +0.0 0.0 0.0 +701.0 2.96336237e-07 0.0008642834152835138 +7.07980829e-06 +0.63662367861814 0.0015328328582410093 10.518483860791719 +1.324842387549117 251.57031937929105 356.72404795950865 +0.4 0.4 0.4 +0.0 0.0 0.0 +702.0 2.96336237e-07 0.00017933377161084873 +7.07980829e-06 +0.13209570305813736 0.001322871106967368 1.783841837906193 +146.87654874467452 95.91665072944734 45.62504352116719 +0.4 0.4 0.4 +0.0 0.0 0.0 +703.0 2.96336237e-07 0.00014018472613653047 +7.07980829e-06 +0.10325885520994202 0.0017386158889329596 2.9940039457503267 +311.39999279407516 208.4438630978695 314.67438404243035 +0.4 0.4 0.4 +0.0 0.0 0.0 +704.0 2.96336237e-07 0.00015540204600507363 +7.07980829e-06 +0.11446780123633656 0.0006725612422352022 4.917737372954217 +283.5772959714623 71.2268392860552 20.739701307542546 +0.4 0.4 0.4 +0.0 0.0 0.0 +705.0 2.96336237e-07 0.0010803722366743227 +7.07980829e-06 +0.7957928330290784 0.001841262773469651 5.178751748100323 +325.4814860257893 191.2892219329175 245.12287325303154 +0.4 0.4 0.4 +0.0 0.0 0.0 +706.0 2.96336237e-07 0.0003336506402990743 +7.07980829e-06 +0.245764172081003 0.0008654037237796469 9.939631759610565 +230.74275967542837 22.980689444767926 193.7582323009708 +0.4 0.4 0.4 +0.0 0.0 0.0 +707.0 2.96336237e-07 0.0001898928096710243 +7.07980829e-06 +0.1398733990472856 9.676663150501012e-05 8.314426882477536 +147.19261490448886 240.45701745184593 27.02600158549476 +0.4 0.4 0.4 +0.0 0.0 0.0 +708.0 2.96336237e-07 0.0006354028822312142 +7.07980829e-06 +0.46803226017927313 0.0005896313259031769 1.5927514004708827 +145.89505669147474 320.41144833715174 224.47590179873464 +0.4 0.4 0.4 +0.0 0.0 0.0 +709.0 2.96336237e-07 0.00034681023979569645 +7.07980829e-06 +0.25545741910221637 0.0007136334057754165 4.50399133200968 +172.94403815595263 133.4379306179208 151.9923540365337 +0.4 0.4 0.4 +0.0 0.0 0.0 +710.0 2.96336237e-07 0.0004473427981548912 +7.07980829e-06 +0.3295088309328238 0.00013825366577298724 0.6640671450405241 +113.36805573037367 195.17836298394744 272.68190859714724 +0.4 0.4 0.4 +0.0 0.0 0.0 +711.0 2.96336237e-07 0.0004337909237351195 +7.07980829e-06 +0.3195266376004942 0.0005762012937554643 6.664872975247961 +125.97058901306497 139.46256025551878 194.88332638602157 +0.4 0.4 0.4 +0.0 0.0 0.0 +712.0 2.96336237e-07 0.00022887849633253414 +7.07980829e-06 +0.16858991820872643 0.0009324015520148652 3.87237174229875 +210.3622711985168 217.76685945633358 226.25184493096793 +0.4 0.4 0.4 +0.0 0.0 0.0 +713.0 2.96336237e-07 0.0001370280669148757 +7.07980829e-06 +0.10093368736534727 0.0009578400499910475 7.837345853171855 +211.1012710762346 352.555679574253 98.72806588507845 +0.4 0.4 0.4 +0.0 0.0 0.0 +714.0 2.96336237e-07 0.0003802455491822092 +7.07980829e-06 +0.280085578431636 0.0012200235046621196 8.03839773670988 +118.75583481423674 351.88628181557317 159.5308600334554 +0.4 0.4 0.4 +0.0 0.0 0.0 +715.0 2.96336237e-07 0.0012710618691298007 +7.07980829e-06 +0.9362531648385521 0.001960157851242125 10.763840351695578 +43.05187730426613 115.02995672645146 27.80931454782792 +0.4 0.4 0.4 +0.0 0.0 0.0 +716.0 2.96336237e-07 0.00015113095705303057 +7.07980829e-06 +0.11132175410379613 0.00198126814743763 6.286001060098768 +87.14091069310513 338.04209973091486 55.507811122078934 +0.4 0.4 0.4 +0.0 0.0 0.0 +717.0 2.96336237e-07 0.00050657397189937 +7.07980829e-06 +0.3731380005446354 0.0016662782222925448 3.2831614880553754 +78.53670413788092 281.76281833275186 241.33812351763282 +0.4 0.4 0.4 +0.0 0.0 0.0 +718.0 2.96336237e-07 0.00033871726387646765 +7.07980829e-06 +0.24949620312889192 0.000652351960471266 9.107336295930738 +293.4968146155879 130.3880884808986 356.21004108918163 +0.4 0.4 0.4 +0.0 0.0 0.0 +719.0 2.96336237e-07 0.0008529081508180829 +7.07980829e-06 +0.6282447573277652 0.0001692190026859606 0.4135194149743559 +183.7778900459685 3.1747878073784532 37.93304287401226 +0.4 0.4 0.4 +0.0 0.0 0.0 +720.0 2.96336237e-07 0.0014504542485699796 +7.07980829e-06 +1.0683920379162042 0.0014337151872125485 0.15507329878585382 +222.75507709194997 353.7339650120208 253.22449111367806 +0.4 0.4 0.4 +0.0 0.0 0.0 +721.0 2.96336237e-07 0.0003995851699871754 +7.07980829e-06 +0.29433097562683586 5.018617293303635e-06 4.606276855402575 +196.30495919528175 80.02677322973838 261.5544103562484 +0.4 0.4 0.4 +0.0 0.0 0.0 +722.0 2.96336237e-07 0.0004663049126723303 +7.07980829e-06 +0.3434761602660039 0.0014277603419004838 5.4988869942119445 +18.336750193775515 61.72061996821379 24.32664588396063 +0.4 0.4 0.4 +0.0 0.0 0.0 +723.0 2.96336237e-07 0.00016160736072448088 +7.07980829e-06 +0.11903858231785998 0.0014582262824983866 5.448228802161735 +118.05515219608522 99.46467963418462 74.32735266079698 +0.4 0.4 0.4 +0.0 0.0 0.0 +724.0 2.96336237e-07 0.00030145139394952675 +7.07980829e-06 +0.22204648607975494 0.0002651624829284599 3.4839261536774204 +353.7033605924432 26.63014034431109 258.883489782699 +0.4 0.4 0.4 +0.0 0.0 0.0 +725.0 2.96336237e-07 0.00019587870513939723 +7.07980829e-06 +0.14428255780876567 0.0005886921483224232 7.122349866659202 +187.9185724288045 277.49814412774685 339.1040220890197 +0.4 0.4 0.4 +0.0 0.0 0.0 +726.0 2.96336237e-07 0.00018223697272332903 +7.07980829e-06 +0.1342341758545744 0.001993061737343073 1.5186597635745005 +186.16266229109107 120.82284316697938 36.16980590190327 +0.4 0.4 0.4 +0.0 0.0 0.0 +727.0 2.96336237e-07 0.002208504304487439 +7.07980829e-06 +1.6267651440535622 0.001997985158804577 0.8593148249474335 +72.18814289875074 80.88938512039681 349.70856370829034 +0.4 0.4 0.4 +0.0 0.0 0.0 +728.0 2.96336237e-07 0.0008108208240677552 +7.07980829e-06 +0.597243596938487 0.0005039148462018542 4.7811402892298025 +218.77516459671426 24.768981392881912 280.2967231155555 +0.4 0.4 0.4 +0.0 0.0 0.0 +729.0 2.96336237e-07 0.001132726282941681 +7.07980829e-06 +0.8343563701002331 0.00039414985266650896 3.6037723479865944 +83.15750376306154 75.42354496372273 97.74895243636577 +0.4 0.4 0.4 +0.0 0.0 0.0 +730.0 2.96336237e-07 0.00032727320517223467 +7.07980829e-06 +0.24106660859800436 0.00037987141173158616 10.274740295263058 +197.91773818633536 352.5865595760306 261.0191288110265 +0.4 0.4 0.4 +0.0 0.0 0.0 +731.0 2.96336237e-07 0.0009752402802714085 +7.07980829e-06 +0.7183535444323048 0.0013231086235482108 0.9592225266971143 +274.38243588304704 344.23442375404215 260.73810812560674 +0.4 0.4 0.4 +0.0 0.0 0.0 +732.0 2.96336237e-07 0.0011428393782413875 +7.07980829e-06 +0.8418055885140829 0.0010192051936423027 2.1830154450298775 +22.895436977403044 357.1218738349401 85.62306577590662 +0.4 0.4 0.4 +0.0 0.0 0.0 +733.0 2.96336237e-07 0.0004572602444272732 +7.07980829e-06 +0.3368139359675542 0.000555346752112463 6.319773644161184 +113.6762916782172 224.86454862560015 165.82655056882967 +0.4 0.4 0.4 +0.0 0.0 0.0 +734.0 2.96336237e-07 0.00015778980918020817 +7.07980829e-06 +0.11622660691204703 0.0012360086888716822 3.7103248613231874 +141.15874516414368 232.6102120136255 8.479461773646221 +0.4 0.4 0.4 +0.0 0.0 0.0 +735.0 2.96336237e-07 0.0014942829058571304 +7.07980829e-06 +1.1006758472982074 0.000349403337070044 0.14346873743832864 +76.87539447076438 105.24609325235642 249.8553971165713 +0.4 0.4 0.4 +0.0 0.0 0.0 +736.0 2.96336237e-07 0.00014637261873858538 +7.07980829e-06 +0.10781680331070699 0.0012736508360480675 11.221630354955153 +129.42714487972242 65.22069766832125 279.98812006676945 +0.4 0.4 0.4 +0.0 0.0 0.0 +737.0 2.96336237e-07 0.0008608180061731988 +7.07980829e-06 +0.6340710882794698 0.001511988582795197 4.2441144550867795 +249.39391931471766 309.17457420265424 17.839708517509724 +0.4 0.4 0.4 +0.0 0.0 0.0 +738.0 2.96336237e-07 0.00022551393979595722 +7.07980829e-06 +0.16611161500244348 0.0017230161759853974 2.754899549887548 +284.2214645492094 329.7467797502512 345.5511870893493 +0.4 0.4 0.4 +0.0 0.0 0.0 +739.0 2.96336237e-07 0.0008344058534459075 +7.07980829e-06 +0.6146161253215647 0.0011901584859750538 0.6692427980735299 +220.04955308835034 17.55046868783327 22.589151763506287 +0.4 0.4 0.4 +0.0 0.0 0.0 +740.0 2.96336237e-07 0.0003864765014179772 +7.07980829e-06 +0.28467524388567844 0.0005656004790699498 0.0869755058384638 +36.08205324642893 11.74038337500243 191.43021754215243 +0.4 0.4 0.4 +0.0 0.0 0.0 +741.0 2.96336237e-07 0.00014406405961522867 +7.07980829e-06 +0.10611633865359367 0.0004104958381684452 5.536332415834654 +306.2252048683907 222.88495242694134 297.9257683728652 +0.4 0.4 0.4 +0.0 0.0 0.0 +742.0 2.96336237e-07 0.0002106722970417079 +7.07980829e-06 +0.15517938948490648 0.0016045777089143468 6.257405036858542 +132.6281615688201 124.58164025052454 209.3185616951079 +0.4 0.4 0.4 +0.0 0.0 0.0 +743.0 2.96336237e-07 0.00034739878913081577 +7.07980829e-06 +0.2558909394453656 0.0008848410000050655 1.8800883236189605 +22.59000938767972 244.71224492603585 203.02373720932383 +0.4 0.4 0.4 +0.0 0.0 0.0 +744.0 2.96336237e-07 0.0002416141226863816 +7.07980829e-06 +0.17797087028476838 0.0018027797509316973 5.535730075592067 +144.6725556217197 254.9396114858643 294.6395873317908 +0.4 0.4 0.4 +0.0 0.0 0.0 +745.0 2.96336237e-07 0.000562846985628491 +7.07980829e-06 +0.4145882151081191 0.0017929642136530707 9.086241206217649 +353.3526691916557 314.79294099522104 259.4798715415805 +0.4 0.4 0.4 +0.0 0.0 0.0 +746.0 2.96336237e-07 0.00028597602580276727 +7.07980829e-06 +0.21064746392643938 0.0011404320812687437 1.3497302415157837 +264.89618015841376 315.938364379284 213.05922299203462 +0.4 0.4 0.4 +0.0 0.0 0.0 +747.0 2.96336237e-07 0.0005955575301132271 +7.07980829e-06 +0.4386825188876773 0.001262635271510421 1.019380298177697 +326.28037068382815 239.50749192273528 357.0437637912174 +0.4 0.4 0.4 +0.0 0.0 0.0 +748.0 2.96336237e-07 0.0003194116973814109 +7.07980829e-06 +0.2352758900434459 0.0009268394605218976 2.8545622521287846 +301.8093959116166 73.63705470361427 196.66760197641878 +0.4 0.4 0.4 +0.0 0.0 0.0 +749.0 2.96336237e-07 0.00021345646348534076 +7.07980829e-06 +0.15723018237516379 0.0015428543506282974 5.245136896364564 +37.46583168672329 98.8444306387554 286.91754980834173 +0.4 0.4 0.4 +0.0 0.0 0.0 +750.0 2.96336237e-07 0.0018562879648262526 +7.07980829e-06 +1.3673256386096608 0.00019464130129659486 6.392431451247973 +13.671795434653754 256.8057573052545 208.9974818148667 +0.4 0.4 0.4 +0.0 0.0 0.0 +751.0 2.96336237e-07 0.0003438121044613112 +7.07980829e-06 +0.25324901858009685 0.0004849968083047293 0.6512227674260226 +191.72118211560357 27.38888088806392 215.418613343208 +0.4 0.4 0.4 +0.0 0.0 0.0 +752.0 2.96336237e-07 0.0007351719490103386 +7.07980829e-06 +0.5415212907241782 0.0017214586941266883 5.013572365171728 +1.1868998491342897 310.0545999201715 263.421684099375 +0.4 0.4 0.4 +0.0 0.0 0.0 +753.0 2.96336237e-07 0.0001440480205409621 +7.07980829e-06 +0.10610452441039445 0.001415155758078455 2.9168704913691466 +87.34460078326019 115.41238499588349 218.47853766179134 +0.4 0.4 0.4 +0.0 0.0 0.0 +754.0 2.96336237e-07 0.00016567726861439446 +7.07980829e-06 +0.12203644122235352 0.0007367694324498964 7.939696829581024 +144.80446947266682 334.6934128655556 334.96083232634686 +0.4 0.4 0.4 +0.0 0.0 0.0 +755.0 2.96336237e-07 0.003357132716724993 +7.07980829e-06 +2.4728348848736057 0.00109460936093632 7.57817818817873 +200.93402617764775 38.94546503077487 336.82864362635746 +0.4 0.4 0.4 +0.0 0.0 0.0 +756.0 2.96336237e-07 0.000239476354339221 +7.07980829e-06 +0.17639620863427682 0.001108603677540412 2.174346842575558 +204.07151110596655 298.80659272210426 94.77954703857242 +0.4 0.4 0.4 +0.0 0.0 0.0 +757.0 2.96336237e-07 0.0002247301690325285 +7.07980829e-06 +0.16553429624590613 2.286669973466227e-05 8.477343429801845 +104.59141545363481 254.52826278341865 156.39407168530036 +0.4 0.4 0.4 +0.0 0.0 0.0 +758.0 2.96336237e-07 0.00013690457719890955 +7.07980829e-06 +0.10084272591004262 0.0005270544426914094 1.2430379394875384 +18.23871682645244 274.6745175011331 46.74741417981779 +0.4 0.4 0.4 +0.0 0.0 0.0 +759.0 2.96336237e-07 0.0002564215369937045 +7.07980829e-06 +0.18887788342473297 0.0013769913442365858 5.516940557693017 +57.296249965262085 304.79426021501166 341.6907740411331 +0.4 0.4 0.4 +0.0 0.0 0.0 +760.0 2.96336237e-07 0.00032523412275674117 +7.07980829e-06 +0.23956463815011464 0.0004766588720606672 0.6849299933323854 +295.98639353183904 117.36140746706391 355.6278987307299 +0.4 0.4 0.4 +0.0 0.0 0.0 +761.0 2.96336237e-07 0.0006034806082832441 +7.07980829e-06 +0.44451858965032254 0.0015451262612941163 9.453687588841811 +203.39899116099176 75.07410352055902 288.420934960148 +0.4 0.4 0.4 +0.0 0.0 0.0 +762.0 2.96336237e-07 0.00015674806130235787 +7.07980829e-06 +0.11545926444722357 0.00022678197602867345 2.51397584832074 +154.11481001554114 316.5895802985698 144.8171785524458 +0.4 0.4 0.4 +0.0 0.0 0.0 +763.0 2.96336237e-07 0.00044591737566831286 +7.07980829e-06 +0.3284588770740044 0.000582023915909846 1.9042826267649233 +183.0490667929288 34.32821351074982 128.09899856474172 +0.4 0.4 0.4 +0.0 0.0 0.0 +764.0 2.96336237e-07 0.00020874189344392697 +7.07980829e-06 +0.15375747091293682 0.0013518925712033031 3.9213046414563917 +252.88051690821115 346.0891363946157 227.24651734444123 +0.4 0.4 0.4 +0.0 0.0 0.0 +765.0 2.96336237e-07 0.0005977027995281557 +7.07980829e-06 +0.44026270575972415 0.001706378820013462 3.665130790550011 +279.1441761599938 331.86968339138923 161.08982168644127 +0.4 0.4 0.4 +0.0 0.0 0.0 +766.0 2.96336237e-07 0.0005462104415519695 +7.07980829e-06 +0.40233388082124205 0.00045154828716743357 7.549631354241249 +166.25274596264225 139.83647490843492 241.36161695412613 +0.4 0.4 0.4 +0.0 0.0 0.0 +767.0 2.96336237e-07 0.0019508638604603097 +7.07980829e-06 +1.4369894242642867 0.0019299261931772004 4.408038074230426 +123.84920808275756 5.017403188848644 267.46104210371675 +0.4 0.4 0.4 +0.0 0.0 0.0 +768.0 2.96336237e-07 0.00021438100266887562 +7.07980829e-06 +0.15791118993083406 0.0019442717872762822 11.39841416830864 +231.35322832263287 339.9831170872492 170.62953355543732 +0.4 0.4 0.4 +0.0 0.0 0.0 +769.0 2.96336237e-07 0.00013637692054304016 +7.07980829e-06 +0.1004540585870711 0.0001344854299818731 2.9430162092938996 +101.18123245946741 16.977350858590118 217.85339551927711 +0.4 0.4 0.4 +0.0 0.0 0.0 +770.0 2.96336237e-07 0.00039628226188392717 +7.07980829e-06 +0.2918980821226399 0.0013619973696854474 0.467152728932887 +108.18991731689154 176.95159646304947 72.23870735210176 +0.4 0.4 0.4 +0.0 0.0 0.0 +771.0 2.96336237e-07 0.000698358333406906 +7.07980829e-06 +0.5144047002930133 0.0015421293318597141 11.415702042294306 +260.27523332282703 273.2602707005577 186.21628932692565 +0.4 0.4 0.4 +0.0 0.0 0.0 +772.0 2.96336237e-07 0.00028461336199966497 +7.07980829e-06 +0.20964373757035026 0.0013800293673098358 8.859667863354286 +125.68513477242199 61.52892104688898 229.49254655341616 +0.4 0.4 0.4 +0.0 0.0 0.0 +773.0 2.96336237e-07 0.0033019090419650742 +7.07980829e-06 +2.4321576043070934 7.592285081661148e-05 6.75835305766169 +278.44449561624015 201.0474604342087 246.68234934394988 +0.4 0.4 0.4 +0.0 0.0 0.0 +774.0 2.96336237e-07 0.0016086561408426812 +7.07980829e-06 +1.1849221816653586 0.0012518712973603068 6.07210859808765 +329.8140693187001 178.90220086015898 344.2534420910264 +0.4 0.4 0.4 +0.0 0.0 0.0 +775.0 2.96336237e-07 0.0004057839032363561 +7.07980829e-06 +0.29889690885438885 0.00030723730352063704 1.3545602077168246 +275.29327826163626 16.48766869977107 289.9506131142709 +0.4 0.4 0.4 +0.0 0.0 0.0 +776.0 2.96336237e-07 0.0005182646094632937 +7.07980829e-06 +0.3817492229280883 0.0017244210524684127 11.35830215721803 +198.9972987687514 15.552954256805542 112.4403775751002 +0.4 0.4 0.4 +0.0 0.0 0.0 +777.0 2.96336237e-07 0.00025773587547939263 +7.07980829e-06 +0.18984601377053362 0.0017068426449346299 7.7791974518317195 +62.53619149931553 120.73376985616541 225.68366487062107 +0.4 0.4 0.4 +0.0 0.0 0.0 +778.0 2.96336237e-07 0.0011513744043605825 +7.07980829e-06 +0.8480924148363507 0.0008740145212589823 9.389156432134588 +3.3864525215180348 191.77297733737754 50.34556783248005 +0.4 0.4 0.4 +0.0 0.0 0.0 +779.0 2.96336237e-07 0.00019069701018462385 +7.07980829e-06 +0.14046576618086803 0.0016610122416479565 0.3263632448613249 +202.3832416550209 148.90572697487266 306.71587259490514 +0.4 0.4 0.4 +0.0 0.0 0.0 +780.0 2.96336237e-07 0.000183014949797821 +7.07980829e-06 +0.13480722703001688 0.00023870757193003006 10.86745715521768 +40.4422116892952 332.72334304633546 102.46487442592486 +0.4 0.4 0.4 +0.0 0.0 0.0 +781.0 2.96336237e-07 0.00019010035917179903 +7.07980829e-06 +0.14002627821208505 0.0009745538138515665 2.605842650876843 +248.8424013641794 252.33564259715783 158.58573935383882 +0.4 0.4 0.4 +0.0 0.0 0.0 +782.0 2.96336237e-07 0.00015766445076292833 +7.07980829e-06 +0.11613426898753848 0.0004009723458603021 7.436470499798395 +210.6903181795709 135.90861565498648 100.14814531806343 +0.4 0.4 0.4 +0.0 0.0 0.0 +783.0 2.96336237e-07 0.00019282317353288035 +7.07980829e-06 +0.1420318796896713 0.0008492041527252425 0.5663478420982258 +17.051067966498163 36.14156681072912 233.47696301941528 +0.4 0.4 0.4 +0.0 0.0 0.0 +784.0 2.96336237e-07 0.0006785968098311466 +7.07980829e-06 +0.49984853317071337 0.001056969125782388 2.129281381961314 +296.7313175208352 343.9604450772309 237.2496777096723 +0.4 0.4 0.4 +0.0 0.0 0.0 +785.0 2.96336237e-07 0.00013780632139179854 +7.07980829e-06 +0.10150694287301791 0.0018115669137227677 2.8103422089756918 +349.77158346307993 94.59875697216971 99.73426693191381 +0.4 0.4 0.4 +0.0 0.0 0.0 +786.0 2.96336237e-07 0.00034073923077270753 +7.07980829e-06 +0.2509855664335275 0.0017792906836705319 5.520765221365393 +215.39140744510857 94.45196463699138 266.26458399959836 +0.4 0.4 0.4 +0.0 0.0 0.0 +787.0 2.96336237e-07 0.00031320123871055543 +7.07980829e-06 +0.23070131997183466 0.0003647661258347948 4.728738700627131 +308.4240173290373 235.43277837361742 19.86268427021919 +0.4 0.4 0.4 +0.0 0.0 0.0 +788.0 2.96336237e-07 0.0007908013466746332 +7.07980829e-06 +0.5824974232683128 0.000733879413242465 10.58163592523781 +166.59711091932118 36.80830601645519 282.58301278505724 +0.4 0.4 0.4 +0.0 0.0 0.0 +789.0 2.96336237e-07 0.00019105301337326078 +7.07980829e-06 +0.14072799504647168 0.001668655123700562 7.9908431865517064 +264.1561725966188 23.582810086009808 292.36425626006894 +0.4 0.4 0.4 +0.0 0.0 0.0 +790.0 2.96336237e-07 0.0006002588397728856 +7.07980829e-06 +0.4421454628675441 0.00022178748634611188 11.438400717437004 +250.2047538204758 303.4810776677282 204.76040864011122 +0.4 0.4 0.4 +0.0 0.0 0.0 +791.0 2.96336237e-07 0.00021806349128496557 +7.07980829e-06 +0.16062367915345274 0.0009804911927767412 1.6584717895438603 +226.28492908631438 229.19854234355597 9.353466953393456 +0.4 0.4 0.4 +0.0 0.0 0.0 +792.0 2.96336237e-07 0.0004540964137523443 +7.07980829e-06 +0.33448348569258574 0.0011738625331951884 10.662230115006006 +267.24057597302476 267.74465579912385 253.2965632707878 +0.4 0.4 0.4 +0.0 0.0 0.0 +793.0 2.96336237e-07 0.0010488173402543155 +7.07980829e-06 +0.7725497696055722 0.001095722001517709 9.242402013388748 +323.14447834195244 301.491191690332 293.32981193086493 +0.4 0.4 0.4 +0.0 0.0 0.0 +794.0 2.96336237e-07 0.0005999909388933805 +7.07980829e-06 +0.4419481293998417 0.0015833703304402554 4.872405037186607 +35.12747293707084 153.1253118555626 77.25667586625241 +0.4 0.4 0.4 +0.0 0.0 0.0 +795.0 2.96336237e-07 0.0002818183472463251 +7.07980829e-06 +0.20758495390911397 0.00040306205079961504 8.58999362096016 +95.19877690553305 242.72105712761459 280.0466839990116 +0.4 0.4 0.4 +0.0 0.0 0.0 +796.0 2.96336237e-07 0.00019014506892123023 +7.07980829e-06 +0.14005921102630972 0.0006602959512029577 11.332039920511034 +323.92212532949304 203.51644452917097 74.7527947079839 +0.4 0.4 0.4 +0.0 0.0 0.0 +797.0 2.96336237e-07 0.0004845094202535584 +7.07980829e-06 +0.35688544289118485 0.00010693699223592864 9.048576338576657 +190.51448161289002 98.6305204470717 187.3084468345109 +0.4 0.4 0.4 +0.0 0.0 0.0 +798.0 2.96336237e-07 0.00015792929540787927 +7.07980829e-06 +0.11632935125933666 3.897035279878499e-05 11.45903908700319 +195.80384686313445 233.2776988816495 359.35301035654265 +0.4 0.4 0.4 +0.0 0.0 0.0 +799.0 2.96336237e-07 0.0005021740146888711 +7.07980829e-06 +0.369897030168973 0.0005783785768568472 10.96464741061004 +51.22165432560145 112.10159565886289 41.214857697624 +0.4 0.4 0.4 +0.0 0.0 0.0 +800.0 2.96336237e-07 0.0002652196542834954 +7.07980829e-06 +0.1953585004247748 0.0015860402110689398 7.970135016600727 +33.28395820345033 47.065047089942105 8.642540234570333 +0.4 0.4 0.4 +0.0 0.0 0.0 +801.0 2.96336237e-07 0.00099556213210484 +7.07980829e-06 +0.7333224444965137 0.0011540216657062665 0.2948520707827325 +358.7803936031105 339.4687255490858 120.89997913809488 +0.4 0.4 0.4 +0.0 0.0 0.0 +802.0 2.96336237e-07 0.0026351289790410228 +7.07980829e-06 +1.94101318456985 0.0018777704527595757 6.2920679103717365 +168.5198178770795 313.068885556533 173.1580935790628 +0.4 0.4 0.4 +0.0 0.0 0.0 +803.0 2.96336237e-07 0.0004472189018881262 +7.07980829e-06 +0.3294175700157216 0.001934026663548147 4.665930753879519 +188.0777245359656 24.249023206259835 148.43747096583212 +0.4 0.4 0.4 +0.0 0.0 0.0 +804.0 2.96336237e-07 0.0009541783526290509 +7.07980829e-06 +0.7028395109366277 2.178248308034613e-05 7.534024626949479 +220.92753336090098 156.5092513310764 125.53081160503076 +0.4 0.4 0.4 +0.0 0.0 0.0 +805.0 2.96336237e-07 0.00017818575131362238 +7.07980829e-06 +0.13125008124956802 0.00029390144367573754 11.238272718260015 +44.728692941629134 244.4748145815674 141.26217597353818 +0.4 0.4 0.4 +0.0 0.0 0.0 +806.0 2.96336237e-07 0.0007755350636563324 +7.07980829e-06 +0.5712524114098495 0.0019266172346230073 1.878430788539713 +283.4231153555986 2.2596062499485012 183.9729256430123 +0.4 0.4 0.4 +0.0 0.0 0.0 +807.0 2.96336237e-07 0.00029338105105387744 +7.07980829e-06 +0.21610194139558708 0.0009800223634739993 7.0601858461868705 +65.81941569461553 212.36340422378717 312.9363049828724 +0.4 0.4 0.4 +0.0 0.0 0.0 +808.0 2.96336237e-07 0.0001839258304776056 +7.07980829e-06 +0.13547817385011343 0.0006727160750319806 2.882340028183936 +295.1627506804039 68.85676814351325 228.03106149519562 +0.4 0.4 0.4 +0.0 0.0 0.0 +809.0 2.96336237e-07 0.0006015656325230227 +7.07980829e-06 +0.4431080350898872 0.0016628797571062509 7.129072715261133 +290.1742628633195 108.96638613120928 128.99246608530885 +0.4 0.4 0.4 +0.0 0.0 0.0 +810.0 2.96336237e-07 0.00013888180832424046 +7.07980829e-06 +0.10229913723325831 0.0005630924347893253 9.278706461480203 +267.71603877159674 316.40397628593826 81.80556050635376 +0.4 0.4 0.4 +0.0 0.0 0.0 +811.0 2.96336237e-07 0.0006476764256898102 +7.07980829e-06 +0.4770728459965168 0.0007695813520703637 2.493021098908406 +150.4916511166996 332.4116821410066 247.0361193746425 +0.4 0.4 0.4 +0.0 0.0 0.0 +812.0 2.96336237e-07 0.001857003948737935 +7.07980829e-06 +1.3678530261582662 0.0017596352045231752 10.68854821580626 +329.79402578262415 259.4447597715369 328.1565524762129 +0.4 0.4 0.4 +0.0 0.0 0.0 +813.0 2.96336237e-07 0.0008663331149826085 +7.07980829e-06 +0.6381334696651798 2.928046135023384e-05 5.815041660654898 +129.22501519714 213.2823989189814 118.96109333137306 +0.4 0.4 0.4 +0.0 0.0 0.0 +814.0 2.96336237e-07 0.00026489283030708673 +7.07980829e-06 +0.1951177647141935 0.00011759470556837991 3.531197956621164 +331.29872796235486 4.773729879659973 140.06250876198635 +0.4 0.4 0.4 +0.0 0.0 0.0 +815.0 2.96336237e-07 0.0010162303462848672 +7.07980829e-06 +0.7485464720655725 0.0007100241137663527 5.490099494596708 +324.98298402852896 274.8809849689539 247.5318900734145 +0.4 0.4 0.4 +0.0 0.0 0.0 +816.0 2.96336237e-07 0.000347727729247991 +7.07980829e-06 +0.2561332338869088 0.0004507987013529211 3.620170639195692 +92.43280629170972 91.6328644393501 151.8214337011307 +0.4 0.4 0.4 +0.0 0.0 0.0 +817.0 2.96336237e-07 0.002802965923879553 +7.07980829e-06 +2.064640424595143 0.0011544401169181033 5.094307632826079 +42.63499315368269 1.2211239273548 334.76305659292217 +0.4 0.4 0.4 +0.0 0.0 0.0 +818.0 2.96336237e-07 0.0022355737226198336 +7.07980829e-06 +1.6467042430166545 0.001267457569557079 5.302936231753688 +32.68371764101885 353.5751312018522 90.58755046498557 +0.4 0.4 0.4 +0.0 0.0 0.0 +819.0 2.96336237e-07 0.0002765175125921366 +7.07980829e-06 +0.20368040501043008 0.000579749287670038 10.557519510639555 +80.04140368158535 227.8990205868312 200.62764208554964 +0.4 0.4 0.4 +0.0 0.0 0.0 +820.0 2.96336237e-07 0.00025127731812467786 +7.07980829e-06 +0.18508869635703679 0.0012439466918257101 1.6815787713970378 +281.7339713158612 63.45528865916926 191.41206074359687 +0.4 0.4 0.4 +0.0 0.0 0.0 +821.0 2.96336237e-07 0.0003243969593156292 +7.07980829e-06 +0.2389479908096002 0.0015118202277195345 2.6668616922794715 +328.82511142542853 82.03336133179428 168.83579865308715 +0.4 0.4 0.4 +0.0 0.0 0.0 +822.0 2.96336237e-07 0.0009083701808113307 +7.07980829e-06 +0.6690976082948853 0.00025961637392022535 7.205434432573989 +69.44371066237589 224.96004566756855 200.0052414276524 +0.4 0.4 0.4 +0.0 0.0 0.0 +823.0 2.96336237e-07 0.0004355681290935779 +7.07980829e-06 +0.32083571167614394 0.0005817622084768684 2.2490912361513873 +52.61862941037551 95.05577134176204 285.75692796158575 +0.4 0.4 0.4 +0.0 0.0 0.0 +824.0 2.96336237e-07 0.000797513088797965 +7.07980829e-06 +0.58744123438968 0.0018399317866374398 5.370650518781352 +263.37964612868376 3.6889272906534942 195.81773461969757 +0.4 0.4 0.4 +0.0 0.0 0.0 +825.0 2.96336237e-07 0.00017059845221530778 +7.07980829e-06 +0.1256613424431423 0.001517189447519589 3.3332887759450993 +275.16030741344696 301.2390055314444 315.6894181532665 +0.4 0.4 0.4 +0.0 0.0 0.0 +826.0 2.96336237e-07 0.0033227899288844234 +7.07980829e-06 +2.447538284774096 9.660561342932512e-05 2.7342205684146665 +177.28452929413666 303.60541873955395 123.91807566013593 +0.4 0.4 0.4 +0.0 0.0 0.0 +827.0 2.96336237e-07 0.0005055089895304048 +7.07980829e-06 +0.3723535437548778 0.0018186148187213451 9.203022093505952 +283.6114261752834 246.85904148851748 262.9477557950902 +0.4 0.4 0.4 +0.0 0.0 0.0 +828.0 2.96336237e-07 0.000635315421759987 +7.07980829e-06 +0.4679678375536138 0.001999300112822092 8.915870860087727 +6.110983399515164 74.87211877631918 225.79948655833374 +0.4 0.4 0.4 +0.0 0.0 0.0 +829.0 2.96336237e-07 0.0001751333264149705 +7.07980829e-06 +0.12900169150458152 0.00020038175632658404 7.233274970039065 +33.90253649557301 49.37802414776593 162.2065661133979 +0.4 0.4 0.4 +0.0 0.0 0.0 +830.0 2.96336237e-07 0.00018378643480033245 +7.07980829e-06 +0.13537549620146275 0.001360339845600366 10.875239413531316 +161.6554836466115 83.73152649783016 79.92932738916704 +0.4 0.4 0.4 +0.0 0.0 0.0 +831.0 2.96336237e-07 0.00013889055865239607 +7.07980829e-06 +0.10230558264919598 0.00025597517786164737 9.075636286562998 +338.08271471426997 353.0506196112916 352.887114895571 +0.4 0.4 0.4 +0.0 0.0 0.0 +832.0 2.96336237e-07 0.00046757051185114865 +7.07980829e-06 +0.3444083896604684 0.0018761686833968828 1.4669598373422508 +44.87652012756437 177.67362914504258 277.8618957553 +0.4 0.4 0.4 +0.0 0.0 0.0 +833.0 2.96336237e-07 0.00022908114180874786 +7.07980829e-06 +0.1687391851115053 0.0010077475692341418 9.107937193226173 +7.136521656548504 194.19135352752443 196.3527680670335 +0.4 0.4 0.4 +0.0 0.0 0.0 +834.0 2.96336237e-07 0.00021727031334741124 +7.07980829e-06 +0.16003943115392477 0.000739993500523618 3.9730366478446846 +296.9687491788795 302.9933737007289 214.05408453261558 +0.4 0.4 0.4 +0.0 0.0 0.0 +835.0 2.96336237e-07 0.0005924232935996261 +7.07980829e-06 +0.4363738674156443 0.00024725894484776647 5.085743123157824 +71.55973253885118 50.78724890867379 61.5909874775926 +0.4 0.4 0.4 +0.0 0.0 0.0 +836.0 2.96336237e-07 0.0002814335672288224 +7.07980829e-06 +0.20730152828058798 0.000749027403100355 6.9645972304617505 +60.3604226804254 310.0977903351363 151.78370717308115 +0.4 0.4 0.4 +0.0 0.0 0.0 +837.0 2.96336237e-07 0.0030778130889382743 +7.07980829e-06 +2.2670904660784137 0.0019786704159376963 6.529858491445284 +335.4186873573771 111.62895536664745 171.68897715927645 +0.4 0.4 0.4 +0.0 0.0 0.0 +838.0 2.96336237e-07 0.001498847858869942 +7.07980829e-06 +1.104038352152916 0.0015428587562416583 9.936778811770814 +70.57570537759302 84.10602504856243 323.5258802143975 +0.4 0.4 0.4 +0.0 0.0 0.0 +839.0 2.96336237e-07 0.00203066320928066 +7.07980829e-06 +1.4957689335074194 0.0015924422714005465 4.586246084377397 +249.62557390036193 211.62955989583318 257.4388242400432 +0.4 0.4 0.4 +0.0 0.0 0.0 +840.0 2.96336237e-07 0.0011667006416620786 +7.07980829e-06 +0.8593815885005848 0.001499272202059968 6.8205193906369255 +84.64657910167873 239.46586383339405 332.6535290917713 +0.4 0.4 0.4 +0.0 0.0 0.0 +841.0 2.96336237e-07 0.0017354364389528172 +7.07980829e-06 +1.278307451279381 0.0016006380667095345 7.82686925837928 +191.4754417698664 253.15609398992035 81.93901595863738 +0.4 0.4 0.4 +0.0 0.0 0.0 +842.0 2.96336237e-07 0.0002532550453718099 +7.07980829e-06 +0.18654547311927458 0.00012406021956921763 8.109841908874293 +270.85693362482044 315.15099460865144 96.14894521079918 +0.4 0.4 0.4 +0.0 0.0 0.0 +843.0 2.96336237e-07 0.00018634532862649348 +7.07980829e-06 +0.1372603552326516 0.00023538722443516055 1.4894936849675249 +29.459189369441635 67.36450335439682 54.83310544269817 +0.4 0.4 0.4 +0.0 0.0 0.0 +844.0 2.96336237e-07 0.00029158732454737286 +7.07980829e-06 +0.21478069798536706 0.0011673470373269362 11.085709061263685 +157.76460542425414 246.27746168342864 6.8453046530047255 +0.4 0.4 0.4 +0.0 0.0 0.0 +845.0 2.96336237e-07 0.00043364524658754777 +7.07980829e-06 +0.3194193330752219 0.0005270330406529689 6.106343852796523 +120.78469905417309 110.64435294021592 215.49307444340332 +0.4 0.4 0.4 +0.0 0.0 0.0 +846.0 2.96336237e-07 0.0005231633713284643 +7.07980829e-06 +0.38535760849251127 0.0008634990263518041 7.341507171398043 +13.421311492632363 308.85783416097735 42.162340012495825 +0.4 0.4 0.4 +0.0 0.0 0.0 +847.0 2.96336237e-07 0.00024536499782918075 +7.07980829e-06 +0.18073373243070323 0.001840481967359855 4.241185462063619 +104.16487034797203 201.47379798782168 341.4733827028155 +0.4 0.4 0.4 +0.0 0.0 0.0 +848.0 2.96336237e-07 0.0007719265143580483 +7.07980829e-06 +0.5685943852483791 0.0010008140520680474 6.480222534777339 +184.32169092200232 103.34919779642523 356.77619199609273 +0.4 0.4 0.4 +0.0 0.0 0.0 +849.0 2.96336237e-07 0.00023807814028319418 +7.07980829e-06 +0.17536629626976455 0.0016343601065652842 0.3249529259262394 +250.36546856571204 334.7025341217382 118.21873934867935 +0.4 0.4 0.4 +0.0 0.0 0.0 +850.0 2.96336237e-07 0.00036119262264286574 +7.07980829e-06 +0.26605135774959376 0.0006346791313101497 5.198710968805152 +69.94065044167266 48.948388574773986 182.85169447898264 +0.4 0.4 0.4 +0.0 0.0 0.0 +851.0 2.96336237e-07 0.00014370289200430812 +7.07980829e-06 +0.10585030571926211 0.0008869379847759032 7.036548385781691 +217.77453992851946 318.4554561270853 6.752281945579717 +0.4 0.4 0.4 +0.0 0.0 0.0 +852.0 2.96336237e-07 0.0002943846158913051 +7.07980829e-06 +0.2168411585635174 0.0019843826310521093 9.771476355648222 +12.58898431960575 82.51007889246536 49.68333298101479 +0.4 0.4 0.4 +0.0 0.0 0.0 +853.0 2.96336237e-07 0.0036181905740869944 +7.07980829e-06 +2.665127841729025 0.0015892742646676375 1.2515737974751457 +294.98820419885124 228.7910948770245 204.76071041664952 +0.4 0.4 0.4 +0.0 0.0 0.0 +854.0 2.96336237e-07 0.0010405906262700396 +7.07980829e-06 +0.7664900433317653 0.00046992321384812445 8.905411384088065 +277.4220633800536 156.90548650393134 73.42355366447521 +0.4 0.4 0.4 +0.0 0.0 0.0 +855.0 2.96336237e-07 0.003507517870227573 +7.07980829e-06 +2.5836072865411315 0.0012873026248305089 0.6714927881734676 +85.46654907224594 218.62623893590367 5.529413848953804 +0.4 0.4 0.4 +0.0 0.0 0.0 +856.0 2.96336237e-07 0.00042121870808606814 +7.07980829e-06 +0.31026605243439553 0.001538504517840296 2.299785133154835 +182.92903981976596 317.7000092803654 356.8222340252494 +0.4 0.4 0.4 +0.0 0.0 0.0 +857.0 2.96336237e-07 0.00025589642012622665 +7.07980829e-06 +0.18849108688789498 0.0012482613808640873 3.4547783623564907 +104.61754395223984 177.493497505299 52.3953201643133 +0.4 0.4 0.4 +0.0 0.0 0.0 +858.0 2.96336237e-07 0.0003499440683809984 +7.07980829e-06 +0.25776577009779705 0.001200451739714381 5.589758437491127 +110.52822608125959 304.65887602596644 285.1524557787873 +0.4 0.4 0.4 +0.0 0.0 0.0 +859.0 2.96336237e-07 0.00023340484224533388 +7.07980829e-06 +0.17192398540792114 0.00036678529835194857 9.701014602462163 +350.2988638669182 75.93158966813593 359.721039470067 +0.4 0.4 0.4 +0.0 0.0 0.0 +860.0 2.96336237e-07 0.0003012859326608643 +7.07980829e-06 +0.2219246087274947 0.0005714322286880682 2.239794572571739 +239.93191774307263 295.5484957385658 292.6691114359901 +0.4 0.4 0.4 +0.0 0.0 0.0 +861.0 2.96336237e-07 0.0011013945629108654 +7.07980829e-06 +0.8112776964721983 0.0005018275332768457 10.083706033837855 +102.82962935920158 251.05942161360068 26.822294015250964 +0.4 0.4 0.4 +0.0 0.0 0.0 +862.0 2.96336237e-07 0.0005946599085366378 +7.07980829e-06 +0.43802133860816467 0.001048428201218883 4.1025828039813526 +40.600990991843354 239.80380101745874 62.07603929801504 +0.4 0.4 0.4 +0.0 0.0 0.0 +863.0 2.96336237e-07 0.000644830243600255 +7.07980829e-06 +0.47497637291855616 0.0013321768983939044 4.63432393570585 +45.083707155219024 301.3977548929328 239.62704853879058 +0.4 0.4 0.4 +0.0 0.0 0.0 +864.0 2.96336237e-07 0.0018338196731331666 +7.07980829e-06 +1.3507756895339567 0.001297586822510243 7.9497211836853365 +348.46108412918124 87.62476857679734 103.32036290834739 +0.4 0.4 0.4 +0.0 0.0 0.0 +865.0 2.96336237e-07 0.0002663604970815203 +7.07980829e-06 +0.1961988353495927 0.0014513812053653485 7.576126394985915 +348.84703759168565 304.9628712857538 337.6984736486929 +0.4 0.4 0.4 +0.0 0.0 0.0 +866.0 2.96336237e-07 0.00024146287214828595 +7.07980829e-06 +0.1778594604483042 9.184822468081804e-05 11.169429029020852 +68.42320619800215 75.12601964025916 21.785360489624612 +0.4 0.4 0.4 +0.0 0.0 0.0 +867.0 2.96336237e-07 0.00021814842997838415 +7.07980829e-06 +0.1606862442594179 0.0017400031243608673 7.347710628140643 +223.60600683349512 122.49114370433226 107.17786152085814 +0.4 0.4 0.4 +0.0 0.0 0.0 +868.0 2.96336237e-07 0.0007497335046502527 +7.07980829e-06 +0.5522472064989752 0.0007622626132573405 7.291097000588904 +313.4202166141992 134.58901635813177 193.878916798132 +0.4 0.4 0.4 +0.0 0.0 0.0 +869.0 2.96336237e-07 0.0001667481985630033 +7.07980829e-06 +0.12282527894776799 0.0014162630721568541 5.217098764177743 +337.3804679201184 173.53323786741743 353.3966084016116 +0.4 0.4 0.4 +0.0 0.0 0.0 +870.0 2.96336237e-07 0.00031250176198306017 +7.07980829e-06 +0.23018609147214195 0.0015562575272119795 9.361382981745848 +48.47024895045403 23.02355121536537 121.03929246247257 +0.4 0.4 0.4 +0.0 0.0 0.0 +871.0 2.96336237e-07 0.00023059340795823506 +7.07980829e-06 +0.1698531072603185 0.0019813387627493403 9.279340087444739 +2.0250013283920247 270.51162903123645 97.37548932556639 +0.4 0.4 0.4 +0.0 0.0 0.0 +872.0 2.96336237e-07 0.0002204659791078828 +7.07980829e-06 +0.16239333087719793 0.0012809206122057952 0.42712771391559484 +197.06203490560554 347.4089646137663 67.49418715611142 +0.4 0.4 0.4 +0.0 0.0 0.0 +873.0 2.96336237e-07 0.00027345697966011924 +7.07980829e-06 +0.20142604295828573 0.0018116840747689782 10.674508764160732 +103.56691137629706 266.9193441476812 326.2393207943043 +0.4 0.4 0.4 +0.0 0.0 0.0 +874.0 2.96336237e-07 0.00026916832336908836 +7.07980829e-06 +0.19826705587598786 0.00039683896467854684 0.35179682592842354 +325.2166765580088 98.71526095385327 3.9673545628655678 +0.4 0.4 0.4 +0.0 0.0 0.0 +875.0 2.96336237e-07 0.0022229132327439348 +7.07980829e-06 +1.6373786358195543 0.0006605613446908923 7.3615331574055025 +252.2233729738277 22.284879677551952 229.69276267720048 +0.4 0.4 0.4 +0.0 0.0 0.0 +876.0 2.96336237e-07 0.00018777834971615669 +7.07980829e-06 +0.138315906156696 0.0011872852358163328 10.140241012719367 +349.1506501093582 312.2512600928142 285.213085940648 +0.4 0.4 0.4 +0.0 0.0 0.0 +877.0 2.96336237e-07 0.00020212037530735753 +7.07980829e-06 +0.14888011799883888 0.00015537661070074625 7.218086014392529 +182.46051259244547 316.96550885841606 169.6637749668604 +0.4 0.4 0.4 +0.0 0.0 0.0 +878.0 2.96336237e-07 0.0001739000727617808 +7.07980829e-06 +0.12809328754416846 3.088396781264784e-05 6.4272787336170945 +63.778122100059875 253.59048138502038 215.1941927139361 +0.4 0.4 0.4 +0.0 0.0 0.0 +879.0 2.96336237e-07 0.0003886205487771876 +7.07980829e-06 +0.28625453060206685 0.001570610688246003 4.596643792009561 +305.35365538701126 285.97542830086036 349.34165196516363 +0.4 0.4 0.4 +0.0 0.0 0.0 +880.0 2.96336237e-07 0.0009222337930440628 +7.07980829e-06 +0.6793094250004531 0.0011367893271683742 2.6439443194291687 +285.7982116353794 170.4396408737005 121.80530388570517 +0.4 0.4 0.4 +0.0 0.0 0.0 +881.0 2.96336237e-07 0.0005536935198694872 +7.07980829e-06 +0.4078458515031312 0.0018133452871063858 1.4457615059152908 +91.22783846390665 329.90668562817825 253.22700314937367 +0.4 0.4 0.4 +0.0 0.0 0.0 +882.0 2.96336237e-07 0.00018278613111823822 +7.07980829e-06 +0.13463868117230798 0.0011331933115473899 9.86274096834836 +69.03072764321948 218.86072425030633 180.10823421827652 +0.4 0.4 0.4 +0.0 0.0 0.0 +883.0 2.96336237e-07 0.0001960632599862665 +7.07980829e-06 +0.14441849931064232 0.0012861487147670608 2.5576684866102952 +208.59094625454324 305.7005612521587 21.26041328596223 +0.4 0.4 0.4 +0.0 0.0 0.0 +884.0 2.96336237e-07 0.0005423752586368978 +7.07980829e-06 +0.39950891830039414 0.0015637046464971854 7.027440341287953 +233.80729957048158 209.340402563229 311.3583501969673 +0.4 0.4 0.4 +0.0 0.0 0.0 +885.0 2.96336237e-07 0.00013943092042929199 +7.07980829e-06 +0.10270360845428364 0.0005159228348304664 5.944858672896004 +69.95225801877062 174.7276120972792 28.822418951690324 +0.4 0.4 0.4 +0.0 0.0 0.0 +886.0 2.96336237e-07 0.0004005939203667401 +7.07980829e-06 +0.2950740124201952 0.0007439613777354018 4.246019729481516 +110.28612280210407 152.0147394483259 181.0295145568587 +0.4 0.4 0.4 +0.0 0.0 0.0 +887.0 2.96336237e-07 0.0005581300249991568 +7.07980829e-06 +0.41111374275953355 0.001641221658129226 3.537297275366544 +345.8387738825924 59.96632429562442 149.0526849684242 +0.4 0.4 0.4 +0.0 0.0 0.0 +888.0 2.96336237e-07 0.00021660729245310455 +7.07980829e-06 +0.159551055705235 0.0007892488059156157 1.7915838548160363 +115.39063975714294 182.44918518147443 350.9235637043461 +0.4 0.4 0.4 +0.0 0.0 0.0 +889.0 2.96336237e-07 0.003164410622959606 +7.07980829e-06 +2.3308774596652744 2.7772058913318547e-05 7.672750487076867 +351.61488935551984 140.60487486378307 293.05304585644706 +0.4 0.4 0.4 +0.0 0.0 0.0 +890.0 2.96336237e-07 0.004587781522415004 +7.07980829e-06 +3.3793201371775554 0.0009792748409096067 9.49626835683781 +138.20231916057185 19.125111032545025 284.81908775422175 +0.4 0.4 0.4 +0.0 0.0 0.0 +891.0 2.96336237e-07 0.00021244089566533318 +7.07980829e-06 +0.1564821239142163 0.0013817427484116704 9.982107239203284 +64.62388065890237 162.42173072740277 247.13863850664836 +0.4 0.4 0.4 +0.0 0.0 0.0 +892.0 2.96336237e-07 0.00042874284555031636 +7.07980829e-06 +0.3158082669281759 0.0002685727501766675 10.783700828009044 +81.17210301083347 317.9386637033409 267.4309864608306 +0.4 0.4 0.4 +0.0 0.0 0.0 +893.0 2.96336237e-07 0.0016517438476905757 +7.07980829e-06 +1.2166602133707667 0.0016764679152562712 4.70497587780575 +238.60777089204234 153.80807142934077 28.448304618780632 +0.4 0.4 0.4 +0.0 0.0 0.0 +894.0 2.96336237e-07 0.0016763443702606448 +7.07980829e-06 +1.2347807452443866 0.0009170286725977459 7.525170965998676 +277.7130339289491 226.47276480764017 253.76637763823024 +0.4 0.4 0.4 +0.0 0.0 0.0 +895.0 2.96336237e-07 0.0011638058295318644 +7.07980829e-06 +0.8572492949558327 0.0008700423009628168 9.981524212140938 +98.86559967641855 170.53910254755223 100.58524057055833 +0.4 0.4 0.4 +0.0 0.0 0.0 +896.0 2.96336237e-07 0.002936364382214191 +7.07980829e-06 +2.1629005737143157 7.756112803423427e-05 11.203056729757954 +86.29368061239245 43.411670622833604 338.40781629557614 +0.4 0.4 0.4 +0.0 0.0 0.0 +897.0 2.96336237e-07 0.0002474161427641772 +7.07980829e-06 +0.18224458802599205 0.001079508198632446 6.842173578076072 +8.919350620653807 65.9391414835763 218.61113668757775 +0.4 0.4 0.4 +0.0 0.0 0.0 +898.0 2.96336237e-07 0.0001622493777332493 +7.07980829e-06 +0.11951148648636527 0.000938253938961925 10.679087500356292 +335.22452069738205 213.1717272391943 122.17723318475782 +0.4 0.4 0.4 +0.0 0.0 0.0 +899.0 2.96336237e-07 0.0003122324229346243 +7.07980829e-06 +0.22998769866166033 0.0015136721058106677 2.682422781035682 +280.03553763851926 230.61767521277147 344.2296842122416 +0.4 0.4 0.4 +0.0 0.0 0.0 +900.0 2.96336237e-07 0.00021203945051390856 +7.07980829e-06 +0.1561864228923709 0.001765045682968018 11.422249892962794 +345.8666862049946 180.58605285731926 319.09691026620914 +0.4 0.4 0.4 +0.0 0.0 0.0 +901.0 2.96336237e-07 0.0002273306449758014 +7.07980829e-06 +0.1674497843044399 0.00039029297664267936 10.413884131713067 +254.63805790852138 312.1469638623364 253.9856842053702 +0.4 0.4 0.4 +0.0 0.0 0.0 +902.0 2.96336237e-07 0.00027837990138805533 +7.07980829e-06 +0.20505222446838656 8.898162310285005e-05 2.5301508178227907 +158.05436831881912 50.59492182468012 164.42547164960322 +0.4 0.4 0.4 +0.0 0.0 0.0 +903.0 2.96336237e-07 0.0008690958013977799 +7.07980829e-06 +0.6401684405524991 0.0005103352043887674 8.079126775697432 +104.99864058693485 172.60913273339662 181.89105730929109 +0.4 0.4 0.4 +0.0 0.0 0.0 +904.0 2.96336237e-07 0.0004262945653432144 +7.07980829e-06 +0.3140048849308226 0.0004068762402332769 10.246111286380062 +199.8177194802882 324.28121763384036 38.813978610555196 +0.4 0.4 0.4 +0.0 0.0 0.0 +905.0 2.96336237e-07 0.0005797269109412859 +7.07980829e-06 +0.4270218219058451 0.0004148968294459902 0.9308775351703481 +234.71882840320092 96.08242228494359 85.3661114561507 +0.4 0.4 0.4 +0.0 0.0 0.0 +906.0 2.96336237e-07 0.0007447631040431821 +7.07980829e-06 +0.5485860524576922 0.0002497401557252757 11.091004923880098 +30.463723661868443 109.8090314106109 32.45174612970782 +0.4 0.4 0.4 +0.0 0.0 0.0 +907.0 2.96336237e-07 0.0011740321433804258 +7.07980829e-06 +0.8647819091722458 0.0005357039357688908 8.6536979165979 +346.454961363041 263.17586156314053 31.037511257599284 +0.4 0.4 0.4 +0.0 0.0 0.0 +908.0 2.96336237e-07 0.0018510889647867837 +7.07980829e-06 +1.3634961002062462 0.00014126241631399 1.4214869125410696 +39.61105736997827 83.07875977519102 134.15938861187436 +0.4 0.4 0.4 +0.0 0.0 0.0 +909.0 2.96336237e-07 0.00023462688073896192 +7.07980829e-06 +0.17282412837892938 0.0017705139720229762 10.763198940284598 +260.38595677013 187.39030393342694 85.08779752218953 +0.4 0.4 0.4 +0.0 0.0 0.0 +910.0 2.96336237e-07 0.0001500746714962574 +7.07980829e-06 +0.11054370331058086 0.000281278337030201 7.299413573808814 +136.49636937293405 102.25244427475243 310.49680731457863 +0.4 0.4 0.4 +0.0 0.0 0.0 +911.0 2.96336237e-07 0.00019619635152198428 +7.07980829e-06 +0.14451653338322 0.00017314515611592754 8.354513792245776 +38.52556308984034 292.7928653960391 98.19102238346747 +0.4 0.4 0.4 +0.0 0.0 0.0 +912.0 2.96336237e-07 0.0014594514605221617 +7.07980829e-06 +1.0750193063203148 0.0004736592387483617 10.525175396992385 +354.1327714293186 177.29058917698717 135.57871242297458 +0.4 0.4 0.4 +0.0 0.0 0.0 +913.0 2.96336237e-07 0.0004900684755729853 +7.07980829e-06 +0.3609801948955772 7.059808878859866e-05 2.7253547110759446 +46.58756017502697 247.45595632197276 257.4521187175939 +0.4 0.4 0.4 +0.0 0.0 0.0 +914.0 2.96336237e-07 0.0003497168329852906 +7.07980829e-06 +0.25759839047327854 0.001965306184034864 9.563434786642063 +292.28406608674385 251.4582104887518 355.1915687853607 +0.4 0.4 0.4 +0.0 0.0 0.0 +915.0 2.96336237e-07 0.00013859536374337858 +7.07980829e-06 +0.10208814463573322 8.257253637475793e-06 0.4855986306531283 +139.0604079346995 112.81281039522419 299.8312400393687 +0.4 0.4 0.4 +0.0 0.0 0.0 +916.0 2.96336237e-07 0.0001933392197641028 +7.07980829e-06 +0.14241199487439932 0.0018796159120632928 7.449758077618493 +10.90734683153995 321.51599993791405 184.8920986736227 +0.4 0.4 0.4 +0.0 0.0 0.0 +917.0 2.96336237e-07 0.00024570843099537825 +7.07980829e-06 +0.18098670232664 0.0009508845867033116 1.5928860717515263 +303.13456573570323 204.50757147870775 191.47934446511255 +0.4 0.4 0.4 +0.0 0.0 0.0 +918.0 2.96336237e-07 0.0008660757753783367 +7.07980829e-06 +0.637943915541349 0.0018668982720163895 6.658079751187519 +87.9919399839599 246.36657869117042 149.15534322130247 +0.4 0.4 0.4 +0.0 0.0 0.0 +919.0 2.96336237e-07 0.0016615592487689134 +7.07980829e-06 +1.223890152799321 0.001421622572581398 5.1610356923745595 +264.9771993652235 40.19201047952638 278.0236849242551 +0.4 0.4 0.4 +0.0 0.0 0.0 +920.0 2.96336237e-07 0.001603657692579818 +7.07980829e-06 +1.181240367963724 3.685176165738216e-05 1.6420859189574308 +130.56188251548426 140.90512522455236 336.48806457761 +0.4 0.4 0.4 +0.0 0.0 0.0 +921.0 2.96336237e-07 0.001397686753371511 +7.07980829e-06 +1.0295239579430457 0.0017914896317848858 11.252344408486978 +267.67377709144375 277.9361470120739 268.5109911132014 +0.4 0.4 0.4 +0.0 0.0 0.0 +922.0 2.96336237e-07 0.0017560473979587865 +7.07980829e-06 +1.2934893051830842 0.0001158813985735487 7.979966579999663 +273.9413454619434 47.43960388209858 236.0072840421206 +0.4 0.4 0.4 +0.0 0.0 0.0 +923.0 2.96336237e-07 0.0007621621848392839 +7.07980829e-06 +0.5614020646883041 0.000713239837599196 7.5270807760887815 +61.75097790549843 174.57744167115027 271.8218476694562 +0.4 0.4 0.4 +0.0 0.0 0.0 +924.0 2.96336237e-07 0.00017089341444879782 +7.07980829e-06 +0.12587860906982662 0.0010331661463704816 11.310459107843037 +356.98065710606045 56.798708831950776 329.3070601388 +0.4 0.4 0.4 +0.0 0.0 0.0 +925.0 2.96336237e-07 0.0003475085127644576 +7.07980829e-06 +0.2559717609236506 8.063217974700513e-05 0.6224293583547946 +124.40429076478733 71.81562824723706 141.66885873276337 +0.4 0.4 0.4 +0.0 0.0 0.0 +926.0 2.96336237e-07 0.003112920782245804 +7.07980829e-06 +2.292950488920464 0.0012268090307240697 10.728770587782575 +340.62230336033423 216.29033228044932 157.05766776364314 +0.4 0.4 0.4 +0.0 0.0 0.0 +927.0 2.96336237e-07 0.00033547189080752464 +7.07980829e-06 +0.24710568943268615 0.0015196161689792866 0.6899233683709616 +88.94224942027253 214.4230545720397 276.6010138005357 +0.4 0.4 0.4 +0.0 0.0 0.0 +928.0 2.96336237e-07 0.0004253133838612374 +7.07980829e-06 +0.3132821551486675 0.0007120727472340359 9.106731138982164 +319.4754144242723 310.64917536138154 126.13269863021297 +0.4 0.4 0.4 +0.0 0.0 0.0 +929.0 2.96336237e-07 0.00024231766837550515 +7.07980829e-06 +0.17848909594635745 0.000582710938667069 2.5165912778794906 +314.3199004524181 357.3118023762465 224.97487607442832 +0.4 0.4 0.4 +0.0 0.0 0.0 +930.0 2.96336237e-07 0.00016665571708055534 +7.07980829e-06 +0.12275715788872771 0.0001996971746856274 4.755013017812427 +298.8461973517313 236.9987112242499 122.60336003968959 +0.4 0.4 0.4 +0.0 0.0 0.0 +931.0 2.96336237e-07 0.0011458622256510802 +7.07980829e-06 +0.8440321917368563 0.0015919258009235721 0.050627567583707594 +307.90525771874314 70.82616332779979 151.67221763977068 +0.4 0.4 0.4 +0.0 0.0 0.0 +932.0 2.96336237e-07 0.0003185660980161783 +7.07980829e-06 +0.23465302887428308 0.0008616327888656786 1.3646300797339588 +92.86887888927751 169.57093262294586 136.36646901125172 +0.4 0.4 0.4 +0.0 0.0 0.0 +933.0 2.96336237e-07 0.00017301998407785504 +7.07980829e-06 +0.1274450218415491 0.0009832415846796373 7.534952392781988 +188.0735046660178 46.94571173047234 325.12927952800834 +0.4 0.4 0.4 +0.0 0.0 0.0 +934.0 2.96336237e-07 0.00017929256067435054 +7.07980829e-06 +0.13206534743921788 0.0014183729364793134 9.448867289289323 +102.96675853797645 253.93257299631134 159.6978646781303 +0.4 0.4 0.4 +0.0 0.0 0.0 +935.0 2.96336237e-07 0.0003863368281993399 +7.07980829e-06 +0.28457236180246254 0.000888160443355646 4.1802766015432535 +130.71026300243284 77.05772571539467 312.5231300249637 +0.4 0.4 0.4 +0.0 0.0 0.0 +936.0 2.96336237e-07 0.00018020809151091216 +7.07980829e-06 +0.13273971952452396 0.000954720677358364 3.781611671128357 +86.59490665478535 218.8644239532834 257.03107035409835 +0.4 0.4 0.4 +0.0 0.0 0.0 +937.0 2.96336237e-07 0.00013852529342309162 +7.07980829e-06 +0.10203653144465007 0.0014604833997294586 3.6529460849484523 +234.00092849065598 297.1160112326384 336.3256323449483 +0.4 0.4 0.4 +0.0 0.0 0.0 +938.0 2.96336237e-07 0.0005121982142226524 +7.07980829e-06 +0.3772807687315193 0.0004918646428922008 11.372738889176471 +203.8576062272574 186.04307420989318 137.3162745936581 +0.4 0.4 0.4 +0.0 0.0 0.0 +939.0 2.96336237e-07 0.0003612424968544203 +7.07980829e-06 +0.2660880946618919 0.0012522462747390918 2.3336207876186714 +33.72314577304029 351.18940081152004 312.24372550510225 +0.4 0.4 0.4 +0.0 0.0 0.0 +940.0 2.96336237e-07 0.00020039859797553946 +7.07980829e-06 +0.147611871727581 0.0003302271416131716 7.906221530658699 +34.26814032180242 125.39790450977469 111.22749608626296 +0.4 0.4 0.4 +0.0 0.0 0.0 +941.0 2.96336237e-07 0.0003016544051248369 +7.07980829e-06 +0.2221960223533211 0.00034568242946911244 0.3094325084357767 +82.4728732578794 144.70477273697668 5.612271501423794 +0.4 0.4 0.4 +0.0 0.0 0.0 +942.0 2.96336237e-07 0.0017318366453486073 +7.07980829e-06 +1.2756558744863375 0.00113569105556339 11.116242048126862 +249.09496606643057 47.771023520745274 237.73234968632318 +0.4 0.4 0.4 +0.0 0.0 0.0 +943.0 2.96336237e-07 0.0002690118256463962 +7.07980829e-06 +0.19815178100879285 0.0013539827861898711 3.18150775198909 +111.76818070956686 19.606030246044075 288.92966931597437 +0.4 0.4 0.4 +0.0 0.0 0.0 +944.0 2.96336237e-07 0.0029001700963420364 +7.07980829e-06 +2.1362401761995384 0.0003159380215570494 5.514532240030428 +32.79351781650099 63.5250969796889 206.50573852382644 +0.4 0.4 0.4 +0.0 0.0 0.0 +945.0 2.96336237e-07 0.00021330535508806603 +7.07980829e-06 +0.1571188772383973 0.00018089683554716642 8.720015163429723 +77.51771133589922 244.9843816940459 350.9514638838498 +0.4 0.4 0.4 +0.0 0.0 0.0 +946.0 2.96336237e-07 0.00025520310194109973 +7.07980829e-06 +0.18798039471717506 0.000498428427346686 8.467466822253689 +10.456225088945663 233.40446105050938 203.41064615006937 +0.4 0.4 0.4 +0.0 0.0 0.0 +947.0 2.96336237e-07 0.00016549421931184313 +7.07980829e-06 +0.12190160869138278 0.0009178253598946444 4.75514175557383 +340.3535534538125 148.36917743145676 297.2912537647712 +0.4 0.4 0.4 +0.0 0.0 0.0 +948.0 2.96336237e-07 0.00040035279118295214 +7.07980829e-06 +0.2948963987517032 0.0013138752553493239 3.3576335327672404 +50.85479916051726 301.2286638812889 220.74045454943635 +0.4 0.4 0.4 +0.0 0.0 0.0 +949.0 2.96336237e-07 0.000285480858760384 +7.07980829e-06 +0.21028272817138718 0.0014023500153727342 6.337903481467864 +224.1884139697174 73.89985298832633 51.546935726864305 +0.4 0.4 0.4 +0.0 0.0 0.0 +950.0 2.96336237e-07 0.0013858975257163215 +7.07980829e-06 +1.0208401149522006 0.0018940614327674413 1.848873587406221 +190.43226813540824 280.5625437975362 308.817550256019 +0.4 0.4 0.4 +0.0 0.0 0.0 +951.0 2.96336237e-07 0.001052652002039967 +7.07980829e-06 +0.7753743482670024 0.0013849169643145925 7.011026598611074 +334.4076414167877 257.5505584243084 296.3064892675258 +0.4 0.4 0.4 +0.0 0.0 0.0 +952.0 2.96336237e-07 0.0016153416493503315 +7.07980829e-06 +1.1898466693326095 2.613348257784218e-05 4.937533708443644 +142.3452936426748 151.70237022125707 230.49088117151877 +0.4 0.4 0.4 +0.0 0.0 0.0 +953.0 2.96336237e-07 0.0017051179432337625 +7.07980829e-06 +1.2559751099044152 0.0019156727899918755 2.8945065616128502 +24.996113996404127 262.60281692979856 150.1397892119794 +0.4 0.4 0.4 +0.0 0.0 0.0 +954.0 2.96336237e-07 0.0013195877705214655 +7.07980829e-06 +0.9719969235477123 0.0015740751678921254 9.299530719572873 +116.84233709368452 223.50093449549743 245.37283756444006 +0.4 0.4 0.4 +0.0 0.0 0.0 +955.0 2.96336237e-07 0.0004102460698317077 +7.07980829e-06 +0.3021837021241728 0.00035554080270896657 2.6519256374613476 +251.19016945519695 318.6678358289691 142.7111516622103 +0.4 0.4 0.4 +0.0 0.0 0.0 +956.0 2.96336237e-07 0.00024167065264447027 +7.07980829e-06 +0.17801250976232183 0.0009665892019281847 4.502199852684603 +323.8900125494872 100.80453312749627 214.0618920813722 +0.4 0.4 0.4 +0.0 0.0 0.0 +957.0 2.96336237e-07 0.0009466043491808458 +7.07980829e-06 +0.6972605655909263 0.0019802403653123375 0.7888060136048444 +306.8805064809969 282.50984888295784 352.56112767493175 +0.4 0.4 0.4 +0.0 0.0 0.0 +958.0 2.96336237e-07 0.00018695352823005392 +7.07980829e-06 +0.1377083497933545 0.0007637836181920838 4.569634942627846 +139.37121999073983 67.43502251913877 332.4186808804151 +0.4 0.4 0.4 +0.0 0.0 0.0 +959.0 2.96336237e-07 0.0037034203517796937 +7.07980829e-06 +2.727907357849595 0.00146266418574885 9.626222885297471 +213.93243792835034 245.51731066063286 75.89340605050207 +0.4 0.4 0.4 +0.0 0.0 0.0 +960.0 2.96336237e-07 0.000373511443845889 +7.07980829e-06 +0.275125294761257 0.0012760803381254955 1.2094857559534204 +79.07672523194096 264.5777821313358 76.72573920333284 +0.4 0.4 0.4 +0.0 0.0 0.0 +961.0 2.96336237e-07 0.00039442763362750277 +7.07980829e-06 +0.29053197901086525 0.0014417868317733395 11.41598090400923 +156.72159484209047 7.72719848001625 185.43652858762405 +0.4 0.4 0.4 +0.0 0.0 0.0 +962.0 2.96336237e-07 0.00020500322527754812 +7.07980829e-06 +0.15100360032011528 0.00030171279342584156 1.4120336481863598 +172.0684637181415 92.67238877088263 160.71866360160317 +0.4 0.4 0.4 +0.0 0.0 0.0 +963.0 2.96336237e-07 0.0007085940877853797 +7.07980829e-06 +0.5219442683220008 0.0005234297891182462 4.097317522810404 +333.94283962717805 317.556416326482 164.74610674255527 +0.4 0.4 0.4 +0.0 0.0 0.0 +964.0 2.96336237e-07 0.00014947946804124763 +7.07980829e-06 +0.11010528160034792 0.0008975475009067994 10.322701472999627 +326.6226849149638 168.79718850314603 119.17626470159382 +0.4 0.4 0.4 +0.0 0.0 0.0 +965.0 2.96336237e-07 0.0010586172297893071 +7.07980829e-06 +0.7797682833656346 0.00016487428505234443 8.752058115225326 +130.82154975364693 87.02897050604159 93.10471368544235 +0.4 0.4 0.4 +0.0 0.0 0.0 +966.0 2.96336237e-07 0.00022758994635737866 +7.07980829e-06 +0.16764078345644415 0.0009489750126910459 6.401127999449354 +2.285091354335331 303.6446873244932 228.97229775105836 +0.4 0.4 0.4 +0.0 0.0 0.0 +967.0 2.96336237e-07 0.000999277512501037 +7.07980829e-06 +0.7360591615195017 0.0018949678770281517 2.87369291606918 +56.67813336159815 123.49991022508948 285.23540579935207 +0.4 0.4 0.4 +0.0 0.0 0.0 +968.0 2.96336237e-07 0.001291167167389695 +7.07980829e-06 +0.9510625534159438 0.00048414046083810925 0.038185085019309936 +139.91628422613323 331.77350842486277 234.9446144529372 +0.4 0.4 0.4 +0.0 0.0 0.0 +969.0 2.96336237e-07 0.0016073709303560204 +7.07980829e-06 +1.18397550675138 0.0012098443018083715 9.646477689381754 +31.621294470619585 126.17811718834633 334.5105864118128 +0.4 0.4 0.4 +0.0 0.0 0.0 +970.0 2.96336237e-07 0.0034709429840917563 +7.07980829e-06 +2.556666542168309 0.0007600022860671346 11.316786818393913 +258.5630322140128 332.7233936354956 299.4496346844978 +0.4 0.4 0.4 +0.0 0.0 0.0 +971.0 2.96336237e-07 0.0003385735361366209 +7.07980829e-06 +0.2493903345204671 0.0006619383365492601 6.918466133956221 +34.08709733785606 41.67273369273931 169.08779374597916 +0.4 0.4 0.4 +0.0 0.0 0.0 +972.0 2.96336237e-07 0.00050944360942722 +7.07980829e-06 +0.3752517506953094 0.0019324612115266307 10.802402793584992 +212.13550421956228 82.64100064809932 358.327784724528 +0.4 0.4 0.4 +0.0 0.0 0.0 +973.0 2.96336237e-07 0.001229790121697113 +7.07980829e-06 +0.9058527531113671 0.0019972782738101407 8.070688417828606 +170.93848526477916 286.36681005572785 11.702196432894826 +0.4 0.4 0.4 +0.0 0.0 0.0 +974.0 2.96336237e-07 0.0008650449636453158 +7.07980829e-06 +0.6371846285460949 0.0009740192551011546 3.532833541688154 +331.1815313747915 250.47137135834765 279.6190711788757 +0.4 0.4 0.4 +0.0 0.0 0.0 +975.0 2.96336237e-07 0.002961099957296551 +7.07980829e-06 +2.181120584098874 5.6510615072364866e-05 5.138204604312275 +122.391328210872 56.07153820108413 286.4349957165175 +0.4 0.4 0.4 +0.0 0.0 0.0 +976.0 2.96336237e-07 0.0006799189019085471 +7.07980829e-06 +0.5008223747450198 0.001866120847901651 6.4065430644434676 +222.15782786186904 168.83609464143038 178.13873495994855 +0.4 0.4 0.4 +0.0 0.0 0.0 +977.0 2.96336237e-07 0.004828142098697655 +7.07980829e-06 +3.5563676560376067 0.001177565972191332 2.2812645152918685 +356.4603873337414 307.1163678613121 303.8837059895023 +0.4 0.4 0.4 +0.0 0.0 0.0 +978.0 2.96336237e-07 0.000141646097163809 +7.07980829e-06 +0.10433528845251076 0.001606147555238029 8.552526312184236 +139.34496706570155 211.07561174914002 265.0884024681136 +0.4 0.4 0.4 +0.0 0.0 0.0 +979.0 2.96336237e-07 0.0005109812736103546 +7.07980829e-06 +0.376384380815749 0.0018168962500772184 8.186136241961707 +173.48400684429888 254.6603408381069 50.17427136135035 +0.4 0.4 0.4 +0.0 0.0 0.0 +980.0 2.96336237e-07 0.0002598404969961439 +7.07980829e-06 +0.19139625975281196 2.0898093658894817e-05 1.570997656758336 +277.31444846549095 299.90080452120395 59.28785330492891 +0.4 0.4 0.4 +0.0 0.0 0.0 +981.0 2.96336237e-07 0.0003856543733284739 +7.07980829e-06 +0.2840696714549461 0.0018994182556429312 6.299140599034355 +188.7934353057022 314.490493699651 52.82133332577567 +0.4 0.4 0.4 +0.0 0.0 0.0 +982.0 2.96336237e-07 0.0007677979183114158 +7.07980829e-06 +0.5655532971559121 0.0007504200853511277 2.4239440934296557 +295.55688315737433 41.24680176624648 98.2982458846315 +0.4 0.4 0.4 +0.0 0.0 0.0 +983.0 2.96336237e-07 0.001368007221170845 +7.07980829e-06 +1.0076622715620158 0.0011230732994190636 6.916651351080801 +79.4090970845436 331.0348072724332 253.98022025170627 +0.4 0.4 0.4 +0.0 0.0 0.0 +984.0 2.96336237e-07 0.000408044664239916 +7.07980829e-06 +0.3005621658304129 0.000862785366571587 8.224997779033004 +4.44990334992864 28.905921968573782 27.49431333688353 +0.4 0.4 0.4 +0.0 0.0 0.0 +985.0 2.96336237e-07 0.00040727545945343756 +7.07980829e-06 +0.29999557624634926 0.0011676625751051118 3.055021078867999 +256.9847919768008 164.61755869715932 54.083333897413326 +0.4 0.4 0.4 +0.0 0.0 0.0 +986.0 2.96336237e-07 0.00019081952515606263 +7.07980829e-06 +0.14055600964779558 0.0006255484448296172 4.197820752524388 +212.36644452501898 273.32646812567185 296.0458302579175 +0.4 0.4 0.4 +0.0 0.0 0.0 +987.0 2.96336237e-07 0.0002079176483392447 +7.07980829e-06 +0.15315033910715795 0.001205282231944934 2.7062419360122356 +263.1550680592602 239.03960080387805 266.1389806298129 +0.4 0.4 0.4 +0.0 0.0 0.0 +988.0 2.96336237e-07 0.0005356291778285949 +7.07980829e-06 +0.3945398136010656 0.0014083723635099636 7.44772565198021 +271.94654997981996 318.713146901804 271.098975185176 +0.4 0.4 0.4 +0.0 0.0 0.0 +989.0 2.96336237e-07 0.00031289836564658895 +7.07980829e-06 +0.2304782262959327 0.001996157571664623 1.7953675532218945 +157.30520641324463 97.28381007133018 168.826782524686 +0.4 0.4 0.4 +0.0 0.0 0.0 +990.0 2.96336237e-07 0.00014013209994440944 +7.07980829e-06 +0.10322009121259194 0.0010882833278620838 5.078082735136406 +9.2520530552408 132.5894578402618 331.3155501776673 +0.4 0.4 0.4 +0.0 0.0 0.0 +991.0 2.96336237e-07 0.00233082373662703 +7.07980829e-06 +1.7168645784267693 0.0016271650341297165 4.114544153927535 +351.25334548400645 138.95504074018666 185.8353351547235 +0.4 0.4 0.4 +0.0 0.0 0.0 +992.0 2.96336237e-07 0.002636986233870952 +7.07980829e-06 +1.9423812223929209 0.0019692418167083325 11.425318652008995 +185.73262580174244 252.03030092015973 207.56120933659767 +0.4 0.4 0.4 +0.0 0.0 0.0 +993.0 2.96336237e-07 0.00016402183333624496 +7.07980829e-06 +0.12081706193327614 0.0003224994503120344 7.709563804183875 +257.0939616583555 85.40420498679829 110.05836070945647 +0.4 0.4 0.4 +0.0 0.0 0.0 +994.0 2.96336237e-07 0.0012377043699630425 +7.07980829e-06 +0.9116823198431324 0.00022287062354428208 9.300229676165964 +280.63884189171 318.62871983717224 296.0717146606687 +0.4 0.4 0.4 +0.0 0.0 0.0 +995.0 2.96336237e-07 0.002260220280143841 +7.07980829e-06 +1.6648586838386625 0.0007465494368326222 7.4287326086969925 +112.11905360177528 291.5900905227579 109.71810904858756 +0.4 0.4 0.4 +0.0 0.0 0.0 +996.0 2.96336237e-07 0.00026215899699463027 +7.07980829e-06 +0.19310404677245338 0.0006067378650827866 3.6110927080088966 +97.28106390217381 324.10608453382685 168.11069126980863 +0.4 0.4 0.4 +0.0 0.0 0.0 +997.0 2.96336237e-07 0.00018069785172300103 +7.07980829e-06 +0.13310047265520683 0.0005521152215102571 4.912658693805361 +93.03184991783085 132.10056259281993 305.7467862413506 +0.4 0.4 0.4 +0.0 0.0 0.0 +998.0 2.96336237e-07 0.0014835722645703342 +7.07980829e-06 +1.092786481685282 0.00022519760218844083 0.28299231052296037 +293.16727028839244 89.60460664524368 269.71206597351477 +0.4 0.4 0.4 +0.0 0.0 0.0 +999.0 2.96336237e-07 0.0006542284424778668 +7.07980829e-06 +0.48189900481921283 5.8469340653842034e-05 8.6347131557263 +320.3038606133154 3.7362594166049425 297.8745781037441 +0.4 0.4 0.4 +0.0 0.0 0.0 +1000.0 2.96336237e-07 0.0023860635951898344 +7.07980829e-06 +1.7575537798423284 0.0015923584364734404 0.7497659565533127 +258.13390529900033 164.1276557227987 234.5342373211746 +0.4 0.4 0.4 +0.0 0.0 0.0 +1001.0 2.96336237e-07 0.00016412719469400177 +7.07980829e-06 +0.12089467019692349 0.0006199101143477205 3.528817814353401 +42.290001410886 340.89543332710036 171.86047583604415 +0.4 0.4 0.4 +0.0 0.0 0.0 +1002.0 2.96336237e-07 0.004941936846687636 +7.07980829e-06 +3.6401878818937763 0.001361898468997319 2.167593142033261 +16.21639790039635 4.730174650782885 58.251883556586385 +0.4 0.4 0.4 +0.0 0.0 0.0 +1003.0 2.96336237e-07 0.00022503263383578275 +7.07980829e-06 +0.16575708920050317 0.001966846897325159 9.99588265829861 +161.46885212574486 120.73838153799245 190.69422150670002 +0.4 0.4 0.4 +0.0 0.0 0.0 +1004.0 2.96336237e-07 0.0006111785368094322 +7.07980829e-06 +0.4501888171352197 0.001266552287936059 3.4753217655037876 +293.8923905613918 150.86042915093037 112.98897163665784 +0.4 0.4 0.4 +0.0 0.0 0.0 +1005.0 2.96336237e-07 0.0014933101478686677 +7.07980829e-06 +1.0999593221884236 0.0003932826201052038 11.015694261113268 +197.1351304007129 80.23041820280649 256.5820864126465 +0.4 0.4 0.4 +0.0 0.0 0.0 +1006.0 2.96336237e-07 0.00018406461078391325 +7.07980829e-06 +0.13558039822184031 0.0018493648780547522 8.220110340024462 +55.73290020366385 260.5081647359973 247.1075065232204 +0.4 0.4 0.4 +0.0 0.0 0.0 +1007.0 2.96336237e-07 0.00019456058361372848 +7.07980829e-06 +0.14331164090847814 0.0010977637225908158 2.4063330147587334 +280.25718138195566 174.4845719313416 50.162734252997346 +0.4 0.4 0.4 +0.0 0.0 0.0 +1008.0 2.96336237e-07 0.00024237110581885066 +7.07980829e-06 +0.17852845750433366 0.0015150721806043333 2.593896114664551 +1.5867521368020707 50.3209565059869 286.4748774211602 +0.4 0.4 0.4 +0.0 0.0 0.0 +1009.0 2.96336237e-07 0.0002880594378219669 +7.07980829e-06 +0.2121820871765049 0.0011051968447009415 0.9220451361420159 +213.93920419758638 101.13182462569537 87.28103445701775 +0.4 0.4 0.4 +0.0 0.0 0.0 +1010.0 2.96336237e-07 0.001835451666065534 +7.07980829e-06 +1.3519778013941521 0.0012681262242561415 8.64584690347934 +157.36434888906416 144.07645513624757 80.24977045653176 +0.4 0.4 0.4 +0.0 0.0 0.0 +1011.0 2.96336237e-07 0.00031003391026964154 +7.07980829e-06 +0.22836829327273386 0.0014620575872105336 7.427938697241293 +90.3044091402035 81.87800973534473 358.49381627511474 +0.4 0.4 0.4 +0.0 0.0 0.0 +1012.0 2.96336237e-07 0.00017192364762639922 +7.07980829e-06 +0.1266374699061692 0.0018842981448954994 3.4713185050926847 +76.79269848254022 92.0385212581749 214.5312215545811 +0.4 0.4 0.4 +0.0 0.0 0.0 +1013.0 2.96336237e-07 0.0011995594696174474 +7.07980829e-06 +0.8835851166004101 0.000669592468330938 1.2977853266371469 +325.7330316843859 1.5205524389952982 206.46145338562224 +0.4 0.4 0.4 +0.0 0.0 0.0 +1014.0 2.96336237e-07 0.0004297236435249972 +7.07980829e-06 +0.31653071422217804 0.0003968290223471482 10.695383872637636 +235.65535308705591 285.04481948708445 4.037853790044544 +0.4 0.4 0.4 +0.0 0.0 0.0 +1015.0 2.96336237e-07 0.0009663190570397225 +7.07980829e-06 +0.7117822486616155 1.0582720333339041e-05 1.0331708911946655 +20.22623311598944 318.3578681583923 174.8102790417449 +0.4 0.4 0.4 +0.0 0.0 0.0 +1016.0 2.96336237e-07 0.00019430233859558718 +7.07980829e-06 +0.14312141986463225 0.000694789513369331 1.1919133893280893 +144.64146687271867 33.42514348436069 1.7437790912856979 +0.4 0.4 0.4 +0.0 0.0 0.0 +1017.0 2.96336237e-07 0.0002351421165249028 +7.07980829e-06 +0.17320364659668183 0.00011020940322937086 6.6717830165939 +106.49474151879747 116.21484599903383 168.11514233105655 +0.4 0.4 0.4 +0.0 0.0 0.0 +1018.0 2.96336237e-07 0.0006374122183839503 +7.07980829e-06 +0.46951231978763164 1.0313885841382204e-05 0.283485576361803 +248.40949874465076 61.78537628740118 69.80315322742248 +0.4 0.4 0.4 +0.0 0.0 0.0 +1019.0 2.96336237e-07 0.0016238205834913815 +7.07980829e-06 +1.196092178789557 0.00044029218790311245 9.294952685150736 +192.9432720942652 219.75438615459558 8.593013571751802 +0.4 0.4 0.4 +0.0 0.0 0.0 +1020.0 2.96336237e-07 0.0002359911786367202 +7.07980829e-06 +0.1738290583949901 0.0016860917119783944 7.070809732901793 +50.61554168251882 82.35194741251726 122.93934305630053 +0.4 0.4 0.4 +0.0 0.0 0.0 +1021.0 2.96336237e-07 0.0013374222699180736 +7.07980829e-06 +0.985133661348538 0.0016013894048395488 0.1937721644334621 +310.06595705801703 328.0680479331346 324.315639311186 +0.4 0.4 0.4 +0.0 0.0 0.0 +1022.0 2.96336237e-07 0.0005509336475663367 +7.07980829e-06 +0.40581295346635515 0.00177184140930115 4.72270518835129 +13.777991578702514 29.103319407207273 209.48918113436866 +0.4 0.4 0.4 +0.0 0.0 0.0 +1023.0 2.96336237e-07 0.00041610279811663437 +7.07980829e-06 +0.30649771745697174 0.0009590960375982868 0.3398205898598721 +4.114269656502745 119.46390049602921 202.11512779386223 +0.4 0.4 0.4 +0.0 0.0 0.0 +1024.0 2.96336237e-07 0.0001403860693474923 +7.07980829e-06 +0.1034071628754145 0.0014866370983263651 0.4388100867792128 +156.1246806954142 299.55046831024754 184.84512699514002 +0.4 0.4 0.4 +0.0 0.0 0.0 +1025.0 2.96336237e-07 0.0004904100706912027 +7.07980829e-06 +0.36123181090129014 0.0005275158958782995 6.040658312413581 +289.57784927223867 106.22818791374922 246.0010122010286 +0.4 0.4 0.4 +0.0 0.0 0.0 +1026.0 2.96336237e-07 0.0002115872709214439 +7.07980829e-06 +0.1558533513206383 0.00017962305255114086 2.228555718939646 +221.69083506261506 335.55035580083063 68.78998943071673 +0.4 0.4 0.4 +0.0 0.0 0.0 +1027.0 2.96336237e-07 0.0012054461730928302 +7.07980829e-06 +0.8879212113989006 0.0018184438677694458 9.604726975252321 +256.33122715191917 110.65660729704527 307.36242303481583 +0.4 0.4 0.4 +0.0 0.0 0.0 +1028.0 2.96336237e-07 0.0002301953665735905 +7.07980829e-06 +0.16955991342360516 0.001875700972295152 8.812230202795027 +318.4987276783344 313.5618824324488 232.72945395306718 +0.4 0.4 0.4 +0.0 0.0 0.0 +1029.0 2.96336237e-07 0.0003830711229494787 +7.07980829e-06 +0.2821668715978782 0.0018646047988924999 10.4842960126124 +87.79503469486153 142.14901778290115 169.28619961043805 +0.4 0.4 0.4 +0.0 0.0 0.0 +1030.0 2.96336237e-07 0.00013616362117447619 +7.07980829e-06 +0.1002969441194545 0.0019340938484324966 9.257468575255746 +98.6643320398618 100.47235147951874 223.44457800245482 +0.4 0.4 0.4 +0.0 0.0 0.0 +1031.0 2.96336237e-07 0.0010567519895469774 +7.07980829e-06 +0.7783943635569466 0.001679773904269816 1.2027233467654006 +183.8272709991961 232.37589915408836 235.10407255216268 +0.4 0.4 0.4 +0.0 0.0 0.0 +1032.0 2.96336237e-07 0.0006595442619462101 +7.07980829e-06 +0.485814591402228 0.0010034907372722369 3.273195681562454 +229.21049828043255 132.60304900464524 14.233912459494354 +0.4 0.4 0.4 +0.0 0.0 0.0 +1033.0 2.96336237e-07 0.00023664997581116507 +7.07980829e-06 +0.17431432268820896 0.0016827982976985647 5.078435328585683 +62.29790054827389 41.22978729775912 107.23698746785354 +0.4 0.4 0.4 +0.0 0.0 0.0 +1034.0 2.96336237e-07 0.001318705638331831 +7.07980829e-06 +0.9713471526164856 0.0018570382735186622 7.035178345537015 +353.5214098527756 257.39567363852177 183.11732818206784 +0.4 0.4 0.4 +0.0 0.0 0.0 +1035.0 2.96336237e-07 0.0005118746339964803 +7.07980829e-06 +0.37704242233926993 0.0005823099511214891 7.468921656685116 +229.6514522787109 181.28691418249238 167.59896969912432 +0.4 0.4 0.4 +0.0 0.0 0.0 +1036.0 2.96336237e-07 0.00015029486112446563 +7.07980829e-06 +0.11070589308377869 0.00018389956348444143 1.9961843041263327 +158.13156629323322 291.93559238946756 147.74549322555492 +0.4 0.4 0.4 +0.0 0.0 0.0 +1037.0 2.96336237e-07 0.00043842515077565096 +7.07980829e-06 +0.32294016910407747 0.0015694793242154081 4.926590245765692 +301.9847715564752 193.4474659331788 270.15259927024186 +0.4 0.4 0.4 +0.0 0.0 0.0 +1038.0 2.96336237e-07 0.0006671725313668756 +7.07980829e-06 +0.49143350859327606 0.0015771093149727837 10.224654773938632 +111.27785703678904 48.8195507283246 90.33356191746999 +0.4 0.4 0.4 +0.0 0.0 0.0 +1039.0 2.96336237e-07 0.0007178575227925163 +7.07980829e-06 +0.5287676343227806 0.0014126630019065758 9.776440869136062 +187.9378440567246 159.39709706456992 19.349416992256124 +0.4 0.4 0.4 +0.0 0.0 0.0 +1040.0 2.96336237e-07 0.0002798437797408352 +7.07980829e-06 +0.20613050458520504 0.0016509289679437099 4.723892716345665 +91.14449265725597 85.21589055108116 98.32164075727847 +0.4 0.4 0.4 +0.0 0.0 0.0 +1041.0 2.96336237e-07 0.0002263422882310149 +7.07980829e-06 +0.16672176928584023 0.0004714213343695067 0.22170557888045386 +54.607112841276376 12.205015472013512 173.46043809374353 +0.4 0.4 0.4 +0.0 0.0 0.0 +1042.0 2.96336237e-07 0.0009296457461436903 +7.07980829e-06 +0.6847690054628205 0.0006431313423143502 0.7775645891294196 +13.438885358051545 201.28512538898056 237.90695576201654 +0.4 0.4 0.4 +0.0 0.0 0.0 +1043.0 2.96336237e-07 0.00014471154854085126 +7.07980829e-06 +0.1065932733886645 0.0013576679540193398 5.468547562720859 +36.06169947612996 221.1108065224926 121.64906093398862 +0.4 0.4 0.4 +0.0 0.0 0.0 +1044.0 2.96336237e-07 0.00037877024306155 +7.07980829e-06 +0.2789988807199672 0.0011132428485285735 5.050474666995423 +249.74545118406445 258.5653900199572 92.29764359239104 +0.4 0.4 0.4 +0.0 0.0 0.0 +1045.0 2.96336237e-07 0.001114328815806798 +7.07980829e-06 +0.8208049551389457 0.0002629442756225448 6.163105710226599 +271.7004838770167 98.10963662399806 23.94590526447956 +0.4 0.4 0.4 +0.0 0.0 0.0 +1046.0 2.96336237e-07 0.0001582092222130898 +7.07980829e-06 +0.11653554291976381 0.00023376293046817017 8.835825709860268 +263.8062967986066 31.365484807908 308.687475111338 +0.4 0.4 0.4 +0.0 0.0 0.0 +1047.0 2.96336237e-07 0.0001380216644816069 +7.07980829e-06 +0.10166556272800358 0.00045162508055423043 1.5132402918154233 +326.71546075352586 327.68305493129543 29.18082087489584 +0.4 0.4 0.4 +0.0 0.0 0.0 +1048.0 2.96336237e-07 0.0006949747121783435 +7.07980829e-06 +0.5119123541997226 0.0018713396984367957 7.02135922104862 +303.3858597951343 78.44703853152163 145.1418248146341 +0.4 0.4 0.4 +0.0 0.0 0.0 +1049.0 2.96336237e-07 0.00041090676352630105 +7.07980829e-06 +0.3026703633777083 0.0018193201285857054 4.736122465093243 +192.76873790004578 123.35136201021704 226.6478029131528 +0.4 0.4 0.4 +0.0 0.0 0.0 +1050.0 2.96336237e-07 0.0005190460990146181 +7.07980829e-06 +0.382324861363546 0.00036914350456759447 7.0531347201912356 +319.30383186798866 186.0442457047016 45.41161522402716 +0.4 0.4 0.4 +0.0 0.0 0.0 +1051.0 2.96336237e-07 0.0005570896423234391 +7.07980829e-06 +0.4103474058907777 0.00019454636651792913 3.308658013346352 +259.4879647052133 198.29000308840256 121.88790531858048 +0.4 0.4 0.4 +0.0 0.0 0.0 +1052.0 2.96336237e-07 0.00015004376774584662 +7.07980829e-06 +0.11052093987566852 0.0005132108209643012 5.847971496400572 +358.2931626537533 52.74559372288429 341.8253704638137 +0.4 0.4 0.4 +0.0 0.0 0.0 +1053.0 2.96336237e-07 0.0002698064447930371 +7.07980829e-06 +0.19873709059045247 4.0859603511946685e-05 9.177085749947818 +74.85375525962608 51.57071985092971 71.96201861419884 +0.4 0.4 0.4 +0.0 0.0 0.0 +1054.0 2.96336237e-07 0.0012305098304465736 +7.07980829e-06 +0.9063828843432212 8.347532413762518e-05 11.039263844273759 +351.14137820165297 198.23851222477109 203.36588365669812 +0.4 0.4 0.4 +0.0 0.0 0.0 +1055.0 2.96336237e-07 0.0001568172138124013 +7.07980829e-06 +0.11551020158723 0.0009641443679568011 6.060219043124053 +250.67097763803443 73.7144156562964 61.69380447177951 +0.4 0.4 0.4 +0.0 0.0 0.0 +1056.0 2.96336237e-07 0.0007784718672315925 +7.07980829e-06 +0.5734156354893578 0.00037805965343345397 9.20178855576056 +185.31494995190826 272.62312850782456 244.0037955450334 +0.4 0.4 0.4 +0.0 0.0 0.0 +1057.0 2.96336237e-07 0.0020016415139744647 +7.07980829e-06 +1.474391804085696 0.0017615842823230773 6.886427957908099 +232.2819884863594 20.386138671028082 287.0942892242212 +0.4 0.4 0.4 +0.0 0.0 0.0 +1058.0 2.96336237e-07 0.0003128786308940594 +7.07980829e-06 +0.23046368984813118 0.00026034657543586693 0.9965960172825522 +282.2271432222122 109.64538903982367 30.26113287739992 +0.4 0.4 0.4 +0.0 0.0 0.0 +1059.0 2.96336237e-07 0.002280948538736275 +7.07980829e-06 +1.6801269396018885 0.0018814136632662839 4.401712167064789 +142.60240528002035 323.0208336955997 201.17599880588443 +0.4 0.4 0.4 +0.0 0.0 0.0 +1060.0 2.96336237e-07 0.0010794162761996403 +7.07980829e-06 +0.7950886808224714 0.0006422835491610436 7.311343469200093 +3.3195965949378676 195.64747664798455 301.5916100882996 +0.4 0.4 0.4 +0.0 0.0 0.0 +1061.0 2.96336237e-07 0.0038205438966614834 +7.07980829e-06 +2.8141795466674058 0.00119787361542321 10.667509696747311 +52.83677312459824 41.02571442700538 313.93040156906204 +0.4 0.4 0.4 +0.0 0.0 0.0 +1062.0 2.96336237e-07 0.0007444726066210494 +7.07980829e-06 +0.5483720745723865 0.0003865067453184975 0.5355920908152287 +342.9518172608334 309.11372912966795 118.04505970639424 +0.4 0.4 0.4 +0.0 0.0 0.0 +1063.0 2.96336237e-07 0.0030820512703673723 +7.07980829e-06 +2.2702122738145465 0.001414595339723291 3.0183779331408984 +44.040931617179766 165.14070943364828 170.9325128444665 +0.4 0.4 0.4 +0.0 0.0 0.0 +1064.0 2.96336237e-07 0.001292023450921525 +7.07980829e-06 +0.9516932844496926 0.001255124176185626 9.410447615755132 +103.77112988217213 98.92626620219501 36.37866204625916 +0.4 0.4 0.4 +0.0 0.0 0.0 +1065.0 2.96336237e-07 0.0005006501267576775 +7.07980829e-06 +0.3687745475164047 0.00012010083746096664 11.332153792172592 +82.36163994190758 221.29234376821722 312.489878003404 +0.4 0.4 0.4 +0.0 0.0 0.0 +1066.0 2.96336237e-07 0.00024312721614488058 +7.07980829e-06 +0.17908540182223479 0.0007928811065615938 9.090241652441014 +148.41938777280106 66.55238686381871 122.48896513542098 +0.4 0.4 0.4 +0.0 0.0 0.0 +1067.0 2.96336237e-07 0.000484561114979234 +7.07980829e-06 +0.3569235207784181 0.0002450194070024846 4.327457613923389 +154.34903842078862 184.03496751066874 141.03467043934236 +0.4 0.4 0.4 +0.0 0.0 0.0 +1068.0 2.96336237e-07 0.0002295281745818022 +7.07980829e-06 +0.169068465580634 0.0014182095016049016 4.076850747292395 +285.9512621452999 304.0626748996221 13.733221199055034 +0.4 0.4 0.4 +0.0 0.0 0.0 +1069.0 2.96336237e-07 0.0003594752961708292 +7.07980829e-06 +0.2647863899431045 0.0002604205926253782 9.280674865620604 +145.2491426198426 8.796817478925986 128.45810995912268 +0.4 0.4 0.4 +0.0 0.0 0.0 +1070.0 2.96336237e-07 0.00014172518222536575 +7.07980829e-06 +0.10439354182394157 9.839221898313551e-05 2.1156677281913794 +24.852002854809896 92.69018327719559 148.89039267610767 +0.4 0.4 0.4 +0.0 0.0 0.0 +1071.0 2.96336237e-07 0.0002016479386200088 +7.07980829e-06 +0.14853212522645015 0.0017914163418180427 11.068928719328813 +114.12056238330297 311.59906008741643 291.70201700840965 +0.4 0.4 0.4 +0.0 0.0 0.0 +1072.0 2.96336237e-07 0.00029647910859208323 +7.07980829e-06 +0.21838394374767 0.0005146041736322796 9.504245913579787 +265.097773326478 182.73670388417793 51.957204708288096 +0.4 0.4 0.4 +0.0 0.0 0.0 +1073.0 2.96336237e-07 0.00027367525859549297 +7.07980829e-06 +0.20158682533168915 0.00018687907075023996 9.319915790288432 +282.55201858549447 141.6311126988207 131.21227760057155 +0.4 0.4 0.4 +0.0 0.0 0.0 +1074.0 2.96336237e-07 0.00015525822331078113 +7.07980829e-06 +0.11436186268528936 0.0004119016832350737 6.574991289388891 +105.77935988116378 236.0611136901257 109.28511887744698 +0.4 0.4 0.4 +0.0 0.0 0.0 +1075.0 2.96336237e-07 0.0003583433710142642 +7.07980829e-06 +0.2639526236757552 0.0008337956289715744 1.3376216652307844 +121.92448780471639 34.07719270560039 77.69917625943664 +0.4 0.4 0.4 +0.0 0.0 0.0 +1076.0 2.96336237e-07 0.00038670760067879823 +7.07980829e-06 +0.2848454695997766 0.0016887729407050614 2.0032196718865887 +5.268555024531614 305.5550610348134 87.36285255817019 +0.4 0.4 0.4 +0.0 0.0 0.0 +1077.0 2.96336237e-07 0.0005852817156672451 +7.07980829e-06 +0.4311134429599012 4.2331792720825e-05 8.59969096301321 +63.37516804763427 165.06484164761468 4.724447309546279 +0.4 0.4 0.4 +0.0 0.0 0.0 +1078.0 2.96336237e-07 0.0015676661151334862 +7.07980829e-06 +1.1547292837198626 0.0011981035748268721 8.969251150946953 +305.463305609603 217.13849671607755 101.181996737649 +0.4 0.4 0.4 +0.0 0.0 0.0 +1079.0 2.96336237e-07 0.00014305620178764748 +7.07980829e-06 +0.10537395930629548 0.0009062114287953925 8.535513578982753 +200.6263462199005 138.64084794365152 240.50625521460537 +0.4 0.4 0.4 +0.0 0.0 0.0 +1080.0 2.96336237e-07 0.0004940068971867729 +7.07980829e-06 +0.36388120214780617 0.0011787048296460743 2.2700663210263694 +157.0025718585469 106.5254491912733 193.52066864297382 +0.4 0.4 0.4 +0.0 0.0 0.0 +1081.0 2.96336237e-07 0.00034215807366096336 +7.07980829e-06 +0.25203067381720473 0.00033240376352644557 5.8095471421992055 +294.8529110644031 32.43864947017361 108.02452531613245 +0.4 0.4 0.4 +0.0 0.0 0.0 +1082.0 2.96336237e-07 0.0005257134897729528 +7.07980829e-06 +0.38723600365355887 0.0014176988844195625 1.7020679685604367 +154.24226598932938 249.80038110010247 217.66315089733828 +0.4 0.4 0.4 +0.0 0.0 0.0 +1083.0 2.96336237e-07 0.00013922216074144442 +7.07980829e-06 +0.10254983787616709 0.001955802223468188 6.566427553036517 +285.0325186657339 202.16052389944963 135.84081277325714 +0.4 0.4 0.4 +0.0 0.0 0.0 +1084.0 2.96336237e-07 0.0002073898952932506 +7.07980829e-06 +0.15276160078405535 0.0007628203986920079 10.56800929369996 +333.12847419347 204.0299708421488 12.049520689477403 +0.4 0.4 0.4 +0.0 0.0 0.0 +1085.0 2.96336237e-07 0.00017702811622741558 +7.07980829e-06 +0.13039737727070405 0.00036806562946591764 7.391982068575776 +17.506082273198004 89.500369236383 15.26719944960728 +0.4 0.4 0.4 +0.0 0.0 0.0 +1086.0 2.96336237e-07 0.00020397807847560232 +7.07980829e-06 +0.15024848606403035 0.0015049857013671706 1.2247498246658155 +268.0571666819836 169.12252482509325 35.3722225357901 +0.4 0.4 0.4 +0.0 0.0 0.0 +1087.0 2.96336237e-07 0.00014807870410146713 +7.07980829e-06 +0.10907349101354584 0.0006756310625710788 1.2383196196555968 +64.40501108361362 318.89784866832827 311.5312956004794 +0.4 0.4 0.4 +0.0 0.0 0.0 +1088.0 2.96336237e-07 0.0002733111251738441 +7.07980829e-06 +0.20131860780686034 0.001126384587638148 3.43465132561609 +184.4402950800669 242.44812792063072 237.3097094630739 +0.4 0.4 0.4 +0.0 0.0 0.0 +1089.0 2.96336237e-07 0.00015277565689980917 +7.07980829e-06 +0.11253322576709932 0.0009290556457821281 8.960476834173825 +258.69701166205476 210.9678169871424 193.3540846978131 +0.4 0.4 0.4 +0.0 0.0 0.0 +1090.0 2.96336237e-07 0.0043134087862902485 +7.07980829e-06 +3.177219555938278 0.0008815486955619425 3.6471376972641885 +187.12691492260888 208.12911881504223 127.41614600761226 +0.4 0.4 0.4 +0.0 0.0 0.0 +1091.0 2.96336237e-07 0.00037712157611909835 +7.07980829e-06 +0.27778448692834806 0.0005856039772976977 0.7362629193989895 +352.3748924239602 122.29468759528565 358.21764314401554 +0.4 0.4 0.4 +0.0 0.0 0.0 +1092.0 2.96336237e-07 0.00024348957256648923 +7.07980829e-06 +0.17935231042422356 5.080273648972676e-05 3.472841125950471 +87.14731508665045 200.7294349087714 23.581240140004677 +0.4 0.4 0.4 +0.0 0.0 0.0 +1093.0 2.96336237e-07 0.0019968678097743524 +7.07980829e-06 +1.4708755349142997 0.0008350197432291574 6.939407722721982 +184.84798594437146 215.22131590969263 274.3975154363176 +0.4 0.4 0.4 +0.0 0.0 0.0 +1094.0 2.96336237e-07 0.0002513942749606196 +7.07980829e-06 +0.1851748457494931 0.0012729795107657288 3.968846002826205 +15.515048045390435 316.7696316507825 94.76644295378343 +0.4 0.4 0.4 +0.0 0.0 0.0 +1095.0 2.96336237e-07 0.0001559672886350869 +7.07980829e-06 +0.11488415406235117 0.0006109202926005335 3.789764151004609 +278.57890670487143 14.385308236382837 334.617191068131 +0.4 0.4 0.4 +0.0 0.0 0.0 +1096.0 2.96336237e-07 0.0005494382458640973 +7.07980829e-06 +0.404711453523331 0.0018056648021694045 6.125582872164304 +212.4724906745584 14.141381811132613 308.585487497957 +0.4 0.4 0.4 +0.0 0.0 0.0 +1097.0 2.96336237e-07 0.0002965408486382183 +7.07980829e-06 +0.2184294209309568 0.0018885208812988777 11.317354301511031 +164.26963701178843 297.40431351980413 270.4945984891715 +0.4 0.4 0.4 +0.0 0.0 0.0 +1098.0 2.96336237e-07 0.0002576039217105266 +7.07980829e-06 +0.18974881776716537 0.00033002858484475775 4.498053807254714 +33.645734868988015 295.597646549693 234.4151171811031 +0.4 0.4 0.4 +0.0 0.0 0.0 +1099.0 2.96336237e-07 0.0001958825246323774 +7.07980829e-06 +0.14428537121421636 0.0017137044394379005 4.029642428036966 +271.67316889786736 106.54609382292395 138.21725331441138 +0.4 0.4 0.4 +0.0 0.0 0.0 +1100.0 2.96336237e-07 0.00016611157008233055 +7.07980829e-06 +0.12235634392239092 0.001657358982362942 0.5373922338997845 +225.46337325647366 197.13129345073978 114.94304125662089 +0.4 0.4 0.4 +0.0 0.0 0.0 +1101.0 2.96336237e-07 0.001308605507277351 +7.07980829e-06 +0.9639074835533934 0.0010432942754127976 10.412349198039687 +114.9249921105892 32.56533325561457 288.25205278496304 +0.4 0.4 0.4 +0.0 0.0 0.0 +1102.0 2.96336237e-07 0.0003442049054244555 +7.07980829e-06 +0.25353835236771743 0.0008680211886097618 7.07908811460832 +184.72976734274292 234.14267202181568 36.374336712281284 +0.4 0.4 0.4 +0.0 0.0 0.0 +1103.0 2.96336237e-07 0.00262679764649654 +7.07980829e-06 +1.9348763971706382 0.001429152651771894 6.217100494758238 +51.181217194967104 134.40266278121493 62.68811212560275 +0.4 0.4 0.4 +0.0 0.0 0.0 +1104.0 2.96336237e-07 0.00013666754181719987 +7.07980829e-06 +0.10066812770070735 0.0010243846983094584 9.311950281761822 +220.50938404411406 259.8318109894018 285.0754878105018 +0.4 0.4 0.4 +0.0 0.0 0.0 +1105.0 2.96336237e-07 0.00019553250780010182 +7.07980829e-06 +0.14402755184686397 0.0015210580561077288 1.9378674420443527 +31.802333045565963 246.72956575146446 163.22157357298997 +0.4 0.4 0.4 +0.0 0.0 0.0 +1106.0 2.96336237e-07 0.0011042330330908016 +7.07980829e-06 +0.8133684890243221 4.150335338481837e-05 7.261073943736824 +269.56939767535096 179.46353685386686 260.9257799412304 +0.4 0.4 0.4 +0.0 0.0 0.0 diff --git a/examples/symba_clement_2018/sun_MsunAUYR.in b/examples/symba_clement_2018/sun_MsunAUYR.in index ceb04eea1..fbe9bc7ed 100644 --- a/examples/symba_clement_2018/sun_MsunAUYR.in +++ b/examples/symba_clement_2018/sun_MsunAUYR.in @@ -1,7 +1,7 @@ -0 ! id -39.476926408897626 ! G*Mass -0.004650467260962157 ! Radius -0.0 !4.7535806948127355e-12 ! J2 -0.0 !-2.2473967953572827e-18 ! J4 -0.0 0.0 0.07 ! Principle axes moments of inertia -11.2093063 -38.75937204 82.25088158 ! Rotation vector (rad/TU) +0 +39.476926408897626 +0.004650467260962157 +0.0 +0.0 +0.0 0.0 0.07 +11.2093063 -38.75937204 82.25088158 diff --git a/examples/symba_clement_2018/tp.in b/examples/symba_clement_2018/tp.in index 573541ac9..e4395ea36 100644 --- a/examples/symba_clement_2018/tp.in +++ b/examples/symba_clement_2018/tp.in @@ -1 +1,12973 @@ -0 +4324 +1107.0 +nan nan nan +nan nan nan +1108.0 +nan nan nan +nan nan nan +1109.0 +nan nan nan +nan nan nan +1110.0 +nan nan nan +nan nan nan +1111.0 +nan nan nan +nan nan nan +1112.0 +nan nan nan +nan nan nan +1113.0 +nan nan nan +nan nan nan +1114.0 +nan nan nan +nan nan nan +1115.0 +nan nan nan +nan nan nan +1116.0 +nan nan nan +nan nan nan +1117.0 +nan nan nan +nan nan nan +1118.0 +nan nan nan +nan nan nan +1119.0 +nan nan nan +nan nan nan +1120.0 +nan nan nan +nan nan nan +1121.0 +nan nan nan +nan nan nan +1122.0 +nan nan nan +nan nan nan +1123.0 +nan nan nan +nan nan nan +1124.0 +nan nan nan +nan nan nan +1125.0 +nan nan nan +nan nan nan +1126.0 +nan nan nan +nan nan nan +1127.0 +nan nan nan +nan nan nan +1128.0 +nan nan nan +nan nan nan +1129.0 +nan nan nan +nan nan nan +1130.0 +nan nan nan +nan nan nan +1131.0 +nan nan nan +nan nan nan +1132.0 +nan nan nan +nan nan nan +1133.0 +nan nan nan +nan nan nan +1134.0 +nan nan nan +nan nan nan +1135.0 +nan nan nan +nan nan nan +1136.0 +nan nan nan +nan nan nan +1137.0 +nan nan nan +nan nan nan +1138.0 +nan nan nan +nan nan nan +1139.0 +nan nan nan +nan nan nan +1140.0 +nan nan nan +nan nan nan +1141.0 +nan nan nan +nan nan nan +1142.0 +nan nan nan +nan nan nan +1143.0 +nan nan nan +nan nan nan +1144.0 +nan nan nan +nan nan nan +1145.0 +nan nan nan +nan nan nan +1146.0 +nan nan nan +nan nan nan +1147.0 +nan nan nan +nan nan nan +1148.0 +nan nan nan +nan nan nan +1149.0 +nan nan nan +nan nan nan +1150.0 +nan nan nan +nan nan nan +1151.0 +nan nan nan +nan nan nan +1152.0 +nan nan nan +nan nan nan +1153.0 +nan nan nan +nan nan nan +1154.0 +nan nan nan +nan nan nan +1155.0 +nan nan nan +nan nan nan +1156.0 +nan nan nan +nan nan nan +1157.0 +nan nan nan +nan nan nan +1158.0 +nan nan nan +nan nan nan +1159.0 +nan nan nan +nan nan nan +1160.0 +nan nan nan +nan nan nan +1161.0 +nan nan nan +nan nan nan +1162.0 +nan nan nan +nan nan nan +1163.0 +nan nan nan +nan nan nan +1164.0 +nan nan nan +nan nan nan +1165.0 +nan nan nan +nan nan nan +1166.0 +nan nan nan +nan nan nan +1167.0 +nan nan nan +nan nan nan +1168.0 +nan nan nan +nan nan nan +1169.0 +nan nan nan +nan nan nan +1170.0 +nan nan nan +nan nan nan +1172.0 +nan nan nan +nan nan nan +1173.0 +nan nan nan +nan nan nan +1174.0 +nan nan nan +nan nan nan +1175.0 +nan nan nan +nan nan nan +1176.0 +nan nan nan +nan nan nan +1177.0 +nan nan nan +nan nan nan +1178.0 +nan nan nan +nan nan nan +1179.0 +nan nan nan +nan nan nan +1180.0 +nan nan nan +nan nan nan +1181.0 +nan nan nan +nan nan nan +1182.0 +nan nan nan +nan nan nan +1183.0 +nan nan nan +nan nan nan +1184.0 +nan nan nan +nan nan nan +1185.0 +nan nan nan +nan nan nan +1186.0 +nan nan nan +nan nan nan +1187.0 +nan nan nan +nan nan nan +1188.0 +nan nan nan +nan nan nan +1189.0 +nan nan nan +nan nan nan +1190.0 +nan nan nan +nan nan nan +1191.0 +nan nan nan +nan nan nan +1192.0 +nan nan nan +nan nan nan +1193.0 +nan nan nan +nan nan nan +1194.0 +nan nan nan +nan nan nan +1195.0 +nan nan nan +nan nan nan +1196.0 +nan nan nan +nan nan nan +1197.0 +nan nan nan +nan nan nan +1198.0 +nan nan nan +nan nan nan +1199.0 +nan nan nan +nan nan nan +1200.0 +nan nan nan +nan nan nan +1201.0 +nan nan nan +nan nan nan +1202.0 +nan nan nan +nan nan nan +1203.0 +nan nan nan +nan nan nan +1204.0 +nan nan nan +nan nan nan +1205.0 +nan nan nan +nan nan nan +1206.0 +nan nan nan +nan nan nan +1207.0 +nan nan nan +nan nan nan +1208.0 +nan nan nan +nan nan nan +1209.0 +nan nan nan +nan nan nan +1210.0 +nan nan nan +nan nan nan +1211.0 +nan nan nan +nan nan nan +1212.0 +nan nan nan +nan nan nan +1213.0 +nan nan nan +nan nan nan +1214.0 +nan nan nan +nan nan nan +1215.0 +nan nan nan +nan nan nan +1216.0 +nan nan nan +nan nan nan +1217.0 +nan nan nan +nan nan nan +1218.0 +nan nan nan +nan nan nan +1219.0 +nan nan nan +nan nan nan +1220.0 +nan nan nan +nan nan nan +1221.0 +nan nan nan +nan nan nan +1222.0 +nan nan nan +nan nan nan +1223.0 +nan nan nan +nan nan nan +1224.0 +nan nan nan +nan nan nan +1225.0 +nan nan nan +nan nan nan +1226.0 +nan nan nan +nan nan nan +1227.0 +nan nan nan +nan nan nan +1228.0 +nan nan nan +nan nan nan +1229.0 +nan nan nan +nan nan nan +1230.0 +nan nan nan +nan nan nan +1231.0 +nan nan nan +nan nan nan +1232.0 +nan nan nan +nan nan nan +1233.0 +nan nan nan +nan nan nan +1234.0 +nan nan nan +nan nan nan +1235.0 +nan nan nan +nan nan nan +1236.0 +nan nan nan +nan nan nan +1237.0 +nan nan nan +nan nan nan +1238.0 +nan nan nan +nan nan nan +1239.0 +nan nan nan +nan nan nan +1240.0 +nan nan nan +nan nan nan +1241.0 +nan nan nan +nan nan nan +1242.0 +nan nan nan +nan nan nan +1243.0 +nan nan nan +nan nan nan +1244.0 +nan nan nan +nan nan nan +1245.0 +nan nan nan +nan nan nan +1246.0 +nan nan nan +nan nan nan +1247.0 +nan nan nan +nan nan nan +1248.0 +nan nan nan +nan nan nan +1249.0 +nan nan nan +nan nan nan +1250.0 +nan nan nan +nan nan nan +1251.0 +nan nan nan +nan nan nan +1252.0 +nan nan nan +nan nan nan +1253.0 +nan nan nan +nan nan nan +1254.0 +nan nan nan +nan nan nan +1255.0 +nan nan nan +nan nan nan +1256.0 +nan nan nan +nan nan nan +1257.0 +nan nan nan +nan nan nan +1258.0 +nan nan nan +nan nan nan +1259.0 +nan nan nan +nan nan nan +1260.0 +nan nan nan +nan nan nan +1261.0 +nan nan nan +nan nan nan +1262.0 +nan nan nan +nan nan nan +1263.0 +nan nan nan +nan nan nan +1264.0 +nan nan nan +nan nan nan +1265.0 +nan nan nan +nan nan nan +1266.0 +nan nan nan +nan nan nan +1267.0 +nan nan nan +nan nan nan +1268.0 +nan nan nan +nan nan nan +1269.0 +nan nan nan +nan nan nan +1270.0 +nan nan nan +nan nan nan +1271.0 +nan nan nan +nan nan nan +1272.0 +nan nan nan +nan nan nan +1273.0 +nan nan nan +nan nan nan +1274.0 +nan nan nan +nan nan nan +1275.0 +nan nan nan +nan nan nan +1276.0 +nan nan nan +nan nan nan +1277.0 +nan nan nan +nan nan nan +1278.0 +nan nan nan +nan nan nan +1279.0 +nan nan nan +nan nan nan +1280.0 +nan nan nan +nan nan nan +1281.0 +nan nan nan +nan nan nan +1282.0 +nan nan nan +nan nan nan +1283.0 +nan nan nan +nan nan nan +1284.0 +nan nan nan +nan nan nan +1285.0 +nan nan nan +nan nan nan +1286.0 +nan nan nan +nan nan nan +1287.0 +nan nan nan +nan nan nan +1289.0 +nan nan nan +nan nan nan +1290.0 +nan nan nan +nan nan nan +1291.0 +nan nan nan +nan nan nan +1292.0 +nan nan nan +nan nan nan +1293.0 +nan nan nan +nan nan nan +1294.0 +nan nan nan +nan nan nan +1295.0 +nan nan nan +nan nan nan +1296.0 +nan nan nan +nan nan nan +1297.0 +nan nan nan +nan nan nan +1298.0 +nan nan nan +nan nan nan +1299.0 +nan nan nan +nan nan nan +1300.0 +nan nan nan +nan nan nan +1301.0 +nan nan nan +nan nan nan +1302.0 +nan nan nan +nan nan nan +1303.0 +nan nan nan +nan nan nan +1304.0 +nan nan nan +nan nan nan +1305.0 +nan nan nan +nan nan nan +1306.0 +nan nan nan +nan nan nan +1307.0 +nan nan nan +nan nan nan +1308.0 +nan nan nan +nan nan nan +1309.0 +nan nan nan +nan nan nan +1310.0 +nan nan nan +nan nan nan +1311.0 +nan nan nan +nan nan nan +1312.0 +nan nan nan +nan nan nan +1313.0 +nan nan nan +nan nan nan +1314.0 +nan nan nan +nan nan nan +1315.0 +nan nan nan +nan nan nan +1316.0 +nan nan nan +nan nan nan +1317.0 +nan nan nan +nan nan nan +1318.0 +nan nan nan +nan nan nan +1319.0 +nan nan nan +nan nan nan +1320.0 +nan nan nan +nan nan nan +1321.0 +nan nan nan +nan nan nan +1322.0 +nan nan nan +nan nan nan +1323.0 +nan nan nan +nan nan nan +1324.0 +nan nan nan +nan nan nan +1325.0 +nan nan nan +nan nan nan +1326.0 +nan nan nan +nan nan nan +1327.0 +nan nan nan +nan nan nan +1328.0 +nan nan nan +nan nan nan +1329.0 +nan nan nan +nan nan nan +1330.0 +nan nan nan +nan nan nan +1331.0 +nan nan nan +nan nan nan +1332.0 +nan nan nan +nan nan nan +1333.0 +nan nan nan +nan nan nan +1334.0 +nan nan nan +nan nan nan +1335.0 +nan nan nan +nan nan nan +1336.0 +nan nan nan +nan nan nan +1337.0 +nan nan nan +nan nan nan +1338.0 +nan nan nan +nan nan nan +1339.0 +nan nan nan +nan nan nan +1340.0 +nan nan nan +nan nan nan +1341.0 +nan nan nan +nan nan nan +1342.0 +nan nan nan +nan nan nan +1343.0 +nan nan nan +nan nan nan +1344.0 +nan nan nan +nan nan nan +1345.0 +nan nan nan +nan nan nan +1346.0 +nan nan nan +nan nan nan +1347.0 +nan nan nan +nan nan nan +1348.0 +nan nan nan +nan nan nan +1349.0 +nan nan nan +nan nan nan +1350.0 +nan nan nan +nan nan nan +1351.0 +nan nan nan +nan nan nan +1352.0 +nan nan nan +nan nan nan +1353.0 +nan nan nan +nan nan nan +1354.0 +nan nan nan +nan nan nan +1355.0 +nan nan nan +nan nan nan +1356.0 +nan nan nan +nan nan nan +1357.0 +nan nan nan +nan nan nan +1358.0 +nan nan nan +nan nan nan +1359.0 +nan nan nan +nan nan nan +1360.0 +nan nan nan +nan nan nan +1361.0 +nan nan nan +nan nan nan +1362.0 +nan nan nan +nan nan nan +1363.0 +nan nan nan +nan nan nan +1364.0 +nan nan nan +nan nan nan +1365.0 +nan nan nan +nan nan nan +1366.0 +nan nan nan +nan nan nan +1367.0 +nan nan nan +nan nan nan +1368.0 +nan nan nan +nan nan nan +1369.0 +nan nan nan +nan nan nan +1370.0 +nan nan nan +nan nan nan +1371.0 +nan nan nan +nan nan nan +1372.0 +nan nan nan +nan nan nan +1373.0 +nan nan nan +nan nan nan +1374.0 +nan nan nan +nan nan nan +1375.0 +nan nan nan +nan nan nan +1376.0 +nan nan nan +nan nan nan +1377.0 +nan nan nan +nan nan nan +1378.0 +nan nan nan +nan nan nan +1379.0 +nan nan nan +nan nan nan +1380.0 +nan nan nan +nan nan nan +1381.0 +nan nan nan +nan nan nan +1382.0 +nan nan nan +nan nan nan +1383.0 +nan nan nan +nan nan nan +1384.0 +nan nan nan +nan nan nan +1385.0 +nan nan nan +nan nan nan +1386.0 +nan nan nan +nan nan nan +1387.0 +nan nan nan +nan nan nan +1388.0 +nan nan nan +nan nan nan +1389.0 +nan nan nan +nan nan nan +1390.0 +nan nan nan +nan nan nan +1391.0 +nan nan nan +nan nan nan +1392.0 +nan nan nan +nan nan nan +1393.0 +nan nan nan +nan nan nan +1394.0 +nan nan nan +nan nan nan +1395.0 +nan nan nan +nan nan nan +1396.0 +nan nan nan +nan nan nan +1397.0 +nan nan nan +nan nan nan +1398.0 +nan nan nan +nan nan nan +1399.0 +nan nan nan +nan nan nan +1400.0 +nan nan nan +nan nan nan +1401.0 +nan nan nan +nan nan nan +1402.0 +nan nan nan +nan nan nan +1403.0 +nan nan nan +nan nan nan +1404.0 +nan nan nan +nan nan nan +1405.0 +nan nan nan +nan nan nan +1406.0 +nan nan nan +nan nan nan +1407.0 +nan nan nan +nan nan nan +1408.0 +nan nan nan +nan nan nan +1409.0 +nan nan nan +nan nan nan +1410.0 +nan nan nan +nan nan nan +1411.0 +nan nan nan +nan nan nan +1412.0 +nan nan nan +nan nan nan +1413.0 +nan nan nan +nan nan nan +1414.0 +nan nan nan +nan nan nan +1415.0 +nan nan nan +nan nan nan +1416.0 +nan nan nan +nan nan nan +1417.0 +nan nan nan +nan nan nan +1418.0 +nan nan nan +nan nan nan +1419.0 +nan nan nan +nan nan nan +1420.0 +nan nan nan +nan nan nan +1421.0 +nan nan nan +nan nan nan +1422.0 +nan nan nan +nan nan nan +1423.0 +nan nan nan +nan nan nan +1424.0 +nan nan nan +nan nan nan +1425.0 +nan nan nan +nan nan nan +1426.0 +nan nan nan +nan nan nan +1427.0 +nan nan nan +nan nan nan +1428.0 +nan nan nan +nan nan nan +1429.0 +nan nan nan +nan nan nan +1430.0 +nan nan nan +nan nan nan +1431.0 +nan nan nan +nan nan nan +1432.0 +nan nan nan +nan nan nan +1433.0 +nan nan nan +nan nan nan +1434.0 +nan nan nan +nan nan nan +1435.0 +nan nan nan +nan nan nan +1436.0 +nan nan nan +nan nan nan +1437.0 +nan nan nan +nan nan nan +1438.0 +nan nan nan +nan nan nan +1439.0 +nan nan nan +nan nan nan +1440.0 +nan nan nan +nan nan nan +1441.0 +nan nan nan +nan nan nan +1442.0 +nan nan nan +nan nan nan +1443.0 +nan nan nan +nan nan nan +1444.0 +nan nan nan +nan nan nan +1445.0 +nan nan nan +nan nan nan +1446.0 +nan nan nan +nan nan nan +1447.0 +nan nan nan +nan nan nan +1448.0 +nan nan nan +nan nan nan +1449.0 +nan nan nan +nan nan nan +1450.0 +nan nan nan +nan nan nan +1451.0 +nan nan nan +nan nan nan +1452.0 +nan nan nan +nan nan nan +1454.0 +nan nan nan +nan nan nan +1455.0 +nan nan nan +nan nan nan +1456.0 +nan nan nan +nan nan nan +1457.0 +nan nan nan +nan nan nan +1458.0 +nan nan nan +nan nan nan +1459.0 +nan nan nan +nan nan nan +1460.0 +nan nan nan +nan nan nan +1461.0 +nan nan nan +nan nan nan +1462.0 +nan nan nan +nan nan nan +1463.0 +nan nan nan +nan nan nan +1464.0 +nan nan nan +nan nan nan +1465.0 +nan nan nan +nan nan nan +1466.0 +nan nan nan +nan nan nan +1467.0 +nan nan nan +nan nan nan +1468.0 +nan nan nan +nan nan nan +1469.0 +nan nan nan +nan nan nan +1470.0 +nan nan nan +nan nan nan +1471.0 +nan nan nan +nan nan nan +1472.0 +nan nan nan +nan nan nan +1473.0 +nan nan nan +nan nan nan +1474.0 +nan nan nan +nan nan nan +1475.0 +nan nan nan +nan nan nan +1476.0 +nan nan nan +nan nan nan +1477.0 +nan nan nan +nan nan nan +1478.0 +nan nan nan +nan nan nan +1479.0 +nan nan nan +nan nan nan +1480.0 +nan nan nan +nan nan nan +1481.0 +nan nan nan +nan nan nan +1482.0 +nan nan nan +nan nan nan +1483.0 +nan nan nan +nan nan nan +1484.0 +nan nan nan +nan nan nan +1485.0 +nan nan nan +nan nan nan +1486.0 +nan nan nan +nan nan nan +1487.0 +nan nan nan +nan nan nan +1488.0 +nan nan nan +nan nan nan +1489.0 +nan nan nan +nan nan nan +1490.0 +nan nan nan +nan nan nan +1491.0 +nan nan nan +nan nan nan +1492.0 +nan nan nan +nan nan nan +1493.0 +nan nan nan +nan nan nan +1494.0 +nan nan nan +nan nan nan +1495.0 +nan nan nan +nan nan nan +1496.0 +nan nan nan +nan nan nan +1497.0 +nan nan nan +nan nan nan +1498.0 +nan nan nan +nan nan nan +1499.0 +nan nan nan +nan nan nan +1500.0 +nan nan nan +nan nan nan +1501.0 +nan nan nan +nan nan nan +1502.0 +nan nan nan +nan nan nan +1503.0 +nan nan nan +nan nan nan +1504.0 +nan nan nan +nan nan nan +1505.0 +nan nan nan +nan nan nan +1506.0 +nan nan nan +nan nan nan +1507.0 +nan nan nan +nan nan nan +1508.0 +nan nan nan +nan nan nan +1509.0 +nan nan nan +nan nan nan +1510.0 +nan nan nan +nan nan nan +1511.0 +nan nan nan +nan nan nan +1512.0 +nan nan nan +nan nan nan +1513.0 +nan nan nan +nan nan nan +1514.0 +nan nan nan +nan nan nan +1515.0 +nan nan nan +nan nan nan +1516.0 +nan nan nan +nan nan nan +1517.0 +nan nan nan +nan nan nan +1518.0 +nan nan nan +nan nan nan +1519.0 +nan nan nan +nan nan nan +1520.0 +nan nan nan +nan nan nan +1521.0 +nan nan nan +nan nan nan +1522.0 +nan nan nan +nan nan nan +1523.0 +nan nan nan +nan nan nan +1524.0 +nan nan nan +nan nan nan +1525.0 +nan nan nan +nan nan nan +1527.0 +nan nan nan +nan nan nan +1528.0 +nan nan nan +nan nan nan +1529.0 +nan nan nan +nan nan nan +1530.0 +nan nan nan +nan nan nan +1531.0 +nan nan nan +nan nan nan +1532.0 +nan nan nan +nan nan nan +1533.0 +nan nan nan +nan nan nan +1534.0 +nan nan nan +nan nan nan +1535.0 +nan nan nan +nan nan nan +1536.0 +nan nan nan +nan nan nan +1537.0 +nan nan nan +nan nan nan +1538.0 +nan nan nan +nan nan nan +1539.0 +nan nan nan +nan nan nan +1540.0 +nan nan nan +nan nan nan +1541.0 +nan nan nan +nan nan nan +1542.0 +nan nan nan +nan nan nan +1543.0 +nan nan nan +nan nan nan +1544.0 +nan nan nan +nan nan nan +1545.0 +nan nan nan +nan nan nan +1546.0 +nan nan nan +nan nan nan +1548.0 +nan nan nan +nan nan nan +1549.0 +nan nan nan +nan nan nan +1550.0 +nan nan nan +nan nan nan +1551.0 +nan nan nan +nan nan nan +1552.0 +nan nan nan +nan nan nan +1553.0 +nan nan nan +nan nan nan +1554.0 +nan nan nan +nan nan nan +1555.0 +nan nan nan +nan nan nan +1556.0 +nan nan nan +nan nan nan +1557.0 +nan nan nan +nan nan nan +1558.0 +nan nan nan +nan nan nan +1559.0 +nan nan nan +nan nan nan +1560.0 +nan nan nan +nan nan nan +1561.0 +nan nan nan +nan nan nan +1562.0 +nan nan nan +nan nan nan +1563.0 +nan nan nan +nan nan nan +1564.0 +nan nan nan +nan nan nan +1565.0 +nan nan nan +nan nan nan +1566.0 +nan nan nan +nan nan nan +1567.0 +nan nan nan +nan nan nan +1568.0 +nan nan nan +nan nan nan +1569.0 +nan nan nan +nan nan nan +1570.0 +nan nan nan +nan nan nan +1571.0 +nan nan nan +nan nan nan +1572.0 +nan nan nan +nan nan nan +1573.0 +nan nan nan +nan nan nan +1574.0 +nan nan nan +nan nan nan +1575.0 +nan nan nan +nan nan nan +1576.0 +nan nan nan +nan nan nan +1577.0 +nan nan nan +nan nan nan +1578.0 +nan nan nan +nan nan nan +1579.0 +nan nan nan +nan nan nan +1580.0 +nan nan nan +nan nan nan +1581.0 +nan nan nan +nan nan nan +1582.0 +nan nan nan +nan nan nan +1583.0 +nan nan nan +nan nan nan +1584.0 +nan nan nan +nan nan nan +1585.0 +nan nan nan +nan nan nan +1586.0 +nan nan nan +nan nan nan +1587.0 +nan nan nan +nan nan nan +1588.0 +nan nan nan +nan nan nan +1589.0 +nan nan nan +nan nan nan +1590.0 +nan nan nan +nan nan nan +1591.0 +nan nan nan +nan nan nan +1592.0 +nan nan nan +nan nan nan +1593.0 +nan nan nan +nan nan nan +1594.0 +nan nan nan +nan nan nan +1595.0 +nan nan nan +nan nan nan +1596.0 +nan nan nan +nan nan nan +1597.0 +nan nan nan +nan nan nan +1598.0 +nan nan nan +nan nan nan +1599.0 +nan nan nan +nan nan nan +1600.0 +nan nan nan +nan nan nan +1601.0 +nan nan nan +nan nan nan +1602.0 +nan nan nan +nan nan nan +1603.0 +nan nan nan +nan nan nan +1604.0 +nan nan nan +nan nan nan +1605.0 +nan nan nan +nan nan nan +1606.0 +nan nan nan +nan nan nan +1607.0 +nan nan nan +nan nan nan +1608.0 +nan nan nan +nan nan nan +1609.0 +nan nan nan +nan nan nan +1610.0 +nan nan nan +nan nan nan +1611.0 +nan nan nan +nan nan nan +1612.0 +nan nan nan +nan nan nan +1613.0 +nan nan nan +nan nan nan +1614.0 +nan nan nan +nan nan nan +1615.0 +nan nan nan +nan nan nan +1616.0 +nan nan nan +nan nan nan +1617.0 +nan nan nan +nan nan nan +1618.0 +nan nan nan +nan nan nan +1619.0 +nan nan nan +nan nan nan +1620.0 +nan nan nan +nan nan nan +1621.0 +nan nan nan +nan nan nan +1622.0 +nan nan nan +nan nan nan +1623.0 +nan nan nan +nan nan nan +1624.0 +nan nan nan +nan nan nan +1625.0 +nan nan nan +nan nan nan +1626.0 +nan nan nan +nan nan nan +1627.0 +nan nan nan +nan nan nan +1628.0 +nan nan nan +nan nan nan +1629.0 +nan nan nan +nan nan nan +1630.0 +nan nan nan +nan nan nan +1631.0 +nan nan nan +nan nan nan +1632.0 +nan nan nan +nan nan nan +1633.0 +nan nan nan +nan nan nan +1634.0 +nan nan nan +nan nan nan +1635.0 +nan nan nan +nan nan nan +1636.0 +nan nan nan +nan nan nan +1637.0 +nan nan nan +nan nan nan +1638.0 +nan nan nan +nan nan nan +1639.0 +nan nan nan +nan nan nan +1641.0 +nan nan nan +nan nan nan +1642.0 +nan nan nan +nan nan nan +1643.0 +nan nan nan +nan nan nan +1644.0 +nan nan nan +nan nan nan +1645.0 +nan nan nan +nan nan nan +1646.0 +nan nan nan +nan nan nan +1647.0 +nan nan nan +nan nan nan +1648.0 +nan nan nan +nan nan nan +1649.0 +nan nan nan +nan nan nan +1650.0 +nan nan nan +nan nan nan +1651.0 +nan nan nan +nan nan nan +1652.0 +nan nan nan +nan nan nan +1653.0 +nan nan nan +nan nan nan +1654.0 +nan nan nan +nan nan nan +1655.0 +nan nan nan +nan nan nan +1656.0 +nan nan nan +nan nan nan +1657.0 +nan nan nan +nan nan nan +1658.0 +nan nan nan +nan nan nan +1659.0 +nan nan nan +nan nan nan +1660.0 +nan nan nan +nan nan nan +1661.0 +nan nan nan +nan nan nan +1662.0 +nan nan nan +nan nan nan +1663.0 +nan nan nan +nan nan nan +1664.0 +nan nan nan +nan nan nan +1665.0 +nan nan nan +nan nan nan +1666.0 +nan nan nan +nan nan nan +1667.0 +nan nan nan +nan nan nan +1668.0 +nan nan nan +nan nan nan +1669.0 +nan nan nan +nan nan nan +1670.0 +nan nan nan +nan nan nan +1671.0 +nan nan nan +nan nan nan +1672.0 +nan nan nan +nan nan nan +1673.0 +nan nan nan +nan nan nan +1674.0 +nan nan nan +nan nan nan +1675.0 +nan nan nan +nan nan nan +1676.0 +nan nan nan +nan nan nan +1677.0 +nan nan nan +nan nan nan +1678.0 +nan nan nan +nan nan nan +1679.0 +nan nan nan +nan nan nan +1680.0 +nan nan nan +nan nan nan +1681.0 +nan nan nan +nan nan nan +1682.0 +nan nan nan +nan nan nan +1683.0 +nan nan nan +nan nan nan +1684.0 +nan nan nan +nan nan nan +1685.0 +nan nan nan +nan nan nan +1686.0 +nan nan nan +nan nan nan +1687.0 +nan nan nan +nan nan nan +1688.0 +nan nan nan +nan nan nan +1689.0 +nan nan nan +nan nan nan +1690.0 +nan nan nan +nan nan nan +1691.0 +nan nan nan +nan nan nan +1692.0 +nan nan nan +nan nan nan +1693.0 +nan nan nan +nan nan nan +1694.0 +nan nan nan +nan nan nan +1695.0 +nan nan nan +nan nan nan +1696.0 +nan nan nan +nan nan nan +1697.0 +nan nan nan +nan nan nan +1698.0 +nan nan nan +nan nan nan +1699.0 +nan nan nan +nan nan nan +1700.0 +nan nan nan +nan nan nan +1701.0 +nan nan nan +nan nan nan +1702.0 +nan nan nan +nan nan nan +1703.0 +nan nan nan +nan nan nan +1704.0 +nan nan nan +nan nan nan +1705.0 +nan nan nan +nan nan nan +1706.0 +nan nan nan +nan nan nan +1707.0 +nan nan nan +nan nan nan +1708.0 +nan nan nan +nan nan nan +1709.0 +nan nan nan +nan nan nan +1710.0 +nan nan nan +nan nan nan +1711.0 +nan nan nan +nan nan nan +1712.0 +nan nan nan +nan nan nan +1713.0 +nan nan nan +nan nan nan +1714.0 +nan nan nan +nan nan nan +1715.0 +nan nan nan +nan nan nan +1716.0 +nan nan nan +nan nan nan +1717.0 +nan nan nan +nan nan nan +1718.0 +nan nan nan +nan nan nan +1719.0 +nan nan nan +nan nan nan +1720.0 +nan nan nan +nan nan nan +1721.0 +nan nan nan +nan nan nan +1722.0 +nan nan nan +nan nan nan +1723.0 +nan nan nan +nan nan nan +1724.0 +nan nan nan +nan nan nan +1725.0 +nan nan nan +nan nan nan +1726.0 +nan nan nan +nan nan nan +1727.0 +nan nan nan +nan nan nan +1728.0 +nan nan nan +nan nan nan +1729.0 +nan nan nan +nan nan nan +1730.0 +nan nan nan +nan nan nan +1731.0 +nan nan nan +nan nan nan +1732.0 +nan nan nan +nan nan nan +1733.0 +nan nan nan +nan nan nan +1734.0 +nan nan nan +nan nan nan +1735.0 +nan nan nan +nan nan nan +1736.0 +nan nan nan +nan nan nan +1737.0 +nan nan nan +nan nan nan +1738.0 +nan nan nan +nan nan nan +1739.0 +nan nan nan +nan nan nan +1740.0 +nan nan nan +nan nan nan +1741.0 +nan nan nan +nan nan nan +1742.0 +nan nan nan +nan nan nan +1743.0 +nan nan nan +nan nan nan +1744.0 +nan nan nan +nan nan nan +1745.0 +nan nan nan +nan nan nan +1746.0 +nan nan nan +nan nan nan +1747.0 +nan nan nan +nan nan nan +1748.0 +nan nan nan +nan nan nan +1749.0 +nan nan nan +nan nan nan +1750.0 +nan nan nan +nan nan nan +1751.0 +nan nan nan +nan nan nan +1752.0 +nan nan nan +nan nan nan +1753.0 +nan nan nan +nan nan nan +1754.0 +nan nan nan +nan nan nan +1755.0 +nan nan nan +nan nan nan +1756.0 +nan nan nan +nan nan nan +1757.0 +nan nan nan +nan nan nan +1758.0 +nan nan nan +nan nan nan +1759.0 +nan nan nan +nan nan nan +1760.0 +nan nan nan +nan nan nan +1761.0 +nan nan nan +nan nan nan +1762.0 +nan nan nan +nan nan nan +1763.0 +nan nan nan +nan nan nan +1764.0 +nan nan nan +nan nan nan +1765.0 +nan nan nan +nan nan nan +1766.0 +nan nan nan +nan nan nan +1767.0 +nan nan nan +nan nan nan +1768.0 +nan nan nan +nan nan nan +1769.0 +nan nan nan +nan nan nan +1770.0 +nan nan nan +nan nan nan +1771.0 +nan nan nan +nan nan nan +1772.0 +nan nan nan +nan nan nan +1773.0 +nan nan nan +nan nan nan +1774.0 +nan nan nan +nan nan nan +1775.0 +nan nan nan +nan nan nan +1776.0 +nan nan nan +nan nan nan +1777.0 +nan nan nan +nan nan nan +1778.0 +nan nan nan +nan nan nan +1779.0 +nan nan nan +nan nan nan +1780.0 +nan nan nan +nan nan nan +1781.0 +nan nan nan +nan nan nan +1782.0 +nan nan nan +nan nan nan +1783.0 +nan nan nan +nan nan nan +1784.0 +nan nan nan +nan nan nan +1785.0 +nan nan nan +nan nan nan +1786.0 +nan nan nan +nan nan nan +1787.0 +nan nan nan +nan nan nan +1788.0 +nan nan nan +nan nan nan +1789.0 +nan nan nan +nan nan nan +1790.0 +nan nan nan +nan nan nan +1791.0 +nan nan nan +nan nan nan +1792.0 +nan nan nan +nan nan nan +1793.0 +nan nan nan +nan nan nan +1794.0 +nan nan nan +nan nan nan +1795.0 +nan nan nan +nan nan nan +1796.0 +nan nan nan +nan nan nan +1797.0 +nan nan nan +nan nan nan +1798.0 +nan nan nan +nan nan nan +1799.0 +nan nan nan +nan nan nan +1800.0 +nan nan nan +nan nan nan +1801.0 +nan nan nan +nan nan nan +1802.0 +nan nan nan +nan nan nan +1803.0 +nan nan nan +nan nan nan +1804.0 +nan nan nan +nan nan nan +1805.0 +nan nan nan +nan nan nan +1806.0 +nan nan nan +nan nan nan +1807.0 +nan nan nan +nan nan nan +1808.0 +nan nan nan +nan nan nan +1809.0 +nan nan nan +nan nan nan +1810.0 +nan nan nan +nan nan nan +1811.0 +nan nan nan +nan nan nan +1812.0 +nan nan nan +nan nan nan +1813.0 +nan nan nan +nan nan nan +1814.0 +nan nan nan +nan nan nan +1815.0 +nan nan nan +nan nan nan +1816.0 +nan nan nan +nan nan nan +1817.0 +nan nan nan +nan nan nan +1818.0 +nan nan nan +nan nan nan +1819.0 +nan nan nan +nan nan nan +1820.0 +nan nan nan +nan nan nan +1821.0 +nan nan nan +nan nan nan +1822.0 +nan nan nan +nan nan nan +1823.0 +nan nan nan +nan nan nan +1824.0 +nan nan nan +nan nan nan +1825.0 +nan nan nan +nan nan nan +1826.0 +nan nan nan +nan nan nan +1827.0 +nan nan nan +nan nan nan +1828.0 +nan nan nan +nan nan nan +1829.0 +nan nan nan +nan nan nan +1830.0 +nan nan nan +nan nan nan +1831.0 +nan nan nan +nan nan nan +1832.0 +nan nan nan +nan nan nan +1833.0 +nan nan nan +nan nan nan +1834.0 +nan nan nan +nan nan nan +1835.0 +nan nan nan +nan nan nan +1836.0 +nan nan nan +nan nan nan +1837.0 +nan nan nan +nan nan nan +1838.0 +nan nan nan +nan nan nan +1839.0 +nan nan nan +nan nan nan +1840.0 +nan nan nan +nan nan nan +1841.0 +nan nan nan +nan nan nan +1842.0 +nan nan nan +nan nan nan +1843.0 +nan nan nan +nan nan nan +1844.0 +nan nan nan +nan nan nan +1845.0 +nan nan nan +nan nan nan +1846.0 +nan nan nan +nan nan nan +1847.0 +nan nan nan +nan nan nan +1848.0 +nan nan nan +nan nan nan +1850.0 +nan nan nan +nan nan nan +1851.0 +nan nan nan +nan nan nan +1852.0 +nan nan nan +nan nan nan +1853.0 +nan nan nan +nan nan nan +1854.0 +nan nan nan +nan nan nan +1855.0 +nan nan nan +nan nan nan +1856.0 +nan nan nan +nan nan nan +1857.0 +nan nan nan +nan nan nan +1858.0 +nan nan nan +nan nan nan +1859.0 +nan nan nan +nan nan nan +1860.0 +nan nan nan +nan nan nan +1861.0 +nan nan nan +nan nan nan +1862.0 +nan nan nan +nan nan nan +1863.0 +nan nan nan +nan nan nan +1864.0 +nan nan nan +nan nan nan +1865.0 +nan nan nan +nan nan nan +1866.0 +nan nan nan +nan nan nan +1867.0 +nan nan nan +nan nan nan +1868.0 +nan nan nan +nan nan nan +1869.0 +nan nan nan +nan nan nan +1870.0 +nan nan nan +nan nan nan +1871.0 +nan nan nan +nan nan nan +1872.0 +nan nan nan +nan nan nan +1873.0 +nan nan nan +nan nan nan +1874.0 +nan nan nan +nan nan nan +1875.0 +nan nan nan +nan nan nan +1876.0 +nan nan nan +nan nan nan +1877.0 +nan nan nan +nan nan nan +1878.0 +nan nan nan +nan nan nan +1879.0 +nan nan nan +nan nan nan +1880.0 +nan nan nan +nan nan nan +1881.0 +nan nan nan +nan nan nan +1882.0 +nan nan nan +nan nan nan +1883.0 +nan nan nan +nan nan nan +1884.0 +nan nan nan +nan nan nan +1885.0 +nan nan nan +nan nan nan +1886.0 +nan nan nan +nan nan nan +1887.0 +nan nan nan +nan nan nan +1888.0 +nan nan nan +nan nan nan +1889.0 +nan nan nan +nan nan nan +1890.0 +nan nan nan +nan nan nan +1891.0 +nan nan nan +nan nan nan +1892.0 +nan nan nan +nan nan nan +1893.0 +nan nan nan +nan nan nan +1894.0 +nan nan nan +nan nan nan +1895.0 +nan nan nan +nan nan nan +1896.0 +nan nan nan +nan nan nan +1897.0 +nan nan nan +nan nan nan +1898.0 +nan nan nan +nan nan nan +1899.0 +nan nan nan +nan nan nan +1900.0 +nan nan nan +nan nan nan +1901.0 +nan nan nan +nan nan nan +1902.0 +nan nan nan +nan nan nan +1903.0 +nan nan nan +nan nan nan +1904.0 +nan nan nan +nan nan nan +1905.0 +nan nan nan +nan nan nan +1906.0 +nan nan nan +nan nan nan +1907.0 +nan nan nan +nan nan nan +1908.0 +nan nan nan +nan nan nan +1909.0 +nan nan nan +nan nan nan +1910.0 +nan nan nan +nan nan nan +1911.0 +nan nan nan +nan nan nan +1912.0 +nan nan nan +nan nan nan +1913.0 +nan nan nan +nan nan nan +1914.0 +nan nan nan +nan nan nan +1915.0 +nan nan nan +nan nan nan +1916.0 +nan nan nan +nan nan nan +1917.0 +nan nan nan +nan nan nan +1918.0 +nan nan nan +nan nan nan +1919.0 +nan nan nan +nan nan nan +1920.0 +nan nan nan +nan nan nan +1921.0 +nan nan nan +nan nan nan +1922.0 +nan nan nan +nan nan nan +1923.0 +nan nan nan +nan nan nan +1924.0 +nan nan nan +nan nan nan +1925.0 +nan nan nan +nan nan nan +1926.0 +nan nan nan +nan nan nan +1927.0 +nan nan nan +nan nan nan +1928.0 +nan nan nan +nan nan nan +1929.0 +nan nan nan +nan nan nan +1930.0 +nan nan nan +nan nan nan +1931.0 +nan nan nan +nan nan nan +1932.0 +nan nan nan +nan nan nan +1933.0 +nan nan nan +nan nan nan +1934.0 +nan nan nan +nan nan nan +1935.0 +nan nan nan +nan nan nan +1936.0 +nan nan nan +nan nan nan +1937.0 +nan nan nan +nan nan nan +1938.0 +nan nan nan +nan nan nan +1939.0 +nan nan nan +nan nan nan +1940.0 +nan nan nan +nan nan nan +1941.0 +nan nan nan +nan nan nan +1942.0 +nan nan nan +nan nan nan +1943.0 +nan nan nan +nan nan nan +1944.0 +nan nan nan +nan nan nan +1945.0 +nan nan nan +nan nan nan +1946.0 +nan nan nan +nan nan nan +1947.0 +nan nan nan +nan nan nan +1948.0 +nan nan nan +nan nan nan +1949.0 +nan nan nan +nan nan nan +1950.0 +nan nan nan +nan nan nan +1951.0 +nan nan nan +nan nan nan +1952.0 +nan nan nan +nan nan nan +1953.0 +nan nan nan +nan nan nan +1954.0 +nan nan nan +nan nan nan +1955.0 +nan nan nan +nan nan nan +1956.0 +nan nan nan +nan nan nan +1957.0 +nan nan nan +nan nan nan +1958.0 +nan nan nan +nan nan nan +1959.0 +nan nan nan +nan nan nan +1960.0 +nan nan nan +nan nan nan +1961.0 +nan nan nan +nan nan nan +1962.0 +nan nan nan +nan nan nan +1963.0 +nan nan nan +nan nan nan +1964.0 +nan nan nan +nan nan nan +1965.0 +nan nan nan +nan nan nan +1966.0 +nan nan nan +nan nan nan +1967.0 +nan nan nan +nan nan nan +1968.0 +nan nan nan +nan nan nan +1969.0 +nan nan nan +nan nan nan +1970.0 +nan nan nan +nan nan nan +1971.0 +nan nan nan +nan nan nan +1972.0 +nan nan nan +nan nan nan +1973.0 +nan nan nan +nan nan nan +1974.0 +nan nan nan +nan nan nan +1975.0 +nan nan nan +nan nan nan +1976.0 +nan nan nan +nan nan nan +1977.0 +nan nan nan +nan nan nan +1978.0 +nan nan nan +nan nan nan +1979.0 +nan nan nan +nan nan nan +1980.0 +nan nan nan +nan nan nan +1981.0 +nan nan nan +nan nan nan +1982.0 +nan nan nan +nan nan nan +1983.0 +nan nan nan +nan nan nan +1984.0 +nan nan nan +nan nan nan +1985.0 +nan nan nan +nan nan nan +1986.0 +nan nan nan +nan nan nan +1987.0 +nan nan nan +nan nan nan +1988.0 +nan nan nan +nan nan nan +1989.0 +nan nan nan +nan nan nan +1990.0 +nan nan nan +nan nan nan +1991.0 +nan nan nan +nan nan nan +1992.0 +nan nan nan +nan nan nan +1993.0 +nan nan nan +nan nan nan +1994.0 +nan nan nan +nan nan nan +1995.0 +nan nan nan +nan nan nan +1996.0 +nan nan nan +nan nan nan +1997.0 +nan nan nan +nan nan nan +1998.0 +nan nan nan +nan nan nan +1999.0 +nan nan nan +nan nan nan +2000.0 +nan nan nan +nan nan nan +2001.0 +nan nan nan +nan nan nan +2002.0 +nan nan nan +nan nan nan +2003.0 +nan nan nan +nan nan nan +2004.0 +nan nan nan +nan nan nan +2005.0 +nan nan nan +nan nan nan +2006.0 +nan nan nan +nan nan nan +2007.0 +nan nan nan +nan nan nan +2008.0 +nan nan nan +nan nan nan +2009.0 +nan nan nan +nan nan nan +2010.0 +nan nan nan +nan nan nan +2011.0 +nan nan nan +nan nan nan +2012.0 +nan nan nan +nan nan nan +2013.0 +nan nan nan +nan nan nan +2014.0 +nan nan nan +nan nan nan +2015.0 +nan nan nan +nan nan nan +2016.0 +nan nan nan +nan nan nan +2017.0 +nan nan nan +nan nan nan +2018.0 +nan nan nan +nan nan nan +2019.0 +nan nan nan +nan nan nan +2020.0 +nan nan nan +nan nan nan +2021.0 +nan nan nan +nan nan nan +2022.0 +nan nan nan +nan nan nan +2023.0 +nan nan nan +nan nan nan +2024.0 +nan nan nan +nan nan nan +2025.0 +nan nan nan +nan nan nan +2026.0 +nan nan nan +nan nan nan +2027.0 +nan nan nan +nan nan nan +2028.0 +nan nan nan +nan nan nan +2029.0 +nan nan nan +nan nan nan +2030.0 +nan nan nan +nan nan nan +2031.0 +nan nan nan +nan nan nan +2032.0 +nan nan nan +nan nan nan +2033.0 +nan nan nan +nan nan nan +2034.0 +nan nan nan +nan nan nan +2035.0 +nan nan nan +nan nan nan +2036.0 +nan nan nan +nan nan nan +2037.0 +nan nan nan +nan nan nan +2038.0 +nan nan nan +nan nan nan +2039.0 +nan nan nan +nan nan nan +2040.0 +nan nan nan +nan nan nan +2041.0 +nan nan nan +nan nan nan +2042.0 +nan nan nan +nan nan nan +2043.0 +nan nan nan +nan nan nan +2044.0 +nan nan nan +nan nan nan +2045.0 +nan nan nan +nan nan nan +2046.0 +nan nan nan +nan nan nan +2047.0 +nan nan nan +nan nan nan +2048.0 +nan nan nan +nan nan nan +2049.0 +nan nan nan +nan nan nan +2050.0 +nan nan nan +nan nan nan +2051.0 +nan nan nan +nan nan nan +2052.0 +nan nan nan +nan nan nan +2053.0 +nan nan nan +nan nan nan +2054.0 +nan nan nan +nan nan nan +2055.0 +nan nan nan +nan nan nan +2056.0 +nan nan nan +nan nan nan +2057.0 +nan nan nan +nan nan nan +2058.0 +nan nan nan +nan nan nan +2059.0 +nan nan nan +nan nan nan +2060.0 +nan nan nan +nan nan nan +2061.0 +nan nan nan +nan nan nan +2062.0 +nan nan nan +nan nan nan +2063.0 +nan nan nan +nan nan nan +2064.0 +nan nan nan +nan nan nan +2065.0 +nan nan nan +nan nan nan +2066.0 +nan nan nan +nan nan nan +2067.0 +nan nan nan +nan nan nan +2068.0 +nan nan nan +nan nan nan +2069.0 +nan nan nan +nan nan nan +2070.0 +nan nan nan +nan nan nan +2071.0 +nan nan nan +nan nan nan +2072.0 +nan nan nan +nan nan nan +2073.0 +nan nan nan +nan nan nan +2074.0 +nan nan nan +nan nan nan +2075.0 +nan nan nan +nan nan nan +2076.0 +nan nan nan +nan nan nan +2077.0 +nan nan nan +nan nan nan +2078.0 +nan nan nan +nan nan nan +2079.0 +nan nan nan +nan nan nan +2080.0 +nan nan nan +nan nan nan +2081.0 +nan nan nan +nan nan nan +2082.0 +nan nan nan +nan nan nan +2083.0 +nan nan nan +nan nan nan +2084.0 +nan nan nan +nan nan nan +2085.0 +nan nan nan +nan nan nan +2086.0 +nan nan nan +nan nan nan +2087.0 +nan nan nan +nan nan nan +2088.0 +nan nan nan +nan nan nan +2089.0 +nan nan nan +nan nan nan +2090.0 +nan nan nan +nan nan nan +2091.0 +nan nan nan +nan nan nan +2092.0 +nan nan nan +nan nan nan +2093.0 +nan nan nan +nan nan nan +2094.0 +nan nan nan +nan nan nan +2095.0 +nan nan nan +nan nan nan +2096.0 +nan nan nan +nan nan nan +2097.0 +nan nan nan +nan nan nan +2098.0 +nan nan nan +nan nan nan +2099.0 +nan nan nan +nan nan nan +2100.0 +nan nan nan +nan nan nan +2101.0 +nan nan nan +nan nan nan +2102.0 +nan nan nan +nan nan nan +2103.0 +nan nan nan +nan nan nan +2104.0 +nan nan nan +nan nan nan +2105.0 +nan nan nan +nan nan nan +2106.0 +nan nan nan +nan nan nan +2107.0 +nan nan nan +nan nan nan +2108.0 +nan nan nan +nan nan nan +2109.0 +nan nan nan +nan nan nan +2110.0 +nan nan nan +nan nan nan +2111.0 +nan nan nan +nan nan nan +2112.0 +nan nan nan +nan nan nan +2113.0 +nan nan nan +nan nan nan +2114.0 +nan nan nan +nan nan nan +2115.0 +nan nan nan +nan nan nan +2116.0 +nan nan nan +nan nan nan +2117.0 +nan nan nan +nan nan nan +2118.0 +nan nan nan +nan nan nan +2119.0 +nan nan nan +nan nan nan +2120.0 +nan nan nan +nan nan nan +2121.0 +nan nan nan +nan nan nan +2122.0 +nan nan nan +nan nan nan +2123.0 +nan nan nan +nan nan nan +2124.0 +nan nan nan +nan nan nan +2125.0 +nan nan nan +nan nan nan +2126.0 +nan nan nan +nan nan nan +2127.0 +nan nan nan +nan nan nan +2128.0 +nan nan nan +nan nan nan +2129.0 +nan nan nan +nan nan nan +2130.0 +nan nan nan +nan nan nan +2131.0 +nan nan nan +nan nan nan +2132.0 +nan nan nan +nan nan nan +2133.0 +nan nan nan +nan nan nan +2134.0 +nan nan nan +nan nan nan +2135.0 +nan nan nan +nan nan nan +2136.0 +nan nan nan +nan nan nan +2137.0 +nan nan nan +nan nan nan +2138.0 +nan nan nan +nan nan nan +2139.0 +nan nan nan +nan nan nan +2140.0 +nan nan nan +nan nan nan +2141.0 +nan nan nan +nan nan nan +2142.0 +nan nan nan +nan nan nan +2143.0 +nan nan nan +nan nan nan +2144.0 +nan nan nan +nan nan nan +2145.0 +nan nan nan +nan nan nan +2146.0 +nan nan nan +nan nan nan +2147.0 +nan nan nan +nan nan nan +2148.0 +nan nan nan +nan nan nan +2149.0 +nan nan nan +nan nan nan +2150.0 +nan nan nan +nan nan nan +2151.0 +nan nan nan +nan nan nan +2152.0 +nan nan nan +nan nan nan +2153.0 +nan nan nan +nan nan nan +2154.0 +nan nan nan +nan nan nan +2155.0 +nan nan nan +nan nan nan +2156.0 +nan nan nan +nan nan nan +2157.0 +nan nan nan +nan nan nan +2158.0 +nan nan nan +nan nan nan +2159.0 +nan nan nan +nan nan nan +2160.0 +nan nan nan +nan nan nan +2161.0 +nan nan nan +nan nan nan +2162.0 +nan nan nan +nan nan nan +2163.0 +nan nan nan +nan nan nan +2164.0 +nan nan nan +nan nan nan +2165.0 +nan nan nan +nan nan nan +2166.0 +nan nan nan +nan nan nan +2167.0 +nan nan nan +nan nan nan +2168.0 +nan nan nan +nan nan nan +2169.0 +nan nan nan +nan nan nan +2170.0 +nan nan nan +nan nan nan +2171.0 +nan nan nan +nan nan nan +2172.0 +nan nan nan +nan nan nan +2173.0 +nan nan nan +nan nan nan +2174.0 +nan nan nan +nan nan nan +2175.0 +nan nan nan +nan nan nan +2176.0 +nan nan nan +nan nan nan +2177.0 +nan nan nan +nan nan nan +2178.0 +nan nan nan +nan nan nan +2179.0 +nan nan nan +nan nan nan +2180.0 +nan nan nan +nan nan nan +2181.0 +nan nan nan +nan nan nan +2182.0 +nan nan nan +nan nan nan +2183.0 +nan nan nan +nan nan nan +2184.0 +nan nan nan +nan nan nan +2185.0 +nan nan nan +nan nan nan +2186.0 +nan nan nan +nan nan nan +2187.0 +nan nan nan +nan nan nan +2188.0 +nan nan nan +nan nan nan +2189.0 +nan nan nan +nan nan nan +2191.0 +nan nan nan +nan nan nan +2192.0 +nan nan nan +nan nan nan +2193.0 +nan nan nan +nan nan nan +2194.0 +nan nan nan +nan nan nan +2195.0 +nan nan nan +nan nan nan +2196.0 +nan nan nan +nan nan nan +2197.0 +nan nan nan +nan nan nan +2198.0 +nan nan nan +nan nan nan +2199.0 +nan nan nan +nan nan nan +2200.0 +nan nan nan +nan nan nan +2201.0 +nan nan nan +nan nan nan +2202.0 +nan nan nan +nan nan nan +2203.0 +nan nan nan +nan nan nan +2204.0 +nan nan nan +nan nan nan +2205.0 +nan nan nan +nan nan nan +2206.0 +nan nan nan +nan nan nan +2207.0 +nan nan nan +nan nan nan +2208.0 +nan nan nan +nan nan nan +2209.0 +nan nan nan +nan nan nan +2210.0 +nan nan nan +nan nan nan +2211.0 +nan nan nan +nan nan nan +2212.0 +nan nan nan +nan nan nan +2213.0 +nan nan nan +nan nan nan +2214.0 +nan nan nan +nan nan nan +2215.0 +nan nan nan +nan nan nan +2216.0 +nan nan nan +nan nan nan +2217.0 +nan nan nan +nan nan nan +2218.0 +nan nan nan +nan nan nan +2219.0 +nan nan nan +nan nan nan +2220.0 +nan nan nan +nan nan nan +2221.0 +nan nan nan +nan nan nan +2222.0 +nan nan nan +nan nan nan +2223.0 +nan nan nan +nan nan nan +2224.0 +nan nan nan +nan nan nan +2225.0 +nan nan nan +nan nan nan +2226.0 +nan nan nan +nan nan nan +2227.0 +nan nan nan +nan nan nan +2228.0 +nan nan nan +nan nan nan +2229.0 +nan nan nan +nan nan nan +2230.0 +nan nan nan +nan nan nan +2231.0 +nan nan nan +nan nan nan +2232.0 +nan nan nan +nan nan nan +2233.0 +nan nan nan +nan nan nan +2234.0 +nan nan nan +nan nan nan +2235.0 +nan nan nan +nan nan nan +2236.0 +nan nan nan +nan nan nan +2237.0 +nan nan nan +nan nan nan +2238.0 +nan nan nan +nan nan nan +2239.0 +nan nan nan +nan nan nan +2240.0 +nan nan nan +nan nan nan +2241.0 +nan nan nan +nan nan nan +2242.0 +nan nan nan +nan nan nan +2243.0 +nan nan nan +nan nan nan +2244.0 +nan nan nan +nan nan nan +2245.0 +nan nan nan +nan nan nan +2246.0 +nan nan nan +nan nan nan +2247.0 +nan nan nan +nan nan nan +2248.0 +nan nan nan +nan nan nan +2249.0 +nan nan nan +nan nan nan +2250.0 +nan nan nan +nan nan nan +2251.0 +nan nan nan +nan nan nan +2252.0 +nan nan nan +nan nan nan +2253.0 +nan nan nan +nan nan nan +2254.0 +nan nan nan +nan nan nan +2255.0 +nan nan nan +nan nan nan +2256.0 +nan nan nan +nan nan nan +2257.0 +nan nan nan +nan nan nan +2258.0 +nan nan nan +nan nan nan +2259.0 +nan nan nan +nan nan nan +2260.0 +nan nan nan +nan nan nan +2261.0 +nan nan nan +nan nan nan +2262.0 +nan nan nan +nan nan nan +2263.0 +nan nan nan +nan nan nan +2264.0 +nan nan nan +nan nan nan +2265.0 +nan nan nan +nan nan nan +2266.0 +nan nan nan +nan nan nan +2267.0 +nan nan nan +nan nan nan +2268.0 +nan nan nan +nan nan nan +2269.0 +nan nan nan +nan nan nan +2270.0 +nan nan nan +nan nan nan +2271.0 +nan nan nan +nan nan nan +2272.0 +nan nan nan +nan nan nan +2273.0 +nan nan nan +nan nan nan +2274.0 +nan nan nan +nan nan nan +2275.0 +nan nan nan +nan nan nan +2276.0 +nan nan nan +nan nan nan +2277.0 +nan nan nan +nan nan nan +2278.0 +nan nan nan +nan nan nan +2279.0 +nan nan nan +nan nan nan +2280.0 +nan nan nan +nan nan nan +2281.0 +nan nan nan +nan nan nan +2282.0 +nan nan nan +nan nan nan +2283.0 +nan nan nan +nan nan nan +2284.0 +nan nan nan +nan nan nan +2285.0 +nan nan nan +nan nan nan +2286.0 +nan nan nan +nan nan nan +2287.0 +nan nan nan +nan nan nan +2288.0 +nan nan nan +nan nan nan +2289.0 +nan nan nan +nan nan nan +2290.0 +nan nan nan +nan nan nan +2291.0 +nan nan nan +nan nan nan +2292.0 +nan nan nan +nan nan nan +2293.0 +nan nan nan +nan nan nan +2294.0 +nan nan nan +nan nan nan +2295.0 +nan nan nan +nan nan nan +2296.0 +nan nan nan +nan nan nan +2297.0 +nan nan nan +nan nan nan +2298.0 +nan nan nan +nan nan nan +2299.0 +nan nan nan +nan nan nan +2300.0 +nan nan nan +nan nan nan +2301.0 +nan nan nan +nan nan nan +2302.0 +nan nan nan +nan nan nan +2303.0 +nan nan nan +nan nan nan +2304.0 +nan nan nan +nan nan nan +2305.0 +nan nan nan +nan nan nan +2306.0 +nan nan nan +nan nan nan +2307.0 +nan nan nan +nan nan nan +2308.0 +nan nan nan +nan nan nan +2309.0 +nan nan nan +nan nan nan +2310.0 +nan nan nan +nan nan nan +2311.0 +nan nan nan +nan nan nan +2312.0 +nan nan nan +nan nan nan +2313.0 +nan nan nan +nan nan nan +2314.0 +nan nan nan +nan nan nan +2315.0 +nan nan nan +nan nan nan +2316.0 +nan nan nan +nan nan nan +2317.0 +nan nan nan +nan nan nan +2318.0 +nan nan nan +nan nan nan +2319.0 +nan nan nan +nan nan nan +2320.0 +nan nan nan +nan nan nan +2321.0 +nan nan nan +nan nan nan +2322.0 +nan nan nan +nan nan nan +2323.0 +nan nan nan +nan nan nan +2324.0 +nan nan nan +nan nan nan +2325.0 +nan nan nan +nan nan nan +2326.0 +nan nan nan +nan nan nan +2327.0 +nan nan nan +nan nan nan +2328.0 +nan nan nan +nan nan nan +2329.0 +nan nan nan +nan nan nan +2330.0 +nan nan nan +nan nan nan +2331.0 +nan nan nan +nan nan nan +2332.0 +nan nan nan +nan nan nan +2333.0 +nan nan nan +nan nan nan +2334.0 +nan nan nan +nan nan nan +2335.0 +nan nan nan +nan nan nan +2336.0 +nan nan nan +nan nan nan +2337.0 +nan nan nan +nan nan nan +2338.0 +nan nan nan +nan nan nan +2339.0 +nan nan nan +nan nan nan +2340.0 +nan nan nan +nan nan nan +2341.0 +nan nan nan +nan nan nan +2342.0 +nan nan nan +nan nan nan +2343.0 +nan nan nan +nan nan nan +2344.0 +nan nan nan +nan nan nan +2345.0 +nan nan nan +nan nan nan +2346.0 +nan nan nan +nan nan nan +2347.0 +nan nan nan +nan nan nan +2348.0 +nan nan nan +nan nan nan +2349.0 +nan nan nan +nan nan nan +2350.0 +nan nan nan +nan nan nan +2351.0 +nan nan nan +nan nan nan +2352.0 +nan nan nan +nan nan nan +2353.0 +nan nan nan +nan nan nan +2354.0 +nan nan nan +nan nan nan +2355.0 +nan nan nan +nan nan nan +2356.0 +nan nan nan +nan nan nan +2357.0 +nan nan nan +nan nan nan +2358.0 +nan nan nan +nan nan nan +2359.0 +nan nan nan +nan nan nan +2360.0 +nan nan nan +nan nan nan +2361.0 +nan nan nan +nan nan nan +2362.0 +nan nan nan +nan nan nan +2363.0 +nan nan nan +nan nan nan +2364.0 +nan nan nan +nan nan nan +2365.0 +nan nan nan +nan nan nan +2366.0 +nan nan nan +nan nan nan +2367.0 +nan nan nan +nan nan nan +2368.0 +nan nan nan +nan nan nan +2369.0 +nan nan nan +nan nan nan +2370.0 +nan nan nan +nan nan nan +2371.0 +nan nan nan +nan nan nan +2372.0 +nan nan nan +nan nan nan +2373.0 +nan nan nan +nan nan nan +2374.0 +nan nan nan +nan nan nan +2375.0 +nan nan nan +nan nan nan +2376.0 +nan nan nan +nan nan nan +2377.0 +nan nan nan +nan nan nan +2378.0 +nan nan nan +nan nan nan +2380.0 +nan nan nan +nan nan nan +2381.0 +nan nan nan +nan nan nan +2382.0 +nan nan nan +nan nan nan +2383.0 +nan nan nan +nan nan nan +2384.0 +nan nan nan +nan nan nan +2385.0 +nan nan nan +nan nan nan +2386.0 +nan nan nan +nan nan nan +2387.0 +nan nan nan +nan nan nan +2388.0 +nan nan nan +nan nan nan +2389.0 +nan nan nan +nan nan nan +2390.0 +nan nan nan +nan nan nan +2391.0 +nan nan nan +nan nan nan +2392.0 +nan nan nan +nan nan nan +2393.0 +nan nan nan +nan nan nan +2394.0 +nan nan nan +nan nan nan +2395.0 +nan nan nan +nan nan nan +2396.0 +nan nan nan +nan nan nan +2397.0 +nan nan nan +nan nan nan +2398.0 +nan nan nan +nan nan nan +2399.0 +nan nan nan +nan nan nan +2401.0 +nan nan nan +nan nan nan +2402.0 +nan nan nan +nan nan nan +2403.0 +nan nan nan +nan nan nan +2404.0 +nan nan nan +nan nan nan +2405.0 +nan nan nan +nan nan nan +2406.0 +nan nan nan +nan nan nan +2407.0 +nan nan nan +nan nan nan +2408.0 +nan nan nan +nan nan nan +2409.0 +nan nan nan +nan nan nan +2410.0 +nan nan nan +nan nan nan +2411.0 +nan nan nan +nan nan nan +2412.0 +nan nan nan +nan nan nan +2413.0 +nan nan nan +nan nan nan +2414.0 +nan nan nan +nan nan nan +2415.0 +nan nan nan +nan nan nan +2416.0 +nan nan nan +nan nan nan +2417.0 +nan nan nan +nan nan nan +2418.0 +nan nan nan +nan nan nan +2419.0 +nan nan nan +nan nan nan +2420.0 +nan nan nan +nan nan nan +2421.0 +nan nan nan +nan nan nan +2422.0 +nan nan nan +nan nan nan +2423.0 +nan nan nan +nan nan nan +2424.0 +nan nan nan +nan nan nan +2425.0 +nan nan nan +nan nan nan +2426.0 +nan nan nan +nan nan nan +2427.0 +nan nan nan +nan nan nan +2428.0 +nan nan nan +nan nan nan +2429.0 +nan nan nan +nan nan nan +2430.0 +nan nan nan +nan nan nan +2431.0 +nan nan nan +nan nan nan +2432.0 +nan nan nan +nan nan nan +2433.0 +nan nan nan +nan nan nan +2434.0 +nan nan nan +nan nan nan +2435.0 +nan nan nan +nan nan nan +2436.0 +nan nan nan +nan nan nan +2437.0 +nan nan nan +nan nan nan +2438.0 +nan nan nan +nan nan nan +2439.0 +nan nan nan +nan nan nan +2440.0 +nan nan nan +nan nan nan +2441.0 +nan nan nan +nan nan nan +2442.0 +nan nan nan +nan nan nan +2443.0 +nan nan nan +nan nan nan +2444.0 +nan nan nan +nan nan nan +2445.0 +nan nan nan +nan nan nan +2446.0 +nan nan nan +nan nan nan +2447.0 +nan nan nan +nan nan nan +2448.0 +nan nan nan +nan nan nan +2449.0 +nan nan nan +nan nan nan +2450.0 +nan nan nan +nan nan nan +2451.0 +nan nan nan +nan nan nan +2452.0 +nan nan nan +nan nan nan +2453.0 +nan nan nan +nan nan nan +2454.0 +nan nan nan +nan nan nan +2455.0 +nan nan nan +nan nan nan +2456.0 +nan nan nan +nan nan nan +2457.0 +nan nan nan +nan nan nan +2458.0 +nan nan nan +nan nan nan +2459.0 +nan nan nan +nan nan nan +2460.0 +nan nan nan +nan nan nan +2461.0 +nan nan nan +nan nan nan +2462.0 +nan nan nan +nan nan nan +2463.0 +nan nan nan +nan nan nan +2464.0 +nan nan nan +nan nan nan +2465.0 +nan nan nan +nan nan nan +2466.0 +nan nan nan +nan nan nan +2467.0 +nan nan nan +nan nan nan +2468.0 +nan nan nan +nan nan nan +2469.0 +nan nan nan +nan nan nan +2470.0 +nan nan nan +nan nan nan +2471.0 +nan nan nan +nan nan nan +2472.0 +nan nan nan +nan nan nan +2473.0 +nan nan nan +nan nan nan +2474.0 +nan nan nan +nan nan nan +2475.0 +nan nan nan +nan nan nan +2476.0 +nan nan nan +nan nan nan +2477.0 +nan nan nan +nan nan nan +2478.0 +nan nan nan +nan nan nan +2479.0 +nan nan nan +nan nan nan +2480.0 +nan nan nan +nan nan nan +2482.0 +nan nan nan +nan nan nan +2483.0 +nan nan nan +nan nan nan +2484.0 +nan nan nan +nan nan nan +2485.0 +nan nan nan +nan nan nan +2486.0 +nan nan nan +nan nan nan +2487.0 +nan nan nan +nan nan nan +2488.0 +nan nan nan +nan nan nan +2489.0 +nan nan nan +nan nan nan +2490.0 +nan nan nan +nan nan nan +2491.0 +nan nan nan +nan nan nan +2492.0 +nan nan nan +nan nan nan +2493.0 +nan nan nan +nan nan nan +2495.0 +nan nan nan +nan nan nan +2496.0 +nan nan nan +nan nan nan +2497.0 +nan nan nan +nan nan nan +2498.0 +nan nan nan +nan nan nan +2499.0 +nan nan nan +nan nan nan +2500.0 +nan nan nan +nan nan nan +2501.0 +nan nan nan +nan nan nan +2502.0 +nan nan nan +nan nan nan +2503.0 +nan nan nan +nan nan nan +2504.0 +nan nan nan +nan nan nan +2505.0 +nan nan nan +nan nan nan +2506.0 +nan nan nan +nan nan nan +2507.0 +nan nan nan +nan nan nan +2508.0 +nan nan nan +nan nan nan +2509.0 +nan nan nan +nan nan nan +2510.0 +nan nan nan +nan nan nan +2511.0 +nan nan nan +nan nan nan +2512.0 +nan nan nan +nan nan nan +2513.0 +nan nan nan +nan nan nan +2514.0 +nan nan nan +nan nan nan +2515.0 +nan nan nan +nan nan nan +2516.0 +nan nan nan +nan nan nan +2517.0 +nan nan nan +nan nan nan +2518.0 +nan nan nan +nan nan nan +2519.0 +nan nan nan +nan nan nan +2520.0 +nan nan nan +nan nan nan +2521.0 +nan nan nan +nan nan nan +2522.0 +nan nan nan +nan nan nan +2523.0 +nan nan nan +nan nan nan +2524.0 +nan nan nan +nan nan nan +2525.0 +nan nan nan +nan nan nan +2526.0 +nan nan nan +nan nan nan +2527.0 +nan nan nan +nan nan nan +2528.0 +nan nan nan +nan nan nan +2529.0 +nan nan nan +nan nan nan +2530.0 +nan nan nan +nan nan nan +2531.0 +nan nan nan +nan nan nan +2532.0 +nan nan nan +nan nan nan +2533.0 +nan nan nan +nan nan nan +2534.0 +nan nan nan +nan nan nan +2535.0 +nan nan nan +nan nan nan +2536.0 +nan nan nan +nan nan nan +2537.0 +nan nan nan +nan nan nan +2538.0 +nan nan nan +nan nan nan +2539.0 +nan nan nan +nan nan nan +2540.0 +nan nan nan +nan nan nan +2541.0 +nan nan nan +nan nan nan +2542.0 +nan nan nan +nan nan nan +2543.0 +nan nan nan +nan nan nan +2544.0 +nan nan nan +nan nan nan +2545.0 +nan nan nan +nan nan nan +2546.0 +nan nan nan +nan nan nan +2547.0 +nan nan nan +nan nan nan +2548.0 +nan nan nan +nan nan nan +2549.0 +nan nan nan +nan nan nan +2550.0 +nan nan nan +nan nan nan +2551.0 +nan nan nan +nan nan nan +2552.0 +nan nan nan +nan nan nan +2553.0 +nan nan nan +nan nan nan +2554.0 +nan nan nan +nan nan nan +2555.0 +nan nan nan +nan nan nan +2556.0 +nan nan nan +nan nan nan +2557.0 +nan nan nan +nan nan nan +2558.0 +nan nan nan +nan nan nan +2559.0 +nan nan nan +nan nan nan +2560.0 +nan nan nan +nan nan nan +2561.0 +nan nan nan +nan nan nan +2562.0 +nan nan nan +nan nan nan +2563.0 +nan nan nan +nan nan nan +2564.0 +nan nan nan +nan nan nan +2565.0 +nan nan nan +nan nan nan +2566.0 +nan nan nan +nan nan nan +2567.0 +nan nan nan +nan nan nan +2568.0 +nan nan nan +nan nan nan +2569.0 +nan nan nan +nan nan nan +2570.0 +nan nan nan +nan nan nan +2571.0 +nan nan nan +nan nan nan +2572.0 +nan nan nan +nan nan nan +2573.0 +nan nan nan +nan nan nan +2574.0 +nan nan nan +nan nan nan +2575.0 +nan nan nan +nan nan nan +2576.0 +nan nan nan +nan nan nan +2577.0 +nan nan nan +nan nan nan +2578.0 +nan nan nan +nan nan nan +2579.0 +nan nan nan +nan nan nan +2580.0 +nan nan nan +nan nan nan +2581.0 +nan nan nan +nan nan nan +2582.0 +nan nan nan +nan nan nan +2583.0 +nan nan nan +nan nan nan +2584.0 +nan nan nan +nan nan nan +2585.0 +nan nan nan +nan nan nan +2586.0 +nan nan nan +nan nan nan +2587.0 +nan nan nan +nan nan nan +2588.0 +nan nan nan +nan nan nan +2589.0 +nan nan nan +nan nan nan +2590.0 +nan nan nan +nan nan nan +2591.0 +nan nan nan +nan nan nan +2592.0 +nan nan nan +nan nan nan +2593.0 +nan nan nan +nan nan nan +2594.0 +nan nan nan +nan nan nan +2595.0 +nan nan nan +nan nan nan +2596.0 +nan nan nan +nan nan nan +2597.0 +nan nan nan +nan nan nan +2598.0 +nan nan nan +nan nan nan +2599.0 +nan nan nan +nan nan nan +2600.0 +nan nan nan +nan nan nan +2601.0 +nan nan nan +nan nan nan +2602.0 +nan nan nan +nan nan nan +2603.0 +nan nan nan +nan nan nan +2604.0 +nan nan nan +nan nan nan +2605.0 +nan nan nan +nan nan nan +2606.0 +nan nan nan +nan nan nan +2607.0 +nan nan nan +nan nan nan +2608.0 +nan nan nan +nan nan nan +2609.0 +nan nan nan +nan nan nan +2610.0 +nan nan nan +nan nan nan +2611.0 +nan nan nan +nan nan nan +2612.0 +nan nan nan +nan nan nan +2613.0 +nan nan nan +nan nan nan +2614.0 +nan nan nan +nan nan nan +2615.0 +nan nan nan +nan nan nan +2616.0 +nan nan nan +nan nan nan +2617.0 +nan nan nan +nan nan nan +2618.0 +nan nan nan +nan nan nan +2619.0 +nan nan nan +nan nan nan +2620.0 +nan nan nan +nan nan nan +2621.0 +nan nan nan +nan nan nan +2622.0 +nan nan nan +nan nan nan +2623.0 +nan nan nan +nan nan nan +2624.0 +nan nan nan +nan nan nan +2625.0 +nan nan nan +nan nan nan +2626.0 +nan nan nan +nan nan nan +2627.0 +nan nan nan +nan nan nan +2628.0 +nan nan nan +nan nan nan +2629.0 +nan nan nan +nan nan nan +2630.0 +nan nan nan +nan nan nan +2631.0 +nan nan nan +nan nan nan +2632.0 +nan nan nan +nan nan nan +2633.0 +nan nan nan +nan nan nan +2634.0 +nan nan nan +nan nan nan +2635.0 +nan nan nan +nan nan nan +2636.0 +nan nan nan +nan nan nan +2637.0 +nan nan nan +nan nan nan +2638.0 +nan nan nan +nan nan nan +2639.0 +nan nan nan +nan nan nan +2640.0 +nan nan nan +nan nan nan +2641.0 +nan nan nan +nan nan nan +2642.0 +nan nan nan +nan nan nan +2643.0 +nan nan nan +nan nan nan +2644.0 +nan nan nan +nan nan nan +2645.0 +nan nan nan +nan nan nan +2646.0 +nan nan nan +nan nan nan +2647.0 +nan nan nan +nan nan nan +2648.0 +nan nan nan +nan nan nan +2649.0 +nan nan nan +nan nan nan +2650.0 +nan nan nan +nan nan nan +2651.0 +nan nan nan +nan nan nan +2652.0 +nan nan nan +nan nan nan +2653.0 +nan nan nan +nan nan nan +2654.0 +nan nan nan +nan nan nan +2655.0 +nan nan nan +nan nan nan +2656.0 +nan nan nan +nan nan nan +2657.0 +nan nan nan +nan nan nan +2658.0 +nan nan nan +nan nan nan +2659.0 +nan nan nan +nan nan nan +2660.0 +nan nan nan +nan nan nan +2661.0 +nan nan nan +nan nan nan +2662.0 +nan nan nan +nan nan nan +2663.0 +nan nan nan +nan nan nan +2664.0 +nan nan nan +nan nan nan +2665.0 +nan nan nan +nan nan nan +2666.0 +nan nan nan +nan nan nan +2667.0 +nan nan nan +nan nan nan +2668.0 +nan nan nan +nan nan nan +2669.0 +nan nan nan +nan nan nan +2670.0 +nan nan nan +nan nan nan +2671.0 +nan nan nan +nan nan nan +2672.0 +nan nan nan +nan nan nan +2673.0 +nan nan nan +nan nan nan +2674.0 +nan nan nan +nan nan nan +2675.0 +nan nan nan +nan nan nan +2676.0 +nan nan nan +nan nan nan +2677.0 +nan nan nan +nan nan nan +2678.0 +nan nan nan +nan nan nan +2679.0 +nan nan nan +nan nan nan +2680.0 +nan nan nan +nan nan nan +2681.0 +nan nan nan +nan nan nan +2682.0 +nan nan nan +nan nan nan +2683.0 +nan nan nan +nan nan nan +2684.0 +nan nan nan +nan nan nan +2685.0 +nan nan nan +nan nan nan +2686.0 +nan nan nan +nan nan nan +2687.0 +nan nan nan +nan nan nan +2688.0 +nan nan nan +nan nan nan +2689.0 +nan nan nan +nan nan nan +2690.0 +nan nan nan +nan nan nan +2691.0 +nan nan nan +nan nan nan +2692.0 +nan nan nan +nan nan nan +2693.0 +nan nan nan +nan nan nan +2694.0 +nan nan nan +nan nan nan +2695.0 +nan nan nan +nan nan nan +2696.0 +nan nan nan +nan nan nan +2697.0 +nan nan nan +nan nan nan +2698.0 +nan nan nan +nan nan nan +2699.0 +nan nan nan +nan nan nan +2700.0 +nan nan nan +nan nan nan +2701.0 +nan nan nan +nan nan nan +2702.0 +nan nan nan +nan nan nan +2703.0 +nan nan nan +nan nan nan +2704.0 +nan nan nan +nan nan nan +2705.0 +nan nan nan +nan nan nan +2706.0 +nan nan nan +nan nan nan +2707.0 +nan nan nan +nan nan nan +2708.0 +nan nan nan +nan nan nan +2709.0 +nan nan nan +nan nan nan +2710.0 +nan nan nan +nan nan nan +2711.0 +nan nan nan +nan nan nan +2712.0 +nan nan nan +nan nan nan +2713.0 +nan nan nan +nan nan nan +2714.0 +nan nan nan +nan nan nan +2715.0 +nan nan nan +nan nan nan +2716.0 +nan nan nan +nan nan nan +2717.0 +nan nan nan +nan nan nan +2718.0 +nan nan nan +nan nan nan +2719.0 +nan nan nan +nan nan nan +2720.0 +nan nan nan +nan nan nan +2721.0 +nan nan nan +nan nan nan +2722.0 +nan nan nan +nan nan nan +2723.0 +nan nan nan +nan nan nan +2724.0 +nan nan nan +nan nan nan +2725.0 +nan nan nan +nan nan nan +2726.0 +nan nan nan +nan nan nan +2727.0 +nan nan nan +nan nan nan +2728.0 +nan nan nan +nan nan nan +2729.0 +nan nan nan +nan nan nan +2730.0 +nan nan nan +nan nan nan +2731.0 +nan nan nan +nan nan nan +2732.0 +nan nan nan +nan nan nan +2733.0 +nan nan nan +nan nan nan +2734.0 +nan nan nan +nan nan nan +2735.0 +nan nan nan +nan nan nan +2736.0 +nan nan nan +nan nan nan +2737.0 +nan nan nan +nan nan nan +2738.0 +nan nan nan +nan nan nan +2739.0 +nan nan nan +nan nan nan +2740.0 +nan nan nan +nan nan nan +2741.0 +nan nan nan +nan nan nan +2742.0 +nan nan nan +nan nan nan +2743.0 +nan nan nan +nan nan nan +2744.0 +nan nan nan +nan nan nan +2745.0 +nan nan nan +nan nan nan +2746.0 +nan nan nan +nan nan nan +2747.0 +nan nan nan +nan nan nan +2748.0 +nan nan nan +nan nan nan +2749.0 +nan nan nan +nan nan nan +2750.0 +nan nan nan +nan nan nan +2751.0 +nan nan nan +nan nan nan +2752.0 +nan nan nan +nan nan nan +2753.0 +nan nan nan +nan nan nan +2754.0 +nan nan nan +nan nan nan +2755.0 +nan nan nan +nan nan nan +2756.0 +nan nan nan +nan nan nan +2757.0 +nan nan nan +nan nan nan +2758.0 +nan nan nan +nan nan nan +2759.0 +nan nan nan +nan nan nan +2760.0 +nan nan nan +nan nan nan +2761.0 +nan nan nan +nan nan nan +2762.0 +nan nan nan +nan nan nan +2763.0 +nan nan nan +nan nan nan +2764.0 +nan nan nan +nan nan nan +2765.0 +nan nan nan +nan nan nan +2766.0 +nan nan nan +nan nan nan +2767.0 +nan nan nan +nan nan nan +2768.0 +nan nan nan +nan nan nan +2769.0 +nan nan nan +nan nan nan +2770.0 +nan nan nan +nan nan nan +2771.0 +nan nan nan +nan nan nan +2772.0 +nan nan nan +nan nan nan +2773.0 +nan nan nan +nan nan nan +2774.0 +nan nan nan +nan nan nan +2775.0 +nan nan nan +nan nan nan +2776.0 +nan nan nan +nan nan nan +2777.0 +nan nan nan +nan nan nan +2778.0 +nan nan nan +nan nan nan +2779.0 +nan nan nan +nan nan nan +2780.0 +nan nan nan +nan nan nan +2781.0 +nan nan nan +nan nan nan +2782.0 +nan nan nan +nan nan nan +2783.0 +nan nan nan +nan nan nan +2784.0 +nan nan nan +nan nan nan +2785.0 +nan nan nan +nan nan nan +2786.0 +nan nan nan +nan nan nan +2787.0 +nan nan nan +nan nan nan +2788.0 +nan nan nan +nan nan nan +2789.0 +nan nan nan +nan nan nan +2790.0 +nan nan nan +nan nan nan +2791.0 +nan nan nan +nan nan nan +2792.0 +nan nan nan +nan nan nan +2793.0 +nan nan nan +nan nan nan +2794.0 +nan nan nan +nan nan nan +2795.0 +nan nan nan +nan nan nan +2796.0 +nan nan nan +nan nan nan +2797.0 +nan nan nan +nan nan nan +2798.0 +nan nan nan +nan nan nan +2799.0 +nan nan nan +nan nan nan +2800.0 +nan nan nan +nan nan nan +2801.0 +nan nan nan +nan nan nan +2802.0 +nan nan nan +nan nan nan +2803.0 +nan nan nan +nan nan nan +2804.0 +nan nan nan +nan nan nan +2805.0 +nan nan nan +nan nan nan +2806.0 +nan nan nan +nan nan nan +2807.0 +nan nan nan +nan nan nan +2808.0 +nan nan nan +nan nan nan +2809.0 +nan nan nan +nan nan nan +2810.0 +nan nan nan +nan nan nan +2811.0 +nan nan nan +nan nan nan +2812.0 +nan nan nan +nan nan nan +2813.0 +nan nan nan +nan nan nan +2814.0 +nan nan nan +nan nan nan +2815.0 +nan nan nan +nan nan nan +2816.0 +nan nan nan +nan nan nan +2817.0 +nan nan nan +nan nan nan +2818.0 +nan nan nan +nan nan nan +2819.0 +nan nan nan +nan nan nan +2820.0 +nan nan nan +nan nan nan +2821.0 +nan nan nan +nan nan nan +2822.0 +nan nan nan +nan nan nan +2823.0 +nan nan nan +nan nan nan +2824.0 +nan nan nan +nan nan nan +2825.0 +nan nan nan +nan nan nan +2826.0 +nan nan nan +nan nan nan +2827.0 +nan nan nan +nan nan nan +2828.0 +nan nan nan +nan nan nan +2829.0 +nan nan nan +nan nan nan +2830.0 +nan nan nan +nan nan nan +2831.0 +nan nan nan +nan nan nan +2832.0 +nan nan nan +nan nan nan +2833.0 +nan nan nan +nan nan nan +2834.0 +nan nan nan +nan nan nan +2835.0 +nan nan nan +nan nan nan +2836.0 +nan nan nan +nan nan nan +2837.0 +nan nan nan +nan nan nan +2838.0 +nan nan nan +nan nan nan +2839.0 +nan nan nan +nan nan nan +2840.0 +nan nan nan +nan nan nan +2841.0 +nan nan nan +nan nan nan +2842.0 +nan nan nan +nan nan nan +2843.0 +nan nan nan +nan nan nan +2844.0 +nan nan nan +nan nan nan +2845.0 +nan nan nan +nan nan nan +2846.0 +nan nan nan +nan nan nan +2847.0 +nan nan nan +nan nan nan +2848.0 +nan nan nan +nan nan nan +2849.0 +nan nan nan +nan nan nan +2850.0 +nan nan nan +nan nan nan +2851.0 +nan nan nan +nan nan nan +2852.0 +nan nan nan +nan nan nan +2853.0 +nan nan nan +nan nan nan +2854.0 +nan nan nan +nan nan nan +2855.0 +nan nan nan +nan nan nan +2856.0 +nan nan nan +nan nan nan +2857.0 +nan nan nan +nan nan nan +2858.0 +nan nan nan +nan nan nan +2859.0 +nan nan nan +nan nan nan +2860.0 +nan nan nan +nan nan nan +2861.0 +nan nan nan +nan nan nan +2862.0 +nan nan nan +nan nan nan +2863.0 +nan nan nan +nan nan nan +2864.0 +nan nan nan +nan nan nan +2865.0 +nan nan nan +nan nan nan +2866.0 +nan nan nan +nan nan nan +2867.0 +nan nan nan +nan nan nan +2868.0 +nan nan nan +nan nan nan +2869.0 +nan nan nan +nan nan nan +2870.0 +nan nan nan +nan nan nan +2871.0 +nan nan nan +nan nan nan +2872.0 +nan nan nan +nan nan nan +2873.0 +nan nan nan +nan nan nan +2874.0 +nan nan nan +nan nan nan +2875.0 +nan nan nan +nan nan nan +2876.0 +nan nan nan +nan nan nan +2877.0 +nan nan nan +nan nan nan +2878.0 +nan nan nan +nan nan nan +2879.0 +nan nan nan +nan nan nan +2880.0 +nan nan nan +nan nan nan +2881.0 +nan nan nan +nan nan nan +2882.0 +nan nan nan +nan nan nan +2883.0 +nan nan nan +nan nan nan +2884.0 +nan nan nan +nan nan nan +2885.0 +nan nan nan +nan nan nan +2886.0 +nan nan nan +nan nan nan +2887.0 +nan nan nan +nan nan nan +2888.0 +nan nan nan +nan nan nan +2889.0 +nan nan nan +nan nan nan +2890.0 +nan nan nan +nan nan nan +2891.0 +nan nan nan +nan nan nan +2892.0 +nan nan nan +nan nan nan +2893.0 +nan nan nan +nan nan nan +2894.0 +nan nan nan +nan nan nan +2895.0 +nan nan nan +nan nan nan +2896.0 +nan nan nan +nan nan nan +2897.0 +nan nan nan +nan nan nan +2898.0 +nan nan nan +nan nan nan +2899.0 +nan nan nan +nan nan nan +2900.0 +nan nan nan +nan nan nan +2901.0 +nan nan nan +nan nan nan +2902.0 +nan nan nan +nan nan nan +2903.0 +nan nan nan +nan nan nan +2904.0 +nan nan nan +nan nan nan +2905.0 +nan nan nan +nan nan nan +2906.0 +nan nan nan +nan nan nan +2907.0 +nan nan nan +nan nan nan +2908.0 +nan nan nan +nan nan nan +2909.0 +nan nan nan +nan nan nan +2910.0 +nan nan nan +nan nan nan +2911.0 +nan nan nan +nan nan nan +2912.0 +nan nan nan +nan nan nan +2913.0 +nan nan nan +nan nan nan +2914.0 +nan nan nan +nan nan nan +2915.0 +nan nan nan +nan nan nan +2916.0 +nan nan nan +nan nan nan +2917.0 +nan nan nan +nan nan nan +2918.0 +nan nan nan +nan nan nan +2919.0 +nan nan nan +nan nan nan +2920.0 +nan nan nan +nan nan nan +2921.0 +nan nan nan +nan nan nan +2922.0 +nan nan nan +nan nan nan +2923.0 +nan nan nan +nan nan nan +2924.0 +nan nan nan +nan nan nan +2925.0 +nan nan nan +nan nan nan +2926.0 +nan nan nan +nan nan nan +2927.0 +nan nan nan +nan nan nan +2928.0 +nan nan nan +nan nan nan +2929.0 +nan nan nan +nan nan nan +2930.0 +nan nan nan +nan nan nan +2931.0 +nan nan nan +nan nan nan +2932.0 +nan nan nan +nan nan nan +2933.0 +nan nan nan +nan nan nan +2934.0 +nan nan nan +nan nan nan +2935.0 +nan nan nan +nan nan nan +2936.0 +nan nan nan +nan nan nan +2937.0 +nan nan nan +nan nan nan +2938.0 +nan nan nan +nan nan nan +2939.0 +nan nan nan +nan nan nan +2940.0 +nan nan nan +nan nan nan +2941.0 +nan nan nan +nan nan nan +2942.0 +nan nan nan +nan nan nan +2943.0 +nan nan nan +nan nan nan +2944.0 +nan nan nan +nan nan nan +2945.0 +nan nan nan +nan nan nan +2946.0 +nan nan nan +nan nan nan +2947.0 +nan nan nan +nan nan nan +2948.0 +nan nan nan +nan nan nan +2949.0 +nan nan nan +nan nan nan +2950.0 +nan nan nan +nan nan nan +2951.0 +nan nan nan +nan nan nan +2952.0 +nan nan nan +nan nan nan +2953.0 +nan nan nan +nan nan nan +2954.0 +nan nan nan +nan nan nan +2955.0 +nan nan nan +nan nan nan +2956.0 +nan nan nan +nan nan nan +2957.0 +nan nan nan +nan nan nan +2958.0 +nan nan nan +nan nan nan +2959.0 +nan nan nan +nan nan nan +2960.0 +nan nan nan +nan nan nan +2961.0 +nan nan nan +nan nan nan +2962.0 +nan nan nan +nan nan nan +2963.0 +nan nan nan +nan nan nan +2964.0 +nan nan nan +nan nan nan +2965.0 +nan nan nan +nan nan nan +2966.0 +nan nan nan +nan nan nan +2967.0 +nan nan nan +nan nan nan +2968.0 +nan nan nan +nan nan nan +2969.0 +nan nan nan +nan nan nan +2970.0 +nan nan nan +nan nan nan +2971.0 +nan nan nan +nan nan nan +2972.0 +nan nan nan +nan nan nan +2973.0 +nan nan nan +nan nan nan +2974.0 +nan nan nan +nan nan nan +2975.0 +nan nan nan +nan nan nan +2976.0 +nan nan nan +nan nan nan +2977.0 +nan nan nan +nan nan nan +2978.0 +nan nan nan +nan nan nan +2980.0 +nan nan nan +nan nan nan +2981.0 +nan nan nan +nan nan nan +2982.0 +nan nan nan +nan nan nan +2983.0 +nan nan nan +nan nan nan +2984.0 +nan nan nan +nan nan nan +2985.0 +nan nan nan +nan nan nan +2986.0 +nan nan nan +nan nan nan +2987.0 +nan nan nan +nan nan nan +2988.0 +nan nan nan +nan nan nan +2989.0 +nan nan nan +nan nan nan +2990.0 +nan nan nan +nan nan nan +2991.0 +nan nan nan +nan nan nan +2992.0 +nan nan nan +nan nan nan +2993.0 +nan nan nan +nan nan nan +2994.0 +nan nan nan +nan nan nan +2995.0 +nan nan nan +nan nan nan +2996.0 +nan nan nan +nan nan nan +2997.0 +nan nan nan +nan nan nan +2998.0 +nan nan nan +nan nan nan +2999.0 +nan nan nan +nan nan nan +3000.0 +nan nan nan +nan nan nan +3001.0 +nan nan nan +nan nan nan +3002.0 +nan nan nan +nan nan nan +3003.0 +nan nan nan +nan nan nan +3004.0 +nan nan nan +nan nan nan +3005.0 +nan nan nan +nan nan nan +3006.0 +nan nan nan +nan nan nan +3007.0 +nan nan nan +nan nan nan +3008.0 +nan nan nan +nan nan nan +3009.0 +nan nan nan +nan nan nan +3010.0 +nan nan nan +nan nan nan +3011.0 +nan nan nan +nan nan nan +3012.0 +nan nan nan +nan nan nan +3013.0 +nan nan nan +nan nan nan +3014.0 +nan nan nan +nan nan nan +3015.0 +nan nan nan +nan nan nan +3016.0 +nan nan nan +nan nan nan +3017.0 +nan nan nan +nan nan nan +3018.0 +nan nan nan +nan nan nan +3019.0 +nan nan nan +nan nan nan +3020.0 +nan nan nan +nan nan nan +3021.0 +nan nan nan +nan nan nan +3022.0 +nan nan nan +nan nan nan +3023.0 +nan nan nan +nan nan nan +3024.0 +nan nan nan +nan nan nan +3025.0 +nan nan nan +nan nan nan +3026.0 +nan nan nan +nan nan nan +3027.0 +nan nan nan +nan nan nan +3028.0 +nan nan nan +nan nan nan +3029.0 +nan nan nan +nan nan nan +3030.0 +nan nan nan +nan nan nan +3031.0 +nan nan nan +nan nan nan +3032.0 +nan nan nan +nan nan nan +3033.0 +nan nan nan +nan nan nan +3034.0 +nan nan nan +nan nan nan +3035.0 +nan nan nan +nan nan nan +3036.0 +nan nan nan +nan nan nan +3037.0 +nan nan nan +nan nan nan +3038.0 +nan nan nan +nan nan nan +3039.0 +nan nan nan +nan nan nan +3040.0 +nan nan nan +nan nan nan +3041.0 +nan nan nan +nan nan nan +3042.0 +nan nan nan +nan nan nan +3043.0 +nan nan nan +nan nan nan +3044.0 +nan nan nan +nan nan nan +3045.0 +nan nan nan +nan nan nan +3046.0 +nan nan nan +nan nan nan +3047.0 +nan nan nan +nan nan nan +3048.0 +nan nan nan +nan nan nan +3049.0 +nan nan nan +nan nan nan +3050.0 +nan nan nan +nan nan nan +3051.0 +nan nan nan +nan nan nan +3052.0 +nan nan nan +nan nan nan +3053.0 +nan nan nan +nan nan nan +3054.0 +nan nan nan +nan nan nan +3055.0 +nan nan nan +nan nan nan +3056.0 +nan nan nan +nan nan nan +3057.0 +nan nan nan +nan nan nan +3058.0 +nan nan nan +nan nan nan +3059.0 +nan nan nan +nan nan nan +3060.0 +nan nan nan +nan nan nan +3061.0 +nan nan nan +nan nan nan +3062.0 +nan nan nan +nan nan nan +3063.0 +nan nan nan +nan nan nan +3065.0 +nan nan nan +nan nan nan +3066.0 +nan nan nan +nan nan nan +3067.0 +nan nan nan +nan nan nan +3068.0 +nan nan nan +nan nan nan +3069.0 +nan nan nan +nan nan nan +3070.0 +nan nan nan +nan nan nan +3071.0 +nan nan nan +nan nan nan +3072.0 +nan nan nan +nan nan nan +3073.0 +nan nan nan +nan nan nan +3074.0 +nan nan nan +nan nan nan +3075.0 +nan nan nan +nan nan nan +3076.0 +nan nan nan +nan nan nan +3077.0 +nan nan nan +nan nan nan +3078.0 +nan nan nan +nan nan nan +3079.0 +nan nan nan +nan nan nan +3080.0 +nan nan nan +nan nan nan +3081.0 +nan nan nan +nan nan nan +3082.0 +nan nan nan +nan nan nan +3083.0 +nan nan nan +nan nan nan +3084.0 +nan nan nan +nan nan nan +3085.0 +nan nan nan +nan nan nan +3086.0 +nan nan nan +nan nan nan +3087.0 +nan nan nan +nan nan nan +3088.0 +nan nan nan +nan nan nan +3089.0 +nan nan nan +nan nan nan +3090.0 +nan nan nan +nan nan nan +3091.0 +nan nan nan +nan nan nan +3092.0 +nan nan nan +nan nan nan +3093.0 +nan nan nan +nan nan nan +3094.0 +nan nan nan +nan nan nan +3095.0 +nan nan nan +nan nan nan +3096.0 +nan nan nan +nan nan nan +3097.0 +nan nan nan +nan nan nan +3098.0 +nan nan nan +nan nan nan +3099.0 +nan nan nan +nan nan nan +3100.0 +nan nan nan +nan nan nan +3101.0 +nan nan nan +nan nan nan +3102.0 +nan nan nan +nan nan nan +3103.0 +nan nan nan +nan nan nan +3104.0 +nan nan nan +nan nan nan +3105.0 +nan nan nan +nan nan nan +3106.0 +nan nan nan +nan nan nan +3107.0 +nan nan nan +nan nan nan +3108.0 +nan nan nan +nan nan nan +3109.0 +nan nan nan +nan nan nan +3110.0 +nan nan nan +nan nan nan +3111.0 +nan nan nan +nan nan nan +3112.0 +nan nan nan +nan nan nan +3113.0 +nan nan nan +nan nan nan +3114.0 +nan nan nan +nan nan nan +3115.0 +nan nan nan +nan nan nan +3116.0 +nan nan nan +nan nan nan +3117.0 +nan nan nan +nan nan nan +3118.0 +nan nan nan +nan nan nan +3119.0 +nan nan nan +nan nan nan +3120.0 +nan nan nan +nan nan nan +3121.0 +nan nan nan +nan nan nan +3122.0 +nan nan nan +nan nan nan +3123.0 +nan nan nan +nan nan nan +3124.0 +nan nan nan +nan nan nan +3125.0 +nan nan nan +nan nan nan +3126.0 +nan nan nan +nan nan nan +3127.0 +nan nan nan +nan nan nan +3128.0 +nan nan nan +nan nan nan +3129.0 +nan nan nan +nan nan nan +3130.0 +nan nan nan +nan nan nan +3131.0 +nan nan nan +nan nan nan +3132.0 +nan nan nan +nan nan nan +3133.0 +nan nan nan +nan nan nan +3134.0 +nan nan nan +nan nan nan +3135.0 +nan nan nan +nan nan nan +3136.0 +nan nan nan +nan nan nan +3137.0 +nan nan nan +nan nan nan +3138.0 +nan nan nan +nan nan nan +3139.0 +nan nan nan +nan nan nan +3140.0 +nan nan nan +nan nan nan +3141.0 +nan nan nan +nan nan nan +3142.0 +nan nan nan +nan nan nan +3143.0 +nan nan nan +nan nan nan +3144.0 +nan nan nan +nan nan nan +3145.0 +nan nan nan +nan nan nan +3146.0 +nan nan nan +nan nan nan +3147.0 +nan nan nan +nan nan nan +3148.0 +nan nan nan +nan nan nan +3149.0 +nan nan nan +nan nan nan +3150.0 +nan nan nan +nan nan nan +3151.0 +nan nan nan +nan nan nan +3152.0 +nan nan nan +nan nan nan +3153.0 +nan nan nan +nan nan nan +3154.0 +nan nan nan +nan nan nan +3155.0 +nan nan nan +nan nan nan +3156.0 +nan nan nan +nan nan nan +3157.0 +nan nan nan +nan nan nan +3158.0 +nan nan nan +nan nan nan +3159.0 +nan nan nan +nan nan nan +3160.0 +nan nan nan +nan nan nan +3161.0 +nan nan nan +nan nan nan +3162.0 +nan nan nan +nan nan nan +3163.0 +nan nan nan +nan nan nan +3164.0 +nan nan nan +nan nan nan +3165.0 +nan nan nan +nan nan nan +3166.0 +nan nan nan +nan nan nan +3167.0 +nan nan nan +nan nan nan +3168.0 +nan nan nan +nan nan nan +3169.0 +nan nan nan +nan nan nan +3170.0 +nan nan nan +nan nan nan +3171.0 +nan nan nan +nan nan nan +3172.0 +nan nan nan +nan nan nan +3173.0 +nan nan nan +nan nan nan +3174.0 +nan nan nan +nan nan nan +3175.0 +nan nan nan +nan nan nan +3176.0 +nan nan nan +nan nan nan +3177.0 +nan nan nan +nan nan nan +3178.0 +nan nan nan +nan nan nan +3179.0 +nan nan nan +nan nan nan +3180.0 +nan nan nan +nan nan nan +3181.0 +nan nan nan +nan nan nan +3182.0 +nan nan nan +nan nan nan +3183.0 +nan nan nan +nan nan nan +3184.0 +nan nan nan +nan nan nan +3185.0 +nan nan nan +nan nan nan +3186.0 +nan nan nan +nan nan nan +3187.0 +nan nan nan +nan nan nan +3188.0 +nan nan nan +nan nan nan +3189.0 +nan nan nan +nan nan nan +3190.0 +nan nan nan +nan nan nan +3191.0 +nan nan nan +nan nan nan +3192.0 +nan nan nan +nan nan nan +3193.0 +nan nan nan +nan nan nan +3194.0 +nan nan nan +nan nan nan +3195.0 +nan nan nan +nan nan nan +3196.0 +nan nan nan +nan nan nan +3197.0 +nan nan nan +nan nan nan +3198.0 +nan nan nan +nan nan nan +3199.0 +nan nan nan +nan nan nan +3200.0 +nan nan nan +nan nan nan +3201.0 +nan nan nan +nan nan nan +3202.0 +nan nan nan +nan nan nan +3203.0 +nan nan nan +nan nan nan +3204.0 +nan nan nan +nan nan nan +3205.0 +nan nan nan +nan nan nan +3206.0 +nan nan nan +nan nan nan +3207.0 +nan nan nan +nan nan nan +3208.0 +nan nan nan +nan nan nan +3209.0 +nan nan nan +nan nan nan +3210.0 +nan nan nan +nan nan nan +3211.0 +nan nan nan +nan nan nan +3212.0 +nan nan nan +nan nan nan +3213.0 +nan nan nan +nan nan nan +3214.0 +nan nan nan +nan nan nan +3215.0 +nan nan nan +nan nan nan +3216.0 +nan nan nan +nan nan nan +3217.0 +nan nan nan +nan nan nan +3218.0 +nan nan nan +nan nan nan +3219.0 +nan nan nan +nan nan nan +3220.0 +nan nan nan +nan nan nan +3221.0 +nan nan nan +nan nan nan +3222.0 +nan nan nan +nan nan nan +3223.0 +nan nan nan +nan nan nan +3224.0 +nan nan nan +nan nan nan +3225.0 +nan nan nan +nan nan nan +3226.0 +nan nan nan +nan nan nan +3227.0 +nan nan nan +nan nan nan +3228.0 +nan nan nan +nan nan nan +3229.0 +nan nan nan +nan nan nan +3230.0 +nan nan nan +nan nan nan +3231.0 +nan nan nan +nan nan nan +3232.0 +nan nan nan +nan nan nan +3233.0 +nan nan nan +nan nan nan +3234.0 +nan nan nan +nan nan nan +3235.0 +nan nan nan +nan nan nan +3236.0 +nan nan nan +nan nan nan +3237.0 +nan nan nan +nan nan nan +3238.0 +nan nan nan +nan nan nan +3239.0 +nan nan nan +nan nan nan +3240.0 +nan nan nan +nan nan nan +3241.0 +nan nan nan +nan nan nan +3242.0 +nan nan nan +nan nan nan +3243.0 +nan nan nan +nan nan nan +3244.0 +nan nan nan +nan nan nan +3245.0 +nan nan nan +nan nan nan +3246.0 +nan nan nan +nan nan nan +3247.0 +nan nan nan +nan nan nan +3248.0 +nan nan nan +nan nan nan +3249.0 +nan nan nan +nan nan nan +3250.0 +nan nan nan +nan nan nan +3251.0 +nan nan nan +nan nan nan +3252.0 +nan nan nan +nan nan nan +3253.0 +nan nan nan +nan nan nan +3254.0 +nan nan nan +nan nan nan +3255.0 +nan nan nan +nan nan nan +3256.0 +nan nan nan +nan nan nan +3257.0 +nan nan nan +nan nan nan +3258.0 +nan nan nan +nan nan nan +3259.0 +nan nan nan +nan nan nan +3260.0 +nan nan nan +nan nan nan +3261.0 +nan nan nan +nan nan nan +3262.0 +nan nan nan +nan nan nan +3263.0 +nan nan nan +nan nan nan +3264.0 +nan nan nan +nan nan nan +3265.0 +nan nan nan +nan nan nan +3266.0 +nan nan nan +nan nan nan +3267.0 +nan nan nan +nan nan nan +3268.0 +nan nan nan +nan nan nan +3269.0 +nan nan nan +nan nan nan +3270.0 +nan nan nan +nan nan nan +3271.0 +nan nan nan +nan nan nan +3272.0 +nan nan nan +nan nan nan +3273.0 +nan nan nan +nan nan nan +3274.0 +nan nan nan +nan nan nan +3275.0 +nan nan nan +nan nan nan +3276.0 +nan nan nan +nan nan nan +3277.0 +nan nan nan +nan nan nan +3278.0 +nan nan nan +nan nan nan +3279.0 +nan nan nan +nan nan nan +3280.0 +nan nan nan +nan nan nan +3281.0 +nan nan nan +nan nan nan +3282.0 +nan nan nan +nan nan nan +3283.0 +nan nan nan +nan nan nan +3284.0 +nan nan nan +nan nan nan +3285.0 +nan nan nan +nan nan nan +3286.0 +nan nan nan +nan nan nan +3287.0 +nan nan nan +nan nan nan +3288.0 +nan nan nan +nan nan nan +3289.0 +nan nan nan +nan nan nan +3290.0 +nan nan nan +nan nan nan +3291.0 +nan nan nan +nan nan nan +3292.0 +nan nan nan +nan nan nan +3293.0 +nan nan nan +nan nan nan +3294.0 +nan nan nan +nan nan nan +3295.0 +nan nan nan +nan nan nan +3296.0 +nan nan nan +nan nan nan +3297.0 +nan nan nan +nan nan nan +3298.0 +nan nan nan +nan nan nan +3299.0 +nan nan nan +nan nan nan +3300.0 +nan nan nan +nan nan nan +3301.0 +nan nan nan +nan nan nan +3302.0 +nan nan nan +nan nan nan +3303.0 +nan nan nan +nan nan nan +3304.0 +nan nan nan +nan nan nan +3305.0 +nan nan nan +nan nan nan +3306.0 +nan nan nan +nan nan nan +3307.0 +nan nan nan +nan nan nan +3308.0 +nan nan nan +nan nan nan +3309.0 +nan nan nan +nan nan nan +3310.0 +nan nan nan +nan nan nan +3311.0 +nan nan nan +nan nan nan +3312.0 +nan nan nan +nan nan nan +3313.0 +nan nan nan +nan nan nan +3314.0 +nan nan nan +nan nan nan +3315.0 +nan nan nan +nan nan nan +3316.0 +nan nan nan +nan nan nan +3317.0 +nan nan nan +nan nan nan +3318.0 +nan nan nan +nan nan nan +3319.0 +nan nan nan +nan nan nan +3320.0 +nan nan nan +nan nan nan +3321.0 +nan nan nan +nan nan nan +3322.0 +nan nan nan +nan nan nan +3323.0 +nan nan nan +nan nan nan +3324.0 +nan nan nan +nan nan nan +3325.0 +nan nan nan +nan nan nan +3326.0 +nan nan nan +nan nan nan +3327.0 +nan nan nan +nan nan nan +3328.0 +nan nan nan +nan nan nan +3329.0 +nan nan nan +nan nan nan +3330.0 +nan nan nan +nan nan nan +3331.0 +nan nan nan +nan nan nan +3332.0 +nan nan nan +nan nan nan +3333.0 +nan nan nan +nan nan nan +3334.0 +nan nan nan +nan nan nan +3335.0 +nan nan nan +nan nan nan +3336.0 +nan nan nan +nan nan nan +3337.0 +nan nan nan +nan nan nan +3338.0 +nan nan nan +nan nan nan +3339.0 +nan nan nan +nan nan nan +3340.0 +nan nan nan +nan nan nan +3341.0 +nan nan nan +nan nan nan +3342.0 +nan nan nan +nan nan nan +3343.0 +nan nan nan +nan nan nan +3344.0 +nan nan nan +nan nan nan +3345.0 +nan nan nan +nan nan nan +3346.0 +nan nan nan +nan nan nan +3347.0 +nan nan nan +nan nan nan +3348.0 +nan nan nan +nan nan nan +3349.0 +nan nan nan +nan nan nan +3350.0 +nan nan nan +nan nan nan +3351.0 +nan nan nan +nan nan nan +3352.0 +nan nan nan +nan nan nan +3353.0 +nan nan nan +nan nan nan +3354.0 +nan nan nan +nan nan nan +3355.0 +nan nan nan +nan nan nan +3356.0 +nan nan nan +nan nan nan +3357.0 +nan nan nan +nan nan nan +3358.0 +nan nan nan +nan nan nan +3359.0 +nan nan nan +nan nan nan +3360.0 +nan nan nan +nan nan nan +3361.0 +nan nan nan +nan nan nan +3362.0 +nan nan nan +nan nan nan +3363.0 +nan nan nan +nan nan nan +3364.0 +nan nan nan +nan nan nan +3365.0 +nan nan nan +nan nan nan +3366.0 +nan nan nan +nan nan nan +3367.0 +nan nan nan +nan nan nan +3368.0 +nan nan nan +nan nan nan +3369.0 +nan nan nan +nan nan nan +3370.0 +nan nan nan +nan nan nan +3371.0 +nan nan nan +nan nan nan +3372.0 +nan nan nan +nan nan nan +3373.0 +nan nan nan +nan nan nan +3374.0 +nan nan nan +nan nan nan +3375.0 +nan nan nan +nan nan nan +3376.0 +nan nan nan +nan nan nan +3377.0 +nan nan nan +nan nan nan +3378.0 +nan nan nan +nan nan nan +3379.0 +nan nan nan +nan nan nan +3380.0 +nan nan nan +nan nan nan +3381.0 +nan nan nan +nan nan nan +3382.0 +nan nan nan +nan nan nan +3383.0 +nan nan nan +nan nan nan +3384.0 +nan nan nan +nan nan nan +3385.0 +nan nan nan +nan nan nan +3386.0 +nan nan nan +nan nan nan +3387.0 +nan nan nan +nan nan nan +3388.0 +nan nan nan +nan nan nan +3389.0 +nan nan nan +nan nan nan +3390.0 +nan nan nan +nan nan nan +3391.0 +nan nan nan +nan nan nan +3392.0 +nan nan nan +nan nan nan +3393.0 +nan nan nan +nan nan nan +3394.0 +nan nan nan +nan nan nan +3395.0 +nan nan nan +nan nan nan +3396.0 +nan nan nan +nan nan nan +3397.0 +nan nan nan +nan nan nan +3398.0 +nan nan nan +nan nan nan +3399.0 +nan nan nan +nan nan nan +3400.0 +nan nan nan +nan nan nan +3401.0 +nan nan nan +nan nan nan +3402.0 +nan nan nan +nan nan nan +3403.0 +nan nan nan +nan nan nan +3404.0 +nan nan nan +nan nan nan +3405.0 +nan nan nan +nan nan nan +3406.0 +nan nan nan +nan nan nan +3407.0 +nan nan nan +nan nan nan +3408.0 +nan nan nan +nan nan nan +3409.0 +nan nan nan +nan nan nan +3410.0 +nan nan nan +nan nan nan +3411.0 +nan nan nan +nan nan nan +3412.0 +nan nan nan +nan nan nan +3413.0 +nan nan nan +nan nan nan +3414.0 +nan nan nan +nan nan nan +3415.0 +nan nan nan +nan nan nan +3416.0 +nan nan nan +nan nan nan +3417.0 +nan nan nan +nan nan nan +3418.0 +nan nan nan +nan nan nan +3419.0 +nan nan nan +nan nan nan +3420.0 +nan nan nan +nan nan nan +3422.0 +nan nan nan +nan nan nan +3423.0 +nan nan nan +nan nan nan +3424.0 +nan nan nan +nan nan nan +3425.0 +nan nan nan +nan nan nan +3426.0 +nan nan nan +nan nan nan +3427.0 +nan nan nan +nan nan nan +3428.0 +nan nan nan +nan nan nan +3429.0 +nan nan nan +nan nan nan +3430.0 +nan nan nan +nan nan nan +3431.0 +nan nan nan +nan nan nan +3432.0 +nan nan nan +nan nan nan +3433.0 +nan nan nan +nan nan nan +3434.0 +nan nan nan +nan nan nan +3435.0 +nan nan nan +nan nan nan +3436.0 +nan nan nan +nan nan nan +3437.0 +nan nan nan +nan nan nan +3438.0 +nan nan nan +nan nan nan +3439.0 +nan nan nan +nan nan nan +3440.0 +nan nan nan +nan nan nan +3441.0 +nan nan nan +nan nan nan +3442.0 +nan nan nan +nan nan nan +3443.0 +nan nan nan +nan nan nan +3444.0 +nan nan nan +nan nan nan +3445.0 +nan nan nan +nan nan nan +3446.0 +nan nan nan +nan nan nan +3447.0 +nan nan nan +nan nan nan +3448.0 +nan nan nan +nan nan nan +3449.0 +nan nan nan +nan nan nan +3450.0 +nan nan nan +nan nan nan +3451.0 +nan nan nan +nan nan nan +3452.0 +nan nan nan +nan nan nan +3453.0 +nan nan nan +nan nan nan +3454.0 +nan nan nan +nan nan nan +3455.0 +nan nan nan +nan nan nan +3456.0 +nan nan nan +nan nan nan +3457.0 +nan nan nan +nan nan nan +3458.0 +nan nan nan +nan nan nan +3459.0 +nan nan nan +nan nan nan +3460.0 +nan nan nan +nan nan nan +3461.0 +nan nan nan +nan nan nan +3462.0 +nan nan nan +nan nan nan +3463.0 +nan nan nan +nan nan nan +3464.0 +nan nan nan +nan nan nan +3465.0 +nan nan nan +nan nan nan +3466.0 +nan nan nan +nan nan nan +3467.0 +nan nan nan +nan nan nan +3468.0 +nan nan nan +nan nan nan +3469.0 +nan nan nan +nan nan nan +3470.0 +nan nan nan +nan nan nan +3471.0 +nan nan nan +nan nan nan +3472.0 +nan nan nan +nan nan nan +3473.0 +nan nan nan +nan nan nan +3474.0 +nan nan nan +nan nan nan +3475.0 +nan nan nan +nan nan nan +3476.0 +nan nan nan +nan nan nan +3477.0 +nan nan nan +nan nan nan +3478.0 +nan nan nan +nan nan nan +3479.0 +nan nan nan +nan nan nan +3480.0 +nan nan nan +nan nan nan +3481.0 +nan nan nan +nan nan nan +3482.0 +nan nan nan +nan nan nan +3483.0 +nan nan nan +nan nan nan +3484.0 +nan nan nan +nan nan nan +3485.0 +nan nan nan +nan nan nan +3486.0 +nan nan nan +nan nan nan +3487.0 +nan nan nan +nan nan nan +3488.0 +nan nan nan +nan nan nan +3489.0 +nan nan nan +nan nan nan +3490.0 +nan nan nan +nan nan nan +3491.0 +nan nan nan +nan nan nan +3492.0 +nan nan nan +nan nan nan +3493.0 +nan nan nan +nan nan nan +3494.0 +nan nan nan +nan nan nan +3495.0 +nan nan nan +nan nan nan +3496.0 +nan nan nan +nan nan nan +3497.0 +nan nan nan +nan nan nan +3498.0 +nan nan nan +nan nan nan +3499.0 +nan nan nan +nan nan nan +3500.0 +nan nan nan +nan nan nan +3501.0 +nan nan nan +nan nan nan +3502.0 +nan nan nan +nan nan nan +3503.0 +nan nan nan +nan nan nan +3504.0 +nan nan nan +nan nan nan +3505.0 +nan nan nan +nan nan nan +3506.0 +nan nan nan +nan nan nan +3507.0 +nan nan nan +nan nan nan +3508.0 +nan nan nan +nan nan nan +3509.0 +nan nan nan +nan nan nan +3510.0 +nan nan nan +nan nan nan +3511.0 +nan nan nan +nan nan nan +3512.0 +nan nan nan +nan nan nan +3513.0 +nan nan nan +nan nan nan +3514.0 +nan nan nan +nan nan nan +3515.0 +nan nan nan +nan nan nan +3516.0 +nan nan nan +nan nan nan +3517.0 +nan nan nan +nan nan nan +3518.0 +nan nan nan +nan nan nan +3519.0 +nan nan nan +nan nan nan +3520.0 +nan nan nan +nan nan nan +3521.0 +nan nan nan +nan nan nan +3522.0 +nan nan nan +nan nan nan +3523.0 +nan nan nan +nan nan nan +3524.0 +nan nan nan +nan nan nan +3525.0 +nan nan nan +nan nan nan +3526.0 +nan nan nan +nan nan nan +3527.0 +nan nan nan +nan nan nan +3528.0 +nan nan nan +nan nan nan +3529.0 +nan nan nan +nan nan nan +3530.0 +nan nan nan +nan nan nan +3531.0 +nan nan nan +nan nan nan +3532.0 +nan nan nan +nan nan nan +3533.0 +nan nan nan +nan nan nan +3535.0 +nan nan nan +nan nan nan +3536.0 +nan nan nan +nan nan nan +3537.0 +nan nan nan +nan nan nan +3538.0 +nan nan nan +nan nan nan +3539.0 +nan nan nan +nan nan nan +3540.0 +nan nan nan +nan nan nan +3541.0 +nan nan nan +nan nan nan +3542.0 +nan nan nan +nan nan nan +3543.0 +nan nan nan +nan nan nan +3544.0 +nan nan nan +nan nan nan +3545.0 +nan nan nan +nan nan nan +3546.0 +nan nan nan +nan nan nan +3547.0 +nan nan nan +nan nan nan +3548.0 +nan nan nan +nan nan nan +3549.0 +nan nan nan +nan nan nan +3550.0 +nan nan nan +nan nan nan +3551.0 +nan nan nan +nan nan nan +3552.0 +nan nan nan +nan nan nan +3553.0 +nan nan nan +nan nan nan +3554.0 +nan nan nan +nan nan nan +3555.0 +nan nan nan +nan nan nan +3556.0 +nan nan nan +nan nan nan +3557.0 +nan nan nan +nan nan nan +3558.0 +nan nan nan +nan nan nan +3559.0 +nan nan nan +nan nan nan +3560.0 +nan nan nan +nan nan nan +3561.0 +nan nan nan +nan nan nan +3562.0 +nan nan nan +nan nan nan +3563.0 +nan nan nan +nan nan nan +3564.0 +nan nan nan +nan nan nan +3565.0 +nan nan nan +nan nan nan +3566.0 +nan nan nan +nan nan nan +3567.0 +nan nan nan +nan nan nan +3568.0 +nan nan nan +nan nan nan +3569.0 +nan nan nan +nan nan nan +3570.0 +nan nan nan +nan nan nan +3571.0 +nan nan nan +nan nan nan +3572.0 +nan nan nan +nan nan nan +3573.0 +nan nan nan +nan nan nan +3574.0 +nan nan nan +nan nan nan +3575.0 +nan nan nan +nan nan nan +3576.0 +nan nan nan +nan nan nan +3577.0 +nan nan nan +nan nan nan +3578.0 +nan nan nan +nan nan nan +3579.0 +nan nan nan +nan nan nan +3580.0 +nan nan nan +nan nan nan +3581.0 +nan nan nan +nan nan nan +3582.0 +nan nan nan +nan nan nan +3583.0 +nan nan nan +nan nan nan +3584.0 +nan nan nan +nan nan nan +3585.0 +nan nan nan +nan nan nan +3586.0 +nan nan nan +nan nan nan +3587.0 +nan nan nan +nan nan nan +3588.0 +nan nan nan +nan nan nan +3589.0 +nan nan nan +nan nan nan +3590.0 +nan nan nan +nan nan nan +3591.0 +nan nan nan +nan nan nan +3592.0 +nan nan nan +nan nan nan +3593.0 +nan nan nan +nan nan nan +3594.0 +nan nan nan +nan nan nan +3595.0 +nan nan nan +nan nan nan +3596.0 +nan nan nan +nan nan nan +3597.0 +nan nan nan +nan nan nan +3598.0 +nan nan nan +nan nan nan +3599.0 +nan nan nan +nan nan nan +3600.0 +nan nan nan +nan nan nan +3601.0 +nan nan nan +nan nan nan +3602.0 +nan nan nan +nan nan nan +3603.0 +nan nan nan +nan nan nan +3604.0 +nan nan nan +nan nan nan +3605.0 +nan nan nan +nan nan nan +3606.0 +nan nan nan +nan nan nan +3607.0 +nan nan nan +nan nan nan +3608.0 +nan nan nan +nan nan nan +3609.0 +nan nan nan +nan nan nan +3610.0 +nan nan nan +nan nan nan +3611.0 +nan nan nan +nan nan nan +3612.0 +nan nan nan +nan nan nan +3613.0 +nan nan nan +nan nan nan +3614.0 +nan nan nan +nan nan nan +3615.0 +nan nan nan +nan nan nan +3616.0 +nan nan nan +nan nan nan +3617.0 +nan nan nan +nan nan nan +3618.0 +nan nan nan +nan nan nan +3619.0 +nan nan nan +nan nan nan +3620.0 +nan nan nan +nan nan nan +3621.0 +nan nan nan +nan nan nan +3622.0 +nan nan nan +nan nan nan +3623.0 +nan nan nan +nan nan nan +3624.0 +nan nan nan +nan nan nan +3625.0 +nan nan nan +nan nan nan +3626.0 +nan nan nan +nan nan nan +3627.0 +nan nan nan +nan nan nan +3628.0 +nan nan nan +nan nan nan +3629.0 +nan nan nan +nan nan nan +3630.0 +nan nan nan +nan nan nan +3631.0 +nan nan nan +nan nan nan +3632.0 +nan nan nan +nan nan nan +3633.0 +nan nan nan +nan nan nan +3634.0 +nan nan nan +nan nan nan +3635.0 +nan nan nan +nan nan nan +3636.0 +nan nan nan +nan nan nan +3637.0 +nan nan nan +nan nan nan +3638.0 +nan nan nan +nan nan nan +3639.0 +nan nan nan +nan nan nan +3640.0 +nan nan nan +nan nan nan +3641.0 +nan nan nan +nan nan nan +3642.0 +nan nan nan +nan nan nan +3643.0 +nan nan nan +nan nan nan +3644.0 +nan nan nan +nan nan nan +3645.0 +nan nan nan +nan nan nan +3646.0 +nan nan nan +nan nan nan +3647.0 +nan nan nan +nan nan nan +3648.0 +nan nan nan +nan nan nan +3649.0 +nan nan nan +nan nan nan +3650.0 +nan nan nan +nan nan nan +3651.0 +nan nan nan +nan nan nan +3652.0 +nan nan nan +nan nan nan +3653.0 +nan nan nan +nan nan nan +3654.0 +nan nan nan +nan nan nan +3655.0 +nan nan nan +nan nan nan +3656.0 +nan nan nan +nan nan nan +3657.0 +nan nan nan +nan nan nan +3658.0 +nan nan nan +nan nan nan +3659.0 +nan nan nan +nan nan nan +3660.0 +nan nan nan +nan nan nan +3661.0 +nan nan nan +nan nan nan +3662.0 +nan nan nan +nan nan nan +3663.0 +nan nan nan +nan nan nan +3664.0 +nan nan nan +nan nan nan +3665.0 +nan nan nan +nan nan nan +3666.0 +nan nan nan +nan nan nan +3667.0 +nan nan nan +nan nan nan +3668.0 +nan nan nan +nan nan nan +3669.0 +nan nan nan +nan nan nan +3670.0 +nan nan nan +nan nan nan +3671.0 +nan nan nan +nan nan nan +3672.0 +nan nan nan +nan nan nan +3673.0 +nan nan nan +nan nan nan +3674.0 +nan nan nan +nan nan nan +3675.0 +nan nan nan +nan nan nan +3676.0 +nan nan nan +nan nan nan +3677.0 +nan nan nan +nan nan nan +3678.0 +nan nan nan +nan nan nan +3679.0 +nan nan nan +nan nan nan +3680.0 +nan nan nan +nan nan nan +3681.0 +nan nan nan +nan nan nan +3682.0 +nan nan nan +nan nan nan +3683.0 +nan nan nan +nan nan nan +3684.0 +nan nan nan +nan nan nan +3685.0 +nan nan nan +nan nan nan +3686.0 +nan nan nan +nan nan nan +3687.0 +nan nan nan +nan nan nan +3688.0 +nan nan nan +nan nan nan +3689.0 +nan nan nan +nan nan nan +3690.0 +nan nan nan +nan nan nan +3691.0 +nan nan nan +nan nan nan +3692.0 +nan nan nan +nan nan nan +3693.0 +nan nan nan +nan nan nan +3694.0 +nan nan nan +nan nan nan +3695.0 +nan nan nan +nan nan nan +3696.0 +nan nan nan +nan nan nan +3697.0 +nan nan nan +nan nan nan +3698.0 +nan nan nan +nan nan nan +3699.0 +nan nan nan +nan nan nan +3700.0 +nan nan nan +nan nan nan +3701.0 +nan nan nan +nan nan nan +3702.0 +nan nan nan +nan nan nan +3703.0 +nan nan nan +nan nan nan +3704.0 +nan nan nan +nan nan nan +3705.0 +nan nan nan +nan nan nan +3706.0 +nan nan nan +nan nan nan +3707.0 +nan nan nan +nan nan nan +3708.0 +nan nan nan +nan nan nan +3709.0 +nan nan nan +nan nan nan +3710.0 +nan nan nan +nan nan nan +3711.0 +nan nan nan +nan nan nan +3712.0 +nan nan nan +nan nan nan +3713.0 +nan nan nan +nan nan nan +3714.0 +nan nan nan +nan nan nan +3715.0 +nan nan nan +nan nan nan +3716.0 +nan nan nan +nan nan nan +3717.0 +nan nan nan +nan nan nan +3718.0 +nan nan nan +nan nan nan +3719.0 +nan nan nan +nan nan nan +3720.0 +nan nan nan +nan nan nan +3721.0 +nan nan nan +nan nan nan +3722.0 +nan nan nan +nan nan nan +3723.0 +nan nan nan +nan nan nan +3724.0 +nan nan nan +nan nan nan +3725.0 +nan nan nan +nan nan nan +3726.0 +nan nan nan +nan nan nan +3727.0 +nan nan nan +nan nan nan +3728.0 +nan nan nan +nan nan nan +3729.0 +nan nan nan +nan nan nan +3730.0 +nan nan nan +nan nan nan +3731.0 +nan nan nan +nan nan nan +3732.0 +nan nan nan +nan nan nan +3733.0 +nan nan nan +nan nan nan +3734.0 +nan nan nan +nan nan nan +3735.0 +nan nan nan +nan nan nan +3736.0 +nan nan nan +nan nan nan +3737.0 +nan nan nan +nan nan nan +3738.0 +nan nan nan +nan nan nan +3739.0 +nan nan nan +nan nan nan +3740.0 +nan nan nan +nan nan nan +3741.0 +nan nan nan +nan nan nan +3742.0 +nan nan nan +nan nan nan +3743.0 +nan nan nan +nan nan nan +3744.0 +nan nan nan +nan nan nan +3745.0 +nan nan nan +nan nan nan +3746.0 +nan nan nan +nan nan nan +3747.0 +nan nan nan +nan nan nan +3748.0 +nan nan nan +nan nan nan +3749.0 +nan nan nan +nan nan nan +3750.0 +nan nan nan +nan nan nan +3751.0 +nan nan nan +nan nan nan +3752.0 +nan nan nan +nan nan nan +3753.0 +nan nan nan +nan nan nan +3754.0 +nan nan nan +nan nan nan +3755.0 +nan nan nan +nan nan nan +3756.0 +nan nan nan +nan nan nan +3757.0 +nan nan nan +nan nan nan +3758.0 +nan nan nan +nan nan nan +3759.0 +nan nan nan +nan nan nan +3760.0 +nan nan nan +nan nan nan +3761.0 +nan nan nan +nan nan nan +3762.0 +nan nan nan +nan nan nan +3763.0 +nan nan nan +nan nan nan +3764.0 +nan nan nan +nan nan nan +3765.0 +nan nan nan +nan nan nan +3766.0 +nan nan nan +nan nan nan +3768.0 +nan nan nan +nan nan nan +3769.0 +nan nan nan +nan nan nan +3770.0 +nan nan nan +nan nan nan +3771.0 +nan nan nan +nan nan nan +3772.0 +nan nan nan +nan nan nan +3773.0 +nan nan nan +nan nan nan +3774.0 +nan nan nan +nan nan nan +3775.0 +nan nan nan +nan nan nan +3776.0 +nan nan nan +nan nan nan +3777.0 +nan nan nan +nan nan nan +3778.0 +nan nan nan +nan nan nan +3779.0 +nan nan nan +nan nan nan +3780.0 +nan nan nan +nan nan nan +3781.0 +nan nan nan +nan nan nan +3782.0 +nan nan nan +nan nan nan +3783.0 +nan nan nan +nan nan nan +3784.0 +nan nan nan +nan nan nan +3785.0 +nan nan nan +nan nan nan +3786.0 +nan nan nan +nan nan nan +3787.0 +nan nan nan +nan nan nan +3788.0 +nan nan nan +nan nan nan +3789.0 +nan nan nan +nan nan nan +3790.0 +nan nan nan +nan nan nan +3791.0 +nan nan nan +nan nan nan +3792.0 +nan nan nan +nan nan nan +3793.0 +nan nan nan +nan nan nan +3794.0 +nan nan nan +nan nan nan +3795.0 +nan nan nan +nan nan nan +3796.0 +nan nan nan +nan nan nan +3797.0 +nan nan nan +nan nan nan +3798.0 +nan nan nan +nan nan nan +3799.0 +nan nan nan +nan nan nan +3800.0 +nan nan nan +nan nan nan +3801.0 +nan nan nan +nan nan nan +3802.0 +nan nan nan +nan nan nan +3803.0 +nan nan nan +nan nan nan +3804.0 +nan nan nan +nan nan nan +3805.0 +nan nan nan +nan nan nan +3806.0 +nan nan nan +nan nan nan +3807.0 +nan nan nan +nan nan nan +3808.0 +nan nan nan +nan nan nan +3809.0 +nan nan nan +nan nan nan +3810.0 +nan nan nan +nan nan nan +3811.0 +nan nan nan +nan nan nan +3812.0 +nan nan nan +nan nan nan +3813.0 +nan nan nan +nan nan nan +3814.0 +nan nan nan +nan nan nan +3815.0 +nan nan nan +nan nan nan +3816.0 +nan nan nan +nan nan nan +3817.0 +nan nan nan +nan nan nan +3818.0 +nan nan nan +nan nan nan +3819.0 +nan nan nan +nan nan nan +3820.0 +nan nan nan +nan nan nan +3821.0 +nan nan nan +nan nan nan +3822.0 +nan nan nan +nan nan nan +3823.0 +nan nan nan +nan nan nan +3824.0 +nan nan nan +nan nan nan +3825.0 +nan nan nan +nan nan nan +3826.0 +nan nan nan +nan nan nan +3827.0 +nan nan nan +nan nan nan +3828.0 +nan nan nan +nan nan nan +3829.0 +nan nan nan +nan nan nan +3830.0 +nan nan nan +nan nan nan +3831.0 +nan nan nan +nan nan nan +3832.0 +nan nan nan +nan nan nan +3833.0 +nan nan nan +nan nan nan +3834.0 +nan nan nan +nan nan nan +3835.0 +nan nan nan +nan nan nan +3836.0 +nan nan nan +nan nan nan +3837.0 +nan nan nan +nan nan nan +3838.0 +nan nan nan +nan nan nan +3839.0 +nan nan nan +nan nan nan +3840.0 +nan nan nan +nan nan nan +3841.0 +nan nan nan +nan nan nan +3842.0 +nan nan nan +nan nan nan +3843.0 +nan nan nan +nan nan nan +3844.0 +nan nan nan +nan nan nan +3845.0 +nan nan nan +nan nan nan +3846.0 +nan nan nan +nan nan nan +3847.0 +nan nan nan +nan nan nan +3848.0 +nan nan nan +nan nan nan +3849.0 +nan nan nan +nan nan nan +3850.0 +nan nan nan +nan nan nan +3851.0 +nan nan nan +nan nan nan +3852.0 +nan nan nan +nan nan nan +3853.0 +nan nan nan +nan nan nan +3854.0 +nan nan nan +nan nan nan +3855.0 +nan nan nan +nan nan nan +3856.0 +nan nan nan +nan nan nan +3857.0 +nan nan nan +nan nan nan +3858.0 +nan nan nan +nan nan nan +3859.0 +nan nan nan +nan nan nan +3860.0 +nan nan nan +nan nan nan +3861.0 +nan nan nan +nan nan nan +3862.0 +nan nan nan +nan nan nan +3863.0 +nan nan nan +nan nan nan +3864.0 +nan nan nan +nan nan nan +3865.0 +nan nan nan +nan nan nan +3866.0 +nan nan nan +nan nan nan +3867.0 +nan nan nan +nan nan nan +3868.0 +nan nan nan +nan nan nan +3869.0 +nan nan nan +nan nan nan +3870.0 +nan nan nan +nan nan nan +3871.0 +nan nan nan +nan nan nan +3872.0 +nan nan nan +nan nan nan +3873.0 +nan nan nan +nan nan nan +3874.0 +nan nan nan +nan nan nan +3875.0 +nan nan nan +nan nan nan +3876.0 +nan nan nan +nan nan nan +3877.0 +nan nan nan +nan nan nan +3878.0 +nan nan nan +nan nan nan +3879.0 +nan nan nan +nan nan nan +3880.0 +nan nan nan +nan nan nan +3881.0 +nan nan nan +nan nan nan +3882.0 +nan nan nan +nan nan nan +3883.0 +nan nan nan +nan nan nan +3884.0 +nan nan nan +nan nan nan +3885.0 +nan nan nan +nan nan nan +3886.0 +nan nan nan +nan nan nan +3887.0 +nan nan nan +nan nan nan +3888.0 +nan nan nan +nan nan nan +3889.0 +nan nan nan +nan nan nan +3890.0 +nan nan nan +nan nan nan +3891.0 +nan nan nan +nan nan nan +3892.0 +nan nan nan +nan nan nan +3893.0 +nan nan nan +nan nan nan +3894.0 +nan nan nan +nan nan nan +3895.0 +nan nan nan +nan nan nan +3896.0 +nan nan nan +nan nan nan +3897.0 +nan nan nan +nan nan nan +3898.0 +nan nan nan +nan nan nan +3899.0 +nan nan nan +nan nan nan +3900.0 +nan nan nan +nan nan nan +3901.0 +nan nan nan +nan nan nan +3902.0 +nan nan nan +nan nan nan +3903.0 +nan nan nan +nan nan nan +3904.0 +nan nan nan +nan nan nan +3905.0 +nan nan nan +nan nan nan +3906.0 +nan nan nan +nan nan nan +3907.0 +nan nan nan +nan nan nan +3908.0 +nan nan nan +nan nan nan +3909.0 +nan nan nan +nan nan nan +3910.0 +nan nan nan +nan nan nan +3911.0 +nan nan nan +nan nan nan +3912.0 +nan nan nan +nan nan nan +3913.0 +nan nan nan +nan nan nan +3914.0 +nan nan nan +nan nan nan +3915.0 +nan nan nan +nan nan nan +3916.0 +nan nan nan +nan nan nan +3917.0 +nan nan nan +nan nan nan +3918.0 +nan nan nan +nan nan nan +3919.0 +nan nan nan +nan nan nan +3920.0 +nan nan nan +nan nan nan +3921.0 +nan nan nan +nan nan nan +3922.0 +nan nan nan +nan nan nan +3923.0 +nan nan nan +nan nan nan +3924.0 +nan nan nan +nan nan nan +3925.0 +nan nan nan +nan nan nan +3926.0 +nan nan nan +nan nan nan +3927.0 +nan nan nan +nan nan nan +3928.0 +nan nan nan +nan nan nan +3929.0 +nan nan nan +nan nan nan +3930.0 +nan nan nan +nan nan nan +3931.0 +nan nan nan +nan nan nan +3932.0 +nan nan nan +nan nan nan +3933.0 +nan nan nan +nan nan nan +3934.0 +nan nan nan +nan nan nan +3935.0 +nan nan nan +nan nan nan +3936.0 +nan nan nan +nan nan nan +3937.0 +nan nan nan +nan nan nan +3938.0 +nan nan nan +nan nan nan +3939.0 +nan nan nan +nan nan nan +3940.0 +nan nan nan +nan nan nan +3941.0 +nan nan nan +nan nan nan +3942.0 +nan nan nan +nan nan nan +3943.0 +nan nan nan +nan nan nan +3944.0 +nan nan nan +nan nan nan +3945.0 +nan nan nan +nan nan nan +3946.0 +nan nan nan +nan nan nan +3947.0 +nan nan nan +nan nan nan +3948.0 +nan nan nan +nan nan nan +3949.0 +nan nan nan +nan nan nan +3950.0 +nan nan nan +nan nan nan +3951.0 +nan nan nan +nan nan nan +3952.0 +nan nan nan +nan nan nan +3953.0 +nan nan nan +nan nan nan +3954.0 +nan nan nan +nan nan nan +3955.0 +nan nan nan +nan nan nan +3956.0 +nan nan nan +nan nan nan +3957.0 +nan nan nan +nan nan nan +3958.0 +nan nan nan +nan nan nan +3959.0 +nan nan nan +nan nan nan +3960.0 +nan nan nan +nan nan nan +3961.0 +nan nan nan +nan nan nan +3962.0 +nan nan nan +nan nan nan +3963.0 +nan nan nan +nan nan nan +3964.0 +nan nan nan +nan nan nan +3965.0 +nan nan nan +nan nan nan +3966.0 +nan nan nan +nan nan nan +3967.0 +nan nan nan +nan nan nan +3968.0 +nan nan nan +nan nan nan +3969.0 +nan nan nan +nan nan nan +3970.0 +nan nan nan +nan nan nan +3971.0 +nan nan nan +nan nan nan +3972.0 +nan nan nan +nan nan nan +3973.0 +nan nan nan +nan nan nan +3974.0 +nan nan nan +nan nan nan +3975.0 +nan nan nan +nan nan nan +3976.0 +nan nan nan +nan nan nan +3977.0 +nan nan nan +nan nan nan +3978.0 +nan nan nan +nan nan nan +3979.0 +nan nan nan +nan nan nan +3980.0 +nan nan nan +nan nan nan +3981.0 +nan nan nan +nan nan nan +3982.0 +nan nan nan +nan nan nan +3983.0 +nan nan nan +nan nan nan +3984.0 +nan nan nan +nan nan nan +3985.0 +nan nan nan +nan nan nan +3986.0 +nan nan nan +nan nan nan +3987.0 +nan nan nan +nan nan nan +3988.0 +nan nan nan +nan nan nan +3989.0 +nan nan nan +nan nan nan +3990.0 +nan nan nan +nan nan nan +3991.0 +nan nan nan +nan nan nan +3992.0 +nan nan nan +nan nan nan +3993.0 +nan nan nan +nan nan nan +3994.0 +nan nan nan +nan nan nan +3995.0 +nan nan nan +nan nan nan +3996.0 +nan nan nan +nan nan nan +3997.0 +nan nan nan +nan nan nan +3998.0 +nan nan nan +nan nan nan +3999.0 +nan nan nan +nan nan nan +4000.0 +nan nan nan +nan nan nan +4001.0 +nan nan nan +nan nan nan +4002.0 +nan nan nan +nan nan nan +4003.0 +nan nan nan +nan nan nan +4004.0 +nan nan nan +nan nan nan +4005.0 +nan nan nan +nan nan nan +4006.0 +nan nan nan +nan nan nan +4007.0 +nan nan nan +nan nan nan +4008.0 +nan nan nan +nan nan nan +4009.0 +nan nan nan +nan nan nan +4010.0 +nan nan nan +nan nan nan +4011.0 +nan nan nan +nan nan nan +4012.0 +nan nan nan +nan nan nan +4013.0 +nan nan nan +nan nan nan +4014.0 +nan nan nan +nan nan nan +4015.0 +nan nan nan +nan nan nan +4016.0 +nan nan nan +nan nan nan +4017.0 +nan nan nan +nan nan nan +4018.0 +nan nan nan +nan nan nan +4019.0 +nan nan nan +nan nan nan +4020.0 +nan nan nan +nan nan nan +4021.0 +nan nan nan +nan nan nan +4022.0 +nan nan nan +nan nan nan +4023.0 +nan nan nan +nan nan nan +4024.0 +nan nan nan +nan nan nan +4025.0 +nan nan nan +nan nan nan +4026.0 +nan nan nan +nan nan nan +4027.0 +nan nan nan +nan nan nan +4028.0 +nan nan nan +nan nan nan +4029.0 +nan nan nan +nan nan nan +4030.0 +nan nan nan +nan nan nan +4031.0 +nan nan nan +nan nan nan +4032.0 +nan nan nan +nan nan nan +4033.0 +nan nan nan +nan nan nan +4034.0 +nan nan nan +nan nan nan +4035.0 +nan nan nan +nan nan nan +4036.0 +nan nan nan +nan nan nan +4037.0 +nan nan nan +nan nan nan +4038.0 +nan nan nan +nan nan nan +4039.0 +nan nan nan +nan nan nan +4040.0 +nan nan nan +nan nan nan +4041.0 +nan nan nan +nan nan nan +4042.0 +nan nan nan +nan nan nan +4043.0 +nan nan nan +nan nan nan +4044.0 +nan nan nan +nan nan nan +4045.0 +nan nan nan +nan nan nan +4046.0 +nan nan nan +nan nan nan +4047.0 +nan nan nan +nan nan nan +4048.0 +nan nan nan +nan nan nan +4049.0 +nan nan nan +nan nan nan +4050.0 +nan nan nan +nan nan nan +4051.0 +nan nan nan +nan nan nan +4052.0 +nan nan nan +nan nan nan +4053.0 +nan nan nan +nan nan nan +4054.0 +nan nan nan +nan nan nan +4055.0 +nan nan nan +nan nan nan +4056.0 +nan nan nan +nan nan nan +4057.0 +nan nan nan +nan nan nan +4058.0 +nan nan nan +nan nan nan +4059.0 +nan nan nan +nan nan nan +4060.0 +nan nan nan +nan nan nan +4061.0 +nan nan nan +nan nan nan +4062.0 +nan nan nan +nan nan nan +4063.0 +nan nan nan +nan nan nan +4064.0 +nan nan nan +nan nan nan +4065.0 +nan nan nan +nan nan nan +4066.0 +nan nan nan +nan nan nan +4067.0 +nan nan nan +nan nan nan +4068.0 +nan nan nan +nan nan nan +4069.0 +nan nan nan +nan nan nan +4070.0 +nan nan nan +nan nan nan +4071.0 +nan nan nan +nan nan nan +4072.0 +nan nan nan +nan nan nan +4073.0 +nan nan nan +nan nan nan +4074.0 +nan nan nan +nan nan nan +4075.0 +nan nan nan +nan nan nan +4076.0 +nan nan nan +nan nan nan +4077.0 +nan nan nan +nan nan nan +4078.0 +nan nan nan +nan nan nan +4079.0 +nan nan nan +nan nan nan +4080.0 +nan nan nan +nan nan nan +4081.0 +nan nan nan +nan nan nan +4082.0 +nan nan nan +nan nan nan +4083.0 +nan nan nan +nan nan nan +4084.0 +nan nan nan +nan nan nan +4085.0 +nan nan nan +nan nan nan +4086.0 +nan nan nan +nan nan nan +4087.0 +nan nan nan +nan nan nan +4088.0 +nan nan nan +nan nan nan +4089.0 +nan nan nan +nan nan nan +4090.0 +nan nan nan +nan nan nan +4091.0 +nan nan nan +nan nan nan +4092.0 +nan nan nan +nan nan nan +4093.0 +nan nan nan +nan nan nan +4094.0 +nan nan nan +nan nan nan +4095.0 +nan nan nan +nan nan nan +4096.0 +nan nan nan +nan nan nan +4097.0 +nan nan nan +nan nan nan +4098.0 +nan nan nan +nan nan nan +4099.0 +nan nan nan +nan nan nan +4100.0 +nan nan nan +nan nan nan +4101.0 +nan nan nan +nan nan nan +4102.0 +nan nan nan +nan nan nan +4103.0 +nan nan nan +nan nan nan +4104.0 +nan nan nan +nan nan nan +4105.0 +nan nan nan +nan nan nan +4106.0 +nan nan nan +nan nan nan +4107.0 +nan nan nan +nan nan nan +4108.0 +nan nan nan +nan nan nan +4109.0 +nan nan nan +nan nan nan +4110.0 +nan nan nan +nan nan nan +4111.0 +nan nan nan +nan nan nan +4112.0 +nan nan nan +nan nan nan +4113.0 +nan nan nan +nan nan nan +4114.0 +nan nan nan +nan nan nan +4115.0 +nan nan nan +nan nan nan +4116.0 +nan nan nan +nan nan nan +4117.0 +nan nan nan +nan nan nan +4118.0 +nan nan nan +nan nan nan +4119.0 +nan nan nan +nan nan nan +4120.0 +nan nan nan +nan nan nan +4121.0 +nan nan nan +nan nan nan +4122.0 +nan nan nan +nan nan nan +4123.0 +nan nan nan +nan nan nan +4124.0 +nan nan nan +nan nan nan +4125.0 +nan nan nan +nan nan nan +4126.0 +nan nan nan +nan nan nan +4127.0 +nan nan nan +nan nan nan +4128.0 +nan nan nan +nan nan nan +4129.0 +nan nan nan +nan nan nan +4130.0 +nan nan nan +nan nan nan +4131.0 +nan nan nan +nan nan nan +4132.0 +nan nan nan +nan nan nan +4133.0 +nan nan nan +nan nan nan +4134.0 +nan nan nan +nan nan nan +4135.0 +nan nan nan +nan nan nan +4136.0 +nan nan nan +nan nan nan +4137.0 +nan nan nan +nan nan nan +4138.0 +nan nan nan +nan nan nan +4139.0 +nan nan nan +nan nan nan +4140.0 +nan nan nan +nan nan nan +4141.0 +nan nan nan +nan nan nan +4142.0 +nan nan nan +nan nan nan +4143.0 +nan nan nan +nan nan nan +4144.0 +nan nan nan +nan nan nan +4145.0 +nan nan nan +nan nan nan +4146.0 +nan nan nan +nan nan nan +4147.0 +nan nan nan +nan nan nan +4148.0 +nan nan nan +nan nan nan +4149.0 +nan nan nan +nan nan nan +4150.0 +nan nan nan +nan nan nan +4151.0 +nan nan nan +nan nan nan +4152.0 +nan nan nan +nan nan nan +4153.0 +nan nan nan +nan nan nan +4154.0 +nan nan nan +nan nan nan +4155.0 +nan nan nan +nan nan nan +4156.0 +nan nan nan +nan nan nan +4157.0 +nan nan nan +nan nan nan +4158.0 +nan nan nan +nan nan nan +4159.0 +nan nan nan +nan nan nan +4160.0 +nan nan nan +nan nan nan +4161.0 +nan nan nan +nan nan nan +4162.0 +nan nan nan +nan nan nan +4163.0 +nan nan nan +nan nan nan +4164.0 +nan nan nan +nan nan nan +4165.0 +nan nan nan +nan nan nan +4166.0 +nan nan nan +nan nan nan +4167.0 +nan nan nan +nan nan nan +4168.0 +nan nan nan +nan nan nan +4169.0 +nan nan nan +nan nan nan +4170.0 +nan nan nan +nan nan nan +4171.0 +nan nan nan +nan nan nan +4172.0 +nan nan nan +nan nan nan +4173.0 +nan nan nan +nan nan nan +4174.0 +nan nan nan +nan nan nan +4175.0 +nan nan nan +nan nan nan +4176.0 +nan nan nan +nan nan nan +4177.0 +nan nan nan +nan nan nan +4178.0 +nan nan nan +nan nan nan +4179.0 +nan nan nan +nan nan nan +4180.0 +nan nan nan +nan nan nan +4181.0 +nan nan nan +nan nan nan +4182.0 +nan nan nan +nan nan nan +4183.0 +nan nan nan +nan nan nan +4184.0 +nan nan nan +nan nan nan +4185.0 +nan nan nan +nan nan nan +4186.0 +nan nan nan +nan nan nan +4187.0 +nan nan nan +nan nan nan +4188.0 +nan nan nan +nan nan nan +4189.0 +nan nan nan +nan nan nan +4190.0 +nan nan nan +nan nan nan +4191.0 +nan nan nan +nan nan nan +4192.0 +nan nan nan +nan nan nan +4193.0 +nan nan nan +nan nan nan +4194.0 +nan nan nan +nan nan nan +4195.0 +nan nan nan +nan nan nan +4196.0 +nan nan nan +nan nan nan +4197.0 +nan nan nan +nan nan nan +4198.0 +nan nan nan +nan nan nan +4199.0 +nan nan nan +nan nan nan +4200.0 +nan nan nan +nan nan nan +4201.0 +nan nan nan +nan nan nan +4202.0 +nan nan nan +nan nan nan +4203.0 +nan nan nan +nan nan nan +4204.0 +nan nan nan +nan nan nan +4205.0 +nan nan nan +nan nan nan +4206.0 +nan nan nan +nan nan nan +4207.0 +nan nan nan +nan nan nan +4208.0 +nan nan nan +nan nan nan +4209.0 +nan nan nan +nan nan nan +4210.0 +nan nan nan +nan nan nan +4211.0 +nan nan nan +nan nan nan +4212.0 +nan nan nan +nan nan nan +4213.0 +nan nan nan +nan nan nan +4214.0 +nan nan nan +nan nan nan +4215.0 +nan nan nan +nan nan nan +4216.0 +nan nan nan +nan nan nan +4217.0 +nan nan nan +nan nan nan +4218.0 +nan nan nan +nan nan nan +4219.0 +nan nan nan +nan nan nan +4220.0 +nan nan nan +nan nan nan +4221.0 +nan nan nan +nan nan nan +4222.0 +nan nan nan +nan nan nan +4223.0 +nan nan nan +nan nan nan +4224.0 +nan nan nan +nan nan nan +4225.0 +nan nan nan +nan nan nan +4226.0 +nan nan nan +nan nan nan +4227.0 +nan nan nan +nan nan nan +4228.0 +nan nan nan +nan nan nan +4229.0 +nan nan nan +nan nan nan +4230.0 +nan nan nan +nan nan nan +4231.0 +nan nan nan +nan nan nan +4232.0 +nan nan nan +nan nan nan +4233.0 +nan nan nan +nan nan nan +4234.0 +nan nan nan +nan nan nan +4235.0 +nan nan nan +nan nan nan +4236.0 +nan nan nan +nan nan nan +4237.0 +nan nan nan +nan nan nan +4238.0 +nan nan nan +nan nan nan +4239.0 +nan nan nan +nan nan nan +4240.0 +nan nan nan +nan nan nan +4241.0 +nan nan nan +nan nan nan +4242.0 +nan nan nan +nan nan nan +4243.0 +nan nan nan +nan nan nan +4244.0 +nan nan nan +nan nan nan +4245.0 +nan nan nan +nan nan nan +4246.0 +nan nan nan +nan nan nan +4247.0 +nan nan nan +nan nan nan +4248.0 +nan nan nan +nan nan nan +4249.0 +nan nan nan +nan nan nan +4250.0 +nan nan nan +nan nan nan +4251.0 +nan nan nan +nan nan nan +4252.0 +nan nan nan +nan nan nan +4253.0 +nan nan nan +nan nan nan +4254.0 +nan nan nan +nan nan nan +4255.0 +nan nan nan +nan nan nan +4257.0 +nan nan nan +nan nan nan +4258.0 +nan nan nan +nan nan nan +4259.0 +nan nan nan +nan nan nan +4260.0 +nan nan nan +nan nan nan +4261.0 +nan nan nan +nan nan nan +4262.0 +nan nan nan +nan nan nan +4263.0 +nan nan nan +nan nan nan +4264.0 +nan nan nan +nan nan nan +4265.0 +nan nan nan +nan nan nan +4266.0 +nan nan nan +nan nan nan +4267.0 +nan nan nan +nan nan nan +4268.0 +nan nan nan +nan nan nan +4269.0 +nan nan nan +nan nan nan +4270.0 +nan nan nan +nan nan nan +4271.0 +nan nan nan +nan nan nan +4272.0 +nan nan nan +nan nan nan +4273.0 +nan nan nan +nan nan nan +4274.0 +nan nan nan +nan nan nan +4275.0 +nan nan nan +nan nan nan +4276.0 +nan nan nan +nan nan nan +4277.0 +nan nan nan +nan nan nan +4278.0 +nan nan nan +nan nan nan +4279.0 +nan nan nan +nan nan nan +4280.0 +nan nan nan +nan nan nan +4281.0 +nan nan nan +nan nan nan +4282.0 +nan nan nan +nan nan nan +4283.0 +nan nan nan +nan nan nan +4284.0 +nan nan nan +nan nan nan +4285.0 +nan nan nan +nan nan nan +4286.0 +nan nan nan +nan nan nan +4287.0 +nan nan nan +nan nan nan +4288.0 +nan nan nan +nan nan nan +4289.0 +nan nan nan +nan nan nan +4290.0 +nan nan nan +nan nan nan +4291.0 +nan nan nan +nan nan nan +4292.0 +nan nan nan +nan nan nan +4293.0 +nan nan nan +nan nan nan +4294.0 +nan nan nan +nan nan nan +4295.0 +nan nan nan +nan nan nan +4296.0 +nan nan nan +nan nan nan +4297.0 +nan nan nan +nan nan nan +4298.0 +nan nan nan +nan nan nan +4299.0 +nan nan nan +nan nan nan +4300.0 +nan nan nan +nan nan nan +4301.0 +nan nan nan +nan nan nan +4302.0 +nan nan nan +nan nan nan +4303.0 +nan nan nan +nan nan nan +4304.0 +nan nan nan +nan nan nan +4305.0 +nan nan nan +nan nan nan +4306.0 +nan nan nan +nan nan nan +4307.0 +nan nan nan +nan nan nan +4308.0 +nan nan nan +nan nan nan +4309.0 +nan nan nan +nan nan nan +4310.0 +nan nan nan +nan nan nan +4311.0 +nan nan nan +nan nan nan +4312.0 +nan nan nan +nan nan nan +4313.0 +nan nan nan +nan nan nan +4314.0 +nan nan nan +nan nan nan +4315.0 +nan nan nan +nan nan nan +4316.0 +nan nan nan +nan nan nan +4317.0 +nan nan nan +nan nan nan +4318.0 +nan nan nan +nan nan nan +4319.0 +nan nan nan +nan nan nan +4320.0 +nan nan nan +nan nan nan +4321.0 +nan nan nan +nan nan nan +4322.0 +nan nan nan +nan nan nan +4323.0 +nan nan nan +nan nan nan +4324.0 +nan nan nan +nan nan nan +4325.0 +nan nan nan +nan nan nan +4326.0 +nan nan nan +nan nan nan +4327.0 +nan nan nan +nan nan nan +4328.0 +nan nan nan +nan nan nan +4329.0 +nan nan nan +nan nan nan +4330.0 +nan nan nan +nan nan nan +4331.0 +nan nan nan +nan nan nan +4332.0 +nan nan nan +nan nan nan +4333.0 +nan nan nan +nan nan nan +4334.0 +nan nan nan +nan nan nan +4335.0 +nan nan nan +nan nan nan +4336.0 +nan nan nan +nan nan nan +4337.0 +nan nan nan +nan nan nan +4338.0 +nan nan nan +nan nan nan +4339.0 +nan nan nan +nan nan nan +4340.0 +nan nan nan +nan nan nan +4341.0 +nan nan nan +nan nan nan +4342.0 +nan nan nan +nan nan nan +4343.0 +nan nan nan +nan nan nan +4344.0 +nan nan nan +nan nan nan +4345.0 +nan nan nan +nan nan nan +4346.0 +nan nan nan +nan nan nan +4347.0 +nan nan nan +nan nan nan +4348.0 +nan nan nan +nan nan nan +4349.0 +nan nan nan +nan nan nan +4350.0 +nan nan nan +nan nan nan +4351.0 +nan nan nan +nan nan nan +4352.0 +nan nan nan +nan nan nan +4353.0 +nan nan nan +nan nan nan +4354.0 +nan nan nan +nan nan nan +4355.0 +nan nan nan +nan nan nan +4356.0 +nan nan nan +nan nan nan +4357.0 +nan nan nan +nan nan nan +4358.0 +nan nan nan +nan nan nan +4359.0 +nan nan nan +nan nan nan +4360.0 +nan nan nan +nan nan nan +4361.0 +nan nan nan +nan nan nan +4362.0 +nan nan nan +nan nan nan +4363.0 +nan nan nan +nan nan nan +4364.0 +nan nan nan +nan nan nan +4365.0 +nan nan nan +nan nan nan +4366.0 +nan nan nan +nan nan nan +4367.0 +nan nan nan +nan nan nan +4368.0 +nan nan nan +nan nan nan +4369.0 +nan nan nan +nan nan nan +4370.0 +nan nan nan +nan nan nan +4371.0 +nan nan nan +nan nan nan +4372.0 +nan nan nan +nan nan nan +4373.0 +nan nan nan +nan nan nan +4374.0 +nan nan nan +nan nan nan +4375.0 +nan nan nan +nan nan nan +4376.0 +nan nan nan +nan nan nan +4377.0 +nan nan nan +nan nan nan +4378.0 +nan nan nan +nan nan nan +4379.0 +nan nan nan +nan nan nan +4380.0 +nan nan nan +nan nan nan +4381.0 +nan nan nan +nan nan nan +4382.0 +nan nan nan +nan nan nan +4383.0 +nan nan nan +nan nan nan +4384.0 +nan nan nan +nan nan nan +4385.0 +nan nan nan +nan nan nan +4386.0 +nan nan nan +nan nan nan +4387.0 +nan nan nan +nan nan nan +4388.0 +nan nan nan +nan nan nan +4389.0 +nan nan nan +nan nan nan +4390.0 +nan nan nan +nan nan nan +4391.0 +nan nan nan +nan nan nan +4392.0 +nan nan nan +nan nan nan +4393.0 +nan nan nan +nan nan nan +4394.0 +nan nan nan +nan nan nan +4395.0 +nan nan nan +nan nan nan +4396.0 +nan nan nan +nan nan nan +4397.0 +nan nan nan +nan nan nan +4398.0 +nan nan nan +nan nan nan +4399.0 +nan nan nan +nan nan nan +4400.0 +nan nan nan +nan nan nan +4401.0 +nan nan nan +nan nan nan +4402.0 +nan nan nan +nan nan nan +4403.0 +nan nan nan +nan nan nan +4404.0 +nan nan nan +nan nan nan +4405.0 +nan nan nan +nan nan nan +4406.0 +nan nan nan +nan nan nan +4407.0 +nan nan nan +nan nan nan +4408.0 +nan nan nan +nan nan nan +4409.0 +nan nan nan +nan nan nan +4410.0 +nan nan nan +nan nan nan +4411.0 +nan nan nan +nan nan nan +4412.0 +nan nan nan +nan nan nan +4413.0 +nan nan nan +nan nan nan +4414.0 +nan nan nan +nan nan nan +4415.0 +nan nan nan +nan nan nan +4416.0 +nan nan nan +nan nan nan +4417.0 +nan nan nan +nan nan nan +4418.0 +nan nan nan +nan nan nan +4419.0 +nan nan nan +nan nan nan +4420.0 +nan nan nan +nan nan nan +4421.0 +nan nan nan +nan nan nan +4422.0 +nan nan nan +nan nan nan +4423.0 +nan nan nan +nan nan nan +4424.0 +nan nan nan +nan nan nan +4425.0 +nan nan nan +nan nan nan +4426.0 +nan nan nan +nan nan nan +4427.0 +nan nan nan +nan nan nan +4428.0 +nan nan nan +nan nan nan +4429.0 +nan nan nan +nan nan nan +4430.0 +nan nan nan +nan nan nan +4431.0 +nan nan nan +nan nan nan +4432.0 +nan nan nan +nan nan nan +4433.0 +nan nan nan +nan nan nan +4434.0 +nan nan nan +nan nan nan +4435.0 +nan nan nan +nan nan nan +4436.0 +nan nan nan +nan nan nan +4437.0 +nan nan nan +nan nan nan +4438.0 +nan nan nan +nan nan nan +4439.0 +nan nan nan +nan nan nan +4440.0 +nan nan nan +nan nan nan +4441.0 +nan nan nan +nan nan nan +4442.0 +nan nan nan +nan nan nan +4443.0 +nan nan nan +nan nan nan +4444.0 +nan nan nan +nan nan nan +4445.0 +nan nan nan +nan nan nan +4446.0 +nan nan nan +nan nan nan +4447.0 +nan nan nan +nan nan nan +4448.0 +nan nan nan +nan nan nan +4449.0 +nan nan nan +nan nan nan +4450.0 +nan nan nan +nan nan nan +4451.0 +nan nan nan +nan nan nan +4452.0 +nan nan nan +nan nan nan +4453.0 +nan nan nan +nan nan nan +4454.0 +nan nan nan +nan nan nan +4455.0 +nan nan nan +nan nan nan +4456.0 +nan nan nan +nan nan nan +4457.0 +nan nan nan +nan nan nan +4458.0 +nan nan nan +nan nan nan +4459.0 +nan nan nan +nan nan nan +4460.0 +nan nan nan +nan nan nan +4461.0 +nan nan nan +nan nan nan +4462.0 +nan nan nan +nan nan nan +4463.0 +nan nan nan +nan nan nan +4464.0 +nan nan nan +nan nan nan +4465.0 +nan nan nan +nan nan nan +4466.0 +nan nan nan +nan nan nan +4467.0 +nan nan nan +nan nan nan +4468.0 +nan nan nan +nan nan nan +4469.0 +nan nan nan +nan nan nan +4470.0 +nan nan nan +nan nan nan +4471.0 +nan nan nan +nan nan nan +4472.0 +nan nan nan +nan nan nan +4473.0 +nan nan nan +nan nan nan +4474.0 +nan nan nan +nan nan nan +4475.0 +nan nan nan +nan nan nan +4476.0 +nan nan nan +nan nan nan +4477.0 +nan nan nan +nan nan nan +4478.0 +nan nan nan +nan nan nan +4479.0 +nan nan nan +nan nan nan +4480.0 +nan nan nan +nan nan nan +4481.0 +nan nan nan +nan nan nan +4482.0 +nan nan nan +nan nan nan +4483.0 +nan nan nan +nan nan nan +4484.0 +nan nan nan +nan nan nan +4485.0 +nan nan nan +nan nan nan +4486.0 +nan nan nan +nan nan nan +4487.0 +nan nan nan +nan nan nan +4488.0 +nan nan nan +nan nan nan +4489.0 +nan nan nan +nan nan nan +4490.0 +nan nan nan +nan nan nan +4491.0 +nan nan nan +nan nan nan +4492.0 +nan nan nan +nan nan nan +4493.0 +nan nan nan +nan nan nan +4494.0 +nan nan nan +nan nan nan +4495.0 +nan nan nan +nan nan nan +4496.0 +nan nan nan +nan nan nan +4497.0 +nan nan nan +nan nan nan +4498.0 +nan nan nan +nan nan nan +4499.0 +nan nan nan +nan nan nan +4500.0 +nan nan nan +nan nan nan +4501.0 +nan nan nan +nan nan nan +4502.0 +nan nan nan +nan nan nan +4503.0 +nan nan nan +nan nan nan +4504.0 +nan nan nan +nan nan nan +4505.0 +nan nan nan +nan nan nan +4506.0 +nan nan nan +nan nan nan +4507.0 +nan nan nan +nan nan nan +4508.0 +nan nan nan +nan nan nan +4509.0 +nan nan nan +nan nan nan +4510.0 +nan nan nan +nan nan nan +4511.0 +nan nan nan +nan nan nan +4512.0 +nan nan nan +nan nan nan +4513.0 +nan nan nan +nan nan nan +4514.0 +nan nan nan +nan nan nan +4515.0 +nan nan nan +nan nan nan +4516.0 +nan nan nan +nan nan nan +4517.0 +nan nan nan +nan nan nan +4518.0 +nan nan nan +nan nan nan +4519.0 +nan nan nan +nan nan nan +4520.0 +nan nan nan +nan nan nan +4521.0 +nan nan nan +nan nan nan +4522.0 +nan nan nan +nan nan nan +4523.0 +nan nan nan +nan nan nan +4524.0 +nan nan nan +nan nan nan +4525.0 +nan nan nan +nan nan nan +4526.0 +nan nan nan +nan nan nan +4527.0 +nan nan nan +nan nan nan +4528.0 +nan nan nan +nan nan nan +4529.0 +nan nan nan +nan nan nan +4530.0 +nan nan nan +nan nan nan +4531.0 +nan nan nan +nan nan nan +4532.0 +nan nan nan +nan nan nan +4533.0 +nan nan nan +nan nan nan +4534.0 +nan nan nan +nan nan nan +4535.0 +nan nan nan +nan nan nan +4536.0 +nan nan nan +nan nan nan +4537.0 +nan nan nan +nan nan nan +4538.0 +nan nan nan +nan nan nan +4539.0 +nan nan nan +nan nan nan +4540.0 +nan nan nan +nan nan nan +4541.0 +nan nan nan +nan nan nan +4542.0 +nan nan nan +nan nan nan +4543.0 +nan nan nan +nan nan nan +4544.0 +nan nan nan +nan nan nan +4545.0 +nan nan nan +nan nan nan +4546.0 +nan nan nan +nan nan nan +4547.0 +nan nan nan +nan nan nan +4548.0 +nan nan nan +nan nan nan +4549.0 +nan nan nan +nan nan nan +4550.0 +nan nan nan +nan nan nan +4551.0 +nan nan nan +nan nan nan +4552.0 +nan nan nan +nan nan nan +4553.0 +nan nan nan +nan nan nan +4554.0 +nan nan nan +nan nan nan +4555.0 +nan nan nan +nan nan nan +4556.0 +nan nan nan +nan nan nan +4557.0 +nan nan nan +nan nan nan +4558.0 +nan nan nan +nan nan nan +4559.0 +nan nan nan +nan nan nan +4560.0 +nan nan nan +nan nan nan +4561.0 +nan nan nan +nan nan nan +4562.0 +nan nan nan +nan nan nan +4563.0 +nan nan nan +nan nan nan +4564.0 +nan nan nan +nan nan nan +4565.0 +nan nan nan +nan nan nan +4566.0 +nan nan nan +nan nan nan +4567.0 +nan nan nan +nan nan nan +4568.0 +nan nan nan +nan nan nan +4569.0 +nan nan nan +nan nan nan +4570.0 +nan nan nan +nan nan nan +4571.0 +nan nan nan +nan nan nan +4572.0 +nan nan nan +nan nan nan +4573.0 +nan nan nan +nan nan nan +4574.0 +nan nan nan +nan nan nan +4575.0 +nan nan nan +nan nan nan +4576.0 +nan nan nan +nan nan nan +4577.0 +nan nan nan +nan nan nan +4578.0 +nan nan nan +nan nan nan +4579.0 +nan nan nan +nan nan nan +4580.0 +nan nan nan +nan nan nan +4581.0 +nan nan nan +nan nan nan +4582.0 +nan nan nan +nan nan nan +4583.0 +nan nan nan +nan nan nan +4584.0 +nan nan nan +nan nan nan +4585.0 +nan nan nan +nan nan nan +4586.0 +nan nan nan +nan nan nan +4587.0 +nan nan nan +nan nan nan +4588.0 +nan nan nan +nan nan nan +4589.0 +nan nan nan +nan nan nan +4590.0 +nan nan nan +nan nan nan +4591.0 +nan nan nan +nan nan nan +4592.0 +nan nan nan +nan nan nan +4593.0 +nan nan nan +nan nan nan +4594.0 +nan nan nan +nan nan nan +4595.0 +nan nan nan +nan nan nan +4596.0 +nan nan nan +nan nan nan +4597.0 +nan nan nan +nan nan nan +4598.0 +nan nan nan +nan nan nan +4599.0 +nan nan nan +nan nan nan +4600.0 +nan nan nan +nan nan nan +4601.0 +nan nan nan +nan nan nan +4602.0 +nan nan nan +nan nan nan +4603.0 +nan nan nan +nan nan nan +4604.0 +nan nan nan +nan nan nan +4605.0 +nan nan nan +nan nan nan +4606.0 +nan nan nan +nan nan nan +4607.0 +nan nan nan +nan nan nan +4608.0 +nan nan nan +nan nan nan +4609.0 +nan nan nan +nan nan nan +4610.0 +nan nan nan +nan nan nan +4611.0 +nan nan nan +nan nan nan +4612.0 +nan nan nan +nan nan nan +4613.0 +nan nan nan +nan nan nan +4614.0 +nan nan nan +nan nan nan +4615.0 +nan nan nan +nan nan nan +4616.0 +nan nan nan +nan nan nan +4617.0 +nan nan nan +nan nan nan +4618.0 +nan nan nan +nan nan nan +4619.0 +nan nan nan +nan nan nan +4620.0 +nan nan nan +nan nan nan +4621.0 +nan nan nan +nan nan nan +4622.0 +nan nan nan +nan nan nan +4623.0 +nan nan nan +nan nan nan +4624.0 +nan nan nan +nan nan nan +4625.0 +nan nan nan +nan nan nan +4626.0 +nan nan nan +nan nan nan +4627.0 +nan nan nan +nan nan nan +4628.0 +nan nan nan +nan nan nan +4629.0 +nan nan nan +nan nan nan +4630.0 +nan nan nan +nan nan nan +4631.0 +nan nan nan +nan nan nan +4632.0 +nan nan nan +nan nan nan +4633.0 +nan nan nan +nan nan nan +4634.0 +nan nan nan +nan nan nan +4635.0 +nan nan nan +nan nan nan +4636.0 +nan nan nan +nan nan nan +4637.0 +nan nan nan +nan nan nan +4638.0 +nan nan nan +nan nan nan +4639.0 +nan nan nan +nan nan nan +4640.0 +nan nan nan +nan nan nan +4641.0 +nan nan nan +nan nan nan +4642.0 +nan nan nan +nan nan nan +4643.0 +nan nan nan +nan nan nan +4644.0 +nan nan nan +nan nan nan +4645.0 +nan nan nan +nan nan nan +4646.0 +nan nan nan +nan nan nan +4647.0 +nan nan nan +nan nan nan +4648.0 +nan nan nan +nan nan nan +4649.0 +nan nan nan +nan nan nan +4650.0 +nan nan nan +nan nan nan +4651.0 +nan nan nan +nan nan nan +4652.0 +nan nan nan +nan nan nan +4653.0 +nan nan nan +nan nan nan +4654.0 +nan nan nan +nan nan nan +4655.0 +nan nan nan +nan nan nan +4656.0 +nan nan nan +nan nan nan +4657.0 +nan nan nan +nan nan nan +4658.0 +nan nan nan +nan nan nan +4659.0 +nan nan nan +nan nan nan +4660.0 +nan nan nan +nan nan nan +4661.0 +nan nan nan +nan nan nan +4662.0 +nan nan nan +nan nan nan +4663.0 +nan nan nan +nan nan nan +4664.0 +nan nan nan +nan nan nan +4665.0 +nan nan nan +nan nan nan +4666.0 +nan nan nan +nan nan nan +4667.0 +nan nan nan +nan nan nan +4668.0 +nan nan nan +nan nan nan +4669.0 +nan nan nan +nan nan nan +4670.0 +nan nan nan +nan nan nan +4671.0 +nan nan nan +nan nan nan +4672.0 +nan nan nan +nan nan nan +4673.0 +nan nan nan +nan nan nan +4674.0 +nan nan nan +nan nan nan +4675.0 +nan nan nan +nan nan nan +4676.0 +nan nan nan +nan nan nan +4677.0 +nan nan nan +nan nan nan +4678.0 +nan nan nan +nan nan nan +4679.0 +nan nan nan +nan nan nan +4680.0 +nan nan nan +nan nan nan +4681.0 +nan nan nan +nan nan nan +4682.0 +nan nan nan +nan nan nan +4683.0 +nan nan nan +nan nan nan +4684.0 +nan nan nan +nan nan nan +4685.0 +nan nan nan +nan nan nan +4686.0 +nan nan nan +nan nan nan +4687.0 +nan nan nan +nan nan nan +4688.0 +nan nan nan +nan nan nan +4689.0 +nan nan nan +nan nan nan +4690.0 +nan nan nan +nan nan nan +4691.0 +nan nan nan +nan nan nan +4692.0 +nan nan nan +nan nan nan +4693.0 +nan nan nan +nan nan nan +4694.0 +nan nan nan +nan nan nan +4695.0 +nan nan nan +nan nan nan +4696.0 +nan nan nan +nan nan nan +4697.0 +nan nan nan +nan nan nan +4698.0 +nan nan nan +nan nan nan +4699.0 +nan nan nan +nan nan nan +4700.0 +nan nan nan +nan nan nan +4701.0 +nan nan nan +nan nan nan +4702.0 +nan nan nan +nan nan nan +4703.0 +nan nan nan +nan nan nan +4704.0 +nan nan nan +nan nan nan +4705.0 +nan nan nan +nan nan nan +4706.0 +nan nan nan +nan nan nan +4707.0 +nan nan nan +nan nan nan +4708.0 +nan nan nan +nan nan nan +4709.0 +nan nan nan +nan nan nan +4710.0 +nan nan nan +nan nan nan +4711.0 +nan nan nan +nan nan nan +4712.0 +nan nan nan +nan nan nan +4713.0 +nan nan nan +nan nan nan +4714.0 +nan nan nan +nan nan nan +4715.0 +nan nan nan +nan nan nan +4716.0 +nan nan nan +nan nan nan +4717.0 +nan nan nan +nan nan nan +4718.0 +nan nan nan +nan nan nan +4719.0 +nan nan nan +nan nan nan +4720.0 +nan nan nan +nan nan nan +4721.0 +nan nan nan +nan nan nan +4722.0 +nan nan nan +nan nan nan +4723.0 +nan nan nan +nan nan nan +4724.0 +nan nan nan +nan nan nan +4725.0 +nan nan nan +nan nan nan +4726.0 +nan nan nan +nan nan nan +4727.0 +nan nan nan +nan nan nan +4728.0 +nan nan nan +nan nan nan +4729.0 +nan nan nan +nan nan nan +4730.0 +nan nan nan +nan nan nan +4731.0 +nan nan nan +nan nan nan +4732.0 +nan nan nan +nan nan nan +4733.0 +nan nan nan +nan nan nan +4734.0 +nan nan nan +nan nan nan +4735.0 +nan nan nan +nan nan nan +4736.0 +nan nan nan +nan nan nan +4737.0 +nan nan nan +nan nan nan +4738.0 +nan nan nan +nan nan nan +4739.0 +nan nan nan +nan nan nan +4740.0 +nan nan nan +nan nan nan +4741.0 +nan nan nan +nan nan nan +4742.0 +nan nan nan +nan nan nan +4743.0 +nan nan nan +nan nan nan +4744.0 +nan nan nan +nan nan nan +4745.0 +nan nan nan +nan nan nan +4746.0 +nan nan nan +nan nan nan +4747.0 +nan nan nan +nan nan nan +4748.0 +nan nan nan +nan nan nan +4749.0 +nan nan nan +nan nan nan +4750.0 +nan nan nan +nan nan nan +4751.0 +nan nan nan +nan nan nan +4752.0 +nan nan nan +nan nan nan +4754.0 +nan nan nan +nan nan nan +4755.0 +nan nan nan +nan nan nan +4756.0 +nan nan nan +nan nan nan +4757.0 +nan nan nan +nan nan nan +4758.0 +nan nan nan +nan nan nan +4759.0 +nan nan nan +nan nan nan +4760.0 +nan nan nan +nan nan nan +4761.0 +nan nan nan +nan nan nan +4762.0 +nan nan nan +nan nan nan +4763.0 +nan nan nan +nan nan nan +4764.0 +nan nan nan +nan nan nan +4765.0 +nan nan nan +nan nan nan +4766.0 +nan nan nan +nan nan nan +4767.0 +nan nan nan +nan nan nan +4768.0 +nan nan nan +nan nan nan +4769.0 +nan nan nan +nan nan nan +4770.0 +nan nan nan +nan nan nan +4771.0 +nan nan nan +nan nan nan +4772.0 +nan nan nan +nan nan nan +4773.0 +nan nan nan +nan nan nan +4774.0 +nan nan nan +nan nan nan +4775.0 +nan nan nan +nan nan nan +4776.0 +nan nan nan +nan nan nan +4777.0 +nan nan nan +nan nan nan +4778.0 +nan nan nan +nan nan nan +4779.0 +nan nan nan +nan nan nan +4780.0 +nan nan nan +nan nan nan +4781.0 +nan nan nan +nan nan nan +4782.0 +nan nan nan +nan nan nan +4783.0 +nan nan nan +nan nan nan +4784.0 +nan nan nan +nan nan nan +4785.0 +nan nan nan +nan nan nan +4786.0 +nan nan nan +nan nan nan +4787.0 +nan nan nan +nan nan nan +4788.0 +nan nan nan +nan nan nan +4789.0 +nan nan nan +nan nan nan +4790.0 +nan nan nan +nan nan nan +4791.0 +nan nan nan +nan nan nan +4792.0 +nan nan nan +nan nan nan +4793.0 +nan nan nan +nan nan nan +4794.0 +nan nan nan +nan nan nan +4795.0 +nan nan nan +nan nan nan +4796.0 +nan nan nan +nan nan nan +4797.0 +nan nan nan +nan nan nan +4798.0 +nan nan nan +nan nan nan +4799.0 +nan nan nan +nan nan nan +4800.0 +nan nan nan +nan nan nan +4801.0 +nan nan nan +nan nan nan +4802.0 +nan nan nan +nan nan nan +4803.0 +nan nan nan +nan nan nan +4804.0 +nan nan nan +nan nan nan +4805.0 +nan nan nan +nan nan nan +4806.0 +nan nan nan +nan nan nan +4807.0 +nan nan nan +nan nan nan +4808.0 +nan nan nan +nan nan nan +4809.0 +nan nan nan +nan nan nan +4810.0 +nan nan nan +nan nan nan +4811.0 +nan nan nan +nan nan nan +4812.0 +nan nan nan +nan nan nan +4813.0 +nan nan nan +nan nan nan +4814.0 +nan nan nan +nan nan nan +4815.0 +nan nan nan +nan nan nan +4816.0 +nan nan nan +nan nan nan +4817.0 +nan nan nan +nan nan nan +4818.0 +nan nan nan +nan nan nan +4819.0 +nan nan nan +nan nan nan +4820.0 +nan nan nan +nan nan nan +4821.0 +nan nan nan +nan nan nan +4822.0 +nan nan nan +nan nan nan +4823.0 +nan nan nan +nan nan nan +4824.0 +nan nan nan +nan nan nan +4825.0 +nan nan nan +nan nan nan +4826.0 +nan nan nan +nan nan nan +4827.0 +nan nan nan +nan nan nan +4828.0 +nan nan nan +nan nan nan +4829.0 +nan nan nan +nan nan nan +4830.0 +nan nan nan +nan nan nan +4831.0 +nan nan nan +nan nan nan +4832.0 +nan nan nan +nan nan nan +4833.0 +nan nan nan +nan nan nan +4834.0 +nan nan nan +nan nan nan +4835.0 +nan nan nan +nan nan nan +4836.0 +nan nan nan +nan nan nan +4837.0 +nan nan nan +nan nan nan +4838.0 +nan nan nan +nan nan nan +4839.0 +nan nan nan +nan nan nan +4840.0 +nan nan nan +nan nan nan +4841.0 +nan nan nan +nan nan nan +4842.0 +nan nan nan +nan nan nan +4843.0 +nan nan nan +nan nan nan +4844.0 +nan nan nan +nan nan nan +4845.0 +nan nan nan +nan nan nan +4846.0 +nan nan nan +nan nan nan +4847.0 +nan nan nan +nan nan nan +4848.0 +nan nan nan +nan nan nan +4849.0 +nan nan nan +nan nan nan +4850.0 +nan nan nan +nan nan nan +4851.0 +nan nan nan +nan nan nan +4852.0 +nan nan nan +nan nan nan +4853.0 +nan nan nan +nan nan nan +4854.0 +nan nan nan +nan nan nan +4855.0 +nan nan nan +nan nan nan +4856.0 +nan nan nan +nan nan nan +4857.0 +nan nan nan +nan nan nan +4858.0 +nan nan nan +nan nan nan +4859.0 +nan nan nan +nan nan nan +4860.0 +nan nan nan +nan nan nan +4861.0 +nan nan nan +nan nan nan +4862.0 +nan nan nan +nan nan nan +4863.0 +nan nan nan +nan nan nan +4864.0 +nan nan nan +nan nan nan +4865.0 +nan nan nan +nan nan nan +4866.0 +nan nan nan +nan nan nan +4867.0 +nan nan nan +nan nan nan +4868.0 +nan nan nan +nan nan nan +4869.0 +nan nan nan +nan nan nan +4870.0 +nan nan nan +nan nan nan +4871.0 +nan nan nan +nan nan nan +4872.0 +nan nan nan +nan nan nan +4873.0 +nan nan nan +nan nan nan +4874.0 +nan nan nan +nan nan nan +4875.0 +nan nan nan +nan nan nan +4876.0 +nan nan nan +nan nan nan +4877.0 +nan nan nan +nan nan nan +4878.0 +nan nan nan +nan nan nan +4879.0 +nan nan nan +nan nan nan +4880.0 +nan nan nan +nan nan nan +4881.0 +nan nan nan +nan nan nan +4882.0 +nan nan nan +nan nan nan +4883.0 +nan nan nan +nan nan nan +4884.0 +nan nan nan +nan nan nan +4885.0 +nan nan nan +nan nan nan +4886.0 +nan nan nan +nan nan nan +4887.0 +nan nan nan +nan nan nan +4888.0 +nan nan nan +nan nan nan +4889.0 +nan nan nan +nan nan nan +4890.0 +nan nan nan +nan nan nan +4891.0 +nan nan nan +nan nan nan +4892.0 +nan nan nan +nan nan nan +4893.0 +nan nan nan +nan nan nan +4894.0 +nan nan nan +nan nan nan +4895.0 +nan nan nan +nan nan nan +4896.0 +nan nan nan +nan nan nan +4897.0 +nan nan nan +nan nan nan +4898.0 +nan nan nan +nan nan nan +4899.0 +nan nan nan +nan nan nan +4900.0 +nan nan nan +nan nan nan +4901.0 +nan nan nan +nan nan nan +4902.0 +nan nan nan +nan nan nan +4903.0 +nan nan nan +nan nan nan +4904.0 +nan nan nan +nan nan nan +4905.0 +nan nan nan +nan nan nan +4906.0 +nan nan nan +nan nan nan +4907.0 +nan nan nan +nan nan nan +4908.0 +nan nan nan +nan nan nan +4909.0 +nan nan nan +nan nan nan +4910.0 +nan nan nan +nan nan nan +4911.0 +nan nan nan +nan nan nan +4912.0 +nan nan nan +nan nan nan +4913.0 +nan nan nan +nan nan nan +4914.0 +nan nan nan +nan nan nan +4915.0 +nan nan nan +nan nan nan +4916.0 +nan nan nan +nan nan nan +4917.0 +nan nan nan +nan nan nan +4918.0 +nan nan nan +nan nan nan +4919.0 +nan nan nan +nan nan nan +4920.0 +nan nan nan +nan nan nan +4921.0 +nan nan nan +nan nan nan +4922.0 +nan nan nan +nan nan nan +4923.0 +nan nan nan +nan nan nan +4924.0 +nan nan nan +nan nan nan +4925.0 +nan nan nan +nan nan nan +4926.0 +nan nan nan +nan nan nan +4927.0 +nan nan nan +nan nan nan +4928.0 +nan nan nan +nan nan nan +4929.0 +nan nan nan +nan nan nan +4930.0 +nan nan nan +nan nan nan +4931.0 +nan nan nan +nan nan nan +4932.0 +nan nan nan +nan nan nan +4933.0 +nan nan nan +nan nan nan +4934.0 +nan nan nan +nan nan nan +4935.0 +nan nan nan +nan nan nan +4936.0 +nan nan nan +nan nan nan +4937.0 +nan nan nan +nan nan nan +4938.0 +nan nan nan +nan nan nan +4939.0 +nan nan nan +nan nan nan +4940.0 +nan nan nan +nan nan nan +4941.0 +nan nan nan +nan nan nan +4942.0 +nan nan nan +nan nan nan +4943.0 +nan nan nan +nan nan nan +4944.0 +nan nan nan +nan nan nan +4945.0 +nan nan nan +nan nan nan +4946.0 +nan nan nan +nan nan nan +4947.0 +nan nan nan +nan nan nan +4948.0 +nan nan nan +nan nan nan +4949.0 +nan nan nan +nan nan nan +4950.0 +nan nan nan +nan nan nan +4951.0 +nan nan nan +nan nan nan +4952.0 +nan nan nan +nan nan nan +4953.0 +nan nan nan +nan nan nan +4954.0 +nan nan nan +nan nan nan +4955.0 +nan nan nan +nan nan nan +4956.0 +nan nan nan +nan nan nan +4957.0 +nan nan nan +nan nan nan +4958.0 +nan nan nan +nan nan nan +4959.0 +nan nan nan +nan nan nan +4960.0 +nan nan nan +nan nan nan +4961.0 +nan nan nan +nan nan nan +4962.0 +nan nan nan +nan nan nan +4963.0 +nan nan nan +nan nan nan +4964.0 +nan nan nan +nan nan nan +4965.0 +nan nan nan +nan nan nan +4966.0 +nan nan nan +nan nan nan +4967.0 +nan nan nan +nan nan nan +4968.0 +nan nan nan +nan nan nan +4969.0 +nan nan nan +nan nan nan +4970.0 +nan nan nan +nan nan nan +4971.0 +nan nan nan +nan nan nan +4972.0 +nan nan nan +nan nan nan +4973.0 +nan nan nan +nan nan nan +4974.0 +nan nan nan +nan nan nan +4975.0 +nan nan nan +nan nan nan +4976.0 +nan nan nan +nan nan nan +4977.0 +nan nan nan +nan nan nan +4978.0 +nan nan nan +nan nan nan +4979.0 +nan nan nan +nan nan nan +4980.0 +nan nan nan +nan nan nan +4981.0 +nan nan nan +nan nan nan +4982.0 +nan nan nan +nan nan nan +4983.0 +nan nan nan +nan nan nan +4984.0 +nan nan nan +nan nan nan +4985.0 +nan nan nan +nan nan nan +4986.0 +nan nan nan +nan nan nan +4987.0 +nan nan nan +nan nan nan +4988.0 +nan nan nan +nan nan nan +4989.0 +nan nan nan +nan nan nan +4990.0 +nan nan nan +nan nan nan +4991.0 +nan nan nan +nan nan nan +4992.0 +nan nan nan +nan nan nan +4993.0 +nan nan nan +nan nan nan +4994.0 +nan nan nan +nan nan nan +4995.0 +nan nan nan +nan nan nan +4996.0 +nan nan nan +nan nan nan +4997.0 +nan nan nan +nan nan nan +4998.0 +nan nan nan +nan nan nan +4999.0 +nan nan nan +nan nan nan +5000.0 +nan nan nan +nan nan nan +5001.0 +nan nan nan +nan nan nan +5002.0 +nan nan nan +nan nan nan +5003.0 +nan nan nan +nan nan nan +5004.0 +nan nan nan +nan nan nan +5005.0 +nan nan nan +nan nan nan +5006.0 +nan nan nan +nan nan nan +5007.0 +nan nan nan +nan nan nan +5008.0 +nan nan nan +nan nan nan +5009.0 +nan nan nan +nan nan nan +5011.0 +nan nan nan +nan nan nan +5012.0 +nan nan nan +nan nan nan +5013.0 +nan nan nan +nan nan nan +5014.0 +nan nan nan +nan nan nan +5015.0 +nan nan nan +nan nan nan +5016.0 +nan nan nan +nan nan nan +5017.0 +nan nan nan +nan nan nan +5018.0 +nan nan nan +nan nan nan +5019.0 +nan nan nan +nan nan nan +5020.0 +nan nan nan +nan nan nan +5021.0 +nan nan nan +nan nan nan +5022.0 +nan nan nan +nan nan nan +5023.0 +nan nan nan +nan nan nan +5024.0 +nan nan nan +nan nan nan +5025.0 +nan nan nan +nan nan nan +5026.0 +nan nan nan +nan nan nan +5027.0 +nan nan nan +nan nan nan +5028.0 +nan nan nan +nan nan nan +5029.0 +nan nan nan +nan nan nan +5030.0 +nan nan nan +nan nan nan +5031.0 +nan nan nan +nan nan nan +5032.0 +nan nan nan +nan nan nan +5033.0 +nan nan nan +nan nan nan +5034.0 +nan nan nan +nan nan nan +5035.0 +nan nan nan +nan nan nan +5036.0 +nan nan nan +nan nan nan +5037.0 +nan nan nan +nan nan nan +5038.0 +nan nan nan +nan nan nan +5039.0 +nan nan nan +nan nan nan +5040.0 +nan nan nan +nan nan nan +5041.0 +nan nan nan +nan nan nan +5042.0 +nan nan nan +nan nan nan +5043.0 +nan nan nan +nan nan nan +5044.0 +nan nan nan +nan nan nan +5045.0 +nan nan nan +nan nan nan +5046.0 +nan nan nan +nan nan nan +5047.0 +nan nan nan +nan nan nan +5048.0 +nan nan nan +nan nan nan +5049.0 +nan nan nan +nan nan nan +5050.0 +nan nan nan +nan nan nan +5051.0 +nan nan nan +nan nan nan +5052.0 +nan nan nan +nan nan nan +5053.0 +nan nan nan +nan nan nan +5054.0 +nan nan nan +nan nan nan +5055.0 +nan nan nan +nan nan nan +5056.0 +nan nan nan +nan nan nan +5057.0 +nan nan nan +nan nan nan +5058.0 +nan nan nan +nan nan nan +5059.0 +nan nan nan +nan nan nan +5060.0 +nan nan nan +nan nan nan +5061.0 +nan nan nan +nan nan nan +5062.0 +nan nan nan +nan nan nan +5063.0 +nan nan nan +nan nan nan +5064.0 +nan nan nan +nan nan nan +5065.0 +nan nan nan +nan nan nan +5066.0 +nan nan nan +nan nan nan +5067.0 +nan nan nan +nan nan nan +5068.0 +nan nan nan +nan nan nan +5069.0 +nan nan nan +nan nan nan +5070.0 +nan nan nan +nan nan nan +5071.0 +nan nan nan +nan nan nan +5072.0 +nan nan nan +nan nan nan +5073.0 +nan nan nan +nan nan nan +5074.0 +nan nan nan +nan nan nan +5075.0 +nan nan nan +nan nan nan +5076.0 +nan nan nan +nan nan nan +5077.0 +nan nan nan +nan nan nan +5078.0 +nan nan nan +nan nan nan +5079.0 +nan nan nan +nan nan nan +5080.0 +nan nan nan +nan nan nan +5081.0 +nan nan nan +nan nan nan +5082.0 +nan nan nan +nan nan nan +5083.0 +nan nan nan +nan nan nan +5084.0 +nan nan nan +nan nan nan +5085.0 +nan nan nan +nan nan nan +5086.0 +nan nan nan +nan nan nan +5087.0 +nan nan nan +nan nan nan +5088.0 +nan nan nan +nan nan nan +5089.0 +nan nan nan +nan nan nan +5090.0 +nan nan nan +nan nan nan +5091.0 +nan nan nan +nan nan nan +5092.0 +nan nan nan +nan nan nan +5093.0 +nan nan nan +nan nan nan +5094.0 +nan nan nan +nan nan nan +5095.0 +nan nan nan +nan nan nan +5096.0 +nan nan nan +nan nan nan +5097.0 +nan nan nan +nan nan nan +5098.0 +nan nan nan +nan nan nan +5099.0 +nan nan nan +nan nan nan +5100.0 +nan nan nan +nan nan nan +5101.0 +nan nan nan +nan nan nan +5102.0 +nan nan nan +nan nan nan +5103.0 +nan nan nan +nan nan nan +5104.0 +nan nan nan +nan nan nan +5105.0 +nan nan nan +nan nan nan +5106.0 +nan nan nan +nan nan nan +5107.0 +nan nan nan +nan nan nan +5108.0 +nan nan nan +nan nan nan +5109.0 +nan nan nan +nan nan nan +5110.0 +nan nan nan +nan nan nan +5111.0 +nan nan nan +nan nan nan +5112.0 +nan nan nan +nan nan nan +5113.0 +nan nan nan +nan nan nan +5114.0 +nan nan nan +nan nan nan +5115.0 +nan nan nan +nan nan nan +5116.0 +nan nan nan +nan nan nan +5117.0 +nan nan nan +nan nan nan +5118.0 +nan nan nan +nan nan nan +5119.0 +nan nan nan +nan nan nan +5120.0 +nan nan nan +nan nan nan +5121.0 +nan nan nan +nan nan nan +5122.0 +nan nan nan +nan nan nan +5123.0 +nan nan nan +nan nan nan +5124.0 +nan nan nan +nan nan nan +5125.0 +nan nan nan +nan nan nan +5126.0 +nan nan nan +nan nan nan +5127.0 +nan nan nan +nan nan nan +5128.0 +nan nan nan +nan nan nan +5129.0 +nan nan nan +nan nan nan +5130.0 +nan nan nan +nan nan nan +5131.0 +nan nan nan +nan nan nan +5132.0 +nan nan nan +nan nan nan +5133.0 +nan nan nan +nan nan nan +5134.0 +nan nan nan +nan nan nan +5135.0 +nan nan nan +nan nan nan +5136.0 +nan nan nan +nan nan nan +5137.0 +nan nan nan +nan nan nan +5138.0 +nan nan nan +nan nan nan +5139.0 +nan nan nan +nan nan nan +5140.0 +nan nan nan +nan nan nan +5141.0 +nan nan nan +nan nan nan +5142.0 +nan nan nan +nan nan nan +5143.0 +nan nan nan +nan nan nan +5144.0 +nan nan nan +nan nan nan +5145.0 +nan nan nan +nan nan nan +5146.0 +nan nan nan +nan nan nan +5147.0 +nan nan nan +nan nan nan +5148.0 +nan nan nan +nan nan nan +5149.0 +nan nan nan +nan nan nan +5150.0 +nan nan nan +nan nan nan +5151.0 +nan nan nan +nan nan nan +5152.0 +nan nan nan +nan nan nan +5153.0 +nan nan nan +nan nan nan +5154.0 +nan nan nan +nan nan nan +5155.0 +nan nan nan +nan nan nan +5156.0 +nan nan nan +nan nan nan +5157.0 +nan nan nan +nan nan nan +5158.0 +nan nan nan +nan nan nan +5159.0 +nan nan nan +nan nan nan +5160.0 +nan nan nan +nan nan nan +5161.0 +nan nan nan +nan nan nan +5162.0 +nan nan nan +nan nan nan +5163.0 +nan nan nan +nan nan nan +5164.0 +nan nan nan +nan nan nan +5165.0 +nan nan nan +nan nan nan +5166.0 +nan nan nan +nan nan nan +5167.0 +nan nan nan +nan nan nan +5168.0 +nan nan nan +nan nan nan +5169.0 +nan nan nan +nan nan nan +5170.0 +nan nan nan +nan nan nan +5171.0 +nan nan nan +nan nan nan +5172.0 +nan nan nan +nan nan nan +5173.0 +nan nan nan +nan nan nan +5174.0 +nan nan nan +nan nan nan +5175.0 +nan nan nan +nan nan nan +5176.0 +nan nan nan +nan nan nan +5177.0 +nan nan nan +nan nan nan +5178.0 +nan nan nan +nan nan nan +5179.0 +nan nan nan +nan nan nan +5180.0 +nan nan nan +nan nan nan +5181.0 +nan nan nan +nan nan nan +5182.0 +nan nan nan +nan nan nan +5183.0 +nan nan nan +nan nan nan +5184.0 +nan nan nan +nan nan nan +5185.0 +nan nan nan +nan nan nan +5186.0 +nan nan nan +nan nan nan +5187.0 +nan nan nan +nan nan nan +5188.0 +nan nan nan +nan nan nan +5189.0 +nan nan nan +nan nan nan +5190.0 +nan nan nan +nan nan nan +5191.0 +nan nan nan +nan nan nan +5192.0 +nan nan nan +nan nan nan +5193.0 +nan nan nan +nan nan nan +5194.0 +nan nan nan +nan nan nan +5195.0 +nan nan nan +nan nan nan +5196.0 +nan nan nan +nan nan nan +5197.0 +nan nan nan +nan nan nan +5198.0 +nan nan nan +nan nan nan +5199.0 +nan nan nan +nan nan nan +5200.0 +nan nan nan +nan nan nan +5201.0 +nan nan nan +nan nan nan +5202.0 +nan nan nan +nan nan nan +5203.0 +nan nan nan +nan nan nan +5204.0 +nan nan nan +nan nan nan +5205.0 +nan nan nan +nan nan nan +5206.0 +nan nan nan +nan nan nan +5207.0 +nan nan nan +nan nan nan +5208.0 +nan nan nan +nan nan nan +5209.0 +nan nan nan +nan nan nan +5210.0 +nan nan nan +nan nan nan +5211.0 +nan nan nan +nan nan nan +5212.0 +nan nan nan +nan nan nan +5213.0 +nan nan nan +nan nan nan +5214.0 +nan nan nan +nan nan nan +5215.0 +nan nan nan +nan nan nan +5216.0 +nan nan nan +nan nan nan +5217.0 +nan nan nan +nan nan nan +5218.0 +nan nan nan +nan nan nan +5219.0 +nan nan nan +nan nan nan +5220.0 +nan nan nan +nan nan nan +5221.0 +nan nan nan +nan nan nan +5222.0 +nan nan nan +nan nan nan +5223.0 +nan nan nan +nan nan nan +5224.0 +nan nan nan +nan nan nan +5225.0 +nan nan nan +nan nan nan +5226.0 +nan nan nan +nan nan nan +5227.0 +nan nan nan +nan nan nan +5228.0 +nan nan nan +nan nan nan +5229.0 +nan nan nan +nan nan nan +5230.0 +nan nan nan +nan nan nan +5231.0 +nan nan nan +nan nan nan +5232.0 +nan nan nan +nan nan nan +5233.0 +nan nan nan +nan nan nan +5234.0 +nan nan nan +nan nan nan +5235.0 +nan nan nan +nan nan nan +5236.0 +nan nan nan +nan nan nan +5237.0 +nan nan nan +nan nan nan +5238.0 +nan nan nan +nan nan nan +5239.0 +nan nan nan +nan nan nan +5240.0 +nan nan nan +nan nan nan +5241.0 +nan nan nan +nan nan nan +5242.0 +nan nan nan +nan nan nan +5243.0 +nan nan nan +nan nan nan +5244.0 +nan nan nan +nan nan nan +5245.0 +nan nan nan +nan nan nan +5246.0 +nan nan nan +nan nan nan +5247.0 +nan nan nan +nan nan nan +5248.0 +nan nan nan +nan nan nan +5249.0 +nan nan nan +nan nan nan +5250.0 +nan nan nan +nan nan nan +5251.0 +nan nan nan +nan nan nan +5252.0 +nan nan nan +nan nan nan +5253.0 +nan nan nan +nan nan nan +5254.0 +nan nan nan +nan nan nan +5255.0 +nan nan nan +nan nan nan +5256.0 +nan nan nan +nan nan nan +5257.0 +nan nan nan +nan nan nan +5258.0 +nan nan nan +nan nan nan +5259.0 +nan nan nan +nan nan nan +5260.0 +nan nan nan +nan nan nan +5261.0 +nan nan nan +nan nan nan +5262.0 +nan nan nan +nan nan nan +5263.0 +nan nan nan +nan nan nan +5264.0 +nan nan nan +nan nan nan +5265.0 +nan nan nan +nan nan nan +5266.0 +nan nan nan +nan nan nan +5267.0 +nan nan nan +nan nan nan +5268.0 +nan nan nan +nan nan nan +5269.0 +nan nan nan +nan nan nan +5270.0 +nan nan nan +nan nan nan +5271.0 +nan nan nan +nan nan nan +5272.0 +nan nan nan +nan nan nan +5273.0 +nan nan nan +nan nan nan +5274.0 +nan nan nan +nan nan nan +5275.0 +nan nan nan +nan nan nan +5276.0 +nan nan nan +nan nan nan +5277.0 +nan nan nan +nan nan nan +5278.0 +nan nan nan +nan nan nan +5279.0 +nan nan nan +nan nan nan +5280.0 +nan nan nan +nan nan nan +5281.0 +nan nan nan +nan nan nan +5282.0 +nan nan nan +nan nan nan +5283.0 +nan nan nan +nan nan nan +5284.0 +nan nan nan +nan nan nan +5285.0 +nan nan nan +nan nan nan +5286.0 +nan nan nan +nan nan nan +5287.0 +nan nan nan +nan nan nan +5288.0 +nan nan nan +nan nan nan +5289.0 +nan nan nan +nan nan nan +5290.0 +nan nan nan +nan nan nan +5291.0 +nan nan nan +nan nan nan +5292.0 +nan nan nan +nan nan nan +5293.0 +nan nan nan +nan nan nan +5294.0 +nan nan nan +nan nan nan +5295.0 +nan nan nan +nan nan nan +5296.0 +nan nan nan +nan nan nan +5297.0 +nan nan nan +nan nan nan +5298.0 +nan nan nan +nan nan nan +5299.0 +nan nan nan +nan nan nan +5300.0 +nan nan nan +nan nan nan +5301.0 +nan nan nan +nan nan nan +5302.0 +nan nan nan +nan nan nan +5303.0 +nan nan nan +nan nan nan +5304.0 +nan nan nan +nan nan nan +5305.0 +nan nan nan +nan nan nan +5306.0 +nan nan nan +nan nan nan +5307.0 +nan nan nan +nan nan nan +5308.0 +nan nan nan +nan nan nan +5309.0 +nan nan nan +nan nan nan +5310.0 +nan nan nan +nan nan nan +5311.0 +nan nan nan +nan nan nan +5312.0 +nan nan nan +nan nan nan +5313.0 +nan nan nan +nan nan nan +5314.0 +nan nan nan +nan nan nan +5315.0 +nan nan nan +nan nan nan +5316.0 +nan nan nan +nan nan nan +5317.0 +nan nan nan +nan nan nan +5318.0 +nan nan nan +nan nan nan +5319.0 +nan nan nan +nan nan nan +5320.0 +nan nan nan +nan nan nan +5321.0 +nan nan nan +nan nan nan +5322.0 +nan nan nan +nan nan nan +5323.0 +nan nan nan +nan nan nan +5324.0 +nan nan nan +nan nan nan +5325.0 +nan nan nan +nan nan nan +5326.0 +nan nan nan +nan nan nan +5327.0 +nan nan nan +nan nan nan +5328.0 +nan nan nan +nan nan nan +5329.0 +nan nan nan +nan nan nan +5330.0 +nan nan nan +nan nan nan +5331.0 +nan nan nan +nan nan nan +5332.0 +nan nan nan +nan nan nan +5333.0 +nan nan nan +nan nan nan +5334.0 +nan nan nan +nan nan nan +5335.0 +nan nan nan +nan nan nan +5336.0 +nan nan nan +nan nan nan +5337.0 +nan nan nan +nan nan nan +5338.0 +nan nan nan +nan nan nan +5339.0 +nan nan nan +nan nan nan +5340.0 +nan nan nan +nan nan nan +5341.0 +nan nan nan +nan nan nan +5342.0 +nan nan nan +nan nan nan +5343.0 +nan nan nan +nan nan nan +5344.0 +nan nan nan +nan nan nan +5345.0 +nan nan nan +nan nan nan +5346.0 +nan nan nan +nan nan nan +5347.0 +nan nan nan +nan nan nan +5348.0 +nan nan nan +nan nan nan +5349.0 +nan nan nan +nan nan nan +5350.0 +nan nan nan +nan nan nan +5351.0 +nan nan nan +nan nan nan +5352.0 +nan nan nan +nan nan nan +5353.0 +nan nan nan +nan nan nan +5354.0 +nan nan nan +nan nan nan +5355.0 +nan nan nan +nan nan nan +5356.0 +nan nan nan +nan nan nan +5357.0 +nan nan nan +nan nan nan +5358.0 +nan nan nan +nan nan nan +5359.0 +nan nan nan +nan nan nan +5360.0 +nan nan nan +nan nan nan +5361.0 +nan nan nan +nan nan nan +5362.0 +nan nan nan +nan nan nan +5363.0 +nan nan nan +nan nan nan +5364.0 +nan nan nan +nan nan nan +5365.0 +nan nan nan +nan nan nan +5366.0 +nan nan nan +nan nan nan +5367.0 +nan nan nan +nan nan nan +5368.0 +nan nan nan +nan nan nan +5369.0 +nan nan nan +nan nan nan +5370.0 +nan nan nan +nan nan nan +5371.0 +nan nan nan +nan nan nan +5372.0 +nan nan nan +nan nan nan +5373.0 +nan nan nan +nan nan nan +5374.0 +nan nan nan +nan nan nan +5375.0 +nan nan nan +nan nan nan +5376.0 +nan nan nan +nan nan nan +5377.0 +nan nan nan +nan nan nan +5378.0 +nan nan nan +nan nan nan +5379.0 +nan nan nan +nan nan nan +5380.0 +nan nan nan +nan nan nan +5381.0 +nan nan nan +nan nan nan +5382.0 +nan nan nan +nan nan nan +5383.0 +nan nan nan +nan nan nan +5384.0 +nan nan nan +nan nan nan +5385.0 +nan nan nan +nan nan nan +5386.0 +nan nan nan +nan nan nan +5387.0 +nan nan nan +nan nan nan +5388.0 +nan nan nan +nan nan nan +5389.0 +nan nan nan +nan nan nan +5390.0 +nan nan nan +nan nan nan +5391.0 +nan nan nan +nan nan nan +5392.0 +nan nan nan +nan nan nan +5393.0 +nan nan nan +nan nan nan +5394.0 +nan nan nan +nan nan nan +5395.0 +nan nan nan +nan nan nan +5396.0 +nan nan nan +nan nan nan +5397.0 +nan nan nan +nan nan nan +5398.0 +nan nan nan +nan nan nan +5399.0 +nan nan nan +nan nan nan +5400.0 +nan nan nan +nan nan nan +5401.0 +nan nan nan +nan nan nan +5402.0 +nan nan nan +nan nan nan +5403.0 +nan nan nan +nan nan nan +5404.0 +nan nan nan +nan nan nan +5405.0 +nan nan nan +nan nan nan +5406.0 +nan nan nan +nan nan nan +5407.0 +nan nan nan +nan nan nan +5408.0 +nan nan nan +nan nan nan +5409.0 +nan nan nan +nan nan nan +5410.0 +nan nan nan +nan nan nan +5411.0 +nan nan nan +nan nan nan +5412.0 +nan nan nan +nan nan nan +5413.0 +nan nan nan +nan nan nan +5414.0 +nan nan nan +nan nan nan +5415.0 +nan nan nan +nan nan nan +5416.0 +nan nan nan +nan nan nan +5417.0 +nan nan nan +nan nan nan +5418.0 +nan nan nan +nan nan nan +5419.0 +nan nan nan +nan nan nan +5420.0 +nan nan nan +nan nan nan +5421.0 +nan nan nan +nan nan nan +5422.0 +nan nan nan +nan nan nan +5423.0 +nan nan nan +nan nan nan +5424.0 +nan nan nan +nan nan nan +5425.0 +nan nan nan +nan nan nan +5426.0 +nan nan nan +nan nan nan +5427.0 +nan nan nan +nan nan nan +5428.0 +nan nan nan +nan nan nan +5429.0 +nan nan nan +nan nan nan +5430.0 +nan nan nan +nan nan nan +5431.0 +nan nan nan +nan nan nan +5432.0 +nan nan nan +nan nan nan +5433.0 +nan nan nan +nan nan nan +5434.0 +nan nan nan +nan nan nan +5435.0 +nan nan nan +nan nan nan +5436.0 +nan nan nan +nan nan nan +5437.0 +nan nan nan +nan nan nan +5438.0 +nan nan nan +nan nan nan +5439.0 +nan nan nan +nan nan nan +5440.0 +nan nan nan +nan nan nan +5441.0 +nan nan nan +nan nan nan +5442.0 +nan nan nan +nan nan nan +5443.0 +nan nan nan +nan nan nan +5444.0 +nan nan nan +nan nan nan +5445.0 +nan nan nan +nan nan nan +5446.0 +nan nan nan +nan nan nan +5447.0 +nan nan nan +nan nan nan +5448.0 +nan nan nan +nan nan nan +5449.0 +nan nan nan +nan nan nan +5450.0 +nan nan nan +nan nan nan From 8738f70b503de9ec389cb411f87090bfbc7dae51 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 23:03:28 -0400 Subject: [PATCH 184/315] Updated Clement with new min mass values --- examples/symba_clement_2018/param.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index 3e4688223..849acd9e0 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -33,3 +33,5 @@ ROTATION YES TIDES NO ENERGY YES GR NO +GMTINY 2.96336237e-09 +MIN_GMFRAG 2.96336237e-11 From afa949b0a299efb6ff4f019431410bae2b0c5d95 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 23:08:24 -0400 Subject: [PATCH 185/315] Need to improve the save function so that empty slots don't get saved as test particles with NaN values of everything --- examples/symba_clement_2018/tp.in | 12974 +--------------------------- 1 file changed, 1 insertion(+), 12973 deletions(-) diff --git a/examples/symba_clement_2018/tp.in b/examples/symba_clement_2018/tp.in index e4395ea36..573541ac9 100644 --- a/examples/symba_clement_2018/tp.in +++ b/examples/symba_clement_2018/tp.in @@ -1,12973 +1 @@ -4324 -1107.0 -nan nan nan -nan nan nan -1108.0 -nan nan nan -nan nan nan -1109.0 -nan nan nan -nan nan nan -1110.0 -nan nan nan -nan nan nan -1111.0 -nan nan nan -nan nan nan -1112.0 -nan nan nan -nan nan nan -1113.0 -nan nan nan -nan nan nan -1114.0 -nan nan nan -nan nan nan -1115.0 -nan nan nan -nan nan nan -1116.0 -nan nan nan -nan nan nan -1117.0 -nan nan nan -nan nan nan -1118.0 -nan nan nan -nan nan nan -1119.0 -nan nan nan -nan nan nan -1120.0 -nan nan nan -nan nan nan -1121.0 -nan nan nan -nan nan nan -1122.0 -nan nan nan -nan nan nan -1123.0 -nan nan nan -nan nan nan -1124.0 -nan nan nan -nan nan nan -1125.0 -nan nan nan -nan nan nan -1126.0 -nan nan nan -nan nan nan -1127.0 -nan nan nan -nan nan nan -1128.0 -nan nan nan -nan nan nan -1129.0 -nan nan nan -nan nan nan -1130.0 -nan nan nan -nan nan nan -1131.0 -nan nan nan -nan nan nan -1132.0 -nan nan nan -nan nan nan -1133.0 -nan nan nan -nan nan nan -1134.0 -nan nan nan -nan nan nan -1135.0 -nan nan nan -nan nan nan -1136.0 -nan nan nan -nan nan nan -1137.0 -nan nan nan -nan nan nan -1138.0 -nan nan nan -nan nan nan -1139.0 -nan nan nan -nan nan nan -1140.0 -nan nan nan -nan nan nan -1141.0 -nan nan nan -nan nan nan -1142.0 -nan nan nan -nan nan nan -1143.0 -nan nan nan -nan nan nan -1144.0 -nan nan nan -nan nan nan -1145.0 -nan nan nan -nan nan nan -1146.0 -nan nan nan -nan nan nan -1147.0 -nan nan nan -nan nan nan -1148.0 -nan nan nan -nan nan nan -1149.0 -nan nan nan -nan nan nan -1150.0 -nan nan nan -nan nan nan -1151.0 -nan nan nan -nan nan nan -1152.0 -nan nan nan -nan nan nan -1153.0 -nan nan nan -nan nan nan -1154.0 -nan nan nan -nan nan nan -1155.0 -nan nan nan -nan nan nan -1156.0 -nan nan nan -nan nan nan -1157.0 -nan nan nan -nan nan nan -1158.0 -nan nan nan -nan nan nan -1159.0 -nan nan nan -nan nan nan -1160.0 -nan nan nan -nan nan nan -1161.0 -nan nan nan -nan nan nan -1162.0 -nan nan nan -nan nan nan -1163.0 -nan nan nan -nan nan nan -1164.0 -nan nan nan -nan nan nan -1165.0 -nan nan nan -nan nan nan -1166.0 -nan nan nan -nan nan nan -1167.0 -nan nan nan -nan nan nan -1168.0 -nan nan nan -nan nan nan -1169.0 -nan nan nan -nan nan nan -1170.0 -nan nan nan -nan nan nan -1172.0 -nan nan nan -nan nan nan -1173.0 -nan nan nan -nan nan nan -1174.0 -nan nan nan -nan nan nan -1175.0 -nan nan nan -nan nan nan -1176.0 -nan nan nan -nan nan nan -1177.0 -nan nan nan -nan nan nan -1178.0 -nan nan nan -nan nan nan -1179.0 -nan nan nan -nan nan nan -1180.0 -nan nan nan -nan nan nan -1181.0 -nan nan nan -nan nan nan -1182.0 -nan nan nan -nan nan nan -1183.0 -nan nan nan -nan nan nan -1184.0 -nan nan nan -nan nan nan -1185.0 -nan nan nan -nan nan nan -1186.0 -nan nan nan -nan nan nan -1187.0 -nan nan nan -nan nan nan -1188.0 -nan nan nan -nan nan nan -1189.0 -nan nan nan -nan nan nan -1190.0 -nan nan nan -nan nan nan -1191.0 -nan nan nan -nan nan nan -1192.0 -nan nan nan -nan nan nan -1193.0 -nan nan nan -nan nan nan -1194.0 -nan nan nan -nan nan nan -1195.0 -nan nan nan -nan nan nan -1196.0 -nan nan nan -nan nan nan -1197.0 -nan nan nan -nan nan nan -1198.0 -nan nan nan -nan nan nan -1199.0 -nan nan nan -nan nan nan -1200.0 -nan nan nan -nan nan nan -1201.0 -nan nan nan -nan nan nan -1202.0 -nan nan nan -nan nan nan -1203.0 -nan nan nan -nan nan nan -1204.0 -nan nan nan -nan nan nan -1205.0 -nan nan nan -nan nan nan -1206.0 -nan nan nan -nan nan nan -1207.0 -nan nan nan -nan nan nan -1208.0 -nan nan nan -nan nan nan -1209.0 -nan nan nan -nan nan nan -1210.0 -nan nan nan -nan nan nan -1211.0 -nan nan nan -nan nan nan -1212.0 -nan nan nan -nan nan nan -1213.0 -nan nan nan -nan nan nan -1214.0 -nan nan nan -nan nan nan -1215.0 -nan nan nan -nan nan nan -1216.0 -nan nan nan -nan nan nan -1217.0 -nan nan nan -nan nan nan -1218.0 -nan nan nan -nan nan nan -1219.0 -nan nan nan -nan nan nan -1220.0 -nan nan nan -nan nan nan -1221.0 -nan nan nan -nan nan nan -1222.0 -nan nan nan -nan nan nan -1223.0 -nan nan nan -nan nan nan -1224.0 -nan nan nan -nan nan nan -1225.0 -nan nan nan -nan nan nan -1226.0 -nan nan nan -nan nan nan -1227.0 -nan nan nan -nan nan nan -1228.0 -nan nan nan -nan nan nan -1229.0 -nan nan nan -nan nan nan -1230.0 -nan nan nan -nan nan nan -1231.0 -nan nan nan -nan nan nan -1232.0 -nan nan nan -nan nan nan -1233.0 -nan nan nan -nan nan nan -1234.0 -nan nan nan -nan nan nan -1235.0 -nan nan nan -nan nan nan -1236.0 -nan nan nan -nan nan nan -1237.0 -nan nan nan -nan nan nan -1238.0 -nan nan nan -nan nan nan -1239.0 -nan nan nan -nan nan nan -1240.0 -nan nan nan -nan nan nan -1241.0 -nan nan nan -nan nan nan -1242.0 -nan nan nan -nan nan nan -1243.0 -nan nan nan -nan nan nan -1244.0 -nan nan nan -nan nan nan -1245.0 -nan nan nan -nan nan nan -1246.0 -nan nan nan -nan nan nan -1247.0 -nan nan nan -nan nan nan -1248.0 -nan nan nan -nan nan nan -1249.0 -nan nan nan -nan nan nan -1250.0 -nan nan nan -nan nan nan -1251.0 -nan nan nan -nan nan nan -1252.0 -nan nan nan -nan nan nan -1253.0 -nan nan nan -nan nan nan -1254.0 -nan nan nan -nan nan nan -1255.0 -nan nan nan -nan nan nan -1256.0 -nan nan nan -nan nan nan -1257.0 -nan nan nan -nan nan nan -1258.0 -nan nan nan -nan nan nan -1259.0 -nan nan nan -nan nan nan -1260.0 -nan nan nan -nan nan nan -1261.0 -nan nan nan -nan nan nan -1262.0 -nan nan nan -nan nan nan -1263.0 -nan nan nan -nan nan nan -1264.0 -nan nan nan -nan nan nan -1265.0 -nan nan nan -nan nan nan -1266.0 -nan nan nan -nan nan nan -1267.0 -nan nan nan -nan nan nan -1268.0 -nan nan nan -nan nan nan -1269.0 -nan nan nan -nan nan nan -1270.0 -nan nan nan -nan nan nan -1271.0 -nan nan nan -nan nan nan -1272.0 -nan nan nan -nan nan nan -1273.0 -nan nan nan -nan nan nan -1274.0 -nan nan nan -nan nan nan -1275.0 -nan nan nan -nan nan nan -1276.0 -nan nan nan -nan nan nan -1277.0 -nan nan nan -nan nan nan -1278.0 -nan nan nan -nan nan nan -1279.0 -nan nan nan -nan nan nan -1280.0 -nan nan nan -nan nan nan -1281.0 -nan nan nan -nan nan nan -1282.0 -nan nan nan -nan nan nan -1283.0 -nan nan nan -nan nan nan -1284.0 -nan nan nan -nan nan nan -1285.0 -nan nan nan -nan nan nan -1286.0 -nan nan nan -nan nan nan -1287.0 -nan nan nan -nan nan nan -1289.0 -nan nan nan -nan nan nan -1290.0 -nan nan nan -nan nan nan -1291.0 -nan nan nan -nan nan nan -1292.0 -nan nan nan -nan nan nan -1293.0 -nan nan nan -nan nan nan -1294.0 -nan nan nan -nan nan nan -1295.0 -nan nan nan -nan nan nan -1296.0 -nan nan nan -nan nan nan -1297.0 -nan nan nan -nan nan nan -1298.0 -nan nan nan -nan nan nan -1299.0 -nan nan nan -nan nan nan -1300.0 -nan nan nan -nan nan nan -1301.0 -nan nan nan -nan nan nan -1302.0 -nan nan nan -nan nan nan -1303.0 -nan nan nan -nan nan nan -1304.0 -nan nan nan -nan nan nan -1305.0 -nan nan nan -nan nan nan -1306.0 -nan nan nan -nan nan nan -1307.0 -nan nan nan -nan nan nan -1308.0 -nan nan nan -nan nan nan -1309.0 -nan nan nan -nan nan nan -1310.0 -nan nan nan -nan nan nan -1311.0 -nan nan nan -nan nan nan -1312.0 -nan nan nan -nan nan nan -1313.0 -nan nan nan -nan nan nan -1314.0 -nan nan nan -nan nan nan -1315.0 -nan nan nan -nan nan nan -1316.0 -nan nan nan -nan nan nan -1317.0 -nan nan nan -nan nan nan -1318.0 -nan nan nan -nan nan nan -1319.0 -nan nan nan -nan nan nan -1320.0 -nan nan nan -nan nan nan -1321.0 -nan nan nan -nan nan nan -1322.0 -nan nan nan -nan nan nan -1323.0 -nan nan nan -nan nan nan -1324.0 -nan nan nan -nan nan nan -1325.0 -nan nan nan -nan nan nan -1326.0 -nan nan nan -nan nan nan -1327.0 -nan nan nan -nan nan nan -1328.0 -nan nan nan -nan nan nan -1329.0 -nan nan nan -nan nan nan -1330.0 -nan nan nan -nan nan nan -1331.0 -nan nan nan -nan nan nan -1332.0 -nan nan nan -nan nan nan -1333.0 -nan nan nan -nan nan nan -1334.0 -nan nan nan -nan nan nan -1335.0 -nan nan nan -nan nan nan -1336.0 -nan nan nan -nan nan nan -1337.0 -nan nan nan -nan nan nan -1338.0 -nan nan nan -nan nan nan -1339.0 -nan nan nan -nan nan nan -1340.0 -nan nan nan -nan nan nan -1341.0 -nan nan nan -nan nan nan -1342.0 -nan nan nan -nan nan nan -1343.0 -nan nan nan -nan nan nan -1344.0 -nan nan nan -nan nan nan -1345.0 -nan nan nan -nan nan nan -1346.0 -nan nan nan -nan nan nan -1347.0 -nan nan nan -nan nan nan -1348.0 -nan nan nan -nan nan nan -1349.0 -nan nan nan -nan nan nan -1350.0 -nan nan nan -nan nan nan -1351.0 -nan nan nan -nan nan nan -1352.0 -nan nan nan -nan nan nan -1353.0 -nan nan nan -nan nan nan -1354.0 -nan nan nan -nan nan nan -1355.0 -nan nan nan -nan nan nan -1356.0 -nan nan nan -nan nan nan -1357.0 -nan nan nan -nan nan nan -1358.0 -nan nan nan -nan nan nan -1359.0 -nan nan nan -nan nan nan -1360.0 -nan nan nan -nan nan nan -1361.0 -nan nan nan -nan nan nan -1362.0 -nan nan nan -nan nan nan -1363.0 -nan nan nan -nan nan nan -1364.0 -nan nan nan -nan nan nan -1365.0 -nan nan nan -nan nan nan -1366.0 -nan nan nan -nan nan nan -1367.0 -nan nan nan -nan nan nan -1368.0 -nan nan nan -nan nan nan -1369.0 -nan nan nan -nan nan nan -1370.0 -nan nan nan -nan nan nan -1371.0 -nan nan nan -nan nan nan -1372.0 -nan nan nan -nan nan nan -1373.0 -nan nan nan -nan nan nan -1374.0 -nan nan nan -nan nan nan -1375.0 -nan nan nan -nan nan nan -1376.0 -nan nan nan -nan nan nan -1377.0 -nan nan nan -nan nan nan -1378.0 -nan nan nan -nan nan nan -1379.0 -nan nan nan -nan nan nan -1380.0 -nan nan nan -nan nan nan -1381.0 -nan nan nan -nan nan nan -1382.0 -nan nan nan -nan nan nan -1383.0 -nan nan nan -nan nan nan -1384.0 -nan nan nan -nan nan nan -1385.0 -nan nan nan -nan nan nan -1386.0 -nan nan nan -nan nan nan -1387.0 -nan nan nan -nan nan nan -1388.0 -nan nan nan -nan nan nan -1389.0 -nan nan nan -nan nan nan -1390.0 -nan nan nan -nan nan nan -1391.0 -nan nan nan -nan nan nan -1392.0 -nan nan nan -nan nan nan -1393.0 -nan nan nan -nan nan nan -1394.0 -nan nan nan -nan nan nan -1395.0 -nan nan nan -nan nan nan -1396.0 -nan nan nan -nan nan nan -1397.0 -nan nan nan -nan nan nan -1398.0 -nan nan nan -nan nan nan -1399.0 -nan nan nan -nan nan nan -1400.0 -nan nan nan -nan nan nan -1401.0 -nan nan nan -nan nan nan -1402.0 -nan nan nan -nan nan nan -1403.0 -nan nan nan -nan nan nan -1404.0 -nan nan nan -nan nan nan -1405.0 -nan nan nan -nan nan nan -1406.0 -nan nan nan -nan nan nan -1407.0 -nan nan nan -nan nan nan -1408.0 -nan nan nan -nan nan nan -1409.0 -nan nan nan -nan nan nan -1410.0 -nan nan nan -nan nan nan -1411.0 -nan nan nan -nan nan nan -1412.0 -nan nan nan -nan nan nan -1413.0 -nan nan nan -nan nan nan -1414.0 -nan nan nan -nan nan nan -1415.0 -nan nan nan -nan nan nan -1416.0 -nan nan nan -nan nan nan -1417.0 -nan nan nan -nan nan nan -1418.0 -nan nan nan -nan nan nan -1419.0 -nan nan nan -nan nan nan -1420.0 -nan nan nan -nan nan nan -1421.0 -nan nan nan -nan nan nan -1422.0 -nan nan nan -nan nan nan -1423.0 -nan nan nan -nan nan nan -1424.0 -nan nan nan -nan nan nan -1425.0 -nan nan nan -nan nan nan -1426.0 -nan nan nan -nan nan nan -1427.0 -nan nan nan -nan nan nan -1428.0 -nan nan nan -nan nan nan -1429.0 -nan nan nan -nan nan nan -1430.0 -nan nan nan -nan nan nan -1431.0 -nan nan nan -nan nan nan -1432.0 -nan nan nan -nan nan nan -1433.0 -nan nan nan -nan nan nan -1434.0 -nan nan nan -nan nan nan -1435.0 -nan nan nan -nan nan nan -1436.0 -nan nan nan -nan nan nan -1437.0 -nan nan nan -nan nan nan -1438.0 -nan nan nan -nan nan nan -1439.0 -nan nan nan -nan nan nan -1440.0 -nan nan nan -nan nan nan -1441.0 -nan nan nan -nan nan nan -1442.0 -nan nan nan -nan nan nan -1443.0 -nan nan nan -nan nan nan -1444.0 -nan nan nan -nan nan nan -1445.0 -nan nan nan -nan nan nan -1446.0 -nan nan nan -nan nan nan -1447.0 -nan nan nan -nan nan nan -1448.0 -nan nan nan -nan nan nan -1449.0 -nan nan nan -nan nan nan -1450.0 -nan nan nan -nan nan nan -1451.0 -nan nan nan -nan nan nan -1452.0 -nan nan nan -nan nan nan -1454.0 -nan nan nan -nan nan nan -1455.0 -nan nan nan -nan nan nan -1456.0 -nan nan nan -nan nan nan -1457.0 -nan nan nan -nan nan nan -1458.0 -nan nan nan -nan nan nan -1459.0 -nan nan nan -nan nan nan -1460.0 -nan nan nan -nan nan nan -1461.0 -nan nan nan -nan nan nan -1462.0 -nan nan nan -nan nan nan -1463.0 -nan nan nan -nan nan nan -1464.0 -nan nan nan -nan nan nan -1465.0 -nan nan nan -nan nan nan -1466.0 -nan nan nan -nan nan nan -1467.0 -nan nan nan -nan nan nan -1468.0 -nan nan nan -nan nan nan -1469.0 -nan nan nan -nan nan nan -1470.0 -nan nan nan -nan nan nan -1471.0 -nan nan nan -nan nan nan -1472.0 -nan nan nan -nan nan nan -1473.0 -nan nan nan -nan nan nan -1474.0 -nan nan nan -nan nan nan -1475.0 -nan nan nan -nan nan nan -1476.0 -nan nan nan -nan nan nan -1477.0 -nan nan nan -nan nan nan -1478.0 -nan nan nan -nan nan nan -1479.0 -nan nan nan -nan nan nan -1480.0 -nan nan nan -nan nan nan -1481.0 -nan nan nan -nan nan nan -1482.0 -nan nan nan -nan nan nan -1483.0 -nan nan nan -nan nan nan -1484.0 -nan nan nan -nan nan nan -1485.0 -nan nan nan -nan nan nan -1486.0 -nan nan nan -nan nan nan -1487.0 -nan nan nan -nan nan nan -1488.0 -nan nan nan -nan nan nan -1489.0 -nan nan nan -nan nan nan -1490.0 -nan nan nan -nan nan nan -1491.0 -nan nan nan -nan nan nan -1492.0 -nan nan nan -nan nan nan -1493.0 -nan nan nan -nan nan nan -1494.0 -nan nan nan -nan nan nan -1495.0 -nan nan nan -nan nan nan -1496.0 -nan nan nan -nan nan nan -1497.0 -nan nan nan -nan nan nan -1498.0 -nan nan nan -nan nan nan -1499.0 -nan nan nan -nan nan nan -1500.0 -nan nan nan -nan nan nan -1501.0 -nan nan nan -nan nan nan -1502.0 -nan nan nan -nan nan nan -1503.0 -nan nan nan -nan nan nan -1504.0 -nan nan nan -nan nan nan -1505.0 -nan nan nan -nan nan nan -1506.0 -nan nan nan -nan nan nan -1507.0 -nan nan nan -nan nan nan -1508.0 -nan nan nan -nan nan nan -1509.0 -nan nan nan -nan nan nan -1510.0 -nan nan nan -nan nan nan -1511.0 -nan nan nan -nan nan nan -1512.0 -nan nan nan -nan nan nan -1513.0 -nan nan nan -nan nan nan -1514.0 -nan nan nan -nan nan nan -1515.0 -nan nan nan -nan nan nan -1516.0 -nan nan nan -nan nan nan -1517.0 -nan nan nan -nan nan nan -1518.0 -nan nan nan -nan nan nan -1519.0 -nan nan nan -nan nan nan -1520.0 -nan nan nan -nan nan nan -1521.0 -nan nan nan -nan nan nan -1522.0 -nan nan nan -nan nan nan -1523.0 -nan nan nan -nan nan nan -1524.0 -nan nan nan -nan nan nan -1525.0 -nan nan nan -nan nan nan -1527.0 -nan nan nan -nan nan nan -1528.0 -nan nan nan -nan nan nan -1529.0 -nan nan nan -nan nan nan -1530.0 -nan nan nan -nan nan nan -1531.0 -nan nan nan -nan nan nan -1532.0 -nan nan nan -nan nan nan -1533.0 -nan nan nan -nan nan nan -1534.0 -nan nan nan -nan nan nan -1535.0 -nan nan nan -nan nan nan -1536.0 -nan nan nan -nan nan nan -1537.0 -nan nan nan -nan nan nan -1538.0 -nan nan nan -nan nan nan -1539.0 -nan nan nan -nan nan nan -1540.0 -nan nan nan -nan nan nan -1541.0 -nan nan nan -nan nan nan -1542.0 -nan nan nan -nan nan nan -1543.0 -nan nan nan -nan nan nan -1544.0 -nan nan nan -nan nan nan -1545.0 -nan nan nan -nan nan nan -1546.0 -nan nan nan -nan nan nan -1548.0 -nan nan nan -nan nan nan -1549.0 -nan nan nan -nan nan nan -1550.0 -nan nan nan -nan nan nan -1551.0 -nan nan nan -nan nan nan -1552.0 -nan nan nan -nan nan nan -1553.0 -nan nan nan -nan nan nan -1554.0 -nan nan nan -nan nan nan -1555.0 -nan nan nan -nan nan nan -1556.0 -nan nan nan -nan nan nan -1557.0 -nan nan nan -nan nan nan -1558.0 -nan nan nan -nan nan nan -1559.0 -nan nan nan -nan nan nan -1560.0 -nan nan nan -nan nan nan -1561.0 -nan nan nan -nan nan nan -1562.0 -nan nan nan -nan nan nan -1563.0 -nan nan nan -nan nan nan -1564.0 -nan nan nan -nan nan nan -1565.0 -nan nan nan -nan nan nan -1566.0 -nan nan nan -nan nan nan -1567.0 -nan nan nan -nan nan nan -1568.0 -nan nan nan -nan nan nan -1569.0 -nan nan nan -nan nan nan -1570.0 -nan nan nan -nan nan nan -1571.0 -nan nan nan -nan nan nan -1572.0 -nan nan nan -nan nan nan -1573.0 -nan nan nan -nan nan nan -1574.0 -nan nan nan -nan nan nan -1575.0 -nan nan nan -nan nan nan -1576.0 -nan nan nan -nan nan nan -1577.0 -nan nan nan -nan nan nan -1578.0 -nan nan nan -nan nan nan -1579.0 -nan nan nan -nan nan nan -1580.0 -nan nan nan -nan nan nan -1581.0 -nan nan nan -nan nan nan -1582.0 -nan nan nan -nan nan nan -1583.0 -nan nan nan -nan nan nan -1584.0 -nan nan nan -nan nan nan -1585.0 -nan nan nan -nan nan nan -1586.0 -nan nan nan -nan nan nan -1587.0 -nan nan nan -nan nan nan -1588.0 -nan nan nan -nan nan nan -1589.0 -nan nan nan -nan nan nan -1590.0 -nan nan nan -nan nan nan -1591.0 -nan nan nan -nan nan nan -1592.0 -nan nan nan -nan nan nan -1593.0 -nan nan nan -nan nan nan -1594.0 -nan nan nan -nan nan nan -1595.0 -nan nan nan -nan nan nan -1596.0 -nan nan nan -nan nan nan -1597.0 -nan nan nan -nan nan nan -1598.0 -nan nan nan -nan nan nan -1599.0 -nan nan nan -nan nan nan -1600.0 -nan nan nan -nan nan nan -1601.0 -nan nan nan -nan nan nan -1602.0 -nan nan nan -nan nan nan -1603.0 -nan nan nan -nan nan nan -1604.0 -nan nan nan -nan nan nan -1605.0 -nan nan nan -nan nan nan -1606.0 -nan nan nan -nan nan nan -1607.0 -nan nan nan -nan nan nan -1608.0 -nan nan nan -nan nan nan -1609.0 -nan nan nan -nan nan nan -1610.0 -nan nan nan -nan nan nan -1611.0 -nan nan nan -nan nan nan -1612.0 -nan nan nan -nan nan nan -1613.0 -nan nan nan -nan nan nan -1614.0 -nan nan nan -nan nan nan -1615.0 -nan nan nan -nan nan nan -1616.0 -nan nan nan -nan nan nan -1617.0 -nan nan nan -nan nan nan -1618.0 -nan nan nan -nan nan nan -1619.0 -nan nan nan -nan nan nan -1620.0 -nan nan nan -nan nan nan -1621.0 -nan nan nan -nan nan nan -1622.0 -nan nan nan -nan nan nan -1623.0 -nan nan nan -nan nan nan -1624.0 -nan nan nan -nan nan nan -1625.0 -nan nan nan -nan nan nan -1626.0 -nan nan nan -nan nan nan -1627.0 -nan nan nan -nan nan nan -1628.0 -nan nan nan -nan nan nan -1629.0 -nan nan nan -nan nan nan -1630.0 -nan nan nan -nan nan nan -1631.0 -nan nan nan -nan nan nan -1632.0 -nan nan nan -nan nan nan -1633.0 -nan nan nan -nan nan nan -1634.0 -nan nan nan -nan nan nan -1635.0 -nan nan nan -nan nan nan -1636.0 -nan nan nan -nan nan nan -1637.0 -nan nan nan -nan nan nan -1638.0 -nan nan nan -nan nan nan -1639.0 -nan nan nan -nan nan nan -1641.0 -nan nan nan -nan nan nan -1642.0 -nan nan nan -nan nan nan -1643.0 -nan nan nan -nan nan nan -1644.0 -nan nan nan -nan nan nan -1645.0 -nan nan nan -nan nan nan -1646.0 -nan nan nan -nan nan nan -1647.0 -nan nan nan -nan nan nan -1648.0 -nan nan nan -nan nan nan -1649.0 -nan nan nan -nan nan nan -1650.0 -nan nan nan -nan nan nan -1651.0 -nan nan nan -nan nan nan -1652.0 -nan nan nan -nan nan nan -1653.0 -nan nan nan -nan nan nan -1654.0 -nan nan nan -nan nan nan -1655.0 -nan nan nan -nan nan nan -1656.0 -nan nan nan -nan nan nan -1657.0 -nan nan nan -nan nan nan -1658.0 -nan nan nan -nan nan nan -1659.0 -nan nan nan -nan nan nan -1660.0 -nan nan nan -nan nan nan -1661.0 -nan nan nan -nan nan nan -1662.0 -nan nan nan -nan nan nan -1663.0 -nan nan nan -nan nan nan -1664.0 -nan nan nan -nan nan nan -1665.0 -nan nan nan -nan nan nan -1666.0 -nan nan nan -nan nan nan -1667.0 -nan nan nan -nan nan nan -1668.0 -nan nan nan -nan nan nan -1669.0 -nan nan nan -nan nan nan -1670.0 -nan nan nan -nan nan nan -1671.0 -nan nan nan -nan nan nan -1672.0 -nan nan nan -nan nan nan -1673.0 -nan nan nan -nan nan nan -1674.0 -nan nan nan -nan nan nan -1675.0 -nan nan nan -nan nan nan -1676.0 -nan nan nan -nan nan nan -1677.0 -nan nan nan -nan nan nan -1678.0 -nan nan nan -nan nan nan -1679.0 -nan nan nan -nan nan nan -1680.0 -nan nan nan -nan nan nan -1681.0 -nan nan nan -nan nan nan -1682.0 -nan nan nan -nan nan nan -1683.0 -nan nan nan -nan nan nan -1684.0 -nan nan nan -nan nan nan -1685.0 -nan nan nan -nan nan nan -1686.0 -nan nan nan -nan nan nan -1687.0 -nan nan nan -nan nan nan -1688.0 -nan nan nan -nan nan nan -1689.0 -nan nan nan -nan nan nan -1690.0 -nan nan nan -nan nan nan -1691.0 -nan nan nan -nan nan nan -1692.0 -nan nan nan -nan nan nan -1693.0 -nan nan nan -nan nan nan -1694.0 -nan nan nan -nan nan nan -1695.0 -nan nan nan -nan nan nan -1696.0 -nan nan nan -nan nan nan -1697.0 -nan nan nan -nan nan nan -1698.0 -nan nan nan -nan nan nan -1699.0 -nan nan nan -nan nan nan -1700.0 -nan nan nan -nan nan nan -1701.0 -nan nan nan -nan nan nan -1702.0 -nan nan nan -nan nan nan -1703.0 -nan nan nan -nan nan nan -1704.0 -nan nan nan -nan nan nan -1705.0 -nan nan nan -nan nan nan -1706.0 -nan nan nan -nan nan nan -1707.0 -nan nan nan -nan nan nan -1708.0 -nan nan nan -nan nan nan -1709.0 -nan nan nan -nan nan nan -1710.0 -nan nan nan -nan nan nan -1711.0 -nan nan nan -nan nan nan -1712.0 -nan nan nan -nan nan nan -1713.0 -nan nan nan -nan nan nan -1714.0 -nan nan nan -nan nan nan -1715.0 -nan nan nan -nan nan nan -1716.0 -nan nan nan -nan nan nan -1717.0 -nan nan nan -nan nan nan -1718.0 -nan nan nan -nan nan nan -1719.0 -nan nan nan -nan nan nan -1720.0 -nan nan nan -nan nan nan -1721.0 -nan nan nan -nan nan nan -1722.0 -nan nan nan -nan nan nan -1723.0 -nan nan nan -nan nan nan -1724.0 -nan nan nan -nan nan nan -1725.0 -nan nan nan -nan nan nan -1726.0 -nan nan nan -nan nan nan -1727.0 -nan nan nan -nan nan nan -1728.0 -nan nan nan -nan nan nan -1729.0 -nan nan nan -nan nan nan -1730.0 -nan nan nan -nan nan nan -1731.0 -nan nan nan -nan nan nan -1732.0 -nan nan nan -nan nan nan -1733.0 -nan nan nan -nan nan nan -1734.0 -nan nan nan -nan nan nan -1735.0 -nan nan nan -nan nan nan -1736.0 -nan nan nan -nan nan nan -1737.0 -nan nan nan -nan nan nan -1738.0 -nan nan nan -nan nan nan -1739.0 -nan nan nan -nan nan nan -1740.0 -nan nan nan -nan nan nan -1741.0 -nan nan nan -nan nan nan -1742.0 -nan nan nan -nan nan nan -1743.0 -nan nan nan -nan nan nan -1744.0 -nan nan nan -nan nan nan -1745.0 -nan nan nan -nan nan nan -1746.0 -nan nan nan -nan nan nan -1747.0 -nan nan nan -nan nan nan -1748.0 -nan nan nan -nan nan nan -1749.0 -nan nan nan -nan nan nan -1750.0 -nan nan nan -nan nan nan -1751.0 -nan nan nan -nan nan nan -1752.0 -nan nan nan -nan nan nan -1753.0 -nan nan nan -nan nan nan -1754.0 -nan nan nan -nan nan nan -1755.0 -nan nan nan -nan nan nan -1756.0 -nan nan nan -nan nan nan -1757.0 -nan nan nan -nan nan nan -1758.0 -nan nan nan -nan nan nan -1759.0 -nan nan nan -nan nan nan -1760.0 -nan nan nan -nan nan nan -1761.0 -nan nan nan -nan nan nan -1762.0 -nan nan nan -nan nan nan -1763.0 -nan nan nan -nan nan nan -1764.0 -nan nan nan -nan nan nan -1765.0 -nan nan nan -nan nan nan -1766.0 -nan nan nan -nan nan nan -1767.0 -nan nan nan -nan nan nan -1768.0 -nan nan nan -nan nan nan -1769.0 -nan nan nan -nan nan nan -1770.0 -nan nan nan -nan nan nan -1771.0 -nan nan nan -nan nan nan -1772.0 -nan nan nan -nan nan nan -1773.0 -nan nan nan -nan nan nan -1774.0 -nan nan nan -nan nan nan -1775.0 -nan nan nan -nan nan nan -1776.0 -nan nan nan -nan nan nan -1777.0 -nan nan nan -nan nan nan -1778.0 -nan nan nan -nan nan nan -1779.0 -nan nan nan -nan nan nan -1780.0 -nan nan nan -nan nan nan -1781.0 -nan nan nan -nan nan nan -1782.0 -nan nan nan -nan nan nan -1783.0 -nan nan nan -nan nan nan -1784.0 -nan nan nan -nan nan nan -1785.0 -nan nan nan -nan nan nan -1786.0 -nan nan nan -nan nan nan -1787.0 -nan nan nan -nan nan nan -1788.0 -nan nan nan -nan nan nan -1789.0 -nan nan nan -nan nan nan -1790.0 -nan nan nan -nan nan nan -1791.0 -nan nan nan -nan nan nan -1792.0 -nan nan nan -nan nan nan -1793.0 -nan nan nan -nan nan nan -1794.0 -nan nan nan -nan nan nan -1795.0 -nan nan nan -nan nan nan -1796.0 -nan nan nan -nan nan nan -1797.0 -nan nan nan -nan nan nan -1798.0 -nan nan nan -nan nan nan -1799.0 -nan nan nan -nan nan nan -1800.0 -nan nan nan -nan nan nan -1801.0 -nan nan nan -nan nan nan -1802.0 -nan nan nan -nan nan nan -1803.0 -nan nan nan -nan nan nan -1804.0 -nan nan nan -nan nan nan -1805.0 -nan nan nan -nan nan nan -1806.0 -nan nan nan -nan nan nan -1807.0 -nan nan nan -nan nan nan -1808.0 -nan nan nan -nan nan nan -1809.0 -nan nan nan -nan nan nan -1810.0 -nan nan nan -nan nan nan -1811.0 -nan nan nan -nan nan nan -1812.0 -nan nan nan -nan nan nan -1813.0 -nan nan nan -nan nan nan -1814.0 -nan nan nan -nan nan nan -1815.0 -nan nan nan -nan nan nan -1816.0 -nan nan nan -nan nan nan -1817.0 -nan nan nan -nan nan nan -1818.0 -nan nan nan -nan nan nan -1819.0 -nan nan nan -nan nan nan -1820.0 -nan nan nan -nan nan nan -1821.0 -nan nan nan -nan nan nan -1822.0 -nan nan nan -nan nan nan -1823.0 -nan nan nan -nan nan nan -1824.0 -nan nan nan -nan nan nan -1825.0 -nan nan nan -nan nan nan -1826.0 -nan nan nan -nan nan nan -1827.0 -nan nan nan -nan nan nan -1828.0 -nan nan nan -nan nan nan -1829.0 -nan nan nan -nan nan nan -1830.0 -nan nan nan -nan nan nan -1831.0 -nan nan nan -nan nan nan -1832.0 -nan nan nan -nan nan nan -1833.0 -nan nan nan -nan nan nan -1834.0 -nan nan nan -nan nan nan -1835.0 -nan nan nan -nan nan nan -1836.0 -nan nan nan -nan nan nan -1837.0 -nan nan nan -nan nan nan -1838.0 -nan nan nan -nan nan nan -1839.0 -nan nan nan -nan nan nan -1840.0 -nan nan nan -nan nan nan -1841.0 -nan nan nan -nan nan nan -1842.0 -nan nan nan -nan nan nan -1843.0 -nan nan nan -nan nan nan -1844.0 -nan nan nan -nan nan nan -1845.0 -nan nan nan -nan nan nan -1846.0 -nan nan nan -nan nan nan -1847.0 -nan nan nan -nan nan nan -1848.0 -nan nan nan -nan nan nan -1850.0 -nan nan nan -nan nan nan -1851.0 -nan nan nan -nan nan nan -1852.0 -nan nan nan -nan nan nan -1853.0 -nan nan nan -nan nan nan -1854.0 -nan nan nan -nan nan nan -1855.0 -nan nan nan -nan nan nan -1856.0 -nan nan nan -nan nan nan -1857.0 -nan nan nan -nan nan nan -1858.0 -nan nan nan -nan nan nan -1859.0 -nan nan nan -nan nan nan -1860.0 -nan nan nan -nan nan nan -1861.0 -nan nan nan -nan nan nan -1862.0 -nan nan nan -nan nan nan -1863.0 -nan nan nan -nan nan nan -1864.0 -nan nan nan -nan nan nan -1865.0 -nan nan nan -nan nan nan -1866.0 -nan nan nan -nan nan nan -1867.0 -nan nan nan -nan nan nan -1868.0 -nan nan nan -nan nan nan -1869.0 -nan nan nan -nan nan nan -1870.0 -nan nan nan -nan nan nan -1871.0 -nan nan nan -nan nan nan -1872.0 -nan nan nan -nan nan nan -1873.0 -nan nan nan -nan nan nan -1874.0 -nan nan nan -nan nan nan -1875.0 -nan nan nan -nan nan nan -1876.0 -nan nan nan -nan nan nan -1877.0 -nan nan nan -nan nan nan -1878.0 -nan nan nan -nan nan nan -1879.0 -nan nan nan -nan nan nan -1880.0 -nan nan nan -nan nan nan -1881.0 -nan nan nan -nan nan nan -1882.0 -nan nan nan -nan nan nan -1883.0 -nan nan nan -nan nan nan -1884.0 -nan nan nan -nan nan nan -1885.0 -nan nan nan -nan nan nan -1886.0 -nan nan nan -nan nan nan -1887.0 -nan nan nan -nan nan nan -1888.0 -nan nan nan -nan nan nan -1889.0 -nan nan nan -nan nan nan -1890.0 -nan nan nan -nan nan nan -1891.0 -nan nan nan -nan nan nan -1892.0 -nan nan nan -nan nan nan -1893.0 -nan nan nan -nan nan nan -1894.0 -nan nan nan -nan nan nan -1895.0 -nan nan nan -nan nan nan -1896.0 -nan nan nan -nan nan nan -1897.0 -nan nan nan -nan nan nan -1898.0 -nan nan nan -nan nan nan -1899.0 -nan nan nan -nan nan nan -1900.0 -nan nan nan -nan nan nan -1901.0 -nan nan nan -nan nan nan -1902.0 -nan nan nan -nan nan nan -1903.0 -nan nan nan -nan nan nan -1904.0 -nan nan nan -nan nan nan -1905.0 -nan nan nan -nan nan nan -1906.0 -nan nan nan -nan nan nan -1907.0 -nan nan nan -nan nan nan -1908.0 -nan nan nan -nan nan nan -1909.0 -nan nan nan -nan nan nan -1910.0 -nan nan nan -nan nan nan -1911.0 -nan nan nan -nan nan nan -1912.0 -nan nan nan -nan nan nan -1913.0 -nan nan nan -nan nan nan -1914.0 -nan nan nan -nan nan nan -1915.0 -nan nan nan -nan nan nan -1916.0 -nan nan nan -nan nan nan -1917.0 -nan nan nan -nan nan nan -1918.0 -nan nan nan -nan nan nan -1919.0 -nan nan nan -nan nan nan -1920.0 -nan nan nan -nan nan nan -1921.0 -nan nan nan -nan nan nan -1922.0 -nan nan nan -nan nan nan -1923.0 -nan nan nan -nan nan nan -1924.0 -nan nan nan -nan nan nan -1925.0 -nan nan nan -nan nan nan -1926.0 -nan nan nan -nan nan nan -1927.0 -nan nan nan -nan nan nan -1928.0 -nan nan nan -nan nan nan -1929.0 -nan nan nan -nan nan nan -1930.0 -nan nan nan -nan nan nan -1931.0 -nan nan nan -nan nan nan -1932.0 -nan nan nan -nan nan nan -1933.0 -nan nan nan -nan nan nan -1934.0 -nan nan nan -nan nan nan -1935.0 -nan nan nan -nan nan nan -1936.0 -nan nan nan -nan nan nan -1937.0 -nan nan nan -nan nan nan -1938.0 -nan nan nan -nan nan nan -1939.0 -nan nan nan -nan nan nan -1940.0 -nan nan nan -nan nan nan -1941.0 -nan nan nan -nan nan nan -1942.0 -nan nan nan -nan nan nan -1943.0 -nan nan nan -nan nan nan -1944.0 -nan nan nan -nan nan nan -1945.0 -nan nan nan -nan nan nan -1946.0 -nan nan nan -nan nan nan -1947.0 -nan nan nan -nan nan nan -1948.0 -nan nan nan -nan nan nan -1949.0 -nan nan nan -nan nan nan -1950.0 -nan nan nan -nan nan nan -1951.0 -nan nan nan -nan nan nan -1952.0 -nan nan nan -nan nan nan -1953.0 -nan nan nan -nan nan nan -1954.0 -nan nan nan -nan nan nan -1955.0 -nan nan nan -nan nan nan -1956.0 -nan nan nan -nan nan nan -1957.0 -nan nan nan -nan nan nan -1958.0 -nan nan nan -nan nan nan -1959.0 -nan nan nan -nan nan nan -1960.0 -nan nan nan -nan nan nan -1961.0 -nan nan nan -nan nan nan -1962.0 -nan nan nan -nan nan nan -1963.0 -nan nan nan -nan nan nan -1964.0 -nan nan nan -nan nan nan -1965.0 -nan nan nan -nan nan nan -1966.0 -nan nan nan -nan nan nan -1967.0 -nan nan nan -nan nan nan -1968.0 -nan nan nan -nan nan nan -1969.0 -nan nan nan -nan nan nan -1970.0 -nan nan nan -nan nan nan -1971.0 -nan nan nan -nan nan nan -1972.0 -nan nan nan -nan nan nan -1973.0 -nan nan nan -nan nan nan -1974.0 -nan nan nan -nan nan nan -1975.0 -nan nan nan -nan nan nan -1976.0 -nan nan nan -nan nan nan -1977.0 -nan nan nan -nan nan nan -1978.0 -nan nan nan -nan nan nan -1979.0 -nan nan nan -nan nan nan -1980.0 -nan nan nan -nan nan nan -1981.0 -nan nan nan -nan nan nan -1982.0 -nan nan nan -nan nan nan -1983.0 -nan nan nan -nan nan nan -1984.0 -nan nan nan -nan nan nan -1985.0 -nan nan nan -nan nan nan -1986.0 -nan nan nan -nan nan nan -1987.0 -nan nan nan -nan nan nan -1988.0 -nan nan nan -nan nan nan -1989.0 -nan nan nan -nan nan nan -1990.0 -nan nan nan -nan nan nan -1991.0 -nan nan nan -nan nan nan -1992.0 -nan nan nan -nan nan nan -1993.0 -nan nan nan -nan nan nan -1994.0 -nan nan nan -nan nan nan -1995.0 -nan nan nan -nan nan nan -1996.0 -nan nan nan -nan nan nan -1997.0 -nan nan nan -nan nan nan -1998.0 -nan nan nan -nan nan nan -1999.0 -nan nan nan -nan nan nan -2000.0 -nan nan nan -nan nan nan -2001.0 -nan nan nan -nan nan nan -2002.0 -nan nan nan -nan nan nan -2003.0 -nan nan nan -nan nan nan -2004.0 -nan nan nan -nan nan nan -2005.0 -nan nan nan -nan nan nan -2006.0 -nan nan nan -nan nan nan -2007.0 -nan nan nan -nan nan nan -2008.0 -nan nan nan -nan nan nan -2009.0 -nan nan nan -nan nan nan -2010.0 -nan nan nan -nan nan nan -2011.0 -nan nan nan -nan nan nan -2012.0 -nan nan nan -nan nan nan -2013.0 -nan nan nan -nan nan nan -2014.0 -nan nan nan -nan nan nan -2015.0 -nan nan nan -nan nan nan -2016.0 -nan nan nan -nan nan nan -2017.0 -nan nan nan -nan nan nan -2018.0 -nan nan nan -nan nan nan -2019.0 -nan nan nan -nan nan nan -2020.0 -nan nan nan -nan nan nan -2021.0 -nan nan nan -nan nan nan -2022.0 -nan nan nan -nan nan nan -2023.0 -nan nan nan -nan nan nan -2024.0 -nan nan nan -nan nan nan -2025.0 -nan nan nan -nan nan nan -2026.0 -nan nan nan -nan nan nan -2027.0 -nan nan nan -nan nan nan -2028.0 -nan nan nan -nan nan nan -2029.0 -nan nan nan -nan nan nan -2030.0 -nan nan nan -nan nan nan -2031.0 -nan nan nan -nan nan nan -2032.0 -nan nan nan -nan nan nan -2033.0 -nan nan nan -nan nan nan -2034.0 -nan nan nan -nan nan nan -2035.0 -nan nan nan -nan nan nan -2036.0 -nan nan nan -nan nan nan -2037.0 -nan nan nan -nan nan nan -2038.0 -nan nan nan -nan nan nan -2039.0 -nan nan nan -nan nan nan -2040.0 -nan nan nan -nan nan nan -2041.0 -nan nan nan -nan nan nan -2042.0 -nan nan nan -nan nan nan -2043.0 -nan nan nan -nan nan nan -2044.0 -nan nan nan -nan nan nan -2045.0 -nan nan nan -nan nan nan -2046.0 -nan nan nan -nan nan nan -2047.0 -nan nan nan -nan nan nan -2048.0 -nan nan nan -nan nan nan -2049.0 -nan nan nan -nan nan nan -2050.0 -nan nan nan -nan nan nan -2051.0 -nan nan nan -nan nan nan -2052.0 -nan nan nan -nan nan nan -2053.0 -nan nan nan -nan nan nan -2054.0 -nan nan nan -nan nan nan -2055.0 -nan nan nan -nan nan nan -2056.0 -nan nan nan -nan nan nan -2057.0 -nan nan nan -nan nan nan -2058.0 -nan nan nan -nan nan nan -2059.0 -nan nan nan -nan nan nan -2060.0 -nan nan nan -nan nan nan -2061.0 -nan nan nan -nan nan nan -2062.0 -nan nan nan -nan nan nan -2063.0 -nan nan nan -nan nan nan -2064.0 -nan nan nan -nan nan nan -2065.0 -nan nan nan -nan nan nan -2066.0 -nan nan nan -nan nan nan -2067.0 -nan nan nan -nan nan nan -2068.0 -nan nan nan -nan nan nan -2069.0 -nan nan nan -nan nan nan -2070.0 -nan nan nan -nan nan nan -2071.0 -nan nan nan -nan nan nan -2072.0 -nan nan nan -nan nan nan -2073.0 -nan nan nan -nan nan nan -2074.0 -nan nan nan -nan nan nan -2075.0 -nan nan nan -nan nan nan -2076.0 -nan nan nan -nan nan nan -2077.0 -nan nan nan -nan nan nan -2078.0 -nan nan nan -nan nan nan -2079.0 -nan nan nan -nan nan nan -2080.0 -nan nan nan -nan nan nan -2081.0 -nan nan nan -nan nan nan -2082.0 -nan nan nan -nan nan nan -2083.0 -nan nan nan -nan nan nan -2084.0 -nan nan nan -nan nan nan -2085.0 -nan nan nan -nan nan nan -2086.0 -nan nan nan -nan nan nan -2087.0 -nan nan nan -nan nan nan -2088.0 -nan nan nan -nan nan nan -2089.0 -nan nan nan -nan nan nan -2090.0 -nan nan nan -nan nan nan -2091.0 -nan nan nan -nan nan nan -2092.0 -nan nan nan -nan nan nan -2093.0 -nan nan nan -nan nan nan -2094.0 -nan nan nan -nan nan nan -2095.0 -nan nan nan -nan nan nan -2096.0 -nan nan nan -nan nan nan -2097.0 -nan nan nan -nan nan nan -2098.0 -nan nan nan -nan nan nan -2099.0 -nan nan nan -nan nan nan -2100.0 -nan nan nan -nan nan nan -2101.0 -nan nan nan -nan nan nan -2102.0 -nan nan nan -nan nan nan -2103.0 -nan nan nan -nan nan nan -2104.0 -nan nan nan -nan nan nan -2105.0 -nan nan nan -nan nan nan -2106.0 -nan nan nan -nan nan nan -2107.0 -nan nan nan -nan nan nan -2108.0 -nan nan nan -nan nan nan -2109.0 -nan nan nan -nan nan nan -2110.0 -nan nan nan -nan nan nan -2111.0 -nan nan nan -nan nan nan -2112.0 -nan nan nan -nan nan nan -2113.0 -nan nan nan -nan nan nan -2114.0 -nan nan nan -nan nan nan -2115.0 -nan nan nan -nan nan nan -2116.0 -nan nan nan -nan nan nan -2117.0 -nan nan nan -nan nan nan -2118.0 -nan nan nan -nan nan nan -2119.0 -nan nan nan -nan nan nan -2120.0 -nan nan nan -nan nan nan -2121.0 -nan nan nan -nan nan nan -2122.0 -nan nan nan -nan nan nan -2123.0 -nan nan nan -nan nan nan -2124.0 -nan nan nan -nan nan nan -2125.0 -nan nan nan -nan nan nan -2126.0 -nan nan nan -nan nan nan -2127.0 -nan nan nan -nan nan nan -2128.0 -nan nan nan -nan nan nan -2129.0 -nan nan nan -nan nan nan -2130.0 -nan nan nan -nan nan nan -2131.0 -nan nan nan -nan nan nan -2132.0 -nan nan nan -nan nan nan -2133.0 -nan nan nan -nan nan nan -2134.0 -nan nan nan -nan nan nan -2135.0 -nan nan nan -nan nan nan -2136.0 -nan nan nan -nan nan nan -2137.0 -nan nan nan -nan nan nan -2138.0 -nan nan nan -nan nan nan -2139.0 -nan nan nan -nan nan nan -2140.0 -nan nan nan -nan nan nan -2141.0 -nan nan nan -nan nan nan -2142.0 -nan nan nan -nan nan nan -2143.0 -nan nan nan -nan nan nan -2144.0 -nan nan nan -nan nan nan -2145.0 -nan nan nan -nan nan nan -2146.0 -nan nan nan -nan nan nan -2147.0 -nan nan nan -nan nan nan -2148.0 -nan nan nan -nan nan nan -2149.0 -nan nan nan -nan nan nan -2150.0 -nan nan nan -nan nan nan -2151.0 -nan nan nan -nan nan nan -2152.0 -nan nan nan -nan nan nan -2153.0 -nan nan nan -nan nan nan -2154.0 -nan nan nan -nan nan nan -2155.0 -nan nan nan -nan nan nan -2156.0 -nan nan nan -nan nan nan -2157.0 -nan nan nan -nan nan nan -2158.0 -nan nan nan -nan nan nan -2159.0 -nan nan nan -nan nan nan -2160.0 -nan nan nan -nan nan nan -2161.0 -nan nan nan -nan nan nan -2162.0 -nan nan nan -nan nan nan -2163.0 -nan nan nan -nan nan nan -2164.0 -nan nan nan -nan nan nan -2165.0 -nan nan nan -nan nan nan -2166.0 -nan nan nan -nan nan nan -2167.0 -nan nan nan -nan nan nan -2168.0 -nan nan nan -nan nan nan -2169.0 -nan nan nan -nan nan nan -2170.0 -nan nan nan -nan nan nan -2171.0 -nan nan nan -nan nan nan -2172.0 -nan nan nan -nan nan nan -2173.0 -nan nan nan -nan nan nan -2174.0 -nan nan nan -nan nan nan -2175.0 -nan nan nan -nan nan nan -2176.0 -nan nan nan -nan nan nan -2177.0 -nan nan nan -nan nan nan -2178.0 -nan nan nan -nan nan nan -2179.0 -nan nan nan -nan nan nan -2180.0 -nan nan nan -nan nan nan -2181.0 -nan nan nan -nan nan nan -2182.0 -nan nan nan -nan nan nan -2183.0 -nan nan nan -nan nan nan -2184.0 -nan nan nan -nan nan nan -2185.0 -nan nan nan -nan nan nan -2186.0 -nan nan nan -nan nan nan -2187.0 -nan nan nan -nan nan nan -2188.0 -nan nan nan -nan nan nan -2189.0 -nan nan nan -nan nan nan -2191.0 -nan nan nan -nan nan nan -2192.0 -nan nan nan -nan nan nan -2193.0 -nan nan nan -nan nan nan -2194.0 -nan nan nan -nan nan nan -2195.0 -nan nan nan -nan nan nan -2196.0 -nan nan nan -nan nan nan -2197.0 -nan nan nan -nan nan nan -2198.0 -nan nan nan -nan nan nan -2199.0 -nan nan nan -nan nan nan -2200.0 -nan nan nan -nan nan nan -2201.0 -nan nan nan -nan nan nan -2202.0 -nan nan nan -nan nan nan -2203.0 -nan nan nan -nan nan nan -2204.0 -nan nan nan -nan nan nan -2205.0 -nan nan nan -nan nan nan -2206.0 -nan nan nan -nan nan nan -2207.0 -nan nan nan -nan nan nan -2208.0 -nan nan nan -nan nan nan -2209.0 -nan nan nan -nan nan nan -2210.0 -nan nan nan -nan nan nan -2211.0 -nan nan nan -nan nan nan -2212.0 -nan nan nan -nan nan nan -2213.0 -nan nan nan -nan nan nan -2214.0 -nan nan nan -nan nan nan -2215.0 -nan nan nan -nan nan nan -2216.0 -nan nan nan -nan nan nan -2217.0 -nan nan nan -nan nan nan -2218.0 -nan nan nan -nan nan nan -2219.0 -nan nan nan -nan nan nan -2220.0 -nan nan nan -nan nan nan -2221.0 -nan nan nan -nan nan nan -2222.0 -nan nan nan -nan nan nan -2223.0 -nan nan nan -nan nan nan -2224.0 -nan nan nan -nan nan nan -2225.0 -nan nan nan -nan nan nan -2226.0 -nan nan nan -nan nan nan -2227.0 -nan nan nan -nan nan nan -2228.0 -nan nan nan -nan nan nan -2229.0 -nan nan nan -nan nan nan -2230.0 -nan nan nan -nan nan nan -2231.0 -nan nan nan -nan nan nan -2232.0 -nan nan nan -nan nan nan -2233.0 -nan nan nan -nan nan nan -2234.0 -nan nan nan -nan nan nan -2235.0 -nan nan nan -nan nan nan -2236.0 -nan nan nan -nan nan nan -2237.0 -nan nan nan -nan nan nan -2238.0 -nan nan nan -nan nan nan -2239.0 -nan nan nan -nan nan nan -2240.0 -nan nan nan -nan nan nan -2241.0 -nan nan nan -nan nan nan -2242.0 -nan nan nan -nan nan nan -2243.0 -nan nan nan -nan nan nan -2244.0 -nan nan nan -nan nan nan -2245.0 -nan nan nan -nan nan nan -2246.0 -nan nan nan -nan nan nan -2247.0 -nan nan nan -nan nan nan -2248.0 -nan nan nan -nan nan nan -2249.0 -nan nan nan -nan nan nan -2250.0 -nan nan nan -nan nan nan -2251.0 -nan nan nan -nan nan nan -2252.0 -nan nan nan -nan nan nan -2253.0 -nan nan nan -nan nan nan -2254.0 -nan nan nan -nan nan nan -2255.0 -nan nan nan -nan nan nan -2256.0 -nan nan nan -nan nan nan -2257.0 -nan nan nan -nan nan nan -2258.0 -nan nan nan -nan nan nan -2259.0 -nan nan nan -nan nan nan -2260.0 -nan nan nan -nan nan nan -2261.0 -nan nan nan -nan nan nan -2262.0 -nan nan nan -nan nan nan -2263.0 -nan nan nan -nan nan nan -2264.0 -nan nan nan -nan nan nan -2265.0 -nan nan nan -nan nan nan -2266.0 -nan nan nan -nan nan nan -2267.0 -nan nan nan -nan nan nan -2268.0 -nan nan nan -nan nan nan -2269.0 -nan nan nan -nan nan nan -2270.0 -nan nan nan -nan nan nan -2271.0 -nan nan nan -nan nan nan -2272.0 -nan nan nan -nan nan nan -2273.0 -nan nan nan -nan nan nan -2274.0 -nan nan nan -nan nan nan -2275.0 -nan nan nan -nan nan nan -2276.0 -nan nan nan -nan nan nan -2277.0 -nan nan nan -nan nan nan -2278.0 -nan nan nan -nan nan nan -2279.0 -nan nan nan -nan nan nan -2280.0 -nan nan nan -nan nan nan -2281.0 -nan nan nan -nan nan nan -2282.0 -nan nan nan -nan nan nan -2283.0 -nan nan nan -nan nan nan -2284.0 -nan nan nan -nan nan nan -2285.0 -nan nan nan -nan nan nan -2286.0 -nan nan nan -nan nan nan -2287.0 -nan nan nan -nan nan nan -2288.0 -nan nan nan -nan nan nan -2289.0 -nan nan nan -nan nan nan -2290.0 -nan nan nan -nan nan nan -2291.0 -nan nan nan -nan nan nan -2292.0 -nan nan nan -nan nan nan -2293.0 -nan nan nan -nan nan nan -2294.0 -nan nan nan -nan nan nan -2295.0 -nan nan nan -nan nan nan -2296.0 -nan nan nan -nan nan nan -2297.0 -nan nan nan -nan nan nan -2298.0 -nan nan nan -nan nan nan -2299.0 -nan nan nan -nan nan nan -2300.0 -nan nan nan -nan nan nan -2301.0 -nan nan nan -nan nan nan -2302.0 -nan nan nan -nan nan nan -2303.0 -nan nan nan -nan nan nan -2304.0 -nan nan nan -nan nan nan -2305.0 -nan nan nan -nan nan nan -2306.0 -nan nan nan -nan nan nan -2307.0 -nan nan nan -nan nan nan -2308.0 -nan nan nan -nan nan nan -2309.0 -nan nan nan -nan nan nan -2310.0 -nan nan nan -nan nan nan -2311.0 -nan nan nan -nan nan nan -2312.0 -nan nan nan -nan nan nan -2313.0 -nan nan nan -nan nan nan -2314.0 -nan nan nan -nan nan nan -2315.0 -nan nan nan -nan nan nan -2316.0 -nan nan nan -nan nan nan -2317.0 -nan nan nan -nan nan nan -2318.0 -nan nan nan -nan nan nan -2319.0 -nan nan nan -nan nan nan -2320.0 -nan nan nan -nan nan nan -2321.0 -nan nan nan -nan nan nan -2322.0 -nan nan nan -nan nan nan -2323.0 -nan nan nan -nan nan nan -2324.0 -nan nan nan -nan nan nan -2325.0 -nan nan nan -nan nan nan -2326.0 -nan nan nan -nan nan nan -2327.0 -nan nan nan -nan nan nan -2328.0 -nan nan nan -nan nan nan -2329.0 -nan nan nan -nan nan nan -2330.0 -nan nan nan -nan nan nan -2331.0 -nan nan nan -nan nan nan -2332.0 -nan nan nan -nan nan nan -2333.0 -nan nan nan -nan nan nan -2334.0 -nan nan nan -nan nan nan -2335.0 -nan nan nan -nan nan nan -2336.0 -nan nan nan -nan nan nan -2337.0 -nan nan nan -nan nan nan -2338.0 -nan nan nan -nan nan nan -2339.0 -nan nan nan -nan nan nan -2340.0 -nan nan nan -nan nan nan -2341.0 -nan nan nan -nan nan nan -2342.0 -nan nan nan -nan nan nan -2343.0 -nan nan nan -nan nan nan -2344.0 -nan nan nan -nan nan nan -2345.0 -nan nan nan -nan nan nan -2346.0 -nan nan nan -nan nan nan -2347.0 -nan nan nan -nan nan nan -2348.0 -nan nan nan -nan nan nan -2349.0 -nan nan nan -nan nan nan -2350.0 -nan nan nan -nan nan nan -2351.0 -nan nan nan -nan nan nan -2352.0 -nan nan nan -nan nan nan -2353.0 -nan nan nan -nan nan nan -2354.0 -nan nan nan -nan nan nan -2355.0 -nan nan nan -nan nan nan -2356.0 -nan nan nan -nan nan nan -2357.0 -nan nan nan -nan nan nan -2358.0 -nan nan nan -nan nan nan -2359.0 -nan nan nan -nan nan nan -2360.0 -nan nan nan -nan nan nan -2361.0 -nan nan nan -nan nan nan -2362.0 -nan nan nan -nan nan nan -2363.0 -nan nan nan -nan nan nan -2364.0 -nan nan nan -nan nan nan -2365.0 -nan nan nan -nan nan nan -2366.0 -nan nan nan -nan nan nan -2367.0 -nan nan nan -nan nan nan -2368.0 -nan nan nan -nan nan nan -2369.0 -nan nan nan -nan nan nan -2370.0 -nan nan nan -nan nan nan -2371.0 -nan nan nan -nan nan nan -2372.0 -nan nan nan -nan nan nan -2373.0 -nan nan nan -nan nan nan -2374.0 -nan nan nan -nan nan nan -2375.0 -nan nan nan -nan nan nan -2376.0 -nan nan nan -nan nan nan -2377.0 -nan nan nan -nan nan nan -2378.0 -nan nan nan -nan nan nan -2380.0 -nan nan nan -nan nan nan -2381.0 -nan nan nan -nan nan nan -2382.0 -nan nan nan -nan nan nan -2383.0 -nan nan nan -nan nan nan -2384.0 -nan nan nan -nan nan nan -2385.0 -nan nan nan -nan nan nan -2386.0 -nan nan nan -nan nan nan -2387.0 -nan nan nan -nan nan nan -2388.0 -nan nan nan -nan nan nan -2389.0 -nan nan nan -nan nan nan -2390.0 -nan nan nan -nan nan nan -2391.0 -nan nan nan -nan nan nan -2392.0 -nan nan nan -nan nan nan -2393.0 -nan nan nan -nan nan nan -2394.0 -nan nan nan -nan nan nan -2395.0 -nan nan nan -nan nan nan -2396.0 -nan nan nan -nan nan nan -2397.0 -nan nan nan -nan nan nan -2398.0 -nan nan nan -nan nan nan -2399.0 -nan nan nan -nan nan nan -2401.0 -nan nan nan -nan nan nan -2402.0 -nan nan nan -nan nan nan -2403.0 -nan nan nan -nan nan nan -2404.0 -nan nan nan -nan nan nan -2405.0 -nan nan nan -nan nan nan -2406.0 -nan nan nan -nan nan nan -2407.0 -nan nan nan -nan nan nan -2408.0 -nan nan nan -nan nan nan -2409.0 -nan nan nan -nan nan nan -2410.0 -nan nan nan -nan nan nan -2411.0 -nan nan nan -nan nan nan -2412.0 -nan nan nan -nan nan nan -2413.0 -nan nan nan -nan nan nan -2414.0 -nan nan nan -nan nan nan -2415.0 -nan nan nan -nan nan nan -2416.0 -nan nan nan -nan nan nan -2417.0 -nan nan nan -nan nan nan -2418.0 -nan nan nan -nan nan nan -2419.0 -nan nan nan -nan nan nan -2420.0 -nan nan nan -nan nan nan -2421.0 -nan nan nan -nan nan nan -2422.0 -nan nan nan -nan nan nan -2423.0 -nan nan nan -nan nan nan -2424.0 -nan nan nan -nan nan nan -2425.0 -nan nan nan -nan nan nan -2426.0 -nan nan nan -nan nan nan -2427.0 -nan nan nan -nan nan nan -2428.0 -nan nan nan -nan nan nan -2429.0 -nan nan nan -nan nan nan -2430.0 -nan nan nan -nan nan nan -2431.0 -nan nan nan -nan nan nan -2432.0 -nan nan nan -nan nan nan -2433.0 -nan nan nan -nan nan nan -2434.0 -nan nan nan -nan nan nan -2435.0 -nan nan nan -nan nan nan -2436.0 -nan nan nan -nan nan nan -2437.0 -nan nan nan -nan nan nan -2438.0 -nan nan nan -nan nan nan -2439.0 -nan nan nan -nan nan nan -2440.0 -nan nan nan -nan nan nan -2441.0 -nan nan nan -nan nan nan -2442.0 -nan nan nan -nan nan nan -2443.0 -nan nan nan -nan nan nan -2444.0 -nan nan nan -nan nan nan -2445.0 -nan nan nan -nan nan nan -2446.0 -nan nan nan -nan nan nan -2447.0 -nan nan nan -nan nan nan -2448.0 -nan nan nan -nan nan nan -2449.0 -nan nan nan -nan nan nan -2450.0 -nan nan nan -nan nan nan -2451.0 -nan nan nan -nan nan nan -2452.0 -nan nan nan -nan nan nan -2453.0 -nan nan nan -nan nan nan -2454.0 -nan nan nan -nan nan nan -2455.0 -nan nan nan -nan nan nan -2456.0 -nan nan nan -nan nan nan -2457.0 -nan nan nan -nan nan nan -2458.0 -nan nan nan -nan nan nan -2459.0 -nan nan nan -nan nan nan -2460.0 -nan nan nan -nan nan nan -2461.0 -nan nan nan -nan nan nan -2462.0 -nan nan nan -nan nan nan -2463.0 -nan nan nan -nan nan nan -2464.0 -nan nan nan -nan nan nan -2465.0 -nan nan nan -nan nan nan -2466.0 -nan nan nan -nan nan nan -2467.0 -nan nan nan -nan nan nan -2468.0 -nan nan nan -nan nan nan -2469.0 -nan nan nan -nan nan nan -2470.0 -nan nan nan -nan nan nan -2471.0 -nan nan nan -nan nan nan -2472.0 -nan nan nan -nan nan nan -2473.0 -nan nan nan -nan nan nan -2474.0 -nan nan nan -nan nan nan -2475.0 -nan nan nan -nan nan nan -2476.0 -nan nan nan -nan nan nan -2477.0 -nan nan nan -nan nan nan -2478.0 -nan nan nan -nan nan nan -2479.0 -nan nan nan -nan nan nan -2480.0 -nan nan nan -nan nan nan -2482.0 -nan nan nan -nan nan nan -2483.0 -nan nan nan -nan nan nan -2484.0 -nan nan nan -nan nan nan -2485.0 -nan nan nan -nan nan nan -2486.0 -nan nan nan -nan nan nan -2487.0 -nan nan nan -nan nan nan -2488.0 -nan nan nan -nan nan nan -2489.0 -nan nan nan -nan nan nan -2490.0 -nan nan nan -nan nan nan -2491.0 -nan nan nan -nan nan nan -2492.0 -nan nan nan -nan nan nan -2493.0 -nan nan nan -nan nan nan -2495.0 -nan nan nan -nan nan nan -2496.0 -nan nan nan -nan nan nan -2497.0 -nan nan nan -nan nan nan -2498.0 -nan nan nan -nan nan nan -2499.0 -nan nan nan -nan nan nan -2500.0 -nan nan nan -nan nan nan -2501.0 -nan nan nan -nan nan nan -2502.0 -nan nan nan -nan nan nan -2503.0 -nan nan nan -nan nan nan -2504.0 -nan nan nan -nan nan nan -2505.0 -nan nan nan -nan nan nan -2506.0 -nan nan nan -nan nan nan -2507.0 -nan nan nan -nan nan nan -2508.0 -nan nan nan -nan nan nan -2509.0 -nan nan nan -nan nan nan -2510.0 -nan nan nan -nan nan nan -2511.0 -nan nan nan -nan nan nan -2512.0 -nan nan nan -nan nan nan -2513.0 -nan nan nan -nan nan nan -2514.0 -nan nan nan -nan nan nan -2515.0 -nan nan nan -nan nan nan -2516.0 -nan nan nan -nan nan nan -2517.0 -nan nan nan -nan nan nan -2518.0 -nan nan nan -nan nan nan -2519.0 -nan nan nan -nan nan nan -2520.0 -nan nan nan -nan nan nan -2521.0 -nan nan nan -nan nan nan -2522.0 -nan nan nan -nan nan nan -2523.0 -nan nan nan -nan nan nan -2524.0 -nan nan nan -nan nan nan -2525.0 -nan nan nan -nan nan nan -2526.0 -nan nan nan -nan nan nan -2527.0 -nan nan nan -nan nan nan -2528.0 -nan nan nan -nan nan nan -2529.0 -nan nan nan -nan nan nan -2530.0 -nan nan nan -nan nan nan -2531.0 -nan nan nan -nan nan nan -2532.0 -nan nan nan -nan nan nan -2533.0 -nan nan nan -nan nan nan -2534.0 -nan nan nan -nan nan nan -2535.0 -nan nan nan -nan nan nan -2536.0 -nan nan nan -nan nan nan -2537.0 -nan nan nan -nan nan nan -2538.0 -nan nan nan -nan nan nan -2539.0 -nan nan nan -nan nan nan -2540.0 -nan nan nan -nan nan nan -2541.0 -nan nan nan -nan nan nan -2542.0 -nan nan nan -nan nan nan -2543.0 -nan nan nan -nan nan nan -2544.0 -nan nan nan -nan nan nan -2545.0 -nan nan nan -nan nan nan -2546.0 -nan nan nan -nan nan nan -2547.0 -nan nan nan -nan nan nan -2548.0 -nan nan nan -nan nan nan -2549.0 -nan nan nan -nan nan nan -2550.0 -nan nan nan -nan nan nan -2551.0 -nan nan nan -nan nan nan -2552.0 -nan nan nan -nan nan nan -2553.0 -nan nan nan -nan nan nan -2554.0 -nan nan nan -nan nan nan -2555.0 -nan nan nan -nan nan nan -2556.0 -nan nan nan -nan nan nan -2557.0 -nan nan nan -nan nan nan -2558.0 -nan nan nan -nan nan nan -2559.0 -nan nan nan -nan nan nan -2560.0 -nan nan nan -nan nan nan -2561.0 -nan nan nan -nan nan nan -2562.0 -nan nan nan -nan nan nan -2563.0 -nan nan nan -nan nan nan -2564.0 -nan nan nan -nan nan nan -2565.0 -nan nan nan -nan nan nan -2566.0 -nan nan nan -nan nan nan -2567.0 -nan nan nan -nan nan nan -2568.0 -nan nan nan -nan nan nan -2569.0 -nan nan nan -nan nan nan -2570.0 -nan nan nan -nan nan nan -2571.0 -nan nan nan -nan nan nan -2572.0 -nan nan nan -nan nan nan -2573.0 -nan nan nan -nan nan nan -2574.0 -nan nan nan -nan nan nan -2575.0 -nan nan nan -nan nan nan -2576.0 -nan nan nan -nan nan nan -2577.0 -nan nan nan -nan nan nan -2578.0 -nan nan nan -nan nan nan -2579.0 -nan nan nan -nan nan nan -2580.0 -nan nan nan -nan nan nan -2581.0 -nan nan nan -nan nan nan -2582.0 -nan nan nan -nan nan nan -2583.0 -nan nan nan -nan nan nan -2584.0 -nan nan nan -nan nan nan -2585.0 -nan nan nan -nan nan nan -2586.0 -nan nan nan -nan nan nan -2587.0 -nan nan nan -nan nan nan -2588.0 -nan nan nan -nan nan nan -2589.0 -nan nan nan -nan nan nan -2590.0 -nan nan nan -nan nan nan -2591.0 -nan nan nan -nan nan nan -2592.0 -nan nan nan -nan nan nan -2593.0 -nan nan nan -nan nan nan -2594.0 -nan nan nan -nan nan nan -2595.0 -nan nan nan -nan nan nan -2596.0 -nan nan nan -nan nan nan -2597.0 -nan nan nan -nan nan nan -2598.0 -nan nan nan -nan nan nan -2599.0 -nan nan nan -nan nan nan -2600.0 -nan nan nan -nan nan nan -2601.0 -nan nan nan -nan nan nan -2602.0 -nan nan nan -nan nan nan -2603.0 -nan nan nan -nan nan nan -2604.0 -nan nan nan -nan nan nan -2605.0 -nan nan nan -nan nan nan -2606.0 -nan nan nan -nan nan nan -2607.0 -nan nan nan -nan nan nan -2608.0 -nan nan nan -nan nan nan -2609.0 -nan nan nan -nan nan nan -2610.0 -nan nan nan -nan nan nan -2611.0 -nan nan nan -nan nan nan -2612.0 -nan nan nan -nan nan nan -2613.0 -nan nan nan -nan nan nan -2614.0 -nan nan nan -nan nan nan -2615.0 -nan nan nan -nan nan nan -2616.0 -nan nan nan -nan nan nan -2617.0 -nan nan nan -nan nan nan -2618.0 -nan nan nan -nan nan nan -2619.0 -nan nan nan -nan nan nan -2620.0 -nan nan nan -nan nan nan -2621.0 -nan nan nan -nan nan nan -2622.0 -nan nan nan -nan nan nan -2623.0 -nan nan nan -nan nan nan -2624.0 -nan nan nan -nan nan nan -2625.0 -nan nan nan -nan nan nan -2626.0 -nan nan nan -nan nan nan -2627.0 -nan nan nan -nan nan nan -2628.0 -nan nan nan -nan nan nan -2629.0 -nan nan nan -nan nan nan -2630.0 -nan nan nan -nan nan nan -2631.0 -nan nan nan -nan nan nan -2632.0 -nan nan nan -nan nan nan -2633.0 -nan nan nan -nan nan nan -2634.0 -nan nan nan -nan nan nan -2635.0 -nan nan nan -nan nan nan -2636.0 -nan nan nan -nan nan nan -2637.0 -nan nan nan -nan nan nan -2638.0 -nan nan nan -nan nan nan -2639.0 -nan nan nan -nan nan nan -2640.0 -nan nan nan -nan nan nan -2641.0 -nan nan nan -nan nan nan -2642.0 -nan nan nan -nan nan nan -2643.0 -nan nan nan -nan nan nan -2644.0 -nan nan nan -nan nan nan -2645.0 -nan nan nan -nan nan nan -2646.0 -nan nan nan -nan nan nan -2647.0 -nan nan nan -nan nan nan -2648.0 -nan nan nan -nan nan nan -2649.0 -nan nan nan -nan nan nan -2650.0 -nan nan nan -nan nan nan -2651.0 -nan nan nan -nan nan nan -2652.0 -nan nan nan -nan nan nan -2653.0 -nan nan nan -nan nan nan -2654.0 -nan nan nan -nan nan nan -2655.0 -nan nan nan -nan nan nan -2656.0 -nan nan nan -nan nan nan -2657.0 -nan nan nan -nan nan nan -2658.0 -nan nan nan -nan nan nan -2659.0 -nan nan nan -nan nan nan -2660.0 -nan nan nan -nan nan nan -2661.0 -nan nan nan -nan nan nan -2662.0 -nan nan nan -nan nan nan -2663.0 -nan nan nan -nan nan nan -2664.0 -nan nan nan -nan nan nan -2665.0 -nan nan nan -nan nan nan -2666.0 -nan nan nan -nan nan nan -2667.0 -nan nan nan -nan nan nan -2668.0 -nan nan nan -nan nan nan -2669.0 -nan nan nan -nan nan nan -2670.0 -nan nan nan -nan nan nan -2671.0 -nan nan nan -nan nan nan -2672.0 -nan nan nan -nan nan nan -2673.0 -nan nan nan -nan nan nan -2674.0 -nan nan nan -nan nan nan -2675.0 -nan nan nan -nan nan nan -2676.0 -nan nan nan -nan nan nan -2677.0 -nan nan nan -nan nan nan -2678.0 -nan nan nan -nan nan nan -2679.0 -nan nan nan -nan nan nan -2680.0 -nan nan nan -nan nan nan -2681.0 -nan nan nan -nan nan nan -2682.0 -nan nan nan -nan nan nan -2683.0 -nan nan nan -nan nan nan -2684.0 -nan nan nan -nan nan nan -2685.0 -nan nan nan -nan nan nan -2686.0 -nan nan nan -nan nan nan -2687.0 -nan nan nan -nan nan nan -2688.0 -nan nan nan -nan nan nan -2689.0 -nan nan nan -nan nan nan -2690.0 -nan nan nan -nan nan nan -2691.0 -nan nan nan -nan nan nan -2692.0 -nan nan nan -nan nan nan -2693.0 -nan nan nan -nan nan nan -2694.0 -nan nan nan -nan nan nan -2695.0 -nan nan nan -nan nan nan -2696.0 -nan nan nan -nan nan nan -2697.0 -nan nan nan -nan nan nan -2698.0 -nan nan nan -nan nan nan -2699.0 -nan nan nan -nan nan nan -2700.0 -nan nan nan -nan nan nan -2701.0 -nan nan nan -nan nan nan -2702.0 -nan nan nan -nan nan nan -2703.0 -nan nan nan -nan nan nan -2704.0 -nan nan nan -nan nan nan -2705.0 -nan nan nan -nan nan nan -2706.0 -nan nan nan -nan nan nan -2707.0 -nan nan nan -nan nan nan -2708.0 -nan nan nan -nan nan nan -2709.0 -nan nan nan -nan nan nan -2710.0 -nan nan nan -nan nan nan -2711.0 -nan nan nan -nan nan nan -2712.0 -nan nan nan -nan nan nan -2713.0 -nan nan nan -nan nan nan -2714.0 -nan nan nan -nan nan nan -2715.0 -nan nan nan -nan nan nan -2716.0 -nan nan nan -nan nan nan -2717.0 -nan nan nan -nan nan nan -2718.0 -nan nan nan -nan nan nan -2719.0 -nan nan nan -nan nan nan -2720.0 -nan nan nan -nan nan nan -2721.0 -nan nan nan -nan nan nan -2722.0 -nan nan nan -nan nan nan -2723.0 -nan nan nan -nan nan nan -2724.0 -nan nan nan -nan nan nan -2725.0 -nan nan nan -nan nan nan -2726.0 -nan nan nan -nan nan nan -2727.0 -nan nan nan -nan nan nan -2728.0 -nan nan nan -nan nan nan -2729.0 -nan nan nan -nan nan nan -2730.0 -nan nan nan -nan nan nan -2731.0 -nan nan nan -nan nan nan -2732.0 -nan nan nan -nan nan nan -2733.0 -nan nan nan -nan nan nan -2734.0 -nan nan nan -nan nan nan -2735.0 -nan nan nan -nan nan nan -2736.0 -nan nan nan -nan nan nan -2737.0 -nan nan nan -nan nan nan -2738.0 -nan nan nan -nan nan nan -2739.0 -nan nan nan -nan nan nan -2740.0 -nan nan nan -nan nan nan -2741.0 -nan nan nan -nan nan nan -2742.0 -nan nan nan -nan nan nan -2743.0 -nan nan nan -nan nan nan -2744.0 -nan nan nan -nan nan nan -2745.0 -nan nan nan -nan nan nan -2746.0 -nan nan nan -nan nan nan -2747.0 -nan nan nan -nan nan nan -2748.0 -nan nan nan -nan nan nan -2749.0 -nan nan nan -nan nan nan -2750.0 -nan nan nan -nan nan nan -2751.0 -nan nan nan -nan nan nan -2752.0 -nan nan nan -nan nan nan -2753.0 -nan nan nan -nan nan nan -2754.0 -nan nan nan -nan nan nan -2755.0 -nan nan nan -nan nan nan -2756.0 -nan nan nan -nan nan nan -2757.0 -nan nan nan -nan nan nan -2758.0 -nan nan nan -nan nan nan -2759.0 -nan nan nan -nan nan nan -2760.0 -nan nan nan -nan nan nan -2761.0 -nan nan nan -nan nan nan -2762.0 -nan nan nan -nan nan nan -2763.0 -nan nan nan -nan nan nan -2764.0 -nan nan nan -nan nan nan -2765.0 -nan nan nan -nan nan nan -2766.0 -nan nan nan -nan nan nan -2767.0 -nan nan nan -nan nan nan -2768.0 -nan nan nan -nan nan nan -2769.0 -nan nan nan -nan nan nan -2770.0 -nan nan nan -nan nan nan -2771.0 -nan nan nan -nan nan nan -2772.0 -nan nan nan -nan nan nan -2773.0 -nan nan nan -nan nan nan -2774.0 -nan nan nan -nan nan nan -2775.0 -nan nan nan -nan nan nan -2776.0 -nan nan nan -nan nan nan -2777.0 -nan nan nan -nan nan nan -2778.0 -nan nan nan -nan nan nan -2779.0 -nan nan nan -nan nan nan -2780.0 -nan nan nan -nan nan nan -2781.0 -nan nan nan -nan nan nan -2782.0 -nan nan nan -nan nan nan -2783.0 -nan nan nan -nan nan nan -2784.0 -nan nan nan -nan nan nan -2785.0 -nan nan nan -nan nan nan -2786.0 -nan nan nan -nan nan nan -2787.0 -nan nan nan -nan nan nan -2788.0 -nan nan nan -nan nan nan -2789.0 -nan nan nan -nan nan nan -2790.0 -nan nan nan -nan nan nan -2791.0 -nan nan nan -nan nan nan -2792.0 -nan nan nan -nan nan nan -2793.0 -nan nan nan -nan nan nan -2794.0 -nan nan nan -nan nan nan -2795.0 -nan nan nan -nan nan nan -2796.0 -nan nan nan -nan nan nan -2797.0 -nan nan nan -nan nan nan -2798.0 -nan nan nan -nan nan nan -2799.0 -nan nan nan -nan nan nan -2800.0 -nan nan nan -nan nan nan -2801.0 -nan nan nan -nan nan nan -2802.0 -nan nan nan -nan nan nan -2803.0 -nan nan nan -nan nan nan -2804.0 -nan nan nan -nan nan nan -2805.0 -nan nan nan -nan nan nan -2806.0 -nan nan nan -nan nan nan -2807.0 -nan nan nan -nan nan nan -2808.0 -nan nan nan -nan nan nan -2809.0 -nan nan nan -nan nan nan -2810.0 -nan nan nan -nan nan nan -2811.0 -nan nan nan -nan nan nan -2812.0 -nan nan nan -nan nan nan -2813.0 -nan nan nan -nan nan nan -2814.0 -nan nan nan -nan nan nan -2815.0 -nan nan nan -nan nan nan -2816.0 -nan nan nan -nan nan nan -2817.0 -nan nan nan -nan nan nan -2818.0 -nan nan nan -nan nan nan -2819.0 -nan nan nan -nan nan nan -2820.0 -nan nan nan -nan nan nan -2821.0 -nan nan nan -nan nan nan -2822.0 -nan nan nan -nan nan nan -2823.0 -nan nan nan -nan nan nan -2824.0 -nan nan nan -nan nan nan -2825.0 -nan nan nan -nan nan nan -2826.0 -nan nan nan -nan nan nan -2827.0 -nan nan nan -nan nan nan -2828.0 -nan nan nan -nan nan nan -2829.0 -nan nan nan -nan nan nan -2830.0 -nan nan nan -nan nan nan -2831.0 -nan nan nan -nan nan nan -2832.0 -nan nan nan -nan nan nan -2833.0 -nan nan nan -nan nan nan -2834.0 -nan nan nan -nan nan nan -2835.0 -nan nan nan -nan nan nan -2836.0 -nan nan nan -nan nan nan -2837.0 -nan nan nan -nan nan nan -2838.0 -nan nan nan -nan nan nan -2839.0 -nan nan nan -nan nan nan -2840.0 -nan nan nan -nan nan nan -2841.0 -nan nan nan -nan nan nan -2842.0 -nan nan nan -nan nan nan -2843.0 -nan nan nan -nan nan nan -2844.0 -nan nan nan -nan nan nan -2845.0 -nan nan nan -nan nan nan -2846.0 -nan nan nan -nan nan nan -2847.0 -nan nan nan -nan nan nan -2848.0 -nan nan nan -nan nan nan -2849.0 -nan nan nan -nan nan nan -2850.0 -nan nan nan -nan nan nan -2851.0 -nan nan nan -nan nan nan -2852.0 -nan nan nan -nan nan nan -2853.0 -nan nan nan -nan nan nan -2854.0 -nan nan nan -nan nan nan -2855.0 -nan nan nan -nan nan nan -2856.0 -nan nan nan -nan nan nan -2857.0 -nan nan nan -nan nan nan -2858.0 -nan nan nan -nan nan nan -2859.0 -nan nan nan -nan nan nan -2860.0 -nan nan nan -nan nan nan -2861.0 -nan nan nan -nan nan nan -2862.0 -nan nan nan -nan nan nan -2863.0 -nan nan nan -nan nan nan -2864.0 -nan nan nan -nan nan nan -2865.0 -nan nan nan -nan nan nan -2866.0 -nan nan nan -nan nan nan -2867.0 -nan nan nan -nan nan nan -2868.0 -nan nan nan -nan nan nan -2869.0 -nan nan nan -nan nan nan -2870.0 -nan nan nan -nan nan nan -2871.0 -nan nan nan -nan nan nan -2872.0 -nan nan nan -nan nan nan -2873.0 -nan nan nan -nan nan nan -2874.0 -nan nan nan -nan nan nan -2875.0 -nan nan nan -nan nan nan -2876.0 -nan nan nan -nan nan nan -2877.0 -nan nan nan -nan nan nan -2878.0 -nan nan nan -nan nan nan -2879.0 -nan nan nan -nan nan nan -2880.0 -nan nan nan -nan nan nan -2881.0 -nan nan nan -nan nan nan -2882.0 -nan nan nan -nan nan nan -2883.0 -nan nan nan -nan nan nan -2884.0 -nan nan nan -nan nan nan -2885.0 -nan nan nan -nan nan nan -2886.0 -nan nan nan -nan nan nan -2887.0 -nan nan nan -nan nan nan -2888.0 -nan nan nan -nan nan nan -2889.0 -nan nan nan -nan nan nan -2890.0 -nan nan nan -nan nan nan -2891.0 -nan nan nan -nan nan nan -2892.0 -nan nan nan -nan nan nan -2893.0 -nan nan nan -nan nan nan -2894.0 -nan nan nan -nan nan nan -2895.0 -nan nan nan -nan nan nan -2896.0 -nan nan nan -nan nan nan -2897.0 -nan nan nan -nan nan nan -2898.0 -nan nan nan -nan nan nan -2899.0 -nan nan nan -nan nan nan -2900.0 -nan nan nan -nan nan nan -2901.0 -nan nan nan -nan nan nan -2902.0 -nan nan nan -nan nan nan -2903.0 -nan nan nan -nan nan nan -2904.0 -nan nan nan -nan nan nan -2905.0 -nan nan nan -nan nan nan -2906.0 -nan nan nan -nan nan nan -2907.0 -nan nan nan -nan nan nan -2908.0 -nan nan nan -nan nan nan -2909.0 -nan nan nan -nan nan nan -2910.0 -nan nan nan -nan nan nan -2911.0 -nan nan nan -nan nan nan -2912.0 -nan nan nan -nan nan nan -2913.0 -nan nan nan -nan nan nan -2914.0 -nan nan nan -nan nan nan -2915.0 -nan nan nan -nan nan nan -2916.0 -nan nan nan -nan nan nan -2917.0 -nan nan nan -nan nan nan -2918.0 -nan nan nan -nan nan nan -2919.0 -nan nan nan -nan nan nan -2920.0 -nan nan nan -nan nan nan -2921.0 -nan nan nan -nan nan nan -2922.0 -nan nan nan -nan nan nan -2923.0 -nan nan nan -nan nan nan -2924.0 -nan nan nan -nan nan nan -2925.0 -nan nan nan -nan nan nan -2926.0 -nan nan nan -nan nan nan -2927.0 -nan nan nan -nan nan nan -2928.0 -nan nan nan -nan nan nan -2929.0 -nan nan nan -nan nan nan -2930.0 -nan nan nan -nan nan nan -2931.0 -nan nan nan -nan nan nan -2932.0 -nan nan nan -nan nan nan -2933.0 -nan nan nan -nan nan nan -2934.0 -nan nan nan -nan nan nan -2935.0 -nan nan nan -nan nan nan -2936.0 -nan nan nan -nan nan nan -2937.0 -nan nan nan -nan nan nan -2938.0 -nan nan nan -nan nan nan -2939.0 -nan nan nan -nan nan nan -2940.0 -nan nan nan -nan nan nan -2941.0 -nan nan nan -nan nan nan -2942.0 -nan nan nan -nan nan nan -2943.0 -nan nan nan -nan nan nan -2944.0 -nan nan nan -nan nan nan -2945.0 -nan nan nan -nan nan nan -2946.0 -nan nan nan -nan nan nan -2947.0 -nan nan nan -nan nan nan -2948.0 -nan nan nan -nan nan nan -2949.0 -nan nan nan -nan nan nan -2950.0 -nan nan nan -nan nan nan -2951.0 -nan nan nan -nan nan nan -2952.0 -nan nan nan -nan nan nan -2953.0 -nan nan nan -nan nan nan -2954.0 -nan nan nan -nan nan nan -2955.0 -nan nan nan -nan nan nan -2956.0 -nan nan nan -nan nan nan -2957.0 -nan nan nan -nan nan nan -2958.0 -nan nan nan -nan nan nan -2959.0 -nan nan nan -nan nan nan -2960.0 -nan nan nan -nan nan nan -2961.0 -nan nan nan -nan nan nan -2962.0 -nan nan nan -nan nan nan -2963.0 -nan nan nan -nan nan nan -2964.0 -nan nan nan -nan nan nan -2965.0 -nan nan nan -nan nan nan -2966.0 -nan nan nan -nan nan nan -2967.0 -nan nan nan -nan nan nan -2968.0 -nan nan nan -nan nan nan -2969.0 -nan nan nan -nan nan nan -2970.0 -nan nan nan -nan nan nan -2971.0 -nan nan nan -nan nan nan -2972.0 -nan nan nan -nan nan nan -2973.0 -nan nan nan -nan nan nan -2974.0 -nan nan nan -nan nan nan -2975.0 -nan nan nan -nan nan nan -2976.0 -nan nan nan -nan nan nan -2977.0 -nan nan nan -nan nan nan -2978.0 -nan nan nan -nan nan nan -2980.0 -nan nan nan -nan nan nan -2981.0 -nan nan nan -nan nan nan -2982.0 -nan nan nan -nan nan nan -2983.0 -nan nan nan -nan nan nan -2984.0 -nan nan nan -nan nan nan -2985.0 -nan nan nan -nan nan nan -2986.0 -nan nan nan -nan nan nan -2987.0 -nan nan nan -nan nan nan -2988.0 -nan nan nan -nan nan nan -2989.0 -nan nan nan -nan nan nan -2990.0 -nan nan nan -nan nan nan -2991.0 -nan nan nan -nan nan nan -2992.0 -nan nan nan -nan nan nan -2993.0 -nan nan nan -nan nan nan -2994.0 -nan nan nan -nan nan nan -2995.0 -nan nan nan -nan nan nan -2996.0 -nan nan nan -nan nan nan -2997.0 -nan nan nan -nan nan nan -2998.0 -nan nan nan -nan nan nan -2999.0 -nan nan nan -nan nan nan -3000.0 -nan nan nan -nan nan nan -3001.0 -nan nan nan -nan nan nan -3002.0 -nan nan nan -nan nan nan -3003.0 -nan nan nan -nan nan nan -3004.0 -nan nan nan -nan nan nan -3005.0 -nan nan nan -nan nan nan -3006.0 -nan nan nan -nan nan nan -3007.0 -nan nan nan -nan nan nan -3008.0 -nan nan nan -nan nan nan -3009.0 -nan nan nan -nan nan nan -3010.0 -nan nan nan -nan nan nan -3011.0 -nan nan nan -nan nan nan -3012.0 -nan nan nan -nan nan nan -3013.0 -nan nan nan -nan nan nan -3014.0 -nan nan nan -nan nan nan -3015.0 -nan nan nan -nan nan nan -3016.0 -nan nan nan -nan nan nan -3017.0 -nan nan nan -nan nan nan -3018.0 -nan nan nan -nan nan nan -3019.0 -nan nan nan -nan nan nan -3020.0 -nan nan nan -nan nan nan -3021.0 -nan nan nan -nan nan nan -3022.0 -nan nan nan -nan nan nan -3023.0 -nan nan nan -nan nan nan -3024.0 -nan nan nan -nan nan nan -3025.0 -nan nan nan -nan nan nan -3026.0 -nan nan nan -nan nan nan -3027.0 -nan nan nan -nan nan nan -3028.0 -nan nan nan -nan nan nan -3029.0 -nan nan nan -nan nan nan -3030.0 -nan nan nan -nan nan nan -3031.0 -nan nan nan -nan nan nan -3032.0 -nan nan nan -nan nan nan -3033.0 -nan nan nan -nan nan nan -3034.0 -nan nan nan -nan nan nan -3035.0 -nan nan nan -nan nan nan -3036.0 -nan nan nan -nan nan nan -3037.0 -nan nan nan -nan nan nan -3038.0 -nan nan nan -nan nan nan -3039.0 -nan nan nan -nan nan nan -3040.0 -nan nan nan -nan nan nan -3041.0 -nan nan nan -nan nan nan -3042.0 -nan nan nan -nan nan nan -3043.0 -nan nan nan -nan nan nan -3044.0 -nan nan nan -nan nan nan -3045.0 -nan nan nan -nan nan nan -3046.0 -nan nan nan -nan nan nan -3047.0 -nan nan nan -nan nan nan -3048.0 -nan nan nan -nan nan nan -3049.0 -nan nan nan -nan nan nan -3050.0 -nan nan nan -nan nan nan -3051.0 -nan nan nan -nan nan nan -3052.0 -nan nan nan -nan nan nan -3053.0 -nan nan nan -nan nan nan -3054.0 -nan nan nan -nan nan nan -3055.0 -nan nan nan -nan nan nan -3056.0 -nan nan nan -nan nan nan -3057.0 -nan nan nan -nan nan nan -3058.0 -nan nan nan -nan nan nan -3059.0 -nan nan nan -nan nan nan -3060.0 -nan nan nan -nan nan nan -3061.0 -nan nan nan -nan nan nan -3062.0 -nan nan nan -nan nan nan -3063.0 -nan nan nan -nan nan nan -3065.0 -nan nan nan -nan nan nan -3066.0 -nan nan nan -nan nan nan -3067.0 -nan nan nan -nan nan nan -3068.0 -nan nan nan -nan nan nan -3069.0 -nan nan nan -nan nan nan -3070.0 -nan nan nan -nan nan nan -3071.0 -nan nan nan -nan nan nan -3072.0 -nan nan nan -nan nan nan -3073.0 -nan nan nan -nan nan nan -3074.0 -nan nan nan -nan nan nan -3075.0 -nan nan nan -nan nan nan -3076.0 -nan nan nan -nan nan nan -3077.0 -nan nan nan -nan nan nan -3078.0 -nan nan nan -nan nan nan -3079.0 -nan nan nan -nan nan nan -3080.0 -nan nan nan -nan nan nan -3081.0 -nan nan nan -nan nan nan -3082.0 -nan nan nan -nan nan nan -3083.0 -nan nan nan -nan nan nan -3084.0 -nan nan nan -nan nan nan -3085.0 -nan nan nan -nan nan nan -3086.0 -nan nan nan -nan nan nan -3087.0 -nan nan nan -nan nan nan -3088.0 -nan nan nan -nan nan nan -3089.0 -nan nan nan -nan nan nan -3090.0 -nan nan nan -nan nan nan -3091.0 -nan nan nan -nan nan nan -3092.0 -nan nan nan -nan nan nan -3093.0 -nan nan nan -nan nan nan -3094.0 -nan nan nan -nan nan nan -3095.0 -nan nan nan -nan nan nan -3096.0 -nan nan nan -nan nan nan -3097.0 -nan nan nan -nan nan nan -3098.0 -nan nan nan -nan nan nan -3099.0 -nan nan nan -nan nan nan -3100.0 -nan nan nan -nan nan nan -3101.0 -nan nan nan -nan nan nan -3102.0 -nan nan nan -nan nan nan -3103.0 -nan nan nan -nan nan nan -3104.0 -nan nan nan -nan nan nan -3105.0 -nan nan nan -nan nan nan -3106.0 -nan nan nan -nan nan nan -3107.0 -nan nan nan -nan nan nan -3108.0 -nan nan nan -nan nan nan -3109.0 -nan nan nan -nan nan nan -3110.0 -nan nan nan -nan nan nan -3111.0 -nan nan nan -nan nan nan -3112.0 -nan nan nan -nan nan nan -3113.0 -nan nan nan -nan nan nan -3114.0 -nan nan nan -nan nan nan -3115.0 -nan nan nan -nan nan nan -3116.0 -nan nan nan -nan nan nan -3117.0 -nan nan nan -nan nan nan -3118.0 -nan nan nan -nan nan nan -3119.0 -nan nan nan -nan nan nan -3120.0 -nan nan nan -nan nan nan -3121.0 -nan nan nan -nan nan nan -3122.0 -nan nan nan -nan nan nan -3123.0 -nan nan nan -nan nan nan -3124.0 -nan nan nan -nan nan nan -3125.0 -nan nan nan -nan nan nan -3126.0 -nan nan nan -nan nan nan -3127.0 -nan nan nan -nan nan nan -3128.0 -nan nan nan -nan nan nan -3129.0 -nan nan nan -nan nan nan -3130.0 -nan nan nan -nan nan nan -3131.0 -nan nan nan -nan nan nan -3132.0 -nan nan nan -nan nan nan -3133.0 -nan nan nan -nan nan nan -3134.0 -nan nan nan -nan nan nan -3135.0 -nan nan nan -nan nan nan -3136.0 -nan nan nan -nan nan nan -3137.0 -nan nan nan -nan nan nan -3138.0 -nan nan nan -nan nan nan -3139.0 -nan nan nan -nan nan nan -3140.0 -nan nan nan -nan nan nan -3141.0 -nan nan nan -nan nan nan -3142.0 -nan nan nan -nan nan nan -3143.0 -nan nan nan -nan nan nan -3144.0 -nan nan nan -nan nan nan -3145.0 -nan nan nan -nan nan nan -3146.0 -nan nan nan -nan nan nan -3147.0 -nan nan nan -nan nan nan -3148.0 -nan nan nan -nan nan nan -3149.0 -nan nan nan -nan nan nan -3150.0 -nan nan nan -nan nan nan -3151.0 -nan nan nan -nan nan nan -3152.0 -nan nan nan -nan nan nan -3153.0 -nan nan nan -nan nan nan -3154.0 -nan nan nan -nan nan nan -3155.0 -nan nan nan -nan nan nan -3156.0 -nan nan nan -nan nan nan -3157.0 -nan nan nan -nan nan nan -3158.0 -nan nan nan -nan nan nan -3159.0 -nan nan nan -nan nan nan -3160.0 -nan nan nan -nan nan nan -3161.0 -nan nan nan -nan nan nan -3162.0 -nan nan nan -nan nan nan -3163.0 -nan nan nan -nan nan nan -3164.0 -nan nan nan -nan nan nan -3165.0 -nan nan nan -nan nan nan -3166.0 -nan nan nan -nan nan nan -3167.0 -nan nan nan -nan nan nan -3168.0 -nan nan nan -nan nan nan -3169.0 -nan nan nan -nan nan nan -3170.0 -nan nan nan -nan nan nan -3171.0 -nan nan nan -nan nan nan -3172.0 -nan nan nan -nan nan nan -3173.0 -nan nan nan -nan nan nan -3174.0 -nan nan nan -nan nan nan -3175.0 -nan nan nan -nan nan nan -3176.0 -nan nan nan -nan nan nan -3177.0 -nan nan nan -nan nan nan -3178.0 -nan nan nan -nan nan nan -3179.0 -nan nan nan -nan nan nan -3180.0 -nan nan nan -nan nan nan -3181.0 -nan nan nan -nan nan nan -3182.0 -nan nan nan -nan nan nan -3183.0 -nan nan nan -nan nan nan -3184.0 -nan nan nan -nan nan nan -3185.0 -nan nan nan -nan nan nan -3186.0 -nan nan nan -nan nan nan -3187.0 -nan nan nan -nan nan nan -3188.0 -nan nan nan -nan nan nan -3189.0 -nan nan nan -nan nan nan -3190.0 -nan nan nan -nan nan nan -3191.0 -nan nan nan -nan nan nan -3192.0 -nan nan nan -nan nan nan -3193.0 -nan nan nan -nan nan nan -3194.0 -nan nan nan -nan nan nan -3195.0 -nan nan nan -nan nan nan -3196.0 -nan nan nan -nan nan nan -3197.0 -nan nan nan -nan nan nan -3198.0 -nan nan nan -nan nan nan -3199.0 -nan nan nan -nan nan nan -3200.0 -nan nan nan -nan nan nan -3201.0 -nan nan nan -nan nan nan -3202.0 -nan nan nan -nan nan nan -3203.0 -nan nan nan -nan nan nan -3204.0 -nan nan nan -nan nan nan -3205.0 -nan nan nan -nan nan nan -3206.0 -nan nan nan -nan nan nan -3207.0 -nan nan nan -nan nan nan -3208.0 -nan nan nan -nan nan nan -3209.0 -nan nan nan -nan nan nan -3210.0 -nan nan nan -nan nan nan -3211.0 -nan nan nan -nan nan nan -3212.0 -nan nan nan -nan nan nan -3213.0 -nan nan nan -nan nan nan -3214.0 -nan nan nan -nan nan nan -3215.0 -nan nan nan -nan nan nan -3216.0 -nan nan nan -nan nan nan -3217.0 -nan nan nan -nan nan nan -3218.0 -nan nan nan -nan nan nan -3219.0 -nan nan nan -nan nan nan -3220.0 -nan nan nan -nan nan nan -3221.0 -nan nan nan -nan nan nan -3222.0 -nan nan nan -nan nan nan -3223.0 -nan nan nan -nan nan nan -3224.0 -nan nan nan -nan nan nan -3225.0 -nan nan nan -nan nan nan -3226.0 -nan nan nan -nan nan nan -3227.0 -nan nan nan -nan nan nan -3228.0 -nan nan nan -nan nan nan -3229.0 -nan nan nan -nan nan nan -3230.0 -nan nan nan -nan nan nan -3231.0 -nan nan nan -nan nan nan -3232.0 -nan nan nan -nan nan nan -3233.0 -nan nan nan -nan nan nan -3234.0 -nan nan nan -nan nan nan -3235.0 -nan nan nan -nan nan nan -3236.0 -nan nan nan -nan nan nan -3237.0 -nan nan nan -nan nan nan -3238.0 -nan nan nan -nan nan nan -3239.0 -nan nan nan -nan nan nan -3240.0 -nan nan nan -nan nan nan -3241.0 -nan nan nan -nan nan nan -3242.0 -nan nan nan -nan nan nan -3243.0 -nan nan nan -nan nan nan -3244.0 -nan nan nan -nan nan nan -3245.0 -nan nan nan -nan nan nan -3246.0 -nan nan nan -nan nan nan -3247.0 -nan nan nan -nan nan nan -3248.0 -nan nan nan -nan nan nan -3249.0 -nan nan nan -nan nan nan -3250.0 -nan nan nan -nan nan nan -3251.0 -nan nan nan -nan nan nan -3252.0 -nan nan nan -nan nan nan -3253.0 -nan nan nan -nan nan nan -3254.0 -nan nan nan -nan nan nan -3255.0 -nan nan nan -nan nan nan -3256.0 -nan nan nan -nan nan nan -3257.0 -nan nan nan -nan nan nan -3258.0 -nan nan nan -nan nan nan -3259.0 -nan nan nan -nan nan nan -3260.0 -nan nan nan -nan nan nan -3261.0 -nan nan nan -nan nan nan -3262.0 -nan nan nan -nan nan nan -3263.0 -nan nan nan -nan nan nan -3264.0 -nan nan nan -nan nan nan -3265.0 -nan nan nan -nan nan nan -3266.0 -nan nan nan -nan nan nan -3267.0 -nan nan nan -nan nan nan -3268.0 -nan nan nan -nan nan nan -3269.0 -nan nan nan -nan nan nan -3270.0 -nan nan nan -nan nan nan -3271.0 -nan nan nan -nan nan nan -3272.0 -nan nan nan -nan nan nan -3273.0 -nan nan nan -nan nan nan -3274.0 -nan nan nan -nan nan nan -3275.0 -nan nan nan -nan nan nan -3276.0 -nan nan nan -nan nan nan -3277.0 -nan nan nan -nan nan nan -3278.0 -nan nan nan -nan nan nan -3279.0 -nan nan nan -nan nan nan -3280.0 -nan nan nan -nan nan nan -3281.0 -nan nan nan -nan nan nan -3282.0 -nan nan nan -nan nan nan -3283.0 -nan nan nan -nan nan nan -3284.0 -nan nan nan -nan nan nan -3285.0 -nan nan nan -nan nan nan -3286.0 -nan nan nan -nan nan nan -3287.0 -nan nan nan -nan nan nan -3288.0 -nan nan nan -nan nan nan -3289.0 -nan nan nan -nan nan nan -3290.0 -nan nan nan -nan nan nan -3291.0 -nan nan nan -nan nan nan -3292.0 -nan nan nan -nan nan nan -3293.0 -nan nan nan -nan nan nan -3294.0 -nan nan nan -nan nan nan -3295.0 -nan nan nan -nan nan nan -3296.0 -nan nan nan -nan nan nan -3297.0 -nan nan nan -nan nan nan -3298.0 -nan nan nan -nan nan nan -3299.0 -nan nan nan -nan nan nan -3300.0 -nan nan nan -nan nan nan -3301.0 -nan nan nan -nan nan nan -3302.0 -nan nan nan -nan nan nan -3303.0 -nan nan nan -nan nan nan -3304.0 -nan nan nan -nan nan nan -3305.0 -nan nan nan -nan nan nan -3306.0 -nan nan nan -nan nan nan -3307.0 -nan nan nan -nan nan nan -3308.0 -nan nan nan -nan nan nan -3309.0 -nan nan nan -nan nan nan -3310.0 -nan nan nan -nan nan nan -3311.0 -nan nan nan -nan nan nan -3312.0 -nan nan nan -nan nan nan -3313.0 -nan nan nan -nan nan nan -3314.0 -nan nan nan -nan nan nan -3315.0 -nan nan nan -nan nan nan -3316.0 -nan nan nan -nan nan nan -3317.0 -nan nan nan -nan nan nan -3318.0 -nan nan nan -nan nan nan -3319.0 -nan nan nan -nan nan nan -3320.0 -nan nan nan -nan nan nan -3321.0 -nan nan nan -nan nan nan -3322.0 -nan nan nan -nan nan nan -3323.0 -nan nan nan -nan nan nan -3324.0 -nan nan nan -nan nan nan -3325.0 -nan nan nan -nan nan nan -3326.0 -nan nan nan -nan nan nan -3327.0 -nan nan nan -nan nan nan -3328.0 -nan nan nan -nan nan nan -3329.0 -nan nan nan -nan nan nan -3330.0 -nan nan nan -nan nan nan -3331.0 -nan nan nan -nan nan nan -3332.0 -nan nan nan -nan nan nan -3333.0 -nan nan nan -nan nan nan -3334.0 -nan nan nan -nan nan nan -3335.0 -nan nan nan -nan nan nan -3336.0 -nan nan nan -nan nan nan -3337.0 -nan nan nan -nan nan nan -3338.0 -nan nan nan -nan nan nan -3339.0 -nan nan nan -nan nan nan -3340.0 -nan nan nan -nan nan nan -3341.0 -nan nan nan -nan nan nan -3342.0 -nan nan nan -nan nan nan -3343.0 -nan nan nan -nan nan nan -3344.0 -nan nan nan -nan nan nan -3345.0 -nan nan nan -nan nan nan -3346.0 -nan nan nan -nan nan nan -3347.0 -nan nan nan -nan nan nan -3348.0 -nan nan nan -nan nan nan -3349.0 -nan nan nan -nan nan nan -3350.0 -nan nan nan -nan nan nan -3351.0 -nan nan nan -nan nan nan -3352.0 -nan nan nan -nan nan nan -3353.0 -nan nan nan -nan nan nan -3354.0 -nan nan nan -nan nan nan -3355.0 -nan nan nan -nan nan nan -3356.0 -nan nan nan -nan nan nan -3357.0 -nan nan nan -nan nan nan -3358.0 -nan nan nan -nan nan nan -3359.0 -nan nan nan -nan nan nan -3360.0 -nan nan nan -nan nan nan -3361.0 -nan nan nan -nan nan nan -3362.0 -nan nan nan -nan nan nan -3363.0 -nan nan nan -nan nan nan -3364.0 -nan nan nan -nan nan nan -3365.0 -nan nan nan -nan nan nan -3366.0 -nan nan nan -nan nan nan -3367.0 -nan nan nan -nan nan nan -3368.0 -nan nan nan -nan nan nan -3369.0 -nan nan nan -nan nan nan -3370.0 -nan nan nan -nan nan nan -3371.0 -nan nan nan -nan nan nan -3372.0 -nan nan nan -nan nan nan -3373.0 -nan nan nan -nan nan nan -3374.0 -nan nan nan -nan nan nan -3375.0 -nan nan nan -nan nan nan -3376.0 -nan nan nan -nan nan nan -3377.0 -nan nan nan -nan nan nan -3378.0 -nan nan nan -nan nan nan -3379.0 -nan nan nan -nan nan nan -3380.0 -nan nan nan -nan nan nan -3381.0 -nan nan nan -nan nan nan -3382.0 -nan nan nan -nan nan nan -3383.0 -nan nan nan -nan nan nan -3384.0 -nan nan nan -nan nan nan -3385.0 -nan nan nan -nan nan nan -3386.0 -nan nan nan -nan nan nan -3387.0 -nan nan nan -nan nan nan -3388.0 -nan nan nan -nan nan nan -3389.0 -nan nan nan -nan nan nan -3390.0 -nan nan nan -nan nan nan -3391.0 -nan nan nan -nan nan nan -3392.0 -nan nan nan -nan nan nan -3393.0 -nan nan nan -nan nan nan -3394.0 -nan nan nan -nan nan nan -3395.0 -nan nan nan -nan nan nan -3396.0 -nan nan nan -nan nan nan -3397.0 -nan nan nan -nan nan nan -3398.0 -nan nan nan -nan nan nan -3399.0 -nan nan nan -nan nan nan -3400.0 -nan nan nan -nan nan nan -3401.0 -nan nan nan -nan nan nan -3402.0 -nan nan nan -nan nan nan -3403.0 -nan nan nan -nan nan nan -3404.0 -nan nan nan -nan nan nan -3405.0 -nan nan nan -nan nan nan -3406.0 -nan nan nan -nan nan nan -3407.0 -nan nan nan -nan nan nan -3408.0 -nan nan nan -nan nan nan -3409.0 -nan nan nan -nan nan nan -3410.0 -nan nan nan -nan nan nan -3411.0 -nan nan nan -nan nan nan -3412.0 -nan nan nan -nan nan nan -3413.0 -nan nan nan -nan nan nan -3414.0 -nan nan nan -nan nan nan -3415.0 -nan nan nan -nan nan nan -3416.0 -nan nan nan -nan nan nan -3417.0 -nan nan nan -nan nan nan -3418.0 -nan nan nan -nan nan nan -3419.0 -nan nan nan -nan nan nan -3420.0 -nan nan nan -nan nan nan -3422.0 -nan nan nan -nan nan nan -3423.0 -nan nan nan -nan nan nan -3424.0 -nan nan nan -nan nan nan -3425.0 -nan nan nan -nan nan nan -3426.0 -nan nan nan -nan nan nan -3427.0 -nan nan nan -nan nan nan -3428.0 -nan nan nan -nan nan nan -3429.0 -nan nan nan -nan nan nan -3430.0 -nan nan nan -nan nan nan -3431.0 -nan nan nan -nan nan nan -3432.0 -nan nan nan -nan nan nan -3433.0 -nan nan nan -nan nan nan -3434.0 -nan nan nan -nan nan nan -3435.0 -nan nan nan -nan nan nan -3436.0 -nan nan nan -nan nan nan -3437.0 -nan nan nan -nan nan nan -3438.0 -nan nan nan -nan nan nan -3439.0 -nan nan nan -nan nan nan -3440.0 -nan nan nan -nan nan nan -3441.0 -nan nan nan -nan nan nan -3442.0 -nan nan nan -nan nan nan -3443.0 -nan nan nan -nan nan nan -3444.0 -nan nan nan -nan nan nan -3445.0 -nan nan nan -nan nan nan -3446.0 -nan nan nan -nan nan nan -3447.0 -nan nan nan -nan nan nan -3448.0 -nan nan nan -nan nan nan -3449.0 -nan nan nan -nan nan nan -3450.0 -nan nan nan -nan nan nan -3451.0 -nan nan nan -nan nan nan -3452.0 -nan nan nan -nan nan nan -3453.0 -nan nan nan -nan nan nan -3454.0 -nan nan nan -nan nan nan -3455.0 -nan nan nan -nan nan nan -3456.0 -nan nan nan -nan nan nan -3457.0 -nan nan nan -nan nan nan -3458.0 -nan nan nan -nan nan nan -3459.0 -nan nan nan -nan nan nan -3460.0 -nan nan nan -nan nan nan -3461.0 -nan nan nan -nan nan nan -3462.0 -nan nan nan -nan nan nan -3463.0 -nan nan nan -nan nan nan -3464.0 -nan nan nan -nan nan nan -3465.0 -nan nan nan -nan nan nan -3466.0 -nan nan nan -nan nan nan -3467.0 -nan nan nan -nan nan nan -3468.0 -nan nan nan -nan nan nan -3469.0 -nan nan nan -nan nan nan -3470.0 -nan nan nan -nan nan nan -3471.0 -nan nan nan -nan nan nan -3472.0 -nan nan nan -nan nan nan -3473.0 -nan nan nan -nan nan nan -3474.0 -nan nan nan -nan nan nan -3475.0 -nan nan nan -nan nan nan -3476.0 -nan nan nan -nan nan nan -3477.0 -nan nan nan -nan nan nan -3478.0 -nan nan nan -nan nan nan -3479.0 -nan nan nan -nan nan nan -3480.0 -nan nan nan -nan nan nan -3481.0 -nan nan nan -nan nan nan -3482.0 -nan nan nan -nan nan nan -3483.0 -nan nan nan -nan nan nan -3484.0 -nan nan nan -nan nan nan -3485.0 -nan nan nan -nan nan nan -3486.0 -nan nan nan -nan nan nan -3487.0 -nan nan nan -nan nan nan -3488.0 -nan nan nan -nan nan nan -3489.0 -nan nan nan -nan nan nan -3490.0 -nan nan nan -nan nan nan -3491.0 -nan nan nan -nan nan nan -3492.0 -nan nan nan -nan nan nan -3493.0 -nan nan nan -nan nan nan -3494.0 -nan nan nan -nan nan nan -3495.0 -nan nan nan -nan nan nan -3496.0 -nan nan nan -nan nan nan -3497.0 -nan nan nan -nan nan nan -3498.0 -nan nan nan -nan nan nan -3499.0 -nan nan nan -nan nan nan -3500.0 -nan nan nan -nan nan nan -3501.0 -nan nan nan -nan nan nan -3502.0 -nan nan nan -nan nan nan -3503.0 -nan nan nan -nan nan nan -3504.0 -nan nan nan -nan nan nan -3505.0 -nan nan nan -nan nan nan -3506.0 -nan nan nan -nan nan nan -3507.0 -nan nan nan -nan nan nan -3508.0 -nan nan nan -nan nan nan -3509.0 -nan nan nan -nan nan nan -3510.0 -nan nan nan -nan nan nan -3511.0 -nan nan nan -nan nan nan -3512.0 -nan nan nan -nan nan nan -3513.0 -nan nan nan -nan nan nan -3514.0 -nan nan nan -nan nan nan -3515.0 -nan nan nan -nan nan nan -3516.0 -nan nan nan -nan nan nan -3517.0 -nan nan nan -nan nan nan -3518.0 -nan nan nan -nan nan nan -3519.0 -nan nan nan -nan nan nan -3520.0 -nan nan nan -nan nan nan -3521.0 -nan nan nan -nan nan nan -3522.0 -nan nan nan -nan nan nan -3523.0 -nan nan nan -nan nan nan -3524.0 -nan nan nan -nan nan nan -3525.0 -nan nan nan -nan nan nan -3526.0 -nan nan nan -nan nan nan -3527.0 -nan nan nan -nan nan nan -3528.0 -nan nan nan -nan nan nan -3529.0 -nan nan nan -nan nan nan -3530.0 -nan nan nan -nan nan nan -3531.0 -nan nan nan -nan nan nan -3532.0 -nan nan nan -nan nan nan -3533.0 -nan nan nan -nan nan nan -3535.0 -nan nan nan -nan nan nan -3536.0 -nan nan nan -nan nan nan -3537.0 -nan nan nan -nan nan nan -3538.0 -nan nan nan -nan nan nan -3539.0 -nan nan nan -nan nan nan -3540.0 -nan nan nan -nan nan nan -3541.0 -nan nan nan -nan nan nan -3542.0 -nan nan nan -nan nan nan -3543.0 -nan nan nan -nan nan nan -3544.0 -nan nan nan -nan nan nan -3545.0 -nan nan nan -nan nan nan -3546.0 -nan nan nan -nan nan nan -3547.0 -nan nan nan -nan nan nan -3548.0 -nan nan nan -nan nan nan -3549.0 -nan nan nan -nan nan nan -3550.0 -nan nan nan -nan nan nan -3551.0 -nan nan nan -nan nan nan -3552.0 -nan nan nan -nan nan nan -3553.0 -nan nan nan -nan nan nan -3554.0 -nan nan nan -nan nan nan -3555.0 -nan nan nan -nan nan nan -3556.0 -nan nan nan -nan nan nan -3557.0 -nan nan nan -nan nan nan -3558.0 -nan nan nan -nan nan nan -3559.0 -nan nan nan -nan nan nan -3560.0 -nan nan nan -nan nan nan -3561.0 -nan nan nan -nan nan nan -3562.0 -nan nan nan -nan nan nan -3563.0 -nan nan nan -nan nan nan -3564.0 -nan nan nan -nan nan nan -3565.0 -nan nan nan -nan nan nan -3566.0 -nan nan nan -nan nan nan -3567.0 -nan nan nan -nan nan nan -3568.0 -nan nan nan -nan nan nan -3569.0 -nan nan nan -nan nan nan -3570.0 -nan nan nan -nan nan nan -3571.0 -nan nan nan -nan nan nan -3572.0 -nan nan nan -nan nan nan -3573.0 -nan nan nan -nan nan nan -3574.0 -nan nan nan -nan nan nan -3575.0 -nan nan nan -nan nan nan -3576.0 -nan nan nan -nan nan nan -3577.0 -nan nan nan -nan nan nan -3578.0 -nan nan nan -nan nan nan -3579.0 -nan nan nan -nan nan nan -3580.0 -nan nan nan -nan nan nan -3581.0 -nan nan nan -nan nan nan -3582.0 -nan nan nan -nan nan nan -3583.0 -nan nan nan -nan nan nan -3584.0 -nan nan nan -nan nan nan -3585.0 -nan nan nan -nan nan nan -3586.0 -nan nan nan -nan nan nan -3587.0 -nan nan nan -nan nan nan -3588.0 -nan nan nan -nan nan nan -3589.0 -nan nan nan -nan nan nan -3590.0 -nan nan nan -nan nan nan -3591.0 -nan nan nan -nan nan nan -3592.0 -nan nan nan -nan nan nan -3593.0 -nan nan nan -nan nan nan -3594.0 -nan nan nan -nan nan nan -3595.0 -nan nan nan -nan nan nan -3596.0 -nan nan nan -nan nan nan -3597.0 -nan nan nan -nan nan nan -3598.0 -nan nan nan -nan nan nan -3599.0 -nan nan nan -nan nan nan -3600.0 -nan nan nan -nan nan nan -3601.0 -nan nan nan -nan nan nan -3602.0 -nan nan nan -nan nan nan -3603.0 -nan nan nan -nan nan nan -3604.0 -nan nan nan -nan nan nan -3605.0 -nan nan nan -nan nan nan -3606.0 -nan nan nan -nan nan nan -3607.0 -nan nan nan -nan nan nan -3608.0 -nan nan nan -nan nan nan -3609.0 -nan nan nan -nan nan nan -3610.0 -nan nan nan -nan nan nan -3611.0 -nan nan nan -nan nan nan -3612.0 -nan nan nan -nan nan nan -3613.0 -nan nan nan -nan nan nan -3614.0 -nan nan nan -nan nan nan -3615.0 -nan nan nan -nan nan nan -3616.0 -nan nan nan -nan nan nan -3617.0 -nan nan nan -nan nan nan -3618.0 -nan nan nan -nan nan nan -3619.0 -nan nan nan -nan nan nan -3620.0 -nan nan nan -nan nan nan -3621.0 -nan nan nan -nan nan nan -3622.0 -nan nan nan -nan nan nan -3623.0 -nan nan nan -nan nan nan -3624.0 -nan nan nan -nan nan nan -3625.0 -nan nan nan -nan nan nan -3626.0 -nan nan nan -nan nan nan -3627.0 -nan nan nan -nan nan nan -3628.0 -nan nan nan -nan nan nan -3629.0 -nan nan nan -nan nan nan -3630.0 -nan nan nan -nan nan nan -3631.0 -nan nan nan -nan nan nan -3632.0 -nan nan nan -nan nan nan -3633.0 -nan nan nan -nan nan nan -3634.0 -nan nan nan -nan nan nan -3635.0 -nan nan nan -nan nan nan -3636.0 -nan nan nan -nan nan nan -3637.0 -nan nan nan -nan nan nan -3638.0 -nan nan nan -nan nan nan -3639.0 -nan nan nan -nan nan nan -3640.0 -nan nan nan -nan nan nan -3641.0 -nan nan nan -nan nan nan -3642.0 -nan nan nan -nan nan nan -3643.0 -nan nan nan -nan nan nan -3644.0 -nan nan nan -nan nan nan -3645.0 -nan nan nan -nan nan nan -3646.0 -nan nan nan -nan nan nan -3647.0 -nan nan nan -nan nan nan -3648.0 -nan nan nan -nan nan nan -3649.0 -nan nan nan -nan nan nan -3650.0 -nan nan nan -nan nan nan -3651.0 -nan nan nan -nan nan nan -3652.0 -nan nan nan -nan nan nan -3653.0 -nan nan nan -nan nan nan -3654.0 -nan nan nan -nan nan nan -3655.0 -nan nan nan -nan nan nan -3656.0 -nan nan nan -nan nan nan -3657.0 -nan nan nan -nan nan nan -3658.0 -nan nan nan -nan nan nan -3659.0 -nan nan nan -nan nan nan -3660.0 -nan nan nan -nan nan nan -3661.0 -nan nan nan -nan nan nan -3662.0 -nan nan nan -nan nan nan -3663.0 -nan nan nan -nan nan nan -3664.0 -nan nan nan -nan nan nan -3665.0 -nan nan nan -nan nan nan -3666.0 -nan nan nan -nan nan nan -3667.0 -nan nan nan -nan nan nan -3668.0 -nan nan nan -nan nan nan -3669.0 -nan nan nan -nan nan nan -3670.0 -nan nan nan -nan nan nan -3671.0 -nan nan nan -nan nan nan -3672.0 -nan nan nan -nan nan nan -3673.0 -nan nan nan -nan nan nan -3674.0 -nan nan nan -nan nan nan -3675.0 -nan nan nan -nan nan nan -3676.0 -nan nan nan -nan nan nan -3677.0 -nan nan nan -nan nan nan -3678.0 -nan nan nan -nan nan nan -3679.0 -nan nan nan -nan nan nan -3680.0 -nan nan nan -nan nan nan -3681.0 -nan nan nan -nan nan nan -3682.0 -nan nan nan -nan nan nan -3683.0 -nan nan nan -nan nan nan -3684.0 -nan nan nan -nan nan nan -3685.0 -nan nan nan -nan nan nan -3686.0 -nan nan nan -nan nan nan -3687.0 -nan nan nan -nan nan nan -3688.0 -nan nan nan -nan nan nan -3689.0 -nan nan nan -nan nan nan -3690.0 -nan nan nan -nan nan nan -3691.0 -nan nan nan -nan nan nan -3692.0 -nan nan nan -nan nan nan -3693.0 -nan nan nan -nan nan nan -3694.0 -nan nan nan -nan nan nan -3695.0 -nan nan nan -nan nan nan -3696.0 -nan nan nan -nan nan nan -3697.0 -nan nan nan -nan nan nan -3698.0 -nan nan nan -nan nan nan -3699.0 -nan nan nan -nan nan nan -3700.0 -nan nan nan -nan nan nan -3701.0 -nan nan nan -nan nan nan -3702.0 -nan nan nan -nan nan nan -3703.0 -nan nan nan -nan nan nan -3704.0 -nan nan nan -nan nan nan -3705.0 -nan nan nan -nan nan nan -3706.0 -nan nan nan -nan nan nan -3707.0 -nan nan nan -nan nan nan -3708.0 -nan nan nan -nan nan nan -3709.0 -nan nan nan -nan nan nan -3710.0 -nan nan nan -nan nan nan -3711.0 -nan nan nan -nan nan nan -3712.0 -nan nan nan -nan nan nan -3713.0 -nan nan nan -nan nan nan -3714.0 -nan nan nan -nan nan nan -3715.0 -nan nan nan -nan nan nan -3716.0 -nan nan nan -nan nan nan -3717.0 -nan nan nan -nan nan nan -3718.0 -nan nan nan -nan nan nan -3719.0 -nan nan nan -nan nan nan -3720.0 -nan nan nan -nan nan nan -3721.0 -nan nan nan -nan nan nan -3722.0 -nan nan nan -nan nan nan -3723.0 -nan nan nan -nan nan nan -3724.0 -nan nan nan -nan nan nan -3725.0 -nan nan nan -nan nan nan -3726.0 -nan nan nan -nan nan nan -3727.0 -nan nan nan -nan nan nan -3728.0 -nan nan nan -nan nan nan -3729.0 -nan nan nan -nan nan nan -3730.0 -nan nan nan -nan nan nan -3731.0 -nan nan nan -nan nan nan -3732.0 -nan nan nan -nan nan nan -3733.0 -nan nan nan -nan nan nan -3734.0 -nan nan nan -nan nan nan -3735.0 -nan nan nan -nan nan nan -3736.0 -nan nan nan -nan nan nan -3737.0 -nan nan nan -nan nan nan -3738.0 -nan nan nan -nan nan nan -3739.0 -nan nan nan -nan nan nan -3740.0 -nan nan nan -nan nan nan -3741.0 -nan nan nan -nan nan nan -3742.0 -nan nan nan -nan nan nan -3743.0 -nan nan nan -nan nan nan -3744.0 -nan nan nan -nan nan nan -3745.0 -nan nan nan -nan nan nan -3746.0 -nan nan nan -nan nan nan -3747.0 -nan nan nan -nan nan nan -3748.0 -nan nan nan -nan nan nan -3749.0 -nan nan nan -nan nan nan -3750.0 -nan nan nan -nan nan nan -3751.0 -nan nan nan -nan nan nan -3752.0 -nan nan nan -nan nan nan -3753.0 -nan nan nan -nan nan nan -3754.0 -nan nan nan -nan nan nan -3755.0 -nan nan nan -nan nan nan -3756.0 -nan nan nan -nan nan nan -3757.0 -nan nan nan -nan nan nan -3758.0 -nan nan nan -nan nan nan -3759.0 -nan nan nan -nan nan nan -3760.0 -nan nan nan -nan nan nan -3761.0 -nan nan nan -nan nan nan -3762.0 -nan nan nan -nan nan nan -3763.0 -nan nan nan -nan nan nan -3764.0 -nan nan nan -nan nan nan -3765.0 -nan nan nan -nan nan nan -3766.0 -nan nan nan -nan nan nan -3768.0 -nan nan nan -nan nan nan -3769.0 -nan nan nan -nan nan nan -3770.0 -nan nan nan -nan nan nan -3771.0 -nan nan nan -nan nan nan -3772.0 -nan nan nan -nan nan nan -3773.0 -nan nan nan -nan nan nan -3774.0 -nan nan nan -nan nan nan -3775.0 -nan nan nan -nan nan nan -3776.0 -nan nan nan -nan nan nan -3777.0 -nan nan nan -nan nan nan -3778.0 -nan nan nan -nan nan nan -3779.0 -nan nan nan -nan nan nan -3780.0 -nan nan nan -nan nan nan -3781.0 -nan nan nan -nan nan nan -3782.0 -nan nan nan -nan nan nan -3783.0 -nan nan nan -nan nan nan -3784.0 -nan nan nan -nan nan nan -3785.0 -nan nan nan -nan nan nan -3786.0 -nan nan nan -nan nan nan -3787.0 -nan nan nan -nan nan nan -3788.0 -nan nan nan -nan nan nan -3789.0 -nan nan nan -nan nan nan -3790.0 -nan nan nan -nan nan nan -3791.0 -nan nan nan -nan nan nan -3792.0 -nan nan nan -nan nan nan -3793.0 -nan nan nan -nan nan nan -3794.0 -nan nan nan -nan nan nan -3795.0 -nan nan nan -nan nan nan -3796.0 -nan nan nan -nan nan nan -3797.0 -nan nan nan -nan nan nan -3798.0 -nan nan nan -nan nan nan -3799.0 -nan nan nan -nan nan nan -3800.0 -nan nan nan -nan nan nan -3801.0 -nan nan nan -nan nan nan -3802.0 -nan nan nan -nan nan nan -3803.0 -nan nan nan -nan nan nan -3804.0 -nan nan nan -nan nan nan -3805.0 -nan nan nan -nan nan nan -3806.0 -nan nan nan -nan nan nan -3807.0 -nan nan nan -nan nan nan -3808.0 -nan nan nan -nan nan nan -3809.0 -nan nan nan -nan nan nan -3810.0 -nan nan nan -nan nan nan -3811.0 -nan nan nan -nan nan nan -3812.0 -nan nan nan -nan nan nan -3813.0 -nan nan nan -nan nan nan -3814.0 -nan nan nan -nan nan nan -3815.0 -nan nan nan -nan nan nan -3816.0 -nan nan nan -nan nan nan -3817.0 -nan nan nan -nan nan nan -3818.0 -nan nan nan -nan nan nan -3819.0 -nan nan nan -nan nan nan -3820.0 -nan nan nan -nan nan nan -3821.0 -nan nan nan -nan nan nan -3822.0 -nan nan nan -nan nan nan -3823.0 -nan nan nan -nan nan nan -3824.0 -nan nan nan -nan nan nan -3825.0 -nan nan nan -nan nan nan -3826.0 -nan nan nan -nan nan nan -3827.0 -nan nan nan -nan nan nan -3828.0 -nan nan nan -nan nan nan -3829.0 -nan nan nan -nan nan nan -3830.0 -nan nan nan -nan nan nan -3831.0 -nan nan nan -nan nan nan -3832.0 -nan nan nan -nan nan nan -3833.0 -nan nan nan -nan nan nan -3834.0 -nan nan nan -nan nan nan -3835.0 -nan nan nan -nan nan nan -3836.0 -nan nan nan -nan nan nan -3837.0 -nan nan nan -nan nan nan -3838.0 -nan nan nan -nan nan nan -3839.0 -nan nan nan -nan nan nan -3840.0 -nan nan nan -nan nan nan -3841.0 -nan nan nan -nan nan nan -3842.0 -nan nan nan -nan nan nan -3843.0 -nan nan nan -nan nan nan -3844.0 -nan nan nan -nan nan nan -3845.0 -nan nan nan -nan nan nan -3846.0 -nan nan nan -nan nan nan -3847.0 -nan nan nan -nan nan nan -3848.0 -nan nan nan -nan nan nan -3849.0 -nan nan nan -nan nan nan -3850.0 -nan nan nan -nan nan nan -3851.0 -nan nan nan -nan nan nan -3852.0 -nan nan nan -nan nan nan -3853.0 -nan nan nan -nan nan nan -3854.0 -nan nan nan -nan nan nan -3855.0 -nan nan nan -nan nan nan -3856.0 -nan nan nan -nan nan nan -3857.0 -nan nan nan -nan nan nan -3858.0 -nan nan nan -nan nan nan -3859.0 -nan nan nan -nan nan nan -3860.0 -nan nan nan -nan nan nan -3861.0 -nan nan nan -nan nan nan -3862.0 -nan nan nan -nan nan nan -3863.0 -nan nan nan -nan nan nan -3864.0 -nan nan nan -nan nan nan -3865.0 -nan nan nan -nan nan nan -3866.0 -nan nan nan -nan nan nan -3867.0 -nan nan nan -nan nan nan -3868.0 -nan nan nan -nan nan nan -3869.0 -nan nan nan -nan nan nan -3870.0 -nan nan nan -nan nan nan -3871.0 -nan nan nan -nan nan nan -3872.0 -nan nan nan -nan nan nan -3873.0 -nan nan nan -nan nan nan -3874.0 -nan nan nan -nan nan nan -3875.0 -nan nan nan -nan nan nan -3876.0 -nan nan nan -nan nan nan -3877.0 -nan nan nan -nan nan nan -3878.0 -nan nan nan -nan nan nan -3879.0 -nan nan nan -nan nan nan -3880.0 -nan nan nan -nan nan nan -3881.0 -nan nan nan -nan nan nan -3882.0 -nan nan nan -nan nan nan -3883.0 -nan nan nan -nan nan nan -3884.0 -nan nan nan -nan nan nan -3885.0 -nan nan nan -nan nan nan -3886.0 -nan nan nan -nan nan nan -3887.0 -nan nan nan -nan nan nan -3888.0 -nan nan nan -nan nan nan -3889.0 -nan nan nan -nan nan nan -3890.0 -nan nan nan -nan nan nan -3891.0 -nan nan nan -nan nan nan -3892.0 -nan nan nan -nan nan nan -3893.0 -nan nan nan -nan nan nan -3894.0 -nan nan nan -nan nan nan -3895.0 -nan nan nan -nan nan nan -3896.0 -nan nan nan -nan nan nan -3897.0 -nan nan nan -nan nan nan -3898.0 -nan nan nan -nan nan nan -3899.0 -nan nan nan -nan nan nan -3900.0 -nan nan nan -nan nan nan -3901.0 -nan nan nan -nan nan nan -3902.0 -nan nan nan -nan nan nan -3903.0 -nan nan nan -nan nan nan -3904.0 -nan nan nan -nan nan nan -3905.0 -nan nan nan -nan nan nan -3906.0 -nan nan nan -nan nan nan -3907.0 -nan nan nan -nan nan nan -3908.0 -nan nan nan -nan nan nan -3909.0 -nan nan nan -nan nan nan -3910.0 -nan nan nan -nan nan nan -3911.0 -nan nan nan -nan nan nan -3912.0 -nan nan nan -nan nan nan -3913.0 -nan nan nan -nan nan nan -3914.0 -nan nan nan -nan nan nan -3915.0 -nan nan nan -nan nan nan -3916.0 -nan nan nan -nan nan nan -3917.0 -nan nan nan -nan nan nan -3918.0 -nan nan nan -nan nan nan -3919.0 -nan nan nan -nan nan nan -3920.0 -nan nan nan -nan nan nan -3921.0 -nan nan nan -nan nan nan -3922.0 -nan nan nan -nan nan nan -3923.0 -nan nan nan -nan nan nan -3924.0 -nan nan nan -nan nan nan -3925.0 -nan nan nan -nan nan nan -3926.0 -nan nan nan -nan nan nan -3927.0 -nan nan nan -nan nan nan -3928.0 -nan nan nan -nan nan nan -3929.0 -nan nan nan -nan nan nan -3930.0 -nan nan nan -nan nan nan -3931.0 -nan nan nan -nan nan nan -3932.0 -nan nan nan -nan nan nan -3933.0 -nan nan nan -nan nan nan -3934.0 -nan nan nan -nan nan nan -3935.0 -nan nan nan -nan nan nan -3936.0 -nan nan nan -nan nan nan -3937.0 -nan nan nan -nan nan nan -3938.0 -nan nan nan -nan nan nan -3939.0 -nan nan nan -nan nan nan -3940.0 -nan nan nan -nan nan nan -3941.0 -nan nan nan -nan nan nan -3942.0 -nan nan nan -nan nan nan -3943.0 -nan nan nan -nan nan nan -3944.0 -nan nan nan -nan nan nan -3945.0 -nan nan nan -nan nan nan -3946.0 -nan nan nan -nan nan nan -3947.0 -nan nan nan -nan nan nan -3948.0 -nan nan nan -nan nan nan -3949.0 -nan nan nan -nan nan nan -3950.0 -nan nan nan -nan nan nan -3951.0 -nan nan nan -nan nan nan -3952.0 -nan nan nan -nan nan nan -3953.0 -nan nan nan -nan nan nan -3954.0 -nan nan nan -nan nan nan -3955.0 -nan nan nan -nan nan nan -3956.0 -nan nan nan -nan nan nan -3957.0 -nan nan nan -nan nan nan -3958.0 -nan nan nan -nan nan nan -3959.0 -nan nan nan -nan nan nan -3960.0 -nan nan nan -nan nan nan -3961.0 -nan nan nan -nan nan nan -3962.0 -nan nan nan -nan nan nan -3963.0 -nan nan nan -nan nan nan -3964.0 -nan nan nan -nan nan nan -3965.0 -nan nan nan -nan nan nan -3966.0 -nan nan nan -nan nan nan -3967.0 -nan nan nan -nan nan nan -3968.0 -nan nan nan -nan nan nan -3969.0 -nan nan nan -nan nan nan -3970.0 -nan nan nan -nan nan nan -3971.0 -nan nan nan -nan nan nan -3972.0 -nan nan nan -nan nan nan -3973.0 -nan nan nan -nan nan nan -3974.0 -nan nan nan -nan nan nan -3975.0 -nan nan nan -nan nan nan -3976.0 -nan nan nan -nan nan nan -3977.0 -nan nan nan -nan nan nan -3978.0 -nan nan nan -nan nan nan -3979.0 -nan nan nan -nan nan nan -3980.0 -nan nan nan -nan nan nan -3981.0 -nan nan nan -nan nan nan -3982.0 -nan nan nan -nan nan nan -3983.0 -nan nan nan -nan nan nan -3984.0 -nan nan nan -nan nan nan -3985.0 -nan nan nan -nan nan nan -3986.0 -nan nan nan -nan nan nan -3987.0 -nan nan nan -nan nan nan -3988.0 -nan nan nan -nan nan nan -3989.0 -nan nan nan -nan nan nan -3990.0 -nan nan nan -nan nan nan -3991.0 -nan nan nan -nan nan nan -3992.0 -nan nan nan -nan nan nan -3993.0 -nan nan nan -nan nan nan -3994.0 -nan nan nan -nan nan nan -3995.0 -nan nan nan -nan nan nan -3996.0 -nan nan nan -nan nan nan -3997.0 -nan nan nan -nan nan nan -3998.0 -nan nan nan -nan nan nan -3999.0 -nan nan nan -nan nan nan -4000.0 -nan nan nan -nan nan nan -4001.0 -nan nan nan -nan nan nan -4002.0 -nan nan nan -nan nan nan -4003.0 -nan nan nan -nan nan nan -4004.0 -nan nan nan -nan nan nan -4005.0 -nan nan nan -nan nan nan -4006.0 -nan nan nan -nan nan nan -4007.0 -nan nan nan -nan nan nan -4008.0 -nan nan nan -nan nan nan -4009.0 -nan nan nan -nan nan nan -4010.0 -nan nan nan -nan nan nan -4011.0 -nan nan nan -nan nan nan -4012.0 -nan nan nan -nan nan nan -4013.0 -nan nan nan -nan nan nan -4014.0 -nan nan nan -nan nan nan -4015.0 -nan nan nan -nan nan nan -4016.0 -nan nan nan -nan nan nan -4017.0 -nan nan nan -nan nan nan -4018.0 -nan nan nan -nan nan nan -4019.0 -nan nan nan -nan nan nan -4020.0 -nan nan nan -nan nan nan -4021.0 -nan nan nan -nan nan nan -4022.0 -nan nan nan -nan nan nan -4023.0 -nan nan nan -nan nan nan -4024.0 -nan nan nan -nan nan nan -4025.0 -nan nan nan -nan nan nan -4026.0 -nan nan nan -nan nan nan -4027.0 -nan nan nan -nan nan nan -4028.0 -nan nan nan -nan nan nan -4029.0 -nan nan nan -nan nan nan -4030.0 -nan nan nan -nan nan nan -4031.0 -nan nan nan -nan nan nan -4032.0 -nan nan nan -nan nan nan -4033.0 -nan nan nan -nan nan nan -4034.0 -nan nan nan -nan nan nan -4035.0 -nan nan nan -nan nan nan -4036.0 -nan nan nan -nan nan nan -4037.0 -nan nan nan -nan nan nan -4038.0 -nan nan nan -nan nan nan -4039.0 -nan nan nan -nan nan nan -4040.0 -nan nan nan -nan nan nan -4041.0 -nan nan nan -nan nan nan -4042.0 -nan nan nan -nan nan nan -4043.0 -nan nan nan -nan nan nan -4044.0 -nan nan nan -nan nan nan -4045.0 -nan nan nan -nan nan nan -4046.0 -nan nan nan -nan nan nan -4047.0 -nan nan nan -nan nan nan -4048.0 -nan nan nan -nan nan nan -4049.0 -nan nan nan -nan nan nan -4050.0 -nan nan nan -nan nan nan -4051.0 -nan nan nan -nan nan nan -4052.0 -nan nan nan -nan nan nan -4053.0 -nan nan nan -nan nan nan -4054.0 -nan nan nan -nan nan nan -4055.0 -nan nan nan -nan nan nan -4056.0 -nan nan nan -nan nan nan -4057.0 -nan nan nan -nan nan nan -4058.0 -nan nan nan -nan nan nan -4059.0 -nan nan nan -nan nan nan -4060.0 -nan nan nan -nan nan nan -4061.0 -nan nan nan -nan nan nan -4062.0 -nan nan nan -nan nan nan -4063.0 -nan nan nan -nan nan nan -4064.0 -nan nan nan -nan nan nan -4065.0 -nan nan nan -nan nan nan -4066.0 -nan nan nan -nan nan nan -4067.0 -nan nan nan -nan nan nan -4068.0 -nan nan nan -nan nan nan -4069.0 -nan nan nan -nan nan nan -4070.0 -nan nan nan -nan nan nan -4071.0 -nan nan nan -nan nan nan -4072.0 -nan nan nan -nan nan nan -4073.0 -nan nan nan -nan nan nan -4074.0 -nan nan nan -nan nan nan -4075.0 -nan nan nan -nan nan nan -4076.0 -nan nan nan -nan nan nan -4077.0 -nan nan nan -nan nan nan -4078.0 -nan nan nan -nan nan nan -4079.0 -nan nan nan -nan nan nan -4080.0 -nan nan nan -nan nan nan -4081.0 -nan nan nan -nan nan nan -4082.0 -nan nan nan -nan nan nan -4083.0 -nan nan nan -nan nan nan -4084.0 -nan nan nan -nan nan nan -4085.0 -nan nan nan -nan nan nan -4086.0 -nan nan nan -nan nan nan -4087.0 -nan nan nan -nan nan nan -4088.0 -nan nan nan -nan nan nan -4089.0 -nan nan nan -nan nan nan -4090.0 -nan nan nan -nan nan nan -4091.0 -nan nan nan -nan nan nan -4092.0 -nan nan nan -nan nan nan -4093.0 -nan nan nan -nan nan nan -4094.0 -nan nan nan -nan nan nan -4095.0 -nan nan nan -nan nan nan -4096.0 -nan nan nan -nan nan nan -4097.0 -nan nan nan -nan nan nan -4098.0 -nan nan nan -nan nan nan -4099.0 -nan nan nan -nan nan nan -4100.0 -nan nan nan -nan nan nan -4101.0 -nan nan nan -nan nan nan -4102.0 -nan nan nan -nan nan nan -4103.0 -nan nan nan -nan nan nan -4104.0 -nan nan nan -nan nan nan -4105.0 -nan nan nan -nan nan nan -4106.0 -nan nan nan -nan nan nan -4107.0 -nan nan nan -nan nan nan -4108.0 -nan nan nan -nan nan nan -4109.0 -nan nan nan -nan nan nan -4110.0 -nan nan nan -nan nan nan -4111.0 -nan nan nan -nan nan nan -4112.0 -nan nan nan -nan nan nan -4113.0 -nan nan nan -nan nan nan -4114.0 -nan nan nan -nan nan nan -4115.0 -nan nan nan -nan nan nan -4116.0 -nan nan nan -nan nan nan -4117.0 -nan nan nan -nan nan nan -4118.0 -nan nan nan -nan nan nan -4119.0 -nan nan nan -nan nan nan -4120.0 -nan nan nan -nan nan nan -4121.0 -nan nan nan -nan nan nan -4122.0 -nan nan nan -nan nan nan -4123.0 -nan nan nan -nan nan nan -4124.0 -nan nan nan -nan nan nan -4125.0 -nan nan nan -nan nan nan -4126.0 -nan nan nan -nan nan nan -4127.0 -nan nan nan -nan nan nan -4128.0 -nan nan nan -nan nan nan -4129.0 -nan nan nan -nan nan nan -4130.0 -nan nan nan -nan nan nan -4131.0 -nan nan nan -nan nan nan -4132.0 -nan nan nan -nan nan nan -4133.0 -nan nan nan -nan nan nan -4134.0 -nan nan nan -nan nan nan -4135.0 -nan nan nan -nan nan nan -4136.0 -nan nan nan -nan nan nan -4137.0 -nan nan nan -nan nan nan -4138.0 -nan nan nan -nan nan nan -4139.0 -nan nan nan -nan nan nan -4140.0 -nan nan nan -nan nan nan -4141.0 -nan nan nan -nan nan nan -4142.0 -nan nan nan -nan nan nan -4143.0 -nan nan nan -nan nan nan -4144.0 -nan nan nan -nan nan nan -4145.0 -nan nan nan -nan nan nan -4146.0 -nan nan nan -nan nan nan -4147.0 -nan nan nan -nan nan nan -4148.0 -nan nan nan -nan nan nan -4149.0 -nan nan nan -nan nan nan -4150.0 -nan nan nan -nan nan nan -4151.0 -nan nan nan -nan nan nan -4152.0 -nan nan nan -nan nan nan -4153.0 -nan nan nan -nan nan nan -4154.0 -nan nan nan -nan nan nan -4155.0 -nan nan nan -nan nan nan -4156.0 -nan nan nan -nan nan nan -4157.0 -nan nan nan -nan nan nan -4158.0 -nan nan nan -nan nan nan -4159.0 -nan nan nan -nan nan nan -4160.0 -nan nan nan -nan nan nan -4161.0 -nan nan nan -nan nan nan -4162.0 -nan nan nan -nan nan nan -4163.0 -nan nan nan -nan nan nan -4164.0 -nan nan nan -nan nan nan -4165.0 -nan nan nan -nan nan nan -4166.0 -nan nan nan -nan nan nan -4167.0 -nan nan nan -nan nan nan -4168.0 -nan nan nan -nan nan nan -4169.0 -nan nan nan -nan nan nan -4170.0 -nan nan nan -nan nan nan -4171.0 -nan nan nan -nan nan nan -4172.0 -nan nan nan -nan nan nan -4173.0 -nan nan nan -nan nan nan -4174.0 -nan nan nan -nan nan nan -4175.0 -nan nan nan -nan nan nan -4176.0 -nan nan nan -nan nan nan -4177.0 -nan nan nan -nan nan nan -4178.0 -nan nan nan -nan nan nan -4179.0 -nan nan nan -nan nan nan -4180.0 -nan nan nan -nan nan nan -4181.0 -nan nan nan -nan nan nan -4182.0 -nan nan nan -nan nan nan -4183.0 -nan nan nan -nan nan nan -4184.0 -nan nan nan -nan nan nan -4185.0 -nan nan nan -nan nan nan -4186.0 -nan nan nan -nan nan nan -4187.0 -nan nan nan -nan nan nan -4188.0 -nan nan nan -nan nan nan -4189.0 -nan nan nan -nan nan nan -4190.0 -nan nan nan -nan nan nan -4191.0 -nan nan nan -nan nan nan -4192.0 -nan nan nan -nan nan nan -4193.0 -nan nan nan -nan nan nan -4194.0 -nan nan nan -nan nan nan -4195.0 -nan nan nan -nan nan nan -4196.0 -nan nan nan -nan nan nan -4197.0 -nan nan nan -nan nan nan -4198.0 -nan nan nan -nan nan nan -4199.0 -nan nan nan -nan nan nan -4200.0 -nan nan nan -nan nan nan -4201.0 -nan nan nan -nan nan nan -4202.0 -nan nan nan -nan nan nan -4203.0 -nan nan nan -nan nan nan -4204.0 -nan nan nan -nan nan nan -4205.0 -nan nan nan -nan nan nan -4206.0 -nan nan nan -nan nan nan -4207.0 -nan nan nan -nan nan nan -4208.0 -nan nan nan -nan nan nan -4209.0 -nan nan nan -nan nan nan -4210.0 -nan nan nan -nan nan nan -4211.0 -nan nan nan -nan nan nan -4212.0 -nan nan nan -nan nan nan -4213.0 -nan nan nan -nan nan nan -4214.0 -nan nan nan -nan nan nan -4215.0 -nan nan nan -nan nan nan -4216.0 -nan nan nan -nan nan nan -4217.0 -nan nan nan -nan nan nan -4218.0 -nan nan nan -nan nan nan -4219.0 -nan nan nan -nan nan nan -4220.0 -nan nan nan -nan nan nan -4221.0 -nan nan nan -nan nan nan -4222.0 -nan nan nan -nan nan nan -4223.0 -nan nan nan -nan nan nan -4224.0 -nan nan nan -nan nan nan -4225.0 -nan nan nan -nan nan nan -4226.0 -nan nan nan -nan nan nan -4227.0 -nan nan nan -nan nan nan -4228.0 -nan nan nan -nan nan nan -4229.0 -nan nan nan -nan nan nan -4230.0 -nan nan nan -nan nan nan -4231.0 -nan nan nan -nan nan nan -4232.0 -nan nan nan -nan nan nan -4233.0 -nan nan nan -nan nan nan -4234.0 -nan nan nan -nan nan nan -4235.0 -nan nan nan -nan nan nan -4236.0 -nan nan nan -nan nan nan -4237.0 -nan nan nan -nan nan nan -4238.0 -nan nan nan -nan nan nan -4239.0 -nan nan nan -nan nan nan -4240.0 -nan nan nan -nan nan nan -4241.0 -nan nan nan -nan nan nan -4242.0 -nan nan nan -nan nan nan -4243.0 -nan nan nan -nan nan nan -4244.0 -nan nan nan -nan nan nan -4245.0 -nan nan nan -nan nan nan -4246.0 -nan nan nan -nan nan nan -4247.0 -nan nan nan -nan nan nan -4248.0 -nan nan nan -nan nan nan -4249.0 -nan nan nan -nan nan nan -4250.0 -nan nan nan -nan nan nan -4251.0 -nan nan nan -nan nan nan -4252.0 -nan nan nan -nan nan nan -4253.0 -nan nan nan -nan nan nan -4254.0 -nan nan nan -nan nan nan -4255.0 -nan nan nan -nan nan nan -4257.0 -nan nan nan -nan nan nan -4258.0 -nan nan nan -nan nan nan -4259.0 -nan nan nan -nan nan nan -4260.0 -nan nan nan -nan nan nan -4261.0 -nan nan nan -nan nan nan -4262.0 -nan nan nan -nan nan nan -4263.0 -nan nan nan -nan nan nan -4264.0 -nan nan nan -nan nan nan -4265.0 -nan nan nan -nan nan nan -4266.0 -nan nan nan -nan nan nan -4267.0 -nan nan nan -nan nan nan -4268.0 -nan nan nan -nan nan nan -4269.0 -nan nan nan -nan nan nan -4270.0 -nan nan nan -nan nan nan -4271.0 -nan nan nan -nan nan nan -4272.0 -nan nan nan -nan nan nan -4273.0 -nan nan nan -nan nan nan -4274.0 -nan nan nan -nan nan nan -4275.0 -nan nan nan -nan nan nan -4276.0 -nan nan nan -nan nan nan -4277.0 -nan nan nan -nan nan nan -4278.0 -nan nan nan -nan nan nan -4279.0 -nan nan nan -nan nan nan -4280.0 -nan nan nan -nan nan nan -4281.0 -nan nan nan -nan nan nan -4282.0 -nan nan nan -nan nan nan -4283.0 -nan nan nan -nan nan nan -4284.0 -nan nan nan -nan nan nan -4285.0 -nan nan nan -nan nan nan -4286.0 -nan nan nan -nan nan nan -4287.0 -nan nan nan -nan nan nan -4288.0 -nan nan nan -nan nan nan -4289.0 -nan nan nan -nan nan nan -4290.0 -nan nan nan -nan nan nan -4291.0 -nan nan nan -nan nan nan -4292.0 -nan nan nan -nan nan nan -4293.0 -nan nan nan -nan nan nan -4294.0 -nan nan nan -nan nan nan -4295.0 -nan nan nan -nan nan nan -4296.0 -nan nan nan -nan nan nan -4297.0 -nan nan nan -nan nan nan -4298.0 -nan nan nan -nan nan nan -4299.0 -nan nan nan -nan nan nan -4300.0 -nan nan nan -nan nan nan -4301.0 -nan nan nan -nan nan nan -4302.0 -nan nan nan -nan nan nan -4303.0 -nan nan nan -nan nan nan -4304.0 -nan nan nan -nan nan nan -4305.0 -nan nan nan -nan nan nan -4306.0 -nan nan nan -nan nan nan -4307.0 -nan nan nan -nan nan nan -4308.0 -nan nan nan -nan nan nan -4309.0 -nan nan nan -nan nan nan -4310.0 -nan nan nan -nan nan nan -4311.0 -nan nan nan -nan nan nan -4312.0 -nan nan nan -nan nan nan -4313.0 -nan nan nan -nan nan nan -4314.0 -nan nan nan -nan nan nan -4315.0 -nan nan nan -nan nan nan -4316.0 -nan nan nan -nan nan nan -4317.0 -nan nan nan -nan nan nan -4318.0 -nan nan nan -nan nan nan -4319.0 -nan nan nan -nan nan nan -4320.0 -nan nan nan -nan nan nan -4321.0 -nan nan nan -nan nan nan -4322.0 -nan nan nan -nan nan nan -4323.0 -nan nan nan -nan nan nan -4324.0 -nan nan nan -nan nan nan -4325.0 -nan nan nan -nan nan nan -4326.0 -nan nan nan -nan nan nan -4327.0 -nan nan nan -nan nan nan -4328.0 -nan nan nan -nan nan nan -4329.0 -nan nan nan -nan nan nan -4330.0 -nan nan nan -nan nan nan -4331.0 -nan nan nan -nan nan nan -4332.0 -nan nan nan -nan nan nan -4333.0 -nan nan nan -nan nan nan -4334.0 -nan nan nan -nan nan nan -4335.0 -nan nan nan -nan nan nan -4336.0 -nan nan nan -nan nan nan -4337.0 -nan nan nan -nan nan nan -4338.0 -nan nan nan -nan nan nan -4339.0 -nan nan nan -nan nan nan -4340.0 -nan nan nan -nan nan nan -4341.0 -nan nan nan -nan nan nan -4342.0 -nan nan nan -nan nan nan -4343.0 -nan nan nan -nan nan nan -4344.0 -nan nan nan -nan nan nan -4345.0 -nan nan nan -nan nan nan -4346.0 -nan nan nan -nan nan nan -4347.0 -nan nan nan -nan nan nan -4348.0 -nan nan nan -nan nan nan -4349.0 -nan nan nan -nan nan nan -4350.0 -nan nan nan -nan nan nan -4351.0 -nan nan nan -nan nan nan -4352.0 -nan nan nan -nan nan nan -4353.0 -nan nan nan -nan nan nan -4354.0 -nan nan nan -nan nan nan -4355.0 -nan nan nan -nan nan nan -4356.0 -nan nan nan -nan nan nan -4357.0 -nan nan nan -nan nan nan -4358.0 -nan nan nan -nan nan nan -4359.0 -nan nan nan -nan nan nan -4360.0 -nan nan nan -nan nan nan -4361.0 -nan nan nan -nan nan nan -4362.0 -nan nan nan -nan nan nan -4363.0 -nan nan nan -nan nan nan -4364.0 -nan nan nan -nan nan nan -4365.0 -nan nan nan -nan nan nan -4366.0 -nan nan nan -nan nan nan -4367.0 -nan nan nan -nan nan nan -4368.0 -nan nan nan -nan nan nan -4369.0 -nan nan nan -nan nan nan -4370.0 -nan nan nan -nan nan nan -4371.0 -nan nan nan -nan nan nan -4372.0 -nan nan nan -nan nan nan -4373.0 -nan nan nan -nan nan nan -4374.0 -nan nan nan -nan nan nan -4375.0 -nan nan nan -nan nan nan -4376.0 -nan nan nan -nan nan nan -4377.0 -nan nan nan -nan nan nan -4378.0 -nan nan nan -nan nan nan -4379.0 -nan nan nan -nan nan nan -4380.0 -nan nan nan -nan nan nan -4381.0 -nan nan nan -nan nan nan -4382.0 -nan nan nan -nan nan nan -4383.0 -nan nan nan -nan nan nan -4384.0 -nan nan nan -nan nan nan -4385.0 -nan nan nan -nan nan nan -4386.0 -nan nan nan -nan nan nan -4387.0 -nan nan nan -nan nan nan -4388.0 -nan nan nan -nan nan nan -4389.0 -nan nan nan -nan nan nan -4390.0 -nan nan nan -nan nan nan -4391.0 -nan nan nan -nan nan nan -4392.0 -nan nan nan -nan nan nan -4393.0 -nan nan nan -nan nan nan -4394.0 -nan nan nan -nan nan nan -4395.0 -nan nan nan -nan nan nan -4396.0 -nan nan nan -nan nan nan -4397.0 -nan nan nan -nan nan nan -4398.0 -nan nan nan -nan nan nan -4399.0 -nan nan nan -nan nan nan -4400.0 -nan nan nan -nan nan nan -4401.0 -nan nan nan -nan nan nan -4402.0 -nan nan nan -nan nan nan -4403.0 -nan nan nan -nan nan nan -4404.0 -nan nan nan -nan nan nan -4405.0 -nan nan nan -nan nan nan -4406.0 -nan nan nan -nan nan nan -4407.0 -nan nan nan -nan nan nan -4408.0 -nan nan nan -nan nan nan -4409.0 -nan nan nan -nan nan nan -4410.0 -nan nan nan -nan nan nan -4411.0 -nan nan nan -nan nan nan -4412.0 -nan nan nan -nan nan nan -4413.0 -nan nan nan -nan nan nan -4414.0 -nan nan nan -nan nan nan -4415.0 -nan nan nan -nan nan nan -4416.0 -nan nan nan -nan nan nan -4417.0 -nan nan nan -nan nan nan -4418.0 -nan nan nan -nan nan nan -4419.0 -nan nan nan -nan nan nan -4420.0 -nan nan nan -nan nan nan -4421.0 -nan nan nan -nan nan nan -4422.0 -nan nan nan -nan nan nan -4423.0 -nan nan nan -nan nan nan -4424.0 -nan nan nan -nan nan nan -4425.0 -nan nan nan -nan nan nan -4426.0 -nan nan nan -nan nan nan -4427.0 -nan nan nan -nan nan nan -4428.0 -nan nan nan -nan nan nan -4429.0 -nan nan nan -nan nan nan -4430.0 -nan nan nan -nan nan nan -4431.0 -nan nan nan -nan nan nan -4432.0 -nan nan nan -nan nan nan -4433.0 -nan nan nan -nan nan nan -4434.0 -nan nan nan -nan nan nan -4435.0 -nan nan nan -nan nan nan -4436.0 -nan nan nan -nan nan nan -4437.0 -nan nan nan -nan nan nan -4438.0 -nan nan nan -nan nan nan -4439.0 -nan nan nan -nan nan nan -4440.0 -nan nan nan -nan nan nan -4441.0 -nan nan nan -nan nan nan -4442.0 -nan nan nan -nan nan nan -4443.0 -nan nan nan -nan nan nan -4444.0 -nan nan nan -nan nan nan -4445.0 -nan nan nan -nan nan nan -4446.0 -nan nan nan -nan nan nan -4447.0 -nan nan nan -nan nan nan -4448.0 -nan nan nan -nan nan nan -4449.0 -nan nan nan -nan nan nan -4450.0 -nan nan nan -nan nan nan -4451.0 -nan nan nan -nan nan nan -4452.0 -nan nan nan -nan nan nan -4453.0 -nan nan nan -nan nan nan -4454.0 -nan nan nan -nan nan nan -4455.0 -nan nan nan -nan nan nan -4456.0 -nan nan nan -nan nan nan -4457.0 -nan nan nan -nan nan nan -4458.0 -nan nan nan -nan nan nan -4459.0 -nan nan nan -nan nan nan -4460.0 -nan nan nan -nan nan nan -4461.0 -nan nan nan -nan nan nan -4462.0 -nan nan nan -nan nan nan -4463.0 -nan nan nan -nan nan nan -4464.0 -nan nan nan -nan nan nan -4465.0 -nan nan nan -nan nan nan -4466.0 -nan nan nan -nan nan nan -4467.0 -nan nan nan -nan nan nan -4468.0 -nan nan nan -nan nan nan -4469.0 -nan nan nan -nan nan nan -4470.0 -nan nan nan -nan nan nan -4471.0 -nan nan nan -nan nan nan -4472.0 -nan nan nan -nan nan nan -4473.0 -nan nan nan -nan nan nan -4474.0 -nan nan nan -nan nan nan -4475.0 -nan nan nan -nan nan nan -4476.0 -nan nan nan -nan nan nan -4477.0 -nan nan nan -nan nan nan -4478.0 -nan nan nan -nan nan nan -4479.0 -nan nan nan -nan nan nan -4480.0 -nan nan nan -nan nan nan -4481.0 -nan nan nan -nan nan nan -4482.0 -nan nan nan -nan nan nan -4483.0 -nan nan nan -nan nan nan -4484.0 -nan nan nan -nan nan nan -4485.0 -nan nan nan -nan nan nan -4486.0 -nan nan nan -nan nan nan -4487.0 -nan nan nan -nan nan nan -4488.0 -nan nan nan -nan nan nan -4489.0 -nan nan nan -nan nan nan -4490.0 -nan nan nan -nan nan nan -4491.0 -nan nan nan -nan nan nan -4492.0 -nan nan nan -nan nan nan -4493.0 -nan nan nan -nan nan nan -4494.0 -nan nan nan -nan nan nan -4495.0 -nan nan nan -nan nan nan -4496.0 -nan nan nan -nan nan nan -4497.0 -nan nan nan -nan nan nan -4498.0 -nan nan nan -nan nan nan -4499.0 -nan nan nan -nan nan nan -4500.0 -nan nan nan -nan nan nan -4501.0 -nan nan nan -nan nan nan -4502.0 -nan nan nan -nan nan nan -4503.0 -nan nan nan -nan nan nan -4504.0 -nan nan nan -nan nan nan -4505.0 -nan nan nan -nan nan nan -4506.0 -nan nan nan -nan nan nan -4507.0 -nan nan nan -nan nan nan -4508.0 -nan nan nan -nan nan nan -4509.0 -nan nan nan -nan nan nan -4510.0 -nan nan nan -nan nan nan -4511.0 -nan nan nan -nan nan nan -4512.0 -nan nan nan -nan nan nan -4513.0 -nan nan nan -nan nan nan -4514.0 -nan nan nan -nan nan nan -4515.0 -nan nan nan -nan nan nan -4516.0 -nan nan nan -nan nan nan -4517.0 -nan nan nan -nan nan nan -4518.0 -nan nan nan -nan nan nan -4519.0 -nan nan nan -nan nan nan -4520.0 -nan nan nan -nan nan nan -4521.0 -nan nan nan -nan nan nan -4522.0 -nan nan nan -nan nan nan -4523.0 -nan nan nan -nan nan nan -4524.0 -nan nan nan -nan nan nan -4525.0 -nan nan nan -nan nan nan -4526.0 -nan nan nan -nan nan nan -4527.0 -nan nan nan -nan nan nan -4528.0 -nan nan nan -nan nan nan -4529.0 -nan nan nan -nan nan nan -4530.0 -nan nan nan -nan nan nan -4531.0 -nan nan nan -nan nan nan -4532.0 -nan nan nan -nan nan nan -4533.0 -nan nan nan -nan nan nan -4534.0 -nan nan nan -nan nan nan -4535.0 -nan nan nan -nan nan nan -4536.0 -nan nan nan -nan nan nan -4537.0 -nan nan nan -nan nan nan -4538.0 -nan nan nan -nan nan nan -4539.0 -nan nan nan -nan nan nan -4540.0 -nan nan nan -nan nan nan -4541.0 -nan nan nan -nan nan nan -4542.0 -nan nan nan -nan nan nan -4543.0 -nan nan nan -nan nan nan -4544.0 -nan nan nan -nan nan nan -4545.0 -nan nan nan -nan nan nan -4546.0 -nan nan nan -nan nan nan -4547.0 -nan nan nan -nan nan nan -4548.0 -nan nan nan -nan nan nan -4549.0 -nan nan nan -nan nan nan -4550.0 -nan nan nan -nan nan nan -4551.0 -nan nan nan -nan nan nan -4552.0 -nan nan nan -nan nan nan -4553.0 -nan nan nan -nan nan nan -4554.0 -nan nan nan -nan nan nan -4555.0 -nan nan nan -nan nan nan -4556.0 -nan nan nan -nan nan nan -4557.0 -nan nan nan -nan nan nan -4558.0 -nan nan nan -nan nan nan -4559.0 -nan nan nan -nan nan nan -4560.0 -nan nan nan -nan nan nan -4561.0 -nan nan nan -nan nan nan -4562.0 -nan nan nan -nan nan nan -4563.0 -nan nan nan -nan nan nan -4564.0 -nan nan nan -nan nan nan -4565.0 -nan nan nan -nan nan nan -4566.0 -nan nan nan -nan nan nan -4567.0 -nan nan nan -nan nan nan -4568.0 -nan nan nan -nan nan nan -4569.0 -nan nan nan -nan nan nan -4570.0 -nan nan nan -nan nan nan -4571.0 -nan nan nan -nan nan nan -4572.0 -nan nan nan -nan nan nan -4573.0 -nan nan nan -nan nan nan -4574.0 -nan nan nan -nan nan nan -4575.0 -nan nan nan -nan nan nan -4576.0 -nan nan nan -nan nan nan -4577.0 -nan nan nan -nan nan nan -4578.0 -nan nan nan -nan nan nan -4579.0 -nan nan nan -nan nan nan -4580.0 -nan nan nan -nan nan nan -4581.0 -nan nan nan -nan nan nan -4582.0 -nan nan nan -nan nan nan -4583.0 -nan nan nan -nan nan nan -4584.0 -nan nan nan -nan nan nan -4585.0 -nan nan nan -nan nan nan -4586.0 -nan nan nan -nan nan nan -4587.0 -nan nan nan -nan nan nan -4588.0 -nan nan nan -nan nan nan -4589.0 -nan nan nan -nan nan nan -4590.0 -nan nan nan -nan nan nan -4591.0 -nan nan nan -nan nan nan -4592.0 -nan nan nan -nan nan nan -4593.0 -nan nan nan -nan nan nan -4594.0 -nan nan nan -nan nan nan -4595.0 -nan nan nan -nan nan nan -4596.0 -nan nan nan -nan nan nan -4597.0 -nan nan nan -nan nan nan -4598.0 -nan nan nan -nan nan nan -4599.0 -nan nan nan -nan nan nan -4600.0 -nan nan nan -nan nan nan -4601.0 -nan nan nan -nan nan nan -4602.0 -nan nan nan -nan nan nan -4603.0 -nan nan nan -nan nan nan -4604.0 -nan nan nan -nan nan nan -4605.0 -nan nan nan -nan nan nan -4606.0 -nan nan nan -nan nan nan -4607.0 -nan nan nan -nan nan nan -4608.0 -nan nan nan -nan nan nan -4609.0 -nan nan nan -nan nan nan -4610.0 -nan nan nan -nan nan nan -4611.0 -nan nan nan -nan nan nan -4612.0 -nan nan nan -nan nan nan -4613.0 -nan nan nan -nan nan nan -4614.0 -nan nan nan -nan nan nan -4615.0 -nan nan nan -nan nan nan -4616.0 -nan nan nan -nan nan nan -4617.0 -nan nan nan -nan nan nan -4618.0 -nan nan nan -nan nan nan -4619.0 -nan nan nan -nan nan nan -4620.0 -nan nan nan -nan nan nan -4621.0 -nan nan nan -nan nan nan -4622.0 -nan nan nan -nan nan nan -4623.0 -nan nan nan -nan nan nan -4624.0 -nan nan nan -nan nan nan -4625.0 -nan nan nan -nan nan nan -4626.0 -nan nan nan -nan nan nan -4627.0 -nan nan nan -nan nan nan -4628.0 -nan nan nan -nan nan nan -4629.0 -nan nan nan -nan nan nan -4630.0 -nan nan nan -nan nan nan -4631.0 -nan nan nan -nan nan nan -4632.0 -nan nan nan -nan nan nan -4633.0 -nan nan nan -nan nan nan -4634.0 -nan nan nan -nan nan nan -4635.0 -nan nan nan -nan nan nan -4636.0 -nan nan nan -nan nan nan -4637.0 -nan nan nan -nan nan nan -4638.0 -nan nan nan -nan nan nan -4639.0 -nan nan nan -nan nan nan -4640.0 -nan nan nan -nan nan nan -4641.0 -nan nan nan -nan nan nan -4642.0 -nan nan nan -nan nan nan -4643.0 -nan nan nan -nan nan nan -4644.0 -nan nan nan -nan nan nan -4645.0 -nan nan nan -nan nan nan -4646.0 -nan nan nan -nan nan nan -4647.0 -nan nan nan -nan nan nan -4648.0 -nan nan nan -nan nan nan -4649.0 -nan nan nan -nan nan nan -4650.0 -nan nan nan -nan nan nan -4651.0 -nan nan nan -nan nan nan -4652.0 -nan nan nan -nan nan nan -4653.0 -nan nan nan -nan nan nan -4654.0 -nan nan nan -nan nan nan -4655.0 -nan nan nan -nan nan nan -4656.0 -nan nan nan -nan nan nan -4657.0 -nan nan nan -nan nan nan -4658.0 -nan nan nan -nan nan nan -4659.0 -nan nan nan -nan nan nan -4660.0 -nan nan nan -nan nan nan -4661.0 -nan nan nan -nan nan nan -4662.0 -nan nan nan -nan nan nan -4663.0 -nan nan nan -nan nan nan -4664.0 -nan nan nan -nan nan nan -4665.0 -nan nan nan -nan nan nan -4666.0 -nan nan nan -nan nan nan -4667.0 -nan nan nan -nan nan nan -4668.0 -nan nan nan -nan nan nan -4669.0 -nan nan nan -nan nan nan -4670.0 -nan nan nan -nan nan nan -4671.0 -nan nan nan -nan nan nan -4672.0 -nan nan nan -nan nan nan -4673.0 -nan nan nan -nan nan nan -4674.0 -nan nan nan -nan nan nan -4675.0 -nan nan nan -nan nan nan -4676.0 -nan nan nan -nan nan nan -4677.0 -nan nan nan -nan nan nan -4678.0 -nan nan nan -nan nan nan -4679.0 -nan nan nan -nan nan nan -4680.0 -nan nan nan -nan nan nan -4681.0 -nan nan nan -nan nan nan -4682.0 -nan nan nan -nan nan nan -4683.0 -nan nan nan -nan nan nan -4684.0 -nan nan nan -nan nan nan -4685.0 -nan nan nan -nan nan nan -4686.0 -nan nan nan -nan nan nan -4687.0 -nan nan nan -nan nan nan -4688.0 -nan nan nan -nan nan nan -4689.0 -nan nan nan -nan nan nan -4690.0 -nan nan nan -nan nan nan -4691.0 -nan nan nan -nan nan nan -4692.0 -nan nan nan -nan nan nan -4693.0 -nan nan nan -nan nan nan -4694.0 -nan nan nan -nan nan nan -4695.0 -nan nan nan -nan nan nan -4696.0 -nan nan nan -nan nan nan -4697.0 -nan nan nan -nan nan nan -4698.0 -nan nan nan -nan nan nan -4699.0 -nan nan nan -nan nan nan -4700.0 -nan nan nan -nan nan nan -4701.0 -nan nan nan -nan nan nan -4702.0 -nan nan nan -nan nan nan -4703.0 -nan nan nan -nan nan nan -4704.0 -nan nan nan -nan nan nan -4705.0 -nan nan nan -nan nan nan -4706.0 -nan nan nan -nan nan nan -4707.0 -nan nan nan -nan nan nan -4708.0 -nan nan nan -nan nan nan -4709.0 -nan nan nan -nan nan nan -4710.0 -nan nan nan -nan nan nan -4711.0 -nan nan nan -nan nan nan -4712.0 -nan nan nan -nan nan nan -4713.0 -nan nan nan -nan nan nan -4714.0 -nan nan nan -nan nan nan -4715.0 -nan nan nan -nan nan nan -4716.0 -nan nan nan -nan nan nan -4717.0 -nan nan nan -nan nan nan -4718.0 -nan nan nan -nan nan nan -4719.0 -nan nan nan -nan nan nan -4720.0 -nan nan nan -nan nan nan -4721.0 -nan nan nan -nan nan nan -4722.0 -nan nan nan -nan nan nan -4723.0 -nan nan nan -nan nan nan -4724.0 -nan nan nan -nan nan nan -4725.0 -nan nan nan -nan nan nan -4726.0 -nan nan nan -nan nan nan -4727.0 -nan nan nan -nan nan nan -4728.0 -nan nan nan -nan nan nan -4729.0 -nan nan nan -nan nan nan -4730.0 -nan nan nan -nan nan nan -4731.0 -nan nan nan -nan nan nan -4732.0 -nan nan nan -nan nan nan -4733.0 -nan nan nan -nan nan nan -4734.0 -nan nan nan -nan nan nan -4735.0 -nan nan nan -nan nan nan -4736.0 -nan nan nan -nan nan nan -4737.0 -nan nan nan -nan nan nan -4738.0 -nan nan nan -nan nan nan -4739.0 -nan nan nan -nan nan nan -4740.0 -nan nan nan -nan nan nan -4741.0 -nan nan nan -nan nan nan -4742.0 -nan nan nan -nan nan nan -4743.0 -nan nan nan -nan nan nan -4744.0 -nan nan nan -nan nan nan -4745.0 -nan nan nan -nan nan nan -4746.0 -nan nan nan -nan nan nan -4747.0 -nan nan nan -nan nan nan -4748.0 -nan nan nan -nan nan nan -4749.0 -nan nan nan -nan nan nan -4750.0 -nan nan nan -nan nan nan -4751.0 -nan nan nan -nan nan nan -4752.0 -nan nan nan -nan nan nan -4754.0 -nan nan nan -nan nan nan -4755.0 -nan nan nan -nan nan nan -4756.0 -nan nan nan -nan nan nan -4757.0 -nan nan nan -nan nan nan -4758.0 -nan nan nan -nan nan nan -4759.0 -nan nan nan -nan nan nan -4760.0 -nan nan nan -nan nan nan -4761.0 -nan nan nan -nan nan nan -4762.0 -nan nan nan -nan nan nan -4763.0 -nan nan nan -nan nan nan -4764.0 -nan nan nan -nan nan nan -4765.0 -nan nan nan -nan nan nan -4766.0 -nan nan nan -nan nan nan -4767.0 -nan nan nan -nan nan nan -4768.0 -nan nan nan -nan nan nan -4769.0 -nan nan nan -nan nan nan -4770.0 -nan nan nan -nan nan nan -4771.0 -nan nan nan -nan nan nan -4772.0 -nan nan nan -nan nan nan -4773.0 -nan nan nan -nan nan nan -4774.0 -nan nan nan -nan nan nan -4775.0 -nan nan nan -nan nan nan -4776.0 -nan nan nan -nan nan nan -4777.0 -nan nan nan -nan nan nan -4778.0 -nan nan nan -nan nan nan -4779.0 -nan nan nan -nan nan nan -4780.0 -nan nan nan -nan nan nan -4781.0 -nan nan nan -nan nan nan -4782.0 -nan nan nan -nan nan nan -4783.0 -nan nan nan -nan nan nan -4784.0 -nan nan nan -nan nan nan -4785.0 -nan nan nan -nan nan nan -4786.0 -nan nan nan -nan nan nan -4787.0 -nan nan nan -nan nan nan -4788.0 -nan nan nan -nan nan nan -4789.0 -nan nan nan -nan nan nan -4790.0 -nan nan nan -nan nan nan -4791.0 -nan nan nan -nan nan nan -4792.0 -nan nan nan -nan nan nan -4793.0 -nan nan nan -nan nan nan -4794.0 -nan nan nan -nan nan nan -4795.0 -nan nan nan -nan nan nan -4796.0 -nan nan nan -nan nan nan -4797.0 -nan nan nan -nan nan nan -4798.0 -nan nan nan -nan nan nan -4799.0 -nan nan nan -nan nan nan -4800.0 -nan nan nan -nan nan nan -4801.0 -nan nan nan -nan nan nan -4802.0 -nan nan nan -nan nan nan -4803.0 -nan nan nan -nan nan nan -4804.0 -nan nan nan -nan nan nan -4805.0 -nan nan nan -nan nan nan -4806.0 -nan nan nan -nan nan nan -4807.0 -nan nan nan -nan nan nan -4808.0 -nan nan nan -nan nan nan -4809.0 -nan nan nan -nan nan nan -4810.0 -nan nan nan -nan nan nan -4811.0 -nan nan nan -nan nan nan -4812.0 -nan nan nan -nan nan nan -4813.0 -nan nan nan -nan nan nan -4814.0 -nan nan nan -nan nan nan -4815.0 -nan nan nan -nan nan nan -4816.0 -nan nan nan -nan nan nan -4817.0 -nan nan nan -nan nan nan -4818.0 -nan nan nan -nan nan nan -4819.0 -nan nan nan -nan nan nan -4820.0 -nan nan nan -nan nan nan -4821.0 -nan nan nan -nan nan nan -4822.0 -nan nan nan -nan nan nan -4823.0 -nan nan nan -nan nan nan -4824.0 -nan nan nan -nan nan nan -4825.0 -nan nan nan -nan nan nan -4826.0 -nan nan nan -nan nan nan -4827.0 -nan nan nan -nan nan nan -4828.0 -nan nan nan -nan nan nan -4829.0 -nan nan nan -nan nan nan -4830.0 -nan nan nan -nan nan nan -4831.0 -nan nan nan -nan nan nan -4832.0 -nan nan nan -nan nan nan -4833.0 -nan nan nan -nan nan nan -4834.0 -nan nan nan -nan nan nan -4835.0 -nan nan nan -nan nan nan -4836.0 -nan nan nan -nan nan nan -4837.0 -nan nan nan -nan nan nan -4838.0 -nan nan nan -nan nan nan -4839.0 -nan nan nan -nan nan nan -4840.0 -nan nan nan -nan nan nan -4841.0 -nan nan nan -nan nan nan -4842.0 -nan nan nan -nan nan nan -4843.0 -nan nan nan -nan nan nan -4844.0 -nan nan nan -nan nan nan -4845.0 -nan nan nan -nan nan nan -4846.0 -nan nan nan -nan nan nan -4847.0 -nan nan nan -nan nan nan -4848.0 -nan nan nan -nan nan nan -4849.0 -nan nan nan -nan nan nan -4850.0 -nan nan nan -nan nan nan -4851.0 -nan nan nan -nan nan nan -4852.0 -nan nan nan -nan nan nan -4853.0 -nan nan nan -nan nan nan -4854.0 -nan nan nan -nan nan nan -4855.0 -nan nan nan -nan nan nan -4856.0 -nan nan nan -nan nan nan -4857.0 -nan nan nan -nan nan nan -4858.0 -nan nan nan -nan nan nan -4859.0 -nan nan nan -nan nan nan -4860.0 -nan nan nan -nan nan nan -4861.0 -nan nan nan -nan nan nan -4862.0 -nan nan nan -nan nan nan -4863.0 -nan nan nan -nan nan nan -4864.0 -nan nan nan -nan nan nan -4865.0 -nan nan nan -nan nan nan -4866.0 -nan nan nan -nan nan nan -4867.0 -nan nan nan -nan nan nan -4868.0 -nan nan nan -nan nan nan -4869.0 -nan nan nan -nan nan nan -4870.0 -nan nan nan -nan nan nan -4871.0 -nan nan nan -nan nan nan -4872.0 -nan nan nan -nan nan nan -4873.0 -nan nan nan -nan nan nan -4874.0 -nan nan nan -nan nan nan -4875.0 -nan nan nan -nan nan nan -4876.0 -nan nan nan -nan nan nan -4877.0 -nan nan nan -nan nan nan -4878.0 -nan nan nan -nan nan nan -4879.0 -nan nan nan -nan nan nan -4880.0 -nan nan nan -nan nan nan -4881.0 -nan nan nan -nan nan nan -4882.0 -nan nan nan -nan nan nan -4883.0 -nan nan nan -nan nan nan -4884.0 -nan nan nan -nan nan nan -4885.0 -nan nan nan -nan nan nan -4886.0 -nan nan nan -nan nan nan -4887.0 -nan nan nan -nan nan nan -4888.0 -nan nan nan -nan nan nan -4889.0 -nan nan nan -nan nan nan -4890.0 -nan nan nan -nan nan nan -4891.0 -nan nan nan -nan nan nan -4892.0 -nan nan nan -nan nan nan -4893.0 -nan nan nan -nan nan nan -4894.0 -nan nan nan -nan nan nan -4895.0 -nan nan nan -nan nan nan -4896.0 -nan nan nan -nan nan nan -4897.0 -nan nan nan -nan nan nan -4898.0 -nan nan nan -nan nan nan -4899.0 -nan nan nan -nan nan nan -4900.0 -nan nan nan -nan nan nan -4901.0 -nan nan nan -nan nan nan -4902.0 -nan nan nan -nan nan nan -4903.0 -nan nan nan -nan nan nan -4904.0 -nan nan nan -nan nan nan -4905.0 -nan nan nan -nan nan nan -4906.0 -nan nan nan -nan nan nan -4907.0 -nan nan nan -nan nan nan -4908.0 -nan nan nan -nan nan nan -4909.0 -nan nan nan -nan nan nan -4910.0 -nan nan nan -nan nan nan -4911.0 -nan nan nan -nan nan nan -4912.0 -nan nan nan -nan nan nan -4913.0 -nan nan nan -nan nan nan -4914.0 -nan nan nan -nan nan nan -4915.0 -nan nan nan -nan nan nan -4916.0 -nan nan nan -nan nan nan -4917.0 -nan nan nan -nan nan nan -4918.0 -nan nan nan -nan nan nan -4919.0 -nan nan nan -nan nan nan -4920.0 -nan nan nan -nan nan nan -4921.0 -nan nan nan -nan nan nan -4922.0 -nan nan nan -nan nan nan -4923.0 -nan nan nan -nan nan nan -4924.0 -nan nan nan -nan nan nan -4925.0 -nan nan nan -nan nan nan -4926.0 -nan nan nan -nan nan nan -4927.0 -nan nan nan -nan nan nan -4928.0 -nan nan nan -nan nan nan -4929.0 -nan nan nan -nan nan nan -4930.0 -nan nan nan -nan nan nan -4931.0 -nan nan nan -nan nan nan -4932.0 -nan nan nan -nan nan nan -4933.0 -nan nan nan -nan nan nan -4934.0 -nan nan nan -nan nan nan -4935.0 -nan nan nan -nan nan nan -4936.0 -nan nan nan -nan nan nan -4937.0 -nan nan nan -nan nan nan -4938.0 -nan nan nan -nan nan nan -4939.0 -nan nan nan -nan nan nan -4940.0 -nan nan nan -nan nan nan -4941.0 -nan nan nan -nan nan nan -4942.0 -nan nan nan -nan nan nan -4943.0 -nan nan nan -nan nan nan -4944.0 -nan nan nan -nan nan nan -4945.0 -nan nan nan -nan nan nan -4946.0 -nan nan nan -nan nan nan -4947.0 -nan nan nan -nan nan nan -4948.0 -nan nan nan -nan nan nan -4949.0 -nan nan nan -nan nan nan -4950.0 -nan nan nan -nan nan nan -4951.0 -nan nan nan -nan nan nan -4952.0 -nan nan nan -nan nan nan -4953.0 -nan nan nan -nan nan nan -4954.0 -nan nan nan -nan nan nan -4955.0 -nan nan nan -nan nan nan -4956.0 -nan nan nan -nan nan nan -4957.0 -nan nan nan -nan nan nan -4958.0 -nan nan nan -nan nan nan -4959.0 -nan nan nan -nan nan nan -4960.0 -nan nan nan -nan nan nan -4961.0 -nan nan nan -nan nan nan -4962.0 -nan nan nan -nan nan nan -4963.0 -nan nan nan -nan nan nan -4964.0 -nan nan nan -nan nan nan -4965.0 -nan nan nan -nan nan nan -4966.0 -nan nan nan -nan nan nan -4967.0 -nan nan nan -nan nan nan -4968.0 -nan nan nan -nan nan nan -4969.0 -nan nan nan -nan nan nan -4970.0 -nan nan nan -nan nan nan -4971.0 -nan nan nan -nan nan nan -4972.0 -nan nan nan -nan nan nan -4973.0 -nan nan nan -nan nan nan -4974.0 -nan nan nan -nan nan nan -4975.0 -nan nan nan -nan nan nan -4976.0 -nan nan nan -nan nan nan -4977.0 -nan nan nan -nan nan nan -4978.0 -nan nan nan -nan nan nan -4979.0 -nan nan nan -nan nan nan -4980.0 -nan nan nan -nan nan nan -4981.0 -nan nan nan -nan nan nan -4982.0 -nan nan nan -nan nan nan -4983.0 -nan nan nan -nan nan nan -4984.0 -nan nan nan -nan nan nan -4985.0 -nan nan nan -nan nan nan -4986.0 -nan nan nan -nan nan nan -4987.0 -nan nan nan -nan nan nan -4988.0 -nan nan nan -nan nan nan -4989.0 -nan nan nan -nan nan nan -4990.0 -nan nan nan -nan nan nan -4991.0 -nan nan nan -nan nan nan -4992.0 -nan nan nan -nan nan nan -4993.0 -nan nan nan -nan nan nan -4994.0 -nan nan nan -nan nan nan -4995.0 -nan nan nan -nan nan nan -4996.0 -nan nan nan -nan nan nan -4997.0 -nan nan nan -nan nan nan -4998.0 -nan nan nan -nan nan nan -4999.0 -nan nan nan -nan nan nan -5000.0 -nan nan nan -nan nan nan -5001.0 -nan nan nan -nan nan nan -5002.0 -nan nan nan -nan nan nan -5003.0 -nan nan nan -nan nan nan -5004.0 -nan nan nan -nan nan nan -5005.0 -nan nan nan -nan nan nan -5006.0 -nan nan nan -nan nan nan -5007.0 -nan nan nan -nan nan nan -5008.0 -nan nan nan -nan nan nan -5009.0 -nan nan nan -nan nan nan -5011.0 -nan nan nan -nan nan nan -5012.0 -nan nan nan -nan nan nan -5013.0 -nan nan nan -nan nan nan -5014.0 -nan nan nan -nan nan nan -5015.0 -nan nan nan -nan nan nan -5016.0 -nan nan nan -nan nan nan -5017.0 -nan nan nan -nan nan nan -5018.0 -nan nan nan -nan nan nan -5019.0 -nan nan nan -nan nan nan -5020.0 -nan nan nan -nan nan nan -5021.0 -nan nan nan -nan nan nan -5022.0 -nan nan nan -nan nan nan -5023.0 -nan nan nan -nan nan nan -5024.0 -nan nan nan -nan nan nan -5025.0 -nan nan nan -nan nan nan -5026.0 -nan nan nan -nan nan nan -5027.0 -nan nan nan -nan nan nan -5028.0 -nan nan nan -nan nan nan -5029.0 -nan nan nan -nan nan nan -5030.0 -nan nan nan -nan nan nan -5031.0 -nan nan nan -nan nan nan -5032.0 -nan nan nan -nan nan nan -5033.0 -nan nan nan -nan nan nan -5034.0 -nan nan nan -nan nan nan -5035.0 -nan nan nan -nan nan nan -5036.0 -nan nan nan -nan nan nan -5037.0 -nan nan nan -nan nan nan -5038.0 -nan nan nan -nan nan nan -5039.0 -nan nan nan -nan nan nan -5040.0 -nan nan nan -nan nan nan -5041.0 -nan nan nan -nan nan nan -5042.0 -nan nan nan -nan nan nan -5043.0 -nan nan nan -nan nan nan -5044.0 -nan nan nan -nan nan nan -5045.0 -nan nan nan -nan nan nan -5046.0 -nan nan nan -nan nan nan -5047.0 -nan nan nan -nan nan nan -5048.0 -nan nan nan -nan nan nan -5049.0 -nan nan nan -nan nan nan -5050.0 -nan nan nan -nan nan nan -5051.0 -nan nan nan -nan nan nan -5052.0 -nan nan nan -nan nan nan -5053.0 -nan nan nan -nan nan nan -5054.0 -nan nan nan -nan nan nan -5055.0 -nan nan nan -nan nan nan -5056.0 -nan nan nan -nan nan nan -5057.0 -nan nan nan -nan nan nan -5058.0 -nan nan nan -nan nan nan -5059.0 -nan nan nan -nan nan nan -5060.0 -nan nan nan -nan nan nan -5061.0 -nan nan nan -nan nan nan -5062.0 -nan nan nan -nan nan nan -5063.0 -nan nan nan -nan nan nan -5064.0 -nan nan nan -nan nan nan -5065.0 -nan nan nan -nan nan nan -5066.0 -nan nan nan -nan nan nan -5067.0 -nan nan nan -nan nan nan -5068.0 -nan nan nan -nan nan nan -5069.0 -nan nan nan -nan nan nan -5070.0 -nan nan nan -nan nan nan -5071.0 -nan nan nan -nan nan nan -5072.0 -nan nan nan -nan nan nan -5073.0 -nan nan nan -nan nan nan -5074.0 -nan nan nan -nan nan nan -5075.0 -nan nan nan -nan nan nan -5076.0 -nan nan nan -nan nan nan -5077.0 -nan nan nan -nan nan nan -5078.0 -nan nan nan -nan nan nan -5079.0 -nan nan nan -nan nan nan -5080.0 -nan nan nan -nan nan nan -5081.0 -nan nan nan -nan nan nan -5082.0 -nan nan nan -nan nan nan -5083.0 -nan nan nan -nan nan nan -5084.0 -nan nan nan -nan nan nan -5085.0 -nan nan nan -nan nan nan -5086.0 -nan nan nan -nan nan nan -5087.0 -nan nan nan -nan nan nan -5088.0 -nan nan nan -nan nan nan -5089.0 -nan nan nan -nan nan nan -5090.0 -nan nan nan -nan nan nan -5091.0 -nan nan nan -nan nan nan -5092.0 -nan nan nan -nan nan nan -5093.0 -nan nan nan -nan nan nan -5094.0 -nan nan nan -nan nan nan -5095.0 -nan nan nan -nan nan nan -5096.0 -nan nan nan -nan nan nan -5097.0 -nan nan nan -nan nan nan -5098.0 -nan nan nan -nan nan nan -5099.0 -nan nan nan -nan nan nan -5100.0 -nan nan nan -nan nan nan -5101.0 -nan nan nan -nan nan nan -5102.0 -nan nan nan -nan nan nan -5103.0 -nan nan nan -nan nan nan -5104.0 -nan nan nan -nan nan nan -5105.0 -nan nan nan -nan nan nan -5106.0 -nan nan nan -nan nan nan -5107.0 -nan nan nan -nan nan nan -5108.0 -nan nan nan -nan nan nan -5109.0 -nan nan nan -nan nan nan -5110.0 -nan nan nan -nan nan nan -5111.0 -nan nan nan -nan nan nan -5112.0 -nan nan nan -nan nan nan -5113.0 -nan nan nan -nan nan nan -5114.0 -nan nan nan -nan nan nan -5115.0 -nan nan nan -nan nan nan -5116.0 -nan nan nan -nan nan nan -5117.0 -nan nan nan -nan nan nan -5118.0 -nan nan nan -nan nan nan -5119.0 -nan nan nan -nan nan nan -5120.0 -nan nan nan -nan nan nan -5121.0 -nan nan nan -nan nan nan -5122.0 -nan nan nan -nan nan nan -5123.0 -nan nan nan -nan nan nan -5124.0 -nan nan nan -nan nan nan -5125.0 -nan nan nan -nan nan nan -5126.0 -nan nan nan -nan nan nan -5127.0 -nan nan nan -nan nan nan -5128.0 -nan nan nan -nan nan nan -5129.0 -nan nan nan -nan nan nan -5130.0 -nan nan nan -nan nan nan -5131.0 -nan nan nan -nan nan nan -5132.0 -nan nan nan -nan nan nan -5133.0 -nan nan nan -nan nan nan -5134.0 -nan nan nan -nan nan nan -5135.0 -nan nan nan -nan nan nan -5136.0 -nan nan nan -nan nan nan -5137.0 -nan nan nan -nan nan nan -5138.0 -nan nan nan -nan nan nan -5139.0 -nan nan nan -nan nan nan -5140.0 -nan nan nan -nan nan nan -5141.0 -nan nan nan -nan nan nan -5142.0 -nan nan nan -nan nan nan -5143.0 -nan nan nan -nan nan nan -5144.0 -nan nan nan -nan nan nan -5145.0 -nan nan nan -nan nan nan -5146.0 -nan nan nan -nan nan nan -5147.0 -nan nan nan -nan nan nan -5148.0 -nan nan nan -nan nan nan -5149.0 -nan nan nan -nan nan nan -5150.0 -nan nan nan -nan nan nan -5151.0 -nan nan nan -nan nan nan -5152.0 -nan nan nan -nan nan nan -5153.0 -nan nan nan -nan nan nan -5154.0 -nan nan nan -nan nan nan -5155.0 -nan nan nan -nan nan nan -5156.0 -nan nan nan -nan nan nan -5157.0 -nan nan nan -nan nan nan -5158.0 -nan nan nan -nan nan nan -5159.0 -nan nan nan -nan nan nan -5160.0 -nan nan nan -nan nan nan -5161.0 -nan nan nan -nan nan nan -5162.0 -nan nan nan -nan nan nan -5163.0 -nan nan nan -nan nan nan -5164.0 -nan nan nan -nan nan nan -5165.0 -nan nan nan -nan nan nan -5166.0 -nan nan nan -nan nan nan -5167.0 -nan nan nan -nan nan nan -5168.0 -nan nan nan -nan nan nan -5169.0 -nan nan nan -nan nan nan -5170.0 -nan nan nan -nan nan nan -5171.0 -nan nan nan -nan nan nan -5172.0 -nan nan nan -nan nan nan -5173.0 -nan nan nan -nan nan nan -5174.0 -nan nan nan -nan nan nan -5175.0 -nan nan nan -nan nan nan -5176.0 -nan nan nan -nan nan nan -5177.0 -nan nan nan -nan nan nan -5178.0 -nan nan nan -nan nan nan -5179.0 -nan nan nan -nan nan nan -5180.0 -nan nan nan -nan nan nan -5181.0 -nan nan nan -nan nan nan -5182.0 -nan nan nan -nan nan nan -5183.0 -nan nan nan -nan nan nan -5184.0 -nan nan nan -nan nan nan -5185.0 -nan nan nan -nan nan nan -5186.0 -nan nan nan -nan nan nan -5187.0 -nan nan nan -nan nan nan -5188.0 -nan nan nan -nan nan nan -5189.0 -nan nan nan -nan nan nan -5190.0 -nan nan nan -nan nan nan -5191.0 -nan nan nan -nan nan nan -5192.0 -nan nan nan -nan nan nan -5193.0 -nan nan nan -nan nan nan -5194.0 -nan nan nan -nan nan nan -5195.0 -nan nan nan -nan nan nan -5196.0 -nan nan nan -nan nan nan -5197.0 -nan nan nan -nan nan nan -5198.0 -nan nan nan -nan nan nan -5199.0 -nan nan nan -nan nan nan -5200.0 -nan nan nan -nan nan nan -5201.0 -nan nan nan -nan nan nan -5202.0 -nan nan nan -nan nan nan -5203.0 -nan nan nan -nan nan nan -5204.0 -nan nan nan -nan nan nan -5205.0 -nan nan nan -nan nan nan -5206.0 -nan nan nan -nan nan nan -5207.0 -nan nan nan -nan nan nan -5208.0 -nan nan nan -nan nan nan -5209.0 -nan nan nan -nan nan nan -5210.0 -nan nan nan -nan nan nan -5211.0 -nan nan nan -nan nan nan -5212.0 -nan nan nan -nan nan nan -5213.0 -nan nan nan -nan nan nan -5214.0 -nan nan nan -nan nan nan -5215.0 -nan nan nan -nan nan nan -5216.0 -nan nan nan -nan nan nan -5217.0 -nan nan nan -nan nan nan -5218.0 -nan nan nan -nan nan nan -5219.0 -nan nan nan -nan nan nan -5220.0 -nan nan nan -nan nan nan -5221.0 -nan nan nan -nan nan nan -5222.0 -nan nan nan -nan nan nan -5223.0 -nan nan nan -nan nan nan -5224.0 -nan nan nan -nan nan nan -5225.0 -nan nan nan -nan nan nan -5226.0 -nan nan nan -nan nan nan -5227.0 -nan nan nan -nan nan nan -5228.0 -nan nan nan -nan nan nan -5229.0 -nan nan nan -nan nan nan -5230.0 -nan nan nan -nan nan nan -5231.0 -nan nan nan -nan nan nan -5232.0 -nan nan nan -nan nan nan -5233.0 -nan nan nan -nan nan nan -5234.0 -nan nan nan -nan nan nan -5235.0 -nan nan nan -nan nan nan -5236.0 -nan nan nan -nan nan nan -5237.0 -nan nan nan -nan nan nan -5238.0 -nan nan nan -nan nan nan -5239.0 -nan nan nan -nan nan nan -5240.0 -nan nan nan -nan nan nan -5241.0 -nan nan nan -nan nan nan -5242.0 -nan nan nan -nan nan nan -5243.0 -nan nan nan -nan nan nan -5244.0 -nan nan nan -nan nan nan -5245.0 -nan nan nan -nan nan nan -5246.0 -nan nan nan -nan nan nan -5247.0 -nan nan nan -nan nan nan -5248.0 -nan nan nan -nan nan nan -5249.0 -nan nan nan -nan nan nan -5250.0 -nan nan nan -nan nan nan -5251.0 -nan nan nan -nan nan nan -5252.0 -nan nan nan -nan nan nan -5253.0 -nan nan nan -nan nan nan -5254.0 -nan nan nan -nan nan nan -5255.0 -nan nan nan -nan nan nan -5256.0 -nan nan nan -nan nan nan -5257.0 -nan nan nan -nan nan nan -5258.0 -nan nan nan -nan nan nan -5259.0 -nan nan nan -nan nan nan -5260.0 -nan nan nan -nan nan nan -5261.0 -nan nan nan -nan nan nan -5262.0 -nan nan nan -nan nan nan -5263.0 -nan nan nan -nan nan nan -5264.0 -nan nan nan -nan nan nan -5265.0 -nan nan nan -nan nan nan -5266.0 -nan nan nan -nan nan nan -5267.0 -nan nan nan -nan nan nan -5268.0 -nan nan nan -nan nan nan -5269.0 -nan nan nan -nan nan nan -5270.0 -nan nan nan -nan nan nan -5271.0 -nan nan nan -nan nan nan -5272.0 -nan nan nan -nan nan nan -5273.0 -nan nan nan -nan nan nan -5274.0 -nan nan nan -nan nan nan -5275.0 -nan nan nan -nan nan nan -5276.0 -nan nan nan -nan nan nan -5277.0 -nan nan nan -nan nan nan -5278.0 -nan nan nan -nan nan nan -5279.0 -nan nan nan -nan nan nan -5280.0 -nan nan nan -nan nan nan -5281.0 -nan nan nan -nan nan nan -5282.0 -nan nan nan -nan nan nan -5283.0 -nan nan nan -nan nan nan -5284.0 -nan nan nan -nan nan nan -5285.0 -nan nan nan -nan nan nan -5286.0 -nan nan nan -nan nan nan -5287.0 -nan nan nan -nan nan nan -5288.0 -nan nan nan -nan nan nan -5289.0 -nan nan nan -nan nan nan -5290.0 -nan nan nan -nan nan nan -5291.0 -nan nan nan -nan nan nan -5292.0 -nan nan nan -nan nan nan -5293.0 -nan nan nan -nan nan nan -5294.0 -nan nan nan -nan nan nan -5295.0 -nan nan nan -nan nan nan -5296.0 -nan nan nan -nan nan nan -5297.0 -nan nan nan -nan nan nan -5298.0 -nan nan nan -nan nan nan -5299.0 -nan nan nan -nan nan nan -5300.0 -nan nan nan -nan nan nan -5301.0 -nan nan nan -nan nan nan -5302.0 -nan nan nan -nan nan nan -5303.0 -nan nan nan -nan nan nan -5304.0 -nan nan nan -nan nan nan -5305.0 -nan nan nan -nan nan nan -5306.0 -nan nan nan -nan nan nan -5307.0 -nan nan nan -nan nan nan -5308.0 -nan nan nan -nan nan nan -5309.0 -nan nan nan -nan nan nan -5310.0 -nan nan nan -nan nan nan -5311.0 -nan nan nan -nan nan nan -5312.0 -nan nan nan -nan nan nan -5313.0 -nan nan nan -nan nan nan -5314.0 -nan nan nan -nan nan nan -5315.0 -nan nan nan -nan nan nan -5316.0 -nan nan nan -nan nan nan -5317.0 -nan nan nan -nan nan nan -5318.0 -nan nan nan -nan nan nan -5319.0 -nan nan nan -nan nan nan -5320.0 -nan nan nan -nan nan nan -5321.0 -nan nan nan -nan nan nan -5322.0 -nan nan nan -nan nan nan -5323.0 -nan nan nan -nan nan nan -5324.0 -nan nan nan -nan nan nan -5325.0 -nan nan nan -nan nan nan -5326.0 -nan nan nan -nan nan nan -5327.0 -nan nan nan -nan nan nan -5328.0 -nan nan nan -nan nan nan -5329.0 -nan nan nan -nan nan nan -5330.0 -nan nan nan -nan nan nan -5331.0 -nan nan nan -nan nan nan -5332.0 -nan nan nan -nan nan nan -5333.0 -nan nan nan -nan nan nan -5334.0 -nan nan nan -nan nan nan -5335.0 -nan nan nan -nan nan nan -5336.0 -nan nan nan -nan nan nan -5337.0 -nan nan nan -nan nan nan -5338.0 -nan nan nan -nan nan nan -5339.0 -nan nan nan -nan nan nan -5340.0 -nan nan nan -nan nan nan -5341.0 -nan nan nan -nan nan nan -5342.0 -nan nan nan -nan nan nan -5343.0 -nan nan nan -nan nan nan -5344.0 -nan nan nan -nan nan nan -5345.0 -nan nan nan -nan nan nan -5346.0 -nan nan nan -nan nan nan -5347.0 -nan nan nan -nan nan nan -5348.0 -nan nan nan -nan nan nan -5349.0 -nan nan nan -nan nan nan -5350.0 -nan nan nan -nan nan nan -5351.0 -nan nan nan -nan nan nan -5352.0 -nan nan nan -nan nan nan -5353.0 -nan nan nan -nan nan nan -5354.0 -nan nan nan -nan nan nan -5355.0 -nan nan nan -nan nan nan -5356.0 -nan nan nan -nan nan nan -5357.0 -nan nan nan -nan nan nan -5358.0 -nan nan nan -nan nan nan -5359.0 -nan nan nan -nan nan nan -5360.0 -nan nan nan -nan nan nan -5361.0 -nan nan nan -nan nan nan -5362.0 -nan nan nan -nan nan nan -5363.0 -nan nan nan -nan nan nan -5364.0 -nan nan nan -nan nan nan -5365.0 -nan nan nan -nan nan nan -5366.0 -nan nan nan -nan nan nan -5367.0 -nan nan nan -nan nan nan -5368.0 -nan nan nan -nan nan nan -5369.0 -nan nan nan -nan nan nan -5370.0 -nan nan nan -nan nan nan -5371.0 -nan nan nan -nan nan nan -5372.0 -nan nan nan -nan nan nan -5373.0 -nan nan nan -nan nan nan -5374.0 -nan nan nan -nan nan nan -5375.0 -nan nan nan -nan nan nan -5376.0 -nan nan nan -nan nan nan -5377.0 -nan nan nan -nan nan nan -5378.0 -nan nan nan -nan nan nan -5379.0 -nan nan nan -nan nan nan -5380.0 -nan nan nan -nan nan nan -5381.0 -nan nan nan -nan nan nan -5382.0 -nan nan nan -nan nan nan -5383.0 -nan nan nan -nan nan nan -5384.0 -nan nan nan -nan nan nan -5385.0 -nan nan nan -nan nan nan -5386.0 -nan nan nan -nan nan nan -5387.0 -nan nan nan -nan nan nan -5388.0 -nan nan nan -nan nan nan -5389.0 -nan nan nan -nan nan nan -5390.0 -nan nan nan -nan nan nan -5391.0 -nan nan nan -nan nan nan -5392.0 -nan nan nan -nan nan nan -5393.0 -nan nan nan -nan nan nan -5394.0 -nan nan nan -nan nan nan -5395.0 -nan nan nan -nan nan nan -5396.0 -nan nan nan -nan nan nan -5397.0 -nan nan nan -nan nan nan -5398.0 -nan nan nan -nan nan nan -5399.0 -nan nan nan -nan nan nan -5400.0 -nan nan nan -nan nan nan -5401.0 -nan nan nan -nan nan nan -5402.0 -nan nan nan -nan nan nan -5403.0 -nan nan nan -nan nan nan -5404.0 -nan nan nan -nan nan nan -5405.0 -nan nan nan -nan nan nan -5406.0 -nan nan nan -nan nan nan -5407.0 -nan nan nan -nan nan nan -5408.0 -nan nan nan -nan nan nan -5409.0 -nan nan nan -nan nan nan -5410.0 -nan nan nan -nan nan nan -5411.0 -nan nan nan -nan nan nan -5412.0 -nan nan nan -nan nan nan -5413.0 -nan nan nan -nan nan nan -5414.0 -nan nan nan -nan nan nan -5415.0 -nan nan nan -nan nan nan -5416.0 -nan nan nan -nan nan nan -5417.0 -nan nan nan -nan nan nan -5418.0 -nan nan nan -nan nan nan -5419.0 -nan nan nan -nan nan nan -5420.0 -nan nan nan -nan nan nan -5421.0 -nan nan nan -nan nan nan -5422.0 -nan nan nan -nan nan nan -5423.0 -nan nan nan -nan nan nan -5424.0 -nan nan nan -nan nan nan -5425.0 -nan nan nan -nan nan nan -5426.0 -nan nan nan -nan nan nan -5427.0 -nan nan nan -nan nan nan -5428.0 -nan nan nan -nan nan nan -5429.0 -nan nan nan -nan nan nan -5430.0 -nan nan nan -nan nan nan -5431.0 -nan nan nan -nan nan nan -5432.0 -nan nan nan -nan nan nan -5433.0 -nan nan nan -nan nan nan -5434.0 -nan nan nan -nan nan nan -5435.0 -nan nan nan -nan nan nan -5436.0 -nan nan nan -nan nan nan -5437.0 -nan nan nan -nan nan nan -5438.0 -nan nan nan -nan nan nan -5439.0 -nan nan nan -nan nan nan -5440.0 -nan nan nan -nan nan nan -5441.0 -nan nan nan -nan nan nan -5442.0 -nan nan nan -nan nan nan -5443.0 -nan nan nan -nan nan nan -5444.0 -nan nan nan -nan nan nan -5445.0 -nan nan nan -nan nan nan -5446.0 -nan nan nan -nan nan nan -5447.0 -nan nan nan -nan nan nan -5448.0 -nan nan nan -nan nan nan -5449.0 -nan nan nan -nan nan nan -5450.0 -nan nan nan -nan nan nan +0 From 25b27a9d7f44873231775984003e4290e6e63577 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 23 Aug 2021 23:22:50 -0400 Subject: [PATCH 186/315] Reduced energy error tolerance for faster solutions. --- src/fragmentation/fragmentation.f90 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 754a65b10..4787b025c 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -42,7 +42,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start, r_max_start_old, r_max, f_spin real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) - real(DP), parameter :: Etol = 1e-10_DP + real(DP), parameter :: Etol = 1e-8_DP integer(I4B), parameter :: MAXTRY = 3000 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes class(swiftest_nbody_system), allocatable :: tmpsys @@ -126,17 +126,17 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, if (.not.lfailure) call set_fragment_tan_vel(lfailure) if (lfailure) then - !write(*,*) 'Failed to find tangential velocities' + ! write(*,*) 'Failed to find tangential velocities' else call set_fragment_radial_velocities(lfailure) - !if (lfailure) write(*,*) 'Failed to find radial velocities' + ! if (lfailure) write(*,*) 'Failed to find radial velocities' if (.not.lfailure) then call calculate_system_energy(linclude_fragments=.true.) if ((abs(dEtot + Qloss) > Etol) .or. (dEtot > 0.0_DP)) then - !write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol + ! write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol lfailure = .true. else if (abs(dLmag) / Lmag_before > Ltol) then - !write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before + ! write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before lfailure = .true. end if end if @@ -153,11 +153,11 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! write(*, "(' Final diagnostic')") ! write(*, "(' -------------------------------------------------------------------------------------')") ! call calculate_system_energy(linclude_fragments=.true.) - ! if (lfailure) then - ! write(*,*) "symba_frag_pos failed after: ",try," tries" - ! do ii = 1, nfrag - ! vb_frag(:, ii) = vcom(:) - ! end do + if (lfailure) then + ! write(*,*) "symba_frag_pos failed after: ",try," tries" + do ii = 1, nfrag + vb_frag(:, ii) = vcom(:) + end do ! else ! write(*,*) "symba_frag_pos succeeded after: ",try," tries" ! write(*, "(' dL_tot should be very small' )") @@ -166,7 +166,7 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) ! write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) ! write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) - ! end if + end if ! write(*, "(' -------------------------------------------------------------------------------------')") call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily From e66ca96b77a84a08ad0a119d2cf74dfcf2cc56ac Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 24 Aug 2021 00:40:32 -0400 Subject: [PATCH 187/315] Fixed memory allocation issue in the orbital element conversion method --- src/io/io.f90 | 2 -- src/orbel/orbel.f90 | 21 +++++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 58e233dd1..3123710db 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1660,8 +1660,6 @@ module subroutine io_write_frame_system(self, iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) - deallocate(cb, pl, tp) - close(iu, err = 667, iomsg = errmsg) return diff --git a/src/orbel/orbel.f90 b/src/orbel/orbel.f90 index c07200b14..0a93ec599 100644 --- a/src/orbel/orbel.f90 +++ b/src/orbel/orbel.f90 @@ -16,7 +16,7 @@ module subroutine orbel_el2xv_vec(self, cb) if (self%nbody == 0) return call self%set_mu(cb) - do i = 1, self%nbody + do concurrent (i = 1:self%nbody) call orbel_el2xv(self%mu(i), self%a(i), self%e(i), self%inc(i), self%capom(i), & self%omega(i), self%capm(i), self%xh(:, i), self%vh(:, i)) end do @@ -288,7 +288,7 @@ real(DP) pure function orbel_flon(e,icapn) end if return - end function orbel_flon + end function orbel_flon !********************************************************************** @@ -358,7 +358,7 @@ real(DP) pure function orbel_fget(e,capn) !write(*,*) 'fget : returning without complete convergence' return - end function orbel_fget + end function orbel_fget !********************************************************************** @@ -878,18 +878,19 @@ module subroutine orbel_xv2el_vec(self, cb) if (self%nbody == 0) return call self%set_mu(cb) - if (.not.allocated(self%a)) allocate(self%a(self%nbody)) - if (.not.allocated(self%e)) allocate(self%e(self%nbody)) - if (.not.allocated(self%inc)) allocate(self%inc(self%nbody)) - if (.not.allocated(self%capom)) allocate(self%capom(self%nbody)) - if (.not.allocated(self%omega)) allocate(self%omega(self%nbody)) - if (.not.allocated(self%capm)) allocate(self%capm(self%nbody)) - do i = 1, self%nbody + if (allocated(self%a)) deallocate(self%a); allocate(self%a(self%nbody)) + if (allocated(self%e)) deallocate(self%e); allocate(self%e(self%nbody)) + if (allocated(self%inc)) deallocate(self%inc); allocate(self%inc(self%nbody)) + if (allocated(self%capom)) deallocate(self%capom); allocate(self%capom(self%nbody)) + if (allocated(self%omega)) deallocate(self%omega); allocate(self%omega(self%nbody)) + if (allocated(self%capm)) deallocate(self%capm); allocate(self%capm(self%nbody)) + do concurrent (i = 1:self%nbody) call orbel_xv2el(self%mu(i), self%xh(:, i), self%vh(:, i), self%a(i), self%e(i), self%inc(i), & self%capom(i), self%omega(i), self%capm(i)) end do end subroutine orbel_xv2el_vec + module pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) !! author: David A. Minton !! From 8e45966d560f5e078810bb80974b7f5240b2f0d0 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 24 Aug 2021 00:52:16 -0400 Subject: [PATCH 188/315] Restructured fragmentation code to make temporary system variables internal to the energy calculation, in order to beat down some weird segfault-causing bug that happen rarely. --- src/fragmentation/fragmentation.f90 | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 4787b025c..7b6190400 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -45,8 +45,6 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, real(DP), parameter :: Etol = 1e-8_DP integer(I4B), parameter :: MAXTRY = 3000 logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes - class(swiftest_nbody_system), allocatable :: tmpsys - class(swiftest_parameters), allocatable :: tmpparam if (nfrag < NFRAG_MIN) then write(*,*) "symba_frag_pos needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." @@ -269,8 +267,6 @@ subroutine restore_scale_factors() dLmag = .mag.dL(:) dEtot = Etot_after - Etot_before - call tmpsys%rescale(tmpparam, mscale**(-1), dscale**(-1), tscale**(-1)) - mscale = 1.0_DP dscale = 1.0_DP vscale = 1.0_DP @@ -343,12 +339,15 @@ subroutine define_coordinate_system() end subroutine define_coordinate_system - subroutine construct_temporary_system() + subroutine construct_temporary_system(tmpsys, tmpparam) !! Author: David A. Minton !! !! Constructs a temporary internal system consisting of active bodies and additional fragments. This internal temporary system is used to calculate system energy with and without fragments !! and optionally including fragments. implicit none + ! Arguments + class(swiftest_nbody_system), allocatable, intent(inout) :: tmpsys + class(swiftest_parameters), allocatable, intent(inout) :: tmpparam ! Internals logical, dimension(:), allocatable :: lexclude_tmp @@ -364,8 +363,6 @@ subroutine construct_temporary_system() lexclude(1:npl) = .false. end where lexclude(npl+1:(npl + nfrag)) = .true. - if (allocated(tmpparam)) deallocate(tmpparam) - if (allocated(tmpsys)) deallocate(tmpsys) allocate(tmpparam, source=param) call setup_construct_system(tmpsys, param) call tmpsys%tp%setup(0, param) @@ -381,11 +378,14 @@ subroutine construct_temporary_system() end subroutine construct_temporary_system - subroutine add_fragments_to_tmpsys() + subroutine add_fragments_to_tmpsys(tmpsys, tmpparam) !! Author: David A. Minton !! !! Adds fragments to the temporary system pl object implicit none + ! Arguments + class(swiftest_nbody_system), intent(inout) :: tmpsys + class(swiftest_parameters), intent(inout) :: tmpparam ! Internals integer(I4B) :: i class(swiftest_pl), allocatable :: pl_discards @@ -443,7 +443,8 @@ subroutine calculate_system_energy(linclude_fragments) integer(I4B) :: i, nplm logical, dimension(:), allocatable :: lexclude_tmp logical :: lk_plpl - + class(swiftest_nbody_system), allocatable :: tmpsys + class(swiftest_parameters), allocatable :: tmpparam ! Build the internal planet list out of the non-excluded bodies and optionally with fragments appended. This ! will get passed to the energy calculation subroutine so that energy is computed exactly the same way is it @@ -457,8 +458,8 @@ subroutine calculate_system_energy(linclude_fragments) lk_plpl = allocated(pl%k_plpl) if (lk_plpl) deallocate(pl%k_plpl) - call construct_temporary_system() - if (linclude_fragments) call add_fragments_to_tmpsys() + call construct_temporary_system(tmpsys, tmpparam) + if (linclude_fragments) call add_fragments_to_tmpsys(tmpsys, tmpparam) call tmpsys%pl%index(param) From fc24530518c7814fb4273c14fe2343ca0ea4a80f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 24 Aug 2021 01:02:55 -0400 Subject: [PATCH 189/315] Deallocate all of the orbital element vectors after conversion to prevent array range problems later. --- src/orbel/orbel.f90 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/orbel/orbel.f90 b/src/orbel/orbel.f90 index 0a93ec599..f01c97529 100644 --- a/src/orbel/orbel.f90 +++ b/src/orbel/orbel.f90 @@ -5,7 +5,8 @@ module subroutine orbel_el2xv_vec(self, cb) !! author: David A. Minton !! - !! A wrapper method that converts all of the cartesian position and velocity vectors of a Swiftest body object to orbital elements. + !! A wrapper method that converts all of the orbital element vectors into cartesian position and velocity vectors for a Swiftest body object. + !! This method deallocates all of the orbital elements after it is finished. implicit none ! Arguments class(swiftest_body), intent(inout) :: self !! Swiftest body object @@ -20,6 +21,8 @@ module subroutine orbel_el2xv_vec(self, cb) call orbel_el2xv(self%mu(i), self%a(i), self%e(i), self%inc(i), self%capom(i), & self%omega(i), self%capm(i), self%xh(:, i), self%vh(:, i)) end do + deallocate(self%a, self%e, self%inc, self%capom, self%omega, self%capm) + return end subroutine orbel_el2xv_vec From c38f4dc4667ea343bca23f2f0efac5efc0e25cd1 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Tue, 24 Aug 2021 10:49:09 -0400 Subject: [PATCH 190/315] removed -init=snan,arrays flag to accomodate netcdf output --- Makefile.Defines | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 862e4bb0d..83f1df3f3 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -51,13 +51,13 @@ ADVIXE_FLAGS = -g -O2 -qopt-report=5 -vec -vecabi=cmdtarget -simd -shared-intel VTUNE_FLAGS = -g -O2 -vec -simd -shared-intel -qopenmp -debug inline-debug-info -parallel-source-info=2 -parallel -DTBB_DEBUG -DTBB_USE_THREADING_TOOLS -qopenmp -fp-model no-except -mp1 -xhost -traceback #Be sure to set the environment variable KMP_FORKJOIN_FRAMES=1 for OpenMP debuging in vtune -IDEBUG = -O0 -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin -init=snan,arrays +IDEBUG = -O0 -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin STRICTREAL = -fp-model strict -fp-model no-except -prec-div -prec-sqrt -assume protect-parens SIMDVEC = -simd -xhost -align all -assume contiguous_assumed_shape -vecabi=cmdtarget -prec-div -prec-sqrt -assume protect-parens PAR = -qopenmp #-parallel #Something goes wrong in SyMBA at the moment with auto-paralellization enabled HEAPARR = -heap-arrays 1048576 OPTREPORT = -qopt-report=5 -IPRODUCTION = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) +IPRODUCTION = -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) #gfortran flags GDEBUG = -g -Og -fbacktrace -fbounds-check -ffree-line-length-none From 0825600170a03b11123e36dce9ba95da45e36306 Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 24 Aug 2021 13:56:30 -0400 Subject: [PATCH 191/315] Changed encoding options for animation scripts to one that work on the RCAC cluster --- examples/symba_chambers_2013/aescattermovie.py | 4 ++-- examples/symba_clement_2018/aescattermovie.py | 4 ++-- examples/symba_mars_disk/aescattermovie.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index ed1dc4bdc..859aae87d 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -39,7 +39,7 @@ def __init__(self, ds, param): self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) - self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): @@ -70,7 +70,7 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - self.ax.legend(loc='upper right') + self.ax.legend(loc='lower right') return self.s0, self.s1, self.s2, self.s3, self.title def data_stream(self, frame=0): diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py index b0d5eef0e..45acd2ae1 100755 --- a/examples/symba_clement_2018/aescattermovie.py +++ b/examples/symba_clement_2018/aescattermovie.py @@ -39,7 +39,7 @@ def __init__(self, ds, param): self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) - self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): @@ -70,7 +70,7 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - self.ax.legend(loc='upper right') + self.ax.legend(loc='lower right') return self.s0, self.s1, self.s2, self.s3, self.title def data_stream(self, frame=0): diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index 46fec5f09..a1f994681 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -39,7 +39,7 @@ def __init__(self, ds, param): self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) - self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): From a2f07cbbe3a7f28c03c05055672eadb995c4db5e Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 24 Aug 2021 14:17:31 -0400 Subject: [PATCH 192/315] Set blit=False in animation scripts to prevent elements from persisting between frames --- examples/symba_chambers_2013/aescattermovie.py | 2 +- examples/symba_clement_2018/aescattermovie.py | 2 +- examples/symba_mars_disk/aescattermovie.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index 859aae87d..858327cb1 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -38,7 +38,7 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py index 45acd2ae1..67db91503 100755 --- a/examples/symba_clement_2018/aescattermovie.py +++ b/examples/symba_clement_2018/aescattermovie.py @@ -38,7 +38,7 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index a1f994681..f8e29dc9a 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -38,7 +38,7 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') From 77cf3c6c6aeb7a88f16f1140caa8f3e26e0a6cf1 Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 24 Aug 2021 14:19:18 -0400 Subject: [PATCH 193/315] Added correct nframes calculation when framejump >1 --- examples/symba_mars_disk/aescattermovie.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index f8e29dc9a..cc62da4f4 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -19,7 +19,7 @@ class AnimatedScatter(object): def __init__(self, ds, param): frame = 0 - nframes = ds['time'].size + nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param self.ds['radmarker'] = self.ds['Radius'].fillna(0) From 37ba668bf770832bc58ae19e22d52d2381257817 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 24 Aug 2021 20:30:23 -0400 Subject: [PATCH 194/315] Changed dumps to be just straight Fortran binary, not NetCDF --- src/io/io.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 1ce6871bd..30ea64cfa 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -141,8 +141,10 @@ module subroutine io_dump_swiftest(self, param) select type(self) class is (swiftest_body) write(iu, err = 667, iomsg = errmsg) self%nbody + call io_write_frame_body(self,iu, param) + class is (swiftest_cb) + call io_write_frame_cb(self,iu, param) end select - call self%write_frame(iu, param) close(iu, err = 667, iomsg = errmsg) return @@ -1773,6 +1775,7 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi call util_exit(FAILURE) end subroutine + module subroutine io_write_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! @@ -1837,6 +1840,7 @@ module subroutine io_write_frame_system(self, iu, param) call util_exit(FAILURE) end subroutine io_write_frame_system + module subroutine io_netcdf_write_frame_system(self, iu, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! From 96337083f8fb974d587422d9132608911834bd8c Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 25 Aug 2021 12:26:34 -0400 Subject: [PATCH 195/315] fixed sorting in io_netcdf_write_frame_body --- src/io/io.f90 | 75 ++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 30ea64cfa..adf97fadb 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1575,6 +1575,7 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + integer(14B), dimension(self%body) :: ind !! Open the netCDF file call check( nf90_open(param%outfile, nf90_write, ncid) ) @@ -1589,48 +1590,42 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) select case (param%out_form) case (EL) - do j = 1, n - do i = 1, n - if (self%id(i) == j) then - - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "a", a_varid)) - call check( nf90_inq_varid(ncid, "e", e_varid)) - call check( nf90_inq_varid(ncid, "inc", inc_varid)) - call check( nf90_inq_varid(ncid, "capom", capom_varid)) - call check( nf90_inq_varid(ncid, "omega", omega_varid)) - call check( nf90_inq_varid(ncid, "capm", capm_varid)) - - call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput + 1, j/)) ) - end if - end do + call util_sort(self%id(1:n), ind(1:n)) + do i = 1, n + j = ind(i) + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "a", a_varid)) + call check( nf90_inq_varid(ncid, "e", e_varid)) + call check( nf90_inq_varid(ncid, "inc", inc_varid)) + call check( nf90_inq_varid(ncid, "capom", capom_varid)) + call check( nf90_inq_varid(ncid, "omega", omega_varid)) + call check( nf90_inq_varid(ncid, "capm", capm_varid)) + + call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput + 1, j/)) ) end do case (XV) - do j = 1, n - do i = 1, n - if (self%id(i) == j) then - - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "xhx", xhx_varid)) - call check( nf90_inq_varid(ncid, "xhy", xhy_varid)) - call check( nf90_inq_varid(ncid, "xhz", xhz_varid)) - call check( nf90_inq_varid(ncid, "vhx", vhx_varid)) - call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) - call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) - - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput + 1, j/)) ) - end if - end do + call util_sort(self%id(1:n), ind(1:n)) + do i = 1, n + j = ind(i) + !! Reassign all variable IDs + call check( nf90_inq_varid(ncid, "xhx", xhx_varid)) + call check( nf90_inq_varid(ncid, "xhy", xhy_varid)) + call check( nf90_inq_varid(ncid, "xhz", xhz_varid)) + call check( nf90_inq_varid(ncid, "vhx", vhx_varid)) + call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) + call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) + + call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput + 1, j/)) ) + call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput + 1, j/)) ) end do end select select type(pl => self) From 71080a932d48cdd926285325ba5919cd295ba28a Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 25 Aug 2021 12:28:34 -0400 Subject: [PATCH 196/315] changed NF90_FLOAT to NF90_DOUBLE in io_netcdf_write_frame_system --- src/io/io.f90 | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index adf97fadb..553dcf7f9 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1926,35 +1926,35 @@ module subroutine io_netcdf_write_frame_system(self, iu, param) !! Define the variables select case (param%out_form) case (EL) - call check( nf90_def_var(ncid, "a", NF90_FLOAT, dimids, a_varid) ) - call check( nf90_def_var(ncid, "e", NF90_FLOAT, dimids, e_varid) ) - call check( nf90_def_var(ncid, "inc", NF90_FLOAT, dimids, inc_varid) ) - call check( nf90_def_var(ncid, "capom", NF90_FLOAT, dimids, capom_varid) ) - call check( nf90_def_var(ncid, "omega", NF90_FLOAT, dimids, omega_varid) ) - call check( nf90_def_var(ncid, "capm", NF90_FLOAT, dimids, capm_varid) ) + call check( nf90_def_var(ncid, "a", NF90_DOUBLE, dimids, a_varid) ) + call check( nf90_def_var(ncid, "e", NF90_DOUBLE, dimids, e_varid) ) + call check( nf90_def_var(ncid, "inc", NF90_DOUBLE, dimids, inc_varid) ) + call check( nf90_def_var(ncid, "capom", NF90_DOUBLE, dimids, capom_varid) ) + call check( nf90_def_var(ncid, "omega", NF90_DOUBLE, dimids, omega_varid) ) + call check( nf90_def_var(ncid, "capm", NF90_DOUBLE, dimids, capm_varid) ) case (XV) - call check( nf90_def_var(ncid, "xhx", NF90_FLOAT, dimids, xhx_varid) ) - call check( nf90_def_var(ncid, "xhy", NF90_FLOAT, dimids, xhy_varid) ) - call check( nf90_def_var(ncid, "xhz", NF90_FLOAT, dimids, xhz_varid) ) - call check( nf90_def_var(ncid, "vhx", NF90_FLOAT, dimids, vhx_varid) ) - call check( nf90_def_var(ncid, "vhy", NF90_FLOAT, dimids, vhy_varid) ) - call check( nf90_def_var(ncid, "vhz", NF90_FLOAT, dimids, vhz_varid) ) + call check( nf90_def_var(ncid, "xhx", NF90_DOUBLE, dimids, xhx_varid) ) + call check( nf90_def_var(ncid, "xhy", NF90_DOUBLE, dimids, xhy_varid) ) + call check( nf90_def_var(ncid, "xhz", NF90_DOUBLE, dimids, xhz_varid) ) + call check( nf90_def_var(ncid, "vhx", NF90_DOUBLE, dimids, vhx_varid) ) + call check( nf90_def_var(ncid, "vhy", NF90_DOUBLE, dimids, vhy_varid) ) + call check( nf90_def_var(ncid, "vhz", NF90_DOUBLE, dimids, vhz_varid) ) end select - call check( nf90_def_var(ncid, "Gmass", NF90_FLOAT, dimids, Gmass_varid) ) - if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_FLOAT, dimids, rhill_varid) ) - if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_FLOAT, dimids, radius_varid) ) + call check( nf90_def_var(ncid, "Gmass", NF90_DOUBLE, dimids, Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_DOUBLE, dimids, rhill_varid) ) + if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_DOUBLE, dimids, radius_varid) ) if (param%lrotation) then - call check( nf90_def_var(ncid, "Ip1", NF90_FLOAT, dimids, Ip1_varid) ) - call check( nf90_def_var(ncid, "Ip2", NF90_FLOAT, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "Ip3", NF90_FLOAT, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "rotx", NF90_FLOAT, dimids, rotx_varid) ) - call check( nf90_def_var(ncid, "roty", NF90_FLOAT, dimids, roty_varid) ) - call check( nf90_def_var(ncid, "rotz", NF90_FLOAT, dimids, rotz_varid) ) + call check( nf90_def_var(ncid, "Ip1", NF90_DOUBLE, dimids, Ip1_varid) ) + call check( nf90_def_var(ncid, "Ip2", NF90_DOUBLE, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "Ip3", NF90_DOUBLE, dimids, Ip3_varid) ) + call check( nf90_def_var(ncid, "rotx", NF90_DOUBLE, dimids, rotx_varid) ) + call check( nf90_def_var(ncid, "roty", NF90_DOUBLE, dimids, roty_varid) ) + call check( nf90_def_var(ncid, "rotz", NF90_DOUBLE, dimids, rotz_varid) ) end if if (param%ltides) then - call check( nf90_def_var(ncid, "k2", NF90_FLOAT, dimids, k2_varid) ) - call check( nf90_def_var(ncid, "Q", NF90_FLOAT, dimids, Q_varid) ) + call check( nf90_def_var(ncid, "k2", NF90_DOUBLE, dimids, k2_varid) ) + call check( nf90_def_var(ncid, "Q", NF90_DOUBLE, dimids, Q_varid) ) end if !! Exit define mode From 1a0dd8081b361a992a6d04d2cb477d2d3e9228a5 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 25 Aug 2021 12:35:21 -0400 Subject: [PATCH 197/315] fixed typo self%body -> self%nbody --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 553dcf7f9..e4a358029 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1575,7 +1575,7 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(14B), dimension(self%body) :: ind + integer(14B), dimension(self%nbody) :: ind !! Open the netCDF file call check( nf90_open(param%outfile, nf90_write, ncid) ) From 43541712ddfc95152d20d1ab8b0e0631fd466708 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Wed, 25 Aug 2021 12:36:58 -0400 Subject: [PATCH 198/315] fixed typo 14B -> I4B --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index e4a358029..f7001cefa 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1575,7 +1575,7 @@ module subroutine io_netcdf_write_frame_body(self, iu, param) integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(14B), dimension(self%nbody) :: ind + integer(I4B), dimension(self%nbody) :: ind !! Open the netCDF file call check( nf90_open(param%outfile, nf90_write, ncid) ) From ecc38660df7bd78aa8bb3d38ac609b9212f687ed Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 25 Aug 2021 13:51:43 -0400 Subject: [PATCH 199/315] Refactored all of the Python code so that the variables names match the NetCDF variable names --- .../1pl_1tp_encounter/init_cond.py | 6 +- .../8pl_16tp_encounters/init_cond.py | 16 +- .../swiftest_rmvs_vs_swifter_rmvs.ipynb | 6 +- .../mars_ejecta/pl.swifter.in | 2 +- .../symba_chambers_2013/aescattermovie.py | 12 +- examples/symba_chambers_2013/init_cond.py | 6 +- .../symba_clement_2018/ConvertRhill.ipynb | 4 +- examples/symba_clement_2018/aescattermovie.py | 12 +- .../symba_energy_momentum/collision_movie.py | 102 +- examples/symba_mars_disk/Untitled.ipynb | 6 + examples/symba_mars_disk/aescattermovie.py | 12 +- examples/symba_mars_disk/mars.in | 3000 ++++++++--------- examples/symba_mars_disk/param.in | 8 +- examples/symba_mars_disk/testnetcdf.ipynb | 79 + .../1pl_1pl_encounter/init_cond.py | 10 +- .../1pl_1tp_encounter/init_cond.py | 6 +- .../8pl_16tp_encounters/init_cond.py | 14 +- .../mars_disk/pl.swifter.in | 3000 ++++++++--------- .../mars_disk/pl.swiftest.in | 3000 ++++++++--------- .../mars_disk/swiftest_vs_swifter.ipynb | 6 +- .../mtiny_test/pl.swifter.in | 3000 ++++++++--------- .../mtiny_test/pl.swiftest.in | 3000 ++++++++--------- python/swiftest/swiftest/init_cond.py | 102 +- python/swiftest/swiftest/io.py | 232 +- python/swiftest/swiftest/simulation_class.py | 16 +- python/swiftest/swiftest/tool.py | 4 +- src/io/io.f90 | 4 + 27 files changed, 7877 insertions(+), 7788 deletions(-) create mode 100644 examples/symba_mars_disk/Untitled.ipynb create mode 100644 examples/symba_mars_disk/testnetcdf.ipynb diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py index a700466b1..f17e000fa 100755 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/init_cond.py @@ -55,7 +55,7 @@ p_tp = np.array([atp, 0.0, 0.0], dtype=np.double) v_tp = np.array([0.0, vtp, 0.0], dtype=np.double) -Rhill = np.double(apl * 0.0100447248332378922085) +rhill = np.double(apl * 0.0100447248332378922085) #Make Swifter files plfile = open(swifter_pl, 'w') @@ -63,7 +63,7 @@ print(1,GMSun,file=plfile) print('0.0 0.0 0.0',file=plfile) print('0.0 0.0 0.0',file=plfile) -print(plid,"{:.23g}".format(Gmass),Rhill, file=plfile) +print(plid,"{:.23g}".format(Gmass),rhill, file=plfile) print(radius, file=plfile) print(*p_pl, file=plfile) print(*v_pl, file=plfile) @@ -126,7 +126,7 @@ plfile.write_record(v_pl[1]) plfile.write_record(v_pl[2]) plfile.write_record(Gmass) -plfile.write_record(Rhill) +plfile.write_record(rhill) plfile.write_record(radius) plfile.close() tpfile = FortranFile(swiftest_tp, 'w') diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py index 5ce3cec71..5fc0ef7d0 100755 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/init_cond.py @@ -84,16 +84,16 @@ for i in pl.id: pli = pl.sel(id=i) - rstart = 2 * np.double(pli['Radius']) # Start the test particles at a multiple of the planet radius away - vstart = 1.5 * np.sqrt(2 * np.double(pli['GMass']) / rstart) # Start the test particle velocities at a multiple of the escape speed + rstart = 2 * np.double(pli['radius']) # Start the test particles at a multiple of the planet radius away + vstart = 1.5 * np.sqrt(2 * np.double(pli['Gmass']) / rstart) # Start the test particle velocities at a multiple of the escape speed xvstart = np.array([rstart / np.sqrt(2.0), rstart / np.sqrt(2.0), 0.0, vstart, 0.0, 0.0]) # The positions and velocities of each pair of test particles will be in reference to a planet - plvec = np.array([np.double(pli['px']), - np.double(pli['py']), - np.double(pli['pz']), - np.double(pli['vx']), - np.double(pli['vy']), - np.double(pli['vz'])]) + plvec = np.array([np.double(pli['xhx']), + np.double(pli['xhy']), + np.double(pli['xhz']), + np.double(pli['vhx']), + np.double(pli['vhy']), + np.double(pli['vhz'])]) tpxv1 = plvec + xvstart tpxv2 = plvec - xvstart p1.append(tpxv1[0]) diff --git a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb index 382459e3b..720db909b 100644 --- a/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ b/examples/rmvs_swifter_comparison/8pl_16tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -593,7 +593,7 @@ " * id (id) int64 101 102 103 104 105 106 107 ... 111 112 113 114 115 116\n", " time float64 500.0\n", "Data variables:\n", - " GMass (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", + " Gmass (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", " Radius (id) float64 nan nan nan nan nan nan ... nan nan nan nan nan nan\n", " px (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", " py (id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0\n", @@ -603,7 +603,7 @@ " vz (id) float64 0.0 0.0 -1.084e-19 ... -4.066e-20 -1.355e-20\n", " rmag (id) float64 0.0 0.0 0.0 0.0 1.775e-18 ... 0.0 1.388e-17 0.0 0.0\n", " vmag (id) float64 0.0 0.0 1.084e-19 0.0 ... 4.4e-19 2.206e-19 3.469e-18" + " * id (id) float64 0.0 2.0 3.0 4.0 ... 1.499e+03 1.5e+03 1.501e+03\n", + " * time (time) float64 0.0\n", + "Data variables: (12/25)\n", + " Gmass (time, id) float64 4.284e+13 9.907e+04 ... 7.986e+05 7.541e+04\n", + " radius (time, id) float64 3.39e+06 7.076e+03 ... 9.628e+03 4.385e+03\n", + " J_2 (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n", + " J_4 (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n", + " Ip1 (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n", + " Ip2 (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n", + " ... ...\n", + " py_origin (id) float64 0.0 8.604e+06 -6.936e+06 ... 1.495e+07 7.918e+06\n", + " pz_origin (id) float64 0.0 1.252e+04 1.515e+04 ... 7.336e+04 2.602e+04\n", + " vhx_origin (id) float64 0.0 -2.134e+03 1.312e+03 ... -1.299e+03 -1.742e+03\n", + " vhy_origin (id) float64 0.0 -591.2 -1.533e+03 ... 92.04 -827.7 -1.185e+03\n", + " vhz_origin (id) float64 0.0 -1.465 -0.1413 0.2818 ... 9.685 -3.166 2.274\n", + " origin_type (id) <U32 'Central body' ... 'Initial conditions'" ], "text/plain": [ "\n", - "Dimensions: ()\n", - "Coordinates:\n", - " id float64 1.13e+03\n", - " time float64 600.0\n", - "Data variables:\n", - " Gmass float64 0.0\n", - " Radius float64 0.0\n", - " px float64 0.0\n", - " py float64 0.0\n", - " pz float64 2.547e-11\n", - " vx float64 -3.286e-11\n", - " vy float64 8.617e-11\n", - " vz float64 -2.795e-11" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "badval.sel(id=1130)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'px' (time: 8)>\n",
    -       "array([ 0.00000000e+00, -4.65661287e-10, -4.09223139e-06, -1.73607841e-05,\n",
    -       "       -4.62410972e-05,  3.44669074e-03, -3.59948692e-01,  2.63233909e+00])\n",
    -       "Coordinates:\n",
    -       "    id       float64 2.0\n",
    -       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 3e+03 3.6e+03 4.2e+03
    " - ], - "text/plain": [ - "\n", - "array([ 0.00000000e+00, -4.65661287e-10, -4.09223139e-06, -1.73607841e-05,\n", - " -4.62410972e-05, 3.44669074e-03, -3.59948692e-01, 2.63233909e+00])\n", + "Dimensions: (id: 1501, time: 1)\n", "Coordinates:\n", - " id float64 2.0\n", - " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 3e+03 3.6e+03 4.2e+03" + " * id (id) float64 0.0 2.0 3.0 4.0 ... 1.499e+03 1.5e+03 1.501e+03\n", + " * time (time) float64 0.0\n", + "Data variables: (12/25)\n", + " Gmass (time, id) float64 4.284e+13 9.907e+04 ... 7.986e+05 7.541e+04\n", + " radius (time, id) float64 3.39e+06 7.076e+03 ... 9.628e+03 4.385e+03\n", + " J_2 (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n", + " J_4 (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n", + " Ip1 (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n", + " Ip2 (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n", + " ... ...\n", + " py_origin (id) float64 0.0 8.604e+06 -6.936e+06 ... 1.495e+07 7.918e+06\n", + " pz_origin (id) float64 0.0 1.252e+04 1.515e+04 ... 7.336e+04 2.602e+04\n", + " vhx_origin (id) float64 0.0 -2.134e+03 1.312e+03 ... -1.299e+03 -1.742e+03\n", + " vhy_origin (id) float64 0.0 -591.2 -1.533e+03 ... 92.04 -827.7 -1.185e+03\n", + " vhz_origin (id) float64 0.0 -1.465 -0.1413 0.2818 ... 9.685 -3.166 2.274\n", + " origin_type (id) self%nbody) - if (n == 0) return - - !! Calculate the output number that we are currently on - ioutput = (param%t / param%dt) / param%istep_out - !call check( nf90_inq_varid(ncid, "Time", ioutput)) - !call check( nf90_inquire_dimension(ncid, time_dimid, len=ioutput)) - - select case (param%out_form) - case (EL) - call util_sort(self%id(1:n), ind(1:n)) - do i = 1, n - j = ind(i) - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "a", a_varid)) - call check( nf90_inq_varid(ncid, "e", e_varid)) - call check( nf90_inq_varid(ncid, "inc", inc_varid)) - call check( nf90_inq_varid(ncid, "capom", capom_varid)) - call check( nf90_inq_varid(ncid, "omega", omega_varid)) - call check( nf90_inq_varid(ncid, "capm", capm_varid)) - - call check( nf90_put_var(ncid, a_varid, self%a(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, e_varid, self%e(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, inc_varid, self%inc(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, capom_varid, self%capom(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, omega_varid, self%omega(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, capm_varid, self%capm(j), start=(/ioutput + 1, j/)) ) - end do - case (XV) - call util_sort(self%id(1:n), ind(1:n)) - do i = 1, n - j = ind(i) - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "xhx", xhx_varid)) - call check( nf90_inq_varid(ncid, "xhy", xhy_varid)) - call check( nf90_inq_varid(ncid, "xhz", xhz_varid)) - call check( nf90_inq_varid(ncid, "vhx", vhx_varid)) - call check( nf90_inq_varid(ncid, "vhy", vhy_varid)) - call check( nf90_inq_varid(ncid, "vhz", vhz_varid)) - - call check( nf90_put_var(ncid, xhx_varid, self%xh(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, xhy_varid, self%xh(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, xhz_varid, self%xh(3, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhx_varid, self%vh(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhy_varid, self%vh(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, vhz_varid, self%vh(3, j), start=(/ioutput + 1, j/)) ) - end do - end select - select type(pl => self) - class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - do j = 1, n - do i = 1, n - if (self%id(i) == j) then - - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "Gmass", Gmass_varid)) - call check( nf90_put_var(ncid, Gmass_varid, pl%Gmass(j), start=(/ioutput + 1, j/)) ) - if (param%lrhill_present) then - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "rhill", rhill_varid)) - call check( nf90_put_var(ncid, rhill_varid, pl%rhill(j), start=(/ioutput + 1, j/)) ) - end if - if (param%lclose) then - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "radius", radius_varid)) - call check( nf90_put_var(ncid, radius_varid, pl%radius(j), start=(/ioutput + 1, j/)) ) - end if - if (param%lrotation) then - - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "Ip1", Ip1_varid)) - call check( nf90_inq_varid(ncid, "Ip2", Ip2_varid)) - call check( nf90_inq_varid(ncid, "Ip3", Ip3_varid)) - call check( nf90_inq_varid(ncid, "rotx", rotx_varid)) - call check( nf90_inq_varid(ncid, "roty", roty_varid)) - call check( nf90_inq_varid(ncid, "rotz", rotz_varid)) - - call check( nf90_put_var(ncid, Ip1_varid, pl%Ip(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, Ip2_varid, pl%Ip(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, Ip3_varid, pl%Ip(3, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, rotx_varid, pl%rot(1, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, roty_varid, pl%rot(2, j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, rotz_varid, pl%rot(3, j), start=(/ioutput + 1, j/)) ) - end if - if (param%ltides) then - - !! Reassign all variable IDs - call check( nf90_inq_varid(ncid, "k2", k2_varid)) - call check( nf90_inq_varid(ncid, "Q", Q_varid)) - - call check( nf90_put_var(ncid, k2_varid, pl%k2(j), start=(/ioutput + 1, j/)) ) - call check( nf90_put_var(ncid, Q_varid, pl%Q(j), start=(/ioutput + 1, j/)) ) - end if - end if - end do - end do - end select - end associate - - !! Close the netCDF file - call check( nf90_close(ncid) ) - - contains - - !! Checks the status of all NetCDF operations to catch errors - subroutine check(status) - integer, intent ( in) :: status - - if(status /= nf90_noerr) then - print *, trim(nf90_strerror(status)) - stop "NetCDF Error: Stopped" - end if - end subroutine check - - !return - end subroutine io_netcdf_write_frame_body - module subroutine io_write_frame_cb(self, iu, param) !! author: David A. Minton @@ -1773,7 +1605,7 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi end subroutine - module subroutine io_write_frame_system(self, iu, param) + module subroutine io_write_frame_system(self, param) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Write a frame (header plus records for each massive body and active test particle) to output binary file @@ -1784,7 +1616,6 @@ module subroutine io_write_frame_system(self, iu, param) implicit none ! Arguments class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method @@ -1792,223 +1623,91 @@ module subroutine io_write_frame_system(self, iu, param) class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions character(len=STRMAX) :: errmsg + integer(I4B) :: iu = BINUNIT !! Unit number for the output file to write frame to + logical :: fileExists + type(netcdf_parameters) :: nciu allocate(cb, source = self%cb) allocate(pl, source = self%pl) allocate(tp, source = self%tp) iu = BINUNIT - if (lfirst) then - select case(param%out_stat) - case('APPEND') - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case('NEW', 'REPLACE', 'UNKNOWN') - open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case default - write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end select - lfirst = .false. - else - open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then + if (lfirst) then + select case(param%out_stat) + case('APPEND') + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case('NEW', 'REPLACE', 'UNKNOWN') + open(unit = iu, file = param%outfile, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case default + write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) + call util_exit(FAILURE) + end select + + lfirst = .false. + else + open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + end if + call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) + else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + if (lfirst) then + inquire(file=param%outfile, exist=fileExists) + + select case(param%out_stat) + case('APPEND') + if (.not.fileExists) then + errmsg = param%outfile // " not found! You must specify OUT_STAT = NEW, REPLACE, or UNKNOWN" + goto 667 + end if + case('NEW') + if (fileExists) then + errmsg = param%outfile // " Alread Exists! You must specify OUT_STAT = OLD, REPLACE, or UNKNOWN" + goto 667 + end if + case('REPLACE', 'UNKNOWN') + if (fileExists) then + open(file=param%outfile, unit=iu, status='OLD') + close (unit=BINUNIT, status="delete") + end if + end select + + select case(param%out_stat) + case('NEW', 'REPLACE', 'UNKNOWN') + call nciu%initialize(param) + end select + lfirst = .false. + end if end if - call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) if (param%lgr) then call pl%pv2v(param) call tp%pv2v(param) end if - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here call pl%xv2el(cb) call tp%xv2el(cb) end if ! Write out each data type frame - call cb%write_frame(iu, param) - call pl%write_frame(iu, param) - call tp%write_frame(iu, param) - - close(iu, err = 667, iomsg = errmsg) - - return - 667 continue - write(*,*) "Error writing system frame: " // trim(adjustl(errmsg)) - call util_exit(FAILURE) - end subroutine io_write_frame_system - - - module subroutine io_netcdf_write_frame_system(self, iu, param) - !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott - !! - !! Write a frame (header plus records for each massive body and active test particle) to output binary file - !! There is no direct file output from this subroutine - !! - !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 - !! Adapted from Hal Levison's Swift routine io_write_frame.F - use netcdf - implicit none - ! Arguments - class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method - integer(I4B) :: ierr !! I/O error code - - class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions - class(swiftest_pl), allocatable :: pl !! Temporary local version of pl structure used for non-destructive conversions - class(swiftest_tp), allocatable :: tp !! Temporary local version of pl structure used for non-destructive conversions - - integer(I4B) :: ncid !! NetCDF ID for the output file - integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file - integer(I4B) :: time_dimid !! NetCDF ID for the time dimension - integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension - integer(I4B) :: noutput !! Number of output events covering the total simulation time - integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable - integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable - integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable - integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable - integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable - integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable - integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable - integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable - integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable - integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable - integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable - integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable - integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable - integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable - integer(I4B) :: radius_varid !! NetCDF ID for the radius variable - integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertial variable - integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertial variable - integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertial variable - integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable - integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable - integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable - integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable - integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(I4B) :: oldMode - logical :: fileExists - - allocate(cb, source = self%cb) - allocate(pl, source = self%pl) - allocate(tp, source = self%tp) - iu = BINUNIT - - if (param%lgr) then - call pl%pv2v(param) - call tp%pv2v(param) - end if - - if (param%out_form == EL) then ! Do an orbital element conversion prior to writing out the frame, as we have access to the central body here - call pl%xv2el(cb) - call tp%xv2el(cb) - end if - - if (lfirst) then - select case(param%out_stat) - case('APPEND') - - call cb%write_frame(iu, param) - call pl%write_frame(iu, param) - call tp%write_frame(iu, param) - - case('NEW', 'REPLACE', 'UNKNOWN') - - !! Create the new output file, deleting any previously existing output file of the same name - inquire(file=param%outfile, exist=fileExists) - if (fileExists) then - open(file=param%outfile, unit=BINUNIT, status='OLD') - close (unit=BINUNIT, status="delete") - end if - call check( nf90_create(param%outfile, NF90_HDF5, ncid) ) - !call check( nf90_set_fill(ncid, nf90_nofill, oldMode) ) - - !! Calculate the number of outputs needed to cover the entire simulation time - noutput = ((param%tstop / param%dt) / param%istep_out) + 2 !! +2 because t=0 gets put in spot 1 and need a stop for the final output - - !! Define the NetCDF dimensions with particle name as the record dimension - call check( nf90_def_dim(ncid, "id", NF90_UNLIMITED, id_dimid) ) !! 'x' dimension - call check( nf90_def_dim(ncid, "time", NF90_UNLIMITED, time_dimid) ) !! 'y' dimension - dimids = (/ time_dimid, id_dimid /) - - !! Define the variables - select case (param%out_form) - case (EL) - call check( nf90_def_var(ncid, "a", NF90_DOUBLE, dimids, a_varid) ) - call check( nf90_def_var(ncid, "e", NF90_DOUBLE, dimids, e_varid) ) - call check( nf90_def_var(ncid, "inc", NF90_DOUBLE, dimids, inc_varid) ) - call check( nf90_def_var(ncid, "capom", NF90_DOUBLE, dimids, capom_varid) ) - call check( nf90_def_var(ncid, "omega", NF90_DOUBLE, dimids, omega_varid) ) - call check( nf90_def_var(ncid, "capm", NF90_DOUBLE, dimids, capm_varid) ) - case (XV) - call check( nf90_def_var(ncid, "xhx", NF90_DOUBLE, dimids, xhx_varid) ) - call check( nf90_def_var(ncid, "xhy", NF90_DOUBLE, dimids, xhy_varid) ) - call check( nf90_def_var(ncid, "xhz", NF90_DOUBLE, dimids, xhz_varid) ) - call check( nf90_def_var(ncid, "vhx", NF90_DOUBLE, dimids, vhx_varid) ) - call check( nf90_def_var(ncid, "vhy", NF90_DOUBLE, dimids, vhy_varid) ) - call check( nf90_def_var(ncid, "vhz", NF90_DOUBLE, dimids, vhz_varid) ) - end select - - call check( nf90_def_var(ncid, "Gmass", NF90_DOUBLE, dimids, Gmass_varid) ) - if (param%lrhill_present) call check( nf90_def_var(ncid, "rhill", NF90_DOUBLE, dimids, rhill_varid) ) - if (param%lclose) call check( nf90_def_var(ncid, "radius", NF90_DOUBLE, dimids, radius_varid) ) - if (param%lrotation) then - call check( nf90_def_var(ncid, "Ip1", NF90_DOUBLE, dimids, Ip1_varid) ) - call check( nf90_def_var(ncid, "Ip2", NF90_DOUBLE, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "Ip3", NF90_DOUBLE, dimids, Ip3_varid) ) - call check( nf90_def_var(ncid, "rotx", NF90_DOUBLE, dimids, rotx_varid) ) - call check( nf90_def_var(ncid, "roty", NF90_DOUBLE, dimids, roty_varid) ) - call check( nf90_def_var(ncid, "rotz", NF90_DOUBLE, dimids, rotz_varid) ) - end if - if (param%ltides) then - call check( nf90_def_var(ncid, "k2", NF90_DOUBLE, dimids, k2_varid) ) - call check( nf90_def_var(ncid, "Q", NF90_DOUBLE, dimids, Q_varid) ) - end if - - !! Exit define mode - call check( nf90_enddef(ncid) ) - - !! Close the netCDF file - call check( nf90_close(ncid) ) - - !! Write the first frame of the output - call cb%write_frame(iu, param) - call pl%write_frame(iu, param) - call tp%write_frame(iu, param) - - case default - write(*,*) 'Invalid status code for OUT_STAT: ',trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end select - - lfirst = .false. - - else - + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) + close(iu, err = 667, iomsg = errmsg) + else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call cb%write_frame(nciu, param) + call pl%write_frame(nciu, param) + call tp%write_frame(nciu, param) end if - - deallocate(cb, pl, tp) - - contains - - !! Checks the status of all NetCDF operations to catch errors - subroutine check(status) - integer, intent ( in) :: status - if(status /= nf90_noerr) then - print *, trim(nf90_strerror(status)) - stop "NetCDF Error: Stopped" - end if - end subroutine check + return - !return - end subroutine io_netcdf_write_frame_system + 667 continue + write(*,*) "Error writing system frame: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_write_frame_system subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) @@ -2030,9 +1729,9 @@ subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) character(len=STRMAX) :: errmsg select case (out_type) - case (REAL4_TYPE,SWIFTER_REAL4_TYPE) + case (REAL4_TYPE) write(iu, err = 667, iomsg = errmsg) real(t, kind=SP) - case (REAL8_TYPE,SWIFTER_REAL8_TYPE) + case (REAL8_TYPE) write(iu, err = 667, iomsg = errmsg) t end select write(iu, err = 667, iomsg = errmsg) npl diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 3a274e596..d22663d40 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -18,7 +18,6 @@ program swiftest_driver integer(I8B) :: idump !! Dump cadence counter integer(I8B) :: iout !! Output cadence counter integer(I8B) :: nloops !! Number of steps to take in the simulation - integer(I4B) :: iu !! Unit number of binary file real(DP) :: old_t_final = 0.0_DP !! Output time at which writing should start, in order to prevent duplicate lines being written for restarts ierr = io_get_args(integrator, param_file_name) @@ -56,7 +55,7 @@ program swiftest_driver old_t_final = nbody_system%get_old_t_final(param) else old_t_final = t0 - if (istep_out > 0) call nbody_system%write_frame(iu, param) + if (istep_out > 0) call nbody_system%write_frame(param) call nbody_system%dump(param) end if @@ -81,7 +80,7 @@ program swiftest_driver if (istep_out > 0) then iout = iout - 1 if (iout == 0) then - if (t > old_t_final) call nbody_system%write_frame(iu, param) + if (t > old_t_final) call nbody_system%write_frame(param) iout = istep_out end if end if diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 5fcc46aa5..d5642ab87 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -15,7 +15,7 @@ module swiftest_classes !> Each paramter is initialized to a default values. type :: swiftest_parameters integer(I4B) :: integrator = UNKNOWN_INTEGRATOR !! Symbolic name of the nbody integrator used - integer(I4B) :: maxid = -1 !! The current maximum particle id number + integer(I4B) :: maxid = -1 !! The current maximum particle id number real(DP) :: t0 = -1.0_DP !! Integration start time real(DP) :: t = -1.0_DP !! Integration current time real(DP) :: tstop = -1.0_DP !! Integration stop time @@ -26,9 +26,9 @@ module swiftest_classes character(STRMAX) :: in_type = ASCII_TYPE !! Data representation type of input data files character(STRMAX) :: in_form = XV !! Format of input data files (EL or XV) integer(I4B) :: istep_out = -1 !! Number of time steps between binary outputs - character(STRMAX) :: outfile = BIN_OUTFILE !! Name of output binary file - character(STRMAX) :: out_type = REAL8_TYPE !! Binary format of output file - character(STRMAX) :: out_form = XV !! Data to write to output file + character(STRMAX) :: outfile = NETCDF_OUTFILE !! Name of output binary file + character(STRMAX) :: out_type = NETCDF_DOUBLE_TYPE !! Binary format of output file + character(STRMAX) :: out_form = XVEL !! Data to write to output file character(STRMAX) :: out_stat = 'NEW' !! Open status for output binary file integer(I4B) :: istep_dump = -1 !! Number of time steps between dumps real(DP) :: rmin = -1.0_DP !! Minimum heliocentric radius for test particle @@ -82,6 +82,39 @@ module swiftest_classes procedure :: read_in => io_read_in_param end type swiftest_parameters + type :: netcdf_parameters + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) + contains + procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object + end type netcdf_parameters + !******************************************************************************************************************************** ! swiftest_base class definitions and methods !******************************************************************************************************************************** @@ -90,9 +123,9 @@ module swiftest_classes logical :: lintegrate = .false. !! Flag indicating that this object should be integrated in the current step contains !! The minimal methods that all systems must have - procedure :: dump => io_dump_swiftest - procedure(abstract_read_frame), deferred :: read_frame - procedure(abstract_write_frame), deferred :: write_frame + procedure :: dump => io_dump_swiftest + procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + generic :: write_frame => write_frame_netcdf end type swiftest_base !******************************************************************************************************************************** @@ -127,7 +160,8 @@ module swiftest_classes contains procedure :: read_in => io_read_in_cb !! I/O routine for reading in central body data procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body - procedure :: write_frame => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: write_frame_bin => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body + generic :: write_frame => write_frame_bin end type swiftest_cb !******************************************************************************************************************************** @@ -173,8 +207,7 @@ module swiftest_classes procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - !procedure :: write_frame => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: write_frame => io_netcdf_write_frame_body !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + procedure :: write_frame_bin => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements @@ -187,6 +220,7 @@ module swiftest_classes procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + generic :: write_frame => write_frame_bin end type swiftest_body !******************************************************************************************************************************** @@ -277,7 +311,7 @@ module swiftest_classes ! swiftest_nbody_system class definitions and methods !******************************************************************************************************************************** !> An abstract class for a basic Swiftest nbody system - type, abstract, extends(swiftest_base) :: swiftest_nbody_system + type, abstract :: swiftest_nbody_system !! This superclass contains a minimial system of a set of test particles (tp), massive bodies (pl), and a central body (cb) class(swiftest_cb), allocatable :: cb !! Central body data structure class(swiftest_pl), allocatable :: pl !! Massive body data structure @@ -306,8 +340,7 @@ module swiftest_classes procedure :: get_old_t_final => io_get_old_t_final_system !! Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the binary output. procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file procedure :: write_discard => io_write_discard !! Write out information about discarded test particles - !procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file - procedure :: write_frame => io_netcdf_write_frame_system !! Append a frame of output data to file in NetCDF format + procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file procedure :: initialize => setup_initialize_system !! Initialize the system from input files procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. procedure :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. @@ -399,13 +432,6 @@ subroutine abstract_step_system(self, param, t, dt) real(DP), intent(in) :: t !! Simulation time real(DP), intent(in) :: dt !! Current stepsize end subroutine abstract_step_system - - subroutine abstract_write_frame(self, iu, param) - import DP, I4B, swiftest_base, swiftest_parameters - class(swiftest_base), intent(in) :: self !! Swiftest base object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine abstract_write_frame end interface interface @@ -687,13 +713,6 @@ module subroutine io_write_frame_body(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_body - module subroutine io_netcdf_write_frame_body(self, iu, param) - implicit none - class(swiftest_body), intent(in) :: self !! Swiftest body object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine io_netcdf_write_frame_body - module subroutine io_write_frame_cb(self, iu, param) implicit none class(swiftest_cb), intent(in) :: self !! Swiftest central body object @@ -712,19 +731,18 @@ module subroutine io_write_frame_encounter(iu, t, id1, id2, Gmass1, Gmass2, radi real(DP), dimension(:), intent(in) :: vh1, vh2 !! Swiftestcentric velocity vectors of the two encountering bodies end subroutine io_write_frame_encounter - module subroutine io_write_frame_system(self, iu, param) + module subroutine io_write_frame_system(self, param) implicit none class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine io_write_frame_system - module subroutine io_netcdf_write_frame_system(self, iu, param) + module subroutine netcdf_write_frame_system(self, iu, param) implicit none class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine io_netcdf_write_frame_system + end subroutine netcdf_write_frame_system module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, acc) implicit none @@ -770,6 +788,19 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) integer(I4B), intent(in) :: npl !! Number of active massive bodies end subroutine kick_getacch_int_tp + module subroutine netcdf_initialize_output(self, param) + implicit none + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_initialize_output + + module subroutine netcdf_write_frame_base(self, iu, param) + implicit none + class(swiftest_base), intent(in) :: self !! Swiftest base object + class(netcdf_parameters), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_write_frame_base + module subroutine obl_acc_body(self, system) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index ad886e4f7..bb08c7ab5 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -47,11 +47,12 @@ module swiftest_globals character(*), parameter :: ASCII_TYPE = 'ASCII' !! Symbolic name for ASCII file type character(*), parameter :: REAL4_TYPE = 'REAL4' !! Symbolic name for binary file type REAL4 character(*), parameter :: REAL8_TYPE = 'REAL8' !! Symbolic name for binary file type REAL8 - character(*), parameter :: SWIFTER_REAL4_TYPE = 'SWIFTER4' !! Symbolic name for binary file type for the old style Swifter REAL4 - character(*), parameter :: SWIFTER_REAL8_TYPE = 'SWIFTER8' !! Symbolic name for binary file type for the old style Swifter REAL8 + character(*), parameter :: NETCDF_FLOAT_TYPE = 'NETCDF_FLOAT' !! Symbolic name for binary file type REAL8 + character(*), parameter :: NETCDF_DOUBLE_TYPE = 'NETCDF_DOUBLE' !! Symbolic name for binary file type REAL8 - character(*), parameter :: EL = 'EL' !! Symbolic name for binary output file contents for orbital element type - character(*), parameter :: XV = 'XV' !! Symbolic name for binary output file contents for cartesian position and velocity type + character(*), parameter :: EL = 'EL' !! Symbolic name for binary output file contents for orbital elements + character(*), parameter :: XV = 'XV' !! Symbolic name for binary output file contents for cartesian position and velocity vectors + character(*), parameter :: XVEL = 'XVEL' !! Symbolic name for binary output file contents for both cartesian position and velocity and orbital elements ! OpenMP Parameters integer(I4B) :: nthreads = 1 !! Number of OpenMP threads @@ -125,4 +126,32 @@ module swiftest_globals real(DP), parameter :: GC = 6.6743E-11_DP !! Universal gravitational constant in SI units real(DP), parameter :: einsteinC = 299792458.0_DP !! Speed of light in SI units + !> NetCDF variable names and constants + character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' + character(*), parameter :: TIME_DIMNAME = "time"!! netcdf id for the time dimension + character(*), parameter :: ID_DIMNAME = "id"!! NetCDF ID for the particle name dimension + character(*), parameter :: A_VARNAME = "a"!! NetCDF ID for the semimajor axis variable + character(*), parameter :: E_VARNAME = "e"!! NetCDF ID for the eccentricity variable + character(*), parameter :: INC_VARNAME = "inc"!! NetCDF ID for the inclination variable + character(*), parameter :: CAPOM_VARNAME = "capom"!! NetCDF ID for the long. asc. node variable + character(*), parameter :: OMEGA_VARNAME = "omega"!! NetCDF ID for the arg. periapsis variable + character(*), parameter :: CAPM_VARNAME = "capm"!! NetCDF ID for the mean anomaly variable + character(*), parameter :: XHX_VARNAME = "xhx"!! NetCDF ID for the heliocentric position x variable + character(*), parameter :: XHY_VARNAME = "xhy"!! NetCDF ID for the heliocentric position y variable + character(*), parameter :: XHZ_VARNAME = "xhz"!! NetCDF ID for the heliocentric position z variable + character(*), parameter :: VHX_VARNAME = "vhx"!! NetCDF ID for the heliocentric velocity x variable + character(*), parameter :: VHY_VARNAME = "vhy"!! NetCDF ID for the heliocentric velocity y variable + character(*), parameter :: VHZ_VARNAME = "vhz"!! NetCDF ID for the heliocentric velocity z variable + character(*), parameter :: GMASS_VARNAME = "Gmass"!! NetCDF ID for the mass variable + character(*), parameter :: RHILL_VARNAME = "rhill"!! NetCDF ID for the hill radius variable + character(*), parameter :: RADIUS_VARNAME = "radius"!! NetCDF ID for the radius variable + character(*), parameter :: IP1_VARNAME = "Ip1"!! NetCDF ID for the axis 1 principal moment of inertial variable + character(*), parameter :: IP2_VARNAME = "Ip2"!! NetCDF ID for the axis 2 principal moment of inertial variable + character(*), parameter :: IP3_VARNAME = "Ip3"!! NetCDF ID for the axis 3 principal moment of inertial variable + character(*), parameter :: ROTX_VARNAME = "rotx"!! NetCDF ID for the rotation x variable + character(*), parameter :: ROTY_VARNAME = "roty"!! NetCDF ID for the rotation y variable + character(*), parameter :: ROTZ_VARNAME = "rotz"!! NetCDF ID for the rotation z variable + character(*), parameter :: K2_VARNAME = "k2"!! NetCDF ID for the Love number variable + character(*), parameter :: Q_VARNAME = "Q"!! NetCDF ID for the energy dissipation variable + end module swiftest_globals diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 new file mode 100644 index 000000000..1f1b2149d --- /dev/null +++ b/src/netcdf/netcdf.f90 @@ -0,0 +1,232 @@ +submodule (swiftest_classes) s_netcdf + use swiftest + use netcdf +contains + + module subroutine netcdf_write_frame_base(self, iu, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Write a frame of output of either test particle or massive body data to the binary output file + !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method + !! + !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 + !! Adapted from Hal Levison's Swift routine io_write_frame.F + implicit none + ! Arguments + class(swiftest_base), intent(in) :: self !! Swiftest particle object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: i, j, id, ioutput + integer(I4B), dimension(:), allocatable :: ind + + !! Open the netCDF file + call check( nf90_open(param%outfile, nf90_write, iu%ncid) ) + !call check( nf90_set_fill(iu%ncid, nf90_nofill, oldMode) ) + + + ! Calculate the output number that we are currently on + ioutput = (param%t / param%dt) / param%istep_out + + select type(self) + class is (swiftest_body) + associate(n => self%nbody) + if (n == 0) return + allocate(ind(n)) + call util_sort(self%id(1:n), ind(1:n)) + + do i = 1, n + j = ind(i) + id = self%id(j) + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then + call check( nf90_inq_varid(iu%ncid, XHX_VARNAME, iu%xhx_varid)) + call check( nf90_inq_varid(iu%ncid, XHY_VARNAME, iu%xhy_varid)) + call check( nf90_inq_varid(iu%ncid, XHZ_VARNAME, iu%xhz_varid)) + call check( nf90_inq_varid(iu%ncid, VHX_VARNAME, iu%vhx_varid)) + call check( nf90_inq_varid(iu%ncid, VHY_VARNAME, iu%vhy_varid)) + call check( nf90_inq_varid(iu%ncid, VHZ_VARNAME, iu%vhz_varid)) + + call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[ioutput + 1, id]) ) + end if + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + call check( nf90_inq_varid(iu%ncid, A_VARNAME, iu%a_varid)) + call check( nf90_inq_varid(iu%ncid, E_VARNAME, iu%e_varid)) + call check( nf90_inq_varid(iu%ncid, INC_VARNAME, iu%inc_varid)) + call check( nf90_inq_varid(iu%ncid, CAPOM_VARNAME, iu%capom_varid)) + call check( nf90_inq_varid(iu%ncid, OMEGA_VARNAME, iu%omega_varid)) + call check( nf90_inq_varid(iu%ncid, CAPM_VARNAME, iu%capm_varid)) + + call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[ioutput + 1, id]) ) + end if + select type(pl => self) + class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body + call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[ioutput + 1, id]) ) + if (param%lrhill_present) then + call check( nf90_inq_varid(iu%ncid, RHILL_VARNAME, iu%rhill_varid)) + call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[ioutput + 1, id]) ) + end if + if (param%lclose) then + call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) + call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[ioutput + 1, id]) ) + end if + if (param%lrotation) then + call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) + call check( nf90_inq_varid(iu%ncid, IP2_VARNAME, iu%Ip2_varid)) + call check( nf90_inq_varid(iu%ncid, IP3_VARNAME, iu%Ip3_varid)) + call check( nf90_inq_varid(iu%ncid, ROTX_VARNAME, iu%rotx_varid)) + call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) + call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) + + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[ioutput + 1, id]) ) + end if + if (param%ltides) then + call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) + call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) + + call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[ioutput + 1, id]) ) + end if + end select + end do + end associate + class is (swiftest_cb) + id = self%id + call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[ioutput + 1, id]) ) + call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) + call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[ioutput + 1, id]) ) + if (param%lrotation) then + call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) + call check( nf90_inq_varid(iu%ncid, IP2_VARNAME, iu%Ip2_varid)) + call check( nf90_inq_varid(iu%ncid, IP3_VARNAME, iu%Ip3_varid)) + call check( nf90_inq_varid(iu%ncid, ROTX_VARNAME, iu%rotx_varid)) + call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) + call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) + + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[ioutput + 1, id]) ) + end if + if (param%ltides) then + call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) + call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) + + call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[ioutput + 1, id]) ) + end if + end select + + ! Close the netCDF file + call check( nf90_close(iu%ncid) ) + + return + end subroutine netcdf_write_frame_base + + + module subroutine netcdf_initialize_output(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Mintont + !! + !! Initialize a NetCDF file system + !! There is no direct file output from this subroutine + !! + !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 + !! Adapted from Hal Levison's Swift routine io_write_frame.F + implicit none + ! Arguments + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + logical :: fileExists + + !! Create the new output file, deleting any previously existing output file of the same name + call check( nf90_create(param%outfile, NF90_HDF5, self%ncid) ) + !call check( nf90_set_fill(self%ncid, nf90_nofill, oldMode) ) + + ! Define the NetCDF dimensions with particle name as the record dimension + call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension + call check( nf90_def_dim(self%ncid, TIME_DIMNAME, NF90_UNLIMITED, self%time_dimid) ) ! 'y' dimension + self%dimids = [self%time_dimid, self%id_dimid ] + + select case (param%out_type) + case(NETCDF_FLOAT_TYPE) + self%out_type = NF90_FLOAT + case(NETCDF_DOUBLE_TYPE) + self%out_type = NF90_DOUBLE + end select + + !! Define the variables + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then + call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) + call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) + call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) + call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) + call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) + call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) + end if + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) + call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) + call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, self%dimids, self%xhz_varid) ) + call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, self%dimids, self%vhx_varid) ) + call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, self%dimids, self%vhy_varid) ) + call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, self%dimids, self%vhz_varid) ) + end if + + call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, self%dimids, self%Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, self%dimids, self%rhill_varid) ) + if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, self%dimids, self%radius_varid) ) + if (param%lrotation) then + call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, self%dimids, self%Ip1_varid) ) + call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) + call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) + call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, self%dimids, self%rotx_varid) ) + call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, self%dimids, self%roty_varid) ) + call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, self%dimids, self%rotz_varid) ) + end if + if (param%ltides) then + call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, self%dimids, self%k2_varid) ) + call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, self%dimids, self%Q_varid) ) + end if + + return + end subroutine netcdf_initialize_output + + + subroutine check(status) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Checks the status of all NetCDF operations to catch errors + implicit none + ! Arguments + integer, intent (in) :: status + + if(status /= nf90_noerr) then + write(*,*) trim(nf90_strerror(status)) + call util_exit(FAILURE) + end if + + return + end subroutine check + + + +end submodule s_netcdf \ No newline at end of file From 475b6dc6001fbfb9120758ec349bec36fc631b8b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 25 Aug 2021 19:33:01 -0400 Subject: [PATCH 202/315] Made initialization of all bodies sequential in id, with the central body starting at id position 1. Also close the NetCDF file after initializing it, as it was getting a Variable not found error when trying to write to it after trying to open it again. --- src/io/io.f90 | 12 ++++++++---- src/netcdf/netcdf.f90 | 8 +++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 748fa1891..ebd504474 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -877,6 +877,7 @@ module subroutine io_read_in_body(self, param) end if close(iu, err = 667, iomsg = errmsg) + if (ierr == 0) return 667 continue @@ -900,11 +901,13 @@ module subroutine io_read_in_cb(self, param) integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN character(len=STRMAX) :: errmsg - integer(I4B) :: ierr + integer(I4B) :: ierr, idold if (param%in_type == 'ASCII') then + self%id = 1 + param%maxid = 1 open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) - read(iu, *, err = 667, iomsg = errmsg) self%id + read(iu, *, err = 667, iomsg = errmsg) idold read(iu, *, err = 667, iomsg = errmsg) self%Gmass self%mass = real(self%Gmass / param%GU, kind=DP) read(iu, *, err = 667, iomsg = errmsg) self%radius @@ -922,6 +925,7 @@ module subroutine io_read_in_cb(self, param) close(iu, err = 667, iomsg = errmsg) if (ierr == 0) then + if (self%j2rp2 /= 0.0_DP) param%loblatecb = .true. if (param%rmin < 0.0) param%rmin = self%radius @@ -1073,7 +1077,6 @@ module function io_read_frame_body(self, iu, param) result(ierr) case (ASCII_TYPE) do i = 1, n - select type(self) class is (swiftest_pl) if (param%lrhill_present) then @@ -1108,7 +1111,8 @@ module function io_read_frame_body(self, iu, param) result(ierr) read(iu, *, err = 667, iomsg = errmsg) self%Q(i) end if end select - + param%maxid = param%maxid + 1 + self%id(i) = param%maxid end do end select diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 1f1b2149d..1d62b2c94 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -152,8 +152,8 @@ module subroutine netcdf_initialize_output(self, param) !! Adapted from Hal Levison's Swift routine io_write_frame.F implicit none ! Arguments - class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals logical :: fileExists @@ -196,7 +196,7 @@ module subroutine netcdf_initialize_output(self, param) if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, self%dimids, self%radius_varid) ) if (param%lrotation) then call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, self%dimids, self%Ip1_varid) ) - call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) + call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip2_varid) ) call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, self%dimids, self%rotx_varid) ) call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, self%dimids, self%roty_varid) ) @@ -207,6 +207,8 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, self%dimids, self%Q_varid) ) end if + call check( nf90_close(self%ncid) ) + return end subroutine netcdf_initialize_output From 068d71dc1159ced86a39d34f09e953630ee90fac Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 25 Aug 2021 19:50:41 -0400 Subject: [PATCH 203/315] Began process of adding name variable to output rather than just integer id. --- examples/symba_mars_disk/cb.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 577 +--------------------- src/io/io.f90 | 9 +- src/modules/swiftest_classes.f90 | 1 + src/modules/swiftest_globals.f90 | 3 +- src/netcdf/netcdf.f90 | 22 +- 6 files changed, 29 insertions(+), 585 deletions(-) diff --git a/examples/symba_mars_disk/cb.in b/examples/symba_mars_disk/cb.in index c9dafacfd..796781819 100644 --- a/examples/symba_mars_disk/cb.in +++ b/examples/symba_mars_disk/cb.in @@ -1,4 +1,4 @@ -0 ! id +Mars ! id 4.28388662e+13 ! G*mass 3389500.0 ! radius 0.0 ! J2 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 66aca4f21..b3288e41b 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -21,588 +21,23 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:  (id: 1518, time: 11)\n",
    -       "Dimensions without coordinates: id, time\n",
    -       "Data variables: (12/15)\n",
    -       "    a        (id, time) float64 1.101e+07 1.101e+07 ... 9.724e+06 9.724e+06\n",
    -       "    e        (id, time) float64 0.006412 0.006414 0.006414 ... 0.0155 0.0155\n",
    -       "    inc      (id, time) float64 0.004313 0.004313 0.004313 ... 0.005999 0.005998\n",
    -       "    capom    (id, time) float64 4.063 4.063 4.063 4.063 ... 3.939 3.939 3.939\n",
    -       "    omega    (id, time) float64 1.099 1.098 1.097 1.097 ... 2.123 2.122 2.122\n",
    -       "    capm     (id, time) float64 1.422 1.531 1.639 1.747 ... 1.296 1.426 1.556\n",
    -       "    ...       ...\n",
    -       "    Ip1      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.4 0.4 0.4\n",
    -       "    Ip2      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.4 0.4 0.4\n",
    -       "    Ip3      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.4 0.4 0.4\n",
    -       "    rotx     (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.0 0.0 0.0\n",
    -       "    roty     (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.0 0.0 0.0\n",
    -       "    rotz     (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 0.0 0.0 0.0
    " - ], "text/plain": [ - "\n", - "Dimensions: (id: 1518, time: 11)\n", - "Dimensions without coordinates: id, time\n", - "Data variables: (12/15)\n", - " a (id, time) float64 ...\n", - " e (id, time) float64 ...\n", - " inc (id, time) float64 ...\n", - " capom (id, time) float64 ...\n", - " omega (id, time) float64 ...\n", - " capm (id, time) float64 ...\n", - " ... ...\n", - " Ip1 (id, time) float64 ...\n", - " Ip2 (id, time) float64 ...\n", - " Ip3 (id, time) float64 ...\n", - " rotx (id, time) float64 ...\n", - " roty (id, time) float64 ...\n", - " rotz (id, time) float64 ..." + "array([b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M',\n", + " b'a', b'r', b's', b'', b'', b''], dtype='|S1')" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dsnew" + "dsnew['name'].sel(id=0).values" ] }, { diff --git a/src/io/io.f90 b/src/io/io.f90 index ebd504474..3cac0c376 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -907,7 +907,7 @@ module subroutine io_read_in_cb(self, param) self%id = 1 param%maxid = 1 open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) - read(iu, *, err = 667, iomsg = errmsg) idold + read(iu, *, err = 667, iomsg = errmsg) self%name read(iu, *, err = 667, iomsg = errmsg) self%Gmass self%mass = real(self%Gmass / param%GU, kind=DP) read(iu, *, err = 667, iomsg = errmsg) self%radius @@ -1037,6 +1037,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) select case(param%in_type) case (REAL4_TYPE, REAL8_TYPE) read(iu, err = 667, iomsg = errmsg) self%id(:) + read(iu, err = 667, iomsg = errmsg) self%name(:) select case (param%in_form) case (XV) @@ -1080,9 +1081,9 @@ module function io_read_frame_body(self, iu, param) result(ierr) select type(self) class is (swiftest_pl) if (param%lrhill_present) then - read(iu, *, err = 667, iomsg = errmsg) self%id(i), val, self%rhill(i) + read(iu, *, err = 667, iomsg = errmsg) self%name(i), val, self%rhill(i) else - read(iu, *, err = 667, iomsg = errmsg) self%id(i), val + read(iu, *, err = 667, iomsg = errmsg) self%name(i), val end if self%Gmass(i) = real(val, kind=DP) self%mass(i) = real(val / param%GU, kind=DP) @@ -1157,8 +1158,8 @@ module function io_read_frame_cb(self, iu, param) result(ierr) ! Internals character(len=STRMAX) :: errmsg - !read(iu, err = 667, iomsg = errmsg) self%name read(iu, err = 667, iomsg = errmsg) self%id + read(iu, err = 667, iomsg = errmsg) self%name read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index d5642ab87..90c745a35 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -87,6 +87,7 @@ module swiftest_classes integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: name_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index bb08c7ab5..48aade302 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -129,7 +129,8 @@ module swiftest_globals !> NetCDF variable names and constants character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' character(*), parameter :: TIME_DIMNAME = "time"!! netcdf id for the time dimension - character(*), parameter :: ID_DIMNAME = "id"!! NetCDF ID for the particle name dimension + character(*), parameter :: ID_DIMNAME = "id"!! NetCDF ID for the particle id dimension + character(*), parameter :: NAME_VARNAME = "name"!! NetCDF ID for the particle name variable character(*), parameter :: A_VARNAME = "a"!! NetCDF ID for the semimajor axis variable character(*), parameter :: E_VARNAME = "e"!! NetCDF ID for the eccentricity variable character(*), parameter :: INC_VARNAME = "inc"!! NetCDF ID for the inclination variable diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 1d62b2c94..313becb9c 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -38,6 +38,8 @@ module subroutine netcdf_write_frame_base(self, iu, param) do i = 1, n j = ind(i) id = self%id(j) + call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) + call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[ioutput + 1, id]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(iu%ncid, XHX_VARNAME, iu%xhx_varid)) call check( nf90_inq_varid(iu%ncid, XHY_VARNAME, iu%xhy_varid)) @@ -107,6 +109,8 @@ module subroutine netcdf_write_frame_base(self, iu, param) end associate class is (swiftest_cb) id = self%id + call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) + call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name)), start=[ioutput + 1, id]) ) call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[ioutput + 1, id]) ) call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) @@ -174,15 +178,8 @@ module subroutine netcdf_initialize_output(self, param) end select !! Define the variables + call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, self%dimids, self%name_varid) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) - call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) - call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) - call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) - call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) - call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) - end if - if ((param%out_form == EL) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, self%dimids, self%xhz_varid) ) @@ -190,6 +187,15 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, self%dimids, self%vhy_varid) ) call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, self%dimids, self%vhz_varid) ) end if + + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) + call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) + call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) + call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) + call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) + call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) + end if call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, self%dimids, self%Gmass_varid) ) if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, self%dimids, self%rhill_varid) ) From ea6f245f27b0692f746b74fa2439e93350379f28 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 25 Aug 2021 23:16:37 -0400 Subject: [PATCH 204/315] Made time and id coordinates in an xarray simply by outputting variables of the same name. Cool. --- examples/symba_mars_disk/cb.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 1322 ++++++++++++++++++++- python/swiftest/swiftest/io.py | 42 +- src/io/io.f90 | 4 +- src/modules/swiftest_classes.f90 | 2 + src/netcdf/netcdf.f90 | 18 +- 6 files changed, 1368 insertions(+), 22 deletions(-) diff --git a/examples/symba_mars_disk/cb.in b/examples/symba_mars_disk/cb.in index 796781819..6185284ec 100644 --- a/examples/symba_mars_disk/cb.in +++ b/examples/symba_mars_disk/cb.in @@ -1,4 +1,4 @@ -Mars ! id +Mars ! name 4.28388662e+13 ! G*mass 3389500.0 ! radius 0.0 ! J2 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index b3288e41b..73fb30eb9 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -19,25 +19,1335 @@ "dsnew = xr.open_dataset(\"bin.nc\")" ] }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:  (id: 1521, time: 11)\n",
    +       "Coordinates:\n",
    +       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    +       "  * id       (id) int32 1 2 3 4 5 6 7 8 ... 1515 1516 1517 1518 1519 1520 1521\n",
    +       "Data variables: (12/21)\n",
    +       "    xhx      (id, time) float64 9.969e+36 9.969e+36 ... 1.587e+06 2.838e+06\n",
    +       "    xhy      (id, time) float64 9.969e+36 9.969e+36 ... -9.103e+06 -8.791e+06\n",
    +       "    xhz      (id, time) float64 9.969e+36 9.969e+36 ... -3.433e+04 -3.905e+04\n",
    +       "    vhx      (id, time) float64 9.969e+36 9.969e+36 ... 2.118e+03 2.045e+03\n",
    +       "    vhy      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 374.7 666.8\n",
    +       "    vhz      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... -8.487 -7.226\n",
    +       "    ...       ...\n",
    +       "    Ip1      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    +       "    Ip2      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    +       "    Ip3      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    +       "    rotx     (id, time) float64 0.0 0.0 0.0 ... -0.0003328 -0.0003328 -0.0003328\n",
    +       "    roty     (id, time) float64 0.0 0.0 0.0 ... -0.0003232 -0.0003232 -0.0003232\n",
    +       "    rotz     (id, time) float64 0.0 0.0 0.0 ... -7.841e-05 -7.841e-05 -7.841e-05
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 1521, time: 11)\n", + "Coordinates:\n", + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03\n", + " * id (id) int32 1 2 3 4 5 6 7 8 ... 1515 1516 1517 1518 1519 1520 1521\n", + "Data variables: (12/21)\n", + " xhx (id, time) float64 ...\n", + " xhy (id, time) float64 ...\n", + " xhz (id, time) float64 ...\n", + " vhx (id, time) float64 ...\n", + " vhy (id, time) float64 ...\n", + " vhz (id, time) float64 ...\n", + " ... ...\n", + " Ip1 (id, time) float64 ...\n", + " Ip2 (id, time) float64 ...\n", + " Ip3 (id, time) float64 ...\n", + " rotx (id, time) float64 ...\n", + " roty (id, time) float64 ...\n", + " rotz (id, time) float64 ..." + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dsnew" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import netCDF4 as nc" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.in\n" + ] + } + ], + "source": [ + "sim = swiftest.Simulation(param_file=\"param.in\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading in time 6.000e+03\n", + "Creating Dataset\n", + "Successfully converted 11 output frames.\n", + "\n", + "Adding particle info to Dataset\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "sim.bin2xr()" + ] + }, { "cell_type": "code", "execution_count": 8, "metadata": {}, + "outputs": [], + "source": [ + "sim.ds.to_netcdf(\"bin.new.nc\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "ds = nc.Dataset(\"bin.new.nc\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "root group (NETCDF4 data model, file format HDF5):\n", + " dimensions(sizes): id(1521), time(11)\n", + " variables(dimensions): float64 id(id), float64 Gmass(time, id), float64 radius(time, id), float64 J_2(time, id), float64 J_4(time, id), float64 Ip1(time, id), float64 Ip2(time, id), float64 Ip3(time, id), float64 rotx(time, id), float64 roty(time, id), float64 rotz(time, id), float64 time(time), float64 a(time, id), float64 e(time, id), float64 inc(time, id), float64 capom(time, id), float64 omega(time, id), float64 capm(time, id), float64 rhill(time, id), float64 time_origin(id), float64 xhx_origin(id), float64 py_origin(id), float64 pz_origin(id), float64 vhx_origin(id), float64 vhy_origin(id), float64 vhz_origin(id), origin_type(id)\n", + " groups: " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "ds = xr.open_dataset(\"bin.new.nc\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:      (id: 1521, time: 11)\n",
    +       "Coordinates:\n",
    +       "  * id           (id) float64 1.0 2.0 3.0 4.0 ... 1.519e+03 1.52e+03 1.521e+03\n",
    +       "  * time         (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    +       "Data variables: (12/25)\n",
    +       "    Gmass        (time, id) float64 4.284e+13 1.71e+06 ... 1.168e+05 1.168e+05\n",
    +       "    radius       (time, id) float64 3.39e+06 1.241e+04 ... 5.073e+03 5.073e+03\n",
    +       "    J_2          (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n",
    +       "    J_4          (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n",
    +       "    Ip1          (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    +       "    Ip2          (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    +       "    ...           ...\n",
    +       "    py_origin    (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n",
    +       "    pz_origin    (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n",
    +       "    vhx_origin   (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n",
    +       "    vhy_origin   (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n",
    +       "    vhz_origin   (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n",
    +       "    origin_type  (id) object 'Central body' ... 'Supercatastrophic'
    " + ], "text/plain": [ - "array([b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M', b'M',\n", - " b'a', b'r', b's', b'', b'', b''], dtype='|S1')" + "\n", + "Dimensions: (id: 1521, time: 11)\n", + "Coordinates:\n", + " * id (id) float64 1.0 2.0 3.0 4.0 ... 1.519e+03 1.52e+03 1.521e+03\n", + " * time (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n", + "Data variables: (12/25)\n", + " Gmass (time, id) float64 ...\n", + " radius (time, id) float64 ...\n", + " J_2 (time, id) float64 ...\n", + " J_4 (time, id) float64 ...\n", + " Ip1 (time, id) float64 ...\n", + " Ip2 (time, id) float64 ...\n", + " ... ...\n", + " py_origin (id) float64 ...\n", + " pz_origin (id) float64 ...\n", + " vhx_origin (id) float64 ...\n", + " vhy_origin (id) float64 ...\n", + " vhz_origin (id) float64 ...\n", + " origin_type (id) object ..." ] }, - "execution_count": 8, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dsnew['name'].sel(id=0).values" + "ds" ] }, { diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index cb21de074..5b4f45dd1 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -367,14 +367,14 @@ def swifter_stream(f, param): tvec[:, i] = record[1] tlab = [] - if param['OUT_FORM'] == 'XV': + if param['OUT_FORM'] == 'XV' or param['OUT_FORM'] == 'XVEL': tlab.append('xhx') tlab.append('xhy') tlab.append('xhz') tlab.append('vhx') tlab.append('vhy') tlab.append('vhz') - elif param['OUT_FORM'] == 'EL': + if param['OUT_FORM'] == 'EL' or param['OUT_FORM'] == 'XVEL': tlab.append('a') tlab.append('e') tlab.append('inc') @@ -392,14 +392,15 @@ def swifter_stream(f, param): def make_swiftest_labels(param): tlab = [] - if param['OUT_FORM'] == 'XV': + if param['OUT_FORM'] == 'XV' or param['OUT_FORM'] == 'XVEL': tlab.append('xhx') tlab.append('xhy') tlab.append('xhz') tlab.append('vhx') tlab.append('vhy') tlab.append('vhz') - elif param['OUT_FORM'] == 'EL': + + if param['OUT_FORM'] == 'EL' or param['OUT_FORM'] == 'XVEL': tlab.append('a') tlab.append('e') tlab.append('inc') @@ -499,6 +500,13 @@ def swiftest_stream(f, param): p4 = f.read_reals(np.float64) p5 = f.read_reals(np.float64) p6 = f.read_reals(np.float64) + if param['OUT_FORM'] == 'XVEL': + p7 = f.read_reals(np.float64) + p8 = f.read_reals(np.float64) + p9 = f.read_reals(np.float64) + p10 = f.read_reals(np.float64) + p11 = f.read_reals(np.float64) + p12 = f.read_reals(np.float64) GMpl = f.read_reals(np.float64) if param['RHILL_PRESENT'] == 'YES': rhill = f.read_reals(np.float64) @@ -521,18 +529,36 @@ def swiftest_stream(f, param): t4 = f.read_reals(np.float64) t5 = f.read_reals(np.float64) t6 = f.read_reals(np.float64) + if param['OUT_FORM'] == 'XVEL': + t7 = f.read_reals(np.float64) + t8 = f.read_reals(np.float64) + t9 = f.read_reals(np.float64) + t10 = f.read_reals(np.float64) + t11 = f.read_reals(np.float64) + t12 = f.read_reals(np.float64) clab, plab, tlab = make_swiftest_labels(param) - + if npl > 0: - pvec = np.vstack([p1, p2, p3, p4, p5, p6, GMpl, Rpl]) + pvec = np.vstack([p1, p2, p3, p4, p5, p6]) + if param['OUT_FORM'] == 'XVEL': + pvec = np.vstack([pvec, p7, p8, p9, p10, p11, p12]) + pvec = np.vstack([pvec, GMpl, Rpl]) else: - pvec = np.empty((8, 0)) + if param['OUT_FORM'] == 'XVEL': + pvec = np.empty((14, 0)) + else: + pvec = np.empty((8, 0)) plid = np.empty(0) if ntp > 0: tvec = np.vstack([t1, t2, t3, t4, t5, t6]) + if param['OUT_FORM'] == 'XVEL': + tvec = np.vstack([tvec, t7, t8, t9, t10, t11, t12]) else: - tvec = np.empty((6, 0)) + if param['OUT_FORM'] == 'XVEL': + tvec = np.empty((12, 0)) + else: + tvec = np.empty((6, 0)) tpid = np.empty(0) cvec = np.array([Mcb, Rcb, J2cb, J4cb]) if param['RHILL_PRESENT'] == 'YES': diff --git a/src/io/io.f90 b/src/io/io.f90 index 3cac0c376..e86b9d065 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1037,7 +1037,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) select case(param%in_type) case (REAL4_TYPE, REAL8_TYPE) read(iu, err = 667, iomsg = errmsg) self%id(:) - read(iu, err = 667, iomsg = errmsg) self%name(:) + !read(iu, err = 667, iomsg = errmsg) self%name(:) select case (param%in_form) case (XV) @@ -1159,7 +1159,7 @@ module function io_read_frame_cb(self, iu, param) result(ierr) character(len=STRMAX) :: errmsg read(iu, err = 667, iomsg = errmsg) self%id - read(iu, err = 667, iomsg = errmsg) self%name + !read(iu, err = 667, iomsg = errmsg) self%name read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 90c745a35..9d0ce8ad2 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -86,7 +86,9 @@ module swiftest_classes integer(I4B) :: ncid !! NetCDF ID for the output file integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: time_varid !! NetCDF ID for the time dimension integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: id_varid !! NetCDF ID for the particle name dimension integer(I4B) :: name_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 313becb9c..00d48110a 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -38,8 +38,10 @@ module subroutine netcdf_write_frame_base(self, iu, param) do i = 1, n j = ind(i) id = self%id(j) - call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) - call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[ioutput + 1, id]) ) + call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) + call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) + !call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) + !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[ioutput + 1, id]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(iu%ncid, XHX_VARNAME, iu%xhx_varid)) call check( nf90_inq_varid(iu%ncid, XHY_VARNAME, iu%xhy_varid)) @@ -109,8 +111,12 @@ module subroutine netcdf_write_frame_base(self, iu, param) end associate class is (swiftest_cb) id = self%id - call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) - call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name)), start=[ioutput + 1, id]) ) + call check( nf90_inq_varid(iu%ncid, TIME_DIMNAME, iu%time_varid)) + call check( nf90_put_var(iu%ncid, iu%time_varid, param%t, start=[ioutput + 1]) ) + call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) + call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) + !call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) + !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name)), start=[ioutput + 1, id]) ) call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[ioutput + 1, id]) ) call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) @@ -178,7 +184,9 @@ module subroutine netcdf_initialize_output(self, param) end select !! Define the variables - call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, self%dimids, self%name_varid) ) + !call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, self%dimids, self%name_varid) ) + call check( nf90_def_var(self%ncid, TIME_DIMNAME, self%out_type, self%dimids(1), self%time_varid) ) + call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%dimids(2), self%id_varid) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) From cac16ceab5b34100af01701d1ec7105227252930 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 09:44:14 -0400 Subject: [PATCH 205/315] Added a bunch of new variables to the NetCDF, including active particle numbers and energy and momentum values. --- examples/symba_mars_disk/testnetcdf.ipynb | 305 +-------------------- src/io/io.f90 | 43 +-- src/main/swiftest_driver.f90 | 5 +- src/modules/swiftest_classes.f90 | 170 +++++++----- src/modules/swiftest_globals.f90 | 72 +++-- src/netcdf/netcdf.f90 | 315 +++++++++++++--------- 6 files changed, 379 insertions(+), 531 deletions(-) diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 73fb30eb9..1df10fab4 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -378,308 +378,29 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:  (id: 1521, time: 11)\n",
    +       "
    <xarray.DataArray 'time' (time: 11)>\n",
    +       "array([   0.,  600., 1200., 1800., 2400., 3000., 3600., 4200., 4800., 5400.,\n",
    +       "       6000.])\n",
            "Coordinates:\n",
    -       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    -       "  * id       (id) int32 1 2 3 4 5 6 7 8 ... 1515 1516 1517 1518 1519 1520 1521\n",
    -       "Data variables: (12/21)\n",
    -       "    xhx      (id, time) float64 9.969e+36 9.969e+36 ... 1.587e+06 2.838e+06\n",
    -       "    xhy      (id, time) float64 9.969e+36 9.969e+36 ... -9.103e+06 -8.791e+06\n",
    -       "    xhz      (id, time) float64 9.969e+36 9.969e+36 ... -3.433e+04 -3.905e+04\n",
    -       "    vhx      (id, time) float64 9.969e+36 9.969e+36 ... 2.118e+03 2.045e+03\n",
    -       "    vhy      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... 374.7 666.8\n",
    -       "    vhz      (id, time) float64 9.969e+36 9.969e+36 9.969e+36 ... -8.487 -7.226\n",
    -       "    ...       ...\n",
    -       "    Ip1      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    -       "    Ip2      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    -       "    Ip3      (id, time) float64 0.4 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    -       "    rotx     (id, time) float64 0.0 0.0 0.0 ... -0.0003328 -0.0003328 -0.0003328\n",
    -       "    roty     (id, time) float64 0.0 0.0 0.0 ... -0.0003232 -0.0003232 -0.0003232\n",
    -       "    rotz     (id, time) float64 0.0 0.0 0.0 ... -7.841e-05 -7.841e-05 -7.841e-05
    " + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03
    " ], "text/plain": [ - "\n", - "Dimensions: (id: 1521, time: 11)\n", + "\n", + "array([ 0., 600., 1200., 1800., 2400., 3000., 3600., 4200., 4800., 5400.,\n", + " 6000.])\n", "Coordinates:\n", - " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03\n", - " * id (id) int32 1 2 3 4 5 6 7 8 ... 1515 1516 1517 1518 1519 1520 1521\n", - "Data variables: (12/21)\n", - " xhx (id, time) float64 ...\n", - " xhy (id, time) float64 ...\n", - " xhz (id, time) float64 ...\n", - " vhx (id, time) float64 ...\n", - " vhy (id, time) float64 ...\n", - " vhz (id, time) float64 ...\n", - " ... ...\n", - " Ip1 (id, time) float64 ...\n", - " Ip2 (id, time) float64 ...\n", - " Ip3 (id, time) float64 ...\n", - " rotx (id, time) float64 ...\n", - " roty (id, time) float64 ...\n", - " rotz (id, time) float64 ..." + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03" ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dsnew" + "dsnew.time" ] }, { diff --git a/src/io/io.f90 b/src/io/io.f90 index e86b9d065..2b48586fa 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -27,7 +27,7 @@ module subroutine io_conservation_report(self, param, lterminal) "; DM/M0 = ", ES12.5)' associate(system => self, pl => self%pl, cb => self%cb, npl => self%pl%nbody) - if (param%energy_out /= "") then + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE) .and. (param%energy_out /= "")) then if (param%lfirstenergy .and. (param%out_stat /= "OLD")) then open(unit = EGYIU, file = param%energy_out, form = "formatted", status = "replace", action = "write", err = 667, iomsg = errmsg) write(EGYIU,EGYHEADER, err = 667, iomsg = errmsg) @@ -56,7 +56,7 @@ module subroutine io_conservation_report(self, param, lterminal) param%lfirstenergy = .false. end if - if (param%energy_out /= "") then + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE) .and. (param%energy_out /= "")) then write(EGYIU,EGYFMT, err = 667, iomsg = errmsg) param%t, Eorbit_now, param%Ecollisions, Ltot_now, GMtot_now close(EGYIU, err = 667, iomsg = errmsg) end if @@ -219,7 +219,6 @@ module subroutine io_dump_system(self, param) write(*, statusfmt) param%t, tfrac, pl%nbody, self%tp%nbody end select write(*, walltimefmt) finish - start, wallperstep - if (param%lenergy) call self%conservation_report(param, lterminal=.true.) end if return @@ -1620,8 +1619,8 @@ module subroutine io_write_frame_system(self, param) !! Adapted from Hal Levison's Swift routine io_write_frame.F implicit none ! Arguments - class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals logical, save :: lfirst = .true. !! Flag to determine if this is the first call of this method class(swiftest_cb), allocatable :: cb !! Temporary local version of pl structure used for non-destructive conversions @@ -1632,11 +1631,13 @@ module subroutine io_write_frame_system(self, param) logical :: fileExists type(netcdf_parameters) :: nciu + if (param%lenergy) call self%conservation_report(param, lterminal=.true.) + allocate(cb, source = self%cb) allocate(pl, source = self%pl) allocate(tp, source = self%tp) iu = BINUNIT - + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then if (lfirst) then select case(param%out_stat) @@ -1653,7 +1654,7 @@ module subroutine io_write_frame_system(self, param) else open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if - call io_write_hdr(iu, param%t, pl%nbody, tp%nbody, param%out_form, param%out_type) + call self%write_hdr(iu, param) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then if (lfirst) then inquire(file=param%outfile, exist=fileExists) @@ -1682,6 +1683,7 @@ module subroutine io_write_frame_system(self, param) end select lfirst = .false. end if + call self%write_hdr(nciu, param) end if if (param%lgr) then @@ -1707,6 +1709,8 @@ module subroutine io_write_frame_system(self, param) call tp%write_frame(nciu, param) end if + + return 667 continue @@ -1715,7 +1719,7 @@ module subroutine io_write_frame_system(self, param) end subroutine io_write_frame_system - subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) + module subroutine io_write_hdr_system(self, iu, param) ! t, npl, ntp, out_form, out_type) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Write frame header to output binary file @@ -1724,30 +1728,27 @@ subroutine io_write_hdr(iu, t, npl, ntp, out_form, out_type) !! Adapted from Hal Levison's Swift routine io_write_hdr.F implicit none ! Arguments - integer(I4B), intent(in) :: iu !! Output file unit number - real(DP), intent(in) :: t !! Current time of simulation - integer(I4B), intent(in) :: npl !! Number of massive bodies - integer(I4B), intent(in) :: ntp !! Number of test particles - character(*), intent(in) :: out_form !! Output format type ("EL" or "XV") - character(*), intent(in) :: out_type !! Output file format type (REAL4, REAL8 - see swiftest module for symbolic name definitions) + class(swiftest_nbody_system), intent(in) :: self !! Swiftest nbody system object + integer(I4B), intent(inout) :: iu !! Output file unit number + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals character(len=STRMAX) :: errmsg - select case (out_type) + select case (param%out_type) case (REAL4_TYPE) - write(iu, err = 667, iomsg = errmsg) real(t, kind=SP) + write(iu, err = 667, iomsg = errmsg) real(param%t, kind=SP) case (REAL8_TYPE) - write(iu, err = 667, iomsg = errmsg) t + write(iu, err = 667, iomsg = errmsg) param%t end select - write(iu, err = 667, iomsg = errmsg) npl - write(iu, err = 667, iomsg = errmsg) ntp - write(iu, err = 667, iomsg = errmsg) out_form + write(iu, err = 667, iomsg = errmsg) self%pl%nbody + write(iu, err = 667, iomsg = errmsg) self%tp%nbody + write(iu, err = 667, iomsg = errmsg) param%out_form return 667 continue write(*,*) "Error writing header: " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine io_write_hdr + end subroutine io_write_hdr_system end submodule s_io diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index d22663d40..3b7765347 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -42,7 +42,8 @@ program swiftest_driver dt => param%dt, & tstop => param%tstop, & istep_out => param%istep_out, & - istep_dump => param%istep_dump) + istep_dump => param%istep_dump, & + ioutput => param%ioutput) call nbody_system%initialize(param) t = t0 @@ -50,6 +51,7 @@ program swiftest_driver iout = istep_out idump = istep_dump nloops = ceiling(tstop / dt, kind=I8B) + ioutput = ceiling(t0/ dt, kind=I8B) / int(istep_out, kind=I8B) ! Prevent duplicate frames from being written if this is a restarted run if (param%lrestart) then old_t_final = nbody_system%get_old_t_final(param) @@ -80,6 +82,7 @@ program swiftest_driver if (istep_out > 0) then iout = iout - 1 if (iout == 0) then + ioutput = ceiling(t / dt, kind=I8B) / int(istep_out, kind=I8B) if (t > old_t_final) call nbody_system%write_frame(param) iout = istep_out end if diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 9d0ce8ad2..d59934c47 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -20,6 +20,7 @@ module swiftest_classes real(DP) :: t = -1.0_DP !! Integration current time real(DP) :: tstop = -1.0_DP !! Integration stop time real(DP) :: dt = -1.0_DP !! Time step + integer(I8B) :: ioutput = 0_I8B !! Output counter character(STRMAX) :: incbfile = CB_INFILE !! Name of input file for the central body character(STRMAX) :: inplfile = PL_INFILE !! Name of input file for massive bodies character(STRMAX) :: intpfile = TP_INFILE !! Name of input file for test particles @@ -83,37 +84,54 @@ module swiftest_classes end type swiftest_parameters type :: netcdf_parameters - integer(I4B) :: ncid !! NetCDF ID for the output file - integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file - integer(I4B) :: time_dimid !! NetCDF ID for the time dimension - integer(I4B) :: time_varid !! NetCDF ID for the time dimension - integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension - integer(I4B) :: id_varid !! NetCDF ID for the particle name dimension - integer(I4B) :: name_varid !! NetCDF ID for the semimajor axis variable - integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable - integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable - integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable - integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable - integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable - integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable - integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable - integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable - integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable - integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable - integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable - integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable - integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable - integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable - integer(I4B) :: radius_varid !! NetCDF ID for the radius variable - integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable - integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable - integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable - integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable - integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable - integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable - integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable - integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) + integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: time_varid !! NetCDF ID for the time variable + integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension + integer(I4B) :: id_varid !! NetCDF ID for the particle name variable + integer(I4B) :: name_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable + integer(I4B) :: ntp_varid !! NetCDF ID for the number of active test particles variable + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + integer(I4B) :: KE_orb_varid !! NetCDF ID for the system orbital kinetic energy variable + integer(I4B) :: KE_spin_varid !! NetCDF ID for the system spin kinetic energy variable + integer(I4B) :: PE_varid !! NetCDF ID for the system potential energy variable + integer(I4B) :: L_orbx_varid !! NetCDF ID for the system orbital angular momentum x variable + integer(I4B) :: L_orby_varid !! NetCDF ID for the system orbital angular momentum y variable + integer(I4B) :: L_orbz_varid !! NetCDF ID for the system orbital angular momentum z variable + integer(I4B) :: L_spinx_varid !! NetCDF ID for the system spin angular momentum x variable + integer(I4B) :: L_spiny_varid !! NetCDF ID for the system spin angular momentum y variable + integer(I4B) :: L_spinz_varid !! NetCDF ID for the system spin angular momentum z variable + integer(I4B) :: L_escapex_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapey_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapez_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: Ecollisions_varid !! NetCDF ID for the energy lost in collisions variable + integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) + integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system contains procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object end type netcdf_parameters @@ -126,9 +144,9 @@ module swiftest_classes logical :: lintegrate = .false. !! Flag indicating that this object should be integrated in the current step contains !! The minimal methods that all systems must have - procedure :: dump => io_dump_swiftest + procedure :: dump => io_dump_swiftest !! Dump contents to file procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format - generic :: write_frame => write_frame_netcdf + generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments end type swiftest_base !******************************************************************************************************************************** @@ -161,10 +179,10 @@ module swiftest_classes real(DP), dimension(NDIM) :: L0 = 0.0_DP !! Initial angular momentum of the central body real(DP), dimension(NDIM) :: dL = 0.0_DP !! Change in angular momentum of the central body contains - procedure :: read_in => io_read_in_cb !! I/O routine for reading in central body data - procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body - procedure :: write_frame_bin => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body - generic :: write_frame => write_frame_bin + procedure :: read_in => io_read_in_cb !! I/O routine for reading in central body data + procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body + procedure :: write_frame_bin => io_write_frame_cb !! I/O routine for writing out a single frame of time-series data for the central body + generic :: write_frame => write_frame_bin !! Write a frame (either binary or NetCDF, using generic procedures) end type swiftest_cb !******************************************************************************************************************************** @@ -205,25 +223,25 @@ module swiftest_classes procedure(abstract_step_body), deferred :: step procedure(abstract_accel), deferred :: accel ! These are concrete because the implementation is the same for all types of particles - procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables - procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators - procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators - procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file - procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: write_frame_bin => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body - procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors - procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements - procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays - procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets - procedure :: append => util_append_body !! Appends elements from one structure to another - procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) - procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. - procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) - procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen - procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods - procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) - generic :: write_frame => write_frame_bin + procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables + procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators + procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators + procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file + procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: write_frame_bin => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors + procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements + procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays + procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets + procedure :: append => util_append_body !! Appends elements from one structure to another + procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) + procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. + procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) + procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen + procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods + procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + generic :: write_frame => write_frame_bin !! Add the generic write frame for Fortran binary files end type swiftest_body !******************************************************************************************************************************** @@ -300,7 +318,6 @@ module swiftest_classes procedure :: vb2vh => util_coord_vb2vh_tp !! Convert test particles from barycentric to heliocentric coordinates (velocity only) procedure :: vh2vb => util_coord_vh2vb_tp !! Convert test particles from heliocentric to barycentric coordinates (velocity only) procedure :: xh2xb => util_coord_xh2xb_tp !! Convert test particles from heliocentric to barycentric coordinates (position only) - !procedure :: index => util_index_eucl_pltp !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: fill => util_fill_tp !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: get_peri => util_peri_tp !! Determine system pericenter passages for test particles procedure :: resize => util_resize_tp !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. @@ -328,7 +345,7 @@ module swiftest_classes real(DP) :: te = 0.0_DP !! System total energy real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector - real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector + real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated !! separately from massive bodies. Massive body variables are saved at half steps, and passed to !! the test particles @@ -344,12 +361,15 @@ module swiftest_classes procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file procedure :: write_discard => io_write_discard !! Write out information about discarded test particles procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file + procedure :: write_hdr_bin => io_write_hdr_system !! Write a header for an output frame in Fortran binary format + procedure :: write_hdr_netcdf => netcdf_write_hdr_system !! Write a header for an output frame in NetCDF format procedure :: initialize => setup_initialize_system !! Initialize the system from input files procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. procedure :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. procedure :: get_energy_and_momentum => util_get_energy_momentum_system !! Calculates the total system energy and momentum procedure :: rescale => util_rescale_system !! Rescales the system into a new set of units procedure :: validate_ids => util_valid_id_system !! Validate the numerical ids passed to the system and save the maximum value + generic :: write_hdr => write_hdr_bin, write_hdr_netcdf !! Generic method call for writing headers end type swiftest_nbody_system type :: swiftest_encounter @@ -736,16 +756,16 @@ end subroutine io_write_frame_encounter module subroutine io_write_frame_system(self, param) implicit none - class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine io_write_frame_system - module subroutine netcdf_write_frame_system(self, iu, param) + module subroutine io_write_hdr_system(self, iu, param) implicit none - class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine netcdf_write_frame_system + class(swiftest_nbody_system), intent(in) :: self !! Swiftest nbody system object + integer(I4B), intent(inout) :: iu !! Output file unit number + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine io_write_hdr_system module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, acc) implicit none @@ -793,17 +813,31 @@ end subroutine kick_getacch_int_tp module subroutine netcdf_initialize_output(self, param) implicit none - class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(netcdf_parameters), intent(inout) :: self !! Parameters used to for writing a NetCDF dataset to file + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_initialize_output module subroutine netcdf_write_frame_base(self, iu, param) implicit none class(swiftest_base), intent(in) :: self !! Swiftest base object - class(netcdf_parameters), intent(inout) :: iu !! Unit number for the output file to write frame to + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to for writing a NetCDF dataset to file class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_write_frame_base + module subroutine netcdf_write_frame_system(self, iu, param) + implicit none + class(swiftest_nbody_system), intent(in) :: self !! Swiftest system object + integer(I4B), intent(inout) :: iu !! Parameters used to for writing a NetCDF dataset to file + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_write_frame_system + + module subroutine netcdf_write_hdr_system(self, iu, param) + implicit none + class(swiftest_nbody_system), intent(in) :: self !! Swiftest nbody system object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to for writing a NetCDF dataset to file + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_write_hdr_system + module subroutine obl_acc_body(self, system) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 48aade302..cf0c7248a 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -127,32 +127,48 @@ module swiftest_globals real(DP), parameter :: einsteinC = 299792458.0_DP !! Speed of light in SI units !> NetCDF variable names and constants - character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' - character(*), parameter :: TIME_DIMNAME = "time"!! netcdf id for the time dimension - character(*), parameter :: ID_DIMNAME = "id"!! NetCDF ID for the particle id dimension - character(*), parameter :: NAME_VARNAME = "name"!! NetCDF ID for the particle name variable - character(*), parameter :: A_VARNAME = "a"!! NetCDF ID for the semimajor axis variable - character(*), parameter :: E_VARNAME = "e"!! NetCDF ID for the eccentricity variable - character(*), parameter :: INC_VARNAME = "inc"!! NetCDF ID for the inclination variable - character(*), parameter :: CAPOM_VARNAME = "capom"!! NetCDF ID for the long. asc. node variable - character(*), parameter :: OMEGA_VARNAME = "omega"!! NetCDF ID for the arg. periapsis variable - character(*), parameter :: CAPM_VARNAME = "capm"!! NetCDF ID for the mean anomaly variable - character(*), parameter :: XHX_VARNAME = "xhx"!! NetCDF ID for the heliocentric position x variable - character(*), parameter :: XHY_VARNAME = "xhy"!! NetCDF ID for the heliocentric position y variable - character(*), parameter :: XHZ_VARNAME = "xhz"!! NetCDF ID for the heliocentric position z variable - character(*), parameter :: VHX_VARNAME = "vhx"!! NetCDF ID for the heliocentric velocity x variable - character(*), parameter :: VHY_VARNAME = "vhy"!! NetCDF ID for the heliocentric velocity y variable - character(*), parameter :: VHZ_VARNAME = "vhz"!! NetCDF ID for the heliocentric velocity z variable - character(*), parameter :: GMASS_VARNAME = "Gmass"!! NetCDF ID for the mass variable - character(*), parameter :: RHILL_VARNAME = "rhill"!! NetCDF ID for the hill radius variable - character(*), parameter :: RADIUS_VARNAME = "radius"!! NetCDF ID for the radius variable - character(*), parameter :: IP1_VARNAME = "Ip1"!! NetCDF ID for the axis 1 principal moment of inertial variable - character(*), parameter :: IP2_VARNAME = "Ip2"!! NetCDF ID for the axis 2 principal moment of inertial variable - character(*), parameter :: IP3_VARNAME = "Ip3"!! NetCDF ID for the axis 3 principal moment of inertial variable - character(*), parameter :: ROTX_VARNAME = "rotx"!! NetCDF ID for the rotation x variable - character(*), parameter :: ROTY_VARNAME = "roty"!! NetCDF ID for the rotation y variable - character(*), parameter :: ROTZ_VARNAME = "rotz"!! NetCDF ID for the rotation z variable - character(*), parameter :: K2_VARNAME = "k2"!! NetCDF ID for the Love number variable - character(*), parameter :: Q_VARNAME = "Q"!! NetCDF ID for the energy dissipation variable - + character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' !! Default output file name + character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension + character(*), parameter :: ID_DIMNAME = "id" !! NetCDF name of the particle id dimension + character(*), parameter :: NAME_VARNAME = "name" !! NetCDF name of the particle name variable + character(*), parameter :: NPL_VARNAME = "npl" !! NetCDF name of the number of active massive bodies variable + character(*), parameter :: NTP_VARNAME = "ntp" !! NetCDF name of the number of active test particles variable + character(*), parameter :: A_VARNAME = "a" !! NetCDF name of the semimajor axis variable + character(*), parameter :: E_VARNAME = "e" !! NetCDF name of the eccentricity variable + character(*), parameter :: INC_VARNAME = "inc" !! NetCDF name of the inclination variable + character(*), parameter :: CAPOM_VARNAME = "capom" !! NetCDF name of the long. asc. node variable + character(*), parameter :: OMEGA_VARNAME = "omega" !! NetCDF name of the arg. periapsis variable + character(*), parameter :: CAPM_VARNAME = "capm" !! NetCDF name of the mean anomaly variable + character(*), parameter :: XHX_VARNAME = "xhx" !! NetCDF name of the heliocentric position x variable + character(*), parameter :: XHY_VARNAME = "xhy" !! NetCDF name of the heliocentric position y variable + character(*), parameter :: XHZ_VARNAME = "xhz" !! NetCDF name of the heliocentric position z variable + character(*), parameter :: VHX_VARNAME = "vhx" !! NetCDF name of the heliocentric velocity x variable + character(*), parameter :: VHY_VARNAME = "vhy" !! NetCDF name of the heliocentric velocity y variable + character(*), parameter :: VHZ_VARNAME = "vhz" !! NetCDF name of the heliocentric velocity z variable + character(*), parameter :: GMASS_VARNAME = "Gmass" !! NetCDF name of the mass variable + character(*), parameter :: RHILL_VARNAME = "rhill" !! NetCDF name of the hill radius variable + character(*), parameter :: RADIUS_VARNAME = "radius" !! NetCDF name of the radius variable + character(*), parameter :: IP1_VARNAME = "Ip1" !! NetCDF name of the axis 1 principal moment of inertial variable + character(*), parameter :: IP2_VARNAME = "Ip2" !! NetCDF name of the axis 2 principal moment of inertial variable + character(*), parameter :: IP3_VARNAME = "Ip3" !! NetCDF name of the axis 3 principal moment of inertial variable + character(*), parameter :: ROTX_VARNAME = "rotx" !! NetCDF name of the rotation x variable + character(*), parameter :: ROTY_VARNAME = "roty" !! NetCDF name of the rotation y variable + character(*), parameter :: ROTZ_VARNAME = "rotz" !! NetCDF name of the rotation z variable + character(*), parameter :: K2_VARNAME = "k2" !! NetCDF name of the Love number variable + character(*), parameter :: Q_VARNAME = "Q" !! NetCDF name of the energy dissipation variable + character(*), parameter :: KE_ORB_VARNAME = "KE_orb" !! NetCDF name of the system orbital kinetic energy variable + character(*), parameter :: KE_SPIN_VARNAME = "KE_spin" !! NetCDF name of the system spin kinetic energy variable + character(*), parameter :: PE_VARNAME = "PE" !! NetCDF name of the system potential energy variable + character(*), parameter :: L_ORBX_VARNAME = "L_orbx" !! NetCDF name of the orbital angular momentum x variable + character(*), parameter :: L_ORBY_VARNAME = "L_orby" !! NetCDF name of the orbital angular momentum y variable + character(*), parameter :: L_ORBZ_VARNAME = "L_orbz" !! NetCDF name of the orbital angular momentum z variable + character(*), parameter :: L_SPINX_VARNAME = "L_spinx" !! NetCDF name of the spin angular momentum x variable + character(*), parameter :: L_SPINY_VARNAME = "L_spiny" !! NetCDF name of the spin angular momentum y variable + character(*), parameter :: L_SPINZ_VARNAME = "L_spinz" !! NetCDF name of the spin angular momentum z variable + character(*), parameter :: L_ESCAPEX_VARNAME = "L_escapex" !! NetCDF name of the escaped angular momentum x variable + character(*), parameter :: L_ESCAPEY_VARNAME = "L_escapey" !! NetCDF name of the escaped angular momentum y variable + character(*), parameter :: L_ESCAPEZ_VARNAME = "L_escapez" !! NetCDF name of the escaped angular momentum z variable + character(*), parameter :: ECOLLISIONS_VARNAME = "Ecollisions" !! NetCDF name of the escaped angular momentum y variable + character(*), parameter :: EUNTRACKED_VARNAME = "Euntracked" !! NetCDF name of the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) + character(*), parameter :: GMESCAPE_VARNAME = "GMescape" !! NetCDF name of the G*Mass of bodies that escape the system end module swiftest_globals diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 00d48110a..44670c318 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -3,30 +3,131 @@ use netcdf contains + subroutine check(status) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Checks the status of all NetCDF operations to catch errors + implicit none + ! Arguments + integer, intent (in) :: status + + if(status /= nf90_noerr) then + write(*,*) trim(nf90_strerror(status)) + call util_exit(FAILURE) + end if + + return + end subroutine check + + + module subroutine netcdf_initialize_output(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Initialize a NetCDF file system and defines all variables. + implicit none + ! Arguments + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + logical :: fileExists + + !! Create the new output file, deleting any previously existing output file of the same name + call check( nf90_create(param%outfile, NF90_HDF5, self%ncid) ) + !call check( nf90_set_fill(self%ncid, nf90_nofill, oldMode) ) + + ! Define the NetCDF dimensions with particle name as the record dimension + call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension + call check( nf90_def_dim(self%ncid, TIME_DIMNAME, NF90_UNLIMITED, self%time_dimid) ) ! 'y' dimension + self%dimids = [self%time_dimid, self%id_dimid ] + + select case (param%out_type) + case(NETCDF_FLOAT_TYPE) + self%out_type = NF90_FLOAT + case(NETCDF_DOUBLE_TYPE) + self%out_type = NF90_DOUBLE + end select + + !! Define the variables + call check( nf90_def_var(self%ncid, TIME_DIMNAME, self%out_type, self%time_dimid, self%time_varid) ) + call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%id_dimid, self%id_varid) ) + call check( nf90_def_var(self%ncid, NPL_VARNAME, NF90_INT, self%time_dimid, self%npl_varid) ) + call check( nf90_def_var(self%ncid, NTP_VARNAME, NF90_INT, self%time_dimid, self%ntp_varid) ) + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then + call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) + call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) + call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, self%dimids, self%xhz_varid) ) + call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, self%dimids, self%vhx_varid) ) + call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, self%dimids, self%vhy_varid) ) + call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, self%dimids, self%vhz_varid) ) + end if + + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) + call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) + call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) + call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) + call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) + call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) + end if + + call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, self%dimids, self%Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, self%dimids, self%rhill_varid) ) + if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, self%dimids, self%radius_varid) ) + if (param%lrotation) then + call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, self%dimids, self%Ip1_varid) ) + call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip2_varid) ) + call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) + call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, self%dimids, self%rotx_varid) ) + call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, self%dimids, self%roty_varid) ) + call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, self%dimids, self%rotz_varid) ) + end if + if (param%ltides) then + call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, self%dimids, self%k2_varid) ) + call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, self%dimids, self%Q_varid) ) + end if + if (param%lenergy) then + call check( nf90_def_var(self%ncid, KE_ORB_VARNAME, self%out_type, self%time_dimid, self%KE_orb_varid) ) + call check( nf90_def_var(self%ncid, KE_SPIN_VARNAME, self%out_type, self%time_dimid, self%KE_spin_varid) ) + call check( nf90_def_var(self%ncid, PE_VARNAME, self%out_type, self%time_dimid, self%PE_varid) ) + call check( nf90_def_var(self%ncid, L_ORBX_VARNAME, self%out_type, self%time_dimid, self%L_orbx_varid) ) + call check( nf90_def_var(self%ncid, L_ORBY_VARNAME, self%out_type, self%time_dimid, self%L_orby_varid) ) + call check( nf90_def_var(self%ncid, L_ORBZ_VARNAME, self%out_type, self%time_dimid, self%L_orbz_varid) ) + call check( nf90_def_var(self%ncid, L_SPINX_VARNAME, self%out_type, self%time_dimid, self%L_spinx_varid) ) + call check( nf90_def_var(self%ncid, L_SPINY_VARNAME, self%out_type, self%time_dimid, self%L_spiny_varid) ) + call check( nf90_def_var(self%ncid, L_SPINZ_VARNAME, self%out_type, self%time_dimid, self%L_spinz_varid) ) + call check( nf90_def_var(self%ncid, L_ESCAPEX_VARNAME, self%out_type, self%time_dimid, self%L_escapex_varid) ) + call check( nf90_def_var(self%ncid, L_ESCAPEY_VARNAME, self%out_type, self%time_dimid, self%L_escapey_varid) ) + call check( nf90_def_var(self%ncid, L_ESCAPEZ_VARNAME, self%out_type, self%time_dimid, self%L_escapez_varid) ) + call check( nf90_def_var(self%ncid, ECOLLISIONS_VARNAME, self%out_type, self%time_dimid, self%Ecollisions_varid) ) + call check( nf90_def_var(self%ncid, EUNTRACKED_VARNAME, self%out_type, self%time_dimid, self%Euntracked_varid) ) + call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) + end if + + call check( nf90_close(self%ncid) ) + + return + end subroutine netcdf_initialize_output + + module subroutine netcdf_write_frame_base(self, iu, param) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton !! !! Write a frame of output of either test particle or massive body data to the binary output file !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method - !! - !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 - !! Adapted from Hal Levison's Swift routine io_write_frame.F implicit none ! Arguments class(swiftest_base), intent(in) :: self !! Swiftest particle object class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: i, j, id, ioutput + integer(I4B) :: i, j, id, tslot integer(I4B), dimension(:), allocatable :: ind !! Open the netCDF file call check( nf90_open(param%outfile, nf90_write, iu%ncid) ) !call check( nf90_set_fill(iu%ncid, nf90_nofill, oldMode) ) - - ! Calculate the output number that we are currently on - ioutput = (param%t / param%dt) / param%istep_out + tslot = int(param%ioutput, kind=I4B) + 1 select type(self) class is (swiftest_body) @@ -41,7 +142,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) !call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) - !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[ioutput + 1, id]) ) + !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[tslot, id]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(iu%ncid, XHX_VARNAME, iu%xhx_varid)) call check( nf90_inq_varid(iu%ncid, XHY_VARNAME, iu%xhy_varid)) @@ -50,12 +151,12 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_inq_varid(iu%ncid, VHY_VARNAME, iu%vhy_varid)) call check( nf90_inq_varid(iu%ncid, VHZ_VARNAME, iu%vhz_varid)) - call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[tslot, id]) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(iu%ncid, A_VARNAME, iu%a_varid)) @@ -65,24 +166,24 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_inq_varid(iu%ncid, OMEGA_VARNAME, iu%omega_varid)) call check( nf90_inq_varid(iu%ncid, CAPM_VARNAME, iu%capm_varid)) - call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[tslot, id]) ) end if select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[tslot, id]) ) if (param%lrhill_present) then call check( nf90_inq_varid(iu%ncid, RHILL_VARNAME, iu%rhill_varid)) - call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[tslot, id]) ) end if if (param%lclose) then call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) - call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[tslot, id]) ) end if if (param%lrotation) then call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) @@ -92,35 +193,31 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[tslot, id]) ) end if if (param%ltides) then call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) - call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[tslot, id]) ) end if end select end do end associate class is (swiftest_cb) id = self%id - call check( nf90_inq_varid(iu%ncid, TIME_DIMNAME, iu%time_varid)) - call check( nf90_put_var(iu%ncid, iu%time_varid, param%t, start=[ioutput + 1]) ) call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) - !call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) - !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name)), start=[ioutput + 1, id]) ) call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[tslot, id]) ) call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) - call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[tslot, id]) ) if (param%lrotation) then call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) call check( nf90_inq_varid(iu%ncid, IP2_VARNAME, iu%Ip2_varid)) @@ -129,19 +226,19 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[tslot, id]) ) end if if (param%ltides) then call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) - call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[ioutput + 1, id]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[ioutput + 1, id]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[tslot, id]) ) end if end select @@ -151,97 +248,73 @@ module subroutine netcdf_write_frame_base(self, iu, param) return end subroutine netcdf_write_frame_base - - module subroutine netcdf_initialize_output(self, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Mintont - !! - !! Initialize a NetCDF file system - !! There is no direct file output from this subroutine + module subroutine netcdf_write_hdr_system(self, iu, param) + !! author: David A. Minton !! - !! Adapted from David E. Kaufmann's Swifter routine io_write_frame.f90 - !! Adapted from Hal Levison's Swift routine io_write_frame.F + !! Writes header information (variables that change with time, but not particle id). + !! This subroutine significantly improves the output over the original binary file, allowing us to track energy, momentum, and other quantities that + !! previously were handled as separate output files. implicit none ! Arguments - class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_nbody_system), intent(in) :: self !! Swiftest nbody system object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to for writing a NetCDF dataset to file + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - logical :: fileExists - - !! Create the new output file, deleting any previously existing output file of the same name - call check( nf90_create(param%outfile, NF90_HDF5, self%ncid) ) - !call check( nf90_set_fill(self%ncid, nf90_nofill, oldMode) ) - - ! Define the NetCDF dimensions with particle name as the record dimension - call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension - call check( nf90_def_dim(self%ncid, TIME_DIMNAME, NF90_UNLIMITED, self%time_dimid) ) ! 'y' dimension - self%dimids = [self%time_dimid, self%id_dimid ] + integer(I4B) :: tslot - select case (param%out_type) - case(NETCDF_FLOAT_TYPE) - self%out_type = NF90_FLOAT - case(NETCDF_DOUBLE_TYPE) - self%out_type = NF90_DOUBLE - end select + tslot = int(param%ioutput, kind=I4B) + 1 - !! Define the variables - !call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, self%dimids, self%name_varid) ) - call check( nf90_def_var(self%ncid, TIME_DIMNAME, self%out_type, self%dimids(1), self%time_varid) ) - call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%dimids(2), self%id_varid) ) - if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) - call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) - call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, self%dimids, self%xhz_varid) ) - call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, self%dimids, self%vhx_varid) ) - call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, self%dimids, self%vhy_varid) ) - call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, self%dimids, self%vhz_varid) ) - end if - - if ((param%out_form == EL) .or. (param%out_form == XVEL)) then - call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) - call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) - call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) - call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) - call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) - call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) - end if + call check( nf90_open(param%outfile, nf90_write, iu%ncid) ) - call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, self%dimids, self%Gmass_varid) ) - if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, self%dimids, self%rhill_varid) ) - if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, self%dimids, self%radius_varid) ) - if (param%lrotation) then - call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, self%dimids, self%Ip1_varid) ) - call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip2_varid) ) - call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) - call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, self%dimids, self%rotx_varid) ) - call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, self%dimids, self%roty_varid) ) - call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, self%dimids, self%rotz_varid) ) - end if - if (param%ltides) then - call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, self%dimids, self%k2_varid) ) - call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, self%dimids, self%Q_varid) ) - end if + call check( nf90_inq_varid(iu%ncid, TIME_DIMNAME, iu%time_varid)) + call check( nf90_put_var(iu%ncid, iu%time_varid, param%t, start=[tslot]) ) - call check( nf90_close(self%ncid) ) + call check( nf90_inq_varid(iu%ncid, NPL_VARNAME, iu%npl_varid)) + call check( nf90_put_var(iu%ncid, iu%npl_varid, self%pl%nbody, start=[tslot]) ) - return - end subroutine netcdf_initialize_output + call check( nf90_inq_varid(iu%ncid, NTP_VARNAME, iu%ntp_varid)) + call check( nf90_put_var(iu%ncid, iu%ntp_varid, self%tp%nbody, start=[tslot]) ) + if (param%lenergy) then + call check( nf90_inq_varid(iu%ncid, KE_ORB_VARNAME, iu%KE_orb_varid) ) + call check( nf90_inq_varid(iu%ncid, KE_SPIN_VARNAME, iu%KE_spin_varid) ) + call check( nf90_inq_varid(iu%ncid, PE_VARNAME, iu%PE_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ORBX_VARNAME, iu%L_orbx_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ORBY_VARNAME, iu%L_orby_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ORBZ_VARNAME, iu%L_orbz_varid) ) + call check( nf90_inq_varid(iu%ncid, L_SPINX_VARNAME, iu%L_spinx_varid) ) + call check( nf90_inq_varid(iu%ncid, L_SPINY_VARNAME, iu%L_spiny_varid) ) + call check( nf90_inq_varid(iu%ncid, L_SPINZ_VARNAME, iu%L_spinz_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ESCAPEX_VARNAME, iu%L_escapex_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ESCAPEY_VARNAME, iu%L_escapey_varid) ) + call check( nf90_inq_varid(iu%ncid, L_ESCAPEZ_VARNAME, iu%L_escapez_varid) ) + call check( nf90_inq_varid(iu%ncid, ECOLLISIONS_VARNAME, iu%Ecollisions_varid) ) + call check( nf90_inq_varid(iu%ncid, EUNTRACKED_VARNAME, iu%Euntracked_varid) ) + call check( nf90_inq_varid(iu%ncid, GMESCAPE_VARNAME, iu%GMescape_varid) ) - subroutine check(status) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Checks the status of all NetCDF operations to catch errors - implicit none - ! Arguments - integer, intent (in) :: status + call check( nf90_put_var(iu%ncid, iu%KE_orb_varid, self%ke_orbit, start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%KE_spin_varid, self%ke_spin, start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%PE_varid, self%pe, start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_orbx_varid, self%Lorbit(1), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_orby_varid, self%Lorbit(2), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_orbz_varid, self%Lorbit(3), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_spinx_varid, self%Lspin(1), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_spiny_varid, self%Lspin(2), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_spinz_varid, self%Lspin(3), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_escapex_varid, param%Lescape(1), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_escapey_varid, param%Lescape(2), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%L_escapez_varid, param%Lescape(3), start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ecollisions_varid, param%Ecollisions, start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Euntracked_varid, param%Euntracked, start=[tslot]) ) + call check( nf90_put_var(iu%ncid, iu%GMescape_varid, param%GMescape, start=[tslot]) ) - if(status /= nf90_noerr) then - write(*,*) trim(nf90_strerror(status)) - call util_exit(FAILURE) end if + ! Close the netCDF file + call check( nf90_close(iu%ncid) ) + return - end subroutine check + end subroutine netcdf_write_hdr_system From 0042daadc9f358ed6acec79aff6650b7fe960975 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 11:33:53 -0400 Subject: [PATCH 206/315] Restructed NetCDF so that the file is only opened (and variables inquired) once during a frame write and then closed when it's done. --- src/io/io.f90 | 7 +- src/modules/swiftest_classes.f90 | 14 +++ src/netcdf/netcdf.f90 | 171 +++++++++++++++++-------------- 3 files changed, 115 insertions(+), 77 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 2b48586fa..b13dbab6d 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1678,10 +1678,14 @@ module subroutine io_write_frame_system(self, param) end select select case(param%out_stat) + case('APPEND') + call nciu%open(param) case('NEW', 'REPLACE', 'UNKNOWN') call nciu%initialize(param) end select lfirst = .false. + else + call nciu%open(param) end if call self%write_hdr(nciu, param) end if @@ -1707,10 +1711,9 @@ module subroutine io_write_frame_system(self, param) call cb%write_frame(nciu, param) call pl%write_frame(nciu, param) call tp%write_frame(nciu, param) + call nciu%close(param) end if - - return 667 continue diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index d59934c47..7703dd534 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -133,7 +133,9 @@ module swiftest_classes integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system contains + procedure :: close => netcdf_close !! Closes an open NetCDF file procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object + procedure :: open => netcdf_open !! Opens a NetCDF file end type netcdf_parameters !******************************************************************************************************************************** @@ -811,12 +813,24 @@ module pure subroutine kick_getacch_int_tp(self, GMpl, xhp, npl) integer(I4B), intent(in) :: npl !! Number of active massive bodies end subroutine kick_getacch_int_tp + module subroutine netcdf_close(self, param) + implicit none + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_close + module subroutine netcdf_initialize_output(self, param) implicit none class(netcdf_parameters), intent(inout) :: self !! Parameters used to for writing a NetCDF dataset to file class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_initialize_output + module subroutine netcdf_open(self, param) + implicit none + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine netcdf_open + module subroutine netcdf_write_frame_base(self, iu, param) implicit none class(swiftest_base), intent(in) :: self !! Swiftest base object diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 44670c318..2a3e09709 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -19,6 +19,20 @@ subroutine check(status) return end subroutine check + module subroutine netcdf_close(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Closes a NetCDF file + implicit none + ! Arguments + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + call check( nf90_close(self%ncid) ) + + return + end subroutine netcdf_close + module subroutine netcdf_initialize_output(self, param) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton @@ -30,10 +44,11 @@ module subroutine netcdf_initialize_output(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals logical :: fileExists + integer(I4B) :: old_mode !! Create the new output file, deleting any previously existing output file of the same name call check( nf90_create(param%outfile, NF90_HDF5, self%ncid) ) - !call check( nf90_set_fill(self%ncid, nf90_nofill, oldMode) ) + call check( nf90_set_fill(self%ncid, nf90_nofill, old_mode) ) ! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension @@ -103,12 +118,88 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) end if - call check( nf90_close(self%ncid) ) + call check( nf90_enddef(self%ncid) ) return end subroutine netcdf_initialize_output + module subroutine netcdf_open(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Opens a NetCDF file and does the variable inquiries to activate variable ids + implicit none + ! Arguments + class(netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: old_mode + + call check( nf90_open(param%outfile, nf90_write, self%ncid) ) + call check( nf90_set_fill(self%ncid, nf90_nofill, old_mode) ) + + call check( nf90_inq_varid(self%ncid, TIME_DIMNAME, self%time_varid)) + call check( nf90_inq_varid(self%ncid, ID_DIMNAME, self%id_varid)) + call check( nf90_inq_varid(self%ncid, NPL_VARNAME, self%npl_varid)) + call check( nf90_inq_varid(self%ncid, NTP_VARNAME, self%ntp_varid)) + + !call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then + call check( nf90_inq_varid(self%ncid, XHX_VARNAME, self%xhx_varid)) + call check( nf90_inq_varid(self%ncid, XHY_VARNAME, self%xhy_varid)) + call check( nf90_inq_varid(self%ncid, XHZ_VARNAME, self%xhz_varid)) + call check( nf90_inq_varid(self%ncid, VHX_VARNAME, self%vhx_varid)) + call check( nf90_inq_varid(self%ncid, VHY_VARNAME, self%vhy_varid)) + call check( nf90_inq_varid(self%ncid, VHZ_VARNAME, self%vhz_varid)) + end if + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + call check( nf90_inq_varid(self%ncid, A_VARNAME, self%a_varid)) + call check( nf90_inq_varid(self%ncid, E_VARNAME, self%e_varid)) + call check( nf90_inq_varid(self%ncid, INC_VARNAME, self%inc_varid)) + call check( nf90_inq_varid(self%ncid, CAPOM_VARNAME, self%capom_varid)) + call check( nf90_inq_varid(self%ncid, OMEGA_VARNAME, self%omega_varid)) + call check( nf90_inq_varid(self%ncid, CAPM_VARNAME, self%capm_varid)) + end if + call check( nf90_inq_varid(self%ncid, GMASS_VARNAME, self%Gmass_varid)) + if (param%lrhill_present) call check( nf90_inq_varid(self%ncid, RHILL_VARNAME, self%rhill_varid)) + + if (param%lrotation) then + call check( nf90_inq_varid(self%ncid, RADIUS_VARNAME, self%radius_varid)) + call check( nf90_inq_varid(self%ncid, IP1_VARNAME, self%Ip1_varid)) + call check( nf90_inq_varid(self%ncid, IP2_VARNAME, self%Ip2_varid)) + call check( nf90_inq_varid(self%ncid, IP3_VARNAME, self%Ip3_varid)) + call check( nf90_inq_varid(self%ncid, ROTX_VARNAME, self%rotx_varid)) + call check( nf90_inq_varid(self%ncid, ROTY_VARNAME, self%roty_varid)) + call check( nf90_inq_varid(self%ncid, ROTZ_VARNAME, self%rotz_varid)) + end if + + if (param%ltides) then + call check( nf90_inq_varid(self%ncid, K2_VARNAME, self%k2_varid)) + call check( nf90_inq_varid(self%ncid, Q_VARNAME, self%Q_varid)) + end if + + if (param%lenergy) then + call check( nf90_inq_varid(self%ncid, KE_ORB_VARNAME, self%KE_orb_varid) ) + call check( nf90_inq_varid(self%ncid, KE_SPIN_VARNAME, self%KE_spin_varid) ) + call check( nf90_inq_varid(self%ncid, PE_VARNAME, self%PE_varid) ) + call check( nf90_inq_varid(self%ncid, L_ORBX_VARNAME, self%L_orbx_varid) ) + call check( nf90_inq_varid(self%ncid, L_ORBY_VARNAME, self%L_orby_varid) ) + call check( nf90_inq_varid(self%ncid, L_ORBZ_VARNAME, self%L_orbz_varid) ) + call check( nf90_inq_varid(self%ncid, L_SPINX_VARNAME, self%L_spinx_varid) ) + call check( nf90_inq_varid(self%ncid, L_SPINY_VARNAME, self%L_spiny_varid) ) + call check( nf90_inq_varid(self%ncid, L_SPINZ_VARNAME, self%L_spinz_varid) ) + call check( nf90_inq_varid(self%ncid, L_ESCAPEX_VARNAME, self%L_escapex_varid) ) + call check( nf90_inq_varid(self%ncid, L_ESCAPEY_VARNAME, self%L_escapey_varid) ) + call check( nf90_inq_varid(self%ncid, L_ESCAPEZ_VARNAME, self%L_escapez_varid) ) + call check( nf90_inq_varid(self%ncid, ECOLLISIONS_VARNAME, self%Ecollisions_varid) ) + call check( nf90_inq_varid(self%ncid, EUNTRACKED_VARNAME, self%Euntracked_varid) ) + call check( nf90_inq_varid(self%ncid, GMESCAPE_VARNAME, self%GMescape_varid) ) + end if + + return + end subroutine netcdf_open + + module subroutine netcdf_write_frame_base(self, iu, param) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton !! @@ -124,8 +215,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) integer(I4B), dimension(:), allocatable :: ind !! Open the netCDF file - call check( nf90_open(param%outfile, nf90_write, iu%ncid) ) - !call check( nf90_set_fill(iu%ncid, nf90_nofill, oldMode) ) tslot = int(param%ioutput, kind=I4B) + 1 @@ -139,18 +228,10 @@ module subroutine netcdf_write_frame_base(self, iu, param) do i = 1, n j = ind(i) id = self%id(j) - call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) + call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) - !call check( nf90_inq_varid(iu%ncid, NAME_VARNAME, iu%name_varid)) !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[tslot, id]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_inq_varid(iu%ncid, XHX_VARNAME, iu%xhx_varid)) - call check( nf90_inq_varid(iu%ncid, XHY_VARNAME, iu%xhy_varid)) - call check( nf90_inq_varid(iu%ncid, XHZ_VARNAME, iu%xhz_varid)) - call check( nf90_inq_varid(iu%ncid, VHX_VARNAME, iu%vhx_varid)) - call check( nf90_inq_varid(iu%ncid, VHY_VARNAME, iu%vhy_varid)) - call check( nf90_inq_varid(iu%ncid, VHZ_VARNAME, iu%vhz_varid)) - call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[tslot, id]) ) @@ -159,13 +240,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[tslot, id]) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then - call check( nf90_inq_varid(iu%ncid, A_VARNAME, iu%a_varid)) - call check( nf90_inq_varid(iu%ncid, E_VARNAME, iu%e_varid)) - call check( nf90_inq_varid(iu%ncid, INC_VARNAME, iu%inc_varid)) - call check( nf90_inq_varid(iu%ncid, CAPOM_VARNAME, iu%capom_varid)) - call check( nf90_inq_varid(iu%ncid, OMEGA_VARNAME, iu%omega_varid)) - call check( nf90_inq_varid(iu%ncid, CAPM_VARNAME, iu%capm_varid)) - call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[tslot, id]) ) @@ -175,24 +249,14 @@ module subroutine netcdf_write_frame_base(self, iu, param) end if select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[tslot, id]) ) if (param%lrhill_present) then - call check( nf90_inq_varid(iu%ncid, RHILL_VARNAME, iu%rhill_varid)) call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[tslot, id]) ) end if if (param%lclose) then - call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[tslot, id]) ) end if if (param%lrotation) then - call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) - call check( nf90_inq_varid(iu%ncid, IP2_VARNAME, iu%Ip2_varid)) - call check( nf90_inq_varid(iu%ncid, IP3_VARNAME, iu%Ip3_varid)) - call check( nf90_inq_varid(iu%ncid, ROTX_VARNAME, iu%rotx_varid)) - call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) - call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[tslot, id]) ) @@ -201,9 +265,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[tslot, id]) ) end if if (param%ltides) then - call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) - call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) - call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[tslot, id]) ) end if @@ -212,20 +273,10 @@ module subroutine netcdf_write_frame_base(self, iu, param) end associate class is (swiftest_cb) id = self%id - call check( nf90_inq_varid(iu%ncid, ID_DIMNAME, iu%id_varid)) call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) - call check( nf90_inq_varid(iu%ncid, GMASS_VARNAME, iu%Gmass_varid)) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[tslot, id]) ) - call check( nf90_inq_varid(iu%ncid, RADIUS_VARNAME, iu%radius_varid)) call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[tslot, id]) ) if (param%lrotation) then - call check( nf90_inq_varid(iu%ncid, IP1_VARNAME, iu%Ip1_varid)) - call check( nf90_inq_varid(iu%ncid, IP2_VARNAME, iu%Ip2_varid)) - call check( nf90_inq_varid(iu%ncid, IP3_VARNAME, iu%Ip3_varid)) - call check( nf90_inq_varid(iu%ncid, ROTX_VARNAME, iu%rotx_varid)) - call check( nf90_inq_varid(iu%ncid, ROTY_VARNAME, iu%roty_varid)) - call check( nf90_inq_varid(iu%ncid, ROTZ_VARNAME, iu%rotz_varid)) - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[tslot, id]) ) @@ -234,17 +285,11 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[tslot, id]) ) end if if (param%ltides) then - call check( nf90_inq_varid(iu%ncid, K2_VARNAME, iu%k2_varid)) - call check( nf90_inq_varid(iu%ncid, Q_VARNAME, iu%Q_varid)) - call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[tslot, id]) ) call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[tslot, id]) ) end if end select - ! Close the netCDF file - call check( nf90_close(iu%ncid) ) - return end subroutine netcdf_write_frame_base @@ -260,38 +305,18 @@ module subroutine netcdf_write_hdr_system(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to for writing a NetCDF dataset to file class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: tslot + integer(I4B) :: tslot, old_mode tslot = int(param%ioutput, kind=I4B) + 1 call check( nf90_open(param%outfile, nf90_write, iu%ncid) ) + call check( nf90_set_fill(iu%ncid, nf90_nofill, old_mode) ) - call check( nf90_inq_varid(iu%ncid, TIME_DIMNAME, iu%time_varid)) call check( nf90_put_var(iu%ncid, iu%time_varid, param%t, start=[tslot]) ) - - call check( nf90_inq_varid(iu%ncid, NPL_VARNAME, iu%npl_varid)) call check( nf90_put_var(iu%ncid, iu%npl_varid, self%pl%nbody, start=[tslot]) ) - - call check( nf90_inq_varid(iu%ncid, NTP_VARNAME, iu%ntp_varid)) call check( nf90_put_var(iu%ncid, iu%ntp_varid, self%tp%nbody, start=[tslot]) ) if (param%lenergy) then - call check( nf90_inq_varid(iu%ncid, KE_ORB_VARNAME, iu%KE_orb_varid) ) - call check( nf90_inq_varid(iu%ncid, KE_SPIN_VARNAME, iu%KE_spin_varid) ) - call check( nf90_inq_varid(iu%ncid, PE_VARNAME, iu%PE_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ORBX_VARNAME, iu%L_orbx_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ORBY_VARNAME, iu%L_orby_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ORBZ_VARNAME, iu%L_orbz_varid) ) - call check( nf90_inq_varid(iu%ncid, L_SPINX_VARNAME, iu%L_spinx_varid) ) - call check( nf90_inq_varid(iu%ncid, L_SPINY_VARNAME, iu%L_spiny_varid) ) - call check( nf90_inq_varid(iu%ncid, L_SPINZ_VARNAME, iu%L_spinz_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ESCAPEX_VARNAME, iu%L_escapex_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ESCAPEY_VARNAME, iu%L_escapey_varid) ) - call check( nf90_inq_varid(iu%ncid, L_ESCAPEZ_VARNAME, iu%L_escapez_varid) ) - call check( nf90_inq_varid(iu%ncid, ECOLLISIONS_VARNAME, iu%Ecollisions_varid) ) - call check( nf90_inq_varid(iu%ncid, EUNTRACKED_VARNAME, iu%Euntracked_varid) ) - call check( nf90_inq_varid(iu%ncid, GMESCAPE_VARNAME, iu%GMescape_varid) ) - call check( nf90_put_var(iu%ncid, iu%KE_orb_varid, self%ke_orbit, start=[tslot]) ) call check( nf90_put_var(iu%ncid, iu%KE_spin_varid, self%ke_spin, start=[tslot]) ) call check( nf90_put_var(iu%ncid, iu%PE_varid, self%pe, start=[tslot]) ) @@ -307,12 +332,8 @@ module subroutine netcdf_write_hdr_system(self, iu, param) call check( nf90_put_var(iu%ncid, iu%Ecollisions_varid, param%Ecollisions, start=[tslot]) ) call check( nf90_put_var(iu%ncid, iu%Euntracked_varid, param%Euntracked, start=[tslot]) ) call check( nf90_put_var(iu%ncid, iu%GMescape_varid, param%GMescape, start=[tslot]) ) - end if - ! Close the netCDF file - call check( nf90_close(iu%ncid) ) - return end subroutine netcdf_write_hdr_system From 509b174b19540abe2c5a062de17938b1452594f1 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 11:47:26 -0400 Subject: [PATCH 207/315] added compatibility for binary and netcdf output types in swiftest2xr --- python/swiftest/swiftest/io.py | 80 +++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 5b4f45dd1..86015ca44 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -633,44 +633,52 @@ def swiftest2xr(param): ------- xarray dataset """ - - dims = ['time', 'id', 'vec'] - cb = [] - pl = [] - tp = [] - try: - with FortranFile(param['BIN_OUT'], 'r') as f: - for t, cbid, cvec, clab, \ - npl, plid, pvec, plab, \ - ntp, tpid, tvec, tlab in swiftest_stream(f, param): - # Prepare frames by adding an extra axis for the time coordinate - cbframe = np.expand_dims(cvec, axis=0) - plframe = np.expand_dims(pvec, axis=0) - tpframe = np.expand_dims(tvec, axis=0) - - # Create xarray DataArrays out of each body type - cbxr = xr.DataArray(cbframe, dims=dims, coords={'time': t, 'id': cbid, 'vec': clab}) - plxr = xr.DataArray(plframe, dims=dims, coords={'time': t, 'id': plid, 'vec': plab}) - tpxr = xr.DataArray(tpframe, dims=dims, coords={'time': t, 'id': tpid, 'vec': tlab}) + if ((param['OUT_TYPE'] == 'REAL8') or (param['OUT_TYPE'] == 'REAL4')): + dims = ['time', 'id', 'vec'] + cb = [] + pl = [] + tp = [] + try: + with FortranFile(param['BIN_OUT'], 'r') as f: + for t, cbid, cvec, clab, \ + npl, plid, pvec, plab, \ + ntp, tpid, tvec, tlab in swiftest_stream(f, param): + # Prepare frames by adding an extra axis for the time coordinate + cbframe = np.expand_dims(cvec, axis=0) + plframe = np.expand_dims(pvec, axis=0) + tpframe = np.expand_dims(tvec, axis=0) + + # Create xarray DataArrays out of each body type + cbxr = xr.DataArray(cbframe, dims=dims, coords={'time': t, 'id': cbid, 'vec': clab}) + plxr = xr.DataArray(plframe, dims=dims, coords={'time': t, 'id': plid, 'vec': plab}) + tpxr = xr.DataArray(tpframe, dims=dims, coords={'time': t, 'id': tpid, 'vec': tlab}) - cb.append(cbxr) - pl.append(plxr) - tp.append(tpxr) - sys.stdout.write('\r' + f"Reading in time {t[0]:.3e}") - sys.stdout.flush() - except IOError: - print(f"Error encountered reading in {param['BIN_OUT']}") - - cbda = xr.concat(cb, dim='time') - plda = xr.concat(pl, dim='time') - tpda = xr.concat(tp, dim='time') + cb.append(cbxr) + pl.append(plxr) + tp.append(tpxr) + sys.stdout.write('\r' + f"Reading in time {t[0]:.3e}") + sys.stdout.flush() + except IOError: + print(f"Error encountered reading in {param['BIN_OUT']}") + + cbda = xr.concat(cb, dim='time') + plda = xr.concat(pl, dim='time') + tpda = xr.concat(tp, dim='time') - cbds = cbda.to_dataset(dim='vec') - plds = plda.to_dataset(dim='vec') - tpds = tpda.to_dataset(dim='vec') - print('\nCreating Dataset') - ds = xr.combine_by_coords([cbds, plds, tpds]) - print(f"Successfully converted {ds.sizes['time']} output frames.") + cbds = cbda.to_dataset(dim='vec') + plds = plda.to_dataset(dim='vec') + tpds = tpda.to_dataset(dim='vec') + print('\nCreating Dataset') + ds = xr.combine_by_coords([cbds, plds, tpds]) + print(f"Successfully converted {ds.sizes['time']} output frames.") + + elif ((param['OUT_TYPE'] == 'NETCDF_DOUBLE') or (param['OUT_TYPE'] == 'NETCDF_FLOAT')): + print('\nCreating Dataset') + ds = xr.open_dataset(param['BIN_OUT']) + print(f"Successfully converted {ds.sizes['time']} output frames.") + else: + print(f"Error encountered. OUT_TYPE {param['OUT_TYPE']} not recognized.") + if param['PARTICLE_OUT'] != "": ds = swiftest_particle_2xr(ds, param) From b9989425181afff8c46bda2ced3d3dad712ab571 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 26 Aug 2021 13:38:23 -0400 Subject: [PATCH 208/315] Added better exception handling to the binary file reader. --- python/swiftest/swiftest/io.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 86015ca44..77a022e3e 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -670,14 +670,14 @@ def swiftest2xr(param): tpds = tpda.to_dataset(dim='vec') print('\nCreating Dataset') ds = xr.combine_by_coords([cbds, plds, tpds]) - print(f"Successfully converted {ds.sizes['time']} output frames.") elif ((param['OUT_TYPE'] == 'NETCDF_DOUBLE') or (param['OUT_TYPE'] == 'NETCDF_FLOAT')): print('\nCreating Dataset') ds = xr.open_dataset(param['BIN_OUT']) - print(f"Successfully converted {ds.sizes['time']} output frames.") else: print(f"Error encountered. OUT_TYPE {param['OUT_TYPE']} not recognized.") + return None + print(f"Successfully converted {ds.sizes['time']} output frames.") if param['PARTICLE_OUT'] != "": ds = swiftest_particle_2xr(ds, param) From 2c78bb02d4c9ca44582a111edff6b04d674f14be Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 26 Aug 2021 14:01:22 -0400 Subject: [PATCH 209/315] Restructured the particle info reader to make it easier to troubleshoot problems. --- python/swiftest/swiftest/io.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 77a022e3e..81cfd4c77 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -680,8 +680,10 @@ def swiftest2xr(param): print(f"Successfully converted {ds.sizes['time']} output frames.") if param['PARTICLE_OUT'] != "": - ds = swiftest_particle_2xr(ds, param) - + infoxr = swiftest_particle_2xr(param) + print('\nAdding particle info to Dataset') + ds = xr.merge([ds, infoxr]) + return ds @@ -717,7 +719,7 @@ def swiftest_particle_stream(f): yield plid, origin_type, origin_vec -def swiftest_particle_2xr(ds, param): +def swiftest_particle_2xr(param): """Reads in the Swiftest SyMBA-generated PARTICLE_OUT and converts it to an xarray Dataset""" veclab = ['time_origin', 'xhx_origin', 'py_origin', 'pz_origin', 'vhx_origin', 'vhy_origin', 'vhz_origin'] id_list = [] @@ -743,9 +745,7 @@ def swiftest_particle_2xr(ds, param): infoxr = vecda.to_dataset(dim='vec') infoxr['origin_type'] = typeda - print('\nAdding particle info to Dataset') - ds = xr.merge([ds, infoxr]) - return ds + return infoxr def swiftest_xr2infile(ds, param, framenum=-1): From aa736b1f92ddb42995209b1bb9aec2dee9f47a89 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 14:18:50 -0400 Subject: [PATCH 210/315] Enabled XVEL output mode for the old Fortran binary files. --- examples/symba_mars_disk/param.in | 6 +- examples/symba_mars_disk/testnetcdf.ipynb | 713 ++-------------------- src/io/io.f90 | 21 +- 3 files changed, 60 insertions(+), 680 deletions(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 912271752..1ff512a1d 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -8,9 +8,11 @@ TP_IN tp.in IN_TYPE ASCII ISTEP_OUT 1 ISTEP_DUMP 1 -BIN_OUT bin.nc +BIN_OUT bin.dat +OUT_TYPE REAL8 +!BIN_OUT bin.nc +!UT_TYPE NETCDF_DOUBLE PARTICLE_OUT particle.dat -OUT_TYPE NETCDF_DOUBLE OUT_FORM XVEL OUT_STAT REPLACE CHK_CLOSE yes diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 1df10fab4..186ae1fc3 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 22, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -11,17 +11,31 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.in\n", + "\n", + "Creating Dataset\n", + "Successfully converted 11 output frames.\n", + "\n", + "Adding particle info to Dataset\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], "source": [ - "import xarray as xr\n", - "dsnew = xr.open_dataset(\"bin.nc\")" + "sim = swiftest.Simulation(param_file=\"param.in\")\n", + "sim.bin2xr()" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -378,38 +392,28 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'time' (time: 11)>\n",
    -       "array([   0.,  600., 1200., 1800., 2400., 3000., 3600., 4200., 4800., 5400.,\n",
    -       "       6000.])\n",
    +       "
    <xarray.DataArray 'a' (time: 11)>\n",
    +       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n",
            "Coordinates:\n",
    -       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03
    " + " id int64 1\n", + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03
    " ], "text/plain": [ - "\n", - "array([ 0., 600., 1200., 1800., 2400., 3000., 3600., 4200., 4800., 5400.,\n", - " 6000.])\n", + "\n", + "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", "Coordinates:\n", + " id int64 1\n", " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03" ] }, - "execution_count": 26, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dsnew.time" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import netCDF4 as nc" + "sim.ds['a'].sel(id=1)" ] }, { @@ -423,652 +427,27 @@ "text": [ "Reading Swiftest file param.in\n" ] - } - ], - "source": [ - "sim = swiftest.Simulation(param_file=\"param.in\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading in time 6.000e+03\n", - "Creating Dataset\n", - "Successfully converted 11 output frames.\n", - "\n", - "Adding particle info to Dataset\n", - "Swiftest simulation data stored as xarray DataSet .ds\n" + "ename": "ValueError", + "evalue": "Size obtained (4) is not a multiple of the dtypes given (8).", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msim_old\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mswiftest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSimulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam_file\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"param.in\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msim_old\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/simulation_class.py\u001b[0m in \u001b[0;36mbin2xr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swiftest\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswiftest2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swiftest simulation data stored as xarray DataSet .ds'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swifter\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclab\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[0mnpl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplab\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0mntp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtpid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtlab\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mswiftest_stream\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;31m# Prepare frames by adding an extra axis for the time coordinate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0mcbframe\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexpand_dims\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest_stream\u001b[0;34m(f, param)\u001b[0m\n\u001b[1;32m 506\u001b[0m \u001b[0mp9\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[0mp10\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 508\u001b[0;31m \u001b[0mp11\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 509\u001b[0m \u001b[0mp12\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 510\u001b[0m \u001b[0mGMpl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/scipy/io/_fortran.py\u001b[0m in \u001b[0;36mread_reals\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 336\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 337\u001b[0m \"\"\"\n\u001b[0;32m--> 338\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_record\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 339\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/scipy/io/_fortran.py\u001b[0m in \u001b[0;36mread_record\u001b[0;34m(self, *dtypes, **kwargs)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mremainder\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 259\u001b[0m raise ValueError('Size obtained ({0}) is not a multiple of the '\n\u001b[0;32m--> 260\u001b[0;31m 'dtypes given ({1}).'.format(first_size, block_size))\n\u001b[0m\u001b[1;32m 261\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 262\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtypes\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfirst_size\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mblock_size\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Size obtained (4) is not a multiple of the dtypes given (8)." ] } ], "source": [ - "sim.bin2xr()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "sim.ds.to_netcdf(\"bin.new.nc\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "ds = nc.Dataset(\"bin.new.nc\")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " dimensions(sizes): id(1521), time(11)\n", - " variables(dimensions): float64 id(id), float64 Gmass(time, id), float64 radius(time, id), float64 J_2(time, id), float64 J_4(time, id), float64 Ip1(time, id), float64 Ip2(time, id), float64 Ip3(time, id), float64 rotx(time, id), float64 roty(time, id), float64 rotz(time, id), float64 time(time), float64 a(time, id), float64 e(time, id), float64 inc(time, id), float64 capom(time, id), float64 omega(time, id), float64 capm(time, id), float64 rhill(time, id), float64 time_origin(id), float64 xhx_origin(id), float64 py_origin(id), float64 pz_origin(id), float64 vhx_origin(id), float64 vhy_origin(id), float64 vhz_origin(id), origin_type(id)\n", - " groups: " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "ds = xr.open_dataset(\"bin.new.nc\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:      (id: 1521, time: 11)\n",
    -       "Coordinates:\n",
    -       "  * id           (id) float64 1.0 2.0 3.0 4.0 ... 1.519e+03 1.52e+03 1.521e+03\n",
    -       "  * time         (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    -       "Data variables: (12/25)\n",
    -       "    Gmass        (time, id) float64 4.284e+13 1.71e+06 ... 1.168e+05 1.168e+05\n",
    -       "    radius       (time, id) float64 3.39e+06 1.241e+04 ... 5.073e+03 5.073e+03\n",
    -       "    J_2          (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n",
    -       "    J_4          (time, id) float64 0.0 nan nan nan nan ... nan nan nan nan nan\n",
    -       "    Ip1          (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    -       "    Ip2          (time, id) float64 0.4 0.4 0.4 0.4 0.4 ... 0.4 0.4 0.4 0.4 0.4\n",
    -       "    ...           ...\n",
    -       "    py_origin    (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n",
    -       "    pz_origin    (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n",
    -       "    vhx_origin   (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n",
    -       "    vhy_origin   (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n",
    -       "    vhz_origin   (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n",
    -       "    origin_type  (id) object 'Central body' ... 'Supercatastrophic'
    " - ], - "text/plain": [ - "\n", - "Dimensions: (id: 1521, time: 11)\n", - "Coordinates:\n", - " * id (id) float64 1.0 2.0 3.0 4.0 ... 1.519e+03 1.52e+03 1.521e+03\n", - " * time (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n", - "Data variables: (12/25)\n", - " Gmass (time, id) float64 ...\n", - " radius (time, id) float64 ...\n", - " J_2 (time, id) float64 ...\n", - " J_4 (time, id) float64 ...\n", - " Ip1 (time, id) float64 ...\n", - " Ip2 (time, id) float64 ...\n", - " ... ...\n", - " py_origin (id) float64 ...\n", - " pz_origin (id) float64 ...\n", - " vhx_origin (id) float64 ...\n", - " vhy_origin (id) float64 ...\n", - " vhz_origin (id) float64 ...\n", - " origin_type (id) object ..." - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds" + "sim_old = sim = swiftest.Simulation(param_file=\"param.in\")\n", + "sim_old.bin2xr()" ] }, { diff --git a/src/io/io.f90 b/src/io/io.f90 index b13dbab6d..18c56dd62 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1492,23 +1492,22 @@ module subroutine io_write_frame_body(self, iu, param) associate(n => self%nbody) if (n == 0) return write(iu, err = 667, iomsg = errmsg) self%id(1:n) - !write(iu, err = 667, iomsg = errmsg) self%name(1:n) - select case (param%out_form) - case (EL) - write(iu, err = 667, iomsg = errmsg) self%a(1:n) - write(iu, err = 667, iomsg = errmsg) self%e(1:n) - write(iu, err = 667, iomsg = errmsg) self%inc(1:n) * RAD2DEG - write(iu, err = 667, iomsg = errmsg) self%capom(1:n) * RAD2DEG - write(iu, err = 667, iomsg = errmsg) self%omega(1:n) * RAD2DEG - write(iu, err = 667, iomsg = errmsg) self%capm(1:n) * RAD2DEG - case (XV) + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) write(iu, err = 667, iomsg = errmsg) self%xh(3, 1:n) write(iu, err = 667, iomsg = errmsg) self%vh(1, 1:n) write(iu, err = 667, iomsg = errmsg) self%vh(2, 1:n) write(iu, err = 667, iomsg = errmsg) self%vh(3, 1:n) - end select + end if + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then + write(iu, err = 667, iomsg = errmsg) self%a(1:n) + write(iu, err = 667, iomsg = errmsg) self%e(1:n) + write(iu, err = 667, iomsg = errmsg) self%inc(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%capom(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%omega(1:n) * RAD2DEG + write(iu, err = 667, iomsg = errmsg) self%capm(1:n) * RAD2DEG + end if select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body write(iu, err = 667, iomsg = errmsg) pl%Gmass(1:n) From e88e975b533fa5a08e8130b772d7e1136cd4fba7 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 14:20:00 -0400 Subject: [PATCH 211/315] Stripped out old cruft from the testnetcdf Notebook. --- examples/symba_mars_disk/testnetcdf.ipynb | 417 ---------------------- 1 file changed, 417 deletions(-) diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 186ae1fc3..8c61f51a0 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -33,423 +33,6 @@ "sim.bin2xr()" ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'a' (time: 11)>\n",
    -       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n",
    -       "Coordinates:\n",
    -       "    id       int64 1\n",
    -       "  * time     (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03
    " - ], - "text/plain": [ - "\n", - "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", - "Coordinates:\n", - " id int64 1\n", - " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 ... 4.8e+03 5.4e+03 6e+03" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sim.ds['a'].sel(id=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.in\n" - ] - }, - { - "ename": "ValueError", - "evalue": "Size obtained (4) is not a multiple of the dtypes given (8).", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msim_old\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mswiftest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSimulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam_file\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"param.in\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msim_old\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/simulation_class.py\u001b[0m in \u001b[0;36mbin2xr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swiftest\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswiftest2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swiftest simulation data stored as xarray DataSet .ds'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swifter\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclab\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[0mnpl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mplab\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0mntp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtpid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtlab\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mswiftest_stream\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;31m# Prepare frames by adding an extra axis for the time coordinate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0mcbframe\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexpand_dims\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcvec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest_stream\u001b[0;34m(f, param)\u001b[0m\n\u001b[1;32m 506\u001b[0m \u001b[0mp9\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 507\u001b[0m \u001b[0mp10\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 508\u001b[0;31m \u001b[0mp11\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 509\u001b[0m \u001b[0mp12\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 510\u001b[0m \u001b[0mGMpl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_reals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/scipy/io/_fortran.py\u001b[0m in \u001b[0;36mread_reals\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 336\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 337\u001b[0m \"\"\"\n\u001b[0;32m--> 338\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_record\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 339\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/scipy/io/_fortran.py\u001b[0m in \u001b[0;36mread_record\u001b[0;34m(self, *dtypes, **kwargs)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mremainder\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 259\u001b[0m raise ValueError('Size obtained ({0}) is not a multiple of the '\n\u001b[0;32m--> 260\u001b[0;31m 'dtypes given ({1}).'.format(first_size, block_size))\n\u001b[0m\u001b[1;32m 261\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 262\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtypes\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;36m1\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfirst_size\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mblock_size\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: Size obtained (4) is not a multiple of the dtypes given (8)." - ] - } - ], - "source": [ - "sim_old = sim = swiftest.Simulation(param_file=\"param.in\")\n", - "sim_old.bin2xr()" - ] - }, { "cell_type": "code", "execution_count": null, From edbffe10a4328020bb7034ed86b70eeecc9700cd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 14:54:08 -0400 Subject: [PATCH 212/315] Fixed issue where conservation report was being printed before the main loop. --- src/io/io.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 18c56dd62..c4c9b8b81 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1630,7 +1630,7 @@ module subroutine io_write_frame_system(self, param) logical :: fileExists type(netcdf_parameters) :: nciu - if (param%lenergy) call self%conservation_report(param, lterminal=.true.) + if (.not.lfirst .and. param%lenergy) call self%conservation_report(param, lterminal=.true.) allocate(cb, source = self%cb) allocate(pl, source = self%pl) From 60eb8979bde7a0a04cceea0a3c96ebe3101b1d41 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 14:57:23 -0400 Subject: [PATCH 213/315] Switched example back to NetCDF output --- examples/symba_mars_disk/param.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 1ff512a1d..a50be00e4 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -8,10 +8,10 @@ TP_IN tp.in IN_TYPE ASCII ISTEP_OUT 1 ISTEP_DUMP 1 -BIN_OUT bin.dat -OUT_TYPE REAL8 -!BIN_OUT bin.nc -!UT_TYPE NETCDF_DOUBLE +!BIN_OUT bin.dat +!OUT_TYPE REAL8 +BIN_OUT bin.nc +OUT_TYPE NETCDF_DOUBLE PARTICLE_OUT particle.dat OUT_FORM XVEL OUT_STAT REPLACE From 1e5fdffed050796594180d3af63c396c024e597c Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:11:58 -0400 Subject: [PATCH 214/315] fixed typos in init_cond.py and added XVEL case to headers --- python/swiftest/swiftest/init_cond.py | 30 +++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index b5424f7ce..061d6d6d7 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -129,7 +129,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): ephemerides_step = '1d' clab, plab, tlab = swiftest.io.make_swiftest_labels(param) - if param['OUT_FORM'] == 'XV': + if param['OUT_FORM'] == 'EL': plab.append('a') plab.append('e') plab.append('inc') @@ -142,7 +142,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): tlab.append('capom') tlab.append('omega') tlab.append('capm') - elif param['OUT_FORM'] == 'EL': + elif param['OUT_FORM'] == 'XV': plab.append('xhx') plab.append('xhy') plab.append('xhz') @@ -156,6 +156,32 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): tlab.append('vhy') tlab.append('vhz') + elif param['OUT_FORM'] == 'XVEL': + plab.append('xhx') + plab.append('xhy') + plab.append('xhz') + plab.append('vhx') + plab.append('vhy') + plab.append('vhz') + tlab.append('xhx') + tlab.append('xhy') + tlab.append('xhz') + tlab.append('vhx') + tlab.append('vhy') + tlab.append('vhz') + plab.append('a') + plab.append('e') + plab.append('inc') + plab.append('capom') + plab.append('omega') + plab.append('capm') + tlab.append('a') + tlab.append('e') + tlab.append('inc') + tlab.append('capom') + tlab.append('omega') + tlab.append('capm') + dims = ['time', 'id', 'vec'] t = np.array([0.0]) From d35866394b5d7caa03b96fb8cc97c44096e6ebd8 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:25:49 -0400 Subject: [PATCH 215/315] cleaned up init_cond.py --- python/swiftest/swiftest/init_cond.py | 33 ++++----------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 061d6d6d7..7b28125be 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -129,7 +129,8 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): ephemerides_step = '1d' clab, plab, tlab = swiftest.io.make_swiftest_labels(param) - if param['OUT_FORM'] == 'EL': + # Add the missing labels + if param['OUT_FORM'] == 'XV': plab.append('a') plab.append('e') plab.append('inc') @@ -142,7 +143,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): tlab.append('capom') tlab.append('omega') tlab.append('capm') - elif param['OUT_FORM'] == 'XV': + elif param['OUT_FORM'] == 'EL': plab.append('xhx') plab.append('xhy') plab.append('xhz') @@ -156,32 +157,6 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): tlab.append('vhy') tlab.append('vhz') - elif param['OUT_FORM'] == 'XVEL': - plab.append('xhx') - plab.append('xhy') - plab.append('xhz') - plab.append('vhx') - plab.append('vhy') - plab.append('vhz') - tlab.append('xhx') - tlab.append('xhy') - tlab.append('xhz') - tlab.append('vhx') - tlab.append('vhy') - tlab.append('vhz') - plab.append('a') - plab.append('e') - plab.append('inc') - plab.append('capom') - plab.append('omega') - plab.append('capm') - tlab.append('a') - tlab.append('e') - tlab.append('inc') - tlab.append('capom') - tlab.append('omega') - tlab.append('capm') - dims = ['time', 'id', 'vec'] t = np.array([0.0]) @@ -199,7 +174,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): ds = xr.combine_by_coords([ds, cbds]) else: # Fetch solar system ephemerides from Horizons print(f"Fetching ephemerides data for {key} from JPL/Horizons") - pl = [] + p1 = [] p2 = [] p3 = [] From 6b7d3ba645aeabb7f08cce3ec03a1574aa4e7b56 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:26:21 -0400 Subject: [PATCH 216/315] added compatibility for out_form = XVEL --- python/swiftest/swiftest/init_cond.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 7b28125be..a159ba9c3 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -206,7 +206,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): pldata[key] = Horizons(id=key, id_type='smallbody', location='@sun', epochs={'start': ephemerides_start_date, 'stop': ephemerides_end_date, 'step': ephemerides_step}) - if param['OUT_FORM'] == 'XV': + if (param['OUT_FORM'] == 'XV' or param['OUT_FORM'] == 'XVEL'): p1.append(pldata[key].vectors()['x'][0] * DCONV) p2.append(pldata[key].vectors()['y'][0] * DCONV) p3.append(pldata[key].vectors()['z'][0] * DCONV) From 4e1e44b3e85bd95dafb904f30a17cb9b8d036fe3 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:26:55 -0400 Subject: [PATCH 217/315] changed the names of velocity labels to match horizons database --- python/swiftest/swiftest/init_cond.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index a159ba9c3..0d7807524 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -210,9 +210,9 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): p1.append(pldata[key].vectors()['x'][0] * DCONV) p2.append(pldata[key].vectors()['y'][0] * DCONV) p3.append(pldata[key].vectors()['z'][0] * DCONV) - p4.append(pldata[key].vectors()['vhx'][0] * VCONV) - p5.append(pldata[key].vectors()['vhy'][0] * VCONV) - p6.append(pldata[key].vectors()['vhz'][0] * VCONV) + p4.append(pldata[key].vectors()['vx'][0] * VCONV) + p5.append(pldata[key].vectors()['vy'][0] * VCONV) + p6.append(pldata[key].vectors()['vz'][0] * VCONV) p7.append(pldata[key].elements()['a'][0] * DCONV) p8.append(pldata[key].elements()['e'][0]) p9.append(pldata[key].elements()['incl'][0]) @@ -229,10 +229,11 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): p7.append(pldata[key].vectors()['x'][0] * DCONV) p8.append(pldata[key].vectors()['y'][0] * DCONV) p9.append(pldata[key].vectors()['z'][0] * DCONV) - p10.append(pldata[key].vectors()['vhx'][0] * VCONV) - p11.append(pldata[key].vectors()['vhy'][0] * VCONV) - p12.append(pldata[key].vectors()['vhz'][0] * VCONV) + p10.append(pldata[key].vectors()['vx'][0] * VCONV) + p11.append(pldata[key].vectors()['vy'][0] * VCONV) + p12.append(pldata[key].vectors()['vz'][0] * VCONV) pvec = np.vstack([p1, p2, p3, p4, p5, p6]) + if ispl: Rpl.append(planetradius[key] * DCONV) GMpl.append(GMcb[0] / MSun_over_Mpl[key]) From b0678b930544ddef710ee91b07536d05cc74f729 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:27:27 -0400 Subject: [PATCH 218/315] incremented planetid by 1 to match horizons database and netcdf --- python/swiftest/swiftest/init_cond.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 0d7807524..395ebdb89 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -263,9 +263,9 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): pvec = np.vstack([pvec, p7, p8, p9, p10, p11, p12]) if idval is None: - plid = np.array([planetid[key]], dtype=int) + plid = np.array([planetid[key]+1], dtype=int) else: - plid = np.array([idval], dtype=int) + plid = np.array([idval]+1, dtype=int) # Prepare frames by adding an extra axis for the time coordinate plframe = np.expand_dims(pvec.T, axis=0) From 40c58cf8b0d29615a2924aab4ab49955d10b47ed Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 26 Aug 2021 16:33:36 -0400 Subject: [PATCH 219/315] fixed typo in planetid incrementation --- python/swiftest/swiftest/init_cond.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 395ebdb89..83ced66b8 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -263,7 +263,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): pvec = np.vstack([pvec, p7, p8, p9, p10, p11, p12]) if idval is None: - plid = np.array([planetid[key]+1], dtype=int) + plid = np.array([planetid[key]], dtype=int) + 1 else: plid = np.array([idval]+1, dtype=int) From b747365841f752ef43fa51a4ca3c7198f2daef4d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 26 Aug 2021 17:29:06 -0400 Subject: [PATCH 220/315] Updated particle info generation code --- src/symba/symba_collision.f90 | 13 ++++++++----- src/symba/symba_util.f90 | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index fd4eae517..034038ded 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -67,8 +67,9 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass ! Distribute any residual mass if there is any and set the radius m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + rad_frag(1:nfrag) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) + id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + param%maxid = id_frag(nfrag) do i = 1, nfrag Ip_frag(:, i) = Ip_new(:) @@ -169,7 +170,8 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + id_frag(2:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag - 1)] + param%maxid = id_frag(nfrag) do i = 1, nfrag Ip_frag(:, i) = Ip(:, jproj) @@ -369,8 +371,9 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, end if ! Distribute any residual mass if there is any and set the radius m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(:) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(:) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + rad_frag(1:nfrag) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) + id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + param%maxid = id_frag(nfrag) do i = 1, nfrag Ip_frag(:, i) = Ip_new(:) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index c50e0d373..aa2fe0234 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -495,11 +495,12 @@ module subroutine symba_util_rearray_pl(self, system, param) if (nadd > 0) then ! Append the adds to the main pl object call pl%append(pl_adds, lsource_mask=[(.true., i=1, nadd)]) - npl = pl%nbody - allocate(lmask(npl)) - lmask(1:npl) = pl%status(1:npl) == NEW_PARTICLE + allocate(lmask(npl+nadd)) + lmask(1:npl) = .false. + lmask(npl+1:npl+nadd) = pl%status(npl+1:npl+nadd) == NEW_PARTICLE + npl = pl%nbody call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, npl)], lmask)) deallocate(lmask) From 2ff7ebed9cc357a0c9b6fa0b9cd2471634aec7d7 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 26 Aug 2021 20:45:46 -0400 Subject: [PATCH 221/315] Fixed bad central body id in initial conditions generator. Also made XVEL the default out put type and EL the default input type --- python/swiftest/swiftest/init_cond.py | 3 +-- python/swiftest/swiftest/simulation_class.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 83ced66b8..1e23eabe8 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -118,7 +118,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): rotcb = solarpole.cartesian * solarrot Ipsun = np.array([0.0, 0.0, planetIpz['Sun']]) - cbid = np.array([0]) + cbid = np.array([1]) cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4, Ipsun[0], Ipsun[1], Ipsun[2], rotcb.x, rotcb.y, rotcb.z ]) # Horizons date time internal variables @@ -167,7 +167,6 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): val = -1 if key == "Sun" : # Create central body print("Creating the Sun as a central body") - cb = [] cbframe = np.expand_dims(cvec.T, axis=0) cbxr = xr.DataArray(cbframe, dims=dims, coords={'time': t, 'id': cbid, 'vec': clab}) cbds = cbxr.to_dataset(dim='vec') diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index 1663b3366..f3047fa71 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -21,12 +21,12 @@ def __init__(self, codename="Swiftest", param_file=""): 'TP_IN': "tp.in", 'CB_IN': "cb.in", 'IN_TYPE': "ASCII", - 'IN_FORM': "XV", + 'IN_FORM': "EL", 'ISTEP_OUT': "1", 'ISTEP_DUMP': "1", 'BIN_OUT': "bin.dat", 'OUT_TYPE': 'REAL8', - 'OUT_FORM': "EL", + 'OUT_FORM': "XVEL", 'OUT_STAT': "REPLACE", 'CHK_RMAX': "-1.0", 'CHK_EJECT': "-1.0", From 4d539033aaaa22ec7952392019de222d73897b82 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 26 Aug 2021 20:48:08 -0400 Subject: [PATCH 222/315] Fixed mismatch between DataSet labels and JPL/Horizons-retrieved ephermides --- python/swiftest/swiftest/init_cond.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index 1e23eabe8..d058744ba 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -231,7 +231,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): p10.append(pldata[key].vectors()['vx'][0] * VCONV) p11.append(pldata[key].vectors()['vy'][0] * VCONV) p12.append(pldata[key].vectors()['vz'][0] * VCONV) - pvec = np.vstack([p1, p2, p3, p4, p5, p6]) + pvec = np.vstack([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12]) if ispl: Rpl.append(planetradius[key] * DCONV) @@ -259,7 +259,6 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): pvec = np.vstack([pvec, Ip1, Ip2, Ip3, rotx, roty, rotz]) else: plab = tlab.copy() - pvec = np.vstack([pvec, p7, p8, p9, p10, p11, p12]) if idval is None: plid = np.array([planetid[key]], dtype=int) + 1 From 7c035a2602e69a7c4c44f06309dcf6c7c3b11d16 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 07:03:37 -0400 Subject: [PATCH 223/315] Performed some maintenance on the intial conditions generators and conversion routines to fix issues with the indexing of the central body and when rotation is disabled --- python/swiftest/swiftest/init_cond.py | 4 +++- python/swiftest/swiftest/io.py | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index d058744ba..2b8248ec4 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -119,7 +119,9 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): Ipsun = np.array([0.0, 0.0, planetIpz['Sun']]) cbid = np.array([1]) - cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4, Ipsun[0], Ipsun[1], Ipsun[2], rotcb.x, rotcb.y, rotcb.z ]) + cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4]) + if param['ROTATION'] == 'YES': + cvec = np.vstack([cvec, Ipsun[0], Ipsun[1], Ipsun[2], rotcb.x, rotcb.y, rotcb.z]) # Horizons date time internal variables tstart = datetime.date.fromisoformat(ephemerides_start_date) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 81cfd4c77..0b29bc5d5 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -766,8 +766,8 @@ def swiftest_xr2infile(ds, param, framenum=-1): A set of three input files for a Swiftest run """ frame = ds.isel(time=framenum) - cb = frame.where(frame.id == 0, drop=True) - pl = frame.where(frame.id > 0, drop=True) + cb = frame.where(frame.id == 1, drop=True) + pl = frame.where(frame.id > 1, drop=True) pl = pl.where(np.invert(np.isnan(pl['Gmass'])), drop=True).drop_vars(['J_2', 'J_4']) tp = frame.where(np.isnan(frame['Gmass']), drop=True).drop_vars(['Gmass', 'radius', 'J_2', 'J_4']) @@ -775,12 +775,13 @@ def swiftest_xr2infile(ds, param, framenum=-1): RSun = np.double(cb['radius']) J2 = np.double(cb['J_2']) J4 = np.double(cb['J_4']) - Ip1cb = np.double(cb['Ip1']) - Ip2cb = np.double(cb['Ip2']) - Ip3cb = np.double(cb['Ip3']) - rotxcb = np.double(cb['rotx']) - rotycb = np.double(cb['roty']) - rotzcb = np.double(cb['rotz']) + if param['ROTATION'] == 'YES': + Ip1cb = np.double(cb['Ip1']) + Ip2cb = np.double(cb['Ip2']) + Ip3cb = np.double(cb['Ip3']) + rotxcb = np.double(cb['rotx']) + rotycb = np.double(cb['roty']) + rotzcb = np.double(cb['rotz']) cbid = int(0) if param['IN_TYPE'] == 'ASCII': @@ -942,8 +943,8 @@ def swifter_xr2infile(ds, param, framenum=-1): A set of input files for a Swifter run """ frame = ds.isel(time=framenum) - cb = frame.where(frame.id == 0, drop=True) - pl = frame.where(frame.id > 0, drop=True) + cb = frame.where(frame.id == 1, drop=True) + pl = frame.where(frame.id > 1, drop=True) pl = pl.where(np.invert(np.isnan(pl['Gmass'])), drop=True).drop_vars(['J_2', 'J_4']) tp = frame.where(np.isnan(frame['Gmass']), drop=True).drop_vars(['Gmass', 'radius', 'J_2', 'J_4']) @@ -956,7 +957,7 @@ def swifter_xr2infile(ds, param, framenum=-1): # Swiftest Central body file plfile = open(param['PL_IN'], 'w') print(pl.id.count().values + 1, file=plfile) - print(cb.id.values[0], cb['Gmass'].values[0], file=plfile) + print(cb.id.values[0], GMSun, file=plfile) print('0.0 0.0 0.0', file=plfile) print('0.0 0.0 0.0', file=plfile) for i in pl.id: From 6222eb143e2fa7817824e4f16dc161eb74256281 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 07:06:35 -0400 Subject: [PATCH 224/315] Removed the IN_FORM parameter for a swiftest2swifter conversion --- python/swiftest/swiftest/io.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 0b29bc5d5..a8c2daf08 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -5,7 +5,7 @@ import sys import tempfile -newfeaturelist = ("FRAGMENTATION", "ROTATION", "TIDES", "ENERGY", "GR", "YARKOVSKY", "YORP") +newfeaturelist = ("FRAGMENTATION", "ROTATION", "TIDES", "ENERGY", "GR", "YARKOVSKY", "YORP", "IN_FORM") def real2float(realstr): """ From e9dc3bfb33c3e0c80f3ff3e0070517ecfac8a91e Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 07:08:09 -0400 Subject: [PATCH 225/315] Updated the WHM_GR test to use new features: NetCDF, EL inputs, and XVEL outputs --- examples/whm_gr_test/init_cond.py | 10 ++++-- examples/whm_gr_test/param.swifter.in | 2 +- examples/whm_gr_test/param.swiftest.in | 13 ++++--- examples/whm_gr_test/pl.swifter.in | 50 +++++++++++++------------- examples/whm_gr_test/pl.swiftest.in | 48 ++++++++++++------------- 5 files changed, 63 insertions(+), 60 deletions(-) diff --git a/examples/whm_gr_test/init_cond.py b/examples/whm_gr_test/init_cond.py index 09feca135..edb4f3db3 100755 --- a/examples/whm_gr_test/init_cond.py +++ b/examples/whm_gr_test/init_cond.py @@ -5,7 +5,7 @@ sim.param['PL_IN'] = "pl.swiftest.in" sim.param['TP_IN'] = "tp.swiftest.in" sim.param['CB_IN'] = "cb.swiftest.in" -sim.param['BIN_OUT'] = "bin.swiftest.dat" +sim.param['BIN_OUT'] = "bin.swiftest.nc" sim.param['ENC_OUT'] = "enc.swiftest.dat" sim.param['MU2KG'] = swiftest.MSun @@ -22,8 +22,10 @@ sim.param['CHK_RMIN'] = swiftest.RSun / swiftest.AU2M sim.param['CHK_RMAX'] = 1000.0 sim.param['CHK_EJECT'] = 1000.0 -sim.param['OUT_FORM'] = "EL" sim.param['OUT_STAT'] = "UNKNOWN" +sim.param['IN_FORM'] = "EL" +sim.param['OUT_FORM'] = "XVEL" +sim.param['OUT_TYPE'] = "NETCDF_DOUBLE" sim.param['RHILL_PRESENT'] = "YES" sim.param['GR'] = 'YES' @@ -40,13 +42,15 @@ } for name, id in bodyid.items(): - sim.add(name, idval=id) + sim.add(name) sim.save("param.swiftest.in") sim.param['PL_IN'] = "pl.swifter.in" sim.param['TP_IN'] = "tp.swifter.in" sim.param['BIN_OUT'] = "bin.swifter.dat" sim.param['ENC_OUT'] = "enc.swifter.dat" +sim.param['OUT_FORM'] = "EL" +sim.param['OUT_TYPE'] = "REAL8" sim.save("param.swifter.in", codename="Swifter") diff --git a/examples/whm_gr_test/param.swifter.in b/examples/whm_gr_test/param.swifter.in index f1574759a..105579a82 100644 --- a/examples/whm_gr_test/param.swifter.in +++ b/examples/whm_gr_test/param.swifter.in @@ -11,13 +11,13 @@ IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in BIN_OUT bin.swifter.dat -ENC_OUT enc.swifter.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 CHK_EJECT 1000.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swifter.dat EXTRA_FORCE NO BIG_DISCARD NO CHK_CLOSE YES diff --git a/examples/whm_gr_test/param.swiftest.in b/examples/whm_gr_test/param.swiftest.in index 00b2c2546..d7f584790 100644 --- a/examples/whm_gr_test/param.swiftest.in +++ b/examples/whm_gr_test/param.swiftest.in @@ -4,15 +4,14 @@ TSTOP 1000.0 DT 0.0006844626967830253 ISTEP_OUT 1461 ISTEP_DUMP 1461 -OUT_FORM EL -OUT_TYPE REAL8 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swiftest.in TP_IN tp.swiftest.in CB_IN cb.swiftest.in -BIN_OUT bin.swiftest.dat -ENC_OUT enc.swiftest.dat +BIN_OUT bin.swiftest.nc CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 @@ -22,7 +21,10 @@ CHK_QMIN_RANGE 0.004650467260962157 1000.0 MU2KG 1.988409870698051e+30 TU2S 31557600.0 DU2M 149597870700.0 +IN_FORM EL +ENC_OUT enc.swiftest.dat EXTRA_FORCE NO +DISCARD_OUT discard.out BIG_DISCARD NO CHK_CLOSE YES RHILL_PRESENT YES @@ -31,6 +33,3 @@ ROTATION NO TIDES NO ENERGY NO GR YES -YARKOVSKY NO -YORP NO -MTINY 0.0 diff --git a/examples/whm_gr_test/pl.swifter.in b/examples/whm_gr_test/pl.swifter.in index 0b02f19c8..0d8d216fb 100644 --- a/examples/whm_gr_test/pl.swifter.in +++ b/examples/whm_gr_test/pl.swifter.in @@ -1,36 +1,36 @@ 9 -0 39.476926408897625196 +1 39.476926408897626 0.0 0.0 0.0 0.0 0.0 0.0 -1 6.5537098095653139645e-06 0.001475124456355905224 +2 6.553709809565314146e-06 0.0014751261514880139061 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --6.8742992150644793847 -8.672423996611946485 -0.078109307586001638286 -2 9.663313399581537916e-05 0.006759069616556246028 +-0.29510017042975300594 -0.34346884022084378518 -0.000997917547895216684 +5.709185893355676925 -6.2220892824670268354 -1.0321515701207669188 +3 9.6633133995815381836e-05 0.006759061578633710828 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -4.6580776303108450487 -5.726444072926637749 -0.3473859047161406309 -3 0.000120026935827952453094 0.010044908171483009529 +-0.21096294566811030213 -0.6945147553261317164 0.0026420019351886940041 +7.0187176732445560167 -2.1783670470162428854 -0.43491289164169576724 +4 0.000120026935827952456416 0.010044949983771724966 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -4.4579240279134950613 4.300011122687349501 -0.00022055769049333364448 -4 1.2739802010675941456e-05 0.0072466797341124641736 +0.905522725638602366 -0.44829515638659761523 1.8122901980659660508e-05 +2.685845700565266851 5.6080546137104218133 -0.00027833838024725729542 +5 1.2739802010675941808e-05 0.0072465915674003790445 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.98751874613118001086 -4.5371239937302254657 -0.07086074102213555221 -5 0.037692251088985676735 0.35527079166215922855 +-1.6511945936824949932 0.1180803833522415941 0.042978148735422203042 +-0.17443328105136805607 -4.661619009141641736 -0.09341597039948347882 +6 0.03769225108898567778 0.3552713110772063853 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -1.5225069137843642898 2.4087104911325327961 -0.044067446366273183833 -6 0.011285899820091272997 0.43765832419088212185 +4.2381319671740662614 -2.694827110197309139 -0.08362807329786287047 +1.44742540330701551 2.4581907268113588696 -0.042593445938391914576 +7 0.01128589982009127331 0.4376635990332856823 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -1.4493167787574136286 1.3075474785896286071 -0.08039429377859412155 -7 0.0017236589478267730203 0.46960112247450473807 +6.4776155764849425722 -7.5454781609219372385 -0.12660625214421539209 +1.4343694668413992401 1.3251694474665614901 -0.08010594537316981756 +8 0.001723658947826773068 0.46966224198242572768 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.9605086875596024784 1.0118431725941020164 0.016148779866732710198 -8 0.0020336100526728302319 0.78136567314580814177 +14.737783583010530819 13.132284780084109599 -0.14218874866247160904 +-0.96494157148906816704 1.0080364706941240677 0.016191990849809560611 +9 0.0020336100526728302882 0.7814394516095526881 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.16867624969736024011 1.1427992197933557251 -0.027387722828706092838 +29.578253698940308425 -4.488584904681241383 -0.58928426126360722304 +0.16609282485651713797 1.143247554888599065 -0.027336661118935745503 diff --git a/examples/whm_gr_test/pl.swiftest.in b/examples/whm_gr_test/pl.swiftest.in index 84cae57a2..ddb1a7016 100644 --- a/examples/whm_gr_test/pl.swiftest.in +++ b/examples/whm_gr_test/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -1 6.5537098095653139645e-06 0.001475124456355905224 +2 6.553709809565314146e-06 0.0014751261514880139061 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --6.8742992150644793847 -8.672423996611946485 -0.078109307586001638286 -2 9.663313399581537916e-05 0.006759069616556246028 +0.38709861919270799335 0.20562987442219879397 7.0036598799530471737 +48.303764444546942514 29.187012577257871015 139.02452846395490837 +3 9.6633133995815381836e-05 0.006759061578633710828 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -4.6580776303108450487 -5.726444072926637749 -0.3473859047161406309 -3 0.000120026935827952453094 0.010044908171483009529 +0.72332350338494522113 0.0067851993472706276234 3.3945100118236060105 +76.62172575937908903 55.11451498626085055 120.69543184874230235 +4 0.000120026935827952456416 0.010044949983771724966 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -4.4579240279134950613 4.300011122687349501 -0.00022055769049333364448 -4 1.2739802010675941456e-05 0.0072466797341124641736 +1.000022414803547921 0.016679693167334301573 0.002750719340522077977 +175.59912721852418827 287.3487256951211748 232.20474506920808722 +5 1.2739802010675941808e-05 0.0072465915674003790445 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.98751874613118001086 -4.5371239937302254657 -0.07086074102213555221 -5 0.037692251088985676735 0.35527079166215922855 +1.5237056817307590428 0.09335454089002033495 1.8479086301002540793 +49.490790672135332784 286.7030449733272235 203.56009534652309867 +6 0.03769225108898567778 0.3552713110772063853 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -1.5225069137843642898 2.4087104911325327961 -0.044067446366273183833 -6 0.011285899820091272997 0.43765832419088212185 +5.203524963998765074 0.048518619089771883313 1.3035691332389880426 +100.516740776557597314 273.38311024861741316 317.57998688455870706 +7 0.01128589982009127331 0.4376635990332856823 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -1.4493167787574136286 1.3075474785896286071 -0.08039429377859412155 -7 0.0017236589478267730203 0.46960112247450473807 +9.581861578191695372 0.05220296447788015659 2.4862598063103709123 +113.59526938704850352 335.69019804854252698 225.44748806008931297 +8 0.001723658947826773068 0.46966224198242572768 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.9605086875596024784 1.0118431725941020164 0.016148779866732710198 -8 0.0020336100526728302319 0.78136567314580814177 +19.23638216159032055 0.04433184777155944195 0.7703424893861580136 +74.09557761028084144 95.84993853316392176 235.82773290830229485 +9 0.0020336100526728302882 0.7814394516095526881 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.16867624969736024011 1.1427992197933557251 -0.027387722828706092838 +30.289653279202511271 0.013458737599393380546 1.769000156955224945 +131.74519418988560915 245.79890439350270981 334.51418242279709148 From be5e5d26f2960102dc235c1c8133ed3aff12df13 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 12:12:43 -0400 Subject: [PATCH 226/315] Enabled non-unique character coordinate name to bodies. Tested in REAL8 mode, but does not yet work in NetCDF --- python/swiftest/swiftest/io.py | 36 ++++++++++--- src/io/io.f90 | 8 +-- src/modules/swiftest_classes.f90 | 53 ++++++++++--------- src/modules/swiftest_globals.f90 | 2 + src/netcdf/netcdf.f90 | 90 +++++++++++++++++--------------- 5 files changed, 112 insertions(+), 77 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index a8c2daf08..35d22f5b3 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -468,6 +468,7 @@ def swiftest_stream(f, param): tlab : string list Labels for the tvec data """ + NAMELEN = 32 while True: # Loop until you read the end of file try: # Read multi-line header @@ -478,6 +479,9 @@ def swiftest_stream(f, param): ntp = f.read_ints() iout_form = f.read_reals('c') cbid = f.read_ints() + dtstr = f'a{NAMELEN}' + cbnames = f.read_record(dtstr) + cbnames = [np.char.strip(str(cbnames[0], encoding='utf-8'))] Mcb = f.read_reals(np.float64) Rcb = f.read_reals(np.float64) J2cb = f.read_reals(np.float64) @@ -494,6 +498,11 @@ def swiftest_stream(f, param): Qcb = f.read_reals(np.float64) if npl[0] > 0: plid = f.read_ints() + dtstr = f'({npl[0]},)a{NAMELEN}' + names = f.read_record(np.dtype(dtstr)) + plnames = [] + for i in range(npl[0]): + plnames.append(np.char.strip(str(names[i], encoding='utf-8'))) p1 = f.read_reals(np.float64) p2 = f.read_reals(np.float64) p3 = f.read_reals(np.float64) @@ -523,6 +532,11 @@ def swiftest_stream(f, param): Qpl = f.read_reals(np.float64) if ntp[0] > 0: tpid = f.read_ints() + dtstr = f'({ntp[0]},)a{NAMELEN}' + names = f.read_record(np.dtype(dtstr)) + tpnames = [] + for i in range(npl[0]): + tpnames.append(np.char.strip(str(names[i], encoding='utf-8'))) t1 = f.read_reals(np.float64) t2 = f.read_reals(np.float64) t3 = f.read_reals(np.float64) @@ -550,6 +564,7 @@ def swiftest_stream(f, param): else: pvec = np.empty((8, 0)) plid = np.empty(0) + plnames = np.empty(0) if ntp > 0: tvec = np.vstack([t1, t2, t3, t4, t5, t6]) if param['OUT_FORM'] == 'XVEL': @@ -560,6 +575,7 @@ def swiftest_stream(f, param): else: tvec = np.empty((6, 0)) tpid = np.empty(0) + tpnames = np.empty(0) cvec = np.array([Mcb, Rcb, J2cb, J4cb]) if param['RHILL_PRESENT'] == 'YES': if npl > 0: @@ -572,9 +588,9 @@ def swiftest_stream(f, param): cvec = np.vstack([cvec, k2cb, Qcb]) if npl > 0: pvec = np.vstack([pvec, k2pl, Qpl]) - yield t, cbid, cvec.T, clab, \ - npl, plid, pvec.T, plab, \ - ntp, tpid, tvec.T, tlab + yield t, cbid, cbnames, cvec.T, clab, \ + npl, plid, plnames, pvec.T, plab, \ + ntp, tpid, tpnames, tvec.T, tlab def swifter2xr(param): @@ -638,24 +654,30 @@ def swiftest2xr(param): cb = [] pl = [] tp = [] + cbn = None try: with FortranFile(param['BIN_OUT'], 'r') as f: - for t, cbid, cvec, clab, \ - npl, plid, pvec, plab, \ - ntp, tpid, tvec, tlab in swiftest_stream(f, param): + for t, cbid, cbnames, cvec, clab, \ + npl, plid, plnames, pvec, plab, \ + ntp, tpid, tpnames, tvec, tlab in swiftest_stream(f, param): # Prepare frames by adding an extra axis for the time coordinate cbframe = np.expand_dims(cvec, axis=0) plframe = np.expand_dims(pvec, axis=0) tpframe = np.expand_dims(tvec, axis=0) + # Create xarray DataArrays out of each body type cbxr = xr.DataArray(cbframe, dims=dims, coords={'time': t, 'id': cbid, 'vec': clab}) + cbxr = cbxr.assign_coords(name=("id", cbnames)) plxr = xr.DataArray(plframe, dims=dims, coords={'time': t, 'id': plid, 'vec': plab}) + plxr = plxr.assign_coords(name=("id", plnames)) tpxr = xr.DataArray(tpframe, dims=dims, coords={'time': t, 'id': tpid, 'vec': tlab}) - + tpxr = tpxr.assign_coords(name=("id", tpnames)) + cb.append(cbxr) pl.append(plxr) tp.append(tpxr) + sys.stdout.write('\r' + f"Reading in time {t[0]:.3e}") sys.stdout.flush() except IOError: diff --git a/src/io/io.f90 b/src/io/io.f90 index c4c9b8b81..b30718c83 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1036,7 +1036,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) select case(param%in_type) case (REAL4_TYPE, REAL8_TYPE) read(iu, err = 667, iomsg = errmsg) self%id(:) - !read(iu, err = 667, iomsg = errmsg) self%name(:) + read(iu, err = 667, iomsg = errmsg) self%name(:) select case (param%in_form) case (XV) @@ -1158,7 +1158,7 @@ module function io_read_frame_cb(self, iu, param) result(ierr) character(len=STRMAX) :: errmsg read(iu, err = 667, iomsg = errmsg) self%id - !read(iu, err = 667, iomsg = errmsg) self%name + read(iu, err = 667, iomsg = errmsg) self%name read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius @@ -1473,6 +1473,7 @@ module subroutine io_write_encounter(self, pl, encbody, param) call util_exit(FAILURE) end subroutine io_write_encounter + module subroutine io_write_frame_body(self, iu, param) !! author: David A. Minton !! @@ -1492,6 +1493,7 @@ module subroutine io_write_frame_body(self, iu, param) associate(n => self%nbody) if (n == 0) return write(iu, err = 667, iomsg = errmsg) self%id(1:n) + write(iu, err = 667, iomsg = errmsg) self%name(1:n) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) @@ -1551,8 +1553,8 @@ module subroutine io_write_frame_cb(self, iu, param) character(len=STRMAX) :: errmsg associate(cb => self) - !write(iu, err = 667, iomsg = errmsg) cb%name write(iu, err = 667, iomsg = errmsg) cb%id + write(iu, err = 667, iomsg = errmsg) cb%name write(iu, err = 667, iomsg = errmsg) cb%Gmass write(iu, err = 667, iomsg = errmsg) cb%radius write(iu, err = 667, iomsg = errmsg) cb%j2rp2 diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 7703dd534..06435cbe7 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -86,10 +86,11 @@ module swiftest_classes type :: netcdf_parameters integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) integer(I4B) :: ncid !! NetCDF ID for the output file - integer(I4B) :: dimids(2) !! Dimensions of the NetCDF file + integer(I4B) :: dimids(3) !! Dimensions of the NetCDF file integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: id_dimid !! NetCDF ID for the particle id dimension + integer(I4B) :: str_dimid !! NetCDF ID for the character string dimension integer(I4B) :: time_varid !! NetCDF ID for the time variable - integer(I4B) :: id_dimid !! NetCDF ID for the particle name dimension integer(I4B) :: id_varid !! NetCDF ID for the particle name variable integer(I4B) :: name_varid !! NetCDF ID for the semimajor axis variable integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable @@ -156,7 +157,7 @@ module swiftest_classes !******************************************************************************************************************************** !> A concrete lass for the central body in a Swiftest simulation type, abstract, extends(swiftest_base) :: swiftest_cb - character(len=STRMAX) :: name !! Non-unique name + character(len=NAMELEN) :: name !! Non-unique name integer(I4B) :: id = 0 !! External identifier (unique) real(DP) :: mass = 0.0_DP !! Central body mass (units MU) real(DP) :: Gmass = 0.0_DP !! Central mass gravitational term G * mass (units GU * MU) @@ -193,29 +194,29 @@ module swiftest_classes !> An abstract class for a generic collection of Swiftest bodies type, abstract, extends(swiftest_base) :: swiftest_body !! Superclass that defines the generic elements of a Swiftest particle - logical :: lfirst = .true. !! Run the current step as a first - integer(I4B) :: nbody = 0 !! Number of bodies - character(len=STRMAX), dimension(:), allocatable :: name !! Non-unique name - integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) - integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator - logical, dimension(:), allocatable :: ldiscard !! Body should be discarded - logical, dimension(:), allocatable :: lmask !! Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) - real(DP), dimension(:), allocatable :: mu !! G * (Mcb + [m]) - real(DP), dimension(:,:), allocatable :: xh !! Swiftestcentric position - real(DP), dimension(:,:), allocatable :: vh !! Swiftestcentric velocity - real(DP), dimension(:,:), allocatable :: xb !! Barycentric position - real(DP), dimension(:,:), allocatable :: vb !! Barycentric velocity - real(DP), dimension(:,:), allocatable :: ah !! Total heliocentric acceleration - real(DP), dimension(:,:), allocatable :: aobl !! Barycentric accelerations of bodies due to central body oblatenes - real(DP), dimension(:,:), allocatable :: atide !! Tanngential component of acceleration of bodies due to tides - real(DP), dimension(:,:), allocatable :: agr !! Acceleration due to post-Newtonian correction - real(DP), dimension(:), allocatable :: ir3h !! Inverse heliocentric radius term (1/rh**3) - real(DP), dimension(:), allocatable :: a !! Semimajor axis (pericentric distance for a parabolic orbit) - real(DP), dimension(:), allocatable :: e !! Eccentricity - real(DP), dimension(:), allocatable :: inc !! Inclination - real(DP), dimension(:), allocatable :: capom !! Longitude of ascending node - real(DP), dimension(:), allocatable :: omega !! Argument of pericenter - real(DP), dimension(:), allocatable :: capm !! Mean anomaly + logical :: lfirst = .true. !! Run the current step as a first + integer(I4B) :: nbody = 0 !! Number of bodies + character(len=NAMELEN), dimension(:), allocatable :: name !! Non-unique name + integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) + integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator + logical, dimension(:), allocatable :: ldiscard !! Body should be discarded + logical, dimension(:), allocatable :: lmask !! Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) + real(DP), dimension(:), allocatable :: mu !! G * (Mcb + [m]) + real(DP), dimension(:,:), allocatable :: xh !! Swiftestcentric position + real(DP), dimension(:,:), allocatable :: vh !! Swiftestcentric velocity + real(DP), dimension(:,:), allocatable :: xb !! Barycentric position + real(DP), dimension(:,:), allocatable :: vb !! Barycentric velocity + real(DP), dimension(:,:), allocatable :: ah !! Total heliocentric acceleration + real(DP), dimension(:,:), allocatable :: aobl !! Barycentric accelerations of bodies due to central body oblatenes + real(DP), dimension(:,:), allocatable :: atide !! Tanngential component of acceleration of bodies due to tides + real(DP), dimension(:,:), allocatable :: agr !! Acceleration due to post-Newtonian correction + real(DP), dimension(:), allocatable :: ir3h !! Inverse heliocentric radius term (1/rh**3) + real(DP), dimension(:), allocatable :: a !! Semimajor axis (pericentric distance for a parabolic orbit) + real(DP), dimension(:), allocatable :: e !! Eccentricity + real(DP), dimension(:), allocatable :: inc !! Inclination + real(DP), dimension(:), allocatable :: capom !! Longitude of ascending node + real(DP), dimension(:), allocatable :: omega !! Argument of pericenter + real(DP), dimension(:), allocatable :: capm !! Mean anomaly !! Note to developers: If you add components to this class, be sure to update methods and subroutines that traverse the !! component list, such as setup_body and util_spill contains diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index cf0c7248a..3df99a8d1 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -43,6 +43,7 @@ module swiftest_globals integer(I4B), parameter :: RINGMOONS = 9 integer(I4B), parameter :: STRMAX = 512 !! Maximum size of character strings + integer(I4B), parameter :: NAMELEN = 32 !! Maximum size of name strings character(*), parameter :: ASCII_TYPE = 'ASCII' !! Symbolic name for ASCII file type character(*), parameter :: REAL4_TYPE = 'REAL4' !! Symbolic name for binary file type REAL4 @@ -130,6 +131,7 @@ module swiftest_globals character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' !! Default output file name character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension character(*), parameter :: ID_DIMNAME = "id" !! NetCDF name of the particle id dimension + character(*), parameter :: STR_DIMNAME = "str" !! NetCDF name of the particle id dimension character(*), parameter :: NAME_VARNAME = "name" !! NetCDF name of the particle name variable character(*), parameter :: NPL_VARNAME = "npl" !! NetCDF name of the number of active massive bodies variable character(*), parameter :: NTP_VARNAME = "ntp" !! NetCDF name of the number of active test particles variable diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 2a3e09709..8234ad4c2 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -53,7 +53,8 @@ module subroutine netcdf_initialize_output(self, param) ! Define the NetCDF dimensions with particle name as the record dimension call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension call check( nf90_def_dim(self%ncid, TIME_DIMNAME, NF90_UNLIMITED, self%time_dimid) ) ! 'y' dimension - self%dimids = [self%time_dimid, self%id_dimid ] + call check( nf90_def_dim(self%ncid, STR_DIMNAME, NAMELEN, self%str_dimid) ) ! Dimension for string variables (aka character arrays) + self%dimids = [self%time_dimid, self%id_dimid, self%str_dimid] select case (param%out_type) case(NETCDF_FLOAT_TYPE) @@ -67,6 +68,7 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%id_dimid, self%id_varid) ) call check( nf90_def_var(self%ncid, NPL_VARNAME, NF90_INT, self%time_dimid, self%npl_varid) ) call check( nf90_def_var(self%ncid, NTP_VARNAME, NF90_INT, self%time_dimid, self%ntp_varid) ) + call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, [self%id_dimid, self%str_dimid], self%name_varid) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) @@ -142,6 +144,7 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, ID_DIMNAME, self%id_varid)) call check( nf90_inq_varid(self%ncid, NPL_VARNAME, self%npl_varid)) call check( nf90_inq_varid(self%ncid, NTP_VARNAME, self%ntp_varid)) + call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) !call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then @@ -161,10 +164,10 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, CAPM_VARNAME, self%capm_varid)) end if call check( nf90_inq_varid(self%ncid, GMASS_VARNAME, self%Gmass_varid)) + if (param%lclose) call check( nf90_inq_varid(self%ncid, RADIUS_VARNAME, self%radius_varid)) if (param%lrhill_present) call check( nf90_inq_varid(self%ncid, RHILL_VARNAME, self%rhill_varid)) if (param%lrotation) then - call check( nf90_inq_varid(self%ncid, RADIUS_VARNAME, self%radius_varid)) call check( nf90_inq_varid(self%ncid, IP1_VARNAME, self%Ip1_varid)) call check( nf90_inq_varid(self%ncid, IP2_VARNAME, self%Ip2_varid)) call check( nf90_inq_varid(self%ncid, IP3_VARNAME, self%Ip3_varid)) @@ -211,8 +214,9 @@ module subroutine netcdf_write_frame_base(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: i, j, id, tslot + integer(I4B) :: i, j, id, tslot, strlen, idslot integer(I4B), dimension(:), allocatable :: ind + character(len=:), allocatable :: name !! Open the netCDF file @@ -227,66 +231,70 @@ module subroutine netcdf_write_frame_base(self, iu, param) do i = 1, n j = ind(i) - id = self%id(j) - - call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) - !call check( nf90_put_var(iu%ncid, iu%name_varid, trim(adjustl(self%name(j))), start=[tslot, id]) ) + idslot = self%id(j) + 1 + call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[idslot]) ) + name = trim(adjustl(self%name(j))) + strlen = len(name) + call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[id, 1], count=[1, strlen]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[tslot, idslot]) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then - call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[tslot, idslot]) ) end if select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[tslot, idslot]) ) if (param%lrhill_present) then - call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[tslot, idslot]) ) end if if (param%lclose) then - call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[tslot, idslot]) ) end if if (param%lrotation) then - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[tslot, idslot]) ) end if if (param%ltides) then - call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[tslot, idslot]) ) end if end select end do end associate class is (swiftest_cb) id = self%id - call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[id]) ) - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[idslot]) ) + name = trim(adjustl(self%name)) + strlen = len(name) + call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[id, 1], count=[1, strlen]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[tslot, idslot]) ) if (param%lrotation) then - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[tslot, idslot]) ) end if if (param%ltides) then - call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[tslot, id]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[tslot, id]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[tslot, idslot]) ) end if end select From 0ad89598756110e7a1c4e9a74bde766593098b4c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 12:49:43 -0400 Subject: [PATCH 227/315] Fixed issues of indexing in the NetCDF code, and started process of cleaning up the strings from NetCDF reads --- examples/symba_mars_disk/testnetcdf.ipynb | 1509 ++++++++++++++++++++- examples/whm_gr_test/Untitled.ipynb | 516 +++++++ examples/whm_gr_test/cb.swiftest.in | 2 +- examples/whm_gr_test/init_cond.py | 10 +- examples/whm_gr_test/param.swifter.in | 6 +- examples/whm_gr_test/param.swiftest.in | 6 +- examples/whm_gr_test/pl.swifter.in | 16 +- examples/whm_gr_test/pl.swiftest.in | 16 +- python/swiftest/swiftest/init_cond.py | 6 +- python/swiftest/swiftest/io.py | 10 +- src/io/io.f90 | 10 +- src/netcdf/netcdf.f90 | 10 +- 12 files changed, 2073 insertions(+), 44 deletions(-) create mode 100644 examples/whm_gr_test/Untitled.ipynb diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 8c61f51a0..d98408178 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -4,14 +4,28 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/daminton/git/swiftest/examples/symba_mars_disk'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "import swiftest" + "import swiftest\n", + "import os\n", + "import xarray as xr\n", + "os.getcwd()" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -30,7 +44,1494 @@ ], "source": [ "sim = swiftest.Simulation(param_file=\"param.in\")\n", - "sim.bin2xr()" + "sim.bin2xr()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:      (id: 1521, time: 11)\n",
    +       "Coordinates:\n",
    +       "  * id           (id) int64 1 2 3 4 5 6 7 ... 1515 1516 1517 1518 1519 1520 1521\n",
    +       "  * time         (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    +       "Data variables: (12/46)\n",
    +       "    npl          (time) int32 1500 1500 1500 1500 1500 ... 1518 1518 1518 1518\n",
    +       "    ntp          (time) int32 0 0 0 0 0 0 0 0 0 0 0\n",
    +       "    xhx          (id, time) float64 0.0 0.0 0.0 ... 1.587e+06 2.838e+06\n",
    +       "    xhy          (id, time) float64 0.0 0.0 0.0 ... -9.103e+06 -8.791e+06\n",
    +       "    xhz          (id, time) float64 0.0 0.0 0.0 ... -3.433e+04 -3.905e+04\n",
    +       "    vhx          (id, time) float64 0.0 0.0 0.0 ... 2.118e+03 2.045e+03\n",
    +       "    ...           ...\n",
    +       "    py_origin    (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n",
    +       "    pz_origin    (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n",
    +       "    vhx_origin   (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n",
    +       "    vhy_origin   (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n",
    +       "    vhz_origin   (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n",
    +       "    origin_type  (id) <U32 'Central body' ... 'Supercatastrophic'
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 1521, time: 11)\n", + "Coordinates:\n", + " * id (id) int64 1 2 3 4 5 6 7 ... 1515 1516 1517 1518 1519 1520 1521\n", + " * time (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n", + "Data variables: (12/46)\n", + " npl (time) int32 ...\n", + " ntp (time) int32 ...\n", + " xhx (id, time) float64 ...\n", + " xhy (id, time) float64 ...\n", + " xhz (id, time) float64 ...\n", + " vhx (id, time) float64 ...\n", + " ... ...\n", + " py_origin (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n", + " pz_origin (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n", + " vhx_origin (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n", + " vhy_origin (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n", + " vhz_origin (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n", + " origin_type (id) \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:      (id: 1521)\n",
    +       "Coordinates:\n",
    +       "  * id           (id) int32 1 1130 216 1326 20 27 ... 1517 1518 1519 1520 1521\n",
    +       "Data variables:\n",
    +       "    time_origin  (id) float64 0.0 0.0 0.0 0.0 ... 2.4e+03 2.4e+03 2.4e+03\n",
    +       "    xhx_origin   (id) float64 0.0 1.047e+07 -1.034e+07 ... -4.435e+06 -4.426e+06\n",
    +       "    py_origin    (id) float64 0.0 3.395e+06 2.852e+05 ... -8.094e+06 -8.123e+06\n",
    +       "    pz_origin    (id) float64 0.0 2.709e+04 -3.221e+04 ... 2.923e+03 -3.139e+03\n",
    +       "    vhx_origin   (id) float64 0.0 -597.1 -50.0 ... 1.885e+03 1.881e+03 1.887e+03\n",
    +       "    vhy_origin   (id) float64 0.0 1.881e+03 -2.018e+03 ... -1.004e+03 -1.027e+03\n",
    +       "    vhz_origin   (id) float64 0.0 -6.96 11.61 3.592 ... 18.95 -9.448 -12.51\n",
    +       "    origin_type  (id) <U32 'Central body' ... 'Supercatastrophic'
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 1521)\n", + "Coordinates:\n", + " * id (id) int32 1 1130 216 1326 20 27 ... 1517 1518 1519 1520 1521\n", + "Data variables:\n", + " time_origin (id) float64 0.0 0.0 0.0 0.0 ... 2.4e+03 2.4e+03 2.4e+03\n", + " xhx_origin (id) float64 0.0 1.047e+07 -1.034e+07 ... -4.435e+06 -4.426e+06\n", + " py_origin (id) float64 0.0 3.395e+06 2.852e+05 ... -8.094e+06 -8.123e+06\n", + " pz_origin (id) float64 0.0 2.709e+04 -3.221e+04 ... 2.923e+03 -3.139e+03\n", + " vhx_origin (id) float64 0.0 -597.1 -50.0 ... 1.885e+03 1.881e+03 1.887e+03\n", + " vhy_origin (id) float64 0.0 1.881e+03 -2.018e+03 ... -1.004e+03 -1.027e+03\n", + " vhz_origin (id) float64 0.0 -6.96 11.61 3.592 ... 18.95 -9.448 -12.51\n", + " origin_type (id) 0, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "216", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 216", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnewp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m216\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/dataset.py\u001b[0m in \u001b[0;36msel\u001b[0;34m(self, indexers, method, tolerance, drop, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 2347\u001b[0m \u001b[0mindexers\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0meither_dict_or_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexers_kwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"sel\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2348\u001b[0m pos_indexers, new_indexes = remap_label_indexers(\n\u001b[0;32m-> 2349\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2350\u001b[0m )\n\u001b[1;32m 2351\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpos_indexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdrop\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdrop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/coordinates.py\u001b[0m in \u001b[0;36mremap_label_indexers\u001b[0;34m(obj, indexers, method, tolerance, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 418\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 419\u001b[0m pos_indexers, new_indexes = indexing.remap_label_indexers(\n\u001b[0;32m--> 420\u001b[0;31m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_indexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 421\u001b[0m )\n\u001b[1;32m 422\u001b[0m \u001b[0;31m# attach indexer's coordinate to pos_indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mremap_label_indexers\u001b[0;34m(data_obj, indexers, method, tolerance)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[0mcoords_dtype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[0mlabel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmaybe_cast_to_coords_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords_dtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 278\u001b[0;31m \u001b[0midxr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_idx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconvert_label_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 279\u001b[0m \u001b[0mpos_indexers\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midxr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnew_idx\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mconvert_label_indexer\u001b[0;34m(index, label, index_name, method, tolerance)\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 200\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"b\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 201\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 216" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:      ()\n",
    +       "Coordinates:\n",
    +       "    id           int32 216\n",
    +       "Data variables:\n",
    +       "    time_origin  float64 0.0\n",
    +       "    xhx_origin   float64 -1.034e+07\n",
    +       "    py_origin    float64 2.852e+05\n",
    +       "    pz_origin    float64 -3.221e+04\n",
    +       "    vhx_origin   float64 -50.0\n",
    +       "    vhy_origin   float64 -2.018e+03\n",
    +       "    vhz_origin   float64 11.61\n",
    +       "    origin_type  <U32 'Initial conditions'
    " + ], + "text/plain": [ + "\n", + "Dimensions: ()\n", + "Coordinates:\n", + " id int32 216\n", + "Data variables:\n", + " time_origin float64 0.0\n", + " xhx_origin float64 -1.034e+07\n", + " py_origin float64 2.852e+05\n", + " pz_origin float64 -3.221e+04\n", + " vhx_origin float64 -50.0\n", + " vhy_origin float64 -2.018e+03\n", + " vhz_origin float64 11.61\n", + " origin_type \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'name' (str: 32)>\n",
    +       "array([b'M', b'e', b'r', b'c', b'u', b'r', b'y', b'', b'', b'', b'', b'', b'',\n",
    +       "       b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'',\n",
    +       "       b'', b'', b'', b'', b''], dtype='|S1')\n",
    +       "Coordinates:\n",
    +       "    id       int32 1\n",
    +       "Dimensions without coordinates: str
    " + ], + "text/plain": [ + "\n", + "array([b'M', b'e', b'r', b'c', b'u', b'r', b'y', b'', b'', b'', b'', b'', b'',\n", + " b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'',\n", + " b'', b'', b'', b'', b''], dtype='|S1')\n", + "Coordinates:\n", + " id int32 1\n", + "Dimensions without coordinates: str" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.ds.sel(id=1)['name']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ds = sim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "can't assign to function call (, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m ds['name'].sel(id=i) = 'test'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m can't assign to function call\n" + ] + } + ], + "source": [ + "for i in ds.id:\n", + " ds['name'].sel(id=i) = 'test'" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array('SMVEMJSUNueeaauarenrnrrptap\\x00cutsiunt\\x00ush\\x00truu\\x00r\\x00\\x00\\x00ensn\\x00y\\x00\\x00\\x00r\\x00\\x00e',\n", + " dtype=' Date: Fri, 27 Aug 2021 14:33:01 -0400 Subject: [PATCH 228/315] Fixed array order problems for dimension id arrays in the NetCDF file --- python/swiftest/swiftest/io.py | 18 +++++ src/netcdf/netcdf.f90 | 123 ++++++++++++++++----------------- 2 files changed, 78 insertions(+), 63 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 8ee84a902..85d99d4f6 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -710,6 +710,24 @@ def swiftest2xr(param): return ds +def clean_string_values(param, ds): + """ + Cleans up the string values in the DataSet that have artifacts as a result of coming from NetCDF Fortran + + Parameters + ---------- + param : dict + ds : xarray dataset + + Returns + ------- + dscleanstring : xarray dataset with the strings cleaned up + """ + + dscleanstring = ds + return dscleanstring + + def swiftest_particle_stream(f): """ Reads in a Swiftest particle.dat file and returns a single frame of particle data as a datastream diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 0cd91ac50..2abcbead1 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -54,7 +54,6 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_dim(self%ncid, ID_DIMNAME, NF90_UNLIMITED, self%id_dimid) ) ! 'x' dimension call check( nf90_def_dim(self%ncid, TIME_DIMNAME, NF90_UNLIMITED, self%time_dimid) ) ! 'y' dimension call check( nf90_def_dim(self%ncid, STR_DIMNAME, NAMELEN, self%str_dimid) ) ! Dimension for string variables (aka character arrays) - self%dimids = [self%time_dimid, self%id_dimid, self%str_dimid] select case (param%out_type) case(NETCDF_FLOAT_TYPE) @@ -68,39 +67,39 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, ID_DIMNAME, NF90_INT, self%id_dimid, self%id_varid) ) call check( nf90_def_var(self%ncid, NPL_VARNAME, NF90_INT, self%time_dimid, self%npl_varid) ) call check( nf90_def_var(self%ncid, NTP_VARNAME, NF90_INT, self%time_dimid, self%ntp_varid) ) - call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, [self%id_dimid, self%str_dimid], self%name_varid) ) + call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%name_varid) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, self%dimids, self%xhx_varid) ) - call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, self%dimids, self%xhy_varid) ) - call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, self%dimids, self%xhz_varid) ) - call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, self%dimids, self%vhx_varid) ) - call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, self%dimids, self%vhy_varid) ) - call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, self%dimids, self%vhz_varid) ) + call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhx_varid) ) + call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhy_varid) ) + call check( nf90_def_var(self%ncid, XHZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhz_varid) ) + call check( nf90_def_var(self%ncid, VHX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhx_varid) ) + call check( nf90_def_var(self%ncid, VHY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhy_varid) ) + call check( nf90_def_var(self%ncid, VHZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%vhz_varid) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then - call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, self%dimids, self%a_varid) ) - call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, self%dimids, self%e_varid) ) - call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, self%dimids, self%inc_varid) ) - call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, self%dimids, self%capom_varid) ) - call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, self%dimids, self%omega_varid) ) - call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, self%dimids, self%capm_varid) ) + call check( nf90_def_var(self%ncid, A_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%a_varid) ) + call check( nf90_def_var(self%ncid, E_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%e_varid) ) + call check( nf90_def_var(self%ncid, INC_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%inc_varid) ) + call check( nf90_def_var(self%ncid, CAPOM_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%capom_varid) ) + call check( nf90_def_var(self%ncid, OMEGA_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%omega_varid) ) + call check( nf90_def_var(self%ncid, CAPM_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%capm_varid) ) end if - call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, self%dimids, self%Gmass_varid) ) - if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, self%dimids, self%rhill_varid) ) - if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, self%dimids, self%radius_varid) ) + call check( nf90_def_var(self%ncid, GMASS_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Gmass_varid) ) + if (param%lrhill_present) call check( nf90_def_var(self%ncid, RHILL_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rhill_varid) ) + if (param%lclose) call check( nf90_def_var(self%ncid, RADIUS_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%radius_varid) ) if (param%lrotation) then - call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, self%dimids, self%Ip1_varid) ) - call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, self%dimids, self%Ip2_varid) ) - call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, self%dimids, self%Ip3_varid) ) - call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, self%dimids, self%rotx_varid) ) - call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, self%dimids, self%roty_varid) ) - call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, self%dimids, self%rotz_varid) ) + call check( nf90_def_var(self%ncid, IP1_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip1_varid) ) + call check( nf90_def_var(self%ncid, IP2_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip2_varid) ) + call check( nf90_def_var(self%ncid, IP3_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Ip3_varid) ) + call check( nf90_def_var(self%ncid, ROTX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rotx_varid) ) + call check( nf90_def_var(self%ncid, ROTY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%roty_varid) ) + call check( nf90_def_var(self%ncid, ROTZ_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%rotz_varid) ) end if if (param%ltides) then - call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, self%dimids, self%k2_varid) ) - call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, self%dimids, self%Q_varid) ) + call check( nf90_def_var(self%ncid, K2_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%k2_varid) ) + call check( nf90_def_var(self%ncid, Q_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%Q_varid) ) end if if (param%lenergy) then call check( nf90_def_var(self%ncid, KE_ORB_VARNAME, self%out_type, self%time_dimid, self%KE_orb_varid) ) @@ -146,7 +145,6 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, NTP_VARNAME, self%ntp_varid)) call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) - !call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(self%ncid, XHX_VARNAME, self%xhx_varid)) call check( nf90_inq_varid(self%ncid, XHY_VARNAME, self%xhy_varid)) @@ -235,66 +233,66 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) name = trim(adjustl(self%name(j))) strlen = len(name) - call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[idslot, 1], count=[1, strlen]) ) + call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then - call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%xhz_varid, self%xh(3, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhx_varid, self%vh(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[idslot, tslot]) ) end if if ((param%out_form == EL) .or. (param%out_form == XVEL)) then - call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[idslot, tslot]) ) end if select type(pl => self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[idslot, tslot]) ) if (param%lrhill_present) then - call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[idslot, tslot]) ) end if if (param%lclose) then - call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[idslot, tslot]) ) end if if (param%lrotation) then - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[idslot, tslot]) ) end if if (param%ltides) then - call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[idslot, tslot]) ) end if end select end do end associate class is (swiftest_cb) idslot = self%id + 1 - call check( nf90_put_var(iu%ncid, iu%id_varid, id, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) name = trim(adjustl(self%name)) strlen = len(name) - call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[idslot, 1], count=[1, strlen]) ) - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[idslot, tslot]) ) if (param%lrotation) then - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3), start=[idslot, tslot]) ) end if if (param%ltides) then - call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[tslot, idslot]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[tslot, idslot]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[idslot, tslot]) ) end if end select @@ -346,5 +344,4 @@ module subroutine netcdf_write_hdr_system(self, iu, param) end subroutine netcdf_write_hdr_system - end submodule s_netcdf \ No newline at end of file From defb93ee2af65d2bf1d134279fffa014b3da9af6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 14:38:09 -0400 Subject: [PATCH 229/315] Completed clean_string_values function. --- python/swiftest/swiftest/io.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 85d99d4f6..1eb8df95e 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -721,11 +721,10 @@ def clean_string_values(param, ds): Returns ------- - dscleanstring : xarray dataset with the strings cleaned up + ds : xarray dataset with the strings cleaned up """ - - dscleanstring = ds - return dscleanstring + ds['name'] = ds['name'].str.decode(encoding='utf-8') + return ds def swiftest_particle_stream(f): From 0fb9a2cc4501aacf6d8ba06bf236d0aff06ce2a2 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 14:43:41 -0400 Subject: [PATCH 230/315] Auto stash before merge of "IO" and "origin/IO" --- python/swiftest/swiftest/init_cond.py | 8 ++++---- python/swiftest/swiftest/simulation_class.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index b98680f62..ca959f3f9 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -118,7 +118,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): rotcb = solarpole.cartesian * solarrot Ipsun = np.array([0.0, 0.0, planetIpz['Sun']]) - cbid = np.array([1]) + cbid = np.array([0]) cvec = np.vstack([GMcb, Rcb, J2RP2, J4RP4]) if param['ROTATION'] == 'YES': cvec = np.vstack([cvec, Ipsun[0], Ipsun[1], Ipsun[2], rotcb.x, rotcb.y, rotcb.z]) @@ -264,9 +264,9 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): plab = tlab.copy() if idval is None: - plid = np.array([planetid[key]], dtype=int) + 1 + plid = np.array([planetid[key]], dtype=int) else: - plid = np.array([idval]+1, dtype=int) + plid = np.array([idval], dtype=int) # Prepare frames by adding an extra axis for the time coordinate plframe = np.expand_dims(pvec.T, axis=0) @@ -277,7 +277,7 @@ def solar_system_horizons(plname, idval, param, ephemerides_start_date, ds): return ds -def vec2xr(param, names, idvals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, rhill=None, Ip1=None, Ip2=None, Ip3=None, rotx=None, roty=None, rotz=None, t=0.0): +def vec2xr(param, idvals, namevals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, rhill=None, Ip1=None, Ip2=None, Ip3=None, rotx=None, roty=None, rotz=None, t=0.0): if param['ROTATION'] == 'YES': if Ip1 is None: diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index f3047fa71..3a3834434 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -74,7 +74,7 @@ def add(self, plname, date=date.today().isoformat(), idval=None): return - def addp(self, idvals, t1, t2, t3, t4, t5, t6, GMpl=None, Rpl=None, rhill=None, Ip1=None, Ip2=None, Ip3=None, rotx=None, roty=None, rotz=None): + def addp(self, idvals, namevals, t1, t2, t3, t4, t5, t6, GMpl=None, Rpl=None, rhill=None, Ip1=None, Ip2=None, Ip3=None, rotx=None, roty=None, rotz=None): """ Adds a body (test particle or massive body) to the internal DataSet given a set up 6 vectors (orbital elements or cartesian state vectors, depending on the value of self.param). Input all angles in degress @@ -99,7 +99,7 @@ def addp(self, idvals, t1, t2, t3, t4, t5, t6, GMpl=None, Rpl=None, rhill=None, """ t = self.param['T0'] - dsnew = init_cond.vec2xr(self.param, idvals, t1, t2, t3, t4, t5, t6, GMpl, Rpl, rhill, Ip1, Ip2, Ip3, rotx, roty, rotz, t) + dsnew = init_cond.vec2xr(self.param, idvals, namevales, t1, t2, t3, t4, t5, t6, GMpl, Rpl, rhill, Ip1, Ip2, Ip3, rotx, roty, rotz, t) if dsnew is not None: self.ds = xr.combine_by_coords([self.ds, dsnew]) return From a56ea8108143b2e6368baac47b6444bd8135f364 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 14:44:22 -0400 Subject: [PATCH 231/315] Refactored argument name of name list as namevals for consistency --- python/swiftest/swiftest/init_cond.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index ca959f3f9..e0d3b749d 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -320,7 +320,7 @@ def vec2xr(param, idvals, namevals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, else: bodyxr = xr.DataArray(bodyframe, dims=dims, coords={'time': [t], 'id': idvals, 'vec': tlab}) - bodyxr = bodyxr.assign_coords(name=('id', names)) + bodyxr = bodyxr.assign_coords(name=('id', namevals)) ds = bodyxr.to_dataset(dim='vec') return ds \ No newline at end of file From 9af4c72fe9d67b37398e4fd475efe1dfe9cc2a35 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 14:46:35 -0400 Subject: [PATCH 232/315] Fixed indexing of central body --- examples/whm_gr_test/pl.swifter.in | 18 +++++++++--------- examples/whm_gr_test/pl.swiftest.in | 16 ++++++++-------- python/swiftest/swiftest/io.py | 8 ++++---- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/examples/whm_gr_test/pl.swifter.in b/examples/whm_gr_test/pl.swifter.in index e88c0fcf3..a27e62f95 100644 --- a/examples/whm_gr_test/pl.swifter.in +++ b/examples/whm_gr_test/pl.swifter.in @@ -1,36 +1,36 @@ 9 -1 39.476926408897626 +0 39.476926408897626 0.0 0.0 0.0 0.0 0.0 0.0 -2 6.5537098095653139645e-06 0.001475126151488013514 +1 6.553709809565314146e-06 0.0014751261514880139061 1.6306381826061645943e-05 -0.29510017042975300594 -0.34346884022084378518 -0.000997917547895216684 5.709185893355676925 -6.2220892824670268354 -1.0321515701207669188 -3 9.663313399581537916e-05 0.006759061578633709628 +2 9.6633133995815381836e-05 0.006759061578633710828 4.0453784346544178454e-05 -0.21096294566811030213 -0.6945147553261317164 0.0026420019351886940041 7.0187176732445560167 -2.1783670470162428854 -0.43491289164169576724 -4 0.000120026935827952453094 0.010044949983771722159 +3 0.000120026935827952456416 0.010044949983771724966 4.25875607065040958e-05 0.905522725638602366 -0.44829515638659761523 1.8122901980659660508e-05 2.685845700565266851 5.6080546137104218133 -0.00027833838024725729542 -5 1.2739802010675941456e-05 0.0072465915674003775008 +4 1.2739802010675941808e-05 0.0072465915674003790445 2.265740805092889601e-05 -1.6511945936824949932 0.1180803833522415941 0.042978148735422203042 -0.17443328105136805607 -4.661619009141641736 -0.09341597039948347882 -6 0.037692251088985676735 0.3552713110772063034 +5 0.03769225108898567778 0.3552713110772063853 0.00046732617030490929307 4.2381319671740662614 -2.694827110197309139 -0.08362807329786287047 1.44742540330701551 2.4581907268113588696 -0.042593445938391914576 -7 0.011285899820091272997 0.43766359903328559694 +6 0.01128589982009127331 0.4376635990332856823 0.00038925687730393611812 6.4776155764849425722 -7.5454781609219372385 -0.12660625214421539209 1.4343694668413992401 1.3251694474665614901 -0.08010594537316981756 -8 0.0017236589478267730203 0.4696622419824256353 +7 0.001723658947826773068 0.46966224198242572768 0.00016953449859497231466 14.737783583010530819 13.132284780084109599 -0.14218874866247160904 -0.96494157148906816704 1.0080364706941240677 0.016191990849809560611 -9 0.0020336100526728302319 0.781439451609552476 +8 0.0020336100526728302882 0.7814394516095526881 0.000164587904124493665 29.578253698940308425 -4.488584904681241383 -0.58928426126360722304 0.16609282485651713797 1.143247554888599065 -0.027336661118935745503 diff --git a/examples/whm_gr_test/pl.swiftest.in b/examples/whm_gr_test/pl.swiftest.in index fd4d2b011..9d3171b2a 100644 --- a/examples/whm_gr_test/pl.swiftest.in +++ b/examples/whm_gr_test/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -Mercury 6.5537098095653139645e-06 0.001475126151488013514 +Mercury 6.553709809565314146e-06 0.0014751261514880139061 1.6306381826061645943e-05 0.38709861919270799335 0.20562987442219879397 7.0036598799530471737 48.303764444546942514 29.187012577257871015 139.02452846395490837 -Venus 9.663313399581537916e-05 0.006759061578633709628 +Venus 9.6633133995815381836e-05 0.006759061578633710828 4.0453784346544178454e-05 0.72332350338494522113 0.0067851993472706276234 3.3945100118236060105 76.62172575937908903 55.11451498626085055 120.69543184874230235 -Earth 0.000120026935827952453094 0.010044949983771722159 +Earth 0.000120026935827952456416 0.010044949983771724966 4.25875607065040958e-05 1.000022414803547921 0.016679693167334301573 0.002750719340522077977 175.59912721852418827 287.3487256951211748 232.20474506920808722 -Mars 1.2739802010675941456e-05 0.0072465915674003775008 +Mars 1.2739802010675941808e-05 0.0072465915674003790445 2.265740805092889601e-05 1.5237056817307590428 0.09335454089002033495 1.8479086301002540793 49.490790672135332784 286.7030449733272235 203.56009534652309867 -Jupiter 0.037692251088985676735 0.3552713110772063034 +Jupiter 0.03769225108898567778 0.3552713110772063853 0.00046732617030490929307 5.203524963998765074 0.048518619089771883313 1.3035691332389880426 100.516740776557597314 273.38311024861741316 317.57998688455870706 -Saturn 0.011285899820091272997 0.43766359903328559694 +Saturn 0.01128589982009127331 0.4376635990332856823 0.00038925687730393611812 9.581861578191695372 0.05220296447788015659 2.4862598063103709123 113.59526938704850352 335.69019804854252698 225.44748806008931297 -Uranus 0.0017236589478267730203 0.4696622419824256353 +Uranus 0.001723658947826773068 0.46966224198242572768 0.00016953449859497231466 19.23638216159032055 0.04433184777155944195 0.7703424893861580136 74.09557761028084144 95.84993853316392176 235.82773290830229485 -Neptune 0.0020336100526728302319 0.781439451609552476 +Neptune 0.0020336100526728302882 0.7814394516095526881 0.000164587904124493665 30.289653279202511271 0.013458737599393380546 1.769000156955224945 131.74519418988560915 245.79890439350270981 334.51418242279709148 diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 1eb8df95e..28835a69b 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -806,8 +806,8 @@ def swiftest_xr2infile(ds, param, framenum=-1): A set of three input files for a Swiftest run """ frame = ds.isel(time=framenum) - cb = frame.where(frame.id == 1, drop=True) - pl = frame.where(frame.id > 1, drop=True) + cb = frame.where(frame.id == 0, drop=True) + pl = frame.where(frame.id > 0, drop=True) pl = pl.where(np.invert(np.isnan(pl['Gmass'])), drop=True).drop_vars(['J_2', 'J_4']) tp = frame.where(np.isnan(frame['Gmass']), drop=True).drop_vars(['Gmass', 'radius', 'J_2', 'J_4']) @@ -984,8 +984,8 @@ def swifter_xr2infile(ds, param, framenum=-1): A set of input files for a Swifter run """ frame = ds.isel(time=framenum) - cb = frame.where(frame.id == 1, drop=True) - pl = frame.where(frame.id > 1, drop=True) + cb = frame.where(frame.id == 0, drop=True) + pl = frame.where(frame.id > 0, drop=True) pl = pl.where(np.invert(np.isnan(pl['Gmass'])), drop=True).drop_vars(['J_2', 'J_4']) tp = frame.where(np.isnan(frame['Gmass']), drop=True).drop_vars(['Gmass', 'radius', 'J_2', 'J_4']) From 74fd250beff52992cba0b3126893977b00afec64 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 27 Aug 2021 14:52:50 -0400 Subject: [PATCH 233/315] Fixed a typo and check to make sure that IN_FORM is used when generating labels for input data, rather than OUT_FORM --- python/swiftest/swiftest/init_cond.py | 6 +++++- python/swiftest/swiftest/simulation_class.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/python/swiftest/swiftest/init_cond.py b/python/swiftest/swiftest/init_cond.py index e0d3b749d..12f0ef6ed 100644 --- a/python/swiftest/swiftest/init_cond.py +++ b/python/swiftest/swiftest/init_cond.py @@ -305,8 +305,12 @@ def vec2xr(param, idvals, namevals, v1, v2, v3, v4, v5, v6, GMpl=None, Rpl=None, if ispl and rhill is None and param['RHILL_PRESENT'] == 'YES': print("rhill is required.") return None - + + # Be sure we use the correct input format + old_out_form = param['OUT_FORM'] + param['OUT_FORM'] = param['IN_FORM'] clab, plab, tlab = swiftest.io.make_swiftest_labels(param) + param['OUT_FORM'] = old_out_form vec = np.vstack([v1, v2, v3, v4, v5, v6]) if ispl: vec = np.vstack([vec, GMpl, Rpl]) diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index 3a3834434..e28d31587 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -99,7 +99,7 @@ def addp(self, idvals, namevals, t1, t2, t3, t4, t5, t6, GMpl=None, Rpl=None, rh """ t = self.param['T0'] - dsnew = init_cond.vec2xr(self.param, idvals, namevales, t1, t2, t3, t4, t5, t6, GMpl, Rpl, rhill, Ip1, Ip2, Ip3, rotx, roty, rotz, t) + dsnew = init_cond.vec2xr(self.param, idvals, namevals, t1, t2, t3, t4, t5, t6, GMpl, Rpl, rhill, Ip1, Ip2, Ip3, rotx, roty, rotz, t) if dsnew is not None: self.ds = xr.combine_by_coords([self.ds, dsnew]) return From 0d836c5717ed9a3f8a0a33f85bbc1524ac2cda14 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 17:32:29 -0400 Subject: [PATCH 234/315] Major restructuring to bring the particle information to all integrators, not just SyMBA. Name is now contains therein --- src/io/io.f90 | 199 +++++++++++++++++++++++++++++-- src/modules/swiftest_classes.f90 | 176 ++++++++++++++++++++------- src/modules/swiftest_globals.f90 | 17 ++- src/modules/symba_classes.f90 | 119 ++++++------------ src/netcdf/netcdf.f90 | 4 +- src/setup/setup.f90 | 51 +++++++- src/symba/symba_collision.f90 | 196 ++++++++++++++++-------------- src/symba/symba_io.f90 | 142 ++++------------------ src/symba/symba_setup.f90 | 76 +++++------- src/symba/symba_util.f90 | 142 +--------------------- src/util/util_append.f90 | 30 ++++- src/util/util_fill.f90 | 23 +++- src/util/util_resize.f90 | 37 +++++- src/util/util_sort.f90 | 23 +++- src/util/util_spill.f90 | 43 ++++++- 15 files changed, 730 insertions(+), 548 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 17c75aeea..8dcb37053 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -111,7 +111,90 @@ module subroutine io_dump_param(self, param_file_name) end subroutine io_dump_param - module subroutine io_dump_swiftest(self, param) + module subroutine io_dump_particle_info(self, iu) + !! author: David A. Minton + !! + !! Reads in particle information object information from an open file unformatted file + implicit none + ! Arguments + class(swiftest_particle_info), intent(in) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number + ! Internals + character(STRMAX) :: errmsg + + write(iu, err = 667, iomsg = errmsg) self%name + write(iu, err = 667, iomsg = errmsg) self%particle_type + + return + + 667 continue + write(*,*) "Error writing particle metadata information from file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_dump_particle_info + + + module subroutine io_dump_particle_info_base(self, param, idx) + !! author: David A. Minton + !! + !! Dumps the particle information data to a file. + !! Pass a list of array indices for test particles (tpidx) and/or massive bodies (plidx) to append + implicit none + ! Arguments + class(swiftest_base), intent(inout) :: self !! Swiftest base object (can be cb, pl, or tp) + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + integer(I4B), dimension(:), optional, intent(in) :: idx !! Array of test particle indices to append to the particle file + + ! Internals + logical, save :: lfirst = .true. + integer(I4B), parameter :: LUN = 22 + integer(I4B) :: i + character(STRMAX) :: errmsg + + if (lfirst) then + select case(param%out_stat) + case('APPEND') + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case('NEW', 'UNKNOWN', 'REPLACE') + open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case default + write(*,*) 'Invalid status code',trim(adjustl(param%out_stat)) + call util_exit(FAILURE) + end select + + lfirst = .false. + else + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + end if + + select type(self) + class is (swiftest_cb) + write(LUN, err = 667, iomsg = errmsg) self%id + call self%info%dump(LUN) + class is (swiftest_body) + if (present(idx)) then + do i = 1, size(idx) + write(LUN, err = 667, iomsg = errmsg) self%id(idx(i)) + call self%info(idx(i))%dump(LUN) + end do + else + do i = 1, self%nbody + write(LUN, err = 667, iomsg = errmsg) self%id(i) + call self%info(i)%dump(LUN) + end do + end if + end select + + close(unit = LUN, err = 667, iomsg = errmsg) + + return + + 667 continue + write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_dump_particle_info_base + + + module subroutine io_dump_base(self, param) !! author: David A. Minton !! !! Dump massive body data to files @@ -152,7 +235,7 @@ module subroutine io_dump_swiftest(self, param) 667 continue write(*,*) "Error dumping body data to file " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine io_dump_swiftest + end subroutine io_dump_base module subroutine io_dump_system(self, param) @@ -554,7 +637,9 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) read(param_value, *, err = 667, iomsg = iomsg) param%Euntracked case ("MAXID") read(param_value, *, err = 667, iomsg = iomsg) param%maxid - case ("NPLMAX", "NTPMAX", "GMTINY", "MIN_GMFRAG", "PARTICLE_OUT", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters + case ("PARTICLE_OUT") + param%particle_out = param_value + case ("NPLMAX", "NTPMAX", "GMTINY", "MIN_GMFRAG", "FRAGMENTATION", "SEED", "YARKOVSKY", "YORP") ! Ignore SyMBA-specific, not-yet-implemented, or obsolete input parameters case default write(*,*) "Unknown parameter -> ",param_name iostat = -1 @@ -771,6 +856,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "OUT_FORM"; write(param_value, Afmt) trim(adjustl(param%out_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "OUT_STAT"; write(param_value, Afmt) "APPEND"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) end if + write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ENC_OUT"; write(param_value, Afmt) trim(adjustl(param%enc_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -906,7 +992,7 @@ module subroutine io_read_in_cb(self, param) self%id = 0 param%maxid = 0 open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) - read(iu, *, err = 667, iomsg = errmsg) self%name + read(iu, *, err = 667, iomsg = errmsg) self%info%name read(iu, *, err = 667, iomsg = errmsg) self%Gmass self%mass = real(self%Gmass / param%GU, kind=DP) read(iu, *, err = 667, iomsg = errmsg) self%radius @@ -1036,7 +1122,9 @@ module function io_read_frame_body(self, iu, param) result(ierr) select case(param%in_type) case (REAL4_TYPE, REAL8_TYPE) read(iu, err = 667, iomsg = errmsg) self%id(:) - read(iu, err = 667, iomsg = errmsg) self%name(:) + associate(name => self%info%name) + read(iu, err = 667, iomsg = errmsg) name(:) + end associate select case (param%in_form) case (XV) @@ -1082,9 +1170,9 @@ module function io_read_frame_body(self, iu, param) result(ierr) select type(self) class is (swiftest_pl) if (param%lrhill_present) then - read(iu, *, err = 667, iomsg = errmsg) self%name(i), val, self%rhill(i) + read(iu, *, err = 667, iomsg = errmsg) self%info(i)%name, val, self%rhill(i) else - read(iu, *, err = 667, iomsg = errmsg) self%name(i), val + read(iu, *, err = 667, iomsg = errmsg) self%info(i)%name, val end if self%Gmass(i) = real(val, kind=DP) self%mass(i) = real(val / param%GU, kind=DP) @@ -1160,7 +1248,7 @@ module function io_read_frame_cb(self, iu, param) result(ierr) character(len=STRMAX) :: errmsg read(iu, err = 667, iomsg = errmsg) self%id - read(iu, err = 667, iomsg = errmsg) self%name + read(iu, err = 667, iomsg = errmsg) self%info%name read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius @@ -1279,6 +1367,7 @@ function io_read_hdr(iu, t, npl, ntp, out_form, out_type) result(ierr) return end function io_read_hdr + module subroutine io_read_in_param(self, param_file_name) !! author: David A. Minton !! @@ -1314,6 +1403,96 @@ module subroutine io_read_in_param(self, param_file_name) end subroutine io_read_in_param + module subroutine io_read_in_particle_info(self, iu) + !! author: David A. Minton + !! + !! Reads in particle information object information from an open file unformatted file + implicit none + ! Arguments + class(swiftest_particle_info), intent(inout) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number + ! Internals + character(STRMAX) :: errmsg + + read(iu, err = 667, iomsg = errmsg) self%name + read(iu, err = 667, iomsg = errmsg) self%particle_type + + return + + 667 continue + write(*,*) "Error reading particle metadata information from file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_read_in_particle_info + + + module subroutine io_read_particle_info_system(self, param) + !! author: David A. Minton + !! + !! Reads an old particle information file for a restartd run + implicit none + ! Arguments + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + ! Internals + integer(I4B), parameter :: LUN = 22 + integer(I4B) :: i, id, idx + logical :: lmatch + character(STRMAX) :: errmsg + class(swiftest_particle_info), allocatable :: tmpinfo + + open(unit = LUN, file = param%particle_out, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + + allocate(tmpinfo, mold=self%cb%info) + + select type(cb => self%cb) + class is (swiftest_cb) + select type(pl => self%pl) + class is (swiftest_pl) + select type(tp => self%tp) + class is (swiftest_tp) + associate(npl => pl%nbody, ntp => tp%nbody) + do + lmatch = .false. + read(LUN, err = 667, iomsg = errmsg, end = 333) id + + if (id == cb%id) then + call cb%info%read_in(LUN) + lmatch = .true. + else + if (npl > 0) then + idx = findloc(pl%id(1:npl), id, dim=1) + if (idx /= 0) then + call pl%info(idx)%read_in(LUN) + lmatch = .true. + end if + end if + if (.not.lmatch .and. ntp > 0) then + idx = findloc(tp%id(1:ntp), id, dim=1) + if (idx /= 0) then + call tp%info(idx)%read_in(LUN) + lmatch = .true. + end if + end if + end if + if (.not.lmatch) then + call tmpinfo%read_in(LUN) + end if + end do + end associate + close(unit = LUN, err = 667, iomsg = errmsg) + end select + end select + end select + + 333 continue + return + + 667 continue + write(*,*) "Error reading particle information file: " // trim(adjustl(errmsg)) + call util_exit(FAILURE) + end subroutine io_read_particle_info_system + + module subroutine io_toupper(string) !! author: David A. Minton !! @@ -1495,7 +1674,7 @@ module subroutine io_write_frame_body(self, iu, param) associate(n => self%nbody) if (n == 0) return write(iu, err = 667, iomsg = errmsg) self%id(1:n) - write(iu, err = 667, iomsg = errmsg) self%name(1:n) + write(iu, err = 667, iomsg = errmsg) self%info(1:n)%name if ((param%out_form == XV) .or. (param%out_form == XVEL)) then write(iu, err = 667, iomsg = errmsg) self%xh(1, 1:n) write(iu, err = 667, iomsg = errmsg) self%xh(2, 1:n) @@ -1556,7 +1735,7 @@ module subroutine io_write_frame_cb(self, iu, param) associate(cb => self) write(iu, err = 667, iomsg = errmsg) cb%id - write(iu, err = 667, iomsg = errmsg) cb%name + write(iu, err = 667, iomsg = errmsg) cb%info%name write(iu, err = 667, iomsg = errmsg) cb%Gmass write(iu, err = 667, iomsg = errmsg) cb%radius write(iu, err = 667, iomsg = errmsg) cb%j2rp2 diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 06435cbe7..34e530bb9 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -31,6 +31,7 @@ module swiftest_classes character(STRMAX) :: out_type = NETCDF_DOUBLE_TYPE !! Binary format of output file character(STRMAX) :: out_form = XVEL !! Data to write to output file character(STRMAX) :: out_stat = 'NEW' !! Open status for output binary file + character(STRMAX) :: particle_out = PARTICLE_OUTFILE !! Name of output particle information file integer(I4B) :: istep_dump = -1 !! Number of time steps between dumps real(DP) :: rmin = -1.0_DP !! Minimum heliocentric radius for test particle real(DP) :: rmax = -1.0_DP !! Maximum heliocentric radius for test particle @@ -139,15 +140,28 @@ module swiftest_classes procedure :: open => netcdf_open !! Opens a NetCDF file end type netcdf_parameters + !******************************************************************************************************************************** + ! swiftest_swiftest_particle_info class definitions and method interfaces + !******************************************************************************************************************************* + !> Class definition for the particle origin information object. This object is used to track time, location, and collisional regime + !> of fragments produced in collisional events. + type :: swiftest_particle_info + character(len=NAMELEN) :: name !! Non-unique name + character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. CentralBody, MassiveBody, TestParticle) + contains + procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file + procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file + end type swiftest_particle_info + !******************************************************************************************************************************** ! swiftest_base class definitions and methods !******************************************************************************************************************************** type, abstract :: swiftest_base - !! An superclass for a generic Swiftest object - logical :: lintegrate = .false. !! Flag indicating that this object should be integrated in the current step + !! An abstract superclass for a generic Swiftest object contains !! The minimal methods that all systems must have - procedure :: dump => io_dump_swiftest !! Dump contents to file + procedure :: dump => io_dump_base !! Dump contents to file + procedure :: dump_particle_info => io_dump_particle_info_base !! Dump contents of particle information metadata to file procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments end type swiftest_base @@ -157,30 +171,30 @@ module swiftest_classes !******************************************************************************************************************************** !> A concrete lass for the central body in a Swiftest simulation type, abstract, extends(swiftest_base) :: swiftest_cb - character(len=NAMELEN) :: name !! Non-unique name - integer(I4B) :: id = 0 !! External identifier (unique) - real(DP) :: mass = 0.0_DP !! Central body mass (units MU) - real(DP) :: Gmass = 0.0_DP !! Central mass gravitational term G * mass (units GU * MU) - real(DP) :: radius = 0.0_DP !! Central body radius (units DU) - real(DP) :: density = 1.0_DP !! Central body mass density - calculated internally (units MU / DU**3) - real(DP) :: j2rp2 = 0.0_DP !! J2*R^2 term for central body - real(DP) :: j4rp4 = 0.0_DP !! J4*R^2 term for central body - real(DP), dimension(NDIM) :: aobl = 0.0_DP !! Barycentric acceleration due to central body oblatenes - real(DP), dimension(NDIM) :: atide = 0.0_DP !! Barycentric acceleration due to central body oblatenes - real(DP), dimension(NDIM) :: aoblbeg = 0.0_DP !! Barycentric acceleration due to central body oblatenes at beginning of step - real(DP), dimension(NDIM) :: aoblend = 0.0_DP !! Barycentric acceleration due to central body oblatenes at end of step - real(DP), dimension(NDIM) :: atidebeg = 0.0_DP !! Barycentric acceleration due to central body oblatenes at beginning of step - real(DP), dimension(NDIM) :: atideend = 0.0_DP !! Barycentric acceleration due to central body oblatenes at end of step - real(DP), dimension(NDIM) :: xb = 0.0_DP !! Barycentric position (units DU) - real(DP), dimension(NDIM) :: vb = 0.0_DP !! Barycentric velocity (units DU / TU) - real(DP), dimension(NDIM) :: agr = 0.0_DP !! Acceleration due to post-Newtonian correction - real(DP), dimension(NDIM) :: Ip = 0.0_DP !! Unitless principal moments of inertia (I1, I2, I3) / (MR**2). Principal axis rotation assumed. - real(DP), dimension(NDIM) :: rot = 0.0_DP !! Body rotation vector in inertial coordinate frame (units rad / TU) - real(DP) :: k2 = 0.0_DP !! Tidal Love number - real(DP) :: Q = 0.0_DP !! Tidal quality factor - real(DP) :: tlag = 0.0_DP !! Tidal phase lag angle - real(DP), dimension(NDIM) :: L0 = 0.0_DP !! Initial angular momentum of the central body - real(DP), dimension(NDIM) :: dL = 0.0_DP !! Change in angular momentum of the central body + class(swiftest_particle_info), allocatable :: info !! Particle metadata information + integer(I4B) :: id = 0 !! External identifier (unique) + real(DP) :: mass = 0.0_DP !! Central body mass (units MU) + real(DP) :: Gmass = 0.0_DP !! Central mass gravitational term G * mass (units GU * MU) + real(DP) :: radius = 0.0_DP !! Central body radius (units DU) + real(DP) :: density = 1.0_DP !! Central body mass density - calculated internally (units MU / DU**3) + real(DP) :: j2rp2 = 0.0_DP !! J2*R^2 term for central body + real(DP) :: j4rp4 = 0.0_DP !! J4*R^2 term for central body + real(DP), dimension(NDIM) :: aobl = 0.0_DP !! Barycentric acceleration due to central body oblatenes + real(DP), dimension(NDIM) :: atide = 0.0_DP !! Barycentric acceleration due to central body oblatenes + real(DP), dimension(NDIM) :: aoblbeg = 0.0_DP !! Barycentric acceleration due to central body oblatenes at beginning of step + real(DP), dimension(NDIM) :: aoblend = 0.0_DP !! Barycentric acceleration due to central body oblatenes at end of step + real(DP), dimension(NDIM) :: atidebeg = 0.0_DP !! Barycentric acceleration due to central body oblatenes at beginning of step + real(DP), dimension(NDIM) :: atideend = 0.0_DP !! Barycentric acceleration due to central body oblatenes at end of step + real(DP), dimension(NDIM) :: xb = 0.0_DP !! Barycentric position (units DU) + real(DP), dimension(NDIM) :: vb = 0.0_DP !! Barycentric velocity (units DU / TU) + real(DP), dimension(NDIM) :: agr = 0.0_DP !! Acceleration due to post-Newtonian correction + real(DP), dimension(NDIM) :: Ip = 0.0_DP !! Unitless principal moments of inertia (I1, I2, I3) / (MR**2). Principal axis rotation assumed. + real(DP), dimension(NDIM) :: rot = 0.0_DP !! Body rotation vector in inertial coordinate frame (units rad / TU) + real(DP) :: k2 = 0.0_DP !! Tidal Love number + real(DP) :: Q = 0.0_DP !! Tidal quality factor + real(DP) :: tlag = 0.0_DP !! Tidal phase lag angle + real(DP), dimension(NDIM) :: L0 = 0.0_DP !! Initial angular momentum of the central body + real(DP), dimension(NDIM) :: dL = 0.0_DP !! Change in angular momentum of the central body contains procedure :: read_in => io_read_in_cb !! I/O routine for reading in central body data procedure :: read_frame => io_read_frame_cb !! I/O routine for reading out a single frame of time-series data for the central body @@ -196,7 +210,7 @@ module swiftest_classes !! Superclass that defines the generic elements of a Swiftest particle logical :: lfirst = .true. !! Run the current step as a first integer(I4B) :: nbody = 0 !! Number of bodies - character(len=NAMELEN), dimension(:), allocatable :: name !! Non-unique name + class(swiftest_particle_info), dimension(:), allocatable :: info !! Particle metadata information integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator logical, dimension(:), allocatable :: ldiscard !! Body should be discarded @@ -357,22 +371,24 @@ module swiftest_classes procedure(abstract_step_system), deferred :: step ! Concrete classes that are common to the basic integrator (only test particles considered for discard) - procedure :: discard => discard_system !! Perform a discard step on the system - procedure :: conservation_report => io_conservation_report !! Compute energy and momentum and print out the change with time - procedure :: dump => io_dump_system !! Dump the state of the system to a file - procedure :: get_old_t_final => io_get_old_t_final_system !! Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the binary output. - procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file - procedure :: write_discard => io_write_discard !! Write out information about discarded test particles - procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file - procedure :: write_hdr_bin => io_write_hdr_system !! Write a header for an output frame in Fortran binary format - procedure :: write_hdr_netcdf => netcdf_write_hdr_system !! Write a header for an output frame in NetCDF format - procedure :: initialize => setup_initialize_system !! Initialize the system from input files - procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. - procedure :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. - procedure :: get_energy_and_momentum => util_get_energy_momentum_system !! Calculates the total system energy and momentum - procedure :: rescale => util_rescale_system !! Rescales the system into a new set of units - procedure :: validate_ids => util_valid_id_system !! Validate the numerical ids passed to the system and save the maximum value - generic :: write_hdr => write_hdr_bin, write_hdr_netcdf !! Generic method call for writing headers + procedure :: discard => discard_system !! Perform a discard step on the system + procedure :: conservation_report => io_conservation_report !! Compute energy and momentum and print out the change with time + procedure :: dump => io_dump_system !! Dump the state of the system to a file + procedure :: get_old_t_final => io_get_old_t_final_system !! Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the binary output. + procedure :: read_frame => io_read_frame_system !! Read in a frame of input data from file + procedure :: read_particle_info => io_read_particle_info_system !! Read in particle metadata from file + procedure :: write_discard => io_write_discard !! Write out information about discarded test particles + procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file + procedure :: write_hdr_bin => io_write_hdr_system !! Write a header for an output frame in Fortran binary format + procedure :: write_hdr_netcdf => netcdf_write_hdr_system !! Write a header for an output frame in NetCDF format + procedure :: initialize => setup_initialize_system !! Initialize the system from input files + procedure :: init_particle_info => setup_initialize_particle_info_system !! Initialize the system from input files + procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. + procedure :: set_msys => util_set_msys !! Sets the value of msys from the masses of system bodies. + procedure :: get_energy_and_momentum => util_get_energy_momentum_system !! Calculates the total system energy and momentum + procedure :: rescale => util_rescale_system !! Rescales the system into a new set of units + procedure :: validate_ids => util_valid_id_system !! Validate the numerical ids passed to the system and save the maximum value + generic :: write_hdr => write_hdr_bin, write_hdr_netcdf !! Generic method call for writing headers end type swiftest_nbody_system type :: swiftest_encounter @@ -614,11 +630,24 @@ module subroutine io_dump_param(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) end subroutine io_dump_param - module subroutine io_dump_swiftest(self, param) + module subroutine io_dump_particle_info_base(self, param, idx) + implicit none + class(swiftest_base), intent(inout) :: self !! Swiftest base object (can be cb, pl, or tp) + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + integer(I4B), dimension(:), optional, intent(in) :: idx !! Array of test particle indices to append to the particle file + end subroutine io_dump_particle_info_base + + module subroutine io_dump_particle_info(self, iu) + implicit none + class(swiftest_particle_info), intent(in) :: self !! Swiftest particle info metadata object + integer(I4B), intent(in) :: iu !! Open unformatted file unit number + end subroutine io_dump_particle_info + + module subroutine io_dump_base(self, param) implicit none class(swiftest_base), intent(inout) :: self !! Swiftest base object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - end subroutine io_dump_swiftest + end subroutine io_dump_base module subroutine io_dump_system(self, param) implicit none @@ -689,6 +718,12 @@ module subroutine io_read_in_param(self, param_file_name) character(len=*), intent(in) :: param_file_name !! Parameter input file name (i.e. param.in) end subroutine io_read_in_param + module subroutine io_read_in_particle_info(self, iu) + implicit none + class(swiftest_particle_info), intent(inout) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number + end subroutine io_read_in_particle_info + module function io_read_frame_body(self, iu, param) result(ierr) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object @@ -713,6 +748,12 @@ module function io_read_frame_system(self, iu, param) result(ierr) integer(I4B) :: ierr !! Error code: returns 0 if the read is successful end function io_read_frame_system + module subroutine io_read_particle_info_system(self, param) + implicit none + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + end subroutine io_read_particle_info_system + module subroutine io_write_discard(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object @@ -953,6 +994,12 @@ module subroutine setup_encounter(self, n) integer(I4B), intent(in) :: n !! Number of encounters to allocate space for end subroutine setup_encounter + module subroutine setup_initialize_particle_info_system(self, param) + implicit none + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine setup_initialize_particle_info_system + module subroutine setup_initialize_system(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object @@ -1030,6 +1077,14 @@ module subroutine util_append_arr_I4B(arr, source, nold, nsrc, lsource_mask) logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine util_append_arr_I4B + module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) + implicit none + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append + integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + end subroutine util_append_arr_info + module subroutine util_append_arr_logical(arr, source, nold, nsrc, lsource_mask) implicit none logical, dimension(:), allocatable, intent(inout) :: arr !! Destination array @@ -1037,6 +1092,7 @@ module subroutine util_append_arr_logical(arr, source, nold, nsrc, lsource_mask) integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine util_append_arr_logical + end interface interface @@ -1190,6 +1246,13 @@ module subroutine util_fill_arr_I4B(keeps, inserts, lfill_list) logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_arr_I4B + module subroutine util_fill_arr_info(keeps, inserts, lfill_list) + implicit none + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep + logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + end subroutine util_fill_arr_info + module subroutine util_fill_arr_logical(keeps, inserts, lfill_list) implicit none logical, dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep @@ -1252,6 +1315,12 @@ module subroutine util_resize_arr_I4B(arr, nnew) integer(I4B), intent(in) :: nnew !! New size end subroutine util_resize_arr_I4B + module subroutine util_resize_arr_info(arr, nnew) + implicit none + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize + integer(I4B), intent(in) :: nnew !! New size + end subroutine util_resize_arr_info + module subroutine util_resize_arr_logical(arr, nnew) implicit none logical, dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -1430,6 +1499,13 @@ module subroutine util_sort_rearrange_arr_I4B(arr, ind, n) integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange end subroutine util_sort_rearrange_arr_I4B + module subroutine util_sort_rearrange_arr_info(arr, ind, n) + implicit none + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + end subroutine util_sort_rearrange_arr_info + module subroutine util_sort_rearrange_arr_logical(arr, ind, n) implicit none logical, dimension(:), allocatable, intent(inout) :: arr !! Destination array @@ -1520,6 +1596,14 @@ module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not end subroutine util_spill_arr_I8B + module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive) + implicit none + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss + logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + end subroutine util_spill_arr_info + module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestructive) implicit none logical, dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 3df99a8d1..dd6752b8f 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -55,6 +55,10 @@ module swiftest_globals character(*), parameter :: XV = 'XV' !! Symbolic name for binary output file contents for cartesian position and velocity vectors character(*), parameter :: XVEL = 'XVEL' !! Symbolic name for binary output file contents for both cartesian position and velocity and orbital elements + character(*), parameter :: CB_TYPE_NAME = "CentralBody" + character(*), parameter :: PL_TYPE_NAME = "MassiveBody" + character(*), parameter :: TP_TYPE_NAME = "TestParticle" + ! OpenMP Parameters integer(I4B) :: nthreads = 1 !! Number of OpenMP threads integer(I4B), parameter :: NTHERSHOLD = 1000 !! Threshold value for OpenMP loop parallelization @@ -113,11 +117,14 @@ module swiftest_globals character(*), dimension(2), parameter :: DUMP_PARAM_FILE = ['dump_param1.in', 'dump_param2.in'] !> Default file names that can be changed by the user in the parameters file - character(*), parameter :: CB_INFILE = 'cb.in' - character(*), parameter :: PL_INFILE = 'pl.in' - character(*), parameter :: TP_INFILE = 'tp.in' - character(*), parameter :: BIN_OUTFILE = 'bin.dat' - integer(I4B), parameter :: BINUNIT = 20 !! File unit number for the binary output file + character(*), parameter :: CB_INFILE = 'cb.in' + character(*), parameter :: PL_INFILE = 'pl.in' + character(*), parameter :: TP_INFILE = 'tp.in' + character(*), parameter :: BIN_OUTFILE = 'bin.dat' + integer(I4B), parameter :: BINUNIT = 20 !! File unit number for the binary output file + character(*), parameter :: PARTICLE_OUTFILE = 'particle.dat' + integer(I4B), parameter :: PARTICLEUNIT = 44 !! File unit number for the binary particle info output file + !> Miscellaneous constants: integer(I4B), parameter :: NDIM = 3 !! Number of dimensions in our reality diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 25f9b5940..5294efa64 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -4,7 +4,7 @@ module symba_classes !! Definition of classes and methods specific to the Democratic SyMBAcentric Method !! Adapted from David E. Kaufmann's Swifter routine: helio.f90 use swiftest_globals - use swiftest_classes, only : swiftest_parameters, swiftest_base, swiftest_encounter + use swiftest_classes, only : swiftest_parameters, swiftest_base, swiftest_encounter, swiftest_particle_info use helio_classes, only : helio_cb, helio_pl, helio_tp, helio_nbody_system use rmvs_classes, only : rmvs_chk_ind implicit none @@ -14,11 +14,8 @@ module symba_classes integer(I4B), private, parameter :: NTENC = 3 real(DP), private, parameter :: RHSCALE = 6.5_DP real(DP), private, parameter :: RSHELL = 0.48075_DP - character(*), parameter :: PARTICLE_OUTFILE = 'particle.dat' - integer(I4B), parameter :: PARTICLEUNIT = 44 !! File unit number for the binary particle info output file type, extends(swiftest_parameters) :: symba_parameters - character(STRMAX) :: particle_out = PARTICLE_OUTFILE !! Name of output particle information file real(DP) :: GMTINY = -1.0_DP !! Smallest G*mass that is fully gravitating real(DP) :: min_GMfrag = -1.0_DP !! Smallest G*mass that can be produced in a fragmentation event integer(I4B), dimension(:), allocatable :: seed !! Random seeds @@ -29,16 +26,17 @@ module symba_classes end type symba_parameters !******************************************************************************************************************************** - ! symba_particle_info class definitions and method interfaces + ! symba_swiftest_particle_info class definitions and method interfaces !******************************************************************************************************************************* !> Class definition for the particle origin information object. This object is used to track time, location, and collisional regime !> of fragments produced in collisional events. - type :: symba_particle_info - sequence - character(len=32) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) + type, extends(swiftest_particle_info) :: symba_particle_info + character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) real(DP) :: origin_time !! The time of the particle's formation real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation + contains + procedure :: read_in => symba_io_read_in_particle_info !! Reads in SyMBA particle information metadata from an open unformatted file end type symba_particle_info !******************************************************************************************************************************** @@ -60,7 +58,6 @@ module symba_classes real(DP) :: dGM = 0.0_DP !! Change in G*mass of the central body real(DP) :: R0 = 0.0_DP !! Initial radius of the central body real(DP) :: dR = 0.0_DP !! Change in the radius of the central body - type(symba_particle_info) :: info contains end type symba_cb @@ -82,7 +79,6 @@ module symba_classes real(DP), dimension(:), allocatable :: peri !! perihelion distance real(DP), dimension(:), allocatable :: atp !! semimajor axis following perihelion passage type(symba_kinship), dimension(:), allocatable :: kin !! Array of merger relationship structures that can account for multiple pairwise mergers in a single step - type(symba_particle_info), dimension(:), allocatable :: info contains procedure :: make_family => symba_collision_make_family_pl !! When a single body is involved in more than one collision in a single step, it becomes part of a family procedure :: index => symba_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix @@ -118,7 +114,6 @@ module symba_classes integer(I4B), dimension(:), allocatable :: nplenc !! number of encounters with planets this time step integer(I4B), dimension(:), allocatable :: levelg !! level at which this particle should be moved integer(I4B), dimension(:), allocatable :: levelm !! deepest encounter level achieved this time step - type(symba_particle_info), dimension(:), allocatable :: info contains procedure :: drift => symba_drift_tp !! Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level procedure :: encounter_check => symba_encounter_check_tp !! Checks if any test particles are undergoing a close encounter with a massive body @@ -173,19 +168,20 @@ module symba_classes ! symba_nbody_system class definitions and method interfaces !******************************************************************************************************************************** type, extends(helio_nbody_system) :: symba_nbody_system - class(symba_merger), allocatable :: pl_adds !! List of added bodies in mergers or collisions - class(symba_pltpenc), allocatable :: pltpenc_list !! List of massive body-test particle encounters in a single step - 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 + class(symba_merger), allocatable :: pl_adds !! List of added bodies in mergers or collisions + class(symba_pltpenc), allocatable :: pltpenc_list !! List of massive body-test particle encounters in a single step + 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 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 - procedure :: step => symba_step_system !! Advance the SyMBA nbody system forward in time by one step - procedure :: interp => symba_step_interp_system !! Perform an interpolation step on the SymBA nbody system - procedure :: set_recur_levels => symba_step_set_recur_levels_system !! Sets recursion levels of bodies and encounter lists to the current system level - procedure :: recursive_step => symba_step_recur_system !! Step interacting planets and active test particles ahead in democratic heliocentric coordinates at the current recursion level, if applicable, and descend to the next deeper level if necessary - procedure :: reset => symba_step_reset_system !! Resets pl, tp,and encounter structures at the start of a new step + 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 + procedure :: init_particle_info => symba_setup_initialize_particle_info_system !! Initialize the system from input files + procedure :: step => symba_step_system !! Advance the SyMBA nbody system forward in time by one step + procedure :: interp => symba_step_interp_system !! Perform an interpolation step on the SymBA nbody system + procedure :: set_recur_levels => symba_step_set_recur_levels_system !! Sets recursion levels of bodies and encounter lists to the current system level + procedure :: recursive_step => symba_step_recur_system !! Step interacting planets and active test particles ahead in democratic heliocentric coordinates at the current recursion level, if applicable, and descend to the next deeper level if necessary + procedure :: reset => symba_step_reset_system !! Resets pl, tp,and encounter structures at the start of a new step end type symba_nbody_system interface @@ -362,21 +358,12 @@ module subroutine symba_util_index_eucl_plpl(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine symba_util_index_eucl_plpl - module subroutine symba_io_write_discard(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_io_write_discard - - module subroutine symba_io_dump_particle_info(system, param, lincludecb, tpidx, plidx) + module subroutine symba_io_dump_particle_info(self, iu) implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA extensions - logical, optional, intent(in) :: lincludecb !! Set to true to include the central body (default is false) - integer(I4B), dimension(:), optional, intent(in) :: tpidx !! Array of test particle indices to append to the particle file - integer(I4B), dimension(:), optional, intent(in) :: plidx !! Array of massive body indices to append to the particle file + class(symba_particle_info), intent(in) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number end subroutine symba_io_dump_particle_info + module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, iomsg) implicit none @@ -400,11 +387,18 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms character(len=*), intent(inout) :: iomsg !! Message to pass if iostat /= 0 end subroutine symba_io_param_writer - module subroutine symba_io_read_particle(system, param) + module subroutine symba_io_read_in_particle_info(self, iu) implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system file - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions - end subroutine symba_io_read_particle + class(symba_particle_info), intent(inout) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number + end subroutine symba_io_read_in_particle_info + + module subroutine symba_io_write_discard(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_io_write_discard module subroutine symba_kick_getacch_int_pl(self) implicit none @@ -440,11 +434,12 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration end subroutine symba_kick_encounter - module subroutine symba_setup_initialize_particle_info(system, param) + module subroutine symba_setup_initialize_particle_info_system(self, param) + use swiftest_classes, only : swiftest_parameters implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions - end subroutine symba_setup_initialize_particle_info + class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA extensions + end subroutine symba_setup_initialize_particle_info_system module subroutine symba_setup_initialize_system(self, param) use swiftest_classes, only : swiftest_parameters @@ -524,14 +519,6 @@ end subroutine symba_step_reset_system end interface interface util_append - module subroutine symba_util_append_arr_info(arr, source, nold, nsrc, lsource_mask) - implicit none - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - type(symba_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append - integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively - logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to - end subroutine symba_util_append_arr_info - module subroutine symba_util_append_arr_kin(arr, source, nold, nsrc, lsource_mask) implicit none type(symba_kinship), dimension(:), allocatable, intent(inout) :: arr !! Destination array @@ -582,13 +569,6 @@ end subroutine symba_util_copy_encounter end interface interface util_fill - module subroutine symba_util_fill_arr_info(keeps, inserts, lfill_list) - implicit none - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - type(symba_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep - logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps - end subroutine symba_util_fill_arr_info - module subroutine symba_util_fill_arr_kin(keeps, inserts, lfill_list) implicit none type(symba_kinship), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep @@ -631,12 +611,6 @@ end subroutine symba_util_rearray_pl end interface interface util_resize - module subroutine symba_util_resize_arr_info(arr, nnew) - implicit none - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize - integer(I4B), intent(in) :: nnew !! New size - end subroutine symba_util_resize_arr_info - module subroutine symba_util_resize_arr_kin(arr, nnew) implicit none type(symba_kinship), dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -679,13 +653,6 @@ end subroutine symba_util_sort_tp end interface interface util_sort_rearrange - module subroutine symba_util_sort_rearrange_arr_info(arr, ind, n) - implicit none - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against - integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange - end subroutine symba_util_sort_rearrange_arr_info - module subroutine symba_util_sort_rearrange_arr_kin(arr, ind, n) implicit none type(symba_kinship), dimension(:), allocatable, intent(inout) :: arr !! Destination array @@ -709,14 +676,6 @@ end subroutine symba_util_sort_rearrange_tp end interface interface util_spill - module subroutine symba_util_spill_arr_info(keeps, discards, lspill_list, ldestructive) - implicit none - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards - logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss - logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not - end subroutine symba_util_spill_arr_info - module subroutine symba_util_spill_arr_kin(keeps, discards, lspill_list, ldestructive) implicit none type(symba_kinship), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 2abcbead1..785e10a92 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -231,7 +231,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) j = ind(i) idslot = self%id(j) + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - name = trim(adjustl(self%name(j))) + name = trim(adjustl(self%info(j)%name)) strlen = len(name) call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then @@ -277,7 +277,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) class is (swiftest_cb) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - name = trim(adjustl(self%name)) + name = trim(adjustl(self%info%name)) strlen = len(name) call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[idslot, tslot]) ) diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 070308838..fe78ee9e3 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -67,6 +67,13 @@ module subroutine setup_construct_system(system, param) call util_exit(FAILURE) end select + select type(system) + class is (symba_nbody_system) + allocate(symba_particle_info :: system%cb%info) + class default + allocate(swiftest_particle_info :: system%cb%info) + end select + return end subroutine setup_construct_system @@ -127,6 +134,33 @@ module subroutine setup_encounter(self, n) end subroutine setup_encounter + module subroutine setup_initialize_particle_info_system(self, param) + !! author: David A. Minton + !! + !! Setup up particle information metadata from initial conditions + ! + implicit none + ! Arguments + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + associate(cb => self%cb, pl => self%pl, npl => self%pl%nbody, tp => self%tp, ntp => self%tp%nbody) + cb%info%particle_type = CB_TYPE_NAME + call cb%dump_particle_info(param) + if (npl > 0) then + pl%info(1:npl)%particle_type = PL_TYPE_NAME + call pl%dump_particle_info(param) + end if + if (ntp > 0) then + tp%info(1:ntp)%particle_type = TP_TYPE_NAME + call tp%dump_particle_info(param) + end if + end associate + + return + end subroutine setup_initialize_particle_info_system + + module subroutine setup_initialize_system(self, param) !! author: David A. Minton !! @@ -152,6 +186,12 @@ module subroutine setup_initialize_system(self, param) if (.not.param%lrhill_present) call self%pl%set_rhill(self%cb) self%pl%lfirst = param%lfirstkick self%tp%lfirst = param%lfirstkick + + if (param%lrestart) then + call self%read_particle_info(param) + else + call self%init_particle_info(param) + end if return end subroutine setup_initialize_system @@ -173,7 +213,7 @@ module subroutine setup_body(self, n, param) self%lfirst = .true. if (allocated(self%id)) deallocate(self%id) - if (allocated(self%name)) deallocate(self%name) + if (allocated(self%info)) deallocate(self%info) if (allocated(self%status)) deallocate(self%status) if (allocated(self%ldiscard)) deallocate(self%ldiscard) if (allocated(self%xh)) deallocate(self%xh) @@ -186,7 +226,7 @@ module subroutine setup_body(self, n, param) if (allocated(self%lmask)) deallocate(self%lmask) allocate(self%id(n)) - allocate(self%name(n)) + allocate(self%info(n)) allocate(self%status(n)) allocate(self%ldiscard(n)) allocate(self%xh(NDIM, n)) @@ -199,7 +239,7 @@ module subroutine setup_body(self, n, param) allocate(self%lmask(n)) self%id(:) = 0 - self%name(:) = "UNNAMED" + self%info(:)%name = "UNNAMED" self%status(:) = INACTIVE self%lmask(:) = .false. self%ldiscard(:) = .false. @@ -247,10 +287,12 @@ module subroutine setup_pl(self, n, param) call setup_body(self, n, param) if (n <= 0) return + if (allocated(self%info)) deallocate(self%info) if (allocated(self%mass)) deallocate(self%mass) if (allocated(self%Gmass)) deallocate(self%Gmass) if (allocated(self%rhill)) deallocate(self%rhill) + allocate(swiftest_particle_info :: self%info(n)) allocate(self%mass(n)) allocate(self%Gmass(n)) allocate(self%rhill(n)) @@ -311,14 +353,17 @@ module subroutine setup_tp(self, n, param) call setup_body(self, n, param) if (n <= 0) return + if (allocated(self%info)) deallocate(self%info) if (allocated(self%isperi)) deallocate(self%isperi) if (allocated(self%peri)) deallocate(self%peri) if (allocated(self%atp)) deallocate(self%atp) + allocate(swiftest_particle_info :: self%info(n)) allocate(self%isperi(n)) allocate(self%peri(n)) allocate(self%atp(n)) + self%info(:)%particle_type = TP_TYPE_NAME self%isperi(:) = 0 self%peri(:) = 0.0_DP self%atp(:) = 0.0_DP diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 034038ded..4e21b9411 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -838,101 +838,117 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, class is (symba_pl) select type(pl_discards => system%pl_discards) class is (symba_merger) - associate(pl_adds => system%pl_adds, cb => system%cb) - - ! Add the family bodies to the subtraction list - nfamily = size(family(:)) - nfrag = size(m_frag(:)) - lmask(:) = .false. - lmask(family(:)) = .true. - pl%status(family(:)) = MERGED - nstart = pl_discards%nbody + 1 - nend = pl_discards%nbody + nfamily - call pl_discards%append(pl, lmask) - pl%ldiscard(family(:)) = .true. - pl%lcollision(family(:)) = .true. - - ! Record how many bodies were subtracted in this event - pl_discards%ncomp(nstart:nend) = nfamily - - ! Setup new bodies - allocate(plnew, mold=pl) - call plnew%setup(nfrag, param) - ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) - - ! Copy over identification, information, and physical properties of the new bodies from the fragment list - plnew%id(1:nfrag) = id_frag(1:nfrag) - param%maxid = param%maxid + nfrag - plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) - plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) - do i = 1, nfrag - plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) - plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) - end do - plnew%mass(1:nfrag) = m_frag(1:nfrag) - plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) - plnew%radius(1:nfrag) = rad_frag(1:nfrag) - plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) + select type(info => pl%info) + class is (symba_particle_info) + associate(pl_adds => system%pl_adds, cb => system%cb) + + ! Add the family bodies to the subtraction list + nfamily = size(family(:)) + nfrag = size(m_frag(:)) + lmask(:) = .false. + lmask(family(:)) = .true. + pl%status(family(:)) = MERGED + nstart = pl_discards%nbody + 1 + nend = pl_discards%nbody + nfamily + call pl_discards%append(pl, lmask) + pl%ldiscard(family(:)) = .true. + pl%lcollision(family(:)) = .true. + + ! Record how many bodies were subtracted in this event + pl_discards%ncomp(nstart:nend) = nfamily + + ! Setup new bodies + allocate(plnew, mold=pl) + call plnew%setup(nfrag, param) + ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) - select case(status) - case(DISRUPTION) - plnew%info(1:nfrag)%origin_type = "Disruption" - plnew%status(1:nfrag) = NEW_PARTICLE - plnew%info(1:nfrag)%origin_time = param%t + ! Copy over identification, information, and physical properties of the new bodies from the fragment list + plnew%id(1:nfrag) = id_frag(1:nfrag) + param%maxid = param%maxid + nfrag + plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) + plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) do i = 1, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) + plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) end do - case(SUPERCATASTROPHIC) - plnew%info(1:nfrag)%origin_type = "Supercatastrophic" - plnew%status(1:nfrag) = NEW_PARTICLE - plnew%info(1:nfrag)%origin_time = param%t - do i = 1, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(HIT_AND_RUN_DISRUPT) - plnew%info(1) = pl%info(ibiggest) - plnew%status(1) = OLD_PARTICLE - plnew%status(2:nfrag) = NEW_PARTICLE - plnew%info(2:nfrag)%origin_type = "Hit and run fragment" - plnew%info(2:nfrag)%origin_time = param%t - do i = 2, nfrag - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(MERGED) - plnew%info(1) = pl%info(ibiggest) - plnew%status(1) = OLD_PARTICLE - end select - - if (param%lrotation) then - plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) - plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) - end if + plnew%mass(1:nfrag) = m_frag(1:nfrag) + plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) + plnew%radius(1:nfrag) = rad_frag(1:nfrag) + plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) - if (param%ltides) then - plnew%Q = pl%Q(ibiggest) - plnew%k2 = pl%k2(ibiggest) - plnew%tlag = pl%tlag(ibiggest) - end if + select type(info => plnew%info) + class is (symba_particle_info) + select case(status) + case(DISRUPTION) + info(1:nfrag)%origin_type = "Disruption" + plnew%status(1:nfrag) = NEW_PARTICLE + info(1:nfrag)%origin_time = param%t + do i = 1, nfrag + info(i)%origin_xh(:) = plnew%xh(:,i) + info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(SUPERCATASTROPHIC) + info(1:nfrag)%origin_type = "Supercatastrophic" + plnew%status(1:nfrag) = NEW_PARTICLE + info(1:nfrag)%origin_time = param%t + do i = 1, nfrag + info(i)%origin_xh(:) = plnew%xh(:,i) + info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(HIT_AND_RUN_DISRUPT) + select type(plinfo => pl%info) + class is (symba_particle_info) + info(1)%name = plinfo(ibiggest)%name + info(1)%origin_xh(:) = plinfo(ibiggest)%origin_xh(:) + info(1)%origin_vh(:) = plinfo(ibiggest)%origin_vh(:) + end select + plnew%status(1) = OLD_PARTICLE + plnew%status(2:nfrag) = NEW_PARTICLE + info(2:nfrag)%origin_type = "Hit and run fragment" + info(2:nfrag)%origin_time = param%t + do i = 2, nfrag + info(i)%origin_xh(:) = plnew%xh(:,i) + info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(MERGED) + select type(plinfo => pl%info) + class is (symba_particle_info) + info(1)%name = plinfo(ibiggest)%name + info(1)%origin_xh(:) = plinfo(ibiggest)%origin_xh(:) + info(1)%origin_vh(:) = plinfo(ibiggest)%origin_vh(:) + end select + plnew%status(1) = OLD_PARTICLE + end select + end select + + if (param%lrotation) then + plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) + plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) + end if + + if (param%ltides) then + plnew%Q = pl%Q(ibiggest) + plnew%k2 = pl%k2(ibiggest) + plnew%tlag = pl%tlag(ibiggest) + end if - call plnew%set_mu(cb) - !Copy over or set integration parameters for new bodies - plnew%lcollision(1:nfrag) = .false. - plnew%ldiscard(1:nfrag) = .false. - plnew%levelg(1:nfrag) = pl%levelg(ibiggest) - plnew%levelm(1:nfrag) = pl%levelm(ibiggest) - - ! Append the new merged body to the list and record how many we made - nstart = pl_adds%nbody + 1 - nend = pl_adds%nbody + plnew%nbody - call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) - pl_adds%ncomp(nstart:nend) = plnew%nbody - - call plnew%setup(0, param) - deallocate(plnew) - end associate + call plnew%set_mu(cb) + !Copy over or set integration parameters for new bodies + plnew%lcollision(1:nfrag) = .false. + plnew%ldiscard(1:nfrag) = .false. + plnew%levelg(1:nfrag) = pl%levelg(ibiggest) + plnew%levelm(1:nfrag) = pl%levelm(ibiggest) + + ! Append the new merged body to the list and record how many we made + nstart = pl_adds%nbody + 1 + nend = pl_adds%nbody + plnew%nbody + call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) + pl_adds%ncomp(nstart:nend) = plnew%nbody + + call plnew%setup(0, param) + deallocate(plnew) + end associate + end select end select end select diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 542db70c9..281fe7cdb 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -2,76 +2,26 @@ use swiftest contains - module subroutine symba_io_dump_particle_info(system, param, lincludecb, tpidx, plidx) + module subroutine symba_io_dump_particle_info(self, iu) !! author: David A. Minton !! - !! Dumps the particle information data to a file. - !! Pass a list of array indices for test particles (tpidx) and/or massive bodies (plidx) to append + !! Reads in particle information object information from an open file unformatted file implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA extensions - logical, optional, intent(in) :: lincludecb !! Set to true to include the central body (default is false) - integer(I4B), dimension(:), optional, intent(in) :: tpidx !! Array of test particle indices to append to the particle file - integer(I4B), dimension(:), optional, intent(in) :: plidx !! Array of massive body indices to append to the particle file + class(symba_particle_info), intent(in) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number ! Internals - logical, save :: lfirst = .true. - integer(I4B), parameter :: LUN = 22 - integer(I4B) :: i - character(STRMAX) :: errmsg - - if (lfirst) then - select case(param%out_stat) - case('APPEND') - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case('NEW', 'UNKNOWN', 'REPLACE') - open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case default - write(*,*) 'Invalid status code',trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end select + character(STRMAX) :: errmsg - lfirst = .false. - else - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - end if - - if (present(lincludecb)) then - if (lincludecb) then - select type(cb => system%cb) - class is (symba_cb) - write(LUN, err = 667, iomsg = errmsg) cb%id - write(LUN, err = 667, iomsg = errmsg) cb%info - end select - end if - end if - - if (present(plidx) .and. (system%pl%nbody > 0)) then - select type(pl => system%pl) - class is (symba_pl) - do i = 1, size(plidx) - write(LUN, err = 667, iomsg = errmsg) pl%id(plidx(i)) - write(LUN, err = 667, iomsg = errmsg) pl%info(plidx(i)) - end do - end select - end if - - if (present(tpidx) .and. (system%tp%nbody > 0)) then - select type(tp => system%tp) - class is (symba_tp) - do i = 1, size(tpidx) - write(LUN, err = 667, iomsg = errmsg) tp%id(tpidx(i)) - write(LUN, err = 667, iomsg = errmsg) tp%info(tpidx(i)) - end do - end select - end if - - close(unit = LUN, err = 667, iomsg = errmsg) + write(iu, err = 667, iomsg = errmsg) self%origin_type + write(iu, err = 667, iomsg = errmsg) self%origin_time + write(iu, err = 667, iomsg = errmsg) self%origin_xh(:) + write(iu, err = 667, iomsg = errmsg) self%origin_vh(:) return 667 continue - write(*,*) "Error reading central body file: " // trim(adjustl(errmsg)) + write(*,*) "Error writing particle metadata information from file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) end subroutine symba_io_dump_particle_info @@ -120,8 +70,6 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms ifirst = ilast + 1 param_value = io_get_token(line_trim, ifirst, ilast, iostat) select case (param_name) - case ("PARTICLE_OUT") - param%particle_out = param_value case ("FRAGMENTATION") call io_toupper(param_value) if (param_value == "YES" .or. param_value == "T") self%lfragmentation = .true. @@ -226,7 +174,6 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms ! Special handling is required for writing the random number seed array as its size is not known until runtime ! For the "SEED" parameter line, the first value will be the size of the seed array and the rest will be the seed array elements - write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%GMTINY; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "MIN_GMFRAG"; write(param_value, Rfmt) param%min_GMfrag; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) @@ -256,70 +203,29 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms end subroutine symba_io_param_writer - module subroutine symba_io_read_particle(system, param) + module subroutine symba_io_read_in_particle_info(self, iu) !! author: David A. Minton !! - !! Reads an old particle information file for a restartd run + !! Reads in particle information object information from an open file unformatted file implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system file - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions - + ! Arguments + class(symba_particle_info), intent(inout) :: self !! Particle metadata information object + integer(I4B), intent(in) :: iu !! Open file unit number ! Internals - integer(I4B), parameter :: LUN = 22 - integer(I4B) :: i, id, idx - logical :: lmatch - type(symba_particle_info) :: tmpinfo - character(STRMAX) :: errmsg - - open(unit = LUN, file = param%particle_out, status = 'OLD', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - - select type(cb => system%cb) - class is (symba_cb) - select type(pl => system%pl) - class is (symba_pl) - select type(tp => system%tp) - class is (symba_tp) - associate(npl => pl%nbody, ntp => tp%nbody) - do - lmatch = .false. - read(LUN, err = 667, iomsg = errmsg, end = 333) id - - if (id == cb%id) then - read(LUN, err = 667, iomsg = errmsg) cb%info - lmatch = .true. - else - if (npl > 0) then - idx = findloc(pl%id(1:npl), id, dim=1) - if (idx /= 0) then - read(LUN, err = 667, iomsg = errmsg) pl%info(idx) - lmatch = .true. - end if - end if - if (.not.lmatch .and. ntp > 0) then - idx = findloc(tp%id(1:ntp), id, dim=1) - if (idx /= 0) then - read(LUN, err = 667, iomsg = errmsg) tp%info(idx) - lmatch = .true. - end if - end if - end if - if (.not.lmatch) then - read(LUN, err = 667, iomsg = errmsg) tmpinfo - end if - end do - end associate - close(unit = LUN, err = 667, iomsg = errmsg) - end select - end select - end select + character(STRMAX) :: errmsg + + call io_read_in_particle_info(self, iu) + read(iu, err = 667, iomsg = errmsg) self%origin_type + read(iu, err = 667, iomsg = errmsg) self%origin_time + read(iu, err = 667, iomsg = errmsg) self%origin_xh(:) + read(iu, err = 667, iomsg = errmsg) self%origin_vh(:) - 333 continue return 667 continue - write(*,*) "Error reading particle information file: " // trim(adjustl(errmsg)) + write(*,*) "Error reading particle metadata information from file: " // trim(adjustl(errmsg)) call util_exit(FAILURE) - end subroutine symba_io_read_particle + end subroutine symba_io_read_in_particle_info module subroutine symba_io_write_discard(self, param) diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 166f6e804..f7cc82024 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -2,60 +2,48 @@ use swiftest contains - module subroutine symba_setup_initialize_particle_info(system, param) + module subroutine symba_setup_initialize_particle_info_system(self, param) !! author: David A. Minton !! !! Initializes a new particle information data structure with initial conditions recorded implicit none ! Argumets - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA extensions + class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals integer(I4B) :: i - integer(I4B), dimension(:), allocatable :: idx - - select type(cb => system%cb) - class is (symba_cb) - cb%info%origin_type = "Central body" - cb%info%origin_time = param%t0 - cb%info%origin_xh(:) = 0.0_DP - cb%info%origin_vh(:) = 0.0_DP - call symba_io_dump_particle_info(system, param, lincludecb=.true.) + + select type(cbinfo => self%cb%info) + class is (symba_particle_info) + cbinfo%origin_type = "Initial conditions" + cbinfo%origin_time = param%t0 + cbinfo%origin_xh(:) = 0.0_DP + cbinfo%origin_vh(:) = 0.0_DP end select - select type(pl => system%pl) - class is (symba_pl) - do i = 1, pl%nbody - pl%info(i)%origin_type = "Initial conditions" - pl%info(i)%origin_time = param%t0 - pl%info(i)%origin_xh(:) = pl%xh(:,i) - pl%info(i)%origin_vh(:) = pl%vh(:,i) + select type(plinfo => self%pl%info) + class is (symba_particle_info) + do i = 1, self%pl%nbody + plinfo(i)%origin_type = "Initial conditions" + plinfo(i)%origin_time = param%t0 + plinfo(i)%origin_xh(:) = self%pl%xh(:,i) + plinfo(i)%origin_vh(:) = self%pl%vh(:,i) end do - if (pl%nbody > 0) then - allocate(idx(pl%nbody)) - call symba_io_dump_particle_info(system, param, plidx=[(i, i=1, pl%nbody)]) - deallocate(idx) - end if end select - select type(tp => system%tp) - class is (symba_tp) - do i = 1, tp%nbody - tp%info(i)%origin_type = "Initial conditions" - tp%info(i)%origin_time = param%t0 - tp%info(i)%origin_xh(:) = tp%xh(:,i) - tp%info(i)%origin_vh(:) = tp%vh(:,i) + select type(tpinfo => self%tp%info) + class is (symba_particle_info) + do i = 1, self%tp%nbody + tpinfo(i)%origin_type = "Initial conditions" + tpinfo(i)%origin_time = param%t0 + tpinfo(i)%origin_xh(:) = self%tp%xh(:,i) + tpinfo(i)%origin_vh(:) = self%tp%vh(:,i) end do - if (tp%nbody > 0) then - allocate(idx(tp%nbody)) - call symba_io_dump_particle_info(system, param, tpidx=[(i, i=1, tp%nbody)]) - deallocate(idx) - end if end select - + call setup_initialize_particle_info_system(self, param) return - end subroutine symba_setup_initialize_particle_info + end subroutine symba_setup_initialize_particle_info_system module subroutine symba_setup_initialize_system(self, param) @@ -77,14 +65,6 @@ module subroutine symba_setup_initialize_system(self, param) call system%pltpenc_list%setup(0) call system%plplenc_list%setup(0) call system%plplcollision_list%setup(0) - select type(param) - class is (symba_parameters) - if (param%lrestart) then - call symba_io_read_particle(system, param) - else - call symba_setup_initialize_particle_info(system, param) - end if - end select end associate return @@ -135,6 +115,8 @@ module subroutine symba_setup_pl(self, n, param) call setup_pl(self, n, param) if (n <= 0) return + + if (allocated(self%info)) deallocate(self%info) if (allocated(self%lcollision)) deallocate(self%lcollision) if (allocated(self%lencounter)) deallocate(self%lencounter) if (allocated(self%lmtiny)) deallocate(self%lmtiny) @@ -148,6 +130,7 @@ module subroutine symba_setup_pl(self, n, param) if (allocated(self%kin)) deallocate(self%kin) if (allocated(self%info)) deallocate(self%info) + allocate(symba_particle_info :: self%info(n)) allocate(self%lcollision(n)) allocate(self%lencounter(n)) allocate(self%lmtiny(n)) @@ -159,7 +142,6 @@ module subroutine symba_setup_pl(self, n, param) allocate(self%peri(n)) allocate(self%atp(n)) allocate(self%kin(n)) - allocate(self%info(n)) self%lcollision(:) = .false. self%lencounter(:) = .false. diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index aa2fe0234..f5201ac6c 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -2,33 +2,6 @@ use swiftest contains - module subroutine symba_util_append_arr_info(arr, source, nold, nsrc, lsource_mask) - !! author: David A. Minton - !! - !! Append a single array of particle information type onto another. If the destination array is not allocated, or is not big enough, this will allocate space for it. - implicit none - ! Arguments - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - type(symba_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append - integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively - logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to - ! Internals - integer(I4B) :: nnew - - if (.not. allocated(source)) return - - nnew = count(lsource_mask(1:nsrc)) - if (.not.allocated(arr)) then - allocate(arr(nold+nnew)) - else - call util_resize(arr, nold + nnew) - end if - - arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) - - return - end subroutine symba_util_append_arr_info - module subroutine symba_util_append_arr_kin(arr, source, nold, nsrc, lsource_mask) !! author: David A. Minton @@ -210,26 +183,6 @@ module subroutine symba_util_copy_encounter(self, source) end subroutine symba_util_copy_encounter - module subroutine symba_util_fill_arr_info(keeps, inserts, lfill_list) - !! author: David A. Minton - !! - !! Performs a fill operation on a single array of particle origin information types - !! This is the inverse of a spill operation - implicit none - ! Arguments - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - type(symba_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep - logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps - - if (.not.allocated(keeps) .or. .not.allocated(inserts)) return - - keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:)) - keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:)) - - return - end subroutine symba_util_fill_arr_info - - module subroutine symba_util_fill_arr_kin(keeps, inserts, lfill_list) !! author: David A. Minton !! @@ -501,7 +454,7 @@ module subroutine symba_util_rearray_pl(self, system, param) lmask(npl+1:npl+nadd) = pl%status(npl+1:npl+nadd) == NEW_PARTICLE npl = pl%nbody - call symba_io_dump_particle_info(system, param, plidx=pack([(i, i=1, npl)], lmask)) + call pl%dump_particle_info(param, idx=pack([(i, i=1, npl)], lmask)) deallocate(lmask) end if @@ -578,40 +531,6 @@ module subroutine symba_util_rearray_pl(self, system, param) end subroutine symba_util_rearray_pl - module subroutine symba_util_resize_arr_info(arr, nnew) - !! author: David A. Minton - !! - !! Resizes an array component of type character string. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. - implicit none - ! Arguments - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize - integer(I4B), intent(in) :: nnew !! New size - ! Internals - type(symba_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated - integer(I4B) :: nold !! Old size - - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return - - if (nnew == 0) then - deallocate(arr) - return - end if - - allocate(tmp(nnew)) - if (nnew > nold) then - tmp(1:nold) = arr(1:nold) - else - tmp(1:nnew) = arr(1:nnew) - end if - call move_alloc(tmp, arr) - - return - end subroutine symba_util_resize_arr_info - - module subroutine symba_util_resize_arr_kin(arr, nnew) !! author: David A. Minton !! @@ -803,26 +722,6 @@ module subroutine symba_util_sort_tp(self, sortby, ascending) end subroutine symba_util_sort_tp - module subroutine symba_util_sort_rearrange_arr_info(arr, ind, n) - !! author: David A. Minton - !! - !! Rearrange a single array of particle information type in-place from an index list. - implicit none - ! Arguments - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against - integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange - ! Internals - type(symba_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation - - if (.not. allocated(arr) .or. n <= 0) return - allocate(tmp, source=arr) - tmp(1:n) = arr(ind(1:n)) - call move_alloc(tmp, arr) - - return - end subroutine symba_util_sort_rearrange_arr_info - module subroutine symba_util_sort_rearrange_arr_kin(arr, ind, n) !! author: David A. Minton @@ -908,45 +807,6 @@ module subroutine symba_util_sort_rearrange_tp(self, ind) end subroutine symba_util_sort_rearrange_tp - module subroutine symba_util_spill_arr_info(keeps, discards, lspill_list, ldestructive) - !! author: David A. Minton - !! - !! Performs a spill operation on a single array of particle origin information types - !! This is the inverse of a spill operation - implicit none - ! Arguments - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - type(symba_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards - logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss - logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not - ! Internals - integer(I4B) :: nspill, nkeep, nlist - - nkeep = count(.not.lspill_list(:)) - nspill = count(lspill_list(:)) - nlist = size(lspill_list(:)) - - if (.not.allocated(keeps) .or. nspill == 0) return - if (.not.allocated(discards)) then - allocate(discards(nspill)) - else if (size(discards) /= nspill) then - deallocate(discards) - allocate(discards(nspill)) - end if - - discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) - if (ldestructive) then - if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) - else - deallocate(keeps) - end if - end if - - return - end subroutine symba_util_spill_arr_info - - module subroutine symba_util_spill_arr_kin(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton !! diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 971e3c950..11664827e 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -116,6 +116,34 @@ module subroutine util_append_arr_I4B(arr, source, nold, nsrc, lsource_mask) end subroutine util_append_arr_I4B + module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) + !! author: David A. Minton + !! + !! Append a single array of particle information type onto another. If the destination array is not allocated, or is not big enough, this will allocate space for it. + implicit none + ! Arguments + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append + integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nnew + + if (.not. allocated(source)) return + + nnew = count(lsource_mask(1:nsrc)) + if (.not.allocated(arr)) then + allocate(arr(nold+nnew)) + else + call util_resize(arr, nold + nnew) + end if + + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + + return + end subroutine util_append_arr_info + + module subroutine util_append_arr_logical(arr, source, nold, nsrc, lsource_mask) !! author: David A. Minton !! @@ -156,7 +184,7 @@ module subroutine util_append_body(self, source, lsource_mask) logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to associate(nold => self%nbody, nsrc => source%nbody) - call util_append(self%name, source%name, nold, nsrc, lsource_mask) + call util_append(self%info, source%info, nold, nsrc, lsource_mask) call util_append(self%id, source%id, nold, nsrc, lsource_mask) call util_append(self%status, source%status, nold, nsrc, lsource_mask) call util_append(self%ldiscard, source%ldiscard, nold, nsrc, lsource_mask) diff --git a/src/util/util_fill.f90 b/src/util/util_fill.f90 index 4a5a70311..b1bf951d0 100644 --- a/src/util/util_fill.f90 +++ b/src/util/util_fill.f90 @@ -82,6 +82,27 @@ module subroutine util_fill_arr_I4B(keeps, inserts, lfill_list) return end subroutine util_fill_arr_I4B + + module subroutine util_fill_arr_info(keeps, inserts, lfill_list) + !! author: David A. Minton + !! + !! Performs a fill operation on a single array of particle origin information types + !! This is the inverse of a spill operation + implicit none + ! Arguments + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep + logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + + if (.not.allocated(keeps) .or. .not.allocated(inserts)) return + + keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:)) + keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:)) + + return + end subroutine util_fill_arr_info + + module subroutine util_fill_arr_logical(keeps, inserts, lfill_list) !! author: David A. Minton !! @@ -119,7 +140,7 @@ module subroutine util_fill_body(self, inserts, lfill_list) !> Fill all the common components associate(keeps => self) call util_fill(keeps%id, inserts%id, lfill_list) - call util_fill(keeps%name, inserts%name, lfill_list) + call util_fill(keeps%info, inserts%info, lfill_list) call util_fill(keeps%status, inserts%status, lfill_list) call util_fill(keeps%ldiscard, inserts%ldiscard, lfill_list) call util_fill(keeps%lmask, inserts%lmask, lfill_list) diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index 1dee5fdb3..e76d53a8d 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -138,6 +138,41 @@ module subroutine util_resize_arr_I4B(arr, nnew) end subroutine util_resize_arr_I4B + + module subroutine util_resize_arr_info(arr, nnew) + !! author: David A. Minton + !! + !! Resizes an array component of type character string. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + implicit none + ! Arguments + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize + integer(I4B), intent(in) :: nnew !! New size + ! Internals + class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated + integer(I4B) :: nold !! Old size + + if (.not. allocated(arr) .or. nnew < 0) return + + nold = size(arr) + if (nnew == nold) return + + if (nnew == 0) then + deallocate(arr) + return + end if + + allocate(tmp(nnew)) + if (nnew > nold) then + tmp(1:nold) = arr(1:nold) + else + tmp(1:nnew) = arr(1:nnew) + end if + call move_alloc(tmp, arr) + + return + end subroutine util_resize_arr_info + + module subroutine util_resize_arr_logical(arr, nnew) !! author: David A. Minton !! @@ -181,7 +216,7 @@ module subroutine util_resize_body(self, nnew) class(swiftest_body), intent(inout) :: self !! Swiftest body object integer(I4B), intent(in) :: nnew !! New size neded - call util_resize(self%name, nnew) + call util_resize(self%info, nnew) call util_resize(self%id, nnew) call util_resize(self%status, nnew) call util_resize(self%ldiscard, nnew) diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index b2a5464aa..4b96dd9d1 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -328,7 +328,7 @@ module subroutine util_sort_rearrange_body(self, ind) associate(n => self%nbody) call util_sort_rearrange(self%id, ind, n) - call util_sort_rearrange(self%name, ind, n) + call util_sort_rearrange(self%info, ind, n) call util_sort_rearrange(self%status, ind, n) call util_sort_rearrange(self%ldiscard, ind, n) call util_sort_rearrange(self%xh, ind, n) @@ -459,6 +459,27 @@ module subroutine util_sort_rearrange_arr_logical(arr, ind, n) end subroutine util_sort_rearrange_arr_logical + module subroutine util_sort_rearrange_arr_info(arr, ind, n) + !! author: David A. Minton + !! + !! Rearrange a single array of particle information type in-place from an index list. + implicit none + ! Arguments + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + ! Internals + class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + + if (.not. allocated(arr) .or. n <= 0) return + allocate(tmp, source=arr) + tmp(1:n) = arr(ind(1:n)) + call move_alloc(tmp, arr) + + return + end subroutine util_sort_rearrange_arr_info + + module subroutine util_sort_rearrange_pl(self, ind) !! author: David A. Minton !! diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 63cce317a..66e5d22d8 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -199,7 +199,46 @@ module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) return end subroutine util_spill_arr_I8B - + + + module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive) + !! author: David A. Minton + !! + !! Performs a spill operation on a single array of particle origin information types + !! This is the inverse of a spill operation + implicit none + ! Arguments + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss + logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not + ! Internals + integer(I4B) :: nspill, nkeep, nlist + + nkeep = count(.not.lspill_list(:)) + nspill = count(lspill_list(:)) + nlist = size(lspill_list(:)) + + if (.not.allocated(keeps) .or. nspill == 0) return + if (.not.allocated(discards)) then + allocate(discards(nspill)) + else if (size(discards) /= nspill) then + deallocate(discards) + allocate(discards(nspill)) + end if + + discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) + if (ldestructive) then + if (nkeep > 0) then + keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + else + deallocate(keeps) + end if + end if + + return + end subroutine util_spill_arr_info + module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestructive) !! author: David A. Minton @@ -257,7 +296,7 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) !> Spill all the common components associate(keeps => self) call util_spill(keeps%id, discards%id, lspill_list, ldestructive) - call util_spill(keeps%name, discards%name, lspill_list, ldestructive) + call util_spill(keeps%info, discards%info, lspill_list, ldestructive) call util_spill(keeps%status, discards%status, lspill_list, ldestructive) call util_spill(keeps%lmask, discards%lmask, lspill_list, ldestructive) call util_spill(keeps%ldiscard, discards%ldiscard, lspill_list, ldestructive) From a634afd964889a5e7f327f3454b70e3c40932012 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 18:29:31 -0400 Subject: [PATCH 235/315] Added SyMBA variables to NetCDF --- examples/symba_mars_disk/testnetcdf.ipynb | 1132 +-------------------- examples/whm_gr_test/Untitled.ipynb | 552 +++++++++- python/swiftest/swiftest/io.py | 9 +- src/io/io.f90 | 2 + src/modules/swiftest_classes.f90 | 5 +- src/modules/swiftest_globals.f90 | 7 +- src/modules/symba_classes.f90 | 48 +- src/netcdf/netcdf.f90 | 33 +- src/symba/symba_netcdf.f90 | 115 +++ 9 files changed, 709 insertions(+), 1194 deletions(-) create mode 100644 src/symba/symba_netcdf.f90 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index d98408178..88e68d95f 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -36,8 +36,6 @@ "\n", "Creating Dataset\n", "Successfully converted 11 output frames.\n", - "\n", - "Adding particle info to Dataset\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] } @@ -49,1096 +47,7 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:      (id: 1521, time: 11)\n",
    -       "Coordinates:\n",
    -       "  * id           (id) int64 1 2 3 4 5 6 7 ... 1515 1516 1517 1518 1519 1520 1521\n",
    -       "  * time         (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n",
    -       "Data variables: (12/46)\n",
    -       "    npl          (time) int32 1500 1500 1500 1500 1500 ... 1518 1518 1518 1518\n",
    -       "    ntp          (time) int32 0 0 0 0 0 0 0 0 0 0 0\n",
    -       "    xhx          (id, time) float64 0.0 0.0 0.0 ... 1.587e+06 2.838e+06\n",
    -       "    xhy          (id, time) float64 0.0 0.0 0.0 ... -9.103e+06 -8.791e+06\n",
    -       "    xhz          (id, time) float64 0.0 0.0 0.0 ... -3.433e+04 -3.905e+04\n",
    -       "    vhx          (id, time) float64 0.0 0.0 0.0 ... 2.118e+03 2.045e+03\n",
    -       "    ...           ...\n",
    -       "    py_origin    (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n",
    -       "    pz_origin    (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n",
    -       "    vhx_origin   (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n",
    -       "    vhy_origin   (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n",
    -       "    vhz_origin   (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n",
    -       "    origin_type  (id) <U32 'Central body' ... 'Supercatastrophic'
    " - ], - "text/plain": [ - "\n", - "Dimensions: (id: 1521, time: 11)\n", - "Coordinates:\n", - " * id (id) int64 1 2 3 4 5 6 7 ... 1515 1516 1517 1518 1519 1520 1521\n", - " * time (time) float64 0.0 600.0 1.2e+03 ... 4.8e+03 5.4e+03 6e+03\n", - "Data variables: (12/46)\n", - " npl (time) int32 ...\n", - " ntp (time) int32 ...\n", - " xhx (id, time) float64 ...\n", - " xhy (id, time) float64 ...\n", - " xhz (id, time) float64 ...\n", - " vhx (id, time) float64 ...\n", - " ... ...\n", - " py_origin (id) float64 0.0 -4.373e+06 ... -8.094e+06 -8.123e+06\n", - " pz_origin (id) float64 0.0 -9.627e+03 2.41e+04 ... 2.923e+03 -3.139e+03\n", - " vhx_origin (id) float64 0.0 988.0 1.016e+03 ... 1.881e+03 1.887e+03\n", - " vhy_origin (id) float64 0.0 -1.888e+03 ... -1.004e+03 -1.027e+03\n", - " vhz_origin (id) float64 0.0 10.69 -2.604 -1.465 ... 18.95 -9.448 -12.51\n", - " origin_type (id) \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:      (id: 1521)\n",
    -       "Coordinates:\n",
    -       "  * id           (id) int32 1 1130 216 1326 20 27 ... 1517 1518 1519 1520 1521\n",
    -       "Data variables:\n",
    -       "    time_origin  (id) float64 0.0 0.0 0.0 0.0 ... 2.4e+03 2.4e+03 2.4e+03\n",
    -       "    xhx_origin   (id) float64 0.0 1.047e+07 -1.034e+07 ... -4.435e+06 -4.426e+06\n",
    -       "    py_origin    (id) float64 0.0 3.395e+06 2.852e+05 ... -8.094e+06 -8.123e+06\n",
    -       "    pz_origin    (id) float64 0.0 2.709e+04 -3.221e+04 ... 2.923e+03 -3.139e+03\n",
    -       "    vhx_origin   (id) float64 0.0 -597.1 -50.0 ... 1.885e+03 1.881e+03 1.887e+03\n",
    -       "    vhy_origin   (id) float64 0.0 1.881e+03 -2.018e+03 ... -1.004e+03 -1.027e+03\n",
    -       "    vhz_origin   (id) float64 0.0 -6.96 11.61 3.592 ... 18.95 -9.448 -12.51\n",
    -       "    origin_type  (id) <U32 'Central body' ... 'Supercatastrophic'
    " - ], - "text/plain": [ - "\n", - "Dimensions: (id: 1521)\n", - "Coordinates:\n", - " * id (id) int32 1 1130 216 1326 20 27 ... 1517 1518 1519 1520 1521\n", - "Data variables:\n", - " time_origin (id) float64 0.0 0.0 0.0 0.0 ... 2.4e+03 2.4e+03 2.4e+03\n", - " xhx_origin (id) float64 0.0 1.047e+07 -1.034e+07 ... -4.435e+06 -4.426e+06\n", - " py_origin (id) float64 0.0 3.395e+06 2.852e+05 ... -8.094e+06 -8.123e+06\n", - " pz_origin (id) float64 0.0 2.709e+04 -3.221e+04 ... 2.923e+03 -3.139e+03\n", - " vhx_origin (id) float64 0.0 -597.1 -50.0 ... 1.885e+03 1.881e+03 1.887e+03\n", - " vhy_origin (id) float64 0.0 1.881e+03 -2.018e+03 ... -1.004e+03 -1.027e+03\n", - " vhz_origin (id) float64 0.0 -6.96 11.61 3.592 ... 18.95 -9.448 -12.51\n", - " origin_type (id) 0, drop=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "216", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.Int64HashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 216", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnewp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m216\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/dataset.py\u001b[0m in \u001b[0;36msel\u001b[0;34m(self, indexers, method, tolerance, drop, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 2347\u001b[0m \u001b[0mindexers\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0meither_dict_or_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexers_kwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"sel\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2348\u001b[0m pos_indexers, new_indexes = remap_label_indexers(\n\u001b[0;32m-> 2349\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2350\u001b[0m )\n\u001b[1;32m 2351\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpos_indexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdrop\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdrop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/coordinates.py\u001b[0m in \u001b[0;36mremap_label_indexers\u001b[0;34m(obj, indexers, method, tolerance, **indexers_kwargs)\u001b[0m\n\u001b[1;32m 418\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 419\u001b[0m pos_indexers, new_indexes = indexing.remap_label_indexers(\n\u001b[0;32m--> 420\u001b[0;31m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_indexers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 421\u001b[0m )\n\u001b[1;32m 422\u001b[0m \u001b[0;31m# attach indexer's coordinate to pos_indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mremap_label_indexers\u001b[0;34m(data_obj, indexers, method, tolerance)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[0mcoords_dtype\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[0mlabel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmaybe_cast_to_coords_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords_dtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 278\u001b[0;31m \u001b[0midxr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_idx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconvert_label_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 279\u001b[0m \u001b[0mpos_indexers\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midxr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnew_idx\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mconvert_label_indexer\u001b[0;34m(index, label, index_name, method, tolerance)\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 200\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"b\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 201\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 216" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -1495,43 +404,28 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.Dataset>\n",
    -       "Dimensions:      ()\n",
    +       "
    <xarray.DataArray 'particle_type' (id: 1521)>\n",
    +       "array([b'Central Body', b'Massive Body', b'Massive Body', ..., b'Massive Body',\n",
    +       "       b'Massive Body', b'Massive Body'], dtype='|S32')\n",
            "Coordinates:\n",
    -       "    id           int32 216\n",
    -       "Data variables:\n",
    -       "    time_origin  float64 0.0\n",
    -       "    xhx_origin   float64 -1.034e+07\n",
    -       "    py_origin    float64 2.852e+05\n",
    -       "    pz_origin    float64 -3.221e+04\n",
    -       "    vhx_origin   float64 -50.0\n",
    -       "    vhy_origin   float64 -2.018e+03\n",
    -       "    vhz_origin   float64 11.61\n",
    -       "    origin_type  <U32 'Initial conditions'
    " + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " ], "text/plain": [ - "\n", - "Dimensions: ()\n", + "\n", + "array([b'Central Body', b'Massive Body', b'Massive Body', ..., b'Massive Body',\n", + " b'Massive Body', b'Massive Body'], dtype='|S32')\n", "Coordinates:\n", - " id int32 216\n", - "Data variables:\n", - " time_origin float64 0.0\n", - " xhx_origin float64 -1.034e+07\n", - " py_origin float64 2.852e+05\n", - " pz_origin float64 -3.221e+04\n", - " vhx_origin float64 -50.0\n", - " vhy_origin float64 -2.018e+03\n", - " vhz_origin float64 11.61\n", - " origin_type
    <xarray.DataArray 'name' (str: 32)>\n",
    -       "array([b'M', b'e', b'r', b'c', b'u', b'r', b'y', b'', b'', b'', b'', b'', b'',\n",
    -       "       b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'',\n",
    -       "       b'', b'', b'', b'', b''], dtype='|S1')\n",
    +       "
    <xarray.DataArray 'name' (id: 9)>\n",
    +       "array(['Sun', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn',\n",
    +       "       'Uranus', 'Neptune'], dtype='<U7')\n",
            "Coordinates:\n",
    -       "    id       int32 1\n",
    -       "Dimensions without coordinates: str
    " + " * id (id) int32 0 1 2 3 4 5 6 7 8
    " ], "text/plain": [ - "\n", - "array([b'M', b'e', b'r', b'c', b'u', b'r', b'y', b'', b'', b'', b'', b'', b'',\n", - " b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'', b'',\n", - " b'', b'', b'', b'', b''], dtype='|S1')\n", + "\n", + "array(['Sun', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn',\n", + " 'Uranus', 'Neptune'], dtype=', line 2)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m ds['name'].sel(id=i) = 'test'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m can't assign to function call\n" - ] - } - ], - "source": [ - "for i in ds.id:\n", - " ds['name'].sel(id=i) = 'test'" + "ds['name']" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:        (id: 9, time: 3)\n",
    +       "Coordinates:\n",
    +       "  * time           (time) float64 0.0 0.0006845 0.001369\n",
    +       "  * id             (id) int32 0 1 2 3 4 5 6 7 8\n",
    +       "Data variables: (12/19)\n",
    +       "    npl            (time) int32 8 8 8\n",
    +       "    ntp            (time) int32 0 0 0\n",
    +       "    name           (id) <U7 'Sun' 'Mercury' 'Venus' ... 'Uranus' 'Neptune'\n",
    +       "    particle_type  (id) <U12 'Central Body' 'Massive Body' ... 'Massive Body'\n",
    +       "    xhx            (time, id) float64 0.0 -0.2951 -0.211 ... 6.48 14.74 29.58\n",
    +       "    xhy            (time, id) float64 0.0 -0.3435 -0.6945 ... 13.13 -4.487\n",
    +       "    ...             ...\n",
    +       "    capom          (time, id) float64 0.0 0.8431 1.337 ... 1.983 1.293 2.299\n",
    +       "    omega          (time, id) float64 0.0 0.5094 0.9619 ... 5.859 1.673 4.29\n",
    +       "    capm           (time, id) float64 0.0 2.426 2.107 ... 3.935 4.116 5.838\n",
    +       "    Gmass          (time, id) float64 39.48 6.554e-06 ... 0.001724 0.002034\n",
    +       "    rhill          (time, id) float64 0.0 0.001475 0.006759 ... 0.4697 0.7814\n",
    +       "    radius         (time, id) float64 0.00465 1.631e-05 ... 0.0001695 0.0001646
    " + ], "text/plain": [ - "array('SMVEMJSUNueeaauarenrnrrptap\\x00cutsiunt\\x00ush\\x00truu\\x00r\\x00\\x00\\x00ensn\\x00y\\x00\\x00\\x00r\\x00\\x00e',\n", - " dtype='\n", + "Dimensions: (id: 9, time: 3)\n", + "Coordinates:\n", + " * time (time) float64 0.0 0.0006845 0.001369\n", + " * id (id) int32 0 1 2 3 4 5 6 7 8\n", + "Data variables: (12/19)\n", + " npl (time) int32 ...\n", + " ntp (time) int32 ...\n", + " name (id) of fragments produced in collisional events. type :: swiftest_particle_info character(len=NAMELEN) :: name !! Non-unique name - character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. CentralBody, MassiveBody, TestParticle) + character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) contains procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index dd6752b8f..b84e7f2f9 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -55,9 +55,9 @@ module swiftest_globals character(*), parameter :: XV = 'XV' !! Symbolic name for binary output file contents for cartesian position and velocity vectors character(*), parameter :: XVEL = 'XVEL' !! Symbolic name for binary output file contents for both cartesian position and velocity and orbital elements - character(*), parameter :: CB_TYPE_NAME = "CentralBody" - character(*), parameter :: PL_TYPE_NAME = "MassiveBody" - character(*), parameter :: TP_TYPE_NAME = "TestParticle" + character(*), parameter :: CB_TYPE_NAME = "Central Body" + character(*), parameter :: PL_TYPE_NAME = "Massive Body" + character(*), parameter :: TP_TYPE_NAME = "Test Particle" ! OpenMP Parameters integer(I4B) :: nthreads = 1 !! Number of OpenMP threads @@ -139,6 +139,7 @@ module swiftest_globals character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension character(*), parameter :: ID_DIMNAME = "id" !! NetCDF name of the particle id dimension character(*), parameter :: STR_DIMNAME = "str" !! NetCDF name of the particle id dimension + character(*), parameter :: PTYPE_VARNAME = "particle_type" ! NetCDF name of the particle type variable character(*), parameter :: NAME_VARNAME = "name" !! NetCDF name of the particle name variable character(*), parameter :: NPL_VARNAME = "npl" !! NetCDF name of the number of active massive bodies variable character(*), parameter :: NTP_VARNAME = "ntp" !! NetCDF name of the number of active test particles variable diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 5294efa64..18cb8fe96 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -4,7 +4,7 @@ module symba_classes !! Definition of classes and methods specific to the Democratic SyMBAcentric Method !! Adapted from David E. Kaufmann's Swifter routine: helio.f90 use swiftest_globals - use swiftest_classes, only : swiftest_parameters, swiftest_base, swiftest_encounter, swiftest_particle_info + use swiftest_classes, only : swiftest_parameters, swiftest_base, swiftest_encounter, swiftest_particle_info, netcdf_parameters use helio_classes, only : helio_cb, helio_pl, helio_tp, helio_nbody_system use rmvs_classes, only : rmvs_chk_ind implicit none @@ -14,6 +14,28 @@ module symba_classes integer(I4B), private, parameter :: NTENC = 3 real(DP), private, parameter :: RHSCALE = 6.5_DP real(DP), private, parameter :: RSHELL = 0.48075_DP + character(*), parameter :: ORIGIN_TYPE_VARNAME = "origin_type" + character(*), parameter :: ORIGIN_TIME_VARNAME = "origin_time" + character(*), parameter :: ORIGIN_XHX_VARNAME = "origin_xhx" + character(*), parameter :: ORIGIN_XHY_VARNAME = "origin_xhy" + character(*), parameter :: ORIGIN_XHZ_VARNAME = "origin_xhz" + character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" + character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" + character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" + + type, extends(netcdf_parameters) :: symba_netcdf_parameters + integer(I4B) :: origin_type_varid !! NetCDF ID for the origin type + integer(I4B) :: origin_time_varid !! NetCDF ID for the origin type + integer(I4B) :: origin_xhx_varid !! NetCDF ID for the origin xh x component + integer(I4B) :: origin_xhy_varid !! NetCDF ID for the origin xh y component + integer(I4B) :: origin_xhz_varid !! NetCDF ID for the origin xh z component + integer(I4B) :: origin_vhx_varid !! NetCDF ID for the origin xh x component + integer(I4B) :: origin_vhy_varid !! NetCDF ID for the origin xh y component + integer(I4B) :: origin_vhz_varid !! NetCDF ID for the origin xh z component + contains + procedure :: initialize => symba_netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output objec + procedure :: open => symba_netcdf_open !! Opens a NetCDF file + end type symba_netcdf_parameters type, extends(swiftest_parameters) :: symba_parameters real(DP) :: GMTINY = -1.0_DP !! Smallest G*mass that is fully gravitating @@ -96,6 +118,8 @@ module symba_classes procedure :: sort => symba_util_sort_pl !! Sorts body arrays by a sortable componen procedure :: rearrange => symba_util_sort_rearrange_pl !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => symba_util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure :: write_frame_netcdf => symba_netcdf_write_frame_pl !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + generic :: write_frame => write_frame_netcdf end type symba_pl type, extends(symba_pl) :: symba_merger @@ -433,6 +457,28 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) integer(I4B), intent(in) :: irec !! Current recursion level integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration end subroutine symba_kick_encounter + + module subroutine symba_netcdf_initialize_output(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_netcdf_initialize_output + + module subroutine symba_netcdf_open(self, param) + use swiftest_classes, only : swiftest_parameters + implicit none + class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_netcdf_open + + module subroutine symba_netcdf_write_frame_pl(self, iu, param) + use swiftest_classes, only : swiftest_parameters, netcdf_parameters + implicit none + class(symba_pl), intent(in) :: self !! Swiftest particle object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_netcdf_write_frame_pl module subroutine symba_setup_initialize_particle_info_system(self, param) use swiftest_classes, only : swiftest_parameters diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 785e10a92..8925b05ac 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -47,7 +47,7 @@ module subroutine netcdf_initialize_output(self, param) integer(I4B) :: old_mode !! Create the new output file, deleting any previously existing output file of the same name - call check( nf90_create(param%outfile, NF90_HDF5, self%ncid) ) + call check( nf90_create(param%outfile, NF90_NETCDF4, self%ncid) ) call check( nf90_set_fill(self%ncid, nf90_nofill, old_mode) ) ! Define the NetCDF dimensions with particle name as the record dimension @@ -68,6 +68,7 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, NPL_VARNAME, NF90_INT, self%time_dimid, self%npl_varid) ) call check( nf90_def_var(self%ncid, NTP_VARNAME, NF90_INT, self%time_dimid, self%ntp_varid) ) call check( nf90_def_var(self%ncid, NAME_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%name_varid) ) + call check( nf90_def_var(self%ncid, PTYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%ptype_varid) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_def_var(self%ncid, XHX_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhx_varid) ) call check( nf90_def_var(self%ncid, XHY_VARNAME, self%out_type, [self%id_dimid, self%time_dimid], self%xhy_varid) ) @@ -119,8 +120,6 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) end if - call check( nf90_enddef(self%ncid) ) - return end subroutine netcdf_initialize_output @@ -144,6 +143,7 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, NPL_VARNAME, self%npl_varid)) call check( nf90_inq_varid(self%ncid, NTP_VARNAME, self%ntp_varid)) call check( nf90_inq_varid(self%ncid, NAME_VARNAME, self%name_varid)) + call check( nf90_inq_varid(self%ncid, PTYPE_VARNAME, self%ptype_varid)) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_inq_varid(self%ncid, XHX_VARNAME, self%xhx_varid)) @@ -214,9 +214,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) ! Internals integer(I4B) :: i, j, tslot, strlen, idslot integer(I4B), dimension(:), allocatable :: ind - character(len=:), allocatable :: name - - !! Open the netCDF file + character(len=:), allocatable :: charstring tslot = int(param%ioutput, kind=I4B) + 1 @@ -231,9 +229,14 @@ module subroutine netcdf_write_frame_base(self, iu, param) j = ind(i) idslot = self%id(j) + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - name = trim(adjustl(self%info(j)%name)) - strlen = len(name) - call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) + charstring = trim(adjustl(self%info(j)%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info(j)%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%xhy_varid, self%xh(2, j), start=[idslot, tslot]) ) @@ -277,9 +280,15 @@ module subroutine netcdf_write_frame_base(self, iu, param) class is (swiftest_cb) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - name = trim(adjustl(self%info%name)) - strlen = len(name) - call check( nf90_put_var(iu%ncid, iu%name_varid, name, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[idslot, tslot]) ) if (param%lrotation) then diff --git a/src/symba/symba_netcdf.f90 b/src/symba/symba_netcdf.f90 new file mode 100644 index 000000000..e4e715f35 --- /dev/null +++ b/src/symba/symba_netcdf.f90 @@ -0,0 +1,115 @@ +submodule (symba_classes) s_symba_netcdf + use swiftest + use netcdf +contains + + subroutine check(status) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Checks the status of all NetCDF operations to catch errors + implicit none + ! Arguments + integer, intent (in) :: status + + if(status /= nf90_noerr) then + write(*,*) trim(nf90_strerror(status)) + call util_exit(FAILURE) + end if + + return + end subroutine check + + module subroutine symba_netcdf_initialize_output(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Initialize a NetCDF file system and defines all variables. + implicit none + ! Arguments + class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + + + call netcdf_initialize_output(self, param) + + ! Define the variables + call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) + + return + + end subroutine symba_netcdf_initialize_output + + + module subroutine symba_netcdf_open(self, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Opens a NetCDF file and does the variable inquiries to activate variable ids + implicit none + ! Arguments + class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: old_mode + + call netcdf_open(self, param) + + call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_type_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHX_VARNAME, self%origin_vhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHY_VARNAME, self%origin_vhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHZ_VARNAME, self%origin_vhz_varid)) + + return + end subroutine symba_netcdf_open + + + module subroutine symba_netcdf_write_frame_pl(self, iu, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Write a frame of output of a SyMBA massive body data to the binary output file + !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method + implicit none + ! Arguments + class(symba_pl), intent(in) :: self !! SyMBA massive body object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: i, j, tslot, strlen, idslot + integer(I4B), dimension(:), allocatable :: ind + character(len=:), allocatable :: charstring + + call netcdf_write_frame_base(self, iu, param) + tslot = int(param%ioutput, kind=I4B) + 1 + select type(iu) + class is (symba_netcdf_parameters) + associate(npl => self%nbody) + if (npl == 0) return + allocate(ind(npl)) + call util_sort(self%id(1:npl), ind(1:npl)) + select type(info => self%info) + class is (symba_particle_info) + do i = 1, npl + j = ind(i) + idslot = self%id(j) + 1 + + charstring = trim(adjustl(info(j)%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + end do + end select + end associate + + end select + + return + end subroutine symba_netcdf_write_frame_pl +end submodule s_symba_netcdf \ No newline at end of file From 00b40c54531ecf784d795e262b231c3ea4e969b3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 19:47:41 -0400 Subject: [PATCH 236/315] Fixed a bunch of issues and now SyMBA info stuff is going into the NetCDF files properly --- src/fragmentation/fragmentation.f90 | 2 +- src/io/io.f90 | 21 +++-- src/modules/swiftest_classes.f90 | 118 ++++++++++++++-------------- src/modules/symba_classes.f90 | 21 ++++- src/setup/setup.f90 | 8 +- src/symba/symba_netcdf.f90 | 97 ++++++++++++++++++++++- src/util/util_append.f90 | 1 + 7 files changed, 191 insertions(+), 77 deletions(-) diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 7b6190400..43ed02599 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -364,7 +364,7 @@ subroutine construct_temporary_system(tmpsys, tmpparam) end where lexclude(npl+1:(npl + nfrag)) = .true. allocate(tmpparam, source=param) - call setup_construct_system(tmpsys, param) + call setup_construct_system(tmpsys, tmpparam) call tmpsys%tp%setup(0, param) deallocate(tmpsys%cb) allocate(tmpsys%cb, source=cb) diff --git a/src/io/io.f90 b/src/io/io.f90 index e54d67042..45d2e2b13 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1811,7 +1811,6 @@ module subroutine io_write_frame_system(self, param) character(len=STRMAX) :: errmsg integer(I4B) :: iu = BINUNIT !! Unit number for the output file to write frame to logical :: fileExists - type(netcdf_parameters) :: nciu if (.not.lfirst .and. param%lenergy) call self%conservation_report(param, lterminal=.true.) @@ -1861,17 +1860,17 @@ module subroutine io_write_frame_system(self, param) select case(param%out_stat) case('APPEND') - call nciu%open(param) + call param%nciu%open(param) case('NEW', 'REPLACE', 'UNKNOWN') - call nciu%initialize(param) - call nciu%close(param) - call nciu%open(param) + call param%nciu%initialize(param) + call param%nciu%close(param) + call param%nciu%open(param) end select lfirst = .false. else - call nciu%open(param) + call param%nciu%open(param) end if - call self%write_hdr(nciu, param) + call self%write_hdr(param%nciu, param) end if if (param%lgr) then @@ -1892,10 +1891,10 @@ module subroutine io_write_frame_system(self, param) close(iu, err = 667, iomsg = errmsg) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then - call cb%write_frame(nciu, param) - call pl%write_frame(nciu, param) - call tp%write_frame(nciu, param) - call nciu%close(param) + call cb%write_frame(param%nciu, param) + call pl%write_frame(param%nciu, param) + call tp%write_frame(param%nciu, param) + call param%nciu%close(param) end if return diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 322b759e9..8b07b5b33 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -7,6 +7,64 @@ module swiftest_classes implicit none public + + type :: netcdf_parameters + integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(3) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: id_dimid !! NetCDF ID for the particle id dimension + integer(I4B) :: str_dimid !! NetCDF ID for the character string dimension + integer(I4B) :: time_varid !! NetCDF ID for the time variable + integer(I4B) :: id_varid !! NetCDF ID for the particle name variable + integer(I4B) :: name_varid !! NetCDF ID for the namevariable + integer(I4B) :: ptype_varid !! NetCDF ID for the particle type variable + integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable + integer(I4B) :: ntp_varid !! NetCDF ID for the number of active test particles variable + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + integer(I4B) :: KE_orb_varid !! NetCDF ID for the system orbital kinetic energy variable + integer(I4B) :: KE_spin_varid !! NetCDF ID for the system spin kinetic energy variable + integer(I4B) :: PE_varid !! NetCDF ID for the system potential energy variable + integer(I4B) :: L_orbx_varid !! NetCDF ID for the system orbital angular momentum x variable + integer(I4B) :: L_orby_varid !! NetCDF ID for the system orbital angular momentum y variable + integer(I4B) :: L_orbz_varid !! NetCDF ID for the system orbital angular momentum z variable + integer(I4B) :: L_spinx_varid !! NetCDF ID for the system spin angular momentum x variable + integer(I4B) :: L_spiny_varid !! NetCDF ID for the system spin angular momentum y variable + integer(I4B) :: L_spinz_varid !! NetCDF ID for the system spin angular momentum z variable + integer(I4B) :: L_escapex_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapey_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapez_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: Ecollisions_varid !! NetCDF ID for the energy lost in collisions variable + integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) + integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system + contains + procedure :: close => netcdf_close !! Closes an open NetCDF file + procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object + procedure :: open => netcdf_open !! Opens a NetCDF file + end type netcdf_parameters + !******************************************************************************************************************************** ! swiftest_parameters class definitions !******************************************************************************************************************************** @@ -77,6 +135,8 @@ module swiftest_classes logical :: lgr = .false. !! Turn on GR logical :: lyarkovsky = .false. !! Turn on Yarkovsky effect logical :: lyorp = .false. !! Turn on YORP effect + + class(netcdf_parameters), allocatable :: nciu !! Object containing NetCDF parameters contains procedure :: reader => io_param_reader procedure :: writer => io_param_writer @@ -84,62 +144,6 @@ module swiftest_classes procedure :: read_in => io_read_in_param end type swiftest_parameters - type :: netcdf_parameters - integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) - integer(I4B) :: ncid !! NetCDF ID for the output file - integer(I4B) :: dimids(3) !! Dimensions of the NetCDF file - integer(I4B) :: time_dimid !! NetCDF ID for the time dimension - integer(I4B) :: id_dimid !! NetCDF ID for the particle id dimension - integer(I4B) :: str_dimid !! NetCDF ID for the character string dimension - integer(I4B) :: time_varid !! NetCDF ID for the time variable - integer(I4B) :: id_varid !! NetCDF ID for the particle name variable - integer(I4B) :: name_varid !! NetCDF ID for the namevariable - integer(I4B) :: ptype_varid !! NetCDF ID for the particle type variable - integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable - integer(I4B) :: ntp_varid !! NetCDF ID for the number of active test particles variable - integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable - integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable - integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable - integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable - integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable - integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable - integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable - integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable - integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable - integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable - integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable - integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable - integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable - integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable - integer(I4B) :: radius_varid !! NetCDF ID for the radius variable - integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable - integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable - integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable - integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable - integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable - integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable - integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable - integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(I4B) :: KE_orb_varid !! NetCDF ID for the system orbital kinetic energy variable - integer(I4B) :: KE_spin_varid !! NetCDF ID for the system spin kinetic energy variable - integer(I4B) :: PE_varid !! NetCDF ID for the system potential energy variable - integer(I4B) :: L_orbx_varid !! NetCDF ID for the system orbital angular momentum x variable - integer(I4B) :: L_orby_varid !! NetCDF ID for the system orbital angular momentum y variable - integer(I4B) :: L_orbz_varid !! NetCDF ID for the system orbital angular momentum z variable - integer(I4B) :: L_spinx_varid !! NetCDF ID for the system spin angular momentum x variable - integer(I4B) :: L_spiny_varid !! NetCDF ID for the system spin angular momentum y variable - integer(I4B) :: L_spinz_varid !! NetCDF ID for the system spin angular momentum z variable - integer(I4B) :: L_escapex_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: L_escapey_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: L_escapez_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: Ecollisions_varid !! NetCDF ID for the energy lost in collisions variable - integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) - integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system - contains - procedure :: close => netcdf_close !! Closes an open NetCDF file - procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object - procedure :: open => netcdf_open !! Opens a NetCDF file - end type netcdf_parameters !******************************************************************************************************************************** ! swiftest_swiftest_particle_info class definitions and method interfaces @@ -986,7 +990,7 @@ end subroutine setup_body module subroutine setup_construct_system(system, param) implicit none class(swiftest_nbody_system), allocatable, intent(inout) :: system !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine setup_construct_system module subroutine setup_encounter(self, n) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 18cb8fe96..aa0a187f8 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -81,6 +81,7 @@ module symba_classes real(DP) :: R0 = 0.0_DP !! Initial radius of the central body real(DP) :: dR = 0.0_DP !! Change in the radius of the central body contains + procedure :: write_frame_netcdf => symba_netcdf_write_frame_cb !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format end type symba_cb !******************************************************************************************************************************** @@ -119,7 +120,6 @@ module symba_classes procedure :: rearrange => symba_util_sort_rearrange_pl !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => symba_util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) procedure :: write_frame_netcdf => symba_netcdf_write_frame_pl !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format - generic :: write_frame => write_frame_netcdf end type symba_pl type, extends(symba_pl) :: symba_merger @@ -149,6 +149,7 @@ module symba_classes procedure :: sort => symba_util_sort_tp !! Sorts body arrays by a sortable componen procedure :: rearrange => symba_util_sort_rearrange_tp !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => symba_util_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + procedure :: write_frame_netcdf => symba_netcdf_write_frame_tp !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format end type symba_tp !******************************************************************************************************************************** @@ -472,14 +473,30 @@ module subroutine symba_netcdf_open(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine symba_netcdf_open + module subroutine symba_netcdf_write_frame_cb(self, iu, param) + use swiftest_classes, only : swiftest_parameters, netcdf_parameters + implicit none + class(symba_cb), intent(in) :: self !! Symba central body object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_netcdf_write_frame_cb + module subroutine symba_netcdf_write_frame_pl(self, iu, param) use swiftest_classes, only : swiftest_parameters, netcdf_parameters implicit none - class(symba_pl), intent(in) :: self !! Swiftest particle object + class(symba_pl), intent(in) :: self !! Symba massive body object class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine symba_netcdf_write_frame_pl + module subroutine symba_netcdf_write_frame_tp(self, iu, param) + use swiftest_classes, only : swiftest_parameters, netcdf_parameters + implicit none + class(symba_tp), intent(in) :: self !! SyMBA test particle object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + end subroutine symba_netcdf_write_frame_tp + module subroutine symba_setup_initialize_particle_info_system(self, param) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index fe78ee9e3..02a44f091 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -10,7 +10,7 @@ module subroutine setup_construct_system(system, param) implicit none ! Arguments class(swiftest_nbody_system), allocatable, intent(inout) :: system !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Swiftest parameters + class(swiftest_parameters), intent(inout) :: param !! Swiftest parameters select case(param%integrator) case (BS) @@ -69,9 +69,11 @@ module subroutine setup_construct_system(system, param) select type(system) class is (symba_nbody_system) - allocate(symba_particle_info :: system%cb%info) + if (.not.allocated(system%cb%info)) allocate(symba_particle_info :: system%cb%info) + if (.not.allocated(param%nciu)) allocate(symba_netcdf_parameters :: param%nciu) class default - allocate(swiftest_particle_info :: system%cb%info) + if (.not.allocated(system%cb%info)) allocate(swiftest_particle_info :: system%cb%info) + if (.not.allocated(param%nciu)) allocate(netcdf_parameters :: param%nciu) end select return diff --git a/src/symba/symba_netcdf.f90 b/src/symba/symba_netcdf.f90 index e4e715f35..a3ef5cec0 100644 --- a/src/symba/symba_netcdf.f90 +++ b/src/symba/symba_netcdf.f90 @@ -60,7 +60,7 @@ module subroutine symba_netcdf_open(self, param) call netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_type_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_time_varid)) call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) @@ -71,6 +71,43 @@ module subroutine symba_netcdf_open(self, param) return end subroutine symba_netcdf_open + module subroutine symba_netcdf_write_frame_cb(self, iu, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Write a frame of output of a SyMBA massive body data to the binary output file + !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method + implicit none + ! Arguments + class(symba_cb), intent(in) :: self !! SyMBA central body object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: strlen, idslot + character(len=:), allocatable :: charstring + + call netcdf_write_frame_base(self, iu, param) + select type(iu) + class is (symba_netcdf_parameters) + select type(info => self%info) + class is (symba_particle_info) + idslot = self%id + 1 + + charstring = trim(adjustl(info%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info%origin_vh(3), start=[idslot]) ) + end select + end select + + return + end subroutine symba_netcdf_write_frame_cb + module subroutine symba_netcdf_write_frame_pl(self, iu, param) !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton @@ -83,12 +120,11 @@ module subroutine symba_netcdf_write_frame_pl(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: i, j, tslot, strlen, idslot + integer(I4B) :: i, j, strlen, idslot integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring call netcdf_write_frame_base(self, iu, param) - tslot = int(param%ioutput, kind=I4B) + 1 select type(iu) class is (symba_netcdf_parameters) associate(npl => self%nbody) @@ -104,6 +140,13 @@ module subroutine symba_netcdf_write_frame_pl(self, iu, param) charstring = trim(adjustl(info(j)%origin_type)) strlen = len(charstring) call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info(j)%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info(j)%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info(j)%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info(j)%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info(j)%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info(j)%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info(j)%origin_vh(3), start=[idslot]) ) end do end select end associate @@ -112,4 +155,52 @@ module subroutine symba_netcdf_write_frame_pl(self, iu, param) return end subroutine symba_netcdf_write_frame_pl + + + module subroutine symba_netcdf_write_frame_tp(self, iu, param) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Write a frame of output of a SyMBA massive body data to the binary output file + !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method + implicit none + ! Arguments + class(symba_tp), intent(in) :: self !! SyMBA test particle + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + ! Internals + integer(I4B) :: i, j, strlen, idslot + integer(I4B), dimension(:), allocatable :: ind + character(len=:), allocatable :: charstring + + call netcdf_write_frame_base(self, iu, param) + select type(iu) + class is (symba_netcdf_parameters) + associate(ntp => self%nbody) + if (ntp == 0) return + allocate(ind(ntp)) + call util_sort(self%id(1:ntp), ind(1:ntp)) + select type(info => self%info) + class is (symba_particle_info) + do i = 1, ntp + j = ind(i) + idslot = self%id(j) + 1 + + charstring = trim(adjustl(info(j)%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info(j)%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info(j)%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info(j)%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info(j)%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info(j)%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info(j)%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info(j)%origin_vh(3), start=[idslot]) ) + end do + end select + end associate + + end select + + return + end subroutine symba_netcdf_write_frame_tp end submodule s_symba_netcdf \ No newline at end of file diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 11664827e..2f7d54474 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -128,6 +128,7 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to ! Internals integer(I4B) :: nnew + class(swiftest_particle_info), allocatable :: tmp if (.not. allocated(source)) return From 179709c27b80797b9a0c0089dd9e664293b8156a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 20:00:08 -0400 Subject: [PATCH 237/315] Added naming of new bodies and setting of particle types in fragmentations. --- src/modules/symba_classes.f90 | 1 + src/symba/symba_collision.f90 | 4 ++++ src/symba/symba_util.f90 | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index aa0a187f8..8bc32ffed 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -22,6 +22,7 @@ module symba_classes character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" + character(*), parameter :: PL_TINY_TYPE_NAME = "Semi-Interacting Massive Body" type, extends(netcdf_parameters) :: symba_netcdf_parameters integer(I4B) :: origin_type_varid !! NetCDF ID for the origin type diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 4e21b9411..b4505741b 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -833,6 +833,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, integer(I4B) :: i, ibiggest, nstart, nend, nfamily, nfrag logical, dimension(system%pl%nbody) :: lmask class(symba_pl), allocatable :: plnew + character(*), parameter :: FRAGFMT = '("Fragment",I0.7)' select type(pl => system%pl) class is (symba_pl) @@ -884,6 +885,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%status(1:nfrag) = NEW_PARTICLE info(1:nfrag)%origin_time = param%t do i = 1, nfrag + write(info(i)%name, FRAGFMT) id_frag(i) info(i)%origin_xh(:) = plnew%xh(:,i) info(i)%origin_vh(:) = plnew%vh(:,i) end do @@ -892,6 +894,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%status(1:nfrag) = NEW_PARTICLE info(1:nfrag)%origin_time = param%t do i = 1, nfrag + write(info(i)%name, FRAGFMT) id_frag(i) info(i)%origin_xh(:) = plnew%xh(:,i) info(i)%origin_vh(:) = plnew%vh(:,i) end do @@ -907,6 +910,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, info(2:nfrag)%origin_type = "Hit and run fragment" info(2:nfrag)%origin_time = param%t do i = 2, nfrag + write(info(i)%name, FRAGFMT) id_frag(i) info(i)%origin_xh(:) = plnew%xh(:,i) info(i)%origin_vh(:) = plnew%vh(:,i) end do diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index f5201ac6c..93d4155e2 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -298,6 +298,11 @@ module subroutine symba_util_index_eucl_plpl(self, param) select type(param) class is (symba_parameters) pl%lmtiny(1:npl) = pl%Gmass(1:npl) < param%GMTINY + where(pl%lmtiny(1:npl)) + pl%info(1:npl)%particle_type = PL_TINY_TYPE_NAME + elsewhere + pl%info(1:npl)%particle_type = PL_TYPE_NAME + end where end select nplm = count(.not. pl%lmtiny(1:npl)) pl%nplm = int(nplm, kind=I4B) From d008ac3a879375020ec1f94d0c53296d1b4f563f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 20:07:49 -0400 Subject: [PATCH 238/315] Getting SyMBA info into the NetCDF --- python/swiftest/swiftest/io.py | 7 ++++--- src/util/util_append.f90 | 7 ++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 00bcd914c..0397335d6 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -718,9 +718,10 @@ def clean_string_values(param, ds): ------- ds : xarray dataset with the strings cleaned up """ - #ds['name'] = ds['name'].str.decode(encoding='utf-8') - #ds['particle_type'] = ds['particle_type'].str.decode(encoding='utf-8') - # ds['origin_type'] = ds['origin_type'].str.decode(encoding='utf-8') + ds['name'] = ds['name'].str.decode(encoding='utf-8') + ds['particle_type'] = ds['particle_type'].str.decode(encoding='utf-8') + if 'origin_type' in ds: + ds['origin_type'] = ds['origin_type'].str.decode(encoding='utf-8') return ds diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 2f7d54474..d6b18d4e8 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -134,7 +134,12 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) nnew = count(lsource_mask(1:nsrc)) if (.not.allocated(arr)) then - allocate(arr(nold+nnew)) + select type(source) + class is (symba_particle_info) + allocate(symba_particle_info :: arr(nold+nnew)) + class default + allocate(swiftest_particle_info :: arr(nold+nnew)) + end select else call util_resize(arr, nold + nnew) end if From a86b33e6ac6a40bb65fdbb9d502c0aea39fb2a36 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 27 Aug 2021 20:11:56 -0400 Subject: [PATCH 239/315] Trying to get Symba info into the NetCDF --- src/util/util_resize.f90 | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index e76d53a8d..7ba7e19df 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -150,9 +150,16 @@ module subroutine util_resize_arr_info(arr, nnew) ! Internals class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size + logical :: is_symba if (.not. allocated(arr) .or. nnew < 0) return + select type(arr) + class is (symba_particle_info) + is_symba = .true. + class default + is_symba = .false. + end select nold = size(arr) if (nnew == nold) return @@ -160,8 +167,12 @@ module subroutine util_resize_arr_info(arr, nnew) deallocate(arr) return end if - - allocate(tmp(nnew)) + + if (is_symba) then + allocate(symba_particle_info :: tmp(nnew)) + else + allocate(swiftest_particle_info :: tmp(nnew)) + end if if (nnew > nold) then tmp(1:nold) = arr(1:nold) else From b92eb1f20f5381795efec9751ea120272772e9bd Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 02:14:14 -0400 Subject: [PATCH 240/315] Fixed bugs in info tracking. Code seems to work now. --- examples/symba_energy_momentum/Untitled.ipynb | 470 ++ .../param.disruption_headon.in | 6 +- .../param.disruption_off_axis.in | 8 +- .../param.supercatastrophic_headon.in | 6 +- examples/symba_mars_disk/mars.in | 6016 ++++++++--------- examples/symba_mars_disk/testnetcdf.ipynb | 433 +- src/netcdf/netcdf.f90 | 2 +- src/symba/symba_util.f90 | 10 - src/util/util_append.f90 | 36 +- src/util/util_fill.f90 | 28 +- src/util/util_sort.f90 | 12 +- 11 files changed, 3969 insertions(+), 3058 deletions(-) create mode 100644 examples/symba_energy_momentum/Untitled.ipynb diff --git a/examples/symba_energy_momentum/Untitled.ipynb b/examples/symba_energy_momentum/Untitled.ipynb new file mode 100644 index 000000000..3b730328e --- /dev/null +++ b/examples/symba_energy_momentum/Untitled.ipynb @@ -0,0 +1,470 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/daminton/git/swiftest/examples/symba_energy_momentum'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import swiftest\n", + "import os\n", + "import xarray as xr\n", + "import numpy as np\n", + "os.getcwd()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.disruption_off_axis.in\n", + "\n", + "Creating Dataset\n", + "Successfully converted 102 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "sim = swiftest.Simulation(param_file=\"param.disruption_off_axis.in\")\n", + "sim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'origin_type' (id: 15)>\n",
    +       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    +       "       'Disruption', 'Disruption', 'Disruption', 'Disruption',\n",
    +       "       'Disruption', 'Disruption', 'Disruption', 'Disruption',\n",
    +       "       'Disruption', 'Disruption', 'Disruption', 'Disruption'],\n",
    +       "      dtype='<U18')\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
    " + ], + "text/plain": [ + "\n", + "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", + " 'Disruption', 'Disruption', 'Disruption', 'Disruption',\n", + " 'Disruption', 'Disruption', 'Disruption', 'Disruption',\n", + " 'Disruption', 'Disruption', 'Disruption', 'Disruption'],\n", + " dtype='
    <xarray.DataArray 'particle_type' (id: 1521)>\n",
    -       "array([b'Central Body', b'Massive Body', b'Massive Body', ..., b'Massive Body',\n",
    -       "       b'Massive Body', b'Massive Body'], dtype='|S32')\n",
    +       "
    <xarray.DataArray 'origin_type' (id: 1521)>\n",
    +       "array(['Initial conditions', 'Body                    Initial',\n",
    +       "       'Body                    Initial', ..., '', '', ''], dtype='<U32')\n",
            "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " ], "text/plain": [ - "\n", - "array([b'Central Body', b'Massive Body', b'Massive Body', ..., b'Massive Body',\n", - " b'Massive Body', b'Massive Body'], dtype='|S32')\n", + "\n", + "array(['Initial conditions', 'Body Initial',\n", + " 'Body Initial', ..., '', '', ''], dtype='\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:        ()\n",
    +       "Coordinates:\n",
    +       "    time           float64 0.0\n",
    +       "    id             int32 2\n",
    +       "Data variables: (12/48)\n",
    +       "    npl            int32 1500\n",
    +       "    ntp            int32 0\n",
    +       "    name           <U32 'Body3'\n",
    +       "    particle_type  <U12 'Massive Body'\n",
    +       "    xhx            float64 -8.012e+06\n",
    +       "    xhy            float64 -6.936e+06\n",
    +       "    ...             ...\n",
    +       "    origin_xhx     float64 6.013e-154\n",
    +       "    origin_xhy     float64 6.013e-154\n",
    +       "    origin_xhz     float64 0.0\n",
    +       "    origin_vhx     float64 7.029e+06\n",
    +       "    origin_vhy     float64 6.052e+06\n",
    +       "    origin_vhz     float64 3.879e+03
    " + ], + "text/plain": [ + "\n", + "Dimensions: ()\n", + "Coordinates:\n", + " time float64 0.0\n", + " id int32 2\n", + "Data variables: (12/48)\n", + " npl int32 ...\n", + " ntp int32 ...\n", + " name self%nbody) if (n == 0) return allocate(ind(n)) - call util_sort(self%id(1:n), ind(1:n)) + call util_sort(self%id(1:n), ind) do i = 1, n j = ind(i) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 93d4155e2..b8428dd99 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -79,7 +79,6 @@ module subroutine symba_util_append_pl(self, source, lsource_mask) call util_append(self%peri, source%peri, nold, nsrc, lsource_mask) call util_append(self%atp, source%atp, nold, nsrc, lsource_mask) call util_append(self%kin, source%kin, nold, nsrc, lsource_mask) - call util_append(self%info, source%info, nold, nsrc, lsource_mask) call util_append_pl(self, source, lsource_mask) ! Note: helio_pl does not have its own append method, so we skip back to the base class end associate @@ -148,7 +147,6 @@ module subroutine symba_util_append_tp(self, source, lsource_mask) call util_append(self%nplenc, source%nplenc, nold, nsrc, lsource_mask) call util_append(self%levelg, source%levelg, nold, nsrc, lsource_mask) call util_append(self%levelm, source%levelm, nold, nsrc, lsource_mask) - call util_append(self%info, source%info, nold, nsrc, lsource_mask) call util_append_tp(self, source, lsource_mask) ! Note: helio_tp does not have its own append method, so we skip back to the base class end associate @@ -229,7 +227,6 @@ module subroutine symba_util_fill_pl(self, inserts, lfill_list) call util_fill(keeps%peri, inserts%peri, lfill_list) call util_fill(keeps%atp, inserts%atp, lfill_list) call util_fill(keeps%kin, inserts%kin, lfill_list) - call util_fill(keeps%info, inserts%info, lfill_list) call util_fill_pl(keeps, inserts, lfill_list) ! Note: helio_pl does not have its own fill method, so we skip back to the base class class default @@ -260,7 +257,6 @@ module subroutine symba_util_fill_tp(self, inserts, lfill_list) call util_fill(keeps%nplenc, inserts%nplenc, lfill_list) call util_fill(keeps%levelg, inserts%levelg, lfill_list) call util_fill(keeps%levelm, inserts%levelm, lfill_list) - call util_fill(keeps%info, inserts%info, lfill_list) call util_fill_tp(keeps, inserts, lfill_list) ! Note: helio_tp does not have its own fill method, so we skip back to the base class class default @@ -607,7 +603,6 @@ module subroutine symba_util_resize_pl(self, nnew) call util_resize(self%peri, nnew) call util_resize(self%atp, nnew) call util_resize(self%kin, nnew) - call util_resize(self%info, nnew) call util_resize_pl(self, nnew) @@ -627,7 +622,6 @@ module subroutine symba_util_resize_tp(self, nnew) call util_resize(self%nplenc, nnew) call util_resize(self%levelg, nnew) call util_resize(self%levelm, nnew) - call util_resize(self%info, nnew) call util_resize_tp(self, nnew) @@ -779,7 +773,6 @@ module subroutine symba_util_sort_rearrange_pl(self, ind) call util_sort_rearrange(pl%isperi, ind, npl) call util_sort_rearrange(pl%peri, ind, npl) call util_sort_rearrange(pl%atp, ind, npl) - call util_sort_rearrange(pl%info, ind, npl) call util_sort_rearrange(pl%kin, ind, npl) call util_sort_rearrange_pl(pl,ind) @@ -803,7 +796,6 @@ module subroutine symba_util_sort_rearrange_tp(self, ind) call util_sort_rearrange(tp%nplenc, ind, ntp) call util_sort_rearrange(tp%levelg, ind, ntp) call util_sort_rearrange(tp%levelm, ind, ntp) - call util_sort_rearrange(tp%info, ind, ntp) call util_sort_rearrange_tp(tp,ind) end associate @@ -880,7 +872,6 @@ module subroutine symba_util_spill_pl(self, discards, lspill_list, ldestructive) call util_spill(keeps%isperi, discards%isperi, lspill_list, ldestructive) call util_spill(keeps%peri, discards%peri, lspill_list, ldestructive) call util_spill(keeps%atp, discards%atp, lspill_list, ldestructive) - call util_spill(keeps%info, discards%info, lspill_list, ldestructive) call util_spill(keeps%kin, discards%kin, lspill_list, ldestructive) call util_spill_pl(keeps, discards, lspill_list, ldestructive) @@ -945,7 +936,6 @@ module subroutine symba_util_spill_tp(self, discards, lspill_list, ldestructive) call util_spill(keeps%nplenc, discards%nplenc, lspill_list, ldestructive) call util_spill(keeps%levelg, discards%levelg, lspill_list, ldestructive) call util_spill(keeps%levelm, discards%levelm, lspill_list, ldestructive) - call util_spill(keeps%info, discards%info, lspill_list, ldestructive) call util_spill_tp(keeps, discards, lspill_list, ldestructive) class default diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index d6b18d4e8..98a98ac0a 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -128,23 +128,35 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to ! Internals integer(I4B) :: nnew - class(swiftest_particle_info), allocatable :: tmp + class(swiftest_particle_info), dimension(:), allocatable :: arr_tmp, source_tmp if (.not. allocated(source)) return nnew = count(lsource_mask(1:nsrc)) - if (.not.allocated(arr)) then - select type(source) - class is (symba_particle_info) - allocate(symba_particle_info :: arr(nold+nnew)) - class default - allocate(swiftest_particle_info :: arr(nold+nnew)) - end select - else - call util_resize(arr, nold + nnew) - end if - arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + select type(source) + class is (symba_particle_info) + allocate(symba_particle_info :: arr_tmp(nold+nnew)) + if (nold > 0) then + arr_tmp(1:nold) = arr(1:nold) + deallocate(arr) + end if + class is (swiftest_particle_info) + allocate(swiftest_particle_info :: arr_tmp(nold+nnew)) + if (nold > 0) then + arr_tmp(1:nold) = arr(1:nold) + deallocate(arr) + end if + end select + + select type(source) + class is (symba_particle_info) + arr_tmp(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + class is (swiftest_particle_info) + arr_tmp(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + end select + + call move_alloc(arr_tmp, arr) return end subroutine util_append_arr_info diff --git a/src/util/util_fill.f90 b/src/util/util_fill.f90 index b1bf951d0..f3f6a3a95 100644 --- a/src/util/util_fill.f90 +++ b/src/util/util_fill.f90 @@ -92,12 +92,34 @@ module subroutine util_fill_arr_info(keeps, inserts, lfill_list) ! Arguments class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep - logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + ! Internals + class(swiftest_particle_info), dimension(:), allocatable :: ktmp, itmp + integer(I4B) :: nk, ni if (.not.allocated(keeps) .or. .not.allocated(inserts)) return - keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:)) - keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:)) + nk = size(keeps) + ni = size(inserts) + + select type(keeps) + class is (symba_particle_info) + allocate(symba_particle_info :: ktmp(nk)) + class is (swiftest_particle_info) + allocate(swiftest_particle_info :: ktmp(nk)) + end select + + select type(inserts) + class is (symba_particle_info) + allocate(symba_particle_info :: itmp(ni)) + class is (swiftest_particle_info) + allocate(swiftest_particle_info :: itmp(ni)) + end select + + ktmp(:) = unpack(ktmp(:), .not.lfill_list(:), ktmp(:)) + ktmp(:) = unpack(itmp(:), lfill_list(:), ktmp(:)) + + keeps(:) = ktmp(:) return end subroutine util_fill_arr_info diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index 4b96dd9d1..4364aa02a 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -466,15 +466,21 @@ module subroutine util_sort_rearrange_arr_info(arr, ind, n) implicit none ! Arguments class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + integer(I4B) :: i if (.not. allocated(arr) .or. n <= 0) return - allocate(tmp, source=arr) + select type(arr) + class is (symba_particle_info) + allocate(symba_particle_info :: tmp(n)) + class is (swiftest_particle_info) + allocate(swiftest_particle_info :: tmp(n)) + end select tmp(1:n) = arr(ind(1:n)) - call move_alloc(tmp, arr) + arr(1:n) = tmp(1:n) return end subroutine util_sort_rearrange_arr_info From 4c2152f71073677d1f935475e1ff78f516639c1a Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 03:30:35 -0400 Subject: [PATCH 241/315] Consolidated NetCDF and particle info into main Swiftest class. Info still gets corrupted after some amount of time. --- examples/symba_mars_disk/param.in | 6 +- examples/symba_mars_disk/testnetcdf.ipynb | 453 ++-------------------- src/io/io.f90 | 10 +- src/modules/swiftest_classes.f90 | 37 +- src/modules/swiftest_globals.f90 | 10 + src/modules/symba_classes.f90 | 99 ----- src/netcdf/netcdf.f90 | 78 +++- src/setup/setup.f90 | 48 ++- src/symba/symba_collision.f90 | 207 +++++----- src/symba/symba_io.f90 | 49 --- src/symba/symba_netcdf.f90 | 206 ---------- src/symba/symba_setup.f90 | 47 --- src/util/util_append.f90 | 38 +- src/util/util_fill.f90 | 31 +- src/util/util_resize.f90 | 19 +- src/util/util_sort.f90 | 14 +- src/util/util_spill.f90 | 4 +- 17 files changed, 310 insertions(+), 1046 deletions(-) delete mode 100644 src/symba/symba_netcdf.f90 diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index a50be00e4..725927f1b 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,13 +1,13 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 6000.0 +TSTOP 60000.0 DT 600.0 CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 1 -ISTEP_DUMP 1 +ISTEP_OUT 10 +ISTEP_DUMP 10 !BIN_OUT bin.dat !OUT_TYPE REAL8 BIN_OUT bin.nc diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 955dc994f..a6d21ec0e 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -35,9 +35,30 @@ "text": [ "Reading Swiftest file param.in\n", "\n", - "Creating Dataset\n", - "Successfully converted 11 output frames.\n", - "Swiftest simulation data stored as xarray DataSet .ds\n" + "Creating Dataset\n" + ] + }, + { + "ename": "UnicodeDecodeError", + "evalue": "'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mUnicodeDecodeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mswiftest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSimulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam_file\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"param.in\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/simulation_class.py\u001b[0m in \u001b[0;36mbin2xr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swiftest\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswiftest2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swiftest simulation data stored as xarray DataSet .ds'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swifter\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 697\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'\\nCreating Dataset'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 698\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_dataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'BIN_OUT'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 699\u001b[0;31m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclean_string_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 700\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Error encountered. OUT_TYPE {param['OUT_TYPE']} not recognized.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mclean_string_values\u001b[0;34m(param, ds)\u001b[0m\n\u001b[1;32m 719\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m:\u001b[0m \u001b[0mxarray\u001b[0m \u001b[0mdataset\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mstrings\u001b[0m \u001b[0mcleaned\u001b[0m \u001b[0mup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 720\u001b[0m \"\"\" \n\u001b[0;32m--> 721\u001b[0;31m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'utf-8'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 722\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'particle_type'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'particle_type'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'utf-8'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 723\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'origin_type'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36mdecode\u001b[0;34m(self, encoding, errors)\u001b[0m\n\u001b[1;32m 2545\u001b[0m \u001b[0mdecoder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2546\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2547\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_apply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2548\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2549\u001b[0m def encode(\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m_apply\u001b[0;34m(self, func, dtype, output_core_dims, output_sizes, func_args, func_kwargs)\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0moutput_sizes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_sizes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0mfunc_args\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 241\u001b[0;31m \u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 242\u001b[0m )\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m_apply_str_ufunc\u001b[0;34m(func, obj, dtype, output_core_dims, output_sizes, func_args, func_kwargs)\u001b[0m\n\u001b[1;32m 136\u001b[0m \u001b[0moutput_core_dims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_core_dims\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0mdask_gufunc_kwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdask_gufunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 138\u001b[0;31m \u001b[0;34m**\u001b[0m\u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 139\u001b[0m )\n\u001b[1;32m 140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_ufunc\u001b[0;34m(func, input_core_dims, output_core_dims, exclude_dims, vectorize, join, dataset_join, dataset_fill_value, keep_attrs, kwargs, dask, output_dtypes, output_sizes, meta, dask_gufunc_kwargs, *args)\u001b[0m\n\u001b[1;32m 1142\u001b[0m \u001b[0mjoin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1143\u001b[0m \u001b[0mexclude_dims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexclude_dims\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1144\u001b[0;31m \u001b[0mkeep_attrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkeep_attrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1145\u001b[0m )\n\u001b[1;32m 1146\u001b[0m \u001b[0;31m# feed Variables directly through apply_variable_ufunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_dataarray_vfunc\u001b[0;34m(func, signature, join, exclude_dims, keep_attrs, *args)\u001b[0m\n\u001b[1;32m 269\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 270\u001b[0m \u001b[0mdata_vars\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"variable\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 271\u001b[0;31m \u001b[0mresult_var\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mdata_vars\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 272\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 273\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_outputs\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_variable_ufunc\u001b[0;34m(func, signature, exclude_dims, dask, output_dtypes, vectorize, keep_attrs, dask_gufunc_kwargs, *args)\u001b[0m\n\u001b[1;32m 722\u001b[0m )\n\u001b[1;32m 723\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 724\u001b[0;31m \u001b[0mresult_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 725\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 726\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_outputs\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.7/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2111\u001b[0m \u001b[0mvargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0m_n\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_n\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2112\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2113\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_vectorize_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2115\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_ufunc_and_otypes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.7/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36m_vectorize_call\u001b[0;34m(self, func, args)\u001b[0m\n\u001b[1;32m 2195\u001b[0m for a in args]\n\u001b[1;32m 2196\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2197\u001b[0;31m \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mufunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2198\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2199\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mufunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnout\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 2541\u001b[0m \"\"\"\n\u001b[1;32m 2542\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_cpython_optimized_decoders\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2543\u001b[0;31m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2544\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2545\u001b[0m \u001b[0mdecoder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mUnicodeDecodeError\u001b[0m: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte" ] } ], @@ -50,388 +71,14 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'origin_type' (id: 1521)>\n",
    -       "array(['Initial conditions', 'Body                    Initial',\n",
    -       "       'Body                    Initial', ..., '', '', ''], dtype='<U32')\n",
    -       "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " - ], - "text/plain": [ - "\n", - "array(['Initial conditions', 'Body Initial',\n", - " 'Body Initial', ..., '', '', ''], dtype='
    <xarray.Dataset>\n",
    -       "Dimensions:        ()\n",
    +       "
    <xarray.DataArray 'name' ()>\n",
    +       "array(b'UNNAMED', dtype='|S32')\n",
            "Coordinates:\n",
    -       "    time           float64 0.0\n",
    -       "    id             int32 2\n",
    -       "Data variables: (12/48)\n",
    -       "    npl            int32 1500\n",
    -       "    ntp            int32 0\n",
    -       "    name           <U32 'Body3'\n",
    -       "    particle_type  <U12 'Massive Body'\n",
    -       "    xhx            float64 -8.012e+06\n",
    -       "    xhy            float64 -6.936e+06\n",
    -       "    ...             ...\n",
    -       "    origin_xhx     float64 6.013e-154\n",
    -       "    origin_xhy     float64 6.013e-154\n",
    -       "    origin_xhz     float64 0.0\n",
    -       "    origin_vhx     float64 7.029e+06\n",
    -       "    origin_vhy     float64 6.052e+06\n",
    -       "    origin_vhz     float64 3.879e+03
    " + " id int32 1885
    " ], "text/plain": [ - "\n", - "Dimensions: ()\n", + "\n", + "array(b'UNNAMED', dtype='|S32')\n", "Coordinates:\n", - " time float64 0.0\n", - " id int32 2\n", - "Data variables: (12/48)\n", - " npl int32 ...\n", - " ntp int32 ...\n", - " name netcdf_close !! Closes an open NetCDF file procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object @@ -136,7 +145,7 @@ module swiftest_classes logical :: lyarkovsky = .false. !! Turn on Yarkovsky effect logical :: lyorp = .false. !! Turn on YORP effect - class(netcdf_parameters), allocatable :: nciu !! Object containing NetCDF parameters + type(netcdf_parameters) :: nciu !! Object containing NetCDF parameters contains procedure :: reader => io_param_reader procedure :: writer => io_param_writer @@ -153,6 +162,10 @@ module swiftest_classes type :: swiftest_particle_info character(len=NAMELEN) :: name !! Non-unique name character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) + character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) + real(DP) :: origin_time !! The time of the particle's formation + real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation + real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation contains procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file @@ -176,7 +189,7 @@ module swiftest_classes !******************************************************************************************************************************** !> A concrete lass for the central body in a Swiftest simulation type, abstract, extends(swiftest_base) :: swiftest_cb - class(swiftest_particle_info), allocatable :: info !! Particle metadata information + type(swiftest_particle_info) :: info !! Particle metadata information integer(I4B) :: id = 0 !! External identifier (unique) real(DP) :: mass = 0.0_DP !! Central body mass (units MU) real(DP) :: Gmass = 0.0_DP !! Central mass gravitational term G * mass (units GU * MU) @@ -215,7 +228,7 @@ module swiftest_classes !! Superclass that defines the generic elements of a Swiftest particle logical :: lfirst = .true. !! Run the current step as a first integer(I4B) :: nbody = 0 !! Number of bodies - class(swiftest_particle_info), dimension(:), allocatable :: info !! Particle metadata information + type(swiftest_particle_info), dimension(:), allocatable :: info !! Particle metadata information integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator logical, dimension(:), allocatable :: ldiscard !! Body should be discarded @@ -1002,7 +1015,7 @@ end subroutine setup_encounter module subroutine setup_initialize_particle_info_system(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine setup_initialize_particle_info_system module subroutine setup_initialize_system(self, param) @@ -1084,8 +1097,8 @@ end subroutine util_append_arr_I4B module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) implicit none - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + type(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine util_append_arr_info @@ -1253,8 +1266,8 @@ end subroutine util_fill_arr_I4B module subroutine util_fill_arr_info(keeps, inserts, lfill_list) implicit none - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + type(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps end subroutine util_fill_arr_info @@ -1322,7 +1335,7 @@ end subroutine util_resize_arr_I4B module subroutine util_resize_arr_info(arr, nnew) implicit none - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize integer(I4B), intent(in) :: nnew !! New size end subroutine util_resize_arr_info @@ -1506,7 +1519,7 @@ end subroutine util_sort_rearrange_arr_I4B module subroutine util_sort_rearrange_arr_info(arr, ind, n) implicit none - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange end subroutine util_sort_rearrange_arr_info @@ -1603,8 +1616,8 @@ end subroutine util_spill_arr_I8B module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive) implicit none - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not end subroutine util_spill_arr_info diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index b84e7f2f9..a9dd2d762 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -181,4 +181,14 @@ module swiftest_globals character(*), parameter :: ECOLLISIONS_VARNAME = "Ecollisions" !! NetCDF name of the escaped angular momentum y variable character(*), parameter :: EUNTRACKED_VARNAME = "Euntracked" !! NetCDF name of the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) character(*), parameter :: GMESCAPE_VARNAME = "GMescape" !! NetCDF name of the G*Mass of bodies that escape the system + character(*), parameter :: ORIGIN_TYPE_VARNAME = "origin_type" + character(*), parameter :: ORIGIN_TIME_VARNAME = "origin_time" + character(*), parameter :: ORIGIN_XHX_VARNAME = "origin_xhx" + character(*), parameter :: ORIGIN_XHY_VARNAME = "origin_xhy" + character(*), parameter :: ORIGIN_XHZ_VARNAME = "origin_xhz" + character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" + character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" + character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" + character(*), parameter :: PL_TINY_TYPE_NAME = "Semi-Interacting Massive Body" + end module swiftest_globals diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 8bc32ffed..3a9e37fce 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -14,29 +14,6 @@ module symba_classes integer(I4B), private, parameter :: NTENC = 3 real(DP), private, parameter :: RHSCALE = 6.5_DP real(DP), private, parameter :: RSHELL = 0.48075_DP - character(*), parameter :: ORIGIN_TYPE_VARNAME = "origin_type" - character(*), parameter :: ORIGIN_TIME_VARNAME = "origin_time" - character(*), parameter :: ORIGIN_XHX_VARNAME = "origin_xhx" - character(*), parameter :: ORIGIN_XHY_VARNAME = "origin_xhy" - character(*), parameter :: ORIGIN_XHZ_VARNAME = "origin_xhz" - character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" - character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" - character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" - character(*), parameter :: PL_TINY_TYPE_NAME = "Semi-Interacting Massive Body" - - type, extends(netcdf_parameters) :: symba_netcdf_parameters - integer(I4B) :: origin_type_varid !! NetCDF ID for the origin type - integer(I4B) :: origin_time_varid !! NetCDF ID for the origin type - integer(I4B) :: origin_xhx_varid !! NetCDF ID for the origin xh x component - integer(I4B) :: origin_xhy_varid !! NetCDF ID for the origin xh y component - integer(I4B) :: origin_xhz_varid !! NetCDF ID for the origin xh z component - integer(I4B) :: origin_vhx_varid !! NetCDF ID for the origin xh x component - integer(I4B) :: origin_vhy_varid !! NetCDF ID for the origin xh y component - integer(I4B) :: origin_vhz_varid !! NetCDF ID for the origin xh z component - contains - procedure :: initialize => symba_netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output objec - procedure :: open => symba_netcdf_open !! Opens a NetCDF file - end type symba_netcdf_parameters type, extends(swiftest_parameters) :: symba_parameters real(DP) :: GMTINY = -1.0_DP !! Smallest G*mass that is fully gravitating @@ -48,20 +25,6 @@ module symba_classes procedure :: writer => symba_io_param_writer end type symba_parameters - !******************************************************************************************************************************** - ! symba_swiftest_particle_info class definitions and method interfaces - !******************************************************************************************************************************* - !> Class definition for the particle origin information object. This object is used to track time, location, and collisional regime - !> of fragments produced in collisional events. - type, extends(swiftest_particle_info) :: symba_particle_info - character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) - real(DP) :: origin_time !! The time of the particle's formation - real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation - real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation - contains - procedure :: read_in => symba_io_read_in_particle_info !! Reads in SyMBA particle information metadata from an open unformatted file - end type symba_particle_info - !******************************************************************************************************************************** ! symba_kinship class definitions and method interfaces !******************************************************************************************************************************* @@ -82,7 +45,6 @@ module symba_classes real(DP) :: R0 = 0.0_DP !! Initial radius of the central body real(DP) :: dR = 0.0_DP !! Change in the radius of the central body contains - procedure :: write_frame_netcdf => symba_netcdf_write_frame_cb !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format end type symba_cb !******************************************************************************************************************************** @@ -120,7 +82,6 @@ module symba_classes procedure :: sort => symba_util_sort_pl !! Sorts body arrays by a sortable componen procedure :: rearrange => symba_util_sort_rearrange_pl !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => symba_util_spill_pl !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) - procedure :: write_frame_netcdf => symba_netcdf_write_frame_pl !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format end type symba_pl type, extends(symba_pl) :: symba_merger @@ -150,7 +111,6 @@ module symba_classes procedure :: sort => symba_util_sort_tp !! Sorts body arrays by a sortable componen procedure :: rearrange => symba_util_sort_rearrange_tp !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods procedure :: spill => symba_util_spill_tp !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) - procedure :: write_frame_netcdf => symba_netcdf_write_frame_tp !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format end type symba_tp !******************************************************************************************************************************** @@ -202,7 +162,6 @@ module symba_classes 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 - procedure :: init_particle_info => symba_setup_initialize_particle_info_system !! Initialize the system from input files procedure :: step => symba_step_system !! Advance the SyMBA nbody system forward in time by one step procedure :: interp => symba_step_interp_system !! Perform an interpolation step on the SymBA nbody system procedure :: set_recur_levels => symba_step_set_recur_levels_system !! Sets recursion levels of bodies and encounter lists to the current system level @@ -384,13 +343,6 @@ module subroutine symba_util_index_eucl_plpl(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine symba_util_index_eucl_plpl - module subroutine symba_io_dump_particle_info(self, iu) - implicit none - class(symba_particle_info), intent(in) :: self !! Particle metadata information object - integer(I4B), intent(in) :: iu !! Open file unit number - end subroutine symba_io_dump_particle_info - - module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, iomsg) implicit none class(symba_parameters), intent(inout) :: self !! Current run configuration parameters with SyMBA additionss @@ -413,12 +365,6 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms character(len=*), intent(inout) :: iomsg !! Message to pass if iostat /= 0 end subroutine symba_io_param_writer - module subroutine symba_io_read_in_particle_info(self, iu) - implicit none - class(symba_particle_info), intent(inout) :: self !! Particle metadata information object - integer(I4B), intent(in) :: iu !! Open file unit number - end subroutine symba_io_read_in_particle_info - module subroutine symba_io_write_discard(self, param) use swiftest_classes, only : swiftest_parameters implicit none @@ -460,51 +406,6 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration end subroutine symba_kick_encounter - module subroutine symba_netcdf_initialize_output(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_netcdf_initialize_output - - module subroutine symba_netcdf_open(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_netcdf_open - - module subroutine symba_netcdf_write_frame_cb(self, iu, param) - use swiftest_classes, only : swiftest_parameters, netcdf_parameters - implicit none - class(symba_cb), intent(in) :: self !! Symba central body object - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_netcdf_write_frame_cb - - module subroutine symba_netcdf_write_frame_pl(self, iu, param) - use swiftest_classes, only : swiftest_parameters, netcdf_parameters - implicit none - class(symba_pl), intent(in) :: self !! Symba massive body object - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_netcdf_write_frame_pl - - module subroutine symba_netcdf_write_frame_tp(self, iu, param) - use swiftest_classes, only : swiftest_parameters, netcdf_parameters - implicit none - class(symba_tp), intent(in) :: self !! SyMBA test particle object - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine symba_netcdf_write_frame_tp - - module subroutine symba_setup_initialize_particle_info_system(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA extensions - end subroutine symba_setup_initialize_particle_info_system - module subroutine symba_setup_initialize_system(self, param) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 274b05e3e..d2f7a0f80 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -120,6 +120,17 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) end if + if (self%ltrack_origin) then + call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) + end if + return end subroutine netcdf_initialize_output @@ -197,6 +208,17 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, GMESCAPE_VARNAME, self%GMescape_varid) ) end if + if (self%ltrack_origin) then + call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_time_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHX_VARNAME, self%origin_vhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHY_VARNAME, self%origin_vhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHZ_VARNAME, self%origin_vhz_varid)) + end if + return end subroutine netcdf_open @@ -219,7 +241,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) tslot = int(param%ioutput, kind=I4B) + 1 select type(self) - class is (swiftest_body) + class is (swiftest_body) associate(n => self%nbody) if (n == 0) return allocate(ind(n)) @@ -245,6 +267,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%vhy_varid, self%vh(2, j), start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%vhz_varid, self%vh(3, j), start=[idslot, tslot]) ) end if + if ((param%out_form == EL) .or. (param%out_form == XVEL)) then call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[idslot, tslot]) ) @@ -253,27 +276,42 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[idslot, tslot]) ) end if - select type(pl => self) + + if (iu%ltrack_origin) then + charstring = trim(adjustl(self%info(j)%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info(j)%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info(j)%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info(j)%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info(j)%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info(j)%origin_vh(3), start=[idslot]) ) + end if + + select type(self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, pl%Gmass(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass(j), start=[idslot, tslot]) ) if (param%lrhill_present) then - call check( nf90_put_var(iu%ncid, iu%rhill_varid, pl%rhill(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rhill_varid, self%rhill(j), start=[idslot, tslot]) ) end if if (param%lclose) then - call check( nf90_put_var(iu%ncid, iu%radius_varid, pl%radius(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius(j), start=[idslot, tslot]) ) end if if (param%lrotation) then - call check( nf90_put_var(iu%ncid, iu%Ip1_varid, pl%Ip(1, j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip2_varid, pl%Ip(2, j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%Ip3_varid, pl%Ip(3, j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotx_varid, pl%rot(1, j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%roty_varid, pl%rot(2, j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%rotz_varid, pl%rot(3, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip1_varid, self%Ip(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip2_varid, self%Ip(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Ip3_varid, self%Ip(3, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotx_varid, self%rot(1, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%roty_varid, self%rot(2, j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%rotz_varid, self%rot(3, j), start=[idslot, tslot]) ) end if if (param%ltides) then - call check( nf90_put_var(iu%ncid, iu%k2_varid, pl%k2(j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%Q_varid, pl%Q(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q(j), start=[idslot, tslot]) ) end if + end select end do end associate @@ -303,11 +341,25 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%k2_varid, self%k2, start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[idslot, tslot]) ) end if + + if (iu%ltrack_origin) then + charstring = trim(adjustl(self%info%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info%origin_vh(3), start=[idslot]) ) + end if end select return end subroutine netcdf_write_frame_base + module subroutine netcdf_write_hdr_system(self, iu, param) !! author: David A. Minton !! diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 02a44f091..c87aea559 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -67,15 +67,6 @@ module subroutine setup_construct_system(system, param) call util_exit(FAILURE) end select - select type(system) - class is (symba_nbody_system) - if (.not.allocated(system%cb%info)) allocate(symba_particle_info :: system%cb%info) - if (.not.allocated(param%nciu)) allocate(symba_netcdf_parameters :: param%nciu) - class default - if (.not.allocated(system%cb%info)) allocate(swiftest_particle_info :: system%cb%info) - if (.not.allocated(param%nciu)) allocate(netcdf_parameters :: param%nciu) - end select - return end subroutine setup_construct_system @@ -144,9 +135,45 @@ module subroutine setup_initialize_particle_info_system(self, param) implicit none ! Arguments class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + ! Internals + logical :: ltrack_origin + integer(I4B) :: i associate(cb => self%cb, pl => self%pl, npl => self%pl%nbody, tp => self%tp, ntp => self%tp%nbody) + select type(param) + class is (symba_parameters) + param%nciu%ltrack_origin = param%lfragmentation + class default + param%nciu%ltrack_origin = .false. + end select + + select type(param) + class is (symba_parameters) + ltrack_origin = param%lfragmentation + class default + ltrack_origin = .false. + end select + + if (ltrack_origin) then + cb%info%origin_type = "Initial conditions" + cb%info%origin_time = param%t0 + cb%info%origin_xh(:) = 0.0_DP + cb%info%origin_vh(:) = 0.0_DP + do i = 1, self%pl%nbody + pl%info(i)%origin_type = "Initial conditions" + pl%info(i)%origin_time = param%t0 + pl%info(i)%origin_xh(:) = self%pl%xh(:,i) + pl%info(i)%origin_vh(:) = self%pl%vh(:,i) + end do + do i = 1, self%tp%nbody + tp%info(i)%origin_type = "Initial conditions" + tp%info(i)%origin_time = param%t0 + tp%info(i)%origin_xh(:) = self%tp%xh(:,i) + tp%info(i)%origin_vh(:) = self%tp%vh(:,i) + end do + end if + cb%info%particle_type = CB_TYPE_NAME call cb%dump_particle_info(param) if (npl > 0) then @@ -157,6 +184,7 @@ module subroutine setup_initialize_particle_info_system(self, param) tp%info(1:ntp)%particle_type = TP_TYPE_NAME call tp%dump_particle_info(param) end if + end associate return diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index b4505741b..3f5ebadc3 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -839,120 +839,109 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, class is (symba_pl) select type(pl_discards => system%pl_discards) class is (symba_merger) - select type(info => pl%info) - class is (symba_particle_info) - associate(pl_adds => system%pl_adds, cb => system%cb) - - ! Add the family bodies to the subtraction list - nfamily = size(family(:)) - nfrag = size(m_frag(:)) - lmask(:) = .false. - lmask(family(:)) = .true. - pl%status(family(:)) = MERGED - nstart = pl_discards%nbody + 1 - nend = pl_discards%nbody + nfamily - call pl_discards%append(pl, lmask) - pl%ldiscard(family(:)) = .true. - pl%lcollision(family(:)) = .true. - - ! Record how many bodies were subtracted in this event - pl_discards%ncomp(nstart:nend) = nfamily - - ! Setup new bodies - allocate(plnew, mold=pl) - call plnew%setup(nfrag, param) - ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) + associate(info => pl%info, pl_adds => system%pl_adds, cb => system%cb) + ! Add the family bodies to the subtraction list + nfamily = size(family(:)) + nfrag = size(m_frag(:)) + lmask(:) = .false. + lmask(family(:)) = .true. + pl%status(family(:)) = MERGED + nstart = pl_discards%nbody + 1 + nend = pl_discards%nbody + nfamily + call pl_discards%append(pl, lmask) + pl%ldiscard(family(:)) = .true. + pl%lcollision(family(:)) = .true. - ! Copy over identification, information, and physical properties of the new bodies from the fragment list - plnew%id(1:nfrag) = id_frag(1:nfrag) - param%maxid = param%maxid + nfrag - plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) - plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) + ! Record how many bodies were subtracted in this event + pl_discards%ncomp(nstart:nend) = nfamily + + ! Setup new bodies + allocate(plnew, mold=pl) + call plnew%setup(nfrag, param) + ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) + + ! Copy over identification, information, and physical properties of the new bodies from the fragment list + plnew%id(1:nfrag) = id_frag(1:nfrag) + param%maxid = param%maxid + nfrag + plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) + plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) + do i = 1, nfrag + plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) + plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) + end do + plnew%mass(1:nfrag) = m_frag(1:nfrag) + plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) + plnew%radius(1:nfrag) = rad_frag(1:nfrag) + plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) + + select case(status) + case(DISRUPTION) + plnew%info(1:nfrag)%origin_type = "Disruption" + plnew%status(1:nfrag) = NEW_PARTICLE + plnew%info(1:nfrag)%origin_time = param%t + do i = 1, nfrag + write(info(i)%name, FRAGFMT) id_frag(i) + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(SUPERCATASTROPHIC) + plnew%info(1:nfrag)%origin_type = "Supercatastrophic" + plnew%status(1:nfrag) = NEW_PARTICLE + plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag - plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) - plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) + write(info(i)%name, FRAGFMT) id_frag(i) + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + end do + case(HIT_AND_RUN_DISRUPT) + plnew%info(1)%name = pl%info(ibiggest)%name + plnew%info(1)%origin_type = pl%info(ibiggest)%origin_type + plnew%info(1)%origin_xh(:) = pl%info(ibiggest)%origin_xh(:) + plnew%info(1)%origin_vh(:) = pl%info(ibiggest)%origin_vh(:) + plnew%status(1) = OLD_PARTICLE + plnew%status(2:nfrag) = NEW_PARTICLE + plnew%info(2:nfrag)%origin_type = "Hit and run fragment" + plnew%info(2:nfrag)%origin_time = param%t + do i = 2, nfrag + write(info(i)%name, FRAGFMT) id_frag(i) + plnew%info(i)%origin_xh(:) = plnew%xh(:,i) + plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do - plnew%mass(1:nfrag) = m_frag(1:nfrag) - plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) - plnew%radius(1:nfrag) = rad_frag(1:nfrag) - plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) + case(MERGED) + plnew%info(1)%name = pl%info(ibiggest)%name + plnew%info(1)%origin_type = pl%info(ibiggest)%origin_type + plnew%info(1)%origin_xh(:) = pl%info(ibiggest)%origin_xh(:) + plnew%info(1)%origin_vh(:) = pl%info(ibiggest)%origin_vh(:) + plnew%status(1) = OLD_PARTICLE + end select - select type(info => plnew%info) - class is (symba_particle_info) - select case(status) - case(DISRUPTION) - info(1:nfrag)%origin_type = "Disruption" - plnew%status(1:nfrag) = NEW_PARTICLE - info(1:nfrag)%origin_time = param%t - do i = 1, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) - info(i)%origin_xh(:) = plnew%xh(:,i) - info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(SUPERCATASTROPHIC) - info(1:nfrag)%origin_type = "Supercatastrophic" - plnew%status(1:nfrag) = NEW_PARTICLE - info(1:nfrag)%origin_time = param%t - do i = 1, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) - info(i)%origin_xh(:) = plnew%xh(:,i) - info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(HIT_AND_RUN_DISRUPT) - select type(plinfo => pl%info) - class is (symba_particle_info) - info(1)%name = plinfo(ibiggest)%name - info(1)%origin_xh(:) = plinfo(ibiggest)%origin_xh(:) - info(1)%origin_vh(:) = plinfo(ibiggest)%origin_vh(:) - end select - plnew%status(1) = OLD_PARTICLE - plnew%status(2:nfrag) = NEW_PARTICLE - info(2:nfrag)%origin_type = "Hit and run fragment" - info(2:nfrag)%origin_time = param%t - do i = 2, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) - info(i)%origin_xh(:) = plnew%xh(:,i) - info(i)%origin_vh(:) = plnew%vh(:,i) - end do - case(MERGED) - select type(plinfo => pl%info) - class is (symba_particle_info) - info(1)%name = plinfo(ibiggest)%name - info(1)%origin_xh(:) = plinfo(ibiggest)%origin_xh(:) - info(1)%origin_vh(:) = plinfo(ibiggest)%origin_vh(:) - end select - plnew%status(1) = OLD_PARTICLE - end select - end select - - if (param%lrotation) then - plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) - plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) - end if - - if (param%ltides) then - plnew%Q = pl%Q(ibiggest) - plnew%k2 = pl%k2(ibiggest) - plnew%tlag = pl%tlag(ibiggest) - end if + if (param%lrotation) then + plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) + plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) + end if + + if (param%ltides) then + plnew%Q = pl%Q(ibiggest) + plnew%k2 = pl%k2(ibiggest) + plnew%tlag = pl%tlag(ibiggest) + end if - call plnew%set_mu(cb) - !Copy over or set integration parameters for new bodies - plnew%lcollision(1:nfrag) = .false. - plnew%ldiscard(1:nfrag) = .false. - plnew%levelg(1:nfrag) = pl%levelg(ibiggest) - plnew%levelm(1:nfrag) = pl%levelm(ibiggest) - - ! Append the new merged body to the list and record how many we made - nstart = pl_adds%nbody + 1 - nend = pl_adds%nbody + plnew%nbody - call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) - pl_adds%ncomp(nstart:nend) = plnew%nbody - - call plnew%setup(0, param) - deallocate(plnew) - end associate - end select + call plnew%set_mu(cb) + !Copy over or set integration parameters for new bodies + plnew%lcollision(1:nfrag) = .false. + plnew%ldiscard(1:nfrag) = .false. + plnew%levelg(1:nfrag) = pl%levelg(ibiggest) + plnew%levelm(1:nfrag) = pl%levelm(ibiggest) + + ! Append the new merged body to the list and record how many we made + nstart = pl_adds%nbody + 1 + nend = pl_adds%nbody + plnew%nbody + call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) + pl_adds%ncomp(nstart:nend) = plnew%nbody + + call plnew%setup(0, param) + deallocate(plnew) + end associate end select end select diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 281fe7cdb..8b64950e9 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -2,30 +2,6 @@ use swiftest contains - module subroutine symba_io_dump_particle_info(self, iu) - !! author: David A. Minton - !! - !! Reads in particle information object information from an open file unformatted file - implicit none - ! Arguments - class(symba_particle_info), intent(in) :: self !! Particle metadata information object - integer(I4B), intent(in) :: iu !! Open file unit number - ! Internals - character(STRMAX) :: errmsg - - write(iu, err = 667, iomsg = errmsg) self%origin_type - write(iu, err = 667, iomsg = errmsg) self%origin_time - write(iu, err = 667, iomsg = errmsg) self%origin_xh(:) - write(iu, err = 667, iomsg = errmsg) self%origin_vh(:) - - return - - 667 continue - write(*,*) "Error writing particle metadata information from file: " // trim(adjustl(errmsg)) - call util_exit(FAILURE) - end subroutine symba_io_dump_particle_info - - module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, iomsg) !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! @@ -203,31 +179,6 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms end subroutine symba_io_param_writer - module subroutine symba_io_read_in_particle_info(self, iu) - !! author: David A. Minton - !! - !! Reads in particle information object information from an open file unformatted file - implicit none - ! Arguments - class(symba_particle_info), intent(inout) :: self !! Particle metadata information object - integer(I4B), intent(in) :: iu !! Open file unit number - ! Internals - character(STRMAX) :: errmsg - - call io_read_in_particle_info(self, iu) - read(iu, err = 667, iomsg = errmsg) self%origin_type - read(iu, err = 667, iomsg = errmsg) self%origin_time - read(iu, err = 667, iomsg = errmsg) self%origin_xh(:) - read(iu, err = 667, iomsg = errmsg) self%origin_vh(:) - - return - - 667 continue - write(*,*) "Error reading particle metadata information from file: " // trim(adjustl(errmsg)) - call util_exit(FAILURE) - end subroutine symba_io_read_in_particle_info - - module subroutine symba_io_write_discard(self, param) implicit none class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object diff --git a/src/symba/symba_netcdf.f90 b/src/symba/symba_netcdf.f90 deleted file mode 100644 index a3ef5cec0..000000000 --- a/src/symba/symba_netcdf.f90 +++ /dev/null @@ -1,206 +0,0 @@ -submodule (symba_classes) s_symba_netcdf - use swiftest - use netcdf -contains - - subroutine check(status) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Checks the status of all NetCDF operations to catch errors - implicit none - ! Arguments - integer, intent (in) :: status - - if(status /= nf90_noerr) then - write(*,*) trim(nf90_strerror(status)) - call util_exit(FAILURE) - end if - - return - end subroutine check - - module subroutine symba_netcdf_initialize_output(self, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Initialize a NetCDF file system and defines all variables. - implicit none - ! Arguments - class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - - - call netcdf_initialize_output(self, param) - - ! Define the variables - call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) - - return - - end subroutine symba_netcdf_initialize_output - - - module subroutine symba_netcdf_open(self, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Opens a NetCDF file and does the variable inquiries to activate variable ids - implicit none - ! Arguments - class(symba_netcdf_parameters), intent(inout) :: self !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - integer(I4B) :: old_mode - - call netcdf_open(self, param) - - call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_time_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHX_VARNAME, self%origin_vhx_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHY_VARNAME, self%origin_vhy_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHZ_VARNAME, self%origin_vhz_varid)) - - return - end subroutine symba_netcdf_open - - module subroutine symba_netcdf_write_frame_cb(self, iu, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Write a frame of output of a SyMBA massive body data to the binary output file - !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method - implicit none - ! Arguments - class(symba_cb), intent(in) :: self !! SyMBA central body object - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - integer(I4B) :: strlen, idslot - character(len=:), allocatable :: charstring - - call netcdf_write_frame_base(self, iu, param) - select type(iu) - class is (symba_netcdf_parameters) - select type(info => self%info) - class is (symba_particle_info) - idslot = self%id + 1 - - charstring = trim(adjustl(info%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info%origin_time, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info%origin_xh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info%origin_xh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info%origin_xh(3), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info%origin_vh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info%origin_vh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info%origin_vh(3), start=[idslot]) ) - end select - end select - - return - end subroutine symba_netcdf_write_frame_cb - - - module subroutine symba_netcdf_write_frame_pl(self, iu, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Write a frame of output of a SyMBA massive body data to the binary output file - !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method - implicit none - ! Arguments - class(symba_pl), intent(in) :: self !! SyMBA massive body object - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - integer(I4B) :: i, j, strlen, idslot - integer(I4B), dimension(:), allocatable :: ind - character(len=:), allocatable :: charstring - - call netcdf_write_frame_base(self, iu, param) - select type(iu) - class is (symba_netcdf_parameters) - associate(npl => self%nbody) - if (npl == 0) return - allocate(ind(npl)) - call util_sort(self%id(1:npl), ind(1:npl)) - select type(info => self%info) - class is (symba_particle_info) - do i = 1, npl - j = ind(i) - idslot = self%id(j) + 1 - - charstring = trim(adjustl(info(j)%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info(j)%origin_time, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info(j)%origin_xh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info(j)%origin_xh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info(j)%origin_xh(3), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info(j)%origin_vh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info(j)%origin_vh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info(j)%origin_vh(3), start=[idslot]) ) - end do - end select - end associate - - end select - - return - end subroutine symba_netcdf_write_frame_pl - - - module subroutine symba_netcdf_write_frame_tp(self, iu, param) - !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton - !! - !! Write a frame of output of a SyMBA massive body data to the binary output file - !! Note: If outputting to orbital elements, but sure that the conversion is done prior to calling this method - implicit none - ! Arguments - class(symba_tp), intent(in) :: self !! SyMBA test particle - class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - integer(I4B) :: i, j, strlen, idslot - integer(I4B), dimension(:), allocatable :: ind - character(len=:), allocatable :: charstring - - call netcdf_write_frame_base(self, iu, param) - select type(iu) - class is (symba_netcdf_parameters) - associate(ntp => self%nbody) - if (ntp == 0) return - allocate(ind(ntp)) - call util_sort(self%id(1:ntp), ind(1:ntp)) - select type(info => self%info) - class is (symba_particle_info) - do i = 1, ntp - j = ind(i) - idslot = self%id(j) + 1 - - charstring = trim(adjustl(info(j)%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - call check( nf90_put_var(iu%ncid, iu%origin_time_varid, info(j)%origin_time, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, info(j)%origin_xh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, info(j)%origin_xh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, info(j)%origin_xh(3), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, info(j)%origin_vh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, info(j)%origin_vh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, info(j)%origin_vh(3), start=[idslot]) ) - end do - end select - end associate - - end select - - return - end subroutine symba_netcdf_write_frame_tp -end submodule s_symba_netcdf \ No newline at end of file diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index f7cc82024..9eff6bf6c 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -2,50 +2,6 @@ use swiftest contains - module subroutine symba_setup_initialize_particle_info_system(self, param) - !! author: David A. Minton - !! - !! Initializes a new particle information data structure with initial conditions recorded - implicit none - ! Argumets - class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - ! Internals - integer(I4B) :: i - - select type(cbinfo => self%cb%info) - class is (symba_particle_info) - cbinfo%origin_type = "Initial conditions" - cbinfo%origin_time = param%t0 - cbinfo%origin_xh(:) = 0.0_DP - cbinfo%origin_vh(:) = 0.0_DP - end select - - select type(plinfo => self%pl%info) - class is (symba_particle_info) - do i = 1, self%pl%nbody - plinfo(i)%origin_type = "Initial conditions" - plinfo(i)%origin_time = param%t0 - plinfo(i)%origin_xh(:) = self%pl%xh(:,i) - plinfo(i)%origin_vh(:) = self%pl%vh(:,i) - end do - end select - - select type(tpinfo => self%tp%info) - class is (symba_particle_info) - do i = 1, self%tp%nbody - tpinfo(i)%origin_type = "Initial conditions" - tpinfo(i)%origin_time = param%t0 - tpinfo(i)%origin_xh(:) = self%tp%xh(:,i) - tpinfo(i)%origin_vh(:) = self%tp%vh(:,i) - end do - end select - call setup_initialize_particle_info_system(self, param) - - return - end subroutine symba_setup_initialize_particle_info_system - - module subroutine symba_setup_initialize_system(self, param) !! author: David A. Minton !! @@ -116,7 +72,6 @@ module subroutine symba_setup_pl(self, n, param) if (n <= 0) return - if (allocated(self%info)) deallocate(self%info) if (allocated(self%lcollision)) deallocate(self%lcollision) if (allocated(self%lencounter)) deallocate(self%lencounter) if (allocated(self%lmtiny)) deallocate(self%lmtiny) @@ -128,9 +83,7 @@ module subroutine symba_setup_pl(self, n, param) if (allocated(self%peri)) deallocate(self%peri) if (allocated(self%atp)) deallocate(self%atp) if (allocated(self%kin)) deallocate(self%kin) - if (allocated(self%info)) deallocate(self%info) - allocate(symba_particle_info :: self%info(n)) allocate(self%lcollision(n)) allocate(self%lencounter(n)) allocate(self%lmtiny(n)) diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 98a98ac0a..9722e4059 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -122,41 +122,23 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) !! Append a single array of particle information type onto another. If the destination array is not allocated, or is not big enough, this will allocate space for it. implicit none ! Arguments - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append - integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively - logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + type(swiftest_particle_info), dimension(:), allocatable, intent(in) :: source !! Array to append + integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to ! Internals integer(I4B) :: nnew - class(swiftest_particle_info), dimension(:), allocatable :: arr_tmp, source_tmp if (.not. allocated(source)) return nnew = count(lsource_mask(1:nsrc)) + if (.not.allocated(arr)) then + allocate(arr(nold+nnew)) + else + call util_resize(arr, nold + nnew) + end if - select type(source) - class is (symba_particle_info) - allocate(symba_particle_info :: arr_tmp(nold+nnew)) - if (nold > 0) then - arr_tmp(1:nold) = arr(1:nold) - deallocate(arr) - end if - class is (swiftest_particle_info) - allocate(swiftest_particle_info :: arr_tmp(nold+nnew)) - if (nold > 0) then - arr_tmp(1:nold) = arr(1:nold) - deallocate(arr) - end if - end select - - select type(source) - class is (symba_particle_info) - arr_tmp(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) - class is (swiftest_particle_info) - arr_tmp(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) - end select - - call move_alloc(arr_tmp, arr) + arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) return end subroutine util_append_arr_info diff --git a/src/util/util_fill.f90 b/src/util/util_fill.f90 index f3f6a3a95..7009e3688 100644 --- a/src/util/util_fill.f90 +++ b/src/util/util_fill.f90 @@ -90,37 +90,18 @@ module subroutine util_fill_arr_info(keeps, inserts, lfill_list) !! This is the inverse of a spill operation implicit none ! Arguments - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - class(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + type(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps ! Internals - class(swiftest_particle_info), dimension(:), allocatable :: ktmp, itmp - integer(I4B) :: nk, ni + type(swiftest_particle_info), dimension(:), allocatable :: ktmp, itmp - if (.not.allocated(keeps) .or. .not.allocated(inserts)) return - - nk = size(keeps) - ni = size(inserts) - - select type(keeps) - class is (symba_particle_info) - allocate(symba_particle_info :: ktmp(nk)) - class is (swiftest_particle_info) - allocate(swiftest_particle_info :: ktmp(nk)) - end select - select type(inserts) - class is (symba_particle_info) - allocate(symba_particle_info :: itmp(ni)) - class is (swiftest_particle_info) - allocate(swiftest_particle_info :: itmp(ni)) - end select + if (.not.allocated(keeps) .or. .not.allocated(inserts)) return - ktmp(:) = unpack(ktmp(:), .not.lfill_list(:), ktmp(:)) - ktmp(:) = unpack(itmp(:), lfill_list(:), ktmp(:)) + keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:)) + keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:)) - keeps(:) = ktmp(:) - return end subroutine util_fill_arr_info diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index 7ba7e19df..d43d0b879 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -138,28 +138,21 @@ module subroutine util_resize_arr_I4B(arr, nnew) end subroutine util_resize_arr_I4B - module subroutine util_resize_arr_info(arr, nnew) !! author: David A. Minton !! !! Resizes an array component of type character string. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. implicit none ! Arguments - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Array to resize integer(I4B), intent(in) :: nnew !! New size ! Internals - class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated + type(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size logical :: is_symba if (.not. allocated(arr) .or. nnew < 0) return - select type(arr) - class is (symba_particle_info) - is_symba = .true. - class default - is_symba = .false. - end select nold = size(arr) if (nnew == nold) return @@ -167,12 +160,8 @@ module subroutine util_resize_arr_info(arr, nnew) deallocate(arr) return end if - - if (is_symba) then - allocate(symba_particle_info :: tmp(nnew)) - else - allocate(swiftest_particle_info :: tmp(nnew)) - end if + + allocate(tmp(nnew)) if (nnew > nold) then tmp(1:nold) = arr(1:nold) else diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index 4364aa02a..218e49ef3 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -465,22 +465,18 @@ module subroutine util_sort_rearrange_arr_info(arr, ind, n) !! Rearrange a single array of particle information type in-place from an index list. implicit none ! Arguments - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - class(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + type(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation integer(I4B) :: i + if (.not. allocated(arr) .or. n <= 0) return - select type(arr) - class is (symba_particle_info) - allocate(symba_particle_info :: tmp(n)) - class is (swiftest_particle_info) - allocate(swiftest_particle_info :: tmp(n)) - end select + allocate(tmp, mold=arr) tmp(1:n) = arr(ind(1:n)) - arr(1:n) = tmp(1:n) + call move_alloc(tmp, arr) return end subroutine util_sort_rearrange_arr_info diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 66e5d22d8..84391f168 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -208,8 +208,8 @@ module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive !! This is the inverse of a spill operation implicit none ! Arguments - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep - class(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep + type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: discards !! Array of discards logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals From aa003bf7e730e906c43b3cbc7fe4344207bae1ee Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 09:18:25 -0400 Subject: [PATCH 242/315] Initialized info variables. Still not behaving properly, but at least it can be analyzed --- examples/symba_mars_disk/param.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 422 ++++++++++++++++++++-- src/setup/setup.f90 | 10 +- 3 files changed, 402 insertions(+), 32 deletions(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 725927f1b..122d1a9d7 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,6 +1,6 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 60000.0 +TSTOP 10000.0 DT 600.0 CB_IN cb.in PL_IN mars.in diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index a6d21ec0e..0b274f44b 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -35,30 +35,9 @@ "text": [ "Reading Swiftest file param.in\n", "\n", - "Creating Dataset\n" - ] - }, - { - "ename": "UnicodeDecodeError", - "evalue": "'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mUnicodeDecodeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mswiftest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSimulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam_file\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"param.in\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/simulation_class.py\u001b[0m in \u001b[0;36mbin2xr\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbin2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swiftest\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswiftest2xr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Swiftest simulation data stored as xarray DataSet .ds'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodename\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Swifter\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mswiftest2xr\u001b[0;34m(param)\u001b[0m\n\u001b[1;32m 697\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'\\nCreating Dataset'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 698\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_dataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'BIN_OUT'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 699\u001b[0;31m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclean_string_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 700\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Error encountered. OUT_TYPE {param['OUT_TYPE']} not recognized.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/git/swiftest/python/swiftest/swiftest/io.py\u001b[0m in \u001b[0;36mclean_string_values\u001b[0;34m(param, ds)\u001b[0m\n\u001b[1;32m 719\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m:\u001b[0m \u001b[0mxarray\u001b[0m \u001b[0mdataset\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mstrings\u001b[0m \u001b[0mcleaned\u001b[0m \u001b[0mup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 720\u001b[0m \"\"\" \n\u001b[0;32m--> 721\u001b[0;31m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'utf-8'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 722\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'particle_type'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'particle_type'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'utf-8'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 723\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'origin_type'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36mdecode\u001b[0;34m(self, encoding, errors)\u001b[0m\n\u001b[1;32m 2545\u001b[0m \u001b[0mdecoder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2546\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2547\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_apply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstr_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2548\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2549\u001b[0m def encode(\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m_apply\u001b[0;34m(self, func, dtype, output_core_dims, output_sizes, func_args, func_kwargs)\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0moutput_sizes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_sizes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0mfunc_args\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 241\u001b[0;31m \u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 242\u001b[0m )\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m_apply_str_ufunc\u001b[0;34m(func, obj, dtype, output_core_dims, output_sizes, func_args, func_kwargs)\u001b[0m\n\u001b[1;32m 136\u001b[0m \u001b[0moutput_core_dims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_core_dims\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0mdask_gufunc_kwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdask_gufunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 138\u001b[0;31m \u001b[0;34m**\u001b[0m\u001b[0mfunc_kwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 139\u001b[0m )\n\u001b[1;32m 140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_ufunc\u001b[0;34m(func, input_core_dims, output_core_dims, exclude_dims, vectorize, join, dataset_join, dataset_fill_value, keep_attrs, kwargs, dask, output_dtypes, output_sizes, meta, dask_gufunc_kwargs, *args)\u001b[0m\n\u001b[1;32m 1142\u001b[0m \u001b[0mjoin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1143\u001b[0m \u001b[0mexclude_dims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexclude_dims\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1144\u001b[0;31m \u001b[0mkeep_attrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkeep_attrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1145\u001b[0m )\n\u001b[1;32m 1146\u001b[0m \u001b[0;31m# feed Variables directly through apply_variable_ufunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_dataarray_vfunc\u001b[0;34m(func, signature, join, exclude_dims, keep_attrs, *args)\u001b[0m\n\u001b[1;32m 269\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 270\u001b[0m \u001b[0mdata_vars\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"variable\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 271\u001b[0;31m \u001b[0mresult_var\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mdata_vars\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 272\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 273\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_outputs\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/computation.py\u001b[0m in \u001b[0;36mapply_variable_ufunc\u001b[0;34m(func, signature, exclude_dims, dask, output_dtypes, vectorize, keep_attrs, dask_gufunc_kwargs, *args)\u001b[0m\n\u001b[1;32m 722\u001b[0m )\n\u001b[1;32m 723\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 724\u001b[0;31m \u001b[0mresult_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 725\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 726\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_outputs\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.local/lib/python3.7/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2111\u001b[0m \u001b[0mvargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0m_n\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_n\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2112\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2113\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_vectorize_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mvargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2115\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_ufunc_and_otypes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.local/lib/python3.7/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36m_vectorize_call\u001b[0;34m(self, func, args)\u001b[0m\n\u001b[1;32m 2195\u001b[0m for a in args]\n\u001b[1;32m 2196\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2197\u001b[0;31m \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mufunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2198\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2199\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mufunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnout\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/cent7/2020.02-py37/swiftestOOF/lib/python3.7/site-packages/xarray/core/accessor_str.py\u001b[0m in \u001b[0;36m\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 2541\u001b[0m \"\"\"\n\u001b[1;32m 2542\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_cpython_optimized_decoders\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2543\u001b[0;31m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2544\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2545\u001b[0m \u001b[0mdecoder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetdecoder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mUnicodeDecodeError\u001b[0m: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte" + "Creating Dataset\n", + "Successfully converted 2 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" ] } ], @@ -67,6 +46,389 @@ "sim.bin2xr()\n" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'name' (id: 1521)>\n",
    +       "array(['Mars', 'Body2', 'Body3', ..., 'UNNAMED', 'UNNAMED', 'UNNAMED'],\n",
    +       "      dtype='<U15')\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " + ], + "text/plain": [ + "\n", + "array(['Mars', 'Body2', 'Body3', ..., 'UNNAMED', 'UNNAMED', 'UNNAMED'],\n", + " dtype='
    <xarray.DataArray 'name' ()>\n",
    -       "array(b'UNNAMED', dtype='|S32')\n",
    +       "array(b'1322', dtype='|S32')\n",
            "Coordinates:\n",
    -       "    id       int32 1885
    " + " id int32 1321" ], "text/plain": [ "\n", - "array(b'UNNAMED', dtype='|S32')\n", + "array(b'1322', dtype='|S32')\n", "Coordinates:\n", - " id int32 1885" + " id int32 1321" ] }, - "execution_count": 18, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index c87aea559..342818672 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -237,7 +237,8 @@ module subroutine setup_body(self, n, param) class(swiftest_body), intent(inout) :: self !! Swiftest generic body object integer(I4B), intent(in) :: n !! Number of particles to allocate space for class(swiftest_parameters), intent(in) :: param !! Current run configuration parameter - + ! Internals + integer(I4B) :: i self%nbody = n if (n <= 0) return self%lfirst = .true. @@ -270,6 +271,13 @@ module subroutine setup_body(self, n, param) self%id(:) = 0 self%info(:)%name = "UNNAMED" + self%info(:)%particle_type = "UKNOWN" + self%info(:)%origin_type = "UNKNOWN" + self%info(:)%origin_time = -1.0_DP + do i = 1, n + self%info(i)%origin_xh(:) = 0.0_DP + self%info(i)%origin_vh(:) = 0.0_DP + end do self%status(:) = INACTIVE self%lmask(:) = .false. self%ldiscard(:) = .false. From 76ddac98a6a7e9cef5506ef3fbbef0a13e5fce38 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 12:56:51 -0400 Subject: [PATCH 243/315] Fixed problems involving fill, spill, append, and resize methods on particle info objects using a set of new copy subroutines. Testing seems to indicate that it is finally working --- examples/symba_mars_disk/mars.in | 2992 ++++++++++----------- examples/symba_mars_disk/param.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 33 +- src/modules/swiftest_classes.f90 | 64 +- src/symba/symba_collision.f90 | 22 +- src/util/util_append.f90 | 15 +- src/util/util_copy.f90 | 115 +- src/util/util_fill.f90 | 15 +- src/util/util_resize.f90 | 5 +- src/util/util_sort.f90 | 9 +- src/util/util_spill.f90 | 46 +- 11 files changed, 1717 insertions(+), 1601 deletions(-) diff --git a/examples/symba_mars_disk/mars.in b/examples/symba_mars_disk/mars.in index 9fbb1ef1a..188eb3c6e 100644 --- a/examples/symba_mars_disk/mars.in +++ b/examples/symba_mars_disk/mars.in @@ -23,8977 +23,8977 @@ Body5 1.44988335e+05 1.52187807e+04 ! particle number mass Rhill 9.82512278e+02 1.42576317e+03 8.88854207e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill +Body6 3.78500932e+05 1.43710361e+04 ! particle number mass Rhill 7.50714229e+03 !particle radius in AU -9.39611249e+06 3.86341011e+06 4.12677461e+04 ! x y z -8.05714130e+02 -1.87378063e+03 1.44571432e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill +Body7 4.22792487e+05 1.91833939e+04 ! particle number mass Rhill 7.78923399e+03 !particle radius in AU -4.75251420e+06 -1.21243281e+07 -4.63584868e+04 ! x y z 1.67483168e+03 -6.72935315e+02 -2.51894419e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill +Body8 7.71745838e+05 2.46689817e+04 ! particle number mass Rhill 9.51941869e+03 !particle radius in AU -1.85450966e+06 -1.34716389e+07 8.25492639e+04 ! x y z 1.75187299e+03 -2.73602528e+02 -3.13786565e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill +Body9 9.61893115e+05 2.40394481e+04 ! particle number mass Rhill 1.02445905e+04 !particle radius in AU 1.23514674e+07 2.68920661e+05 1.39262437e+04 ! x y z -5.46299990e+01 1.85637492e+03 8.88156878e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill +Body10 9.05777402e+05 1.85084324e+04 ! particle number mass Rhill 1.00413666e+04 !particle radius in AU -3.23931710e+06 -9.01689172e+06 -4.12799209e+04 ! x y z 2.01018172e+03 -6.80970287e+02 7.47887585e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill +Body11 7.45490873e+05 1.85936744e+04 ! particle number mass Rhill 9.41021993e+03 !particle radius in AU -8.22383274e+06 6.53912283e+06 -4.14927827e+04 ! x y z -1.24361728e+03 -1.57101590e+03 1.15408315e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill +Body12 1.62561944e+05 1.74719338e+04 ! particle number mass Rhill 5.66402670e+03 !particle radius in AU 1.08162501e+06 1.60434368e+07 -1.90513596e+05 ! x y z -1.63320995e+03 9.41371249e+01 -1.08583324e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill +Body13 2.53914705e+05 1.18629878e+04 ! particle number mass Rhill 9.68422654e+03 !particle radius in AU 8.87638562e+06 -3.42494393e+06 3.77051239e+04 ! x y z 7.17031490e+02 1.98991002e+03 1.65715407e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill +Body14 4.49497062e+05 1.80709533e+04 ! particle number mass Rhill 1.17150625e+04 !particle radius in AU 8.43240423e+06 -8.47557599e+06 9.53685695e+04 ! x y z 1.37244856e+03 1.29766742e+03 6.52389482e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill +Body15 1.26801801e+06 2.59747860e+04 ! particle number mass Rhill 1.12329581e+04 !particle radius in AU 9.22664947e+06 8.30989011e+06 -5.74831096e+04 ! x y z -1.25111883e+03 1.34059241e+03 8.55955292e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill +Body16 9.75352347e+05 2.91597894e+04 ! particle number mass Rhill 1.02921516e+04 !particle radius in AU -4.08982641e+06 1.42813091e+07 2.62466604e+04 ! x y z -1.63050329e+03 -4.70983328e+02 5.42658810e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill +Body17 5.40910752e+04 7.00056187e+03 ! particle number mass Rhill 3.92489041e+03 !particle radius in AU 8.28836769e+06 -4.56966319e+06 -1.00925184e+04 ! x y z 1.01075458e+03 1.85603564e+03 9.12767608e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill +Body18 1.99689612e+06 3.23933078e+04 ! particle number mass Rhill 1.30688534e+04 !particle radius in AU -7.36104027e+06 -1.05891946e+07 7.75267384e+04 ! x y z 1.50650168e+03 -1.03626339e+03 6.92830281e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill +Body19 1.15056094e+06 2.84099265e+04 ! particle number mass Rhill 1.08748232e+04 !particle radius in AU -1.16432549e+07 7.04896042e+06 1.31826777e+04 ! x y z -9.22639859e+02 -1.52066967e+03 -1.15982407e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill +Body20 9.02282771e+04 1.44052969e+04 ! particle number mass Rhill 4.65478777e+03 !particle radius in AU 1.54278872e+07 -4.66477914e+06 2.89150511e+04 ! x y z 4.74802657e+02 1.56436208e+03 1.16558658e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill +Body21 2.52706341e+05 1.13089015e+04 ! particle number mass Rhill 6.56131734e+03 !particle radius in AU 8.25405514e+06 -3.99894087e+06 -1.03017471e+05 ! x y z 9.55530709e+02 1.91876743e+03 -2.12478228e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill +Body22 3.44014800e+05 1.39895248e+04 ! particle number mass Rhill 7.27184654e+03 !particle radius in AU -1.01048660e+07 -7.25267430e+05 3.72763878e+04 ! x y z 1.50338830e+02 -2.04513843e+03 -6.64737882e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill +Body23 2.72301402e+04 6.52734935e+03 ! particle number mass Rhill 4.60100051e+03 !particle radius in AU 1.08085981e+07 8.91343848e+05 -8.59837690e+04 ! x y z -1.73598988e+02 1.98921090e+03 7.39675166e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill +Body24 1.88387060e+06 4.79739567e+04 ! particle number mass Rhill 1.28174811e+04 !particle radius in AU -1.95760874e+07 2.13874411e+06 9.87141675e+04 ! x y z -1.78019032e+02 -1.46067517e+03 7.47552271e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill +Body25 1.99552106e+06 3.51994254e+04 ! particle number mass Rhill 1.30658530e+04 !particle radius in AU -5.15587895e+06 1.31093030e+07 2.34999443e+04 ! x y z -1.60915655e+03 -6.75665775e+02 -1.41401807e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill +Body26 9.80460627e+05 2.82973543e+04 ! particle number mass Rhill 1.03100883e+04 !particle radius in AU -1.04206598e+07 1.04694469e+07 3.71773715e+04 ! x y z -1.22193412e+03 -1.15184993e+03 -7.42970615e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill +Body27 2.99657072e+05 1.52153060e+04 ! particle number mass Rhill 1.02339628e+04 !particle radius in AU -8.37104048e+06 -7.31013791e+06 1.37822827e+05 ! x y z 1.31083458e+03 -1.50225202e+03 1.24188931e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill +Body28 5.82137831e+05 2.49711445e+04 ! particle number mass Rhill 8.66551286e+03 !particle radius in AU -1.37026179e+07 6.52187486e+06 4.74483726e+04 ! x y z -7.21171063e+02 -1.51233609e+03 4.06777653e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill +Body29 1.10612525e+06 1.96262714e+04 ! particle number mass Rhill 1.07329828e+04 !particle radius in AU 7.27063487e+05 9.63835599e+06 7.97365647e+04 ! x y z -2.09031891e+03 1.45245810e+02 -8.30488647e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill +Body30 7.84395275e+05 1.87003585e+04 ! particle number mass Rhill 9.57114700e+03 !particle radius in AU 7.25596696e+06 -7.23053656e+06 1.87472853e+03 ! x y z 1.43916819e+03 1.45132061e+03 9.58485615e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill +Body31 6.50793385e+04 1.12167591e+04 ! particle number mass Rhill 6.15153311e+03 !particle radius in AU -7.29036745e+06 1.20321492e+07 2.47342157e+04 ! x y z -1.50263763e+03 -8.87670849e+02 -4.72544240e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill +Body32 1.21978955e+06 2.36695934e+04 ! particle number mass Rhill 1.10887000e+04 !particle radius in AU -4.85214384e+06 9.94913086e+06 -1.36593449e+05 ! x y z -1.77462439e+03 -8.70796881e+02 -4.04772339e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill +Body33 6.39027490e+04 8.29271375e+03 ! particle number mass Rhill 6.11423561e+03 !particle radius in AU -8.57362843e+06 -5.69257679e+06 -1.86992418e+04 ! x y z 1.16808481e+03 -1.69357760e+03 1.48289207e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill +Body34 1.08790745e+05 9.99433624e+03 ! particle number mass Rhill 4.95430775e+03 !particle radius in AU -1.19543227e+04 1.04662309e+07 -2.75529146e+04 ! x y z -2.03252516e+03 -1.02408335e+01 -9.64298816e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill +Body35 8.08651729e+05 1.70555918e+04 ! particle number mass Rhill 9.66880578e+03 !particle radius in AU -1.68361528e+06 9.15840339e+06 -9.34661786e+04 ! x y z -2.10432868e+03 -3.67110160e+02 2.17992849e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill +Body36 5.50682707e+05 1.64680955e+04 ! particle number mass Rhill 8.50653728e+03 !particle radius in AU 7.61819019e+06 6.79194080e+06 -4.97100639e+04 ! x y z -1.37259731e+03 1.51157244e+03 2.28319862e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill +Body37 1.31696234e+06 2.34161781e+04 ! particle number mass Rhill 1.13756647e+04 !particle radius in AU -8.27002578e+05 -1.07584936e+07 -8.18905340e+04 ! x y z 1.98624835e+03 -1.45613526e+02 -2.22634090e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill +Body38 1.67567536e+06 4.67762262e+04 ! particle number mass Rhill 1.23267605e+04 !particle radius in AU 8.40661307e+06 -1.79965632e+07 -1.83341147e+05 ! x y z 1.32267980e+03 6.38873327e+02 -4.32228630e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill +Body39 7.50288390e+05 1.88489715e+04 ! particle number mass Rhill 9.43036290e+03 !particle radius in AU 7.47325276e+06 7.65731082e+06 2.72651622e+04 ! x y z -1.39038210e+03 1.40779235e+03 -7.40097961e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill +Body40 4.23539126e+05 1.37958364e+04 ! particle number mass Rhill 7.79381648e+03 !particle radius in AU -9.14822275e+06 5.65579867e+05 1.54779239e+04 ! x y z -1.53215921e+02 -2.16863876e+03 -1.41098203e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill +Body41 4.39861439e+05 1.66151277e+04 ! particle number mass Rhill 1.16307473e+04 !particle radius in AU -5.60611609e+06 9.45764489e+06 -1.08254759e+05 ! x y z -1.70147881e+03 -1.00583116e+03 -1.54758662e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill +Body42 9.44211643e+05 3.38129666e+04 ! particle number mass Rhill 1.01814300e+04 !particle radius in AU -1.66612775e+07 5.22172921e+06 -2.86187005e+04 ! x y z -4.30163112e+02 -1.50298858e+03 1.29664314e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill +Body43 5.37130817e+05 1.63663901e+04 ! particle number mass Rhill 1.24316568e+04 !particle radius in AU 3.27505920e+06 -9.55860249e+06 -5.64452508e+04 ! x y z 1.95132421e+03 6.74732817e+02 -1.39202732e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill +Body44 5.34406540e+04 6.72719292e+03 ! particle number mass Rhill 3.90909524e+03 !particle radius in AU 1.52951536e+06 -8.90157648e+06 -8.46439916e+04 ! x y z 2.14907459e+03 3.37495875e+02 -8.51148141e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill +Body45 2.61985808e+04 5.30869821e+03 ! particle number mass Rhill 4.54215111e+03 !particle radius in AU 8.06820634e+06 -4.23727397e+06 -3.35114261e+04 ! x y z 1.02022988e+03 1.90034431e+03 -4.99905529e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill +Body46 1.73774454e+05 1.01624840e+04 ! particle number mass Rhill 8.53422917e+03 !particle radius in AU -8.77755612e+06 2.67256349e+06 2.67913370e+04 ! x y z -6.14674972e+02 -2.07327300e+03 8.52604410e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill +Body47 3.73597392e+05 1.46814986e+04 ! particle number mass Rhill 1.10146390e+04 !particle radius in AU 2.70600522e+06 -9.90290693e+06 3.76996678e+04 ! x y z 1.96230063e+03 5.74973963e+02 -1.26240524e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill +Body48 8.11545355e+04 7.79257078e+03 ! particle number mass Rhill 6.62124902e+03 !particle radius in AU -6.67312956e+06 6.21207172e+06 -4.02351915e+03 ! x y z -1.48608180e+03 -1.57249051e+03 1.60424143e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill +Body49 4.45404571e+04 7.26261410e+03 ! particle number mass Rhill 5.42109743e+03 !particle radius in AU -6.18076768e+06 8.34028857e+06 6.32429656e+04 ! x y z -1.63237248e+03 -1.20222734e+03 4.88968977e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill +Body50 1.31861988e+06 3.91995883e+04 ! particle number mass Rhill 1.13804352e+04 !particle radius in AU 5.85188296e+06 1.72848338e+07 9.71123353e+04 ! x y z -1.44962394e+03 4.67717479e+02 -1.00039018e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill +Body51 1.12893377e+05 1.01290663e+04 ! particle number mass Rhill 5.01581856e+03 !particle radius in AU 7.64956565e+06 7.07155375e+06 1.22619349e+05 ! x y z -1.38177043e+03 1.50469594e+03 5.48084097e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill +Body52 1.68334006e+04 5.06310814e+03 ! particle number mass Rhill 3.91946036e+03 !particle radius in AU 8.19731246e+06 5.46984950e+06 3.09134904e+04 ! x y z -1.14400536e+03 1.75729614e+03 -1.68472307e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill +Body53 1.54365101e+05 1.04942587e+04 ! particle number mass Rhill 5.56718137e+03 !particle radius in AU -7.08694323e+06 6.97654393e+06 1.57444613e+04 ! x y z -1.43699629e+03 -1.48696944e+03 1.09569025e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill +Body54 9.06762984e+05 1.88988951e+04 ! particle number mass Rhill 1.00450073e+04 !particle radius in AU 8.33364079e+06 -4.88517773e+06 7.16288059e+04 ! x y z 1.11170923e+03 1.81264092e+03 6.00546346e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill +Body55 2.55655491e+05 1.62270080e+04 ! particle number mass Rhill 6.58674280e+03 !particle radius in AU -9.33769960e+06 9.14931622e+06 -1.61970964e+04 ! x y z -1.24590275e+03 -1.29664452e+03 6.60457748e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill +Body56 1.99590731e+05 1.09981608e+04 ! particle number mass Rhill 8.93749433e+03 !particle radius in AU -9.38351744e+06 2.21172448e+06 -6.82548828e+04 ! x y z -4.82800182e+02 -2.03545597e+03 -5.73581498e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill +Body57 7.37782104e+04 7.34813900e+03 ! particle number mass Rhill 4.35272973e+03 !particle radius in AU 1.87895940e+06 -8.56248718e+06 -3.00496615e+04 ! x y z 2.17444079e+03 4.47176832e+02 -1.19261276e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill +Body58 1.25041873e+06 2.28348345e+04 ! particle number mass Rhill 1.11807470e+04 !particle radius in AU 8.32914883e+06 6.99509139e+06 3.96475596e+03 ! x y z -1.25015649e+03 1.51958279e+03 -4.03731794e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill +Body59 1.37171779e+05 1.41766211e+04 ! particle number mass Rhill 5.35230171e+03 !particle radius in AU 1.40169380e+07 1.14833336e+06 8.97154952e+04 ! x y z -1.67134532e+02 1.72504621e+03 -4.99628204e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill +Body60 8.80288489e+05 1.70052916e+04 ! particle number mass Rhill 9.94627977e+03 !particle radius in AU 6.25929466e+06 6.41436879e+06 2.03611835e+04 ! x y z -1.56963361e+03 1.52043093e+03 1.04032604e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill +Body61 1.96125392e+06 2.29947859e+04 ! particle number mass Rhill 1.29906317e+04 !particle radius in AU 6.59380692e+06 6.26136699e+06 5.26920752e+02 ! x y z -1.52860150e+03 1.56995044e+03 -5.04992194e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill +Body62 1.49347785e+05 9.80816768e+03 ! particle number mass Rhill 5.50619929e+03 !particle radius in AU -3.18458810e+06 8.95887994e+06 6.14079574e+04 ! x y z -1.98254651e+03 -6.98894893e+02 -6.28253660e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill +Body63 8.45892929e+05 1.77429946e+04 ! particle number mass Rhill 9.81501110e+03 !particle radius in AU 3.21556801e+06 8.85736420e+06 1.68758030e+04 ! x y z -2.01862696e+03 7.01940495e+02 -7.77962553e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill +Body64 3.38627248e+05 2.06919676e+04 ! particle number mass Rhill 7.23368562e+03 !particle radius in AU 6.87944610e+06 1.31239767e+07 8.47895296e+04 ! x y z -1.52033935e+03 7.81668854e+02 8.53929151e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill +Body65 7.52641233e+04 8.62006715e+03 ! particle number mass Rhill 4.38175744e+03 !particle radius in AU -7.12317437e+06 7.79679451e+06 1.14295538e+05 ! x y z -1.45772671e+03 -1.35257658e+03 -8.92909999e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill +Body66 7.51283556e+04 7.45534608e+03 ! particle number mass Rhill 6.45312806e+03 !particle radius in AU -7.50346488e+06 4.59614758e+06 -1.78561776e+04 ! x y z -1.17484683e+03 -1.88471092e+03 2.06051741e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill +Body67 3.58863940e+04 7.06699862e+03 ! particle number mass Rhill 5.04443190e+03 !particle radius in AU -9.72849273e+06 -4.49090647e+06 9.42367849e+04 ! x y z 8.55743475e+02 -1.81695360e+03 -2.08602456e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill +Body68 5.39050973e+05 1.89939454e+04 ! particle number mass Rhill 1.24464529e+04 !particle radius in AU -9.38461254e+06 6.94991468e+06 -5.96507119e+04 ! x y z -1.15295098e+03 -1.53950357e+03 3.51558529e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill +Body69 5.55731862e+05 1.63025647e+04 ! particle number mass Rhill 1.25735358e+04 !particle radius in AU -7.41691843e+05 -1.00833740e+07 -5.60539800e+04 ! x y z 2.04132497e+03 -1.60740204e+02 -2.66722707e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill +Body70 1.85893859e+05 1.93787863e+04 ! particle number mass Rhill 8.72818623e+03 !particle radius in AU -1.55585013e+07 -7.11561291e+06 3.93194543e+03 ! x y z 6.65437196e+02 -1.43702009e+03 -7.23293961e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill +Body71 4.73221481e+05 1.37788592e+04 ! particle number mass Rhill 8.08736691e+03 !particle radius in AU -3.34597213e+06 -8.19414991e+06 6.06177774e+04 ! x y z 2.03861032e+03 -8.50240184e+02 5.81078899e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill +Body72 4.28389242e+05 1.47467226e+04 ! particle number mass Rhill 1.15287399e+04 !particle radius in AU 1.97016279e+06 -9.71556312e+06 -9.30987397e+03 ! x y z 2.03815672e+03 3.86141142e+02 -6.70148607e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill +Body73 8.19004993e+05 3.14203696e+04 ! particle number mass Rhill 9.70989454e+03 !particle radius in AU -1.23610305e+07 -1.14674155e+07 1.26044785e+04 ! x y z 1.08318223e+03 -1.17487397e+03 -3.70767753e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill +Body74 3.22247799e+04 9.40603276e+03 ! particle number mass Rhill 4.86667460e+03 !particle radius in AU 6.60995348e+06 1.33054967e+07 -1.05591305e+03 ! x y z -1.53012251e+03 7.44076876e+02 -1.33826451e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill +Body75 9.47076576e+05 1.85861891e+04 ! particle number mass Rhill 1.01917171e+04 !particle radius in AU 7.08025559e+06 6.63712140e+06 8.28590703e+04 ! x y z -1.43411418e+03 1.51197736e+03 -1.05467488e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill +Body76 2.03239039e+05 1.20174065e+04 ! particle number mass Rhill 8.99162185e+03 !particle radius in AU -7.28273678e+06 -7.57343022e+06 -3.32239292e+04 ! x y z 1.43763945e+03 -1.39069870e+03 1.98407302e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill +Body77 9.88331069e+05 1.79814862e+04 ! particle number mass Rhill 1.03376021e+04 !particle radius in AU 9.90338765e+05 -9.02823668e+06 -1.20306983e+04 ! x y z 2.16293198e+03 2.29403632e+02 1.02563280e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill +Body78 1.34673785e+06 2.07165732e+04 ! particle number mass Rhill 1.14607582e+04 !particle radius in AU 7.24980777e+06 6.13973485e+06 4.31080507e+04 ! x y z -1.36304394e+03 1.62331327e+03 -1.35525280e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill +Body79 1.57656876e+05 1.82922097e+04 ! particle number mass Rhill 5.60647602e+03 !particle radius in AU 1.67269227e+07 2.38546079e+06 3.97527319e+04 ! x y z -2.22376967e+02 1.58567381e+03 -8.67277559e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill +Body80 1.28010472e+05 1.07789892e+04 ! particle number mass Rhill 5.23039108e+03 !particle radius in AU 1.04063991e+07 -2.47414364e+06 2.55875518e+04 ! x y z 4.41751921e+02 1.96103152e+03 -4.73452379e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill +Body81 8.50795985e+05 2.19859152e+04 ! particle number mass Rhill 9.83393818e+03 !particle radius in AU 6.53964743e+06 -9.91913737e+06 9.96407478e+04 ! x y z 1.55366935e+03 1.06687009e+03 -2.02851694e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill +Body82 8.53308237e+04 7.87999685e+03 ! particle number mass Rhill 6.73293314e+03 !particle radius in AU 7.88901212e+06 4.39968813e+06 4.59555939e+04 ! x y z -1.07086350e+03 1.89616918e+03 7.27266270e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill +Body83 1.65011172e+06 2.23190317e+04 ! particle number mass Rhill 1.22637545e+04 !particle radius in AU -3.20114591e+05 9.47888835e+06 9.88766449e+03 ! x y z -2.12931637e+03 -7.10990071e+01 1.07017003e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill +Body84 9.21412796e+04 1.13373705e+04 ! particle number mass Rhill 6.90749219e+03 !particle radius in AU 9.14219160e+06 8.75278019e+06 -4.92172540e+04 ! x y z -1.29548970e+03 1.30726587e+03 -1.50278883e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill +Body85 5.44801725e+05 2.52683195e+04 ! particle number mass Rhill 8.47614716e+03 !particle radius in AU -1.38612397e+07 6.86502447e+06 -1.61982632e+04 ! x y z -7.48338598e+02 -1.49504839e+03 1.44565317e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill +Body86 1.69208498e+05 1.34853045e+04 ! particle number mass Rhill 5.74019158e+03 !particle radius in AU 1.25478256e+07 -2.77052958e+05 1.12717341e+03 ! x y z 4.85806635e+01 1.82811230e+03 -1.79057921e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill +Body87 4.14083301e+04 7.99285727e+03 ! particle number mass Rhill 5.29092447e+03 !particle radius in AU 1.40993545e+06 1.16245820e+07 -3.61782966e+04 ! x y z -1.89457813e+03 2.30174579e+02 1.28253693e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill +Body88 2.73242366e+05 1.69259201e+04 ! particle number mass Rhill 9.92395993e+03 !particle radius in AU 1.00651315e+07 -8.63755855e+06 -2.94583233e+04 ! x y z 1.16408014e+03 1.36020820e+03 -5.13543123e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill +Body89 1.56636842e+06 2.89028940e+04 ! particle number mass Rhill 1.20526803e+04 !particle radius in AU 2.98890445e+06 1.22541433e+07 2.56056735e+04 ! x y z -1.78538758e+03 4.40494099e+02 -2.21749367e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill +Body90 7.41360614e+04 8.74086990e+03 ! particle number mass Rhill 4.35975582e+03 !particle radius in AU 5.19540663e+06 -9.11850659e+06 6.55061213e+04 ! x y z 1.75856318e+03 9.95618038e+02 1.03697665e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill +Body91 1.42161293e+05 1.27069754e+04 ! particle number mass Rhill 5.41642563e+03 !particle radius in AU 4.97139511e+06 -1.11941305e+07 -1.40627719e+05 ! x y z 1.71256583e+03 7.58315920e+02 -4.27199322e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill +Body92 9.13995149e+04 1.13361519e+04 ! particle number mass Rhill 6.88890644e+03 !particle radius in AU 1.25156536e+07 -1.83009831e+06 -1.83401376e+04 ! x y z 2.71538728e+02 1.82389745e+03 -1.16128548e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill +Body93 1.07044868e+05 1.17021442e+04 ! particle number mass Rhill 4.92766241e+03 !particle radius in AU -4.24848440e+06 -1.14141124e+07 -3.56440379e+04 ! x y z 1.77145707e+03 -6.72445172e+02 -1.27477365e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill +Body94 3.76989280e+04 5.87655474e+03 ! particle number mass Rhill 5.12796820e+03 !particle radius in AU -2.67257221e+06 8.24864699e+06 -3.60351703e+04 ! x y z -2.13740103e+03 -6.84795253e+02 -6.19432137e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill +Body95 5.61798767e+04 1.27352327e+04 ! particle number mass Rhill 3.97477538e+03 !particle radius in AU 3.38794467e+06 -1.65102444e+07 1.31352407e+05 ! x y z 1.55800648e+03 3.20903339e+02 1.95779030e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill +Body96 1.57775071e+05 1.10562884e+04 ! particle number mass Rhill 5.60787672e+03 !particle radius in AU 3.25966423e+06 9.75900867e+06 3.76712868e+04 ! x y z -1.92824453e+03 6.78004645e+02 2.13894611e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill +Body97 1.13795601e+05 8.57940062e+03 ! particle number mass Rhill 5.02914497e+03 !particle radius in AU -8.82496169e+06 1.17570086e+06 -2.77994253e+03 ! x y z -3.06986654e+02 -2.17589269e+03 -3.00417185e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill +Body98 1.79190724e+06 2.82629939e+04 ! particle number mass Rhill 1.26054254e+04 !particle radius in AU -8.96181392e+06 -8.08537511e+06 -9.49567974e+03 ! x y z 1.24755669e+03 -1.37614946e+03 4.00147116e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill +Body99 5.03967422e+04 7.85179385e+03 ! particle number mass Rhill 3.83342071e+03 !particle radius in AU 1.05138352e+07 -2.53028835e+06 -2.47118873e+04 ! x y z 4.70010064e+02 1.92569661e+03 -1.14250111e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill +Body100 1.70139143e+06 2.25402503e+04 ! particle number mass Rhill 1.23894990e+04 !particle radius in AU -8.86717935e+06 -3.01884801e+06 5.43577921e+03 ! x y z 6.99055272e+02 -2.04010264e+03 8.96596820e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill +Body101 1.45480563e+05 1.54210016e+04 ! particle number mass Rhill 8.04335643e+03 !particle radius in AU 1.42373839e+07 3.02611132e+06 -1.43164181e+04 ! x y z -4.03733107e+02 1.68169148e+03 7.10932541e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill +Body102 6.69285233e+05 1.80640179e+04 ! particle number mass Rhill 9.07798396e+03 !particle radius in AU -6.09504895e+06 8.50655715e+06 -5.34991934e+04 ! x y z -1.62687481e+03 -1.19574157e+03 5.21976127e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill +Body103 5.54045810e+04 7.41916597e+03 ! particle number mass Rhill 3.95640633e+03 !particle radius in AU 3.72306724e+06 9.02743458e+06 4.19786502e+04 ! x y z -1.94834474e+03 7.84745897e+02 -7.86691937e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill +Body104 3.37361939e+05 1.43866451e+04 ! particle number mass Rhill 1.06463568e+04 !particle radius in AU 5.64202715e+06 -8.82003156e+06 9.37432782e+03 ! x y z 1.69914027e+03 1.09005087e+03 8.81006839e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill +Body105 5.14662528e+04 8.81661114e+03 ! particle number mass Rhill 5.68865819e+03 !particle radius in AU -1.08304546e+07 -5.16566260e+06 -4.58380354e+04 ! x y z 8.08725156e+02 -1.70426515e+03 -1.40809084e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill +Body106 3.39041970e+05 1.37464490e+04 ! particle number mass Rhill 1.06640002e+04 !particle radius in AU 9.97312286e+06 -1.70160094e+06 4.10359397e+04 ! x y z 3.34859938e+02 2.01251950e+03 -1.05202781e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill +Body107 1.35309181e+05 1.06647393e+04 ! particle number mass Rhill 7.85135736e+03 !particle radius in AU 7.03958663e+06 7.71716479e+06 -8.94733922e+03 ! x y z -1.49839830e+03 1.36772144e+03 -1.09915777e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill +Body108 1.53942820e+04 6.17971607e+03 ! particle number mass Rhill 3.80442303e+03 !particle radius in AU 1.15617458e+07 -4.37264141e+06 4.98550747e+04 ! x y z 6.45606485e+02 1.75989881e+03 1.00504151e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill +Body109 1.20359498e+05 1.03531982e+04 ! particle number mass Rhill 7.55084889e+03 !particle radius in AU 6.33009492e+06 8.26456632e+06 4.39267321e+04 ! x y z -1.63555236e+03 1.22749817e+03 -2.79591207e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill +Body110 4.02306238e+04 1.19594172e+04 ! particle number mass Rhill 5.24028103e+03 !particle radius in AU -1.23116789e+06 -1.76328069e+07 4.15688915e+04 ! x y z 1.54978172e+03 -1.14789962e+02 3.52623567e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill +Body111 1.16809933e+06 1.85947433e+04 ! particle number mass Rhill 1.09298010e+04 !particle radius in AU 5.03800785e+06 7.38464714e+06 6.56936601e+04 ! x y z -1.79789878e+03 1.24241563e+03 -1.87814487e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill +Body112 2.13493317e+04 6.39192868e+03 ! particle number mass Rhill 4.24258369e+03 !particle radius in AU -1.16819556e+07 2.21702225e+06 -1.76770966e+03 ! x y z -3.36108070e+02 -1.84613620e+03 1.27905806e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill +Body113 3.22629364e+05 1.43521784e+04 ! particle number mass Rhill 1.04890693e+04 !particle radius in AU 1.00037167e+07 3.61161669e+06 -5.98746596e+04 ! x y z -7.04121449e+02 1.87165808e+03 1.87226479e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill +Body114 8.52184752e+04 7.73707972e+03 ! particle number mass Rhill 6.72997694e+03 !particle radius in AU -8.02245740e+06 -4.15017483e+06 1.94427373e+04 ! x y z 9.95701473e+02 -1.91465293e+03 9.55414968e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill +Body115 7.51189622e+04 7.51337067e+03 ! particle number mass Rhill 4.37893861e+03 !particle radius in AU -4.99256633e+06 7.35143538e+06 -6.25201967e+04 ! x y z -1.82686822e+03 -1.23953720e+03 -3.37208923e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill +Body116 8.34114020e+05 1.81150613e+04 ! particle number mass Rhill 9.76924055e+03 !particle radius in AU -2.12824530e+06 9.48297181e+06 4.56720468e+03 ! x y z -2.04325211e+03 -4.78944866e+02 1.39609484e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill +Body117 1.95998225e+04 8.19893214e+03 ! particle number mass Rhill 4.12337692e+03 !particle radius in AU -1.42745447e+07 -5.79867689e+06 -1.70313904e+04 ! x y z 6.32626042e+02 -1.53908540e+03 1.67461109e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill +Body118 6.08576822e+05 1.79320915e+04 ! particle number mass Rhill 8.79476284e+03 !particle radius in AU 3.38987773e+06 1.01890371e+07 3.97150856e+04 ! x y z -1.89204657e+03 6.21657437e+02 -2.83215087e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill +Body119 1.01047065e+05 1.52544192e+04 ! particle number mass Rhill 4.83385440e+03 !particle radius in AU 1.36440026e+07 -9.23862046e+06 -5.31108803e+04 ! x y z 9.02323684e+02 1.33920162e+03 1.66233464e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill +Body120 4.81434848e+05 2.46431320e+04 ! particle number mass Rhill 8.13388768e+03 !particle radius in AU -3.69977113e+06 -1.52467920e+07 -1.34829610e+05 ! x y z 1.61925599e+03 -3.72623284e+02 7.50289619e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill +Body121 2.29549348e+05 2.35874873e+04 ! particle number mass Rhill 9.36399150e+03 !particle radius in AU 1.82794011e+07 6.84958710e+06 1.41781869e+04 ! x y z -5.47821288e+02 1.37308430e+03 -7.00506636e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill +Body122 8.52767653e+04 1.58219602e+04 ! particle number mass Rhill 4.56803304e+03 !particle radius in AU 1.18968647e+07 1.33707826e+07 -1.11221176e+05 ! x y z -1.16553280e+03 1.03288779e+03 1.42253495e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill +Body123 2.86399056e+04 1.20730103e+04 ! particle number mass Rhill 4.67906973e+03 !particle radius in AU -1.96455999e+07 -2.60429318e+06 -9.25749294e+04 ! x y z 1.97567654e+02 -1.46047680e+03 3.96763228e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill +Body124 3.14094760e+05 1.35352736e+04 ! particle number mass Rhill 7.05460271e+03 !particle radius in AU -2.68241356e+06 9.67860718e+06 -3.52723705e+04 ! x y z -1.98385491e+03 -5.75973374e+02 4.82531781e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill +Body125 3.55357461e+05 1.52795593e+04 ! particle number mass Rhill 7.35090499e+03 !particle radius in AU -1.66338998e+06 1.06654130e+07 -1.15436526e+05 ! x y z -1.97394994e+03 -3.24337570e+02 1.49148403e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill +Body126 1.38842935e+06 1.99818510e+04 ! particle number mass Rhill 1.15778235e+04 !particle radius in AU 5.73133232e+06 -6.88742280e+06 -9.91791004e+03 ! x y z 1.69108314e+03 1.40100447e+03 8.39576992e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill +Body127 8.28665485e+05 3.13608293e+04 ! particle number mass Rhill 9.74792278e+03 !particle radius in AU 1.16505540e+07 1.24190497e+07 3.29845083e+04 ! x y z -1.14848373e+03 1.08164128e+03 1.94732937e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill +Body128 1.54764054e+05 1.01037906e+04 ! particle number mass Rhill 5.57197333e+03 !particle radius in AU -9.45920013e+06 -1.21129886e+06 4.53752885e+04 ! x y z 2.60756743e+02 -2.09880469e+03 -1.84679906e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill +Body129 6.02399124e+05 1.62531984e+04 ! particle number mass Rhill 1.29160713e+04 !particle radius in AU 8.30827394e+06 4.94291767e+06 9.57082698e+03 ! x y z -1.06905700e+03 1.81887550e+03 -1.59783959e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill +Body130 2.22342896e+05 1.18675483e+04 ! particle number mass Rhill 6.28724063e+03 !particle radius in AU 9.92654375e+06 -1.39802998e+06 4.49817877e+02 ! x y z 2.59014431e+02 2.03619473e+03 -1.49038139e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill +Body131 1.76284582e+04 5.29944629e+03 ! particle number mass Rhill 3.98022020e+03 !particle radius in AU 2.81061041e+06 9.89835484e+06 -9.78582159e+04 ! x y z -1.95518409e+03 5.78271402e+02 1.18622238e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill +Body132 5.38538955e+04 8.44113186e+03 ! particle number mass Rhill 5.77530198e+03 !particle radius in AU -5.58547024e+06 -9.86469957e+06 6.83294173e+04 ! x y z 1.69539459e+03 -9.41024851e+02 -1.14165406e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill +Body133 2.20314045e+05 1.27238656e+04 ! particle number mass Rhill 6.26805874e+03 !particle radius in AU 8.08999866e+06 6.84273025e+06 1.04867849e+03 ! x y z -1.27946500e+03 1.55545684e+03 8.91891880e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill +Body134 8.27723183e+05 1.98929693e+04 ! particle number mass Rhill 9.74422649e+03 !particle radius in AU 9.18575665e+06 -5.49644544e+06 -5.52894905e+03 ! x y z 1.01968981e+03 1.71970787e+03 -3.39617822e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill +Body135 2.27994929e+04 5.23645068e+03 ! particle number mass Rhill 4.33654694e+03 !particle radius in AU 1.80833036e+06 -9.23065450e+06 4.90226701e+04 ! x y z 2.08275022e+03 4.17014758e+02 6.63087350e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill +Body136 2.58206907e+05 1.51042021e+04 ! particle number mass Rhill 6.60858198e+03 !particle radius in AU 1.18507627e+07 2.26553726e+06 2.21133096e+03 ! x y z -3.50610095e+02 1.84373395e+03 -2.60885445e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill +Body137 1.01432201e+05 2.15204041e+04 ! particle number mass Rhill 7.13226721e+03 !particle radius in AU 2.21659927e+07 -6.92493598e+06 -4.28421451e+04 ! x y z 4.19436458e+02 1.29376942e+03 -6.14053149e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill +Body138 1.48483324e+05 1.01288412e+04 ! particle number mass Rhill 8.09831906e+03 !particle radius in AU -6.92437867e+06 -6.69629009e+06 -5.72228921e+04 ! x y z 1.49689718e+03 -1.48846576e+03 -1.37808252e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill +Body139 9.42427088e+05 1.92839992e+04 ! particle number mass Rhill 1.01750117e+04 !particle radius in AU -6.66985595e+06 -7.23797041e+06 -1.53286702e+04 ! x y z 1.53320998e+03 -1.42766264e+03 2.90451170e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill +Body140 5.54442544e+05 1.45796646e+04 ! particle number mass Rhill 1.25638046e+04 !particle radius in AU -8.86868024e+06 7.20105731e+05 -2.22950048e+03 ! x y z -1.95841451e+02 -2.19258513e+03 -3.67523850e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill +Body141 1.55124183e+06 2.70665333e+04 ! particle number mass Rhill 1.20137567e+04 !particle radius in AU 5.67690574e+06 -1.03162373e+07 -9.41350622e+04 ! x y z 1.67246075e+03 9.20785969e+02 -1.99251255e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill +Body142 1.28173318e+05 1.54093909e+04 ! particle number mass Rhill 5.23260806e+03 !particle radius in AU 5.50551593e+06 -1.45584653e+07 5.27718687e+04 ! x y z 1.54616130e+03 5.79954533e+02 7.51811204e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill +Body143 1.57882645e+06 2.19970603e+04 ! particle number mass Rhill 1.20845494e+04 !particle radius in AU -3.47796098e+06 -8.90927004e+06 9.65028764e+03 ! x y z 1.97386652e+03 -7.53987246e+02 -3.28779531e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill +Body144 1.29809111e+05 9.78824459e+03 ! particle number mass Rhill 7.74350141e+03 !particle radius in AU 7.74574172e+06 5.95714791e+06 -1.05471596e+04 ! x y z -1.25035431e+03 1.67733844e+03 -1.65757527e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill +Body145 6.10792333e+04 1.61950813e+04 ! particle number mass Rhill 4.08711498e+03 !particle radius in AU -1.98199827e+07 7.29300766e+06 -1.29061581e+05 ! x y z -4.89201522e+02 -1.32406236e+03 8.40261667e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill +Body146 8.14321833e+05 3.15390616e+04 ! particle number mass Rhill 9.69135174e+03 !particle radius in AU 1.13588614e+07 1.27104515e+07 1.21608339e+05 ! x y z -1.17212059e+03 1.06703576e+03 1.25962854e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill +Body147 1.12573910e+06 1.92039195e+04 ! particle number mass Rhill 1.07960507e+04 !particle radius in AU -6.88558621e+06 6.34193128e+06 -5.71723545e+04 ! x y z -1.41834644e+03 -1.59442296e+03 3.00905420e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill +Body148 5.89994915e+04 1.23743739e+04 ! particle number mass Rhill 5.95367439e+03 !particle radius in AU 2.58947797e+06 1.59613455e+07 1.59042158e+05 ! x y z -1.60287570e+03 2.41814174e+02 -1.67580989e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill +Body149 1.61092891e+05 1.43346162e+04 ! particle number mass Rhill 5.64691333e+03 !particle radius in AU 1.27274825e+07 3.00655471e+06 8.98397391e+03 ! x y z -4.31699175e+02 1.77274933e+03 -1.26354778e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill +Body150 3.67253358e+04 6.76660973e+03 ! particle number mass Rhill 5.08343859e+03 !particle radius in AU -7.10630600e+06 -7.28840877e+06 -2.23411110e+03 ! x y z 1.47897945e+03 -1.43505611e+03 -2.71839174e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill +Body151 2.79688721e+04 5.63429227e+03 ! particle number mass Rhill 4.64223699e+03 !particle radius in AU 6.38222762e+06 -6.74069777e+06 8.75842881e+04 ! x y z 1.60375261e+03 1.44358800e+03 -9.05519600e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill +Body152 1.49726912e+05 1.72153700e+04 ! particle number mass Rhill 8.12086478e+03 !particle radius in AU -1.56702566e+07 4.26618807e+06 5.21823445e+04 ! x y z -4.05029139e+02 -1.57894139e+03 2.53582968e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill +Body153 2.25272127e+05 1.26178768e+04 ! particle number mass Rhill 9.30546634e+03 !particle radius in AU -8.73094270e+06 5.67791265e+06 2.17614432e+04 ! x y z -1.10821669e+03 -1.70422433e+03 2.11567045e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill +Body154 1.52669889e+05 1.08283241e+04 ! particle number mass Rhill 5.54672703e+03 !particle radius in AU -1.01683371e+07 1.10819821e+06 1.64139763e+04 ! x y z -2.62188936e+02 -2.02918021e+03 8.77276633e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill +Body155 5.79689563e+04 8.97148278e+03 ! particle number mass Rhill 4.01652823e+03 !particle radius in AU 4.35525820e+06 1.08005096e+07 7.15657051e+04 ! x y z -1.78452573e+03 7.14211418e+02 1.85217607e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill +Body156 4.99028875e+05 2.13357770e+04 ! particle number mass Rhill 8.23178885e+03 !particle radius in AU 1.33640503e+06 -1.35991318e+07 1.26981224e+05 ! x y z 1.75325272e+03 1.99801637e+02 9.12185103e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill +Body157 3.21480613e+05 1.20647069e+04 ! particle number mass Rhill 7.10947055e+03 !particle radius in AU -6.82381137e+06 5.53567185e+06 7.84751624e+03 ! x y z -1.38395700e+03 -1.73645326e+03 7.57405795e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill +Body158 9.91529953e+04 1.07918343e+04 ! particle number mass Rhill 4.80346108e+03 !particle radius in AU 3.89840794e+06 1.10854924e+07 3.76242516e+03 ! x y z -1.80675419e+03 6.21051875e+02 -1.71817477e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill +Body159 2.52237740e+05 1.14363942e+04 ! particle number mass Rhill 6.55725922e+03 !particle radius in AU -1.97874775e+06 -8.77567582e+06 -2.75052193e+03 ! x y z 2.14929146e+03 -4.63042632e+02 1.42528242e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill +Body160 1.01739958e+06 1.88523697e+04 ! particle number mass Rhill 1.04379733e+04 !particle radius in AU -3.69568353e+06 8.70958011e+06 1.23991773e+02 ! x y z -1.95889951e+03 -8.30413409e+02 3.23324109e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill +Body161 6.26561099e+04 9.13946042e+03 ! particle number mass Rhill 4.12198879e+03 !particle radius in AU -7.46635757e+06 8.75996756e+06 -3.38546703e+04 ! x y z -1.47538097e+03 -1.25605788e+03 1.14970804e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill +Body162 4.03320233e+05 1.69943586e+04 ! particle number mass Rhill 7.66776863e+03 !particle radius in AU 5.08163706e+06 1.05043562e+07 -2.49011889e+04 ! x y z -1.73355443e+03 8.04079694e+02 -1.88007028e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill +Body163 2.79645719e+04 5.40884610e+03 ! particle number mass Rhill 4.64199906e+03 !particle radius in AU 4.39449717e+06 -7.93852417e+06 4.36583437e+04 ! x y z 1.88869963e+03 1.05420912e+03 5.50586344e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill +Body164 1.10906394e+06 2.35480158e+04 ! particle number mass Rhill 1.07424793e+04 !particle radius in AU 8.63623502e+06 -7.74644884e+06 1.85384542e+04 ! x y z 1.26494539e+03 1.43300151e+03 7.04221650e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill +Body165 8.56685180e+05 2.78909446e+04 ! particle number mass Rhill 9.85657615e+03 !particle radius in AU -6.15368525e+05 1.49121598e+07 -4.67932565e+04 ! x y z -1.68745762e+03 -4.92212694e+01 -1.94039771e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill +Body166 3.06525474e+05 1.36922172e+04 ! particle number mass Rhill 6.99747229e+03 !particle radius in AU 8.64904319e+06 5.91192747e+06 -6.14206652e+04 ! x y z -1.13126693e+03 1.64851790e+03 -1.89192778e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill +Body167 5.93049281e+05 1.52051655e+04 ! particle number mass Rhill 8.71931949e+03 !particle radius in AU -7.78414392e+06 4.96208659e+06 -1.63838108e+04 ! x y z -1.12672930e+03 -1.82241793e+03 -5.96425105e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill +Body168 2.12666894e+04 5.40531233e+03 ! particle number mass Rhill 4.23710232e+03 !particle radius in AU 9.85857087e+06 -4.25461587e+05 -7.76455058e+04 ! x y z 8.06687493e+01 2.07960003e+03 3.28242575e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill +Body169 2.85652780e+05 2.95720311e+04 ! particle number mass Rhill 1.00719866e+04 !particle radius in AU -3.92871528e+06 -2.24319020e+07 2.77551401e+04 ! x y z 1.34770576e+03 -2.35192176e+02 -6.19147736e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill +Body170 3.39019670e+05 1.79553101e+04 ! particle number mass Rhill 7.23647883e+03 !particle radius in AU -9.85059665e+06 -8.52205655e+06 -5.48573039e+04 ! x y z 1.18464366e+03 -1.37030272e+03 9.99031014e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill +Body171 8.89113305e+05 2.71542359e+04 ! particle number mass Rhill 9.97940619e+03 !particle radius in AU -1.95744716e+06 -1.40658438e+07 -8.96628033e+04 ! x y z 1.72553028e+03 -2.22255484e+02 -2.68715792e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill +Body172 8.29370571e+05 3.54463172e+04 ! particle number mass Rhill 9.75068673e+03 !particle radius in AU -1.83887109e+07 -4.94937710e+06 4.13740137e+04 ! x y z 4.02207087e+02 -1.44472494e+03 7.82771281e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill +Body173 1.48238892e+06 2.27550464e+04 ! particle number mass Rhill 1.18333139e+04 !particle radius in AU 6.28107583e+06 -7.96489519e+06 1.00181104e+05 ! x y z 1.61474462e+03 1.25899281e+03 3.25360113e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill +Body174 8.27798949e+04 7.81570962e+03 ! particle number mass Rhill 6.66516052e+03 !particle radius in AU 8.57815199e+06 2.93408991e+06 1.00482256e+04 ! x y z -7.00269987e+02 2.05582007e+03 1.47496098e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill +Body175 3.84709230e+05 1.86262292e+04 ! particle number mass Rhill 7.54796479e+03 !particle radius in AU 3.89386447e+06 -1.18916453e+07 4.75801024e+03 ! x y z 1.79017897e+03 5.72333272e+02 1.35429336e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill +Body176 5.66577675e+04 1.78767974e+04 ! particle number mass Rhill 5.87384040e+03 !particle radius in AU -1.12819097e+07 -2.03828249e+07 -4.17849171e+04 ! x y z 1.20129982e+03 -6.40831904e+02 -7.21062138e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill +Body177 2.07013798e+05 1.69695724e+04 ! particle number mass Rhill 9.04694786e+03 !particle radius in AU -3.48844270e+06 -1.39807096e+07 -9.80376409e+04 ! x y z 1.67545999e+03 -4.23493775e+02 9.57144799e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill +Body178 1.75307559e+05 1.09646651e+04 ! particle number mass Rhill 5.80834687e+03 !particle radius in AU -6.99241637e+06 -6.97891492e+06 1.17078416e+04 ! x y z 1.45466387e+03 -1.49110516e+03 -7.97644872e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill +Body179 1.07781085e+05 2.17561846e+04 ! particle number mass Rhill 7.27807466e+03 !particle radius in AU 2.29671869e+07 -4.77992661e+06 -2.29056888e+05 ! x y z 2.66633595e+02 1.31300250e+03 8.11268595e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill +Body180 3.59388467e+05 1.77616131e+04 ! particle number mass Rhill 7.37859561e+03 !particle radius in AU 1.12799199e+07 -5.64371881e+06 -4.86158248e+04 ! x y z 8.25574521e+02 1.64707498e+03 1.79426055e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill +Body181 8.43345605e+04 7.88595165e+03 ! particle number mass Rhill 4.55114695e+03 !particle radius in AU -8.97901930e+06 1.40018499e+06 -1.17315967e+04 ! x y z -3.50813576e+02 -2.14111191e+03 1.58430709e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill +Body182 2.54722186e+05 1.61693513e+04 ! particle number mass Rhill 9.69448137e+03 !particle radius in AU -1.27934972e+07 5.80764481e+05 -6.60656959e+04 ! x y z -8.73661010e+01 -1.83147573e+03 9.29252102e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill +Body183 5.21033114e+05 3.12442397e+04 ! particle number mass Rhill 1.23062037e+04 !particle radius in AU -6.51355993e+06 -1.80095300e+07 -1.28499713e+05 ! x y z 1.42185635e+03 -5.15444029e+02 4.71976246e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill +Body184 5.21637824e+05 1.66907755e+04 ! particle number mass Rhill 1.23109627e+04 !particle radius in AU -1.35063597e+06 1.04263703e+07 -1.65523047e+04 ! x y z -1.99638943e+03 -2.63418025e+02 -1.41194780e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill +Body185 4.58205528e+04 6.92591943e+03 ! particle number mass Rhill 3.71369106e+03 !particle radius in AU -9.22486496e+06 2.96866634e+06 -1.89865927e+03 ! x y z -6.64441635e+02 -2.00340641e+03 -1.17076646e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill +Body186 2.23433612e+05 1.26670941e+04 ! particle number mass Rhill 6.29750468e+03 !particle radius in AU 7.10721350e+06 7.67585026e+06 -3.24513481e+03 ! x y z -1.50133478e+03 1.36725034e+03 -1.87929113e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill +Body187 1.79931401e+05 1.04373831e+04 ! particle number mass Rhill 8.63385286e+03 !particle radius in AU -3.50855266e+06 -8.47958104e+06 5.43121964e+04 ! x y z 2.01378047e+03 -8.30225015e+02 -6.42928682e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill +Body188 5.90097791e+04 1.34524769e+04 ! particle number mass Rhill 5.95402041e+03 !particle radius in AU -1.71845688e+07 2.92835680e+06 1.80160654e+04 ! x y z -2.68908847e+02 -1.54460993e+03 5.60740384e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill +Body189 7.79086515e+05 1.85386656e+04 ! particle number mass Rhill 9.54950570e+03 !particle radius in AU -9.06623165e+06 -4.20136967e+06 -2.06364196e+04 ! x y z 8.54458713e+02 -1.90544528e+03 6.22285906e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill +Body190 1.53125034e+06 2.34513451e+04 ! particle number mass Rhill 1.19619247e+04 !particle radius in AU 5.25849667e+06 8.80426419e+06 1.08815572e+04 ! x y z -1.77864099e+03 1.00939651e+03 -2.77090468e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill +Body191 8.59567645e+04 1.28327108e+04 ! particle number mass Rhill 6.74935610e+03 !particle radius in AU 4.62808704e+06 1.40254648e+07 2.62029474e+04 ! x y z -1.61136420e+03 5.34010697e+02 -6.77858294e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill +Body192 1.26242051e+05 1.99101289e+04 ! particle number mass Rhill 5.20619396e+03 !particle radius in AU 2.01424278e+07 3.41792942e+05 1.94882104e+05 ! x y z -2.93420884e+01 1.45364435e+03 -7.07412419e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill +Body193 1.08024301e+06 4.02623073e+04 ! particle number mass Rhill 1.06486075e+04 !particle radius in AU 8.37083337e+06 -1.79540915e+07 -5.91009347e+04 ! x y z 1.33428010e+03 6.17563374e+02 2.42512024e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill +Body194 3.59813883e+04 6.03118811e+03 ! particle number mass Rhill 5.04887899e+03 !particle radius in AU 9.18834937e+06 4.09046541e+05 5.54581813e+03 ! x y z -7.23751549e+01 2.15950913e+03 6.85354866e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill +Body195 7.21130805e+04 1.15218555e+04 ! particle number mass Rhill 6.36561457e+03 !particle radius in AU 2.40599869e+06 -1.36259877e+07 7.24745280e+03 ! x y z 1.74094787e+03 3.07239990e+02 8.10516402e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill +Body196 5.22433041e+04 8.56706323e+03 ! particle number mass Rhill 3.87967973e+03 !particle radius in AU -1.16034100e+07 -1.77480486e+06 -1.62127720e+04 ! x y z 2.83834839e+02 -1.87461386e+03 5.96638672e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill +Body197 2.88195987e+05 1.92280928e+04 ! particle number mass Rhill 6.85511860e+03 !particle radius in AU 1.47515573e+07 -2.57581761e+05 -5.23662055e+04 ! x y z 1.10532093e+01 1.70024862e+03 8.28609927e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill +Body198 5.20744357e+05 2.19617843e+04 ! particle number mass Rhill 1.23039299e+04 !particle radius in AU 1.13163190e+07 -7.84357347e+06 1.03407930e+04 ! x y z 1.01120595e+03 1.44577732e+03 -5.19143023e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill +Body199 1.70548241e+05 1.09436379e+04 ! particle number mass Rhill 5.75530148e+03 !particle radius in AU -3.32812125e+06 -9.44533791e+06 -4.90376566e+04 ! x y z 1.95676637e+03 -6.51606826e+02 -5.70434278e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill +Body200 5.42504766e+05 1.91588733e+04 ! particle number mass Rhill 1.24729785e+04 !particle radius in AU 1.06811374e+07 -4.93512180e+06 -2.54549899e+04 ! x y z 7.94618978e+02 1.74255873e+03 -9.79841366e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill +Body201 1.45214473e+06 2.51148062e+04 ! particle number mass Rhill 1.17522845e+04 !particle radius in AU 1.08275316e+07 3.16975354e+06 -1.83616872e+04 ! x y z -5.71210349e+02 1.85480914e+03 -5.53165520e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill +Body202 4.79031773e+05 1.39791861e+04 ! particle number mass Rhill 1.19662231e+04 !particle radius in AU -8.93938095e+06 -1.07672320e+06 2.20211931e+02 ! x y z 2.21513596e+02 -2.17140814e+03 -5.31579057e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill +Body203 9.35672463e+04 1.18188273e+04 ! particle number mass Rhill 6.94294309e+03 !particle radius in AU -1.11274091e+07 6.99042019e+06 4.20463158e+03 ! x y z -9.73175474e+02 -1.52053333e+03 -7.28310775e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill +Body204 2.35662743e+05 1.60773575e+04 ! particle number mass Rhill 9.44639204e+03 !particle radius in AU 4.40522655e+06 -1.23917208e+07 -1.61713907e+04 ! x y z 1.70009079e+03 6.02493125e+02 -3.82502681e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill +Body205 2.38678835e+05 1.29738033e+04 ! particle number mass Rhill 6.43759473e+03 !particle radius in AU 8.84972010e+06 5.65746303e+06 4.89598915e+04 ! x y z -1.07695732e+03 1.71417278e+03 -2.68488868e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill +Body206 5.70545769e+04 8.09831867e+03 ! particle number mass Rhill 5.88752122e+03 !particle radius in AU -5.79952078e+06 8.88645462e+06 -2.44580541e+04 ! x y z -1.68074658e+03 -1.10169885e+03 -6.29194406e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill +Body207 5.51731540e+05 1.45509165e+04 ! particle number mass Rhill 1.25432938e+04 !particle radius in AU -8.14410389e+06 -3.97016042e+06 -9.88813618e+04 ! x y z 9.01368103e+02 -1.96430805e+03 -4.40735560e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill +Body208 1.01063925e+06 1.76831218e+04 ! particle number mass Rhill 1.04148028e+04 !particle radius in AU 7.46448044e+06 -4.58544507e+06 1.76340315e+04 ! x y z 1.15401750e+03 1.90545254e+03 -7.27693077e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill +Body209 4.01306668e+05 1.56153596e+04 ! particle number mass Rhill 1.12804852e+04 !particle radius in AU -2.08884933e+06 -1.02835429e+07 6.42079933e+03 ! x y z 1.99534972e+03 -4.16589585e+02 -4.18338876e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill +Body210 1.16893367e+05 9.97596895e+03 ! particle number mass Rhill 7.47765824e+03 !particle radius in AU 3.36937988e+06 -9.91809680e+06 5.89060808e+04 ! x y z 1.88421155e+03 6.84396854e+02 -2.08220150e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill +Body211 6.63716790e+05 2.02872172e+04 ! particle number mass Rhill 9.05273758e+03 !particle radius in AU -7.24117471e+06 -9.21469921e+06 -3.61410851e+04 ! x y z 1.49902224e+03 -1.18897591e+03 9.80133706e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill +Body212 5.54059774e+05 1.44580726e+04 ! particle number mass Rhill 1.25609127e+04 !particle radius in AU -3.74450435e+06 -8.15891931e+06 2.77691948e+04 ! x y z 1.97501199e+03 -9.06036575e+02 -2.45381289e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill +Body213 1.69304746e+05 1.85389651e+04 ! particle number mass Rhill 8.46042215e+03 !particle radius in AU 7.14052519e+06 1.53102112e+07 1.62981971e+05 ! x y z -1.44016584e+03 6.81333291e+02 -1.60906032e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill +Body214 1.99811184e+06 2.54044580e+04 ! particle number mass Rhill 1.30715050e+04 !particle radius in AU -1.03399269e+07 2.85213950e+05 -3.22137865e+04 ! x y z -5.00043408e+01 -2.01781826e+03 1.16086899e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill +Body215 1.89676101e+06 2.19318980e+04 ! particle number mass Rhill 1.28466493e+04 !particle radius in AU 4.61126913e+06 7.68167619e+06 3.21015460e+03 ! x y z -1.87745924e+03 1.11654918e+03 8.74586750e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill +Body216 9.08573084e+05 1.81400916e+04 ! particle number mass Rhill 1.00516869e+04 !particle radius in AU -7.63901209e+05 9.38473527e+06 2.09296480e+04 ! x y z -2.13149182e+03 -1.53874003e+02 1.07619871e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill +Body217 8.11071077e+04 1.14592741e+04 ! particle number mass Rhill 4.49233328e+03 !particle radius in AU -3.50142507e+06 1.29584846e+07 4.99036110e+03 ! x y z -1.71988301e+03 -4.67120020e+02 -1.52874482e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill +Body218 5.45414263e+04 7.39602861e+03 ! particle number mass Rhill 3.93575293e+03 !particle radius in AU 2.89549121e+05 9.73817170e+06 7.30475924e+03 ! x y z -2.10637979e+03 6.28009545e+01 2.73575242e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill +Body219 1.53455069e+05 9.67803209e+03 ! particle number mass Rhill 5.55621969e+03 !particle radius in AU -8.69236370e+06 2.60571730e+06 1.87543471e+04 ! x y z -6.41047725e+02 -2.08196126e+03 -9.78180600e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill +Body220 1.44525955e+06 2.58764089e+04 ! particle number mass Rhill 1.17336811e+04 !particle radius in AU 1.16999055e+07 -8.45214750e+05 -1.23088793e+04 ! x y z 1.51868140e+02 1.88990987e+03 5.91582506e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill +Body221 1.68319374e+06 2.90907579e+04 ! particle number mass Rhill 1.23451688e+04 !particle radius in AU 1.04932440e+07 6.34593749e+06 -5.14735307e+04 ! x y z -9.55788059e+02 1.61305183e+03 7.38311147e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill +Body222 6.64548027e+05 2.09776961e+04 ! particle number mass Rhill 9.05651521e+03 !particle radius in AU -1.00872411e+07 -7.19383413e+06 1.02683109e+05 ! x y z 1.09632503e+03 -1.47708699e+03 2.53571970e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill +Body223 5.28873267e+05 2.56064519e+04 ! particle number mass Rhill 8.39272259e+03 !particle radius in AU -1.29868607e+07 9.20702284e+06 -1.02202794e+05 ! x y z -9.58764873e+02 -1.33478274e+03 7.40636311e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill +Body224 9.96994641e+05 1.92471528e+04 ! particle number mass Rhill 1.03677203e+04 !particle radius in AU 2.69271095e+06 9.12085234e+06 -6.31280178e+04 ! x y z -2.04468399e+03 6.49763127e+02 -6.41633267e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill +Body225 2.38653594e+05 1.32999920e+04 ! particle number mass Rhill 9.48618629e+03 !particle radius in AU -1.04843536e+07 -2.82530322e+06 -6.63351271e+03 ! x y z 5.35179489e+02 -1.90917831e+03 -8.89095603e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill +Body226 1.40349329e+06 2.00598103e+04 ! particle number mass Rhill 1.16195447e+04 !particle radius in AU 8.55294018e+06 -2.42617769e+06 2.52020611e+04 ! x y z 6.43758212e+02 2.11770030e+03 -2.00995235e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill +Body227 1.68803614e+06 2.29017916e+04 ! particle number mass Rhill 1.23569961e+04 !particle radius in AU 9.56160063e+06 2.03876951e+05 -1.15187717e+04 ! x y z -2.08727307e+01 2.13182274e+03 -6.37368295e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill +Body228 4.94409683e+04 7.07324355e+03 ! particle number mass Rhill 3.80903228e+03 !particle radius in AU 8.39735110e+06 -4.64919497e+06 -4.03636604e+04 ! x y z 1.02402689e+03 1.86350550e+03 3.48961376e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill +Body229 1.23732338e+05 1.15801183e+04 ! particle number mass Rhill 7.62073270e+03 !particle radius in AU 1.14766676e+07 -2.46673442e+06 -6.18541161e+03 ! x y z 3.81520272e+02 1.87089502e+03 -6.28495237e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill +Body230 3.07739150e+04 5.83154047e+03 ! particle number mass Rhill 4.79251234e+03 !particle radius in AU 7.65927810e+06 5.58691775e+06 6.38708550e+04 ! x y z -1.24261883e+03 1.71209694e+03 -6.95777672e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill +Body231 6.25152932e+05 1.58916481e+04 ! particle number mass Rhill 8.87389776e+03 !particle radius in AU -8.21586374e+06 -4.28792953e+06 2.41010139e+04 ! x y z 1.01581225e+03 -1.90933511e+03 -2.60449634e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill +Body232 1.02687634e+05 1.54462392e+04 ! particle number mass Rhill 4.85987440e+03 !particle radius in AU 1.62736579e+07 2.82256969e+06 3.66384128e+04 ! x y z -2.71027694e+02 1.59383670e+03 4.71948132e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill +Body233 1.09055822e+05 8.97093718e+03 ! particle number mass Rhill 7.30665510e+03 !particle radius in AU -2.08216759e+06 -9.23350326e+06 -8.76611629e+04 ! x y z 2.08240223e+03 -4.40249465e+02 -1.27767388e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill +Body234 4.21950076e+04 6.13798078e+03 ! particle number mass Rhill 5.32422025e+03 !particle radius in AU 8.73066827e+06 -2.21328634e+05 -3.34004359e+04 ! x y z 4.79166308e+01 2.23450529e+03 -9.11532147e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill +Body235 1.49350824e+06 3.81141945e+04 ! particle number mass Rhill 1.18628272e+04 !particle radius in AU 1.62631471e+07 4.67259161e+06 2.64032894e+04 ! x y z -4.50841052e+02 1.52122597e+03 1.13312253e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill +Body236 3.07566841e+05 2.10233787e+04 ! particle number mass Rhill 7.00538757e+03 !particle radius in AU 5.98003979e+05 -1.57345854e+07 -2.89481346e+04 ! x y z 1.64606847e+03 7.79210619e+01 -6.19029962e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill +Body237 3.73535334e+05 1.38613380e+04 ! particle number mass Rhill 7.47416865e+03 !particle radius in AU -8.48106759e+06 4.91431093e+06 -8.66403288e+04 ! x y z -1.03310578e+03 -1.80626108e+03 1.07091841e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill +Body238 1.60082213e+06 4.30874135e+04 ! particle number mass Rhill 1.21404101e+04 !particle radius in AU -1.84578837e+07 9.47798697e+05 -1.11240327e+05 ! x y z -8.38856040e+01 -1.52441650e+03 -4.87143776e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill +Body239 1.46188745e+06 2.54964357e+04 ! particle number mass Rhill 1.17785087e+04 !particle radius in AU -5.76687798e+06 9.89435129e+06 4.39168015e+04 ! x y z -1.66547278e+03 -9.63693666e+02 4.18572107e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill +Body240 1.57915313e+05 9.48646514e+03 ! particle number mass Rhill 5.60953779e+03 !particle radius in AU -1.82862969e+06 8.61926907e+06 -1.75357465e+04 ! x y z -2.15498233e+03 -4.93004829e+02 7.64196538e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill +Body241 1.28341909e+05 1.09511933e+04 ! particle number mass Rhill 7.71421647e+03 !particle radius in AU 3.76525777e+06 -1.03931378e+07 -7.52318459e+04 ! x y z 1.83850823e+03 6.78500036e+02 -6.89947122e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill +Body242 5.79588811e+05 1.46154362e+04 ! particle number mass Rhill 8.65284640e+03 !particle radius in AU -6.33335198e+06 -5.98167685e+06 -3.08011537e+04 ! x y z 1.53763163e+03 -1.62109001e+03 -2.47037358e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill +Body243 2.16869732e+05 1.24291427e+04 ! particle number mass Rhill 6.23522281e+03 !particle radius in AU 9.90333087e+06 -4.01192277e+06 6.04079611e+04 ! x y z 7.43355257e+02 1.83366572e+03 -1.58715640e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill +Body244 6.18926402e+05 2.04985663e+04 ! particle number mass Rhill 1.30331280e+04 !particle radius in AU -5.98502411e+06 1.07946936e+07 4.97027123e+03 ! x y z -1.61657634e+03 -8.93801164e+02 -1.07876442e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill +Body245 7.99727184e+05 2.41966314e+04 ! particle number mass Rhill 9.63310475e+03 !particle radius in AU -6.59615203e+06 -1.12304386e+07 9.72528165e+04 ! x y z 1.57957874e+03 -9.09183472e+02 3.54133115e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill +Body246 2.80300938e+05 1.19230190e+04 ! particle number mass Rhill 6.79194010e+03 !particle radius in AU 8.96651461e+06 1.05824022e+06 -2.00386304e+04 ! x y z -2.80453416e+02 2.17973889e+03 1.20973693e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill +Body247 6.93860397e+05 2.71014582e+04 ! particle number mass Rhill 9.18776116e+03 !particle radius in AU 1.47368687e+06 1.52540290e+07 1.91344142e+05 ! x y z -1.67085873e+03 1.59690705e+02 -2.30924434e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill +Body248 2.21045128e+05 1.62927419e+04 ! particle number mass Rhill 9.24689597e+03 !particle radius in AU -1.31122397e+06 1.35322324e+07 5.51107975e+04 ! x y z -1.76733822e+03 -1.66895030e+02 1.40149353e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill +Body249 1.57513562e+05 9.70901785e+03 ! particle number mass Rhill 8.25926956e+03 !particle radius in AU 6.67718106e+06 -6.31157792e+06 2.26609344e+04 ! x y z 1.50456951e+03 1.52943679e+03 8.18042830e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill +Body250 3.40949521e+05 1.56136944e+04 ! particle number mass Rhill 1.06839624e+04 !particle radius in AU -9.16360265e+06 6.32922451e+06 2.58199480e+03 ! x y z -1.14874981e+03 -1.60466496e+03 1.97944632e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill +Body251 2.67400890e+05 1.60281390e+04 ! particle number mass Rhill 6.68610634e+03 !particle radius in AU -1.15940056e+07 4.46540148e+06 -5.91615241e+04 ! x y z -6.61054922e+02 -1.74552414e+03 3.85473780e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill +Body252 1.90980773e+05 1.02400192e+04 ! particle number mass Rhill 5.97652691e+03 !particle radius in AU 7.27954173e+05 8.98873006e+06 3.22170920e+04 ! x y z -2.16869199e+03 1.52559195e+02 -7.62441611e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill +Body253 8.81577356e+05 2.66619325e+04 ! particle number mass Rhill 9.95113166e+03 !particle radius in AU -7.91834556e+06 1.12541780e+07 -7.01445845e+04 ! x y z -1.45888232e+03 -1.02209811e+03 -1.64204126e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill +Body254 1.74268386e+05 1.73117817e+04 ! particle number mass Rhill 5.79684738e+03 !particle radius in AU -1.33826547e+07 -7.97098248e+06 5.10482753e+03 ! x y z 8.38898161e+02 -1.43447217e+03 1.26393376e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill +Body255 7.87919903e+04 9.41855233e+03 ! particle number mass Rhill 6.55636334e+03 !particle radius in AU 1.00439607e+07 -4.85348750e+06 1.01261466e+05 ! x y z 8.20741840e+02 1.77276708e+03 -5.85913488e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill +Body256 2.69480282e+05 1.23931951e+04 ! particle number mass Rhill 6.70339268e+03 !particle radius in AU 2.04930949e+06 -9.32239452e+06 -2.24373576e+04 ! x y z 2.07456592e+03 4.98065963e+02 1.20751769e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill +Body257 2.46903228e+05 2.89142381e+04 ! particle number mass Rhill 6.51070352e+03 !particle radius in AU -2.17215478e+07 -8.78835015e+06 -4.01495560e+04 ! x y z 5.14278406e+02 -1.24501793e+03 7.48973214e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill +Body258 1.23878170e+06 2.56018645e+04 ! particle number mass Rhill 1.11459543e+04 !particle radius in AU 1.20260148e+07 1.50890452e+06 -8.61170776e+04 ! x y z -2.28727670e+02 1.85884268e+03 1.03561533e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill +Body259 2.00656446e+05 1.10598095e+04 ! particle number mass Rhill 8.95337335e+03 !particle radius in AU 6.77964628e+06 6.80088173e+06 3.59640048e+04 ! x y z -1.51037716e+03 1.46534327e+03 4.36610744e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill +Body260 1.07191143e+05 1.87922625e+04 ! particle number mass Rhill 7.26477146e+03 !particle radius in AU 1.93741347e+07 4.35856951e+06 -7.05507935e+02 ! x y z -2.95958141e+02 1.44257652e+03 3.98161720e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill +Body261 4.58808583e+05 2.25128613e+04 ! particle number mass Rhill 1.17954044e+04 !particle radius in AU -1.36515521e+07 5.47808328e+06 2.30862197e+04 ! x y z -6.21116352e+02 -1.59076755e+03 -4.14797264e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill +Body262 2.90655410e+05 1.74532512e+04 ! particle number mass Rhill 1.01304435e+04 !particle radius in AU 1.29557484e+07 -3.33144253e+06 5.90527945e+04 ! x y z 4.53468556e+02 1.72544679e+03 8.55651480e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill +Body263 7.08997716e+04 1.09670527e+04 ! particle number mass Rhill 4.29537029e+03 !particle radius in AU 1.22881970e+07 4.73181161e+06 8.31929270e+04 ! x y z -6.58468588e+02 1.69384960e+03 -1.28940832e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill +Body264 1.34411988e+05 1.57738727e+04 ! particle number mass Rhill 5.31616352e+03 !particle radius in AU 1.42705581e+07 -5.59919890e+06 -1.20173006e+04 ! x y z 6.15518752e+02 1.56633732e+03 -3.00095341e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill +Body265 6.21292858e+05 2.92546564e+04 ! particle number mass Rhill 1.30497175e+04 !particle radius in AU 1.22157187e+07 1.21158385e+07 -1.89187958e+04 ! x y z -1.13185306e+03 1.10567360e+03 -1.20248978e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill +Body266 4.37332958e+04 6.44253036e+03 ! particle number mass Rhill 5.38815059e+03 !particle radius in AU 3.95878049e+06 -8.23148660e+06 5.75314545e+04 ! x y z 1.96980210e+03 9.25868395e+02 1.73432582e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill +Body267 1.43659648e+06 2.53518437e+04 ! particle number mass Rhill 1.17101897e+04 !particle radius in AU -3.77919432e+06 1.07609723e+07 -5.23499337e+04 ! x y z -1.82204789e+03 -6.43288095e+02 1.18800083e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill +Body268 8.39702253e+04 1.22379070e+04 ! particle number mass Rhill 6.69695574e+03 !particle radius in AU -1.05319563e+07 9.02628865e+06 7.76373874e+04 ! x y z -1.14418489e+03 -1.35282145e+03 -8.67554957e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill +Body269 6.87209763e+04 9.36137706e+03 ! particle number mass Rhill 4.25091189e+03 !particle radius in AU 1.11472461e+07 3.88496928e+06 2.24744875e+04 ! x y z -6.24929449e+02 1.77558367e+03 1.82397206e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill +Body270 8.93056834e+05 2.02090263e+04 ! particle number mass Rhill 9.99413848e+03 !particle radius in AU 7.13225296e+06 7.84741088e+06 7.08528372e+04 ! x y z -1.47773160e+03 1.36033625e+03 -6.05338364e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill +Body271 7.72395853e+04 1.53049462e+04 ! particle number mass Rhill 4.41976293e+03 !particle radius in AU 1.57340361e+07 -9.25306632e+06 1.05005348e+05 ! x y z 7.63951994e+02 1.32212390e+03 -5.72592279e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill +Body272 1.17326453e+05 1.78660442e+04 ! particle number mass Rhill 7.48688169e+03 !particle radius in AU 1.78996895e+07 -3.23122702e+06 -8.50474408e+04 ! x y z 2.79448983e+02 1.51858349e+03 1.07776473e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill +Body273 2.64759082e+05 1.14529225e+04 ! particle number mass Rhill 9.82017615e+03 !particle radius in AU -1.25291109e+06 8.92261901e+06 6.19393261e+04 ! x y z -2.15215968e+03 -3.42916287e+02 5.69467556e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill +Body274 9.28436033e+04 1.03254647e+04 ! particle number mass Rhill 6.92499799e+03 !particle radius in AU 3.17829891e+06 -1.10142305e+07 -2.69804501e+04 ! x y z 1.85575994e+03 5.54347759e+02 -8.57029148e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill +Body275 1.28358389e+05 1.04813501e+04 ! particle number mass Rhill 7.71454664e+03 !particle radius in AU -1.52137099e+06 1.03039110e+07 -2.28129443e+04 ! x y z -2.01239392e+03 -3.00583105e+02 1.82997128e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill +Body276 1.71849481e+06 2.43554180e+04 ! particle number mass Rhill 1.24308761e+04 !particle radius in AU 7.58255782e+06 -6.89244058e+06 -4.22200409e+04 ! x y z 1.36574672e+03 1.52351062e+03 -3.42663337e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill +Body277 1.76580097e+06 2.81722435e+04 ! particle number mass Rhill 1.25439096e+04 !particle radius in AU -8.20564828e+06 8.24671241e+06 -1.78987991e+05 ! x y z -1.37211179e+03 -1.35613094e+03 5.81977986e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill +Body278 2.66657642e+05 1.86850925e+04 ! particle number mass Rhill 9.84359343e+03 !particle radius in AU 8.14883976e+06 -1.20311130e+07 2.81646262e+04 ! x y z 1.42418230e+03 9.71290645e+02 -1.65557105e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill +Body279 1.67849030e+06 2.16729264e+04 ! particle number mass Rhill 1.23336592e+04 !particle radius in AU 2.74582126e+06 -8.71763630e+06 6.44092995e+04 ! x y z 2.06453659e+03 6.75538119e+02 -1.84554482e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill +Body280 3.33306167e+05 1.37489654e+04 ! particle number mass Rhill 1.06035211e+04 !particle radius in AU 7.67980194e+06 -6.41178879e+06 9.39794316e+04 ! x y z 1.32508200e+03 1.58960541e+03 -1.68646923e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill +Body281 2.90036427e+05 1.42298817e+04 ! particle number mass Rhill 1.01232471e+04 !particle radius in AU 1.08862914e+07 -1.69171267e+06 1.06890002e+04 ! x y z 2.66940523e+02 1.93825037e+03 -3.17829482e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill +Body282 2.08854812e+05 2.58329628e+04 ! particle number mass Rhill 9.07368751e+03 !particle radius in AU -2.12855771e+07 -6.22047593e+06 4.09709267e+04 ! x y z 3.86441604e+02 -1.32836590e+03 2.12243761e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill +Body283 1.09299260e+06 1.84417787e+04 ! particle number mass Rhill 1.06903372e+04 !particle radius in AU 1.19425206e+06 -8.91233794e+06 3.55973631e+04 ! x y z 2.17359618e+03 2.49148190e+02 5.23202275e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill +Body284 1.46324679e+04 4.71419267e+03 ! particle number mass Rhill 3.74060212e+03 !particle radius in AU 9.56786350e+06 4.49949446e+05 3.82232625e+04 ! x y z -9.15404876e+01 2.12884256e+03 -8.93875847e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill +Body285 1.40182455e+05 9.14605142e+03 ! particle number mass Rhill 7.94450563e+03 !particle radius in AU 2.52449139e+06 -8.63435263e+06 3.47588448e+03 ! x y z 2.08621300e+03 5.91911411e+02 -3.57309299e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill +Body286 1.06034598e+05 1.24338277e+04 ! particle number mass Rhill 4.91211126e+03 !particle radius in AU 1.30335501e+07 -9.18110749e+05 -5.93800312e+04 ! x y z 1.10189733e+02 1.82033941e+03 -1.02966654e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill +Body287 3.46450949e+05 1.43804817e+04 ! particle number mass Rhill 1.07411202e+04 !particle radius in AU -8.43406318e+06 -5.93404434e+06 2.36715133e+04 ! x y z 1.16500133e+03 -1.67478526e+03 9.48734166e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill +Body288 1.56983400e+05 1.31094123e+04 ! particle number mass Rhill 5.59848141e+03 !particle radius in AU 1.45797657e+06 -1.20421345e+07 -3.75037404e+04 ! x y z 1.87575411e+03 2.26832585e+02 1.21113356e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill +Body289 2.48666520e+05 1.14701907e+04 ! particle number mass Rhill 9.61704013e+03 !particle radius in AU 7.82736208e+06 -4.81216442e+06 6.09982286e+04 ! x y z 1.09482209e+03 1.86309298e+03 2.82110626e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill +Body290 5.65388384e+05 2.38333682e+04 ! particle number mass Rhill 1.26459448e+04 !particle radius in AU -1.04983951e+07 -9.78210039e+06 4.04999757e+04 ! x y z 1.16976801e+03 -1.28733444e+03 3.36107675e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill +Body291 4.58299747e+05 1.37934417e+04 ! particle number mass Rhill 8.00145320e+03 !particle radius in AU -8.88059070e+06 -1.48350388e+06 -3.65798996e+04 ! x y z 3.63914783e+02 -2.15370844e+03 -4.03870858e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill +Body292 2.30030563e+04 6.14927674e+03 ! particle number mass Rhill 4.34941489e+03 !particle radius in AU 1.71799482e+06 -1.11150786e+07 -1.11600323e+04 ! x y z 1.89156931e+03 3.37161187e+02 -5.00763335e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill +Body293 7.08749007e+04 1.18059055e+04 ! particle number mass Rhill 4.29486797e+03 !particle radius in AU 1.22676746e+07 -7.93082840e+06 -7.55901444e+04 ! x y z 9.10780310e+02 1.43519257e+03 -9.59182854e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill +Body294 1.21450320e+06 2.13409537e+04 ! particle number mass Rhill 1.10726580e+04 !particle radius in AU 6.08378238e+06 -7.87148142e+06 -2.39812665e+04 ! x y z 1.65441655e+03 1.27707568e+03 -1.18584893e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill +Body295 4.34793722e+05 1.91206475e+04 ! particle number mass Rhill 1.15859081e+04 !particle radius in AU 5.05198031e+06 1.16964703e+07 1.98330665e+04 ! x y z -1.69333923e+03 7.02450436e+02 2.04857518e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill +Body296 5.88218517e+05 2.95301840e+04 ! particle number mass Rhill 8.69558011e+03 !particle radius in AU -2.23024582e+06 1.75885326e+07 3.84168836e+04 ! x y z -1.54534740e+03 -1.88777263e+02 1.39357869e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill +Body297 8.46851500e+04 1.21295826e+04 ! particle number mass Rhill 6.71590808e+03 !particle radius in AU 1.11164532e+07 8.01001814e+06 1.06625699e+05 ! x y z -1.04365443e+03 1.44565605e+03 2.11662748e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill +Body298 1.24155519e+06 2.60986227e+04 ! particle number mass Rhill 1.11542662e+04 !particle radius in AU -1.17258082e+06 -1.22657889e+07 4.54924052e+04 ! x y z 1.84907037e+03 -1.95731556e+02 1.04424396e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill +Body299 5.36470228e+04 6.78707710e+03 ! particle number mass Rhill 5.76789746e+03 !particle radius in AU 8.87472318e+06 -1.41477847e+06 9.96850714e+03 ! x y z 3.48170496e+02 2.16686116e+03 6.86996341e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill +Body300 2.28532347e+05 1.30656897e+04 ! particle number mass Rhill 9.35014220e+03 !particle radius in AU -1.06755868e+07 -2.26215221e+06 -1.03098190e+04 ! x y z 4.22938170e+02 -1.92356457e+03 -6.44322506e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill +Body301 7.16670668e+04 9.43142814e+03 ! particle number mass Rhill 6.35246381e+03 !particle radius in AU -1.15286614e+07 6.85922305e+05 -2.50421030e+03 ! x y z -1.47622259e+02 -1.91263388e+03 -2.66811177e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill +Body302 3.41791273e+05 1.66815993e+04 ! particle number mass Rhill 7.25614557e+03 !particle radius in AU -1.14907610e+07 3.12025122e+06 -5.05043492e+04 ! x y z -4.96419350e+02 -1.84148364e+03 1.23574710e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill +Body303 3.02600957e+05 1.57068129e+04 ! particle number mass Rhill 1.02673671e+04 !particle radius in AU 3.52540674e+06 1.12335432e+07 5.00575123e+04 ! x y z -1.81448873e+03 5.96787301e+02 1.05390435e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill +Body304 1.24634953e+05 1.85683375e+04 ! particle number mass Rhill 7.63921866e+03 !particle radius in AU -1.63903863e+07 9.01968445e+06 -1.03768934e+05 ! x y z -7.30657688e+02 -1.32744569e+03 -3.28089387e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill +Body305 1.06580756e+06 2.24671215e+04 ! particle number mass Rhill 1.06009616e+04 !particle radius in AU 1.01396523e+07 -4.81960415e+06 4.30193977e+03 ! x y z 8.23199841e+02 1.75908251e+03 4.33811421e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill +Body306 1.05002762e+06 2.40980448e+04 ! particle number mass Rhill 1.05483834e+04 !particle radius in AU 1.06454895e+07 5.05879867e+06 5.08283132e+04 ! x y z -8.22304047e+02 1.73567086e+03 1.93532669e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill +Body307 4.27056844e+05 2.36784291e+04 ! particle number mass Rhill 7.81533428e+03 !particle radius in AU -1.60755914e+07 -7.66558706e+05 1.42941147e+04 ! x y z 6.22982075e+01 -1.61863536e+03 -1.60725073e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill +Body308 1.39222251e+06 1.99143819e+04 ! particle number mass Rhill 1.15883574e+04 !particle radius in AU -1.46060477e+06 -8.99385191e+06 -3.08209444e+04 ! x y z 2.13011898e+03 -3.25298595e+02 2.80216541e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill +Body309 1.27802909e+06 1.93841179e+04 ! particle number mass Rhill 1.12624422e+04 !particle radius in AU -1.41660966e+06 8.99035717e+06 1.40528615e+04 ! x y z -2.12617696e+03 -3.75024767e+02 -9.07028597e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill +Body310 1.60563896e+06 2.27299762e+04 ! particle number mass Rhill 1.21525746e+04 !particle radius in AU 8.84712919e+06 3.96421798e+06 1.13803740e+04 ! x y z -8.83218100e+02 1.91945493e+03 3.31259998e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill +Body311 1.63391111e+05 1.36375912e+04 ! particle number mass Rhill 5.67364039e+03 !particle radius in AU 6.88657663e+06 -1.05966202e+07 1.71451160e+03 ! x y z 1.56481452e+03 9.63079720e+02 1.94534764e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill +Body312 3.67336673e+05 1.47597955e+04 ! particle number mass Rhill 7.43259427e+03 !particle radius in AU -8.85269678e+06 5.44905716e+06 -5.60825695e+04 ! x y z -1.07596431e+03 -1.72186966e+03 1.77805310e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill +Body313 4.77242503e+05 2.18809563e+04 ! particle number mass Rhill 1.19513059e+04 !particle radius in AU 3.11450797e+06 -1.37495078e+07 -3.57099214e+04 ! x y z 1.70202965e+03 3.85543507e+02 -4.49001111e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill +Body314 3.74348891e+05 1.43810422e+04 ! particle number mass Rhill 1.10220195e+04 !particle radius in AU -9.00924085e+06 4.66367866e+06 1.26574464e+04 ! x y z -9.50214730e+02 -1.81339232e+03 -1.20100516e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill +Body315 1.15108819e+05 1.05231234e+04 ! particle number mass Rhill 5.04841672e+03 !particle radius in AU -1.08865724e+07 1.89436312e+06 -5.35372336e+04 ! x y z -3.54360414e+02 -1.92451382e+03 8.24540973e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill +Body316 2.00402722e+04 9.01916105e+03 ! particle number mass Rhill 4.15403541e+03 !particle radius in AU 1.55751438e+07 6.03420204e+06 -2.57378814e+04 ! x y z -5.81737732e+02 1.49479237e+03 -7.62983212e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill +Body317 1.36478455e+06 2.35917682e+04 ! particle number mass Rhill 1.15117238e+04 !particle radius in AU 1.06056911e+07 8.74976261e+04 -1.72290821e+03 ! x y z -1.77150357e+01 2.02140459e+03 -2.31012980e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill +Body318 1.25503882e+06 2.69799096e+04 ! particle number mass Rhill 1.11945004e+04 !particle radius in AU -6.72042968e+06 -1.07531738e+07 5.09281015e+04 ! x y z 1.56397473e+03 -9.57368328e+02 -1.25364327e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill +Body319 3.83212506e+05 1.74228564e+04 ! particle number mass Rhill 7.53816353e+03 !particle radius in AU 4.10458407e+06 -1.13623664e+07 -9.48469623e+04 ! x y z 1.78215300e+03 6.13680096e+02 -7.93502985e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill +Body320 1.19861178e+05 1.06361705e+04 ! particle number mass Rhill 7.54041364e+03 !particle radius in AU 8.42747503e+06 -6.97349936e+06 -2.15671129e+04 ! x y z 1.26552336e+03 1.51523836e+03 2.12892191e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill +Body321 2.76964902e+05 1.82031961e+04 ! particle number mass Rhill 6.76488745e+03 !particle radius in AU -1.31213742e+07 -4.58561120e+06 1.53600301e+04 ! x y z 5.82359194e+02 -1.66882713e+03 1.14079207e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill +Body322 7.97652582e+04 8.90232552e+03 ! particle number mass Rhill 6.58324849e+03 !particle radius in AU -7.56393159e+06 7.09659926e+06 -4.65315976e+04 ! x y z -1.36862256e+03 -1.51081343e+03 1.13488899e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill +Body323 1.71360917e+05 1.02338425e+04 ! particle number mass Rhill 8.49453445e+03 !particle radius in AU 4.46247777e+06 -8.10645059e+06 1.43618351e+04 ! x y z 1.90934802e+03 1.00293881e+03 8.21819949e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill +Body324 8.86224252e+04 9.60497307e+03 ! particle number mass Rhill 6.81841660e+03 !particle radius in AU -9.96034566e+06 4.35537723e+06 -1.20286093e+04 ! x y z -7.67471215e+02 -1.83079175e+03 -1.31980560e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill +Body325 3.61520873e+05 1.66400018e+04 ! particle number mass Rhill 1.08946542e+04 !particle radius in AU -1.14760721e+07 3.70943531e+06 -9.49844421e+04 ! x y z -5.95286906e+02 -1.76496467e+03 3.00728950e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill +Body326 1.75021180e+06 3.81751240e+04 ! particle number mass Rhill 1.25068862e+04 !particle radius in AU -1.57425262e+07 -1.71485068e+06 5.83418789e+04 ! x y z 1.83396886e+02 -1.64215306e+03 1.76834645e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill +Body327 1.32994897e+06 2.00857686e+04 ! particle number mass Rhill 1.14129344e+04 !particle radius in AU -5.50533612e+06 -7.29539312e+06 -4.19582765e+04 ! x y z 1.70576164e+03 -1.34793657e+03 3.36918899e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill +Body328 1.21855656e+05 9.07633350e+03 ! particle number mass Rhill 7.58200769e+03 !particle radius in AU -1.84334893e+06 9.13437442e+06 -6.98626074e+03 ! x y z -2.09435634e+03 -4.13549777e+02 1.31091798e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill +Body329 1.40955037e+06 2.89016258e+04 ! particle number mass Rhill 1.16362363e+04 !particle radius in AU -8.24556722e+05 1.30406598e+07 9.22800110e+04 ! x y z -1.80291385e+03 -1.14208577e+02 5.06777815e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill +Body330 1.58828247e+05 1.37321216e+04 ! particle number mass Rhill 8.28218455e+03 !particle radius in AU -9.92787386e+06 7.89436638e+06 5.47155159e+04 ! x y z -1.15186100e+03 -1.44221325e+03 -1.43299470e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill +Body331 1.65396738e+05 2.50325908e+04 ! particle number mass Rhill 5.69676070e+03 !particle radius in AU -1.72820033e+07 -1.54859445e+07 -1.76600870e+05 ! x y z 9.00952544e+02 -1.00938815e+03 5.52976287e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill +Body332 4.50908324e+05 1.60135274e+04 ! particle number mass Rhill 1.17273100e+04 !particle radius in AU 7.54874149e+06 -7.34865635e+06 1.58691383e+04 ! x y z 1.40447688e+03 1.44745232e+03 -1.19902506e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill +Body333 3.88265588e+05 1.76282129e+04 ! particle number mass Rhill 7.57115197e+03 !particle radius in AU 6.70925482e+06 1.02233476e+07 -8.94168570e+04 ! x y z -1.57673538e+03 1.00346927e+03 -1.54449677e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill +Body334 3.44291979e+05 1.32450561e+04 ! particle number mass Rhill 1.07187619e+04 !particle radius in AU -9.38875782e+06 -1.03278172e+06 4.07424683e+04 ! x y z 2.57699240e+02 -2.12423408e+03 -1.75552004e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill +Body335 1.35334256e+05 1.01627003e+04 ! particle number mass Rhill 7.85184231e+03 !particle radius in AU 9.27514180e+06 3.60605892e+06 -8.97298126e+03 ! x y z -7.45316219e+02 1.94032830e+03 2.50725751e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill +Body336 5.49037875e+04 6.70694447e+03 ! particle number mass Rhill 5.81259090e+03 !particle radius in AU 2.84715606e+05 -8.96387040e+06 -7.61793089e+04 ! x y z 2.17642987e+03 7.44775849e+01 5.43474351e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill +Body337 1.06085076e+06 1.97907369e+04 ! particle number mass Rhill 1.05845019e+04 !particle radius in AU 4.23618089e+06 8.82455069e+06 -3.58009197e+04 ! x y z -1.88592236e+03 9.06205367e+02 -1.32060735e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill +Body338 2.06072803e+05 1.29338641e+04 ! particle number mass Rhill 9.03321920e+03 !particle radius in AU 8.99412766e+06 -6.25093595e+06 5.78854309e+04 ! x y z 1.13268666e+03 1.63171487e+03 -3.80887879e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill +Body339 1.09138269e+06 2.10029891e+04 ! particle number mass Rhill 1.06850859e+04 !particle radius in AU 8.95756676e+06 -5.04120234e+06 4.46604404e+04 ! x y z 9.97476295e+02 1.78291720e+03 1.83929026e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill +Body340 1.18742709e+06 2.48211822e+04 ! particle number mass Rhill 1.09897543e+04 !particle radius in AU -6.88398435e+06 -9.59185877e+06 5.44110030e+04 ! x y z 1.53704986e+03 -1.12804795e+03 1.33934445e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill +Body341 8.61407126e+04 8.77159648e+03 ! particle number mass Rhill 6.75416723e+03 !particle radius in AU 4.06115845e+06 9.20664592e+06 1.44995295e+04 ! x y z -1.87321421e+03 8.55264917e+02 4.54558328e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill +Body342 6.83606027e+04 1.06731784e+04 ! particle number mass Rhill 4.24346826e+03 !particle radius in AU 5.83709056e+06 1.18773019e+07 -1.78313453e+04 ! x y z -1.60438748e+03 8.04911839e+02 7.87147192e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill +Body343 5.80242151e+05 1.62202808e+04 ! particle number mass Rhill 1.27557328e+04 !particle radius in AU -9.82331264e+06 -1.72475014e+06 -4.50474397e+04 ! x y z 3.80035552e+02 -2.02006276e+03 1.41607704e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill +Body344 8.02642827e+04 8.37530219e+03 ! particle number mass Rhill 6.59694858e+03 !particle radius in AU -9.75150606e+06 1.14173962e+06 1.90738112e+04 ! x y z -2.44986733e+02 -2.07228361e+03 4.28819137e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill +Body345 1.76055567e+06 2.24567768e+04 ! particle number mass Rhill 1.25314767e+04 !particle radius in AU 8.89271698e+06 -2.80889036e+06 -9.05088712e+04 ! x y z 6.43083392e+02 2.05152117e+03 5.84263642e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill +Body346 1.47293265e+05 9.27562637e+03 ! particle number mass Rhill 5.48083372e+03 !particle radius in AU 5.55138431e+05 8.96699891e+06 -2.02907914e+03 ! x y z -2.16543193e+03 1.17824020e+02 1.89028293e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill +Body347 9.25475148e+05 2.45394415e+04 ! particle number mass Rhill 1.01136344e+04 !particle radius in AU 1.08689498e+07 6.77891019e+06 -1.57957399e+05 ! x y z -9.58257682e+02 1.54874788e+03 -4.38996175e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill +Body348 1.53116579e+06 2.57152347e+04 ! particle number mass Rhill 1.19617045e+04 !particle radius in AU -3.46641057e+06 1.06366697e+07 -4.89091419e+04 ! x y z -1.87369781e+03 -5.85557096e+02 2.64347289e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill +Body349 6.04551146e+05 1.51365545e+04 ! particle number mass Rhill 1.29314335e+04 !particle radius in AU 7.28383532e+06 5.25991927e+06 -2.74032882e+04 ! x y z -1.28268765e+03 1.77447224e+03 6.54106986e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill +Body350 1.48886859e+05 1.63747204e+04 ! particle number mass Rhill 5.50052892e+03 !particle radius in AU -4.06177152e+06 -1.52948510e+07 1.69121808e+05 ! x y z 1.57226331e+03 -4.40552105e+02 -4.07139830e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill +Body351 9.88917517e+04 8.68942842e+03 ! particle number mass Rhill 4.79923872e+03 !particle radius in AU -9.47543528e+06 -9.79695598e+05 -1.53056931e+04 ! x y z 2.01324530e+02 -2.10617058e+03 -1.48150840e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill +Body352 5.31761522e+05 2.89128345e+04 ! particle number mass Rhill 8.40797283e+03 !particle radius in AU -1.79473215e+07 9.78097521e+05 5.91571461e+04 ! x y z -1.10933113e+02 -1.54125298e+03 1.80243489e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill +Body353 5.93800400e+05 3.46771236e+04 ! particle number mass Rhill 8.72299905e+03 !particle radius in AU -4.10705239e+06 2.02615072e+07 8.49438827e+04 ! x y z -1.41774938e+03 -2.76831824e+02 -8.09634112e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill +Body354 2.16009390e+04 6.17472898e+03 ! particle number mass Rhill 4.25918528e+03 !particle radius in AU 9.20347813e+05 1.11635810e+07 4.32283845e+04 ! x y z -1.94746867e+03 1.65365528e+02 5.45495799e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill +Body355 1.24618540e+06 2.22772636e+04 ! particle number mass Rhill 1.11681152e+04 !particle radius in AU 1.02476212e+07 1.57307556e+06 1.24769819e+04 ! x y z -3.20593926e+02 2.01506970e+03 6.12888669e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill +Body356 2.53529332e+05 1.20865993e+04 ! particle number mass Rhill 9.67932473e+03 !particle radius in AU -9.41529174e+06 -1.45196651e+06 -3.72716178e+03 ! x y z 3.30034223e+02 -2.10697891e+03 -9.10557070e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill +Body357 3.29029712e+05 1.83883747e+04 ! particle number mass Rhill 7.16468942e+03 !particle radius in AU 9.63405331e+06 9.48657460e+06 -1.16765431e+05 ! x y z -1.25212013e+03 1.25762974e+03 -8.79471164e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill +Body358 2.17221291e+05 1.52159954e+04 ! particle number mass Rhill 6.23859022e+03 !particle radius in AU 1.28395429e+07 1.67358191e+05 3.52526511e+04 ! x y z -4.79000239e+01 1.82109236e+03 -7.08024284e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill +Body359 3.25443529e+05 1.78234223e+04 ! particle number mass Rhill 1.05194783e+04 !particle radius in AU 1.69906243e+05 1.31567065e+07 -2.83802597e+04 ! x y z -1.79852464e+03 -2.60855891e+01 1.09479469e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill +Body360 6.21375843e+05 1.72987397e+04 ! particle number mass Rhill 1.30502985e+04 !particle radius in AU -8.71409354e+06 -5.07378044e+06 -2.89973508e+04 ! x y z 1.01955016e+03 -1.80816198e+03 1.72703995e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill +Body361 1.19625108e+06 3.45202092e+04 ! particle number mass Rhill 1.10169094e+04 !particle radius in AU -1.32773676e+07 9.58326159e+06 1.68929446e+04 ! x y z -9.40100121e+02 -1.31837280e+03 -1.11767857e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill +Body362 7.85243061e+05 1.82848577e+04 ! particle number mass Rhill 9.57459397e+03 !particle radius in AU -8.40811158e+06 5.08930784e+06 5.82263133e+04 ! x y z -1.10041478e+03 -1.79532449e+03 1.45771724e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill +Body363 5.65328014e+04 9.14731336e+03 ! particle number mass Rhill 3.98308125e+03 !particle radius in AU 1.04113372e+07 -6.20697428e+06 -4.84867208e+03 ! x y z 9.45840262e+02 1.61620978e+03 2.47832189e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill +Body364 6.87138794e+05 1.67675123e+04 ! particle number mass Rhill 9.15799677e+03 !particle radius in AU -8.01518815e+06 -5.01852324e+06 5.17503273e+04 ! x y z 1.12426091e+03 -1.82440187e+03 2.07206048e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill +Body365 3.35461131e+05 1.25266942e+04 ! particle number mass Rhill 7.21107035e+03 !particle radius in AU 2.07944449e+06 8.94904149e+06 4.13797547e+04 ! x y z -2.09851241e+03 4.60858305e+02 2.54918811e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill +Body366 1.00962284e+05 9.73161122e+03 ! particle number mass Rhill 7.12123600e+03 !particle radius in AU 9.71543544e+06 -3.75196256e+06 7.97368753e+04 ! x y z 7.42718545e+02 1.90076456e+03 1.83014984e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill +Body367 1.83317034e+05 2.12530285e+04 ! particle number mass Rhill 8.68766895e+03 !particle radius in AU 1.76238307e+07 7.35273671e+06 8.70758386e+04 ! x y z -5.77591306e+02 1.37259271e+03 3.08504041e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill +Body368 4.69470359e+05 2.23837382e+04 ! particle number mass Rhill 1.18860727e+04 !particle radius in AU 1.05252406e+07 1.01023349e+07 1.18854193e+04 ! x y z -1.19069656e+03 1.22779101e+03 7.21918511e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill +Body369 1.04756800e+06 2.13183481e+04 ! particle number mass Rhill 1.05401406e+04 !particle radius in AU -2.44589262e+06 9.98155585e+06 -7.16098465e+04 ! x y z -2.01199959e+03 -4.94158200e+02 1.76332595e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill +Body370 4.18223358e+05 2.54418848e+04 ! particle number mass Rhill 1.14368147e+04 !particle radius in AU -1.71313810e+07 1.65684524e+05 7.09374774e+04 ! x y z -1.73247831e+01 -1.58285349e+03 5.23281867e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill +Body371 1.20015465e+06 2.17095629e+04 ! particle number mass Rhill 1.10288797e+04 !particle radius in AU 5.96055313e+06 8.26822848e+06 -6.95116782e+04 ! x y z -1.67280349e+03 1.20494456e+03 -5.49043884e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill +Body372 2.26102763e+04 5.41804252e+03 ! particle number mass Rhill 4.32451704e+03 !particle radius in AU -4.58351543e+06 8.68653626e+06 -2.19181580e+04 ! x y z -1.82145003e+03 -9.87506692e+02 -1.02913863e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill +Body373 5.78093803e+04 1.24595443e+04 ! particle number mass Rhill 5.91337055e+03 !particle radius in AU 1.46092641e+06 1.62085257e+07 9.35785200e+04 ! x y z -1.61693894e+03 1.23715914e+02 1.88035614e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill +Body374 2.95683963e+05 1.17235659e+04 ! particle number mass Rhill 6.91398214e+03 !particle radius in AU 8.37967759e+06 2.86987872e+06 4.97540416e+02 ! x y z -6.79497178e+02 2.09457077e+03 -7.48586459e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill +Body375 4.12889379e+05 1.59172907e+04 ! particle number mass Rhill 7.72793689e+03 !particle radius in AU 1.00544998e+07 -4.23649556e+06 1.69842871e+04 ! x y z 7.79559289e+02 1.80935311e+03 -9.45690780e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill +Body376 1.50756339e+05 9.79244978e+03 ! particle number mass Rhill 5.52345548e+03 !particle radius in AU 4.97012699e+06 7.77763306e+06 -1.08049137e+05 ! x y z -1.81754065e+03 1.16817211e+03 7.93709072e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill +Body377 4.43444272e+05 1.35175167e+04 ! particle number mass Rhill 1.16622408e+04 !particle radius in AU -8.56556120e+06 -3.00745478e+06 2.68959103e+04 ! x y z 7.41957227e+02 -2.02442760e+03 5.97293652e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill +Body378 5.12222480e+04 7.36091792e+03 ! particle number mass Rhill 3.85423811e+03 !particle radius in AU -9.89914954e+06 1.64381375e+06 1.86441037e+04 ! x y z -3.29902217e+02 -2.03621690e+03 -1.49125925e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill +Body379 2.56717090e+05 2.83997991e+04 ! particle number mass Rhill 9.71972363e+03 !particle radius in AU -1.33296527e+07 -1.79984260e+07 -6.91244815e+03 ! x y z 1.12052368e+03 -8.18620884e+02 -1.17030012e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill +Body380 4.75536554e+05 1.67281272e+04 ! particle number mass Rhill 8.10053368e+03 !particle radius in AU 2.47744290e+05 1.08515872e+07 8.05332988e+04 ! x y z -1.98242921e+03 4.60702324e+01 -8.10883988e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill +Body381 2.04638999e+05 1.26959685e+04 ! particle number mass Rhill 9.01222011e+03 !particle radius in AU -1.04485761e+07 -3.19315171e+06 -6.87163868e+04 ! x y z 5.84305730e+02 -1.88680612e+03 1.24994521e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill +Body382 3.60539072e+05 1.69503875e+04 ! particle number mass Rhill 7.38646156e+03 !particle radius in AU -4.30915405e+06 1.13988191e+07 -1.87898899e+03 ! x y z -1.74153886e+03 -6.58302615e+02 5.64269794e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill +Body383 1.79551829e+04 9.04731795e+03 ! particle number mass Rhill 4.00465955e+03 !particle radius in AU 1.07629692e+07 1.37789153e+07 5.87066489e+04 ! x y z -1.23476438e+03 9.58354279e+02 -1.51457433e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill +Body384 4.98876102e+05 3.47845056e+04 ! particle number mass Rhill 8.23094873e+03 !particle radius in AU -2.26919155e+06 -2.23065641e+07 1.71429522e+05 ! x y z 1.36729685e+03 -1.26785143e+02 1.53512073e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill +Body385 3.30264323e+04 5.95784944e+03 ! particle number mass Rhill 4.90670043e+03 !particle radius in AU -8.76057602e+06 -2.98488729e+06 3.16441575e+04 ! x y z 7.01564230e+02 -2.04784374e+03 6.54428080e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill +Body386 4.63310633e+05 2.64600689e+04 ! particle number mass Rhill 1.18338596e+04 !particle radius in AU 7.33432561e+06 1.58195231e+07 -1.25526941e+05 ! x y z -1.41716350e+03 6.50084435e+02 1.99363998e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill +Body387 4.19368635e+04 6.95684327e+03 ! particle number mass Rhill 5.31334038e+03 !particle radius in AU 9.67909368e+06 -3.14679172e+06 1.01149877e+04 ! x y z 6.30534017e+02 1.94451859e+03 1.40841719e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill +Body388 2.57496102e+05 1.15319903e+04 ! particle number mass Rhill 6.60251226e+03 !particle radius in AU 3.58575623e+06 -8.28340933e+06 2.06786831e+04 ! x y z 2.01251169e+03 8.71048387e+02 4.13835680e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill +Body389 4.88910847e+05 2.92163767e+04 ! particle number mass Rhill 8.17577418e+03 !particle radius in AU -1.59444867e+07 -9.43202143e+06 -1.03432964e+05 ! x y z 7.76368044e+02 -1.31648260e+03 -1.97011404e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill +Body390 5.40974116e+04 7.11908202e+03 ! particle number mass Rhill 3.92504366e+03 !particle radius in AU 8.15294773e+06 -4.83168922e+06 -2.23196035e+04 ! x y z 1.12438877e+03 1.80730928e+03 -9.96110137e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill +Body391 1.52957016e+05 1.22293609e+04 ! particle number mass Rhill 5.55020210e+03 !particle radius in AU 1.15608807e+07 -1.72289132e+06 8.78681619e+04 ! x y z 2.64558251e+02 1.88351104e+03 -1.22676546e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill +Body392 1.16028835e+05 1.00480378e+04 ! particle number mass Rhill 7.45917792e+03 !particle radius in AU 5.94153104e+05 1.04675287e+07 -7.76838952e+04 ! x y z -2.01022149e+03 1.00791259e+02 2.73869669e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill +Body393 2.82021040e+05 1.40688004e+04 ! particle number mass Rhill 6.80580498e+03 !particle radius in AU 9.10704389e+06 5.66556444e+06 -1.21395685e+05 ! x y z -1.06310456e+03 1.70305461e+03 1.52195271e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill +Body394 3.98007972e+05 2.07887076e+04 ! particle number mass Rhill 7.63395485e+03 !particle radius in AU -6.14994249e+06 -1.27900562e+07 -1.88907757e+04 ! x y z 1.55814359e+03 -7.78224426e+02 2.73440877e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill +Body395 9.71117259e+04 8.84618676e+03 ! particle number mass Rhill 7.02952878e+03 !particle radius in AU -8.80385560e+06 3.77151207e+06 -1.21818940e+05 ! x y z -8.47944944e+02 -1.95313347e+03 -1.70763192e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill +Body396 4.85180076e+05 1.88181431e+04 ! particle number mass Rhill 1.20172005e+04 !particle radius in AU 1.08664166e+07 5.36923937e+06 -8.13196573e+04 ! x y z -8.16624638e+02 1.69027839e+03 8.34673628e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill +Body397 2.32920343e+05 1.16940572e+04 ! particle number mass Rhill 6.38540043e+03 !particle radius in AU -5.47268707e+06 7.90131264e+06 3.38529547e+04 ! x y z -1.73122732e+03 -1.20437649e+03 1.62011748e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill +Body398 1.41454261e+06 2.84156620e+04 ! particle number mass Rhill 1.16499575e+04 !particle radius in AU 1.10121047e+07 -6.14561995e+06 5.51425169e+04 ! x y z 8.91208138e+02 1.62668641e+03 -4.00812310e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill +Body399 1.73697324e+05 1.64478571e+04 ! particle number mass Rhill 5.79050854e+03 !particle radius in AU -3.82515764e+06 1.42902315e+07 -2.47878060e+04 ! x y z -1.63598310e+03 -4.85341065e+02 -2.82331478e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill +Body400 1.55709181e+06 2.18057129e+04 ! particle number mass Rhill 1.20288397e+04 !particle radius in AU -1.84053839e+06 9.22666914e+06 -1.87382012e+04 ! x y z -2.10070573e+03 -4.25824187e+02 -2.45200413e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill +Body401 2.07330430e+05 1.42389392e+04 ! particle number mass Rhill 6.14242713e+03 !particle radius in AU -7.35737221e+06 -9.68920345e+06 5.93390680e+04 ! x y z 1.50053722e+03 -1.12338599e+03 -1.30933156e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill +Body402 2.66341603e+05 1.31577788e+04 ! particle number mass Rhill 9.83970306e+03 !particle radius in AU -8.70682368e+06 5.56356570e+06 -6.56478138e+04 ! x y z -1.11346390e+03 -1.70326053e+03 1.28466204e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill +Body403 1.90092636e+05 1.78825398e+04 ! particle number mass Rhill 5.96724810e+03 !particle radius in AU 7.02500514e+06 -1.38238984e+07 6.74566304e+04 ! x y z 1.48675948e+03 7.65020748e+02 8.19788003e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill +Body404 4.48638932e+05 1.53496689e+04 ! particle number mass Rhill 1.17076027e+04 !particle radius in AU -9.79856030e+06 2.12372760e+06 1.89480336e+04 ! x y z -4.48830087e+02 -2.02736841e+03 -1.23694959e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill +Body405 1.73398341e+05 2.54379577e+04 ! particle number mass Rhill 8.52806763e+03 !particle radius in AU -1.01558817e+07 -2.10873547e+07 -2.03636345e+05 ! x y z 1.20616652e+03 -5.87121724e+02 -4.30533916e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill +Body406 5.83945240e+05 2.67498480e+04 ! particle number mass Rhill 8.67447176e+03 !particle radius in AU 1.10980559e+07 1.19228306e+07 -2.89204661e+04 ! x y z -1.18553044e+03 1.09632262e+03 8.12769922e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill +Body407 2.44311266e+05 1.21893974e+04 ! particle number mass Rhill 6.48784045e+03 !particle radius in AU 1.00683282e+07 -1.06678967e+05 -7.08192900e+04 ! x y z 7.59653606e-01 2.03836538e+03 -2.00978691e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill +Body408 2.68758985e+05 1.15689067e+04 ! particle number mass Rhill 9.86938263e+03 !particle radius in AU 8.35393830e+06 3.60269502e+06 -6.29338444e+04 ! x y z -8.43508227e+02 1.99248181e+03 2.35695291e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill +Body409 2.09880806e+05 2.76842944e+04 ! particle number mass Rhill 9.08852133e+03 !particle radius in AU 7.15716844e+06 2.23969109e+07 -2.43128655e+05 ! x y z -1.28744111e+03 4.04784490e+02 -9.98522887e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill +Body410 4.53834965e+05 1.88574756e+04 ! particle number mass Rhill 7.97538482e+03 !particle radius in AU 9.79101038e+06 -7.57582171e+06 -6.16544234e+03 ! x y z 1.14324704e+03 1.46779509e+03 -4.09524183e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill +Body411 4.95608775e+05 3.36478551e+04 ! particle number mass Rhill 1.21026921e+04 !particle radius in AU 1.92900217e+07 -9.92716086e+06 -8.71066703e+04 ! x y z 6.46615886e+02 1.23877023e+03 -8.06944804e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill +Body412 4.02159459e+05 1.51756172e+04 ! particle number mass Rhill 1.12884701e+04 !particle radius in AU 7.63578761e+05 -1.05163176e+07 -1.40125740e+03 ! x y z 1.99506811e+03 1.28492643e+02 -1.21964426e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill +Body413 1.16363900e+06 2.46877619e+04 ! particle number mass Rhill 1.09158716e+04 !particle radius in AU 6.16240208e+05 1.16898273e+07 -2.31871163e+03 ! x y z -1.92072024e+03 1.14544858e+02 -1.24842975e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill +Body414 1.07497381e+05 1.07118523e+04 ! particle number mass Rhill 4.93459624e+03 !particle radius in AU 1.03595473e+07 -4.35809471e+06 -5.55598025e+04 ! x y z 7.59957188e+02 1.81039627e+03 -9.27171494e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill +Body415 7.20978833e+05 2.10625708e+04 ! particle number mass Rhill 9.30593115e+03 !particle radius in AU -8.58951099e+05 1.20741593e+07 8.58096722e+03 ! x y z -1.85656009e+03 -1.31659982e+02 -7.07088670e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill +Body416 1.28427470e+05 1.34925228e+04 ! particle number mass Rhill 7.71593034e+03 !particle radius in AU 1.34936412e+07 9.22411406e+05 -1.28097766e+05 ! x y z -1.21347788e+02 1.77352752e+03 6.09816980e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill +Body417 1.87301701e+04 5.21024920e+03 ! particle number mass Rhill 4.06146670e+03 !particle radius in AU 8.93667242e+06 -4.37387871e+06 4.75249766e+04 ! x y z 9.07116732e+02 1.86034352e+03 -2.16160032e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill +Body418 1.18868346e+05 1.13624133e+04 ! particle number mass Rhill 5.10279049e+03 !particle radius in AU 2.97443729e+06 1.12987732e+07 -7.15478904e+04 ! x y z -1.84937662e+03 4.88975049e+02 -1.62129744e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill +Body419 8.52470325e+05 2.51851270e+04 ! particle number mass Rhill 9.84038492e+03 !particle radius in AU -1.20782110e+07 5.42799080e+06 -2.14298463e+04 ! x y z -7.60124760e+02 -1.64210069e+03 1.17910321e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill +Body420 4.92630611e+05 2.65246208e+04 ! particle number mass Rhill 8.19645631e+03 !particle radius in AU -1.66687778e+07 3.40131310e+06 -8.13780785e+04 ! x y z -3.27574668e+02 -1.54958699e+03 7.60005752e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill +Body421 1.21279031e+06 2.36838042e+04 ! particle number mass Rhill 1.10674500e+04 !particle radius in AU 8.04465463e+06 7.94262975e+06 3.50880055e+04 ! x y z -1.38047284e+03 1.36038061e+03 9.60840796e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill +Body422 2.26966144e+05 1.07078719e+04 ! particle number mass Rhill 9.32873342e+03 !particle radius in AU 8.72948534e+06 2.25552201e+06 -6.67651980e+03 ! x y z -5.17110071e+02 2.09745799e+03 -1.26305103e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill +Body423 5.60894834e+04 1.28408323e+04 ! particle number mass Rhill 3.97264243e+03 !particle radius in AU 1.59911238e+07 -5.78123234e+06 -4.96452199e+04 ! x y z 5.52053054e+02 1.48435519e+03 -7.76218367e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill +Body424 2.74792847e+05 1.16703384e+04 ! particle number mass Rhill 9.94269530e+03 !particle radius in AU -7.16058601e+06 5.68697632e+06 2.50735615e+04 ! x y z -1.32041167e+03 -1.70209713e+03 -5.51776816e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill +Body425 1.03592686e+06 1.97323119e+04 ! particle number mass Rhill 1.05009525e+04 !particle radius in AU -1.96591682e+06 -9.56765462e+06 -5.49582524e+04 ! x y z 2.05754068e+03 -4.30221705e+02 -6.52205972e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill +Body426 1.55296659e+05 1.56025405e+04 ! particle number mass Rhill 8.22033835e+03 !particle radius in AU -1.32036875e+07 -6.42805082e+06 -2.13137156e+04 ! x y z 7.40576713e+02 -1.53667373e+03 -1.66122663e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill +Body427 1.89421380e+06 3.06783506e+04 ! particle number mass Rhill 1.28408960e+04 !particle radius in AU 7.26511252e+06 1.02544271e+07 -1.28126970e+04 ! x y z -1.50567288e+03 1.06151555e+03 -1.91621752e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill +Body428 4.66109388e+04 7.82343589e+03 ! particle number mass Rhill 5.50382909e+03 !particle radius in AU -9.70398421e+06 5.43301598e+06 -7.10765156e+04 ! x y z -9.66770489e+02 -1.69237365e+03 -3.28188506e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill +Body429 1.90146495e+06 2.33121169e+04 ! particle number mass Rhill 1.28572603e+04 !particle radius in AU 2.96216400e+05 -9.44659905e+06 6.39430618e+04 ! x y z 2.13334160e+03 5.10827881e+01 -3.06567932e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill +Body430 4.61962305e+04 6.63727442e+03 ! particle number mass Rhill 3.72381283e+03 !particle radius in AU -7.59639515e+06 5.48032752e+06 -2.40679326e+03 ! x y z -1.21575451e+03 -1.75481888e+03 -1.69366205e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill +Body431 6.71482788e+04 7.73769019e+03 ! particle number mass Rhill 6.21604216e+03 !particle radius in AU 4.26014597e+06 8.47244148e+06 -4.52841666e+04 ! x y z -1.89773381e+03 9.86947142e+02 2.27005651e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill +Body432 3.12766116e+05 1.22096765e+04 ! particle number mass Rhill 7.04464148e+03 !particle radius in AU 5.86869928e+06 6.95435059e+06 -3.04780435e+04 ! x y z -1.65434811e+03 1.39969038e+03 3.34387968e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill +Body433 4.30468140e+05 1.48164986e+04 ! particle number mass Rhill 1.15473588e+04 !particle radius in AU -8.24315322e+06 -5.69586696e+06 2.20302861e+04 ! x y z 1.15852208e+03 -1.69773981e+03 2.26551767e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill +Body434 2.67293742e+04 5.47730098e+03 ! particle number mass Rhill 4.57262149e+03 !particle radius in AU -2.90925512e+06 8.79933915e+06 6.42165783e+04 ! x y z -2.03971713e+03 -6.70860975e+02 7.91657343e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill +Body435 6.11118104e+05 1.81074363e+04 ! particle number mass Rhill 1.29780877e+04 !particle radius in AU 9.24506088e+06 5.42020869e+06 3.55011834e+04 ! x y z -9.90032731e+02 1.74244918e+03 -6.84359361e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill +Body436 4.63405803e+04 1.11333435e+04 ! particle number mass Rhill 3.72768740e+03 !particle radius in AU 1.49390033e+07 5.03002569e+06 -6.08660675e+04 ! x y z -5.02338251e+02 1.56332178e+03 -1.67781569e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill +Body437 3.25218696e+05 1.69362297e+04 ! particle number mass Rhill 1.05170553e+04 !particle radius in AU 1.23161243e+07 1.68843020e+06 2.12877558e+04 ! x y z -2.39425053e+02 1.84057327e+03 1.32413609e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill +Body438 1.84457438e+06 2.16659606e+04 ! particle number mass Rhill 1.27277329e+04 !particle radius in AU 8.91889708e+06 -5.54747107e+05 4.66922419e+04 ! x y z 1.62589921e+02 2.18077019e+03 -1.86548050e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill +Body439 6.44421975e+05 1.54647739e+04 ! particle number mass Rhill 8.96414991e+03 !particle radius in AU -5.82188250e+06 -6.93015474e+06 8.83731418e+03 ! x y z 1.65500621e+03 -1.40856285e+03 -4.08918572e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill +Body440 1.00366062e+06 2.04312159e+04 ! particle number mass Rhill 1.03907754e+04 !particle radius in AU -7.35080590e+06 -7.29055125e+06 -1.20861111e+03 ! x y z 1.39392385e+03 -1.47392682e+03 -1.29937331e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill +Body441 1.07492900e+05 1.20693239e+04 ! particle number mass Rhill 4.93452768e+03 !particle radius in AU -1.22300071e+07 4.00505750e+06 -4.82429747e+04 ! x y z -5.99234873e+02 -1.71878148e+03 -9.59996458e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill +Body442 4.00127188e+04 1.04048251e+04 ! particle number mass Rhill 5.23080275e+03 !particle radius in AU 1.90445756e+06 1.53190995e+07 1.28393938e+05 ! x y z -1.65070889e+03 1.86078304e+02 1.21713635e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill +Body443 1.72835996e+04 4.91695733e+03 ! particle number mass Rhill 3.95409460e+03 !particle radius in AU 1.16512710e+06 9.58806430e+06 6.00184281e+03 ! x y z -2.08431325e+03 2.50023373e+02 -4.86726355e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill +Body444 3.64491164e+04 6.19302531e+03 ! particle number mass Rhill 5.07066194e+03 !particle radius in AU 2.90940058e+06 8.85967621e+06 -3.67911262e+04 ! x y z -2.05184488e+03 6.57972025e+02 3.77722174e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill +Body445 9.66027161e+05 2.03395398e+04 ! particle number mass Rhill 1.02592460e+04 !particle radius in AU 1.02030674e+07 -2.25656251e+06 -2.42931768e+04 ! x y z 4.02033391e+02 1.97779610e+03 -4.56432654e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill +Body446 2.22544479e+04 4.96458922e+03 ! particle number mass Rhill 4.30171134e+03 !particle radius in AU -2.21966207e+06 -8.53462824e+06 5.98951302e+03 ! x y z 2.13957370e+03 -5.72879766e+02 -9.73511724e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill +Body447 8.51272363e+05 1.92265349e+04 ! particle number mass Rhill 9.83577325e+03 !particle radius in AU -5.82677409e+06 -8.25640044e+06 -1.85310721e+04 ! x y z 1.68912824e+03 -1.20023426e+03 -1.46688747e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill +Body448 2.32140349e+05 1.29036607e+04 ! particle number mass Rhill 9.39909127e+03 !particle radius in AU -4.15446158e+05 -1.04064911e+07 -6.01445752e+04 ! x y z 2.04307655e+03 -9.44888304e+01 -1.29270899e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill +Body449 1.28498831e+05 1.39952129e+04 ! particle number mass Rhill 5.23703394e+03 !particle radius in AU 1.44949245e+06 -1.38726585e+07 1.28983420e+04 ! x y z 1.74524417e+03 1.89418829e+02 -1.27510818e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill +Body450 8.56861708e+04 1.01449417e+04 ! particle number mass Rhill 6.74226629e+03 !particle radius in AU -1.02673257e+07 5.51832525e+06 7.68510549e+04 ! x y z -9.09826047e+02 -1.68325012e+03 -9.74521738e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill +Body451 1.33577416e+06 3.21447068e+04 ! particle number mass Rhill 1.14295731e+04 !particle radius in AU 9.99103043e+06 1.06885708e+07 7.94231343e+04 ! x y z -1.28100100e+03 1.14298665e+03 7.74179187e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill +Body452 1.29793646e+06 2.15081615e+04 ! particle number mass Rhill 1.13206181e+04 !particle radius in AU 4.41133703e+06 8.86113052e+06 -4.90493478e+04 ! x y z -1.86573176e+03 9.32322270e+02 -1.20417460e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill +Body453 3.52625005e+05 1.46757322e+04 ! particle number mass Rhill 7.33201534e+03 !particle radius in AU -1.05312274e+07 1.06309083e+06 -3.40508748e+04 ! x y z -2.12025256e+02 -1.99070933e+03 2.76988985e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill +Body454 8.65462312e+04 8.10394938e+03 ! particle number mass Rhill 6.76474935e+03 !particle radius in AU -9.13190511e+06 -9.87045448e+05 4.65363249e+04 ! x y z 2.72813658e+02 -2.14939314e+03 -6.89232508e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill +Body455 5.62433674e+05 1.67093031e+04 ! particle number mass Rhill 8.56661866e+03 !particle radius in AU -9.55165901e+06 3.32037562e+06 -5.74639097e+04 ! x y z -7.05014643e+02 -1.94468153e+03 -9.68692941e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill +Body456 5.46940517e+05 2.51399946e+04 ! particle number mass Rhill 8.48722461e+03 !particle radius in AU -2.79080237e+06 -1.49534280e+07 6.61250908e+04 ! x y z 1.66874204e+03 -2.93565278e+02 -6.04868304e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill +Body457 8.86959726e+04 8.09465350e+03 ! particle number mass Rhill 6.82030227e+03 !particle radius in AU 1.76076614e+06 -8.89107995e+06 4.77043786e+04 ! x y z 2.14748256e+03 4.04932388e+02 -1.26152318e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill +Body458 9.68803238e+05 1.76061812e+04 ! particle number mass Rhill 1.02690639e+04 !particle radius in AU 8.52637393e+06 2.63618253e+06 -5.22911736e+04 ! x y z -6.60976767e+02 2.09577153e+03 3.42675226e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill +Body459 1.37575237e+05 1.11544680e+04 ! particle number mass Rhill 5.35754408e+03 !particle radius in AU 1.08528417e+07 5.02794391e+05 -2.76918530e+04 ! x y z -1.27726381e+02 1.98516729e+03 -1.12360782e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill +Body460 1.48998220e+06 2.18747787e+04 ! particle number mass Rhill 1.18534842e+04 !particle radius in AU -7.11955030e+06 6.48411163e+06 -1.64876744e+04 ! x y z -1.43123341e+03 -1.55444238e+03 -1.21086898e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill +Body461 6.74728805e+05 1.62968820e+04 ! particle number mass Rhill 9.10252919e+03 !particle radius in AU 7.73539416e+06 4.91837100e+06 3.79759434e+04 ! x y z -1.16029500e+03 1.85248711e+03 2.31086993e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill +Body462 2.99651592e+05 1.21722314e+04 ! particle number mass Rhill 1.02339004e+04 !particle radius in AU 8.76407090e+06 -2.02266717e+06 -1.17355053e+04 ! x y z 4.87045225e+02 2.14976445e+03 -1.12592644e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill +Body463 4.45840740e+05 1.45174622e+04 ! particle number mass Rhill 1.16832115e+04 !particle radius in AU -5.85624077e+06 -7.65100688e+06 -6.81073848e+04 ! x y z 1.69101430e+03 -1.25110313e+03 -1.69620610e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill +Body464 2.77600737e+04 7.85191483e+03 ! particle number mass Rhill 4.63065609e+03 !particle radius in AU -4.73064294e+06 1.23174391e+07 -1.15616945e+05 ! x y z -1.67622870e+03 -6.40214154e+02 -2.40259531e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill +Body465 2.75389964e+05 1.70205112e+04 ! particle number mass Rhill 6.75204041e+03 !particle radius in AU 1.21865621e+07 4.96824670e+06 1.38201935e+04 ! x y z -6.90512507e+02 1.66991832e+03 1.81886433e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill +Body466 2.75903056e+05 1.73578977e+04 ! particle number mass Rhill 9.95606737e+03 !particle radius in AU 1.16681691e+07 6.27755146e+06 -9.89757611e+04 ! x y z -8.82483897e+02 1.58231102e+03 -7.45315405e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill +Body467 6.02190482e+04 9.10996020e+03 ! particle number mass Rhill 5.99441701e+03 !particle radius in AU -9.82574233e+06 -6.12952303e+06 1.96949177e+04 ! x y z 1.01952580e+03 -1.64506613e+03 1.17311172e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill +Body468 4.42759837e+05 1.56527672e+04 ! particle number mass Rhill 1.16562377e+04 !particle radius in AU -7.66867450e+06 -6.71467472e+06 1.82936899e+04 ! x y z 1.37697709e+03 -1.54141508e+03 -1.04916179e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill +Body469 3.36720172e+05 1.96306197e+04 ! particle number mass Rhill 7.22008053e+03 !particle radius in AU 6.68731996e+06 1.21566043e+07 -5.02348380e+04 ! x y z -1.55626881e+03 8.62955881e+02 7.13319505e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill +Body470 2.58940449e+04 7.82575799e+03 ! particle number mass Rhill 4.52448294e+03 !particle radius in AU 5.58226973e+05 -1.33893338e+07 3.23944444e+04 ! x y z 1.78341617e+03 5.70175526e+01 2.01164673e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill +Body471 1.45256608e+05 9.66608592e+03 ! particle number mass Rhill 8.03922694e+03 !particle radius in AU 2.69184570e+06 8.96128856e+06 -1.43912663e+04 ! x y z -2.03943626e+03 6.16982327e+02 1.53458951e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill +Body472 1.15877026e+06 3.68429014e+04 ! particle number mass Rhill 1.09006261e+04 !particle radius in AU -1.76847286e+07 -6.05601018e+05 1.06870104e+04 ! x y z 8.13556990e+01 -1.55405464e+03 1.07736989e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill +Body473 1.89629066e+05 1.08509311e+04 ! particle number mass Rhill 5.96239346e+03 !particle radius in AU -4.46692197e+06 -8.22773588e+06 -3.36712950e+04 ! x y z 1.90929541e+03 -1.00567083e+03 1.30091738e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill +Body474 5.15337334e+04 1.59115247e+04 ! particle number mass Rhill 3.86203494e+03 !particle radius in AU 1.09873618e+07 1.89353789e+07 1.37058307e+05 ! x y z -1.20089709e+03 6.97166990e+02 -1.15971142e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill +Body475 1.57230937e+06 2.05829163e+04 ! particle number mass Rhill 1.20678989e+04 !particle radius in AU 8.92466133e+06 -1.21792450e+06 3.61100410e+04 ! x y z 3.10051974e+02 2.14937296e+03 -1.41043166e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill +Body476 6.33227061e+05 1.83648511e+04 ! particle number mass Rhill 8.91193791e+03 !particle radius in AU -5.85289838e+05 1.08674619e+07 3.13865857e+04 ! x y z -1.97212405e+03 -1.17677554e+02 -3.37938196e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill +Body477 7.35347415e+04 7.85278044e+03 ! particle number mass Rhill 6.40717392e+03 !particle radius in AU 2.71862051e+06 -9.05514497e+06 -5.54339403e+02 ! x y z 2.04451063e+03 5.93924832e+02 -2.26401878e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill +Body478 2.95966865e+05 1.22630751e+04 ! particle number mass Rhill 1.01917795e+04 !particle radius in AU -4.06364003e+06 8.41274452e+06 3.61206264e+04 ! x y z -1.92276154e+03 -9.27433732e+02 1.11784546e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill +Body479 9.71859875e+04 1.13295872e+04 ! particle number mass Rhill 7.03132016e+03 !particle radius in AU -1.19933178e+07 -3.73131347e+06 1.49826992e+03 ! x y z 5.46200488e+02 -1.75445228e+03 -4.43292318e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill +Body480 1.81399777e+04 1.22864947e+04 ! particle number mass Rhill 4.01835133e+03 !particle radius in AU -2.24454214e+07 -7.37433557e+06 5.58803594e+04 ! x y z 4.48331646e+02 -1.26886747e+03 -5.97172099e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill +Body481 8.06531544e+04 8.77644669e+03 ! particle number mass Rhill 4.48393645e+03 !particle radius in AU -1.00569236e+07 1.52027585e+06 5.50467478e+04 ! x y z -2.73653938e+02 -2.04195337e+03 2.77105641e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill +Body482 2.97181135e+04 5.68599691e+03 ! particle number mass Rhill 4.73706563e+03 !particle radius in AU 1.42492815e+06 -9.15917062e+06 -2.25858696e+04 ! x y z 2.12298306e+03 3.34049377e+02 1.00298878e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill +Body483 4.23222409e+04 7.28278576e+03 ! particle number mass Rhill 5.32956636e+03 !particle radius in AU -7.74886856e+06 6.98419572e+06 4.81094824e+02 ! x y z -1.36287826e+03 -1.51437942e+03 -1.68752883e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill +Body484 2.03031340e+05 1.37443509e+04 ! particle number mass Rhill 8.98855782e+03 !particle radius in AU -9.13222067e+06 7.31343022e+06 -3.08093425e+04 ! x y z -1.21046156e+03 -1.49256909e+03 -3.15355485e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill +Body485 6.08047440e+04 8.91637215e+03 ! particle number mass Rhill 6.01378842e+03 !particle radius in AU 6.06087158e+06 -9.69417839e+06 6.23119551e+04 ! x y z 1.63826093e+03 1.03252872e+03 -8.91138112e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill +Body486 8.86921034e+04 1.25973681e+04 ! particle number mass Rhill 4.62821986e+03 !particle radius in AU 1.42036863e+07 3.21005959e+05 -1.52147935e+05 ! x y z -2.29346938e+01 1.73911536e+03 2.41934076e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill +Body487 9.52577096e+05 1.72967606e+04 ! particle number mass Rhill 1.02114099e+04 !particle radius in AU 2.47060933e+06 -8.49038937e+06 -1.64092125e+04 ! x y z 2.11333925e+03 6.27764025e+02 3.26978709e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill +Body488 5.18391704e+05 2.71580514e+04 ! particle number mass Rhill 1.22853727e+04 !particle radius in AU -1.70653039e+07 2.72173559e+06 1.07972032e+05 ! x y z -2.36876536e+02 -1.54619144e+03 -7.91920171e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill +Body489 4.36645660e+05 1.45363957e+04 ! particle number mass Rhill 7.87339511e+03 !particle radius in AU 9.29964742e+06 2.61866241e+06 1.18151327e+04 ! x y z -6.01432781e+02 2.01893065e+03 -9.18340859e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill +Body490 3.24205564e+05 1.34006277e+04 ! particle number mass Rhill 1.05061229e+04 !particle radius in AU 5.46329309e+06 -8.17615351e+06 3.23278517e+03 ! x y z 1.73194521e+03 1.16682128e+03 -2.32849453e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill +Body491 6.63821774e+04 1.05636781e+04 ! particle number mass Rhill 4.20213010e+03 !particle radius in AU -9.38612532e+06 8.96174000e+06 1.24251608e+04 ! x y z -1.26134064e+03 -1.32562137e+03 -9.16926524e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill +Body492 1.48737769e+05 1.42832047e+04 ! particle number mass Rhill 5.49869230e+03 !particle radius in AU 1.34404207e+06 -1.34982267e+07 -9.98145158e+04 ! x y z 1.77251874e+03 1.58186229e+02 -1.18233653e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill +Body493 4.27953152e+04 1.09683126e+04 ! particle number mass Rhill 5.34935064e+03 !particle radius in AU 1.59657590e+07 -1.84107184e+06 7.91634963e+04 ! x y z 1.77740752e+02 1.61004155e+03 -8.76452331e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill +Body494 1.55605997e+04 9.97417601e+03 ! particle number mass Rhill 3.81807480e+03 !particle radius in AU -1.95422324e+07 4.27225532e+06 -1.15437134e+04 ! x y z -3.47390066e+02 -1.42742043e+03 -9.37392480e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill +Body495 1.07612435e+05 9.82215943e+03 ! particle number mass Rhill 7.27427657e+03 !particle radius in AU -8.32827018e+06 6.50246828e+06 1.07863935e+04 ! x y z -1.19572995e+03 -1.60254308e+03 1.23423582e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill +Body496 5.96462922e+05 1.86294653e+04 ! particle number mass Rhill 8.73601721e+03 !particle radius in AU -1.07074688e+07 2.34621575e+06 5.93641138e+04 ! x y z -4.22982902e+02 -1.94965020e+03 -1.96471998e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill +Body497 4.30903278e+05 2.02800538e+04 ! particle number mass Rhill 1.15512484e+04 !particle radius in AU 4.51979494e+06 1.22520862e+07 -1.38847489e+04 ! x y z -1.72593078e+03 6.48260700e+02 -7.40684356e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill +Body498 2.62273130e+05 1.74445137e+04 ! particle number mass Rhill 6.64309194e+03 !particle radius in AU 2.92552013e+06 -1.35219163e+07 -7.24169872e+04 ! x y z 1.71212479e+03 3.82693746e+02 1.13508153e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill +Body499 9.47984404e+05 2.08482098e+04 ! particle number mass Rhill 1.01949726e+04 !particle radius in AU 8.44057923e+05 -1.07213279e+07 5.42825433e+04 ! x y z 1.98524585e+03 1.59641509e+02 -2.17308444e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill +Body500 1.71702832e+06 3.33526891e+04 ! particle number mass Rhill 1.24273391e+04 !particle radius in AU -5.70564751e+06 -1.28061077e+07 7.89815585e+04 ! x y z 1.59615438e+03 -7.17950030e+02 -1.60355758e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill +Body501 2.72234422e+05 1.15106750e+04 ! particle number mass Rhill 9.91174230e+03 !particle radius in AU 6.42542385e+06 -6.26831304e+06 -8.52096344e+03 ! x y z 1.51047048e+03 1.57585291e+03 1.26849618e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill +Body502 1.23522546e+05 1.28533789e+04 ! particle number mass Rhill 7.61642321e+03 !particle radius in AU -1.26986567e+07 2.05439645e+06 4.23816010e+04 ! x y z -3.17593598e+02 -1.80836332e+03 1.37317505e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill +Body503 1.79476667e+05 1.06554012e+04 ! particle number mass Rhill 5.85403069e+03 !particle radius in AU 3.89723404e+06 -8.71939773e+06 -1.59555101e+04 ! x y z 1.92484978e+03 8.78585634e+02 3.76576757e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill +Body504 8.12308648e+05 1.77510996e+04 ! particle number mass Rhill 9.68335876e+03 !particle radius in AU 9.58403819e+06 -1.00242938e+06 4.12991678e+04 ! x y z 2.21630062e+02 2.09275016e+03 1.75085392e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill +Body505 9.52125066e+05 2.49408408e+04 ! particle number mass Rhill 1.02097944e+04 !particle radius in AU -2.44297176e+05 1.26729604e+07 2.03607439e+04 ! x y z -1.84680295e+03 -1.82730822e+01 -2.91252739e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill +Body506 4.64738988e+04 6.53761969e+03 ! particle number mass Rhill 5.49842989e+03 !particle radius in AU -8.96004039e+06 4.09560494e+05 -3.60456167e+04 ! x y z -1.02191608e+02 -2.20756190e+03 -2.24493109e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill +Body507 5.74538635e+05 1.72816119e+04 ! particle number mass Rhill 1.27138008e+04 !particle radius in AU -6.81541514e+06 -7.94063477e+06 -7.18748605e+04 ! x y z 1.54316120e+03 -1.31237150e+03 -1.15079245e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill +Body508 6.06350829e+05 2.46184244e+04 ! particle number mass Rhill 8.78402686e+03 !particle radius in AU -9.08822325e+06 1.13954530e+07 -2.08875223e+04 ! x y z -1.34302030e+03 -1.07504367e+03 -1.24686872e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill +Body509 1.36687504e+06 2.39325427e+04 ! particle number mass Rhill 1.15175985e+04 !particle radius in AU -1.06157252e+07 1.57779393e+06 -6.65867787e+03 ! x y z -2.87369206e+02 -1.99101003e+03 7.20690801e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill +Body510 6.62491872e+05 1.93909693e+04 ! particle number mass Rhill 9.04716508e+03 !particle radius in AU 7.17906044e+06 8.87425909e+06 -3.25181785e+04 ! x y z -1.49406264e+03 1.20724214e+03 6.21002078e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill +Body511 1.47316882e+05 1.36578017e+04 ! particle number mass Rhill 5.48112664e+03 !particle radius in AU -1.21003843e+06 -1.29422942e+07 -7.40239219e+04 ! x y z 1.81002624e+03 -1.79331834e+02 1.25932266e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill +Body512 1.70937828e+05 1.02401788e+04 ! particle number mass Rhill 8.48753771e+03 !particle radius in AU -6.99463389e+06 -6.47905900e+06 9.60433255e+04 ! x y z 1.43760545e+03 -1.52260892e+03 -8.56316812e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill +Body513 1.81406130e+06 3.13505650e+04 ! particle number mass Rhill 1.26571613e+04 !particle radius in AU 6.31211278e+06 1.15740500e+07 2.93359231e+04 ! x y z -1.56035950e+03 8.72608400e+02 2.02164700e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill +Body514 2.10541334e+04 8.90662069e+03 ! particle number mass Rhill 4.22293872e+03 !particle radius in AU -1.14209193e+07 -1.19005899e+07 4.72825184e+04 ! x y z 1.16096797e+03 -1.10215252e+03 -1.73463799e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill +Body515 2.17159803e+05 1.07749747e+04 ! particle number mass Rhill 9.19239764e+03 !particle radius in AU -1.91436849e+06 -8.75500915e+06 -5.63789360e+04 ! x y z 2.13513923e+03 -5.15505302e+02 8.14672797e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill +Body516 7.30928133e+04 7.84250334e+03 ! particle number mass Rhill 6.39431287e+03 !particle radius in AU -7.76033426e+06 5.83903373e+06 1.45914082e+04 ! x y z -1.24659220e+03 -1.65602207e+03 2.58792993e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill +Body517 9.83999051e+04 1.16580527e+04 ! particle number mass Rhill 7.06047440e+03 !particle radius in AU 6.04175168e+06 -1.13300829e+07 -2.21833258e+04 ! x y z 1.60126812e+03 8.64183750e+02 2.07897641e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill +Body518 5.97934335e+04 7.15900578e+03 ! particle number mass Rhill 5.98026121e+03 !particle radius in AU 7.56777600e+06 -5.38164192e+06 4.82260182e+04 ! x y z 1.23384783e+03 1.75131178e+03 1.39050720e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill +Body519 5.71894876e+04 8.55975767e+03 ! particle number mass Rhill 5.89215810e+03 !particle radius in AU 2.24109885e+06 -1.09795024e+07 -3.90720695e+03 ! x y z 1.91472479e+03 3.97948512e+02 1.96668988e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill +Body520 1.48754762e+06 2.05963996e+04 ! particle number mass Rhill 1.18470246e+04 !particle radius in AU -1.60346956e+06 8.94982575e+06 -4.55491048e+04 ! x y z -2.13610180e+03 -3.93853083e+02 6.45999458e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill +Body521 3.51821464e+05 2.32804021e+04 ! particle number mass Rhill 1.07963370e+04 !particle radius in AU 1.33407792e+07 -9.60353157e+06 -4.36975900e+04 ! x y z 9.42437149e+02 1.32281900e+03 -2.80741977e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill +Body522 7.65767425e+05 1.68127024e+04 ! particle number mass Rhill 9.49477387e+03 !particle radius in AU 5.43228414e+06 -7.41736135e+06 -2.66812088e+04 ! x y z 1.72722717e+03 1.31007512e+03 -7.34912008e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill +Body523 4.89668862e+04 9.49351088e+03 ! particle number mass Rhill 3.79681841e+03 !particle radius in AU 1.54005009e+06 1.28774959e+07 5.16246471e+04 ! x y z -1.81371335e+03 2.12824688e+02 -9.20646953e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill +Body524 1.25229074e+06 2.76881585e+04 ! particle number mass Rhill 1.11863238e+04 !particle radius in AU 1.67931493e+06 1.31306619e+07 -2.70431013e+03 ! x y z -1.76941688e+03 1.91845464e+02 5.05532665e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill +Body525 3.32931200e+05 1.90744628e+04 ! particle number mass Rhill 1.05995433e+04 !particle radius in AU -1.32214307e+07 4.59727104e+06 -3.96485583e+04 ! x y z -5.86090985e+02 -1.64093893e+03 -8.60481037e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill +Body526 1.39271951e+05 1.22980473e+04 ! particle number mass Rhill 7.92726804e+03 !particle radius in AU -1.18927692e+07 -9.15865717e+05 -4.39369369e+04 ! x y z 1.82263225e+02 -1.88987287e+03 9.03561914e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill +Body527 2.99878480e+05 1.71185236e+04 ! particle number mass Rhill 1.02364827e+04 !particle radius in AU -9.62033211e+06 8.56620033e+06 -2.00428889e+04 ! x y z -1.21101074e+03 -1.36584173e+03 3.97879960e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill +Body528 6.64110630e+04 1.57261442e+04 ! particle number mass Rhill 4.20273952e+03 !particle radius in AU 9.89301751e+06 1.68175777e+07 -1.13308431e+05 ! x y z -1.27501202e+03 7.61202373e+02 3.42051019e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill +Body529 5.96535091e+04 8.89858147e+03 ! particle number mass Rhill 5.97559270e+03 !particle radius in AU 5.37606728e+06 1.01483084e+07 -2.42832542e+04 ! x y z -1.69155568e+03 9.33567602e+02 8.03539638e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill +Body530 1.99075266e+05 1.02852963e+04 ! particle number mass Rhill 8.92979367e+03 !particle radius in AU 1.14205826e+06 -8.87516936e+06 2.93174632e+04 ! x y z 2.16370189e+03 2.71790476e+02 -6.44072560e-04 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill +Body531 1.87862294e+06 4.29417274e+04 ! particle number mass Rhill 1.28055687e+04 !particle radius in AU 1.43504952e+07 -1.05282252e+07 1.08842756e+04 ! x y z 8.96217918e+02 1.25350160e+03 -1.10361539e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill +Body532 2.46464658e+04 7.69853715e+03 ! particle number mass Rhill 4.45062026e+03 !particle radius in AU -1.23862731e+07 -4.56645846e+06 6.19786286e+04 ! x y z 6.35830463e+02 -1.69613094e+03 6.10556298e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill +Body533 1.21726161e+06 1.98509313e+04 ! particle number mass Rhill 1.10810345e+04 !particle radius in AU -9.06340320e+06 2.47989940e+06 5.29566882e+03 ! x y z -6.09939224e+02 -2.04449772e+03 -8.32106226e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill +Body534 1.71375734e+06 2.36594524e+04 ! particle number mass Rhill 1.24194426e+04 !particle radius in AU 4.49134220e+06 -8.88004412e+06 6.17280318e+04 ! x y z 1.84761935e+03 9.49659970e+02 -1.91054187e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill +Body535 1.17792587e+05 8.88177891e+03 ! particle number mass Rhill 7.49678363e+03 !particle radius in AU -8.88023220e+06 1.94417194e+06 -7.43854396e+03 ! x y z -4.59587086e+02 -2.12797895e+03 1.62261707e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill +Body536 1.47383712e+06 2.67711289e+04 ! particle number mass Rhill 1.18105148e+04 !particle radius in AU -6.23830061e+06 1.01163011e+07 8.19444776e+04 ! x y z -1.60793851e+03 -1.00726817e+03 7.79908055e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill +Body537 6.43756917e+05 3.31715734e+04 ! particle number mass Rhill 8.96106511e+03 !particle radius in AU 1.33415164e+07 1.42367071e+07 9.29022826e+04 ! x y z -1.09778034e+03 9.88101471e+02 9.22779390e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill +Body538 6.99959191e+04 7.79605421e+03 ! particle number mass Rhill 6.30269894e+03 !particle radius in AU 6.77890172e+06 -6.80689243e+06 -5.36873514e+04 ! x y z 1.47893463e+03 1.49784044e+03 1.58118524e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill +Body539 9.63466589e+05 1.73728715e+04 ! particle number mass Rhill 1.02501735e+04 !particle radius in AU 8.06725141e+06 -3.62262126e+06 -3.66507377e+04 ! x y z 8.67780530e+02 2.02709545e+03 1.28504792e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill +Body540 1.06796090e+06 2.10987598e+04 ! particle number mass Rhill 1.06080961e+04 !particle radius in AU -1.02130792e+07 -1.98178118e+06 -1.09127341e+03 ! x y z 3.87020460e+02 -1.99318523e+03 -1.70944891e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill +Body541 1.69193115e+05 1.74469576e+04 ! particle number mass Rhill 8.45856229e+03 !particle radius in AU -2.71890650e+06 -1.56230331e+07 9.11371828e+04 ! x y z 1.62029295e+03 -2.93846410e+02 -2.71565573e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill +Body542 4.08448966e+05 1.69427746e+04 ! particle number mass Rhill 7.70013366e+03 !particle radius in AU 4.47583128e+06 -1.06559052e+07 4.54196507e+04 ! x y z 1.76732893e+03 7.56289214e+02 -9.51753793e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill +Body543 4.21097966e+04 8.34723114e+03 ! particle number mass Rhill 5.32063382e+03 !particle radius in AU -2.17375021e+06 -1.18877181e+07 -8.95951928e+04 ! x y z 1.85620755e+03 -3.25350325e+02 -7.40810642e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill +Body544 4.35969753e+05 1.55004244e+04 ! particle number mass Rhill 7.86933046e+03 !particle radius in AU -1.01016093e+07 1.38884267e+06 9.80998719e+04 ! x y z -2.82476358e+02 -2.04196683e+03 -1.00530560e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill +Body545 1.74468920e+06 3.91496158e+04 ! particle number mass Rhill 1.24937177e+04 !particle radius in AU 1.39598489e+07 -8.85744354e+06 2.03839682e+05 ! x y z 8.43657382e+02 1.36375070e+03 -3.55497456e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill +Body546 1.53945922e+05 1.61343327e+04 ! particle number mass Rhill 5.56213757e+03 !particle radius in AU -1.43847009e+07 -4.33966476e+06 1.92096630e+04 ! x y z 4.81764822e+02 -1.62800637e+03 4.41101277e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill +Body547 2.88269639e+05 1.83429356e+04 ! particle number mass Rhill 6.85570252e+03 !particle radius in AU 1.40885725e+06 -1.39890777e+07 -6.21160422e+04 ! x y z 1.73532137e+03 1.58882387e+02 -4.19228752e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill +Body548 2.40639954e+05 1.17835112e+04 ! particle number mass Rhill 6.45517829e+03 !particle radius in AU -6.30237830e+06 -7.45548810e+06 1.19792411e+04 ! x y z 1.58465709e+03 -1.33550387e+03 2.64893502e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill +Body549 2.81080705e+05 2.68807908e+04 ! particle number mass Rhill 6.79823242e+03 !particle radius in AU 1.78118521e+07 -1.09119093e+07 2.70244768e+04 ! x y z 7.41554271e+02 1.21779793e+03 9.15237602e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill +Body550 7.67656205e+05 1.68827066e+04 ! particle number mass Rhill 9.50257381e+03 !particle radius in AU -2.89743663e+06 8.86128251e+06 -6.58120111e+04 ! x y z -2.02979747e+03 -6.82073189e+02 -2.28176534e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill +Body551 1.84065446e+05 1.04243205e+04 ! particle number mass Rhill 8.69947568e+03 !particle radius in AU 8.83702217e+06 -2.90376077e+06 7.27788768e+04 ! x y z 6.85075467e+02 2.02703778e+03 7.97245500e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill +Body552 4.34671660e+05 1.94276836e+04 ! particle number mass Rhill 7.86151243e+03 !particle radius in AU -1.21931564e+07 4.86524046e+06 -2.08324531e+04 ! x y z -6.82318390e+02 -1.65856508e+03 -6.74090912e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill +Body553 1.46171434e+05 1.10945190e+04 ! particle number mass Rhill 5.46688367e+03 !particle radius in AU -1.05680658e+07 -7.72400524e+05 -4.19566380e+03 ! x y z 1.61680595e+02 -2.00721546e+03 9.15915016e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill +Body554 6.46892370e+05 1.81986063e+04 ! particle number mass Rhill 8.97559000e+03 !particle radius in AU 4.91698619e+06 9.43759555e+06 8.61311530e+04 ! x y z -1.79363820e+03 8.94192612e+02 3.28487627e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill +Body555 8.66972170e+05 2.98836776e+04 ! particle number mass Rhill 9.89587154e+03 !particle radius in AU 5.50899609e+06 1.48985993e+07 2.75915152e+04 ! x y z -1.53604421e+03 5.70661142e+02 -8.63285634e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill +Body556 1.94853540e+06 2.93655044e+04 ! particle number mass Rhill 1.29624899e+04 !particle radius in AU 3.19801044e+06 -1.13772802e+07 7.80535196e+04 ! x y z 1.85228574e+03 4.55890151e+02 8.36932683e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill +Body557 3.43146591e+05 1.41106093e+04 ! particle number mass Rhill 1.07068623e+04 !particle radius in AU -2.15573271e+06 -1.00993578e+07 2.69595119e+04 ! x y z 1.97403251e+03 -4.33189618e+02 1.83241184e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill +Body558 6.08262401e+04 7.76105781e+03 ! particle number mass Rhill 6.01449701e+03 !particle radius in AU -9.90249159e+06 1.50849384e+06 7.56908853e+04 ! x y z -3.34511747e+02 -2.03461346e+03 1.09006280e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill +Body559 5.33911205e+05 1.50688239e+04 ! particle number mass Rhill 8.41928754e+03 !particle radius in AU -8.12226421e+06 -4.86915559e+06 1.48785398e+04 ! x y z 1.08601808e+03 -1.81594814e+03 -1.05069846e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill +Body560 3.36343620e+04 8.37603659e+03 ! particle number mass Rhill 4.93662404e+03 !particle radius in AU 1.04182881e+07 7.90957341e+06 -2.69933355e+04 ! x y z -1.12996754e+03 1.41480511e+03 -6.50919824e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill +Body561 5.78392305e+05 1.80846634e+04 ! particle number mass Rhill 8.64688797e+03 !particle radius in AU -8.48425655e+06 7.30611767e+06 -2.97358583e+04 ! x y z -1.27983291e+03 -1.45019242e+03 -1.41707765e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill +Body562 4.38625267e+05 1.60791218e+04 ! particle number mass Rhill 1.16198415e+04 !particle radius in AU -8.65184164e+06 6.24864145e+06 -3.92875079e+04 ! x y z -1.16032314e+03 -1.63406999e+03 1.01313500e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill +Body563 2.74034207e+05 1.29317245e+04 ! particle number mass Rhill 9.93353704e+03 !particle radius in AU 8.34883939e+06 5.63589901e+06 -3.07212153e+04 ! x y z -1.13165810e+03 1.72056724e+03 2.87270046e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill +Body564 1.14992402e+05 2.05068778e+04 ! particle number mass Rhill 7.43690165e+03 !particle radius in AU 9.21633433e+06 -1.93093666e+07 -2.54318164e+04 ! x y z 1.26419057e+03 6.27050448e+02 3.30035390e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill +Body565 4.05431060e+05 1.30553285e+04 ! particle number mass Rhill 7.68112210e+03 !particle radius in AU 3.80685718e+06 -7.94695887e+06 -6.90041243e+04 ! x y z 2.01235665e+03 9.27723235e+02 1.23111874e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill +Body566 4.60325019e+05 2.56439114e+04 ! particle number mass Rhill 1.18083853e+04 !particle radius in AU -1.32805505e+07 -9.89987589e+06 1.89561964e+05 ! x y z 9.51950860e+02 -1.30762258e+03 -3.09155476e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill +Body567 1.87989321e+05 1.07137061e+04 ! particle number mass Rhill 5.94515785e+03 !particle radius in AU 7.49508147e+05 9.39060182e+06 -2.98793685e+03 ! x y z -2.12842500e+03 1.60409656e+02 -2.35936034e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill +Body568 2.16431915e+05 1.10103187e+04 ! particle number mass Rhill 9.18211562e+03 !particle radius in AU 1.66945874e+06 -9.11271704e+06 -1.05228493e+04 ! x y z 2.11017159e+03 4.07672310e+02 4.86502364e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill +Body569 1.49318229e+05 1.04005379e+04 ! particle number mass Rhill 5.50583603e+03 !particle radius in AU -4.36738498e+06 -8.73103534e+06 3.44651531e+03 ! x y z 1.86828307e+03 -9.77585967e+02 3.81224965e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill +Body570 6.11004170e+04 1.82167732e+04 ! particle number mass Rhill 4.08758743e+03 !particle radius in AU -1.94040314e+07 1.29480928e+07 -6.30516410e+04 ! x y z -7.60734575e+02 -1.12192654e+03 2.15504297e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill +Body571 1.74760567e+06 2.27605806e+04 ! particle number mass Rhill 1.25006754e+04 !particle radius in AU -2.30041587e+06 -9.09389672e+06 2.95714152e+04 ! x y z 2.09036388e+03 -5.21147635e+02 -8.12618749e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill +Body572 2.53385422e+05 1.12224764e+04 ! particle number mass Rhill 6.56718935e+03 !particle radius in AU -8.45167174e+06 3.53866282e+06 8.15293748e+03 ! x y z -8.17977533e+02 -1.97338441e+03 3.10707851e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill +Body573 3.56711320e+05 1.72654191e+04 ! particle number mass Rhill 1.08461254e+04 !particle radius in AU -1.10837839e+05 -1.22760495e+07 9.98243029e+04 ! x y z 1.86849744e+03 1.94461008e+01 1.19094336e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill +Body574 1.71714492e+06 3.11539445e+04 ! particle number mass Rhill 1.24276204e+04 !particle radius in AU -2.16572849e+06 -1.29271292e+07 8.07671116e+04 ! x y z 1.79349978e+03 -2.38674951e+02 -1.98965270e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill +Body575 6.02542390e+05 1.49657344e+04 ! particle number mass Rhill 1.29170951e+04 !particle radius in AU -2.12394299e+06 8.55999084e+06 1.53741130e+04 ! x y z -2.16066071e+03 -5.04790442e+02 1.96131475e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill +Body576 1.94414111e+05 1.17556573e+04 ! particle number mass Rhill 8.85954838e+03 !particle radius in AU 1.01810115e+07 -3.37487969e+05 -2.68884911e+04 ! x y z 8.19073631e+01 2.05446062e+03 -7.35333556e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill +Body577 7.08349066e+05 1.99157790e+04 ! particle number mass Rhill 9.25127176e+03 !particle radius in AU -4.23808016e+06 1.06041798e+07 1.34318994e+05 ! x y z -1.79220969e+03 -7.00369186e+02 1.28815476e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill +Body578 1.81168126e+05 1.06805439e+04 ! particle number mass Rhill 5.87236346e+03 !particle radius in AU -7.46862356e+06 5.99931350e+06 -2.30141523e+03 ! x y z -1.36280521e+03 -1.60905358e+03 6.63931385e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill +Body579 3.61584621e+04 8.02944821e+03 ! particle number mass Rhill 5.05714772e+03 !particle radius in AU -1.11448733e+07 5.00947275e+06 -4.68801561e+04 ! x y z -7.74415285e+02 -1.70766691e+03 -3.61919201e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill +Body580 2.03415997e+05 1.20229466e+04 ! particle number mass Rhill 6.10352459e+03 !particle radius in AU -3.19024158e+06 9.81483389e+06 5.84486975e+04 ! x y z -1.93912156e+03 -6.23690422e+02 1.23117054e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill +Body581 1.40326198e+06 5.19405721e+04 ! particle number mass Rhill 1.16189063e+04 !particle radius in AU -2.24603747e+07 6.26030145e+06 -3.01506892e+04 ! x y z -3.65393394e+02 -1.30811994e+03 1.11405519e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill +Body582 1.03623455e+06 2.78342563e+04 ! particle number mass Rhill 1.05019921e+04 !particle radius in AU -1.12701774e+07 -7.80948644e+06 -6.84666678e+04 ! x y z 9.99713905e+02 -1.47048211e+03 2.44750306e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill +Body583 7.92234060e+04 8.27125360e+03 ! particle number mass Rhill 6.56830775e+03 !particle radius in AU -1.36712830e+06 9.67813820e+06 -6.74480903e+04 ! x y z -2.06604712e+03 -2.98384524e+02 -5.50167062e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill +Body584 1.51550857e+06 3.51961262e+04 ! particle number mass Rhill 1.19207925e+04 !particle radius in AU 7.73867408e+06 1.33759604e+07 3.56063208e+04 ! x y z -1.44506269e+03 8.28074701e+02 1.84054191e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill +Body585 5.49400267e+05 1.52237938e+04 ! particle number mass Rhill 8.49992876e+03 !particle radius in AU -7.77453358e+06 -5.02677399e+06 3.78389790e+04 ! x y z 1.16536090e+03 -1.82463232e+03 -7.04505898e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill +Body586 1.12395540e+05 9.88134833e+03 ! particle number mass Rhill 7.38049260e+03 !particle radius in AU 7.38262528e+06 7.34984552e+06 -2.24885801e+04 ! x y z -1.42099662e+03 1.43499436e+03 1.07378124e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill +Body587 1.14927250e+06 2.54087794e+04 ! particle number mass Rhill 1.08707623e+04 !particle radius in AU -1.19920742e+07 -2.80217215e+06 -5.59313271e+04 ! x y z 4.17941960e+02 -1.81181182e+03 1.45497492e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill +Body588 1.94869968e+05 1.38427149e+04 ! particle number mass Rhill 6.01682391e+03 !particle radius in AU -9.55988426e+06 -7.31862699e+06 -2.64957060e+04 ! x y z 1.16610080e+03 -1.48362062e+03 -6.94255903e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill +Body589 1.38090127e+05 1.95791379e+04 ! particle number mass Rhill 5.36421948e+03 !particle radius in AU 1.02276231e+07 -1.62862349e+07 -9.70147988e+04 ! x y z 1.26937242e+03 7.76347306e+02 4.03225256e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill +Body590 5.23014408e+04 6.86509893e+03 ! particle number mass Rhill 5.71926483e+03 !particle radius in AU -5.16420660e+06 -7.78596130e+06 4.36962776e+04 ! x y z 1.78489031e+03 -1.16625555e+03 -2.90708635e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill +Body591 1.97559266e+05 1.25161752e+04 ! particle number mass Rhill 8.90706847e+03 !particle radius in AU -7.45989489e+06 7.86823113e+06 2.30718801e+04 ! x y z -1.45305114e+03 -1.35662728e+03 1.14450554e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill +Body592 1.32884443e+06 2.77085745e+04 ! particle number mass Rhill 1.14097740e+04 !particle radius in AU -7.21533013e+06 1.04550999e+07 5.75058243e+04 ! x y z -1.49719620e+03 -1.06522065e+03 9.45819576e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill +Body593 9.09171415e+04 9.17387085e+03 ! particle number mass Rhill 6.87676601e+03 !particle radius in AU 6.25358173e+06 -8.48267668e+06 1.86642486e+04 ! x y z 1.59879201e+03 1.18862345e+03 -8.19507037e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill +Body594 3.68814962e+04 7.83261170e+03 ! particle number mass Rhill 5.09063352e+03 !particle radius in AU -7.19321718e+06 -9.25718484e+06 1.26289010e+05 ! x y z 1.51012765e+03 -1.19137905e+03 -2.08075301e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill +Body595 4.29012281e+05 1.53363892e+04 ! particle number mass Rhill 1.15343262e+04 !particle radius in AU 9.77355514e+06 -3.06014377e+06 -1.91679922e+04 ! x y z 6.16624498e+02 1.95214553e+03 8.76866120e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill +Body596 1.67151812e+06 2.61804288e+04 ! particle number mass Rhill 1.23165581e+04 !particle radius in AU 9.85520768e+06 5.11039151e+06 2.67592384e+04 ! x y z -9.36821649e+02 1.72971850e+03 9.58489099e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill +Body597 2.96497244e+05 2.95918505e+04 ! particle number mass Rhill 1.01978639e+04 !particle radius in AU 2.25000304e+07 2.97587658e+06 1.11207983e+05 ! x y z -2.07470373e+02 1.34869606e+03 9.35124053e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill +Body598 4.99711716e+04 8.09133863e+03 ! particle number mass Rhill 3.82259987e+03 !particle radius in AU 9.72912370e+06 4.89272799e+06 4.72049901e+04 ! x y z -8.59138858e+02 1.80693327e+03 1.59854908e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill +Body599 6.13445666e+05 3.80459797e+04 ! particle number mass Rhill 1.29945434e+04 !particle radius in AU 8.58212362e+06 2.09155798e+07 -8.24274997e+04 ! x y z -1.27328941e+03 5.22122914e+02 2.97251817e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill +Body600 3.65124112e+04 8.18474194e+03 ! particle number mass Rhill 5.07359536e+03 !particle radius in AU 1.25914809e+07 -1.54064226e+06 -2.42309046e+04 ! x y z 2.41941616e+02 1.80407714e+03 -4.95095821e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill +Body601 2.49679566e+05 1.13272687e+04 ! particle number mass Rhill 9.63008210e+03 !particle radius in AU -9.08598960e+06 5.01876430e+05 -5.56896042e+04 ! x y z -1.04300102e+02 -2.16453693e+03 -3.87670808e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill +Body602 2.98598310e+04 5.98525472e+03 ! particle number mass Rhill 4.74458362e+03 !particle radius in AU 8.60778725e+06 4.52935761e+06 2.36936302e+04 ! x y z -9.88264993e+02 1.85248346e+03 -3.75174148e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill +Body603 3.14009599e+04 5.61935630e+03 ! particle number mass Rhill 4.82484424e+03 !particle radius in AU -8.51705861e+06 -3.00987013e+06 -6.10335808e+04 ! x y z 7.24297619e+02 -2.04790563e+03 -9.17975560e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill +Body604 1.50689193e+06 4.63163678e+04 ! particle number mass Rhill 1.18981571e+04 !particle radius in AU -2.02348638e+07 -1.68672863e+06 -1.06729108e+05 ! x y z 1.27546784e+02 -1.44981480e+03 -2.13046543e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill +Body605 3.08427266e+04 8.13697460e+03 ! particle number mass Rhill 4.79608176e+03 !particle radius in AU 9.64800303e+06 8.51584872e+06 1.81571159e+04 ! x y z -1.21061246e+03 1.38578498e+03 -1.32836513e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill +Body606 1.05761949e+05 1.13464200e+04 ! particle number mass Rhill 4.90789744e+03 !particle radius in AU 9.13818695e+06 -7.70452976e+06 2.69452399e+04 ! x y z 1.22812984e+03 1.45658692e+03 -6.73843496e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill +Body607 6.83351496e+05 1.64381768e+04 ! particle number mass Rhill 9.14114041e+03 !particle radius in AU -1.09145671e+06 9.34973420e+06 5.18642883e+03 ! x y z -2.11998407e+03 -2.42766889e+02 -9.89092405e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill +Body608 1.58743711e+05 2.35809946e+04 ! particle number mass Rhill 8.28071491e+03 !particle radius in AU 1.92010196e+07 1.03149047e+07 5.09869779e+04 ! x y z -6.74338417e+02 1.23568504e+03 -2.88434162e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill +Body609 4.85097547e+05 1.47521599e+04 ! particle number mass Rhill 8.15446281e+03 !particle radius in AU 9.58051429e+06 -4.62318632e+05 6.35849025e+04 ! x y z 9.06335255e+01 2.09825906e+03 -7.35742647e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill +Body610 1.16601211e+06 2.73042222e+04 ! particle number mass Rhill 1.09232871e+04 !particle radius in AU -1.30847754e+07 -1.20838009e+05 2.79768532e+04 ! x y z 3.82034000e+01 -1.80937386e+03 2.83422576e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill +Body611 2.36220533e+05 1.51727636e+04 ! particle number mass Rhill 9.45383905e+03 !particle radius in AU -5.32926260e+06 1.08809045e+07 2.85451712e+04 ! x y z -1.71920333e+03 -8.10618635e+02 -1.48118539e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill +Body612 1.53212486e+05 1.16720318e+04 ! particle number mass Rhill 8.18339867e+03 !particle radius in AU 1.07932378e+07 -2.40071483e+06 1.38428017e+04 ! x y z 4.19588126e+02 1.91854962e+03 1.35266288e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill +Body613 2.15032649e+05 1.38289963e+04 ! particle number mass Rhill 9.16228488e+03 !particle radius in AU -6.86193518e+06 -9.36770363e+06 8.70674895e+04 ! x y z 1.55612467e+03 -1.13081122e+03 -1.76373653e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill +Body614 3.57192885e+05 1.39240117e+04 ! particle number mass Rhill 7.36353909e+03 !particle radius in AU 5.38169569e+06 -8.48107525e+06 -8.38982677e+03 ! x y z 1.73578647e+03 1.09143169e+03 9.09587252e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill +Body615 1.51298142e+05 9.39126242e+03 ! particle number mass Rhill 8.14917269e+03 !particle radius in AU 7.81574277e+06 4.66176951e+06 -2.35259182e+04 ! x y z -1.08169242e+03 1.85148012e+03 8.40529015e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill +Body616 1.65258517e+06 2.26178964e+04 ! particle number mass Rhill 1.22698790e+04 !particle radius in AU 6.77476212e+06 6.99394577e+06 -8.71906448e+03 ! x y z -1.48799386e+03 1.46547457e+03 -6.43335853e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill +Body617 9.43780075e+04 8.08500600e+03 ! particle number mass Rhill 4.72508108e+03 !particle radius in AU -2.14192792e+06 -8.68107380e+06 -3.97684760e+04 ! x y z 2.13766548e+03 -4.81639501e+02 9.54765001e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill +Body618 5.20613559e+04 7.11254070e+03 ! particle number mass Rhill 5.71050016e+03 !particle radius in AU 9.36808365e+06 1.90217107e+06 2.99198598e+04 ! x y z -4.46020774e+02 2.07539296e+03 -7.66300380e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill +Body619 3.53322004e+05 1.27856154e+04 ! particle number mass Rhill 7.33684298e+03 !particle radius in AU 7.27614119e+06 5.72024594e+06 2.49831464e+04 ! x y z -1.34304944e+03 1.66116310e+03 2.15485187e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill +Body620 3.01485598e+04 9.63815331e+03 ! particle number mass Rhill 4.75982712e+03 !particle radius in AU 9.58921336e+06 -1.24222677e+07 -1.97472656e+05 ! x y z 1.32022081e+03 9.87424842e+02 4.32249357e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill +Body621 1.15454217e+06 2.88150349e+04 ! particle number mass Rhill 1.08873520e+04 !particle radius in AU -7.88989019e+06 -1.13885470e+07 -2.56937402e+04 ! x y z 1.46586529e+03 -9.71985942e+02 -3.51396551e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill +Body622 1.78730679e+04 5.13980334e+03 ! particle number mass Rhill 3.99854533e+03 !particle radius in AU 3.87292376e+06 9.21006941e+06 -6.39624708e+04 ! x y z -1.89793804e+03 8.09142969e+02 -6.59781953e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill +Body623 1.77312636e+05 9.87874797e+03 ! particle number mass Rhill 5.83040726e+03 !particle radius in AU 7.50695786e+06 -4.65362052e+06 -7.10126403e+03 ! x y z 1.18139098e+03 1.86471888e+03 -3.95167658e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill +Body624 8.05498659e+04 1.29509945e+04 ! particle number mass Rhill 4.48202152e+03 !particle radius in AU -1.39144844e+07 5.81363011e+06 3.85998049e+04 ! x y z -6.70071502e+02 -1.54974548e+03 4.74922131e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill +Body625 1.59716194e+06 2.34638970e+04 ! particle number mass Rhill 1.21311502e+04 !particle radius in AU 9.87837438e+06 2.55551323e+06 -1.36596041e+03 ! x y z -4.90308025e+02 1.98176510e+03 -1.01037674e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill +Body626 6.72346518e+05 2.60337621e+04 ! particle number mass Rhill 9.09180370e+03 !particle radius in AU 1.45341700e+07 -4.27619608e+06 5.93941868e+04 ! x y z 4.77328962e+02 1.60335894e+03 -4.97370028e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill +Body627 1.41726204e+06 2.54448913e+04 ! particle number mass Rhill 1.16574183e+04 !particle radius in AU 2.05268573e+06 -1.13741606e+07 4.03903250e+04 ! x y z 1.88573928e+03 3.30474062e+02 -1.50298053e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill +Body628 1.10954319e+05 1.02376716e+04 ! particle number mass Rhill 7.34881070e+03 !particle radius in AU -1.02805752e+07 -3.59154998e+06 7.79568952e+04 ! x y z 6.27919253e+02 -1.86780226e+03 9.15877947e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill +Body629 8.01558993e+05 1.82236275e+04 ! particle number mass Rhill 9.64045416e+03 !particle radius in AU 1.00209373e+07 1.06957570e+06 -9.24601092e+04 ! x y z -1.95870916e+02 2.03366838e+03 -1.10087708e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill +Body630 1.75219955e+04 8.28328926e+03 ! particle number mass Rhill 3.97219150e+03 !particle radius in AU -1.39517485e+07 8.21883388e+06 7.67623281e+03 ! x y z -8.12327248e+02 -1.40338294e+03 4.18222867e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill +Body631 2.70985262e+05 1.55395340e+04 ! particle number mass Rhill 6.71584845e+03 !particle radius in AU 1.02605370e+07 -6.40538450e+06 2.46021664e+04 ! x y z 9.77968382e+02 1.60990669e+03 -4.31601474e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill +Body632 1.87758694e+05 1.26002769e+04 ! particle number mass Rhill 8.75727541e+03 !particle radius in AU 1.06053206e+07 3.44385915e+06 5.77152912e+04 ! x y z -5.52774107e+02 1.87621696e+03 -1.29609706e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill +Body633 1.91365423e+05 1.35546510e+04 ! particle number mass Rhill 5.98053661e+03 !particle radius in AU -9.64301945e+06 6.86746863e+06 -1.42533659e+05 ! x y z -1.09942559e+03 -1.55528445e+03 -9.72595405e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill +Body634 1.92615451e+06 3.61432544e+04 ! particle number mass Rhill 1.29126696e+04 !particle radius in AU 1.05754125e+06 -1.47420174e+07 -1.54880877e+04 ! x y z 1.69143054e+03 1.16386287e+02 -1.26829716e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill +Body635 1.14971495e+05 9.60186487e+03 ! particle number mass Rhill 5.04640834e+03 !particle radius in AU -3.03537890e+06 9.53552265e+06 9.73685659e+03 ! x y z -1.96823062e+03 -6.23463481e+02 -1.63952204e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill +Body636 8.70999495e+04 8.89007814e+03 ! particle number mass Rhill 4.60035801e+03 !particle radius in AU -9.98694456e+06 -1.23492362e+06 -1.80480653e+04 ! x y z 2.38207036e+02 -2.05532674e+03 1.79734911e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill +Body637 4.81902061e+05 1.55239091e+04 ! particle number mass Rhill 1.19900755e+04 !particle radius in AU -3.74835489e+06 9.22336598e+06 -1.11560816e+05 ! x y z -1.91843216e+03 -7.98271594e+02 2.02049490e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill +Body638 1.73811384e+06 2.38459745e+04 ! particle number mass Rhill 1.24780025e+04 !particle radius in AU -6.68794780e+06 -7.54430362e+06 8.73782978e+03 ! x y z 1.55324620e+03 -1.34364314e+03 -6.31744671e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill +Body639 1.76428878e+06 2.49234046e+04 ! particle number mass Rhill 1.25403278e+04 !particle radius in AU -1.03958383e+07 8.06724680e+05 2.41594570e+04 ! x y z -1.55899964e+02 -2.01914147e+03 9.33842265e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill +Body640 6.25956859e+04 8.38753569e+03 ! particle number mass Rhill 4.12066331e+03 !particle radius in AU 9.33960040e+06 5.20047646e+06 3.07184995e+03 ! x y z -9.59952400e+02 1.75350496e+03 -9.51510094e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill +Body641 1.32721741e+06 2.44443564e+04 ! particle number mass Rhill 1.14051155e+04 !particle radius in AU -4.55852771e+05 1.12982302e+07 1.97139798e+04 ! x y z -1.93821973e+03 -6.36299001e+01 1.52707202e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill +Body642 2.04032003e+05 1.11593688e+04 ! particle number mass Rhill 9.00330067e+03 !particle radius in AU -9.39243710e+06 -4.13852649e+05 -1.20016794e+05 ! x y z 7.29189904e+01 -2.15146169e+03 7.46416116e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill +Body643 8.59933873e+04 1.92500751e+04 ! particle number mass Rhill 6.75031451e+03 !particle radius in AU 1.55420118e+07 -1.56324574e+07 1.17450688e+05 ! x y z 9.80482478e+02 9.89380982e+02 -2.43164132e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill +Body644 4.18672946e+05 1.53732676e+04 ! particle number mass Rhill 1.14409114e+04 !particle radius in AU 1.02533186e+07 8.01360601e+05 -1.49055635e+04 ! x y z -1.71963144e+02 2.04211236e+03 -5.41798226e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill +Body645 3.97979113e+05 1.45162835e+04 ! particle number mass Rhill 7.63377033e+03 !particle radius in AU 1.42914142e+06 9.84981684e+06 2.93564167e+04 ! x y z -2.05268655e+03 3.05405042e+02 3.66863343e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill +Body646 3.58897606e+05 1.28959174e+04 ! particle number mass Rhill 7.37523479e+03 !particle radius in AU 8.46677243e+06 -3.56936745e+06 -1.01092855e+05 ! x y z 8.46329328e+02 1.98233396e+03 -1.20626919e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill +Body647 1.87305363e+05 1.22408175e+04 ! particle number mass Rhill 8.75022177e+03 !particle radius in AU -5.51541812e+06 -9.33328186e+06 -7.53076104e+04 ! x y z 1.69850130e+03 -1.02466912e+03 -1.16108091e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill +Body648 8.78353527e+05 1.98218840e+04 ! particle number mass Rhill 9.93898678e+03 !particle radius in AU 7.91261034e+06 6.82977302e+06 4.78744592e+04 ! x y z -1.31937664e+03 1.53446068e+03 9.71586209e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill +Body649 1.08320847e+06 2.42668498e+04 ! particle number mass Rhill 1.06583427e+04 !particle radius in AU 9.51054870e+06 7.22147752e+06 -1.16155344e+05 ! x y z -1.13247642e+03 1.51634128e+03 7.95619932e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill +Body650 1.35270154e+05 1.12325034e+04 ! particle number mass Rhill 7.85060242e+03 !particle radius in AU 7.56958002e+06 8.18907830e+06 2.90934189e+04 ! x y z -1.41713137e+03 1.33985142e+03 -1.12168107e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill +Body651 2.09089114e+05 1.17143131e+04 ! particle number mass Rhill 6.15974600e+03 !particle radius in AU -6.13341164e+06 7.98589804e+06 -2.27618169e+04 ! x y z -1.62649363e+03 -1.24985675e+03 2.06508812e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill +Body652 1.29236474e+05 1.13728325e+04 ! particle number mass Rhill 5.24703584e+03 !particle radius in AU 6.47073981e+06 -9.41271204e+06 -2.22310124e+04 ! x y z 1.59958848e+03 1.08093374e+03 -3.51035905e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill +Body653 4.13756669e+04 7.58921833e+03 ! particle number mass Rhill 5.28953293e+03 !particle radius in AU 7.87952728e+06 -7.74021482e+06 2.62244560e+04 ! x y z 1.39190993e+03 1.39669667e+03 7.19439783e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill +Body654 5.94352115e+05 1.68404426e+04 ! particle number mass Rhill 8.72569980e+03 !particle radius in AU -7.78608816e+06 6.02791398e+06 3.71436614e+04 ! x y z -1.25856718e+03 -1.69668386e+03 -1.29605210e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill +Body655 1.52103203e+05 1.25614339e+04 ! particle number mass Rhill 5.53985567e+03 !particle radius in AU -6.32210122e+06 -1.01415155e+07 4.88655736e+04 ! x y z 1.63018229e+03 -9.50923090e+02 9.77870783e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill +Body656 2.64701944e+04 5.32014088e+03 ! particle number mass Rhill 4.55779408e+03 !particle radius in AU -6.23576444e+06 6.51367852e+06 -3.41989237e+04 ! x y z -1.58628947e+03 -1.49318367e+03 1.23405417e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill +Body657 1.19869986e+06 2.89826147e+04 ! particle number mass Rhill 1.10244216e+04 !particle radius in AU -1.35500086e+07 -2.26040006e+06 1.32350391e+05 ! x y z 2.64719358e+02 -1.74789986e+03 -5.31947479e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill +Body658 5.10809049e+05 2.07577403e+04 ! particle number mass Rhill 1.22251778e+04 !particle radius in AU 5.77929553e+06 -1.19535178e+07 -7.82666736e+04 ! x y z 1.59619208e+03 7.97360418e+02 -1.29583152e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill +Body659 1.04888884e+05 1.56381634e+04 ! particle number mass Rhill 4.89435521e+03 !particle radius in AU -8.33458476e+06 1.42735479e+07 -3.35627654e+04 ! x y z -1.40045628e+03 -8.13740040e+02 1.03574303e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill +Body660 4.01644782e+05 1.36548342e+04 ! particle number mass Rhill 1.12836524e+04 !particle radius in AU -1.47864055e+06 -9.12632464e+06 1.03294618e+05 ! x y z 2.12785802e+03 -3.89541043e+02 1.51865579e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill +Body661 4.19477357e+05 1.59792919e+04 ! particle number mass Rhill 1.14482340e+04 !particle radius in AU 5.45407329e+06 9.28416293e+06 -1.51509372e+04 ! x y z -1.71334604e+03 1.02205340e+03 -7.65932607e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill +Body662 1.36644703e+06 3.38563695e+04 ! particle number mass Rhill 1.15163962e+04 !particle radius in AU -1.39013045e+07 6.50213463e+06 -1.39734670e+05 ! x y z -7.22290359e+02 -1.50945570e+03 -8.90498950e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill +Body663 1.87180624e+06 3.65317510e+04 ! particle number mass Rhill 1.27900613e+04 !particle radius in AU -9.89641528e+06 -1.11416999e+07 3.81985165e+04 ! x y z 1.26154170e+03 -1.13757778e+03 1.92574173e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill +Body664 4.70045782e+04 8.19622142e+03 ! particle number mass Rhill 3.74540728e+03 !particle radius in AU -3.16815028e+06 1.11329600e+07 6.51690516e+03 ! x y z -1.85087911e+03 -4.88202334e+02 -1.01794725e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill +Body665 4.61420620e+04 7.68428347e+03 ! particle number mass Rhill 3.72235677e+03 !particle radius in AU 1.00049376e+07 4.66630545e+06 -9.44413909e+04 ! x y z -7.94024833e+02 1.77983677e+03 -9.21818189e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill +Body666 4.97025493e+04 1.27990672e+04 ! particle number mass Rhill 3.81573804e+03 !particle radius in AU -1.63493537e+07 6.57692006e+06 6.46813001e+04 ! x y z -5.79515939e+02 -1.44477767e+03 3.27352582e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill +Body667 3.58378458e+05 2.51948596e+04 ! particle number mass Rhill 7.37167696e+03 !particle radius in AU 1.18807783e+07 1.34251951e+07 1.86898768e+05 ! x y z -1.17463975e+03 1.00294171e+03 -4.22564791e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill +Body668 6.54992501e+05 1.99174163e+04 ! particle number mass Rhill 9.01289765e+03 !particle radius in AU 1.11171931e+07 2.90403753e+06 -9.01017188e+04 ! x y z -4.88090453e+02 1.87530119e+03 -9.57682232e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill +Body669 2.59291252e+04 5.76238650e+03 ! particle number mass Rhill 4.52652522e+03 !particle radius in AU 9.73106602e+06 3.61005057e+04 5.94605185e+04 ! x y z -7.45471281e+01 2.10678631e+03 -2.14191842e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill +Body670 4.44029167e+05 1.60304187e+04 ! particle number mass Rhill 1.16673660e+04 !particle radius in AU -2.74202504e+06 -1.01140650e+07 -7.39918641e+04 ! x y z 1.96547738e+03 -5.21963358e+02 1.77687487e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill +Body671 1.56229802e+06 2.17388544e+04 ! particle number mass Rhill 1.20422311e+04 !particle radius in AU 8.00394990e+06 5.03858815e+06 -4.02327990e+04 ! x y z -1.10710067e+03 1.81715883e+03 -6.62734475e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill +Body672 3.13410612e+04 6.63457360e+03 ! particle number mass Rhill 4.82177442e+03 !particle radius in AU 5.34986811e+06 9.22950468e+06 4.90186732e+04 ! x y z -1.74088881e+03 9.82932786e+02 -1.91216218e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill +Body673 1.14711656e+06 2.11708889e+04 ! particle number mass Rhill 1.08639605e+04 !particle radius in AU -8.64795237e+06 5.41831010e+06 1.55017414e+04 ! x y z -1.07745389e+03 -1.74276883e+03 -5.97570489e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill +Body674 1.33569056e+06 2.47878891e+04 ! particle number mass Rhill 1.14293347e+04 !particle radius in AU -1.11663224e+07 -4.36971602e+05 9.93397534e+04 ! x y z 6.60642469e+01 -1.97245979e+03 1.63719711e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill +Body675 5.22768408e+05 1.76798501e+04 ! particle number mass Rhill 1.23198504e+04 !particle radius in AU -8.94315217e+06 -6.59985744e+06 1.41574538e+04 ! x y z 1.12488382e+03 -1.60471763e+03 9.42200485e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill +Body676 9.22658485e+05 3.79266184e+04 ! particle number mass Rhill 1.01033638e+04 !particle radius in AU 1.92430034e+07 -3.89888242e+06 -5.57809830e+04 ! x y z 2.98708757e+02 1.44758503e+03 -4.72165311e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill +Body677 5.75996691e+05 1.70233269e+04 ! particle number mass Rhill 1.27245467e+04 !particle radius in AU 8.73120403e+06 5.22305398e+06 7.59670115e+04 ! x y z -1.07719201e+03 1.76393373e+03 -6.61792923e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill +Body678 5.71947858e+05 1.96600395e+04 ! particle number mass Rhill 1.26946618e+04 !particle radius in AU 1.09108942e+07 -4.65832942e+06 -4.02366251e+03 ! x y z 7.47562985e+02 1.75464824e+03 8.16488922e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill +Body679 5.28161894e+05 1.94274851e+04 ! particle number mass Rhill 8.38895796e+03 !particle radius in AU 5.82034293e+06 1.07112512e+07 7.55785697e+03 ! x y z -1.63892001e+03 9.00112405e+02 -1.94858021e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill +Body680 8.20834071e+05 2.14712890e+04 ! particle number mass Rhill 9.71711751e+03 !particle radius in AU 6.68559809e+06 9.37557356e+06 -1.92332279e+03 ! x y z -1.58295492e+03 1.11037420e+03 1.83307218e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill +Body681 1.08447117e+06 2.11115029e+04 ! particle number mass Rhill 1.06624826e+04 !particle radius in AU -3.28943607e+06 9.87837716e+06 6.05814516e+04 ! x y z -1.92629942e+03 -6.22180329e+02 4.50728559e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill +Body682 2.23235040e+05 1.56024415e+04 ! particle number mass Rhill 9.27733226e+03 !particle radius in AU -6.01449513e+06 1.14226051e+07 3.09092202e+04 ! x y z -1.62789379e+03 -8.28450934e+02 6.54251208e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill +Body683 1.30254310e+06 3.24724800e+04 ! particle number mass Rhill 1.13339954e+04 !particle radius in AU 1.46501935e+07 3.52597046e+06 -1.53479325e+05 ! x y z -3.94464542e+02 1.63555361e+03 -6.95224479e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill +Body684 1.95412793e+06 2.31733397e+04 ! particle number mass Rhill 1.29748793e+04 !particle radius in AU 7.30587232e+06 5.82342150e+06 -1.66262680e+04 ! x y z -1.33758368e+03 1.67374780e+03 1.03808342e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill +Body685 1.68178718e+05 1.50274136e+04 ! particle number mass Rhill 5.72852320e+03 !particle radius in AU -8.28665070e+06 -1.08630233e+07 1.59771667e+04 ! x y z 1.42279548e+03 -1.06221837e+03 -1.00287654e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill +Body686 1.56736892e+06 2.06563247e+04 ! particle number mass Rhill 1.20552459e+04 !particle radius in AU -8.85367709e+06 1.92824073e+06 -5.71899980e+04 ! x y z -4.56904898e+02 -2.11490226e+03 1.50573635e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill +Body687 1.67530420e+06 4.40637058e+04 ! particle number mass Rhill 1.23258503e+04 !particle radius in AU -6.98192323e+06 -1.72685946e+07 7.38110386e+04 ! x y z 1.40350544e+03 -5.84590529e+02 -9.01131651e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill +Body688 6.48230629e+04 1.15040206e+04 ! particle number mass Rhill 6.14344779e+03 !particle radius in AU 1.43686835e+07 2.23609646e+06 2.55670087e+04 ! x y z -2.46269150e+02 1.69322706e+03 -3.07491540e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill +Body689 1.18006420e+05 1.31163742e+04 ! particle number mass Rhill 7.50131728e+03 !particle radius in AU 7.08335501e+06 1.12432588e+07 -7.04507229e+04 ! x y z -1.52929946e+03 9.66536263e+02 -2.79918979e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill +Body690 5.89726347e+05 1.92317821e+04 ! particle number mass Rhill 8.70300381e+03 !particle radius in AU -4.60069395e+06 1.05653500e+07 1.04296802e+05 ! x y z -1.76684768e+03 -7.81938520e+02 -2.29915803e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill +Body691 1.66067349e+05 9.76086023e+03 ! particle number mass Rhill 8.40614880e+03 !particle radius in AU 8.19262513e+06 -3.58191579e+06 -3.30652024e+04 ! x y z 8.70670545e+02 2.01088754e+03 -5.27792880e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill +Body692 1.66578274e+06 2.28512672e+04 ! particle number mass Rhill 1.23024549e+04 !particle radius in AU 3.89494213e+06 9.08725205e+06 -2.39743102e+04 ! x y z -1.90805368e+03 7.88330663e+02 -9.72060594e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill +Body693 2.75553436e+05 1.29675108e+04 ! particle number mass Rhill 6.75337616e+03 !particle radius in AU 2.21339346e+06 9.86538825e+06 -8.87149741e+04 ! x y z -2.00534067e+03 4.38594263e+02 1.01837964e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill +Body694 1.58042369e+06 2.97786830e+04 ! particle number mass Rhill 1.20886232e+04 !particle radius in AU 4.10968486e+06 1.23907663e+07 5.33325146e+04 ! x y z -1.71807002e+03 5.39202987e+02 -6.19076268e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill +Body695 1.17439408e+06 2.25449191e+04 ! particle number mass Rhill 1.09493990e+04 !particle radius in AU 1.04073429e+07 2.67129136e+06 9.54333931e+04 ! x y z -5.09495924e+02 1.93427487e+03 8.54877840e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill +Body696 1.75679624e+04 5.32794441e+03 ! particle number mass Rhill 3.97566200e+03 !particle radius in AU -4.09255175e+06 -9.53753075e+06 -7.50959611e+04 ! x y z 1.86269642e+03 -8.02231358e+02 -1.43161769e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill +Body697 8.69972966e+04 9.34087903e+03 ! particle number mass Rhill 4.59855003e+03 !particle radius in AU 4.36723976e+06 -9.66553779e+06 -1.64558916e+04 ! x y z 1.84776304e+03 7.98021641e+02 5.78355557e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill +Body698 7.00972644e+05 1.56666319e+04 ! particle number mass Rhill 9.21904680e+03 !particle radius in AU 8.53951718e+06 -2.54525107e+06 -7.04047773e+04 ! x y z 6.28921216e+02 2.09901050e+03 1.15726955e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill +Body699 1.85068625e+05 1.06514155e+04 ! particle number mass Rhill 8.71525146e+03 !particle radius in AU 7.32788955e+06 -5.94137181e+06 -9.04304047e+04 ! x y z 1.34115379e+03 1.65561581e+03 7.08036612e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill +Body700 1.64555559e+06 2.75816878e+04 ! particle number mass Rhill 1.22524569e+04 !particle radius in AU 6.71737923e+06 9.71600170e+06 5.06660922e+04 ! x y z -1.56559808e+03 1.08107605e+03 -6.49532539e-03 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill +Body701 4.44681643e+04 6.91447687e+03 ! particle number mass Rhill 5.41816288e+03 !particle radius in AU -7.03605741e+06 6.85389332e+06 -2.57563829e+04 ! x y z -1.44734013e+03 -1.50933987e+03 1.28526631e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill +Body702 2.37900687e+05 2.57634462e+04 ! particle number mass Rhill 6.43059110e+03 !particle radius in AU 1.83405474e+07 1.00792626e+07 -9.20229382e+04 ! x y z -7.18799940e+02 1.23921438e+03 2.48945179e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill +Body703 4.03986391e+05 2.67988920e+04 ! particle number mass Rhill 7.67198789e+03 !particle radius in AU 5.23940562e+06 1.75022888e+07 -5.98430417e+04 ! x y z -1.46565915e+03 4.46482377e+02 2.11785409e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill +Body704 2.27436221e+05 2.00836512e+04 ! particle number mass Rhill 9.33516932e+03 !particle radius in AU 1.19175118e+07 -1.16543017e+07 5.30530426e+04 ! x y z 1.10958275e+03 1.15270442e+03 5.72450113e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill +Body705 1.34616193e+05 9.58458254e+03 ! particle number mass Rhill 7.83793078e+03 !particle radius in AU -8.96838687e+06 2.63897043e+06 -2.17897557e+04 ! x y z -6.07622874e+02 -2.06310065e+03 -4.59651947e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill +Body706 8.29093112e+04 7.90970502e+03 ! particle number mass Rhill 6.66863210e+03 !particle radius in AU -6.04898231e+06 -6.86358884e+06 5.57406610e+04 ! x y z 1.61956515e+03 -1.43598669e+03 -4.59300568e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill +Body707 4.94658353e+05 2.13714758e+04 ! particle number mass Rhill 1.20949508e+04 !particle radius in AU 7.90216623e+06 -1.09814809e+07 5.19189450e+04 ! x y z 1.45343692e+03 1.03872925e+03 -2.28298311e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill +Body708 5.59751529e+05 2.13961827e+04 ! particle number mass Rhill 1.26037782e+04 !particle radius in AU 9.57669296e+05 -1.30387879e+07 7.61951879e+04 ! x y z 1.80738232e+03 1.29379874e+02 -1.14266147e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill +Body709 2.32161522e+05 1.09798583e+04 ! particle number mass Rhill 9.39937703e+03 !particle radius in AU -2.70230310e+06 8.62076168e+06 -2.22406079e+04 ! x y z -2.07446913e+03 -6.54424485e+02 -1.11116533e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill +Body710 8.51578135e+05 3.19875457e+04 ! particle number mass Rhill 9.83695076e+03 !particle radius in AU -3.80463073e+06 -1.65753622e+07 1.47762416e+04 ! x y z 1.54780534e+03 -3.56129540e+02 4.67798248e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill +Body711 5.54965655e+05 3.39543973e+04 ! particle number mass Rhill 1.25677546e+04 !particle radius in AU 1.97818140e+07 7.24503831e+06 4.34973562e+04 ! x y z -5.06413028e+02 1.32512350e+03 5.73956860e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill +Body712 8.92177097e+04 1.22056341e+04 ! particle number mass Rhill 4.63734443e+03 !particle radius in AU -2.79050068e+06 -1.34910639e+07 4.33089266e+04 ! x y z 1.72889764e+03 -3.49089932e+02 -1.94775120e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill +Body713 3.32358618e+05 2.30395556e+04 ! particle number mass Rhill 1.05934634e+04 !particle radius in AU 1.07844804e+07 1.29386712e+07 2.64893081e+04 ! x y z -1.21296556e+03 1.03104861e+03 -8.93637679e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill +Body714 4.15254441e+05 2.22015490e+04 ! particle number mass Rhill 7.74266422e+03 !particle radius in AU -1.47784670e+07 -2.60738447e+06 1.11630430e+05 ! x y z 3.23911460e+02 -1.65880207e+03 4.54571842e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill +Body715 1.73496502e+04 6.81252754e+03 ! particle number mass Rhill 3.95912515e+03 !particle radius in AU 5.07682372e+05 -1.30372405e+07 -1.85229557e+04 ! x y z 1.82615720e+03 7.82099311e+01 -4.18927265e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill +Body716 3.20070305e+05 1.71800786e+04 ! particle number mass Rhill 7.09905909e+03 !particle radius in AU -1.18244362e+07 -4.31687046e+06 -7.18542331e+04 ! x y z 6.12658121e+02 -1.74672302e+03 1.21397025e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill +Body717 2.16371552e+04 4.94621352e+03 ! particle number mass Rhill 4.26156427e+03 !particle radius in AU -3.54824820e+06 -8.30536307e+06 -8.90981624e+03 ! x y z 1.97998336e+03 -8.85057403e+02 -2.11344381e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill +Body718 3.59986321e+05 1.29702906e+04 ! particle number mass Rhill 1.08792174e+04 !particle radius in AU 1.62346436e+06 -8.92811589e+06 -3.60195557e+03 ! x y z 2.15086991e+03 3.98636159e+02 2.48432648e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill +Body719 1.81690903e+05 1.91798357e+04 ! particle number mass Rhill 5.87800644e+03 !particle radius in AU -1.15733556e+07 -1.25115260e+07 1.46624511e+04 ! x y z 1.15579598e+03 -1.08828537e+03 -2.12261933e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill +Body720 6.36173833e+04 8.62559658e+03 ! particle number mass Rhill 4.14296182e+03 !particle radius in AU -1.08417724e+07 1.69081263e+06 7.24119490e+04 ! x y z -3.09034576e+02 -1.94519167e+03 -3.85658993e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill +Body721 9.85820129e+04 1.07326421e+04 ! particle number mass Rhill 4.79422292e+03 !particle radius in AU 3.49544878e+05 1.19517692e+07 2.11344945e+04 ! x y z -1.87363529e+03 3.53402969e+01 5.71853498e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill +Body722 8.86166379e+05 1.88205307e+04 ! particle number mass Rhill 9.96836855e+03 !particle radius in AU -6.32504194e+06 7.74988563e+06 -3.04663654e+04 ! x y z -1.60640404e+03 -1.28494821e+03 3.03961828e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill +Body723 5.42657230e+05 3.02219608e+04 ! particle number mass Rhill 8.46501102e+03 !particle radius in AU -1.24177769e+07 -1.38486640e+07 -1.01520582e+04 ! x y z 1.15690921e+03 -9.88251041e+02 4.69156127e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill +Body724 1.59565082e+06 2.53217734e+04 ! particle number mass Rhill 1.21273232e+04 !particle radius in AU 1.03771542e+07 -3.70291911e+06 1.08877147e+04 ! x y z 6.25781397e+02 1.86199758e+03 -8.89718339e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill +Body725 3.81576526e+04 6.36454510e+03 ! particle number mass Rhill 5.14868362e+03 !particle radius in AU -4.66823976e+06 -8.26435407e+06 2.26583539e+04 ! x y z 1.84983887e+03 -1.05552707e+03 1.56706480e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill +Body726 2.64710080e+04 5.28483057e+03 ! particle number mass Rhill 4.55784078e+03 !particle radius in AU 4.62468583e+06 7.54223542e+06 -1.61944374e+04 ! x y z -1.87648989e+03 1.17295601e+03 -5.20044045e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill +Body727 1.71022032e+06 2.13948145e+04 ! particle number mass Rhill 1.24108926e+04 !particle radius in AU -8.12608230e+06 -4.37306608e+06 -9.62736144e+03 ! x y z 9.87984575e+02 -1.88769371e+03 1.06882012e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill +Body728 7.56089690e+05 4.18623276e+04 ! particle number mass Rhill 9.45460600e+03 !particle radius in AU -2.34951111e+05 2.32053308e+07 -5.22036528e+04 ! x y z -1.35813181e+03 9.03958337e+00 -3.15567273e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill +Body729 2.60550722e+05 1.37320616e+04 ! particle number mass Rhill 9.76786728e+03 !particle radius in AU -6.52967648e+06 8.82305239e+06 -1.26732573e+04 ! x y z -1.57282686e+03 -1.17622288e+03 1.39580799e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill +Body730 3.33261162e+05 1.31329711e+04 ! particle number mass Rhill 1.06030438e+04 !particle radius in AU 1.77913234e+06 9.53045041e+06 3.10075017e+04 ! x y z -2.05302630e+03 3.75004563e+02 1.58931971e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill +Body731 5.49460357e+05 1.66040779e+04 ! particle number mass Rhill 1.25260587e+04 !particle radius in AU 3.58717818e+06 9.36647195e+06 -1.97615013e+04 ! x y z -1.96178925e+03 7.11373199e+02 -1.26706515e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill +Body732 4.50004217e+05 2.30855383e+04 ! particle number mass Rhill 7.95288174e+03 !particle radius in AU -2.59234296e+06 -1.50157233e+07 4.00646737e+04 ! x y z 1.65438833e+03 -2.60173941e+02 1.23164306e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill +Body733 3.30247748e+05 1.24337133e+04 ! particle number mass Rhill 7.17351953e+03 !particle radius in AU 9.06239327e+06 9.91334627e+05 -4.75445475e+03 ! x y z -2.74588769e+02 2.14560267e+03 -4.58665348e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill +Body734 6.14206894e+05 1.88121660e+04 ! particle number mass Rhill 1.29999162e+04 !particle radius in AU -1.32275910e+06 1.11815578e+07 -3.52932928e+04 ! x y z -1.92926562e+03 -2.26736828e+02 1.12692641e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill +Body735 9.59808281e+05 2.28332821e+04 ! particle number mass Rhill 1.02371836e+04 !particle radius in AU -1.18507495e+07 5.08791326e+05 -4.16400253e+03 ! x y z -1.21704217e+02 -1.88175671e+03 1.06233149e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill +Body736 1.34519144e+06 2.13695367e+04 ! particle number mass Rhill 1.14563699e+04 !particle radius in AU 9.66851157e+06 -1.73226908e+06 -1.69082214e+04 ! x y z 3.88627413e+02 2.04608590e+03 -8.98008156e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill +Body737 5.80790318e+05 1.56482626e+04 ! particle number mass Rhill 8.65882148e+03 !particle radius in AU -2.00783480e+06 -9.30718645e+06 -7.65374580e+04 ! x y z 2.06366212e+03 -4.61769702e+02 1.50556810e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill +Body738 6.02079310e+05 2.30422564e+04 ! particle number mass Rhill 1.29137852e+04 !particle radius in AU 5.63016627e+05 1.37971202e+07 -5.96323274e+04 ! x y z -1.75809500e+03 5.38503245e+01 5.31257797e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill +Body739 5.42061151e+05 1.48525518e+04 ! particle number mass Rhill 1.24695778e+04 !particle radius in AU 9.16922325e+06 -9.63000174e+05 -3.41255650e+02 ! x y z 2.26283177e+02 2.14046849e+03 -4.83048073e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill +Body740 2.78318107e+04 5.46611848e+03 ! particle number mass Rhill 4.63464147e+03 !particle radius in AU -8.86805151e+06 1.17556708e+06 5.29953219e+04 ! x y z -2.96347767e+02 -2.18707052e+03 -3.03941376e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill +Body741 6.59733293e+05 1.67907799e+04 ! particle number mass Rhill 9.03459031e+03 !particle radius in AU 9.02199722e+06 -3.39632005e+06 -7.08544393e+04 ! x y z 7.55874214e+02 1.97860482e+03 5.10133054e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill +Body742 2.80747909e+05 1.40507857e+04 ! particle number mass Rhill 6.79554835e+03 !particle radius in AU -3.33406678e+06 -1.03746123e+07 -4.13492713e+04 ! x y z 1.88884845e+03 -5.81374899e+02 2.44002419e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill +Body743 2.28483670e+04 5.06103373e+03 ! particle number mass Rhill 4.33964341e+03 !particle radius in AU 8.47272017e+06 -3.29574857e+06 4.59089313e+04 ! x y z 8.07908043e+02 2.00285924e+03 2.30278431e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill +Body744 9.46503858e+04 1.78360446e+04 ! particle number mass Rhill 6.96963100e+03 !particle radius in AU -1.10174017e+07 -1.65843431e+07 -7.81778692e+04 ! x y z 1.22711770e+03 -7.92668746e+02 1.28964786e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill +Body745 3.24229460e+04 1.28254788e+04 ! particle number mass Rhill 4.87663009e+03 !particle radius in AU -6.99704994e+06 -1.88546711e+07 -8.81519961e+04 ! x y z 1.37622550e+03 -5.05609550e+02 1.32065962e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill +Body746 6.21305241e+05 1.84865539e+04 ! particle number mass Rhill 8.85565460e+03 !particle radius in AU 3.37171440e+06 -1.03724491e+07 -2.05908462e+04 ! x y z 1.89249257e+03 5.96290076e+02 -1.16901986e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill +Body747 8.17269222e+05 1.75757835e+04 ! particle number mass Rhill 9.70303009e+03 !particle radius in AU 8.68817648e+05 -9.37137391e+06 -9.78603362e+04 ! x y z 2.13443213e+03 1.77136355e+02 -1.05898656e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill +Body748 2.98673667e+05 1.25389375e+04 ! particle number mass Rhill 1.02227553e+04 !particle radius in AU -8.20639456e+06 4.88393438e+06 3.93769452e+04 ! x y z -1.09602043e+03 -1.80139112e+03 -5.09189684e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill +Body749 4.77953094e+05 2.64495594e+04 ! particle number mass Rhill 1.19572346e+04 !particle radius in AU -2.98729202e+06 -1.69982812e+07 -1.00361471e+02 ! x y z 1.54074333e+03 -2.84642833e+02 -7.12483576e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill +Body750 1.21345497e+06 4.02215962e+04 ! particle number mass Rhill 1.10694715e+04 !particle radius in AU -1.87997669e+07 -2.87235850e+06 6.06981762e+04 ! x y z 2.30253048e+02 -1.48355775e+03 -3.20628055e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill +Body751 1.43803514e+06 3.52381307e+04 ! particle number mass Rhill 1.17140974e+04 !particle radius in AU -1.67195966e+06 1.53840879e+07 1.17823799e+05 ! x y z -1.66924292e+03 -1.76106009e+02 2.19585908e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill +Body752 1.81470570e+06 2.16051568e+04 ! particle number mass Rhill 1.26586599e+04 !particle radius in AU 7.45254418e+06 4.82823148e+06 -5.06675552e+03 ! x y z -1.22839592e+03 1.82946634e+03 -1.27029622e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill +Body753 3.06193303e+05 1.20424743e+04 ! particle number mass Rhill 6.99494374e+03 !particle radius in AU 5.13959627e+06 7.44700588e+06 5.03758086e+04 ! x y z -1.79330931e+03 1.22535892e+03 -1.02427731e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill +Body754 3.35631376e+05 1.54633731e+04 ! particle number mass Rhill 7.21229000e+03 !particle radius in AU 9.58649389e+06 5.81253530e+06 -4.39352546e+04 ! x y z -9.88086375e+02 1.68843459e+03 -9.34405959e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill +Body755 3.34952432e+05 1.22268510e+04 ! particle number mass Rhill 1.06209501e+04 !particle radius in AU 5.07070035e+06 7.32312120e+06 7.18562589e+04 ! x y z -1.79677644e+03 1.25238618e+03 1.64235819e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill +Body756 3.94174646e+05 1.59516652e+04 ! particle number mass Rhill 7.60936749e+03 !particle radius in AU 1.19404056e+06 1.08877947e+07 5.88658821e+03 ! x y z -1.96662575e+03 2.29281553e+02 -1.48568063e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill +Body757 1.59693575e+06 2.44927303e+04 ! particle number mass Rhill 1.21305775e+04 !particle radius in AU -9.84021278e+06 -3.40002026e+06 -6.17065432e+04 ! x y z 7.02356760e+02 -1.91960378e+03 8.28806476e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill +Body758 1.60650171e+05 1.45895772e+04 ! particle number mass Rhill 5.64173558e+03 !particle radius in AU 8.38364229e+06 -1.08052974e+07 -1.14971163e+05 ! x y z 1.41362762e+03 1.05030477e+03 1.33062848e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill +Body759 6.68743952e+04 7.54209796e+03 ! particle number mass Rhill 4.21249068e+03 !particle radius in AU 4.30913199e+06 8.44003978e+06 1.98375727e+04 ! x y z -1.87920775e+03 9.70144357e+02 7.68922870e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill +Body760 1.63778812e+05 1.25082506e+04 ! particle number mass Rhill 8.36735565e+03 !particle radius in AU 9.34254133e+06 -6.72471094e+06 3.04479801e+03 ! x y z 1.13048626e+03 1.56587434e+03 1.26328276e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill +Body761 8.89219951e+04 7.98740603e+03 ! particle number mass Rhill 6.82609072e+03 !particle radius in AU -3.94216440e+06 -8.13811187e+06 -2.32415480e+03 ! x y z 1.94483188e+03 -9.74054123e+02 6.56681455e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill +Body762 8.18294712e+05 1.67752433e+04 ! particle number mass Rhill 9.70708677e+03 !particle radius in AU 5.41429391e+06 -7.20522578e+06 5.41382285e+04 ! x y z 1.73021941e+03 1.33390146e+03 1.43673569e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill +Body763 1.13372094e+06 2.57587973e+04 ! particle number mass Rhill 1.08215064e+04 !particle radius in AU -3.58069142e+06 -1.18639900e+07 -2.98112201e+04 ! x y z 1.80063833e+03 -4.84660340e+02 -1.10025267e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill +Body764 9.88108923e+04 9.31725739e+03 ! particle number mass Rhill 7.07029058e+03 !particle radius in AU 5.06214806e+06 -8.79684921e+06 -6.69408163e+03 ! x y z 1.77899792e+03 1.03185242e+03 -6.99222338e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill +Body765 2.18552963e+05 1.38592334e+04 ! particle number mass Rhill 6.25131279e+03 !particle radius in AU 2.20528884e+06 -1.13497157e+07 1.23709451e+05 ! x y z 1.88518956e+03 4.07847130e+02 -1.21144069e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill +Body766 3.09768312e+05 1.34561528e+04 ! particle number mass Rhill 7.02206200e+03 !particle radius in AU 5.73341973e+06 -8.10327163e+06 -2.40301967e+04 ! x y z 1.67706223e+03 1.24499901e+03 -1.26631178e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill +Body767 2.37144880e+05 1.11764593e+04 ! particle number mass Rhill 9.46615418e+03 !particle radius in AU -4.07741467e+06 -8.18369428e+06 -3.25211280e+04 ! x y z 1.94858682e+03 -9.33976298e+02 3.19344234e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill +Body768 1.14893098e+06 1.92849652e+04 ! particle number mass Rhill 1.08696854e+04 !particle radius in AU 6.06888001e+06 6.98255626e+06 -6.90089903e+03 ! x y z -1.60191111e+03 1.44385639e+03 1.12490936e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill +Body769 3.63529512e+05 1.26225183e+04 ! particle number mass Rhill 7.40682734e+03 !particle radius in AU -1.97618366e+06 8.86960314e+06 4.14824140e+04 ! x y z -2.09949361e+03 -4.69720145e+02 1.43384661e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill +Body770 9.51810604e+05 2.27574150e+04 ! particle number mass Rhill 1.02086703e+04 !particle radius in AU -6.96997724e+05 1.14525501e+07 -2.14282591e+04 ! x y z -1.94508975e+03 -1.20495540e+02 -1.27425570e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill +Body771 1.13010262e+06 1.89504819e+04 ! particle number mass Rhill 1.08099817e+04 !particle radius in AU 9.38021683e+06 3.42327658e+04 2.00501873e+04 ! x y z -3.65841924e+01 2.11334523e+03 -1.86694989e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill +Body772 7.04130996e+04 8.31952330e+03 ! particle number mass Rhill 6.31519566e+03 !particle radius in AU 9.77614427e+06 2.18126141e+06 4.93063169e+04 ! x y z -4.63942946e+02 2.03097699e+03 3.68237367e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill +Body773 7.20195884e+04 7.30450671e+03 ! particle number mass Rhill 6.36286244e+03 !particle radius in AU 1.03665232e+06 8.86346829e+06 1.05688800e+05 ! x y z -2.16165047e+03 3.02954637e+02 -2.55519521e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill +Body774 9.64762143e+04 1.02616868e+04 ! particle number mass Rhill 7.01416117e+03 !particle radius in AU 1.03495591e+07 -4.25164616e+06 3.58740907e+04 ! x y z 7.33662495e+02 1.82348291e+03 -6.28887722e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill +Body775 2.05974940e+05 1.14271818e+04 ! particle number mass Rhill 9.03178903e+03 !particle radius in AU -2.38406558e+06 9.62250108e+06 1.02937972e+05 ! x y z -2.01173579e+03 -4.55947194e+02 5.72154417e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill +Body776 1.80872057e+05 1.20866729e+04 ! particle number mass Rhill 8.64887224e+03 !particle radius in AU -1.07734704e+07 -1.45075387e+06 -2.66041480e+04 ! x y z 2.65092409e+02 -1.95941508e+03 3.83593904e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill +Body777 2.70682972e+04 7.76123367e+03 ! particle number mass Rhill 4.59186701e+03 !particle radius in AU 4.74101076e+06 -1.21984912e+07 3.79772198e+04 ! x y z 1.69258599e+03 6.30621386e+02 2.06381502e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill +Body778 1.10059808e+06 1.92916524e+04 ! particle number mass Rhill 1.07150758e+04 !particle radius in AU 7.43989020e+06 -5.63873599e+06 -5.85929699e+04 ! x y z 1.31667387e+03 1.70317955e+03 9.52560643e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill +Body779 5.98060539e+05 2.60997499e+04 ! particle number mass Rhill 1.28849886e+04 !particle radius in AU -5.38823915e+06 1.48268009e+07 -2.14296811e+04 ! x y z -1.54283155e+03 -5.57159624e+02 5.54783358e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill +Body780 4.78664397e+05 1.40463790e+04 ! particle number mass Rhill 8.11825531e+03 !particle radius in AU 2.66724929e+06 -8.66471427e+06 1.00760731e+04 ! x y z 2.07447879e+03 6.47409518e+02 2.06301461e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill +Body781 2.26409120e+05 1.13645899e+04 ! particle number mass Rhill 6.32533652e+03 !particle radius in AU -9.34887042e+06 -7.71203345e+05 -2.80106217e+04 ! x y z 1.56382920e+02 -2.13449580e+03 1.77972684e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill +Body782 2.42808802e+05 2.65285810e+04 ! particle number mass Rhill 6.47451347e+03 !particle radius in AU 2.11853462e+06 2.14346842e+07 -1.31619878e+05 ! x y z -1.40220812e+03 1.23003628e+02 1.01803056e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill +Body783 8.24349063e+05 1.69001386e+04 ! particle number mass Rhill 9.73096804e+03 !particle radius in AU 8.93418422e+06 -1.26163769e+06 -6.14650218e+03 ! x y z 2.70831749e+02 2.17084302e+03 -6.49066157e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill +Body784 1.62394568e+06 2.16415199e+04 ! particle number mass Rhill 1.21985861e+04 !particle radius in AU -3.36304606e+06 -8.68475569e+06 4.22905473e+04 ! x y z 2.01382441e+03 -7.30247568e+02 -1.59257408e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill +Body785 4.69991607e+05 1.42566569e+04 ! particle number mass Rhill 1.18904701e+04 !particle radius in AU 8.81465687e+06 -2.36248215e+06 6.67259873e+04 ! x y z 5.93111329e+02 2.09930862e+03 3.04112228e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill +Body786 1.36960578e+06 2.05419684e+04 ! particle number mass Rhill 1.15252633e+04 !particle radius in AU -4.21295680e+06 -8.25900507e+06 -3.19234838e+03 ! x y z 1.92170180e+03 -9.79177619e+02 -8.10728388e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill +Body787 5.69750598e+05 2.14044316e+04 ! particle number mass Rhill 8.60360757e+03 !particle radius in AU 9.93364443e+06 8.45966410e+06 -7.67940035e+04 ! x y z -1.17931717e+03 1.37394453e+03 -8.05856772e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill +Body788 1.41313744e+06 2.40709892e+04 ! particle number mass Rhill 1.16460986e+04 !particle radius in AU 1.04612906e+06 1.07823989e+07 -7.20248309e+04 ! x y z -1.97918359e+03 1.84768969e+02 3.98691690e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill +Body789 9.83280524e+04 1.63480170e+04 ! particle number mass Rhill 7.05875544e+03 !particle radius in AU -1.20383776e+07 -1.30487787e+07 -1.17822971e+05 ! x y z 1.15323425e+03 -1.04821079e+03 -2.09214306e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill +Body790 5.14220791e+05 1.55882368e+04 ! particle number mass Rhill 1.22523351e+04 !particle radius in AU -6.25721631e+06 -7.48338074e+06 6.58872777e+04 ! x y z 1.60724089e+03 -1.35523949e+03 1.79073191e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill +Body791 2.71366282e+05 1.50608481e+04 ! particle number mass Rhill 9.90119508e+03 !particle radius in AU -1.98852887e+06 -1.16234208e+07 3.45760659e+04 ! x y z 1.87230049e+03 -3.33072319e+02 1.96763510e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill +Body792 2.34275345e+05 1.24361617e+04 ! particle number mass Rhill 6.39775874e+03 !particle radius in AU -1.83445389e+06 -1.01663777e+07 -2.16218566e+04 ! x y z 1.99731190e+03 -3.10283279e+02 -1.07270295e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill +Body793 5.94051154e+05 2.02359843e+04 ! particle number mass Rhill 1.28561305e+04 !particle radius in AU -6.68458169e+06 -1.03038987e+07 1.06554338e+05 ! x y z 1.55802844e+03 -1.01074571e+03 -1.53515092e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill +Body794 2.62427397e+05 1.23130985e+04 ! particle number mass Rhill 6.64439416e+03 !particle radius in AU -9.54428205e+06 -1.77688297e+06 -2.10926647e+04 ! x y z 3.75374809e+02 -2.06650760e+03 -1.22766897e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill +Body795 2.46729383e+04 7.83698469e+03 ! particle number mass Rhill 4.45221314e+03 !particle radius in AU 3.13901663e+06 1.32731582e+07 -8.32687929e+04 ! x y z -1.71730983e+03 4.23145043e+02 4.63891808e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill +Body796 1.99969482e+05 1.08806055e+04 ! particle number mass Rhill 8.94314414e+03 !particle radius in AU -2.33540859e+06 9.13065765e+06 7.06589924e+03 ! x y z -2.06497311e+03 -5.14043891e+02 1.51818535e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill +Body797 2.62755853e+05 1.84176232e+04 ! particle number mass Rhill 9.79534618e+03 !particle radius in AU 1.36994576e+07 -4.67366094e+06 7.44829731e+04 ! x y z 5.44944889e+02 1.63399910e+03 -4.32898441e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill +Body798 1.49407504e+04 4.39640938e+03 ! particle number mass Rhill 3.76668925e+03 !particle radius in AU -7.37395287e+06 5.09151414e+06 2.55133554e+04 ! x y z -1.23099773e+03 -1.81388400e+03 -6.90022105e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill +Body799 3.37131645e+05 1.41467237e+04 ! particle number mass Rhill 1.06439337e+04 !particle radius in AU -4.36095303e+06 9.17263674e+06 5.77572160e+04 ! x y z -1.86099387e+03 -8.92089911e+02 1.33050454e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill +Body800 9.30504002e+05 1.74198697e+04 ! particle number mass Rhill 1.01319198e+04 !particle radius in AU 6.09028041e+05 -9.05678858e+06 -3.59192636e+04 ! x y z 2.16064013e+03 1.12524119e+02 -1.28041635e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill +Body801 6.21406053e+04 6.95048318e+03 ! particle number mass Rhill 4.11065306e+03 !particle radius in AU 8.74913197e+06 -1.47341693e+06 -9.62438055e+04 ! x y z 3.78746478e+02 2.16207809e+03 -2.44021093e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill +Body802 1.98751717e+06 2.23872797e+04 ! particle number mass Rhill 1.30483609e+04 !particle radius in AU -8.58911286e+06 2.87403478e+06 1.58823639e+02 ! x y z -7.16776888e+02 -2.04412274e+03 5.09362192e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill +Body803 1.10143987e+06 2.58396269e+04 ! particle number mass Rhill 1.07178069e+04 !particle radius in AU 8.48527058e+06 -9.20798638e+06 -1.02188880e+05 ! x y z 1.36994712e+03 1.25405390e+03 1.06840389e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill +Body804 1.26088799e+06 1.92135468e+04 ! particle number mass Rhill 1.12118643e+04 !particle radius in AU -5.30902937e+06 7.21606500e+06 6.02327354e+04 ! x y z -1.77499753e+03 -1.28053606e+03 -3.40605365e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill +Body805 1.09184787e+05 1.76365565e+04 ! particle number mass Rhill 4.96028208e+03 !particle radius in AU -1.77739170e+07 5.38979777e+06 1.55930024e+05 ! x y z -4.43393580e+02 -1.45455644e+03 -2.70314341e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill +Body806 4.13158924e+04 7.88380749e+03 ! particle number mass Rhill 5.28698448e+03 !particle radius in AU -8.43967863e+06 -7.92404795e+06 -2.34275469e+04 ! x y z 1.33453164e+03 -1.37751924e+03 -2.53751841e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill +Body807 9.05745195e+05 1.69381188e+04 ! particle number mass Rhill 1.00412476e+04 !particle radius in AU 4.71451819e+06 -7.46352121e+06 1.62287314e+03 ! x y z 1.84921224e+03 1.19850662e+03 1.99232615e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill +Body808 1.43529731e+05 1.19160672e+04 ! particle number mass Rhill 5.43374958e+03 !particle radius in AU 1.87652013e+06 -1.11420807e+07 1.38944441e+05 ! x y z 1.93560918e+03 3.25150073e+02 2.51765258e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill +Body809 5.54106512e+05 1.54471739e+04 ! particle number mass Rhill 1.25612659e+04 !particle radius in AU -9.29220692e+06 2.16599787e+06 -4.38900389e+04 ! x y z -4.87620074e+02 -2.05624014e+03 4.85721843e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill +Body810 5.10481873e+05 1.62613830e+04 ! particle number mass Rhill 8.29428788e+03 !particle radius in AU 1.39531950e+06 1.01422470e+07 -9.71755919e+04 ! x y z -2.02592294e+03 3.03255899e+02 5.57961818e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill +Body811 3.32058372e+05 1.63243972e+04 ! particle number mass Rhill 7.18660555e+03 !particle radius in AU 1.17947013e+07 7.40001699e+05 2.51672426e+04 ! x y z -1.17060805e+02 1.90660700e+03 5.44656130e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill +Body812 3.98927657e+05 1.51211505e+04 ! particle number mass Rhill 1.12581502e+04 !particle radius in AU -7.90433536e+06 6.73266024e+06 -3.50969312e+04 ! x y z -1.30204874e+03 -1.55681461e+03 5.35229797e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill +Body813 1.60520468e+05 1.50790564e+04 ! particle number mass Rhill 5.64021687e+03 !particle radius in AU 1.20372535e+07 -7.49092702e+06 6.74822230e+04 ! x y z 8.91458581e+02 1.47943776e+03 -9.74770857e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill +Body814 9.51624011e+04 8.20610116e+03 ! particle number mass Rhill 6.98217592e+03 !particle radius in AU 6.85752801e+06 6.02181411e+06 3.38939759e+03 ! x y z -1.45444163e+03 1.59683746e+03 2.15463449e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill +Body815 8.02969339e+05 3.23806232e+04 ! particle number mass Rhill 9.64610498e+03 !particle radius in AU 1.65844804e+07 4.81034890e+06 4.61229376e+04 ! x y z -4.20560106e+02 1.53234812e+03 -2.07164443e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill +Body816 2.77573627e+05 1.52717801e+04 ! particle number mass Rhill 9.97612135e+03 !particle radius in AU -1.11130797e+07 -3.78359570e+06 -1.84960756e+03 ! x y z 5.85052492e+02 -1.82483094e+03 -5.22659903e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill +Body817 1.29735147e+05 1.12854771e+04 ! particle number mass Rhill 7.74203039e+03 !particle radius in AU 4.58513442e+06 1.02699278e+07 -3.18341648e+04 ! x y z -1.77353935e+03 8.15172006e+02 -3.48615440e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill +Body818 7.78047386e+05 1.63408344e+04 ! particle number mass Rhill 9.54525817e+03 !particle radius in AU 7.69154925e+06 -4.52108417e+06 1.90521640e+04 ! x y z 1.13843297e+03 1.87858469e+03 1.37511342e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill +Body819 2.90221524e+05 1.58401533e+04 ! particle number mass Rhill 6.87114114e+03 !particle radius in AU -1.15969434e+07 3.52559239e+06 5.16907637e+04 ! x y z -5.69477663e+02 -1.78769915e+03 -1.33023745e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill +Body820 9.19380223e+05 1.83471630e+04 ! particle number mass Rhill 1.00913836e+04 !particle radius in AU 5.95447776e+06 -7.82496208e+06 3.09991808e+04 ! x y z 1.65084498e+03 1.22028250e+03 -2.33382836e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill +Body821 6.22104092e+04 9.73713866e+03 ! particle number mass Rhill 6.05977746e+03 !particle radius in AU -3.93089529e+06 1.17766068e+07 -6.72321552e+03 ! x y z -1.75059713e+03 -6.17947765e+02 -1.16753307e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill +Body822 5.76697161e+05 1.55455865e+04 ! particle number mass Rhill 1.27297027e+04 !particle radius in AU -9.38145643e+06 5.61032393e+05 -2.62604457e+04 ! x y z -1.66051140e+02 -2.13147141e+03 -1.91808715e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill +Body823 1.12193121e+06 2.15413897e+04 ! particle number mass Rhill 1.07838641e+04 !particle radius in AU -3.46243172e+06 -9.75229088e+06 -6.99128436e+04 ! x y z 1.92977079e+03 -6.78308349e+02 -2.04030914e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill +Body824 3.77345686e+05 1.48917020e+04 ! particle number mass Rhill 7.49949684e+03 !particle radius in AU 2.14173079e+06 -1.00855853e+07 1.33615118e+04 ! x y z 2.00549502e+03 4.10286548e+02 1.33463171e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill +Body825 2.84103902e+04 5.41642288e+03 ! particle number mass Rhill 4.66653709e+03 !particle radius in AU 2.97083227e+06 8.61004661e+06 -5.77896258e+04 ! x y z -2.03526397e+03 6.94270314e+02 -2.15105297e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill +Body826 5.90646827e+04 1.08492229e+04 ! particle number mass Rhill 5.95586641e+03 !particle radius in AU -1.12041316e+07 8.43574386e+06 6.88522376e+04 ! x y z -1.04307644e+03 -1.40491020e+03 6.49036289e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill +Body827 1.00753667e+05 9.63045427e+03 ! particle number mass Rhill 7.11632779e+03 !particle radius in AU -4.35495075e+06 9.47025259e+06 -5.09915025e+04 ! x y z -1.85819690e+03 -8.15466077e+02 4.09008068e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill +Body828 1.54771456e+05 1.76232067e+04 ! particle number mass Rhill 5.57206216e+03 !particle radius in AU 4.78116976e+06 -1.59784331e+07 -5.36968327e+04 ! x y z 1.53329565e+03 4.46997350e+02 4.63714714e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill +Body829 5.51349999e+05 1.59967890e+04 ! particle number mass Rhill 8.50997184e+03 !particle radius in AU 8.23993793e+06 -5.31139465e+06 6.29574603e+04 ! x y z 1.13278257e+03 1.76205209e+03 -8.47937534e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill +Body830 5.59737681e+05 1.68391578e+04 ! particle number mass Rhill 1.26036743e+04 !particle radius in AU -9.63212471e+06 3.36590765e+06 -1.07062454e+04 ! x y z -6.84552644e+02 -1.94265665e+03 2.94400282e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill +Body831 3.21463203e+04 7.65511916e+03 ! particle number mass Rhill 4.86272166e+03 !particle radius in AU 9.83116842e+06 6.61447762e+06 -5.12468956e+04 ! x y z -1.03243293e+03 1.62443233e+03 2.38757589e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill +Body832 1.70396503e+05 1.11460376e+04 ! particle number mass Rhill 5.75359413e+03 !particle radius in AU 9.79171021e+06 -2.73890246e+06 8.20795285e+04 ! x y z 5.70999291e+02 1.96925843e+03 2.38407769e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill +Body833 5.15198597e+05 1.63024335e+04 ! particle number mass Rhill 8.31975532e+03 !particle radius in AU -3.31575865e+06 9.74773076e+06 -6.68906771e+04 ! x y z -1.91945157e+03 -6.80055572e+02 7.05071034e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill +Body834 3.88181682e+05 2.05972013e+04 ! particle number mass Rhill 1.11561412e+04 !particle radius in AU 2.59402712e+06 1.41195960e+07 7.65317352e+04 ! x y z -1.69390135e+03 3.03445651e+02 1.51567072e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill +Body835 3.14976817e+05 1.81483086e+04 ! particle number mass Rhill 7.06120023e+03 !particle radius in AU -2.50324523e+06 1.33583355e+07 -1.06069614e+05 ! x y z -1.73502096e+03 -3.33244830e+02 -4.27813580e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill +Body836 1.15397098e+06 2.54597499e+04 ! particle number mass Rhill 1.08855562e+04 !particle radius in AU -4.06673848e+06 -1.16023946e+07 4.08896853e+04 ! x y z 1.75606757e+03 -6.22462152e+02 1.70339271e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill +Body837 5.52965161e+05 1.61939690e+04 ! particle number mass Rhill 8.51827363e+03 !particle radius in AU 4.61087222e+06 -8.97079451e+06 -2.30678380e+04 ! x y z 1.81563298e+03 9.45814603e+02 2.66915276e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill +Body838 2.78212386e+05 1.51006367e+04 ! particle number mass Rhill 9.98376791e+03 !particle radius in AU 9.96934676e+06 5.38891014e+06 9.88781435e+04 ! x y z -9.81582718e+02 1.71074828e+03 -3.99838208e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill +Body839 7.54969273e+04 7.54781766e+03 ! particle number mass Rhill 6.46366364e+03 !particle radius in AU 4.99758772e+06 -7.50759705e+06 -5.25299733e+04 ! x y z 1.80703397e+03 1.21678053e+03 1.90540898e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill +Body840 1.70430363e+05 1.20590966e+04 ! particle number mass Rhill 8.47913036e+03 !particle radius in AU -6.69441800e+06 -8.86176278e+06 2.53388174e+04 ! x y z 1.56709902e+03 -1.16434302e+03 -9.30903825e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill +Body841 7.11720571e+04 7.78997309e+03 ! particle number mass Rhill 6.33780436e+03 !particle radius in AU -4.38549443e+06 -8.30442031e+06 2.47931467e+04 ! x y z 1.89780640e+03 -1.00273544e+03 3.24648282e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill +Body842 8.59823501e+04 1.41107806e+04 ! particle number mass Rhill 4.58059717e+03 !particle radius in AU 9.52295494e+06 -1.31453589e+07 -2.84882159e+04 ! x y z 1.32429236e+03 9.32305231e+02 -7.78758641e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill +Body843 1.09544894e+05 8.49893572e+03 ! particle number mass Rhill 4.96572933e+03 !particle radius in AU 8.16032081e+06 -3.83914183e+06 -4.53668688e+04 ! x y z 9.48405336e+02 1.95482944e+03 -1.90024465e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill +Body844 4.60029935e+05 1.51122850e+04 ! particle number mass Rhill 1.18058616e+04 !particle radius in AU 8.84185924e+06 4.91012210e+06 -4.89421191e+04 ! x y z -9.91478880e+02 1.77538667e+03 -7.79856416e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill +Body845 8.45559558e+04 1.19563910e+04 ! particle number mass Rhill 4.55512603e+03 !particle radius in AU 1.32256008e+07 4.60711564e+06 3.20195320e+04 ! x y z -5.72824835e+02 1.63498483e+03 -8.94623266e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill +Body846 7.22405721e+05 3.33574192e+04 ! particle number mass Rhill 9.31206622e+03 !particle radius in AU 1.83600084e+07 -3.67172737e+06 -1.03387529e+05 ! x y z 2.82478801e+02 1.48749998e+03 -3.61587063e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill +Body847 1.13076745e+06 1.88034270e+04 ! particle number mass Rhill 1.08121011e+04 !particle radius in AU 5.50505051e+06 7.32332854e+06 3.97380095e+04 ! x y z -1.73540458e+03 1.27934877e+03 1.31767249e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill +Body848 1.53792461e+06 3.36534328e+04 ! particle number mass Rhill 1.19792790e+04 !particle radius in AU -7.13326386e+06 1.32178302e+07 5.30241465e+04 ! x y z -1.47659146e+03 -7.82263656e+02 -2.09914908e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill +Body849 2.18245755e+04 6.44870790e+03 ! particle number mass Rhill 4.27383343e+03 !particle radius in AU -4.61218845e+06 1.05730170e+07 -6.60200193e+04 ! x y z -1.78205321e+03 -7.56922993e+02 8.78119173e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill +Body850 1.34790722e+06 2.73293396e+04 ! particle number mass Rhill 1.14640744e+04 !particle radius in AU -4.56090890e+06 1.14927598e+07 1.08391052e+05 ! x y z -1.73824893e+03 -6.90093039e+02 -9.72090948e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill +Body851 1.63258167e+05 1.62209865e+04 ! particle number mass Rhill 5.67210117e+03 !particle radius in AU -1.26164008e+07 8.37507124e+06 -9.30825805e+04 ! x y z -9.25052993e+02 -1.39347287e+03 7.98354596e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill +Body852 3.03238131e+05 1.22437010e+04 ! particle number mass Rhill 6.97236746e+03 !particle radius in AU 6.53000802e+05 -9.25877071e+06 7.96919181e+03 ! x y z 2.13254376e+03 1.58194267e+02 -3.04691883e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill +Body853 2.86850115e+05 1.16833407e+04 ! particle number mass Rhill 1.00860395e+04 !particle radius in AU 7.29493071e+06 -5.15859210e+06 -4.34667082e+04 ! x y z 1.28346456e+03 1.77485302e+03 1.13165377e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill +Body854 4.89303744e+04 6.65852454e+03 ! particle number mass Rhill 3.79587448e+03 !particle radius in AU -3.19192697e+06 -8.59789141e+06 9.38867695e+04 ! x y z 2.03734470e+03 -7.26452634e+02 -1.17305762e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill +Body855 7.78837017e+05 1.74911407e+04 ! particle number mass Rhill 9.54848620e+03 !particle radius in AU 9.47082398e+06 -1.09607932e+06 4.83920593e+04 ! x y z 2.14821600e+02 2.11542107e+03 1.20322954e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill +Body856 8.09963405e+05 1.65414086e+04 ! particle number mass Rhill 9.67403073e+03 !particle radius in AU -6.95192799e+06 -5.46206006e+06 2.82885807e+04 ! x y z 1.36201469e+03 -1.74685442e+03 2.47593903e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill +Body857 2.42701981e+05 1.25706853e+04 ! particle number mass Rhill 6.47356387e+03 !particle radius in AU -3.08185810e+06 9.58349756e+06 6.94451226e+03 ! x y z -1.96338979e+03 -6.65837368e+02 -2.04503843e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill +Body858 1.70493509e+06 4.29022384e+04 ! particle number mass Rhill 1.23980946e+04 !particle radius in AU 1.65978586e+07 7.58110647e+06 -7.73180642e+04 ! x y z -6.28856477e+02 1.39136938e+03 1.44879781e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill +Body859 1.24913615e+06 2.04262263e+04 ! particle number mass Rhill 1.11769229e+04 !particle radius in AU -6.68285720e+06 6.69572721e+06 -2.14964381e+03 ! x y z -1.53479675e+03 -1.49178194e+03 -5.71100381e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill +Body860 1.41825071e+05 1.34951826e+04 ! particle number mass Rhill 5.41215219e+03 !particle radius in AU -4.42591408e+06 -1.21925806e+07 -3.63637070e+04 ! x y z 1.69944504e+03 -6.60923085e+02 -1.17185754e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill +Body861 2.32941748e+05 1.18357603e+04 ! particle number mass Rhill 9.40989476e+03 !particle radius in AU 9.48116594e+06 -3.86455243e+05 -1.03947327e+05 ! x y z 6.54406678e+01 2.14729925e+03 -2.03989342e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill +Body862 8.31892099e+05 1.90259127e+04 ! particle number mass Rhill 9.76055838e+03 !particle radius in AU 9.75283383e+06 -3.26934404e+06 -6.67089834e+03 ! x y z 6.55184968e+02 1.92454684e+03 -2.06876177e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill +Body863 2.65389001e+05 1.25607462e+04 ! particle number mass Rhill 9.82795810e+03 !particle radius in AU 7.92293154e+06 -5.92949642e+06 8.08421712e+04 ! x y z 1.22209539e+03 1.67954941e+03 6.77640716e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill +Body864 1.19440089e+06 2.02897833e+04 ! particle number mass Rhill 1.10112267e+04 !particle radius in AU -9.44726757e+06 -1.72479642e+06 -5.06771776e+04 ! x y z 3.57081323e+02 -2.08684682e+03 -1.01697089e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill +Body865 1.94180301e+05 1.09977241e+04 ! particle number mass Rhill 8.85599534e+03 !particle radius in AU -6.23129670e+06 7.19526623e+06 1.83941420e+04 ! x y z -1.59813509e+03 -1.40609078e+03 1.94595479e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill +Body866 1.32317590e+06 2.00141699e+04 ! particle number mass Rhill 1.13935271e+04 !particle radius in AU -5.60132388e+06 -7.32299736e+06 -1.77571471e+04 ! x y z 1.71338179e+03 -1.30416800e+03 7.07200448e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill +Body867 7.00538607e+05 3.57062222e+04 ! particle number mass Rhill 9.21714362e+03 !particle radius in AU 1.94866969e+07 6.41556967e+06 -8.78618223e+04 ! x y z -4.47022162e+02 1.36561417e+03 1.23555791e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill +Body868 6.96093005e+05 2.84504578e+04 ! particle number mass Rhill 9.19760498e+03 !particle radius in AU 1.24313845e+07 -1.03009928e+07 2.91007895e+04 ! x y z 1.03299438e+03 1.26303931e+03 1.43272483e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill +Body869 6.51350069e+04 1.52760208e+04 ! particle number mass Rhill 6.15328661e+03 !particle radius in AU -1.88463700e+07 3.02324922e+06 -1.45896688e+05 ! x y z -2.31662436e+02 -1.48292769e+03 2.63168505e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill +Body870 1.30747026e+05 1.45819265e+04 ! particle number mass Rhill 7.76210648e+03 !particle radius in AU 1.40546567e+07 -3.88347486e+06 6.81896661e+04 ! x y z 4.43567006e+02 1.65056081e+03 4.01577354e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill +Body871 6.71076966e+04 8.61160442e+03 ! particle number mass Rhill 4.21738363e+03 !particle radius in AU 1.78412490e+06 -1.05393977e+07 -1.79940495e+04 ! x y z 1.97327292e+03 3.39702264e+02 -1.56396341e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill +Body872 1.71085269e+06 3.01722059e+04 ! particle number mass Rhill 1.24124221e+04 !particle radius in AU 3.48276485e+06 1.24683799e+07 5.71803206e+04 ! x y z -1.74011773e+03 4.74503606e+02 9.70062988e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill +Body873 2.12621273e+05 1.22535537e+04 ! particle number mass Rhill 6.19423818e+03 !particle radius in AU 9.54521899e+06 -4.27421825e+06 -7.89921579e+04 ! x y z 8.34463883e+02 1.83314396e+03 -1.96687832e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill +Body874 1.11434552e+06 2.11782232e+04 ! particle number mass Rhill 1.07595049e+04 !particle radius in AU -2.90897541e+06 -9.97345628e+06 4.60433948e+04 ! x y z 1.93634809e+03 -5.84664071e+02 -6.64958448e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill +Body875 1.63374203e+06 2.84663610e+04 ! particle number mass Rhill 1.22230660e+04 !particle radius in AU 4.25415099e+06 -1.14325644e+07 5.00958816e+04 ! x y z 1.75951768e+03 6.44587122e+02 6.30692655e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill +Body876 3.21448512e+05 2.38193850e+04 ! particle number mass Rhill 7.10923390e+03 !particle radius in AU -1.58007262e+07 -7.45105168e+06 -3.06690137e+04 ! x y z 6.82944765e+02 -1.41301363e+03 1.04453850e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill +Body877 7.95360887e+04 7.85656320e+03 ! particle number mass Rhill 6.57693777e+03 !particle radius in AU 8.25741284e+06 4.39411348e+06 3.78949633e+04 ! x y z -9.99781284e+02 1.87441904e+03 -3.21699586e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill +Body878 7.92129839e+04 1.88783439e+04 ! particle number mass Rhill 6.56801971e+03 !particle radius in AU 2.42332014e+06 2.17054415e+07 -5.36680055e+04 ! x y z -1.40455533e+03 1.37752686e+02 -3.67471579e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill +Body879 1.02921195e+05 1.05249947e+04 ! particle number mass Rhill 7.16699767e+03 !particle radius in AU -1.11338384e+07 -2.20174819e+06 -5.08310388e+04 ! x y z 3.88427106e+02 -1.90213725e+03 -1.60447088e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill +Body880 1.15170895e+06 3.80457220e+04 ! particle number mass Rhill 1.08784389e+04 !particle radius in AU -1.83729146e+07 1.19076985e+06 -1.72335144e+04 ! x y z -9.88243619e+01 -1.51803622e+03 2.27806536e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill +Body881 1.02079633e+06 2.51296581e+04 ! particle number mass Rhill 1.04495767e+04 !particle radius in AU -6.50873442e+06 -1.07127054e+07 -3.34128129e+03 ! x y z 1.57607258e+03 -9.74525706e+02 1.08233475e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill +Body882 1.10724006e+06 2.27598022e+04 ! particle number mass Rhill 1.07365873e+04 !particle radius in AU -2.66932388e+06 -1.08052729e+07 -7.29995052e+04 ! x y z 1.89275637e+03 -5.06517897e+02 -3.33939112e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill +Body883 1.23514533e+06 2.71870351e+04 ! particle number mass Rhill 1.11350375e+04 !particle radius in AU -8.68309984e+06 8.73295385e+06 2.12890448e+04 ! x y z -1.33510513e+03 -1.35075217e+03 2.94732064e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill +Body884 6.42357183e+04 8.63381056e+03 ! particle number mass Rhill 4.15634119e+03 !particle radius in AU -9.01680783e+06 -6.03891596e+06 -1.83491289e+04 ! x y z 1.08610553e+03 -1.66661637e+03 5.40990322e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill +Body885 5.31967805e+05 1.46197870e+04 ! particle number mass Rhill 8.40905991e+03 !particle radius in AU 8.73703169e+06 -2.34962014e+06 8.87466208e+03 ! x y z 5.81838269e+02 2.10387535e+03 1.59910498e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill +Body886 1.06591901e+06 1.91036572e+04 ! particle number mass Rhill 1.06013311e+04 !particle radius in AU -5.56657026e+06 -7.79387621e+06 -2.42457443e+04 ! x y z 1.72811494e+03 -1.19163725e+03 7.49315478e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill +Body887 2.02044303e+05 1.75518766e+04 ! particle number mass Rhill 8.97396819e+03 !particle radius in AU -1.39814291e+07 5.67086599e+06 7.10670472e+04 ! x y z -6.38825478e+02 -1.55959492e+03 1.37992185e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill +Body888 2.20300503e+05 1.26487217e+04 ! particle number mass Rhill 9.23650109e+03 !particle radius in AU -6.68069155e+05 -1.06256314e+07 1.03366197e+04 ! x y z 1.99524677e+03 -1.14341573e+02 7.10647594e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill +Body889 1.81697506e+06 2.78836882e+04 ! particle number mass Rhill 1.26639344e+04 !particle radius in AU 4.44131372e+06 1.05243943e+07 -4.93210722e+04 ! x y z -1.78877447e+03 7.65306939e+02 -2.91348510e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill +Body890 4.62182800e+04 8.76540290e+03 ! particle number mass Rhill 3.72440519e+03 !particle radius in AU 4.74513540e+06 -1.11521571e+07 1.99020178e+04 ! x y z 1.74857282e+03 7.32287072e+02 8.22196426e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill +Body891 2.64052549e+05 1.12203260e+04 ! particle number mass Rhill 6.65808168e+03 !particle radius in AU 3.69231178e+06 8.07781861e+06 -4.84025537e+04 ! x y z -1.99534439e+03 9.00711444e+02 -7.96406279e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill +Body892 2.59999466e+05 1.21745079e+04 ! particle number mass Rhill 9.76097367e+03 !particle radius in AU 7.96779900e+06 5.28681997e+06 4.51459562e+04 ! x y z -1.15797841e+03 1.77999708e+03 -1.86173466e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill +Body893 1.67737402e+06 2.38355698e+04 ! particle number mass Rhill 1.23309244e+04 !particle radius in AU -4.76453798e+06 -8.80906879e+06 -7.02042625e+03 ! x y z 1.84339352e+03 -9.61915676e+02 -9.22717545e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill +Body894 1.37575479e+05 1.06778411e+04 ! particle number mass Rhill 7.89494909e+03 !particle radius in AU -1.01354200e+07 1.79029021e+06 5.81214752e+04 ! x y z -3.69721169e+02 -2.02078532e+03 -1.89093419e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill +Body895 2.61034648e+05 1.11860226e+04 ! particle number mass Rhill 9.77391088e+03 !particle radius in AU 6.33480475e+06 -5.91857236e+06 -4.57999278e+04 ! x y z 1.55086475e+03 1.62084415e+03 -1.77397628e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill +Body896 3.60957274e+05 1.87338359e+04 ! particle number mass Rhill 7.38931640e+03 !particle radius in AU -1.06493767e+07 7.82814577e+06 2.86358415e+04 ! x y z -1.05832791e+03 -1.46150005e+03 -5.49731072e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill +Body897 5.62899921e+05 3.09693578e+04 ! particle number mass Rhill 1.26273646e+04 !particle radius in AU 7.65076109e+06 -1.70352283e+07 1.51301396e+04 ! x y z 1.39901314e+03 6.06223441e+02 4.14064364e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill +Body898 4.46032399e+05 1.56971861e+04 ! particle number mass Rhill 1.16848854e+04 !particle radius in AU -6.95564135e+06 7.65404475e+06 -2.72421907e+04 ! x y z -1.52099853e+03 -1.35598646e+03 -9.21577263e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill +Body899 1.52575316e+05 1.62545462e+04 ! particle number mass Rhill 5.54558146e+03 !particle radius in AU -5.49140677e+04 1.54446317e+07 -1.73043597e+04 ! x y z -1.66030895e+03 -1.12967723e+01 -2.73734027e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill +Body900 2.78977890e+04 8.65543048e+03 ! particle number mass Rhill 4.63830089e+03 !particle radius in AU 5.28463967e+06 -1.36432294e+07 1.50949984e+05 ! x y z 1.58056809e+03 6.18784193e+02 2.19476691e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill +Body901 1.42775206e+06 2.43769191e+04 ! particle number mass Rhill 1.16861089e+04 !particle radius in AU -6.87024799e+06 -8.49204530e+06 6.90721153e+04 ! x y z 1.52959279e+03 -1.25803812e+03 2.67976166e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill +Body902 4.69852863e+05 1.45463044e+04 ! particle number mass Rhill 8.06813127e+03 !particle radius in AU -5.81437057e+06 -7.46625959e+06 3.98273573e+04 ! x y z 1.67686329e+03 -1.30572183e+03 -1.17212431e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill +Body903 7.51681526e+04 1.28937189e+04 ! particle number mass Rhill 4.37989422e+03 !particle radius in AU -2.38298847e+06 -1.53195500e+07 2.60001847e+03 ! x y z 1.63293505e+03 -2.84649559e+02 -1.48524125e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill +Body904 9.91305679e+05 2.50606865e+04 ! particle number mass Rhill 1.03479629e+04 !particle radius in AU 8.39690801e+06 9.44600671e+06 -3.53959311e+04 ! x y z -1.39463544e+03 1.20681438e+03 -1.20628234e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill +Body905 1.77161305e+05 1.92271736e+04 ! particle number mass Rhill 5.82874810e+03 !particle radius in AU 1.01396678e+07 -1.41312986e+07 5.56406543e+04 ! x y z 1.26355281e+03 9.21806042e+02 1.06940044e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill +Body906 1.43204042e+05 9.46035229e+03 ! particle number mass Rhill 5.42963650e+03 !particle radius in AU -5.21396669e+05 9.14782087e+06 -7.71915905e+03 ! x y z -2.15141308e+03 -1.66257020e+02 2.07412147e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill +Body907 5.82582248e+05 1.59774603e+04 ! particle number mass Rhill 1.27728576e+04 !particle radius in AU -3.61884147e+05 9.58012066e+06 -6.32163221e+04 ! x y z -2.11988696e+03 -7.34599885e+01 -6.66237019e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill +Body908 1.77222758e+06 3.99642317e+04 ! particle number mass Rhill 1.25591089e+04 !particle radius in AU -1.53596824e+07 6.40708086e+06 -1.04989342e+05 ! x y z -6.14876376e+02 -1.48301382e+03 1.26290046e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill +Body909 3.69937337e+05 1.80154389e+04 ! particle number mass Rhill 1.09785515e+04 !particle radius in AU -6.50197885e+06 -1.10181249e+07 -6.62877770e+04 ! x y z 1.58080387e+03 -9.02970180e+02 -1.68313909e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill +Body910 1.91277530e+05 1.12680358e+04 ! particle number mass Rhill 8.81164464e+03 !particle radius in AU 9.75396219e+06 -9.13807405e+05 -7.87078491e+04 ! x y z 2.02298152e+02 2.08890085e+03 -1.56193445e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill +Body911 7.14924966e+04 1.06182194e+04 ! particle number mass Rhill 6.34730173e+03 !particle radius in AU 1.22059111e+07 -4.11569584e+06 4.51136993e+04 ! x y z 6.18155979e+02 1.71784899e+03 -1.45608490e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill +Body912 1.55563555e+05 1.54568240e+04 ! particle number mass Rhill 8.22504486e+03 !particle radius in AU -1.39589249e+07 4.22706952e+06 1.42629172e+04 ! x y z -4.79490807e+02 -1.64034272e+03 -9.80150049e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill +Body913 1.82993785e+05 1.31378262e+04 ! particle number mass Rhill 8.68255953e+03 !particle radius in AU -8.72337367e+06 7.89855612e+06 -1.46432428e+04 ! x y z -1.27359213e+03 -1.41072675e+03 -9.09643338e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill +Body914 7.86241766e+04 1.03655056e+04 ! particle number mass Rhill 6.55170538e+03 !particle radius in AU -5.98689124e+06 -1.08278571e+07 -7.13966053e+04 ! x y z 1.61204187e+03 -9.04138146e+02 6.38760222e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill +Body915 8.65375593e+04 1.02314925e+04 ! particle number mass Rhill 6.76452340e+03 !particle radius in AU -1.07210273e+07 4.87007409e+06 5.61861647e+04 ! x y z -7.65098099e+02 -1.73800332e+03 -1.14385352e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill +Body916 5.51731603e+05 2.32611955e+04 ! particle number mass Rhill 8.51193471e+03 !particle radius in AU 2.68858721e+06 -1.40830147e+07 -6.98869515e+04 ! x y z 1.69547510e+03 3.28640998e+02 9.31981924e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill +Body917 6.08037372e+05 2.25179870e+04 ! particle number mass Rhill 1.29562429e+04 !particle radius in AU -1.30260417e+07 3.41761257e+06 -7.30560375e+04 ! x y z -4.58021484e+02 -1.72002575e+03 5.01502204e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill +Body918 4.79734805e+05 1.48772500e+04 ! particle number mass Rhill 1.19720742e+04 !particle radius in AU -4.79303948e+06 8.20836672e+06 6.12546656e+03 ! x y z -1.84411142e+03 -1.07059828e+03 4.85115120e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill +Body919 3.74633489e+05 1.27654921e+04 ! particle number mass Rhill 1.10248119e+04 !particle radius in AU 7.16020189e+06 -5.20913143e+06 7.41222240e+04 ! x y z 1.31083472e+03 1.77863703e+03 -1.14709109e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill +Body920 5.48029178e+04 7.03991663e+03 ! particle number mass Rhill 5.80902907e+03 !particle radius in AU 8.99285148e+05 9.31741571e+06 -4.43761911e+04 ! x y z -2.12986907e+03 1.90203427e+02 1.15661198e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill +Body921 4.87827229e+05 1.74774715e+04 ! particle number mass Rhill 1.20390163e+04 !particle radius in AU 1.03624859e+07 4.00217371e+06 -3.33921276e+04 ! x y z -7.29889411e+02 1.83209523e+03 -3.12704990e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill +Body922 1.05756885e+06 2.06748257e+04 ! particle number mass Rhill 1.05735757e+04 !particle radius in AU 9.54531799e+06 -3.82777787e+06 -3.08506232e+03 ! x y z 7.65760228e+02 1.88710727e+03 1.54248284e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill +Body923 6.63813995e+04 1.09433671e+04 ! particle number mass Rhill 6.19228768e+03 !particle radius in AU -1.26508821e+07 -4.96817255e+06 -7.46581466e+04 ! x y z 6.38137580e+02 -1.65998064e+03 -1.05229703e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill +Body924 1.00406632e+05 9.99833989e+03 ! particle number mass Rhill 7.10814791e+03 !particle radius in AU 6.65714202e+06 8.41817806e+06 5.11373555e+04 ! x y z -1.58896209e+03 1.22956179e+03 -1.67191084e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill +Body925 5.87747010e+05 2.18911763e+04 ! particle number mass Rhill 8.69325608e+03 !particle radius in AU -1.30432977e+07 2.41169295e+06 9.46191119e+04 ! x y z -3.33638402e+02 -1.76051970e+03 1.16209842e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill +Body926 4.75462803e+04 1.18644248e+04 ! particle number mass Rhill 3.75974028e+03 !particle radius in AU 1.62111278e+07 2.59399704e+06 1.61282577e+05 ! x y z -2.71405873e+02 1.59773598e+03 -5.81005218e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill +Body927 3.60899345e+05 1.33896338e+04 ! particle number mass Rhill 7.38892108e+03 !particle radius in AU 2.06345127e+06 9.22023526e+06 -7.22571528e+03 ! x y z -2.09005362e+03 4.30799852e+02 -1.90823955e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill +Body928 6.94986732e+05 2.84409336e+04 ! particle number mass Rhill 9.19272993e+03 !particle radius in AU -1.13721993e+07 -1.13987875e+07 8.83921800e+04 ! x y z 1.16224359e+03 -1.15160239e+03 -1.45306478e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill +Body929 1.42004128e+06 2.12356496e+04 ! particle number mass Rhill 1.16650334e+04 !particle radius in AU 2.77942362e+06 -9.01437717e+06 -5.67717467e+04 ! x y z 2.03984238e+03 6.54242641e+02 1.85000009e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill +Body930 2.24733888e+05 1.45872492e+04 ! particle number mass Rhill 9.29804930e+03 !particle radius in AU -1.18629177e+07 -4.45829589e+05 7.85442143e+04 ! x y z 1.01652144e+02 -1.91537773e+03 4.05611152e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill +Body931 1.47976471e+06 2.49169315e+04 ! particle number mass Rhill 1.18263271e+04 !particle radius in AU 8.95238380e+06 6.51302794e+06 3.45161345e+04 ! x y z -1.14800130e+03 1.59335172e+03 -7.03295250e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill +Body932 1.70114086e+05 1.29084720e+04 ! particle number mass Rhill 5.75041368e+03 !particle radius in AU 6.69475580e+06 -9.28551107e+06 -4.91541805e+04 ! x y z 1.59233658e+03 1.14243210e+03 1.78210731e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill +Body933 1.56606121e+06 2.62055008e+04 ! particle number mass Rhill 1.20518923e+04 !particle radius in AU 1.12760016e+07 1.84611316e+06 -7.48490699e+04 ! x y z -2.79591330e+02 1.91267253e+03 -1.78025369e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill +Body934 8.12648144e+05 1.75896750e+04 ! particle number mass Rhill 9.68470759e+03 !particle radius in AU -6.71328804e+03 9.68278345e+06 -5.52334404e+04 ! x y z -2.08432418e+03 -8.54871802e+00 1.66064441e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill +Body935 9.32242815e+04 1.03934151e+04 ! particle number mass Rhill 4.70574813e+03 !particle radius in AU -6.96627774e+06 9.23026738e+06 -2.87240918e+04 ! x y z -1.52286258e+03 -1.17748048e+03 -3.95814303e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill +Body936 9.15923643e+04 9.93071034e+03 ! particle number mass Rhill 4.67812785e+03 !particle radius in AU 1.23905483e+05 -1.09739869e+07 1.36396267e+04 ! x y z 1.98817193e+03 2.04705438e+01 -2.01972620e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill +Body937 7.73209091e+04 8.79356723e+03 ! particle number mass Rhill 6.51530333e+03 !particle radius in AU -6.63943360e+06 7.91940404e+06 6.09014325e+04 ! x y z -1.56332740e+03 -1.31647658e+03 2.73931815e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill +Body938 1.15431944e+06 2.13451050e+04 ! particle number mass Rhill 1.08866518e+04 !particle radius in AU 5.51288052e+06 -8.48543006e+06 3.44011201e+04 ! x y z 1.72675322e+03 1.14606699e+03 -1.64108886e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill +Body939 1.21706761e+05 1.16464966e+04 ! particle number mass Rhill 7.57891828e+03 !particle radius in AU -6.54081328e+06 -9.90968551e+06 -8.75124119e+02 ! x y z 1.59735811e+03 -1.02533687e+03 2.87435690e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill +Body940 1.44471560e+05 9.79699996e+03 ! particle number mass Rhill 5.44560895e+03 !particle radius in AU -6.45935547e+06 -6.74639603e+06 -1.43260248e+04 ! x y z 1.55668948e+03 -1.48434496e+03 1.71287847e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill +Body941 3.71977165e+04 6.32336532e+03 ! particle number mass Rhill 5.10514110e+03 !particle radius in AU 6.10089271e+06 -7.18245737e+06 -1.54248190e+04 ! x y z 1.63416125e+03 1.39276630e+03 2.48510957e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill +Body942 1.37980847e+05 9.55947495e+03 ! particle number mass Rhill 5.36280409e+03 !particle radius in AU 4.82602306e+06 -8.03439545e+06 -7.67679872e+02 ! x y z 1.85073484e+03 1.06188550e+03 8.12750484e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill +Body943 4.27857629e+05 1.62853799e+04 ! particle number mass Rhill 1.15239690e+04 !particle radius in AU 4.44437862e+06 -9.91763988e+06 4.31307866e+04 ! x y z 1.80875755e+03 8.27020553e+02 -1.01329362e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill +Body944 1.74965082e+06 3.10582259e+04 ! particle number mass Rhill 1.25055498e+04 !particle radius in AU -1.14222033e+07 -6.06408313e+06 4.03399165e+03 ! x y z 8.56095542e+02 -1.61207885e+03 -3.63239850e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill +Body945 6.72561666e+04 7.87507156e+03 ! particle number mass Rhill 6.21936950e+03 !particle radius in AU 7.76499151e+06 5.91861320e+06 3.34591110e+04 ! x y z -1.26430519e+03 1.67125233e+03 9.81409163e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill +Body946 8.64373959e+04 8.05199233e+03 ! particle number mass Rhill 6.76191251e+03 !particle radius in AU 6.41969262e+05 9.07081567e+06 -7.35294633e+03 ! x y z -2.17769789e+03 1.33895254e+02 1.52672754e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill +Body947 5.36332278e+04 1.03602264e+04 ! particle number mass Rhill 3.91378509e+03 !particle radius in AU -1.06528591e+07 8.93880305e+06 -5.72463584e+04 ! x y z -1.12548728e+03 -1.34323474e+03 6.06469294e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill +Body948 1.17211860e+05 2.10405973e+04 ! particle number mass Rhill 7.48444340e+03 !particle radius in AU -3.19955637e+06 2.16099834e+07 -4.14759774e+03 ! x y z -1.38306232e+03 -1.85981613e+02 8.81754791e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill +Body949 9.11608285e+04 1.21936686e+04 ! particle number mass Rhill 6.88290450e+03 !particle radius in AU -1.10508713e+07 7.71301153e+06 -1.18282672e+05 ! x y z -1.00552378e+03 -1.48763887e+03 9.37513940e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill +Body950 4.59859255e+05 1.50029271e+04 ! particle number mass Rhill 8.01051874e+03 !particle radius in AU -6.84568402e+06 6.93126559e+06 -8.44628949e+04 ! x y z -1.48797188e+03 -1.48762515e+03 1.55236862e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill +Body951 1.26288065e+06 2.47709011e+04 ! particle number mass Rhill 1.12177675e+04 !particle radius in AU -4.99810043e+06 1.03574496e+07 4.97035769e+03 ! x y z -1.74218913e+03 -8.42934517e+02 -8.95086256e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill +Body952 1.67008034e+06 2.22513268e+04 ! particle number mass Rhill 1.23130257e+04 !particle radius in AU -5.22893040e+06 -8.08300727e+06 -6.54096012e+04 ! x y z 1.73636332e+03 -1.16550147e+03 -7.26670162e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill +Body953 7.95372577e+05 1.86967687e+04 ! particle number mass Rhill 9.61558846e+03 !particle radius in AU 8.48788962e+06 5.61313541e+06 -3.97847978e+04 ! x y z -1.16430859e+03 1.69033461e+03 -1.63966122e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill +Body954 8.47395554e+04 1.00079467e+04 ! particle number mass Rhill 6.71734597e+03 !particle radius in AU -8.10346206e+06 8.11251976e+06 -2.39530194e+04 ! x y z -1.39528138e+03 -1.34141849e+03 -1.46583663e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill +Body955 6.93438909e+05 2.84903753e+04 ! particle number mass Rhill 9.18590040e+03 !particle radius in AU 1.01379295e+07 1.27148009e+07 1.28683748e+05 ! x y z -1.25755832e+03 1.02459820e+03 2.79221586e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill +Body956 7.31942427e+04 1.24518277e+04 ! particle number mass Rhill 4.34121509e+03 !particle radius in AU -3.34906408e+06 -1.45007656e+07 3.06724892e+04 ! x y z 1.65986723e+03 -3.87189481e+02 -1.20093781e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill +Body957 3.55587603e+05 1.37341596e+04 ! particle number mass Rhill 7.35249155e+03 !particle radius in AU 9.72284422e+06 5.24694587e+05 -2.03401805e+04 ! x y z -1.64711568e+02 2.09599540e+03 2.03343245e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill +Body958 1.71213733e+06 2.28612972e+04 ! particle number mass Rhill 1.24155280e+04 !particle radius in AU 8.48073237e+06 4.51058486e+06 2.53523368e+04 ! x y z -9.87084405e+02 1.87149600e+03 2.30788388e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill +Body959 1.49068065e+05 1.05743641e+04 ! particle number mass Rhill 5.50275953e+03 !particle radius in AU 6.45455163e+06 -7.63351792e+06 -1.42285814e+05 ! x y z 1.59381455e+03 1.33155701e+03 -4.40247600e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill +Body960 2.47891004e+05 1.32144407e+04 ! particle number mass Rhill 6.51937434e+03 !particle radius in AU -8.78159278e+06 5.76426176e+06 9.09624378e+04 ! x y z -1.08134022e+03 -1.71795196e+03 -8.73857909e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill +Body961 2.14835918e+05 1.35103323e+04 ! particle number mass Rhill 6.21567016e+03 !particle radius in AU 9.52925894e+06 6.10621713e+06 8.38784066e+04 ! x y z -1.05186401e+03 1.64327133e+03 8.87777455e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill +Body962 6.29065831e+05 1.73269791e+04 ! particle number mass Rhill 8.89237350e+03 !particle radius in AU 1.01892854e+07 -1.36265120e+06 -1.12357324e+04 ! x y z 2.44094973e+02 2.01912416e+03 -1.23871747e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill +Body963 5.16147317e+05 1.50575212e+04 ! particle number mass Rhill 1.22676172e+04 !particle radius in AU -9.44952303e+06 6.64794032e+05 2.66575883e+04 ! x y z -1.65527486e+02 -2.12001832e+03 -2.00449290e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill +Body964 1.85821608e+05 1.40472593e+04 ! particle number mass Rhill 5.92221816e+03 !particle radius in AU 1.83154773e+05 -1.22553647e+07 8.81712635e+04 ! x y z 1.88138741e+03 4.37026901e+01 -1.09775010e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill +Body965 1.06343938e+06 2.54408850e+04 ! particle number mass Rhill 1.05931042e+04 !particle radius in AU -7.97487196e+06 -9.77747428e+06 2.72278643e+04 ! x y z 1.43311159e+03 -1.15357841e+03 -9.89419786e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill +Body966 1.58002425e+06 2.58710114e+04 ! particle number mass Rhill 1.20876047e+04 !particle radius in AU 1.94057310e+06 1.10640858e+07 -6.67098464e+04 ! x y z -1.92090005e+03 3.39961177e+02 9.93411747e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill +Body967 8.58401235e+05 2.07572427e+04 ! particle number mass Rhill 9.86315310e+03 !particle radius in AU -4.65532155e+06 1.00459520e+07 1.92148265e+04 ! x y z -1.79352379e+03 -7.96705869e+02 7.04140623e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill +Body968 1.57528626e+05 1.22389329e+04 ! particle number mass Rhill 5.60495536e+03 !particle radius in AU -7.15394211e+06 8.89862789e+06 -1.32380207e+04 ! x y z -1.51757568e+03 -1.20615223e+03 1.35463888e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill +Body969 2.12134735e+04 6.51263393e+03 ! particle number mass Rhill 4.23356519e+03 !particle radius in AU -9.43261369e+06 7.11601450e+06 5.44346690e+03 ! x y z -1.15890933e+03 -1.51651908e+03 -4.86353449e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill +Body970 3.29578174e+05 1.21204951e+04 ! particle number mass Rhill 7.16866817e+03 !particle radius in AU 4.46987922e+06 -7.54136153e+06 -1.75706858e+03 ! x y z 1.91337212e+03 1.12893149e+03 -4.46774330e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill +Body971 1.05411151e+05 1.11684890e+04 ! particle number mass Rhill 4.90246515e+03 !particle radius in AU -1.19950136e+07 8.16218853e+05 1.95819347e+04 ! x y z -1.42817655e+02 -1.87495301e+03 1.71449405e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill +Body972 2.55344298e+05 1.76418586e+04 ! particle number mass Rhill 9.70236728e+03 !particle radius in AU -7.49210830e+06 -1.17675041e+07 3.09999690e+03 ! x y z 1.49945194e+03 -9.16839153e+02 1.04827746e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill +Body973 1.37703494e+05 1.12425461e+04 ! particle number mass Rhill 7.89739710e+03 !particle radius in AU 1.05050579e+07 -3.74118158e+06 2.63300605e+04 ! x y z 6.73610054e+02 1.82488852e+03 9.07423039e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill +Body974 9.84103923e+05 2.00432924e+04 ! particle number mass Rhill 1.03228429e+04 !particle radius in AU 4.89752221e+06 -8.85494139e+06 -6.75229080e+04 ! x y z 1.83164749e+03 9.48103081e+02 -1.57990456e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill +Body975 1.00252238e+05 9.22748863e+03 ! particle number mass Rhill 4.82114680e+03 !particle radius in AU -4.94662921e+06 -8.78447645e+06 -1.52590989e+04 ! x y z 1.78359269e+03 -1.02161338e+03 3.01217587e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill +Body976 5.53135509e+05 1.68123246e+04 ! particle number mass Rhill 8.51914826e+03 !particle radius in AU -2.76648508e+06 1.00209975e+07 1.12220539e+04 ! x y z -1.94324711e+03 -5.66151040e+02 8.07071042e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill +Body977 5.41267890e+05 1.56970657e+04 ! particle number mass Rhill 1.24634921e+04 !particle radius in AU 8.29729830e+05 -9.56636031e+06 7.03935010e+04 ! x y z 2.11653601e+03 1.88209489e+02 4.94852919e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill +Body978 4.92634995e+04 7.32653208e+03 ! particle number mass Rhill 3.80446929e+03 !particle radius in AU -9.93606780e+06 -1.91150532e+06 -4.47495052e+04 ! x y z 3.80453971e+02 -2.01867650e+03 -1.85403349e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill +Body979 1.65274417e+04 7.83114800e+03 ! particle number mass Rhill 3.89556870e+03 !particle radius in AU -8.01896356e+06 1.37141963e+07 -5.15166167e+03 ! x y z -1.39036186e+03 -8.35965747e+02 -1.59320152e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill +Body980 5.24214865e+04 6.69045772e+03 ! particle number mass Rhill 5.72363723e+03 !particle radius in AU -1.85002148e+06 -8.80679540e+06 1.35544509e+04 ! x y z 2.13508260e+03 -4.62001715e+02 -1.42665412e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill +Body981 9.63241215e+04 2.06858686e+04 ! particle number mass Rhill 4.75733808e+03 !particle radius in AU 4.27594078e+06 -2.26843001e+07 -1.55793996e+05 ! x y z 1.32907578e+03 2.52657022e+02 -1.02801831e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill +Body982 1.49951567e+05 1.33263763e+04 ! particle number mass Rhill 8.12492435e+03 !particle radius in AU -5.68991814e+06 -1.12264560e+07 -5.21915423e+04 ! x y z 1.65234255e+03 -8.32199277e+02 -1.84232859e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill +Body983 7.13391753e+05 2.49266565e+04 ! particle number mass Rhill 9.27317292e+03 !particle radius in AU 5.57078844e+06 -1.29122392e+07 2.98061387e+04 ! x y z 1.60978124e+03 6.76666256e+02 -1.81556760e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill +Body984 4.91078407e+05 1.52853655e+04 ! particle number mass Rhill 1.20657022e+04 !particle radius in AU -9.23646620e+06 -3.48333300e+06 -5.66153126e+04 ! x y z 7.62840282e+02 -1.92758119e+03 -1.42885719e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill +Body985 3.03747127e+04 9.37667012e+03 ! particle number mass Rhill 4.77169909e+03 !particle radius in AU -1.33386904e+07 -7.03492878e+06 5.22429887e+04 ! x y z 7.86090473e+02 -1.49627525e+03 -5.64598667e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill +Body986 7.62789305e+04 7.49209491e+03 ! particle number mass Rhill 4.40136307e+03 !particle radius in AU -4.47610210e+06 -7.77281547e+06 -5.58878589e+04 ! x y z 1.89664270e+03 -1.07211196e+03 -5.72288054e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill +Body987 5.38217351e+05 1.59161032e+04 ! particle number mass Rhill 8.44186160e+03 !particle radius in AU -9.07004249e+06 -3.73002016e+06 4.79325609e+04 ! x y z 7.83046085e+02 -1.94541887e+03 -4.25596103e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill +Body988 1.46677051e+06 5.27296565e+04 ! particle number mass Rhill 1.17916085e+04 !particle radius in AU 4.77535808e+06 2.28272957e+07 -1.30485185e+05 ! x y z -1.33059311e+03 2.72226813e+02 1.17199136e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill +Body989 7.83810354e+05 1.63919096e+04 ! particle number mass Rhill 9.56876735e+03 !particle radius in AU -6.57222396e+06 -6.18414714e+06 5.03770860e+03 ! x y z 1.49882331e+03 -1.57253167e+03 6.35917239e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill +Body990 9.04479666e+05 2.77109755e+04 ! particle number mass Rhill 1.00365688e+04 !particle radius in AU 1.29779524e+07 -6.46401216e+06 3.48941370e+04 ! x y z 7.80281531e+02 1.52896125e+03 1.61899666e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill +Body991 1.14972347e+06 2.99375373e+04 ! particle number mass Rhill 1.08721841e+04 !particle radius in AU 8.92019709e+06 1.13125647e+07 2.46536424e+04 ! x y z -1.35073430e+03 1.07341543e+03 -2.21311295e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill +Body992 6.67357642e+04 1.09002272e+04 ! particle number mass Rhill 6.20328692e+03 !particle radius in AU 1.07245478e+07 -8.18329560e+06 2.13161879e+04 ! x y z 1.05166921e+03 1.44439805e+03 3.54109421e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill +Body993 6.11370558e+05 1.56023100e+04 ! particle number mass Rhill 1.29798746e+04 !particle radius in AU -9.30550358e+06 8.66046042e+05 5.81017139e+04 ! x y z -2.29894248e+02 -2.12058022e+03 1.24228458e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill +Body994 4.45237521e+05 1.77384318e+04 ! particle number mass Rhill 1.16779401e+04 !particle radius in AU 7.60186730e+06 8.86968517e+06 -2.74017031e+04 ! x y z -1.43991356e+03 1.26760065e+03 4.33685357e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill +Body995 4.53014340e+05 2.01907210e+04 ! particle number mass Rhill 1.17455396e+04 !particle radius in AU 7.15301504e+06 -1.14025302e+07 6.70488022e+04 ! x y z 1.51419253e+03 9.18252451e+02 1.10269853e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill +Body996 3.76622166e+05 1.36635044e+04 ! particle number mass Rhill 7.49470061e+03 !particle radius in AU 1.23698701e+06 9.47565448e+06 3.23875154e+04 ! x y z -2.10148424e+03 2.50074394e+02 -1.91619258e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill +Body997 1.45808293e+06 2.77686048e+04 ! particle number mass Rhill 1.17682821e+04 !particle radius in AU -2.19991014e+06 -1.20488900e+07 1.28489104e+05 ! x y z 1.85062965e+03 -3.21678958e+02 -6.16390717e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill +Body998 6.44391266e+05 1.73102080e+04 ! particle number mass Rhill 8.96400751e+03 !particle radius in AU -9.49865812e+06 -3.70460583e+06 1.09215654e+05 ! x y z 7.34938455e+02 -1.90450100e+03 -1.30332251e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill +Body999 3.65175986e+05 1.64023546e+04 ! particle number mass Rhill 1.09312475e+04 !particle radius in AU 1.16226476e+07 1.38150369e+06 -1.92583058e+04 ! x y z -2.26381104e+02 1.88932307e+03 9.55895676e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill +Body1000 9.88081458e+05 1.83194505e+04 ! particle number mass Rhill 1.03367318e+04 !particle radius in AU 2.15229887e+06 9.00160460e+06 -1.92923892e+04 ! x y z -2.09656754e+03 4.96075668e+02 -1.16719539e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill +Body1001 6.62894303e+05 1.89591067e+04 ! particle number mass Rhill 9.04899661e+03 !particle radius in AU 1.06770435e+06 1.09358139e+07 4.20062155e+03 ! x y z -1.96462815e+03 1.83747788e+02 1.48559298e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill +Body1002 2.36132593e+05 1.08091204e+04 ! particle number mass Rhill 6.41462061e+03 !particle radius in AU -6.42789916e+06 -5.88137546e+06 5.96791682e+04 ! x y z 1.50006484e+03 -1.65201659e+03 -1.22137321e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill +Body1003 4.16392913e+05 1.52456984e+04 ! particle number mass Rhill 7.74973359e+03 !particle radius in AU -6.05164524e+06 -8.28607289e+06 -1.65389595e+03 ! x y z 1.67689384e+03 -1.17484360e+03 -6.18688546e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill +Body1004 7.30911687e+05 2.22864831e+04 ! particle number mass Rhill 9.34847201e+03 !particle radius in AU 1.21489394e+07 1.95514302e+06 1.23709104e+05 ! x y z -3.04295890e+02 1.85437159e+03 3.05804994e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill +Body1005 7.04656544e+05 1.96594388e+04 ! particle number mass Rhill 9.23516856e+03 !particle radius in AU 7.58308846e+06 8.14384020e+06 6.98191668e+04 ! x y z -1.44939292e+03 1.32522723e+03 3.40820153e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill +Body1006 5.25571133e+05 1.46176750e+04 ! particle number mass Rhill 8.37521886e+03 !particle radius in AU 2.35699353e+06 8.90977821e+06 -1.38321436e+04 ! x y z -2.07425100e+03 5.54407039e+02 3.21999470e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill +Body1007 7.82045501e+05 2.08763285e+04 ! particle number mass Rhill 9.56158017e+03 !particle radius in AU -6.64360612e+06 -9.33976004e+06 -1.15941594e+05 ! x y z 1.59144044e+03 -1.09353179e+03 -2.96304740e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill +Body1008 8.70025224e+04 1.07141500e+04 ! particle number mass Rhill 4.59864210e+03 !particle radius in AU 1.19168220e+07 -3.45563255e+06 1.11394399e+04 ! x y z 5.17861579e+02 1.76812064e+03 1.39033798e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill +Body1009 5.64137560e+04 9.27247783e+03 ! particle number mass Rhill 3.98028346e+03 !particle radius in AU -9.71007247e+06 7.35807090e+06 -1.31989891e+05 ! x y z -1.16325288e+03 -1.47233955e+03 8.07759554e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill +Body1010 1.58980135e+06 2.10225293e+04 ! particle number mass Rhill 1.21124859e+04 !particle radius in AU 1.41799542e+06 -9.13902699e+06 4.24742676e+04 ! x y z 2.10898023e+03 3.21322532e+02 -1.26636042e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill +Body1011 6.48898466e+05 3.47604826e+04 ! particle number mass Rhill 8.98485858e+03 !particle radius in AU -1.08957227e+07 -1.70176619e+07 1.40648070e+05 ! x y z 1.21605254e+03 -8.04289078e+02 5.08636985e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill +Body1012 1.42919802e+06 2.30069491e+04 ! particle number mass Rhill 1.16900526e+04 !particle radius in AU -5.98329541e+06 8.30801044e+06 9.09812707e+03 ! x y z -1.64846384e+03 -1.22236838e+03 2.54695878e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill +Body1013 5.40040880e+05 1.47476030e+04 ! particle number mass Rhill 8.45138479e+03 !particle radius in AU -4.65472167e+06 -7.85395586e+06 -5.30698954e+03 ! x y z 1.85738188e+03 -1.11675155e+03 9.77147330e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill +Body1014 3.15876640e+05 2.57826803e+04 ! particle number mass Rhill 1.04153730e+04 !particle radius in AU 1.69188525e+07 8.47840581e+06 -4.67327616e+04 ! x y z -6.66379185e+02 1.35677843e+03 1.32594121e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill +Body1015 1.28437998e+06 2.18214380e+04 ! particle number mass Rhill 1.12810669e+04 !particle radius in AU -7.04671066e+06 7.15586671e+06 -3.56479637e+04 ! x y z -1.47400909e+03 -1.45932821e+03 -9.67794404e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill +Body1016 8.51014432e+04 1.07189121e+04 ! particle number mass Rhill 6.72689473e+03 !particle radius in AU 7.33791533e+06 -9.58517692e+06 3.03846079e+04 ! x y z 1.49051721e+03 1.17984608e+03 -1.97955637e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill +Body1017 7.73322783e+04 1.01200226e+04 ! particle number mass Rhill 4.42153023e+03 !particle radius in AU 1.21152578e+07 2.07326034e+05 4.57151931e+03 ! x y z -2.18290977e+01 1.86989325e+03 -1.30418260e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill +Body1018 9.71965028e+05 1.81983837e+04 ! particle number mass Rhill 1.02802232e+04 !particle radius in AU -1.78690734e+06 9.20811486e+06 6.52613267e+03 ! x y z -2.08865445e+03 -3.88689300e+02 7.21544338e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill +Body1019 1.49585486e+05 1.14358236e+04 ! particle number mass Rhill 5.50911894e+03 !particle radius in AU -6.29895686e+06 8.71900726e+06 -7.33711540e+03 ! x y z -1.63469757e+03 -1.16304985e+03 4.84189753e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill +Body1020 1.78577195e+06 2.71175230e+04 ! particle number mass Rhill 1.25910224e+04 !particle radius in AU 9.10086700e+06 -7.03219894e+06 -7.28785098e+04 ! x y z 1.17345937e+03 1.50811083e+03 -6.68343594e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill +Body1021 1.34502113e+05 9.24659035e+03 ! particle number mass Rhill 7.83571609e+03 !particle radius in AU -4.28807654e+06 -7.85915508e+06 2.65183664e+04 ! x y z 1.92700749e+03 -1.07363344e+03 6.86417879e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill +Body1022 2.01917888e+05 1.22758301e+04 ! particle number mass Rhill 6.08850399e+03 !particle radius in AU 6.47343353e+06 8.23566063e+06 3.01013545e+04 ! x y z -1.59000120e+03 1.26250583e+03 -1.25792680e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill +Body1023 1.71637754e+06 2.20305062e+04 ! particle number mass Rhill 1.24257689e+04 !particle radius in AU -8.70674127e+06 -2.94645030e+06 -2.92623754e+04 ! x y z 7.11914106e+02 -2.04951615e+03 1.66637378e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill +Body1024 1.12639788e+06 4.33869282e+04 ! particle number mass Rhill 1.07981562e+04 !particle radius in AU -1.75476786e+07 -1.12768402e+07 1.80639637e+05 ! x y z 7.59106783e+02 -1.22286396e+03 1.20937631e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill +Body1025 5.83604478e+05 2.16754875e+04 ! particle number mass Rhill 1.27803239e+04 !particle radius in AU 7.04696388e+06 -1.10885823e+07 -6.17953039e+04 ! x y z 1.50498521e+03 9.91641405e+02 -4.14259212e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill +Body1026 2.20352204e+05 1.09859692e+04 ! particle number mass Rhill 6.26842061e+03 !particle radius in AU 9.08053413e+06 1.73092917e+06 9.84209268e+03 ! x y z -4.33130368e+02 2.10086011e+03 -1.06621334e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill +Body1027 1.56061006e+06 3.08692906e+04 ! particle number mass Rhill 1.20378926e+04 !particle radius in AU -3.00902975e+06 -1.32946373e+07 -5.90702502e+03 ! x y z 1.71319262e+03 -4.00878759e+02 -9.96066412e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill +Body1028 3.75033223e+05 1.31801704e+04 ! particle number mass Rhill 7.48414588e+03 !particle radius in AU -4.04201967e+06 -8.29248316e+06 -4.12753129e+03 ! x y z 1.92318448e+03 -9.71522928e+02 1.76717922e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill +Body1029 4.12899419e+05 2.61767083e+04 ! particle number mass Rhill 7.72799953e+03 !particle radius in AU 1.75193620e+07 -2.65169374e+06 1.13236551e+05 ! x y z 2.30440171e+02 1.53861792e+03 6.99701915e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill +Body1030 8.89682523e+05 1.86122096e+04 ! particle number mass Rhill 9.98153536e+03 !particle radius in AU 3.43641275e+06 -8.93033322e+06 -2.09644587e+04 ! x y z 1.99449709e+03 7.67681042e+02 -1.69978122e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill +Body1031 2.48040793e+05 1.35267215e+04 ! particle number mass Rhill 6.52068720e+03 !particle radius in AU -8.94110733e+06 -6.35904272e+06 -5.39789507e+04 ! x y z 1.10919784e+03 -1.62340625e+03 -3.28674782e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill +Body1032 5.49793186e+04 1.17511732e+04 ! particle number mass Rhill 5.81525514e+03 !particle radius in AU -1.30741810e+07 8.57418735e+06 -1.19905050e+03 ! x y z -9.25024677e+02 -1.37017223e+03 4.97519787e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill +Body1033 6.00472566e+05 1.75807128e+04 ! particle number mass Rhill 1.29022874e+04 !particle radius in AU -2.54473466e+06 1.02641366e+07 -6.03109093e+04 ! x y z -1.94287173e+03 -5.03549968e+02 -1.40714774e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill +Body1034 4.73743959e+04 7.85601650e+03 ! particle number mass Rhill 3.75520420e+03 !particle radius in AU -2.05229123e+06 1.07524321e+07 -3.91281600e+04 ! x y z -1.94369561e+03 -3.72923016e+02 -4.66840760e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill +Body1035 1.71364118e+05 1.29921200e+04 ! particle number mass Rhill 8.49458734e+03 !particle radius in AU 9.81310678e+06 -6.45686284e+06 -8.14126007e+04 ! x y z 1.04337462e+03 1.60488987e+03 -6.74659876e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill +Body1036 1.51256186e+06 2.01685135e+04 ! particle number mass Rhill 1.19130613e+04 !particle radius in AU 6.87800371e+06 5.51073017e+06 -5.46411638e+04 ! x y z -1.36034802e+03 1.74332100e+03 4.94690697e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill +Body1037 2.00124444e+05 1.24535014e+04 ! particle number mass Rhill 6.07042423e+03 !particle radius in AU -1.07553881e+07 -9.12112446e+05 -4.34386235e+04 ! x y z 1.54461489e+02 -1.98147483e+03 -1.70607618e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill +Body1038 2.74425239e+04 7.69344388e+03 ! particle number mass Rhill 4.61293151e+03 !particle radius in AU 1.27377380e+07 -1.09778054e+05 -6.19904167e+04 ! x y z -1.25732694e+00 1.84331966e+03 -2.21143255e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill +Body1039 1.03073034e+06 3.34851913e+04 ! particle number mass Rhill 1.04833644e+04 !particle radius in AU -5.13284511e+05 -1.67637883e+07 -2.82433912e+03 ! x y z 1.59521599e+03 -5.35780376e+01 1.00615428e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill +Body1040 8.09310632e+04 1.08186380e+04 ! particle number mass Rhill 4.48908069e+03 !particle radius in AU -1.26602775e+07 4.02918646e+05 1.71412707e+04 ! x y z -5.95275114e+01 -1.83478145e+03 -6.71275300e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill +Body1041 2.07976707e+05 1.40611818e+04 ! particle number mass Rhill 6.14880277e+03 !particle radius in AU 6.61475732e+05 1.19251089e+07 4.99716805e+03 ! x y z -1.89472956e+03 8.25618952e+01 -1.61809802e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill +Body1042 1.56927251e+04 4.40631103e+03 ! particle number mass Rhill 3.82885081e+03 !particle radius in AU 8.80868758e+06 9.32656348e+05 -4.18862348e+04 ! x y z -2.17867324e+02 2.19123384e+03 -1.17898705e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill +Body1043 1.25482841e+05 9.88544728e+03 ! particle number mass Rhill 5.19573642e+03 !particle radius in AU 1.00480766e+07 1.10334466e+05 4.24190753e+04 ! x y z -1.56774101e+01 2.05584808e+03 1.80904032e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill +Body1044 5.76644423e+04 6.79383115e+03 ! particle number mass Rhill 5.90842447e+03 !particle radius in AU -2.68410660e+06 -8.45093049e+06 -2.25369168e+04 ! x y z 2.08071561e+03 -7.11201230e+02 1.07896227e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill +Body1045 1.27910959e+05 1.05238625e+04 ! particle number mass Rhill 7.70557245e+03 !particle radius in AU -2.49395661e+06 -1.01785537e+07 4.67622537e+04 ! x y z 1.97783372e+03 -4.46467141e+02 1.43639227e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill +Body1046 1.34350101e+06 2.00599763e+04 ! particle number mass Rhill 1.14515690e+04 !particle radius in AU -5.37771504e+06 7.44714074e+06 -6.06003060e+03 ! x y z -1.75372901e+03 -1.25777673e+03 1.33051245e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill +Body1047 1.39800754e+05 1.50279289e+04 ! particle number mass Rhill 7.93728841e+03 !particle radius in AU 1.43736621e+07 3.27074646e+06 -1.17711231e+05 ! x y z -3.95229369e+02 1.65048180e+03 -2.09427051e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill +Body1048 7.35813542e+05 1.62870205e+04 ! particle number mass Rhill 9.36932395e+03 !particle radius in AU -8.93375487e+06 -9.23297021e+05 -5.56404103e+04 ! x y z 2.58345498e+02 -2.18331951e+03 -1.86368551e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill +Body1049 2.08700220e+05 1.87560451e+04 ! particle number mass Rhill 9.07144821e+03 !particle radius in AU -1.28280097e+07 8.91411489e+06 -1.59387089e+04 ! x y z -9.55988990e+02 -1.37339914e+03 -9.51566283e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill +Body1050 8.72300988e+05 2.84455766e+04 ! particle number mass Rhill 9.91610503e+03 !particle radius in AU -1.22031914e+07 8.75617467e+06 1.35904643e+05 ! x y z -1.01713019e+03 -1.34842008e+03 -1.53941683e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill +Body1051 3.94208789e+05 1.58087172e+04 ! particle number mass Rhill 7.60958719e+03 !particle radius in AU -1.81887078e+05 1.09247030e+07 -4.35726533e+04 ! x y z -1.97588122e+03 -8.11807516e+00 -3.92064501e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill +Body1052 2.98029754e+04 8.88054529e+03 ! particle number mass Rhill 4.74157034e+03 !particle radius in AU 2.83878155e+06 1.44744864e+07 5.43842125e+04 ! x y z -1.65421841e+03 3.29251794e+02 -6.23680908e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill +Body1053 1.69212978e+05 1.16478963e+04 ! particle number mass Rhill 8.45889329e+03 !particle radius in AU 1.06135506e+07 -4.48083559e+05 1.72504569e+04 ! x y z 9.44982902e+01 2.00633631e+03 9.90801265e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill +Body1054 1.11476324e+06 4.68292988e+04 ! particle number mass Rhill 1.07608492e+04 !particle radius in AU 8.75139394e+06 -2.04107097e+07 -1.06034326e+05 ! x y z 1.29371288e+03 5.52007802e+02 5.05180489e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill +Body1055 3.02270985e+05 1.91780468e+04 ! particle number mass Rhill 6.96494702e+03 !particle radius in AU 1.42098400e+07 1.83559068e+06 -6.61680518e+04 ! x y z -2.13356829e+02 1.72148688e+03 1.01500659e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill +Body1056 1.74016041e+05 1.86889261e+04 ! particle number mass Rhill 8.53818219e+03 !particle radius in AU 1.55907651e+07 5.91768331e+06 -8.22551540e+04 ! x y z -5.54998648e+02 1.51448714e+03 -1.24785663e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill +Body1057 2.50703722e+05 2.27112105e+04 ! particle number mass Rhill 9.64323129e+03 !particle radius in AU 7.38866883e+06 1.67469371e+07 -5.52080317e+04 ! x y z -1.39370270e+03 6.17614086e+02 4.21088917e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill +Body1058 8.14993090e+05 1.77743579e+04 ! particle number mass Rhill 9.69401392e+03 !particle radius in AU -5.32551208e+06 -7.90474847e+06 -3.86152280e+04 ! x y z 1.76379265e+03 -1.19032254e+03 1.04687204e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill +Body1059 5.77311143e+05 2.14072614e+04 ! particle number mass Rhill 8.64149686e+03 !particle radius in AU 1.09164841e+07 -7.03739746e+06 2.56807871e+04 ! x y z 9.98839941e+02 1.51559226e+03 -2.93169292e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill +Body1060 1.13703075e+06 1.86906120e+04 ! particle number mass Rhill 1.08320270e+04 !particle radius in AU -6.83243259e+06 -5.66828831e+06 -1.72900877e+04 ! x y z 1.43365173e+03 -1.68974702e+03 2.09850405e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill +Body1061 1.33820642e+05 8.98629492e+03 ! particle number mass Rhill 7.82246015e+03 !particle radius in AU 6.82803774e+06 -5.76411607e+06 5.47258325e+04 ! x y z 1.40722674e+03 1.66603602e+03 1.74552894e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill +Body1062 2.64155254e+05 1.31901008e+04 ! particle number mass Rhill 6.65894479e+03 !particle radius in AU 9.35446321e+06 4.27959887e+06 1.44633990e+04 ! x y z -8.44145057e+02 1.86728709e+03 8.45220846e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill +Body1063 6.62937093e+05 1.93477118e+04 ! particle number mass Rhill 9.04919131e+03 !particle radius in AU -8.81635825e+06 6.95372208e+06 5.99171831e+04 ! x y z -1.18658772e+03 -1.54806956e+03 -4.34306118e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill +Body1064 7.34315131e+05 2.50109591e+04 ! particle number mass Rhill 9.36295974e+03 !particle radius in AU 3.76533406e+06 -1.36831259e+07 -4.52559471e+04 ! x y z 1.65006231e+03 5.02310012e+02 -7.82371716e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill +Body1065 1.67651593e+05 9.98045881e+03 ! particle number mass Rhill 8.43279516e+03 !particle radius in AU 8.66363031e+06 -3.01551364e+06 1.87644792e+04 ! x y z 6.94997160e+02 2.04127247e+03 4.50266436e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill +Body1066 1.80360416e+06 2.85821499e+04 ! particle number mass Rhill 1.26327938e+04 !particle radius in AU -1.81171981e+06 1.18614317e+07 -9.45077050e+04 ! x y z -1.85854649e+03 -2.65883958e+02 1.03797168e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill +Body1067 5.82344163e+05 1.77046313e+04 ! particle number mass Rhill 1.27711174e+04 !particle radius in AU -5.75108647e+06 -9.00212328e+06 2.40243267e+04 ! x y z 1.69440892e+03 -1.07016945e+03 -1.54605015e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill +Body1068 4.19804355e+05 1.33943636e+04 ! particle number mass Rhill 7.77084017e+03 !particle radius in AU 1.89490021e+06 8.84022962e+06 2.80656936e+04 ! x y z -2.12712367e+03 4.54322162e+02 -6.09085901e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill +Body1069 3.77849576e+05 1.26870716e+04 ! particle number mass Rhill 7.50283352e+03 !particle radius in AU -2.84338801e+06 -8.43577004e+06 -3.58252007e+04 ! x y z 2.07616764e+03 -6.90414631e+02 7.86561001e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill +Body1070 3.08880512e+05 1.47299271e+04 ! particle number mass Rhill 1.03379039e+04 !particle radius in AU 7.23228604e+06 8.21987628e+06 -1.12362711e+05 ! x y z -1.50075767e+03 1.29503859e+03 -4.22019044e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill +Body1071 1.59870183e+06 2.28294398e+04 ! particle number mass Rhill 1.21350477e+04 !particle radius in AU 9.59011374e+06 -1.47240572e+06 -1.17481033e+04 ! x y z 3.06970553e+02 2.09485379e+03 2.11775305e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill +Body1072 8.35009848e+04 1.53899607e+04 ! particle number mass Rhill 4.53610253e+03 !particle radius in AU 1.68353028e+07 -5.98357187e+06 1.37705248e+04 ! x y z 4.97655007e+02 1.46172367e+03 -1.17361347e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill +Body1073 7.99379007e+05 3.33138646e+04 ! particle number mass Rhill 9.63170656e+03 !particle radius in AU -1.80713745e+07 3.81143072e+06 1.47991860e+05 ! x y z -3.34463620e+02 -1.47042095e+03 -2.39441838e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill +Body1074 1.97672601e+06 2.81308084e+04 ! particle number mass Rhill 1.30247028e+04 !particle radius in AU 8.12437675e+06 -7.89692091e+06 8.58861149e+04 ! x y z 1.36700546e+03 1.38057019e+03 -5.74921289e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill +Body1075 4.49688061e+04 6.25101773e+03 ! particle number mass Rhill 5.43842039e+03 !particle radius in AU 6.94978876e+06 -5.59183335e+06 2.41251511e+04 ! x y z 1.34132445e+03 1.72532099e+03 1.12041963e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill +Body1076 2.56818687e+05 1.81510251e+04 ! particle number mass Rhill 6.59671726e+03 !particle radius in AU -1.18687337e+07 -8.19186254e+06 -8.44898067e+04 ! x y z 9.75684146e+02 -1.41995661e+03 -1.13753956e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill +Body1077 5.24592418e+05 1.57872425e+04 ! particle number mass Rhill 1.23341623e+04 !particle radius in AU -1.89628928e+06 -9.50227023e+06 -4.05755726e+04 ! x y z 2.07857991e+03 -4.30149853e+02 -4.45053647e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill +Body1078 2.82198763e+05 1.31237392e+04 ! particle number mass Rhill 6.80723430e+03 !particle radius in AU 1.01428084e+07 1.53976563e+06 -1.56033963e+05 ! x y z -3.05629291e+02 2.00359721e+03 3.06409701e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill +Body1079 3.13497820e+05 1.18814338e+04 ! particle number mass Rhill 7.05013076e+03 !particle radius in AU 3.99603404e+06 7.86593577e+06 5.11268274e+04 ! x y z -1.97467205e+03 9.78734350e+02 8.42153677e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill +Body1080 1.79001590e+05 1.04708242e+04 ! particle number mass Rhill 8.61895511e+03 !particle radius in AU 6.54388805e+06 -6.77023287e+06 -4.59748352e+03 ! x y z 1.54444266e+03 1.46455300e+03 -1.04095061e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill +Body1081 9.85458768e+04 9.85910416e+03 ! particle number mass Rhill 7.06396397e+03 !particle radius in AU 6.04468294e+06 8.82617315e+06 -1.42181890e+05 ! x y z -1.63233809e+03 1.16910466e+03 -1.88213215e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill +Body1082 2.55906276e+05 1.59131597e+04 ! particle number mass Rhill 9.70947993e+03 !particle radius in AU -1.11170150e+07 6.16749342e+06 -3.82809291e+04 ! x y z -8.98686306e+02 -1.59525493e+03 2.55769594e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill +Body1083 5.55510829e+05 2.72516797e+04 ! particle number mass Rhill 1.25718686e+04 !particle radius in AU 1.25437094e+06 -1.67969561e+07 -1.36312584e+04 ! x y z 1.58470452e+03 1.21111055e+02 3.59330822e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill +Body1084 4.68048454e+05 1.54091926e+04 ! particle number mass Rhill 8.05778982e+03 !particle radius in AU 8.43800086e+06 5.71987949e+06 -3.20922412e+04 ! x y z -1.14330692e+03 1.67937737e+03 -4.35374922e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill +Body1085 2.15219454e+05 1.10871568e+04 ! particle number mass Rhill 6.21936681e+03 !particle radius in AU -8.36235204e+06 -4.06735446e+06 1.77837069e+04 ! x y z 9.27393629e+02 -1.94041308e+03 2.61389295e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill +Body1086 2.99950641e+05 2.10812869e+04 ! particle number mass Rhill 1.02373037e+04 !particle radius in AU -2.57151201e+06 -1.54968676e+07 -9.11168853e+04 ! x y z 1.63776183e+03 -2.76257315e+02 2.80266971e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill +Body1087 1.59864352e+05 9.50617153e+03 ! particle number mass Rhill 8.30015495e+03 !particle radius in AU 8.66211969e+06 2.20644842e+06 5.69512514e+03 ! x y z -5.34166852e+02 2.11025355e+03 7.04563819e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill +Body1088 1.71165091e+06 2.20651978e+04 ! particle number mass Rhill 1.24143522e+04 !particle radius in AU 2.50735051e+06 -9.08802531e+06 1.47619891e+03 ! x y z 2.03247718e+03 5.95768658e+02 -1.11711400e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill +Body1089 3.74682990e+05 1.39092702e+04 ! particle number mass Rhill 1.10252975e+04 !particle radius in AU -5.08664524e+06 8.37497108e+06 -9.90101269e+04 ! x y z -1.78382195e+03 -1.07772723e+03 -8.86422219e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill +Body1090 2.04861379e+05 1.92942698e+04 ! particle number mass Rhill 6.11794676e+03 !particle radius in AU -1.16840844e+07 -1.15084512e+07 8.57597825e+04 ! x y z 1.14349612e+03 -1.15014615e+03 -1.13350767e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill +Body1091 2.70294042e+05 1.21706227e+04 ! particle number mass Rhill 9.88813712e+03 !particle radius in AU 1.06943121e+06 -9.45008765e+06 3.56309722e+04 ! x y z 2.11041887e+03 2.12664792e+02 3.02388980e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill +Body1092 1.15804931e+06 2.21787218e+04 ! particle number mass Rhill 1.08983650e+04 !particle radius in AU 5.08433832e+06 -9.29067904e+06 4.27842439e+04 ! x y z 1.77269334e+03 9.63287806e+02 7.20636543e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill +Body1093 1.85153486e+06 2.27742481e+04 ! particle number mass Rhill 1.27437222e+04 !particle radius in AU 2.28470278e+06 -8.96024162e+06 4.66696872e+04 ! x y z 2.09182568e+03 5.58957357e+02 -1.60064381e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill +Body1094 3.82760289e+04 5.93478404e+03 ! particle number mass Rhill 5.15400237e+03 !particle radius in AU 5.02334401e+06 7.15122722e+06 -2.56747414e+04 ! x y z -1.82437670e+03 1.28647622e+03 -2.33583185e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill +Body1095 3.80438079e+05 1.41130336e+04 ! particle number mass Rhill 7.51992756e+03 !particle radius in AU 8.03755250e+06 -5.51691122e+06 -2.97535232e+04 ! x y z 1.18216983e+03 1.74141617e+03 -1.17374833e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill +Body1096 1.81396845e+06 2.21520841e+04 ! particle number mass Rhill 1.26569454e+04 !particle radius in AU -3.07464536e+06 -8.53282891e+06 -1.60914047e+04 ! x y z 2.04872286e+03 -7.58617715e+02 -1.15594518e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill +Body1097 2.08849843e+05 1.09999150e+04 ! particle number mass Rhill 6.15739547e+03 !particle radius in AU -5.04841460e+06 7.90245442e+06 -3.74769403e+03 ! x y z -1.79658551e+03 -1.15333901e+03 -1.03989828e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill +Body1098 7.44137462e+05 1.61537051e+04 ! particle number mass Rhill 9.40452184e+03 !particle radius in AU -4.42483219e+06 7.92889737e+06 4.84429526e+03 ! x y z -1.90157556e+03 -1.02851509e+03 3.04297458e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill +Body1099 3.12842595e+05 1.29972766e+04 ! particle number mass Rhill 1.03819185e+04 !particle radius in AU -8.11772737e+06 5.17820457e+06 6.33191218e+04 ! x y z -1.16398577e+03 -1.76329084e+03 -1.46526563e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill +Body1100 5.00463370e+05 1.96095736e+04 ! particle number mass Rhill 1.21420799e+04 !particle radius in AU -2.42335217e+06 -1.21748818e+07 5.34958561e+04 ! x y z 1.82657196e+03 -3.58482164e+02 2.17635181e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill +Body1101 2.58863272e+05 1.24587177e+04 ! particle number mass Rhill 9.74673448e+03 !particle radius in AU -8.93954505e+06 -4.45366726e+06 9.09497729e+03 ! x y z 9.19578118e+02 -1.84128399e+03 1.10716364e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill +Body1102 3.92218511e+05 2.38002424e+04 ! particle number mass Rhill 7.59675917e+03 !particle radius in AU -1.18899005e+07 -1.11121035e+07 7.33607503e+03 ! x y z 1.10060063e+03 -1.20094721e+03 -1.56817575e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill +Body1103 1.50461478e+05 1.87935494e+04 ! particle number mass Rhill 8.13412353e+03 !particle radius in AU -1.65295735e+07 6.07637672e+06 3.45373521e+04 ! x y z -5.42846771e+02 -1.47237923e+03 2.24703732e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill +Body1104 3.40704575e+05 2.13916493e+04 ! particle number mass Rhill 7.24844729e+03 !particle radius in AU 8.55996783e+06 -1.26469693e+07 -1.46558216e+05 ! x y z 1.40714271e+03 9.26431770e+02 -1.15490272e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill +Body1105 1.22078004e+06 4.53053513e+04 ! particle number mass Rhill 1.10917006e+04 !particle radius in AU 5.19156391e+06 -2.05131401e+07 3.01682271e+04 ! x y z 1.38483992e+03 3.58833296e+02 7.82967392e-02 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill +Body1106 5.74059007e+05 1.75254745e+04 ! particle number mass Rhill 8.62523974e+03 !particle radius in AU -1.04637869e+07 -1.51846657e+06 -3.27030757e+04 ! x y z 3.09759590e+02 -1.99538112e+03 5.67233805e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill +Body1107 1.10233704e+05 9.77367852e+03 ! particle number mass Rhill 4.97611563e+03 !particle radius in AU 1.03065892e+07 -6.00329704e+05 -2.32121119e+04 ! x y z 1.34736424e+02 2.02883986e+03 3.23964316e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill +Body1108 4.92926514e+04 8.35869672e+03 ! particle number mass Rhill 5.60741952e+03 !particle radius in AU -1.14276246e+07 -1.75001038e+06 -9.86471787e+04 ! x y z 2.92929450e+02 -1.89771028e+03 5.40774568e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill +Body1109 2.28123366e+05 2.46002721e+04 ! particle number mass Rhill 6.34126039e+03 !particle radius in AU 1.88192745e+07 7.35750851e+06 -3.59880986e+04 ! x y z -5.35957066e+02 1.35808817e+03 -5.10111289e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill +Body1110 9.38291323e+05 2.39057714e+04 ! particle number mass Rhill 1.01601058e+04 !particle radius in AU 1.11584259e+07 -4.47796771e+06 1.03803467e+04 ! x y z 7.28310338e+02 1.76604469e+03 1.45396412e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill +Body1111 6.38487235e+04 8.35289367e+03 ! particle number mass Rhill 6.11251206e+03 !particle radius in AU 3.38442251e+06 -9.82784424e+06 -1.36230396e+05 ! x y z 1.90939863e+03 7.30865853e+02 1.53565819e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill +Body1112 4.72613591e+04 9.03956075e+03 ! particle number mass Rhill 5.52931152e+03 !particle radius in AU -1.26252231e+07 -6.33455275e+05 -1.30864139e+05 ! x y z 9.33992929e+01 -1.83668276e+03 1.68626587e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill +Body1113 5.54246342e+04 9.10616654e+03 ! particle number mass Rhill 3.95688360e+03 !particle radius in AU -1.20379515e+07 7.22168436e+05 8.94591753e+04 ! x y z -1.09103316e+02 -1.88101208e+03 -4.79548889e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill +Body1114 5.97374849e+04 7.60664387e+03 ! particle number mass Rhill 5.97839539e+03 !particle radius in AU 9.86523103e+06 -1.83199282e+06 -1.01434913e+05 ! x y z 3.62371838e+02 2.01111356e+03 -2.79275007e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill +Body1115 2.85730185e+05 1.40237450e+04 ! particle number mass Rhill 6.83551180e+03 !particle radius in AU -6.51672994e+06 8.58292997e+06 -5.02195539e+04 ! x y z -1.57720017e+03 -1.21482386e+03 -6.46438464e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill +Body1116 3.39840736e+05 1.28616339e+04 ! particle number mass Rhill 1.06723682e+04 !particle radius in AU -6.45748170e+06 -6.60771754e+06 -2.88111990e+04 ! x y z 1.51807464e+03 -1.53717383e+03 -6.96952587e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill +Body1117 5.80221698e+04 8.94269756e+03 ! particle number mass Rhill 4.01775686e+03 !particle radius in AU -1.05725448e+07 -5.16101098e+06 -7.22185112e+04 ! x y z 8.09611157e+02 -1.71812375e+03 -2.92698073e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill +Body1118 3.05076450e+04 9.39000602e+03 ! particle number mass Rhill 4.77864994e+03 !particle radius in AU 1.47903230e+07 -3.70476681e+06 8.67755187e+04 ! x y z 3.95094726e+02 1.62426955e+03 3.16826057e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill +Body1119 1.47140776e+05 9.85483510e+03 ! particle number mass Rhill 8.07383748e+03 !particle radius in AU -4.36058679e+05 -9.44156206e+06 -4.16955929e+04 ! x y z 2.12091782e+03 -1.37012120e+02 1.39491466e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill +Body1120 1.47165298e+06 4.94297791e+04 ! particle number mass Rhill 1.18046777e+04 !particle radius in AU -1.46392393e+07 1.63813686e+07 8.12078291e+03 ! x y z -1.02836410e+03 -9.42723860e+02 -1.38765972e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill +Body1121 2.23276517e+05 1.11786883e+04 ! particle number mass Rhill 9.27790681e+03 !particle radius in AU 9.24634424e+06 -1.31047137e+06 -7.09194003e+04 ! x y z 3.02062155e+02 2.11565604e+03 -9.58265694e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill +Body1122 1.82717804e+06 2.32239948e+04 ! particle number mass Rhill 1.26875944e+04 !particle radius in AU -7.40684320e+06 6.13173465e+06 -3.12795630e+04 ! x y z -1.33749169e+03 -1.62866413e+03 1.56290098e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill +Body1123 2.51827609e+05 1.22793899e+04 ! particle number mass Rhill 9.65761978e+03 !particle radius in AU 9.78515626e+06 -5.26138525e+05 -7.59982349e+03 ! x y z 1.11181620e+02 2.08934488e+03 -1.89984631e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill +Body1124 1.90339114e+05 1.21036723e+04 ! particle number mass Rhill 8.79721090e+03 !particle radius in AU -2.42960077e+06 1.02657010e+07 6.86680195e+04 ! x y z -1.96613992e+03 -4.70552640e+02 -5.76191698e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill +Body1125 1.94434786e+06 2.40654720e+04 ! particle number mass Rhill 1.29531974e+04 !particle radius in AU -2.99090493e+06 -9.38394150e+06 1.22754087e+04 ! x y z 1.96346362e+03 -6.64206351e+02 -1.04286573e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill +Body1126 3.54738618e+05 1.37755783e+04 ! particle number mass Rhill 7.34663539e+03 !particle radius in AU -9.16858859e+06 3.17229706e+06 4.94776739e+02 ! x y z -6.65048356e+02 -2.00655681e+03 -1.69698250e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill +Body1127 8.13466838e+04 1.11519361e+04 ! particle number mass Rhill 4.49675212e+03 !particle radius in AU 1.02698965e+07 8.30732914e+06 1.14137300e+05 ! x y z -1.13322876e+03 1.37969911e+03 -4.16855749e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill +Body1128 8.84633718e+04 9.48965294e+03 ! particle number mass Rhill 4.62423780e+03 !particle radius in AU -6.04360154e+06 -8.98719524e+06 -6.31025271e+04 ! x y z 1.63921724e+03 -1.11262949e+03 4.86167037e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill +Body1129 3.06815484e+05 1.87036822e+04 ! particle number mass Rhill 1.03148143e+04 !particle radius in AU -9.35912101e+06 -1.03642068e+07 -2.18384299e+03 ! x y z 1.30072422e+03 -1.17573948e+03 1.88668155e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill +Body1130 2.00267871e+06 2.75110942e+04 ! particle number mass Rhill 1.30814562e+04 !particle radius in AU 1.04675718e+07 3.39520028e+06 2.70864639e+04 ! x y z -5.97065438e+02 1.88145152e+03 -6.95974089e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill +Body1131 3.21995723e+04 5.75242135e+03 ! particle number mass Rhill 4.86540530e+03 !particle radius in AU -6.73236505e+06 6.13242839e+06 -2.94703322e+04 ! x y z -1.45294617e+03 -1.61318512e+03 -5.68499388e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill +Body1132 1.22510716e+05 1.18263490e+04 ! particle number mass Rhill 7.59556962e+03 !particle radius in AU 4.89468690e+06 -1.07083932e+07 7.90151606e+04 ! x y z 1.76528528e+03 7.71676536e+02 -3.89405176e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill +Body1133 1.28112608e+06 3.44843562e+04 ! particle number mass Rhill 1.12715321e+04 !particle radius in AU -1.37917712e+07 -7.88960798e+06 -6.85787993e+04 ! x y z 8.27177105e+02 -1.42633285e+03 -6.22498397e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill +Body1134 4.68678766e+05 2.48731080e+04 ! particle number mass Rhill 1.18793884e+04 !particle radius in AU -7.34584547e+06 1.44613839e+07 -9.00207198e+04 ! x y z -1.43737968e+03 -7.51623709e+02 1.07613671e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill +Body1135 1.44600429e+06 2.06107186e+04 ! particle number mass Rhill 1.17356962e+04 !particle radius in AU -2.70350276e+05 -9.01638261e+06 4.48528244e+04 ! x y z 2.19935586e+03 -5.92167058e+01 -1.37345562e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill +Body1136 1.55894367e+06 3.07191480e+04 ! particle number mass Rhill 1.20336065e+04 !particle radius in AU -7.93634451e+06 -1.07127629e+07 7.42071719e+04 ! x y z 1.44011604e+03 -1.07152360e+03 -9.74704513e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill +Body1137 1.51661612e+05 1.00295649e+04 ! particle number mass Rhill 5.53448930e+03 !particle radius in AU -3.42691664e+06 -9.05425003e+06 -2.11677870e+04 ! x y z 1.93479037e+03 -7.69981245e+02 1.10419971e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill +Body1138 8.20662008e+04 8.63404579e+03 ! particle number mass Rhill 6.64595045e+03 !particle radius in AU -9.89233738e+06 -6.27568084e+05 6.18194671e+03 ! x y z 1.37071969e+02 -2.08621493e+03 4.72062753e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill +Body1139 5.83373853e+04 9.33904930e+03 ! particle number mass Rhill 5.93131938e+03 !particle radius in AU 7.46340614e+06 9.67912332e+06 1.17459472e+04 ! x y z -1.47885193e+03 1.13911499e+03 4.40806749e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill +Body1140 5.11208949e+05 2.15674116e+04 ! particle number mass Rhill 1.22283672e+04 !particle radius in AU 6.85478382e+06 1.15701707e+07 7.95650274e+04 ! x y z -1.53423752e+03 9.32610677e+02 -3.67365305e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill +Body1141 2.48995873e+04 6.96323506e+03 ! particle number mass Rhill 4.46580449e+03 !particle radius in AU -4.56370068e+06 1.10908559e+07 1.08265365e+04 ! x y z -1.75802463e+03 -7.02357275e+02 1.04220113e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill +Body1142 1.18025613e+05 1.14053748e+04 ! particle number mass Rhill 5.09070290e+03 !particle radius in AU -1.13385925e+07 2.97597054e+06 -4.72391617e+04 ! x y z -5.04596574e+02 -1.84477964e+03 1.31785708e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill +Body1143 1.20005427e+06 1.94048403e+04 ! particle number mass Rhill 1.10285723e+04 !particle radius in AU -9.23261955e+06 -2.89252814e+05 -5.44687237e+04 ! x y z 6.51671796e+01 -2.14992673e+03 -1.81624856e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill +Body1144 6.44690750e+04 8.35064291e+03 ! particle number mass Rhill 6.13224460e+03 !particle radius in AU 1.09075289e+06 1.05119561e+07 -3.25858255e+04 ! x y z -1.99773044e+03 1.99785681e+02 4.03938771e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill +Body1145 1.40498208e+05 1.01388504e+04 ! particle number mass Rhill 5.39522124e+03 !particle radius in AU 5.52516207e+06 8.11277010e+06 -1.90841913e+04 ! x y z -1.72426706e+03 1.18446430e+03 1.21936026e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill +Body1146 7.72238320e+05 1.87680643e+04 ! particle number mass Rhill 9.52144317e+03 !particle radius in AU -4.65951061e+05 1.02295404e+07 5.94558150e+04 ! x y z -2.05121750e+03 -9.71822097e+01 -1.16001667e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill +Body1147 1.89858572e+06 2.93947660e+04 ! particle number mass Rhill 1.28507675e+04 !particle radius in AU 1.19722664e+07 -1.64049398e+06 8.58821045e+04 ! x y z 2.34549789e+02 1.85980680e+03 1.09499792e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill +Body1148 9.08539477e+04 1.04020032e+04 ! particle number mass Rhill 6.87517236e+03 !particle radius in AU -1.08162591e+06 1.14927584e+07 -9.76059282e+04 ! x y z -1.93051044e+03 -1.62077695e+02 -7.14665732e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill +Body1149 1.34471989e+06 2.27670592e+04 ! particle number mass Rhill 1.14550311e+04 !particle radius in AU -1.95233176e+06 1.02927697e+07 -2.00724108e+04 ! x y z -1.97843014e+03 -3.85350221e+02 1.08497627e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill +Body1150 9.50016532e+05 2.24812571e+04 ! particle number mass Rhill 1.02022521e+04 !particle radius in AU 6.15222182e+06 -9.75312655e+06 1.28837233e+04 ! x y z 1.61895964e+03 1.04728187e+03 -1.26702028e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill +Body1151 4.98259579e+04 1.25780817e+04 ! particle number mass Rhill 3.81889352e+03 !particle radius in AU 1.70431842e+07 -2.72492428e+06 -3.86028806e+04 ! x y z 2.83672553e+02 1.54910187e+03 2.07904021e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill +Body1152 6.79776779e+04 9.03177957e+03 ! particle number mass Rhill 6.24153051e+03 !particle radius in AU 8.01774299e+06 8.09902023e+06 -2.62747132e+04 ! x y z -1.35353621e+03 1.36013542e+03 7.64569924e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill +Body1153 2.13947474e+05 1.11361089e+04 ! particle number mass Rhill 9.14684621e+03 !particle radius in AU 3.29923819e+06 8.68923966e+06 -8.36350791e+03 ! x y z -2.01828563e+03 7.65043187e+02 -1.46373885e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill +Body1154 1.61918295e+06 3.85312414e+04 ! particle number mass Rhill 1.21866490e+04 !particle radius in AU 9.48630114e+06 1.31203942e+07 7.51325437e+04 ! x y z -1.33995755e+03 9.53539277e+02 6.46323587e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill +Body1155 1.43971018e+05 9.40169492e+03 ! particle number mass Rhill 5.43931264e+03 !particle radius in AU 9.01020062e+06 -9.02772630e+05 1.38704984e+04 ! x y z 2.41367313e+02 2.16126190e+03 7.68455544e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill +Body1156 5.27865615e+05 1.79382428e+04 ! particle number mass Rhill 1.23597622e+04 !particle radius in AU -8.09665807e+06 -7.58547860e+06 3.14674691e+04 ! x y z 1.35669172e+03 -1.43426598e+03 7.37210686e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill +Body1157 2.61259252e+05 2.15300521e+04 ! particle number mass Rhill 6.63452075e+03 !particle radius in AU 4.28160432e+06 -1.65281080e+07 -8.26509117e+03 ! x y z 1.53190957e+03 3.88184614e+02 1.24754943e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill +Body1158 6.27042315e+05 1.61291145e+04 ! particle number mass Rhill 8.88282855e+03 !particle radius in AU 6.49256441e+05 9.31973535e+06 4.08167273e+04 ! x y z -2.15470427e+03 1.51716056e+02 1.89189290e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill +Body1159 1.52946375e+06 2.19072342e+04 ! particle number mass Rhill 1.19572707e+04 !particle radius in AU -9.20065102e+05 -9.43874908e+06 -2.04752392e+04 ! x y z 2.12475295e+03 -2.35100552e+02 7.76090899e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill +Body1160 1.11460317e+05 9.66356252e+03 ! particle number mass Rhill 4.99450465e+03 !particle radius in AU 4.31072822e+06 9.13284291e+06 4.14102022e+04 ! x y z -1.85476950e+03 9.03328979e+02 -1.46829604e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill +Body1161 2.86789697e+04 6.28431067e+03 ! particle number mass Rhill 4.68119614e+03 !particle radius in AU -6.79093976e+06 8.03119054e+06 -7.05744289e+04 ! x y z -1.52734163e+03 -1.29554248e+03 1.30181520e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill +Body1162 9.65732528e+05 2.08012047e+04 ! particle number mass Rhill 1.02582029e+04 !particle radius in AU -1.04804105e+07 -1.20577935e+06 3.31638534e+04 ! x y z 2.13664871e+02 -2.01046058e+03 -7.98031732e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill +Body1163 3.79954335e+05 1.38084178e+04 ! particle number mass Rhill 1.10767611e+04 !particle radius in AU -7.18067628e+06 -6.29465669e+06 -5.18935266e+04 ! x y z 1.39765048e+03 -1.60192161e+03 7.92302858e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill +Body1164 5.13864272e+05 1.86014350e+04 ! particle number mass Rhill 1.22495029e+04 !particle radius in AU -8.66772744e+06 -7.93918786e+06 3.66255031e+04 ! x y z 1.28753321e+03 -1.40570993e+03 1.04442422e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill +Body1165 5.37835639e+04 1.57088864e+04 ! particle number mass Rhill 5.77278675e+03 !particle radius in AU -4.13157626e+06 -2.06445199e+07 1.15039089e+05 ! x y z 1.39928757e+03 -2.67584358e+02 -6.80453610e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill +Body1166 1.74187119e+06 3.12839499e+04 ! particle number mass Rhill 1.24869874e+04 !particle radius in AU 2.86527664e+04 -1.30135384e+07 9.46703562e+04 ! x y z 1.82137923e+03 3.52269823e+01 6.17347097e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill +Body1167 1.58246923e+05 1.05774006e+04 ! particle number mass Rhill 8.27206772e+03 !particle radius in AU 9.61204633e+06 2.11550317e+06 -1.01612254e+05 ! x y z -4.54369173e+02 2.03897871e+03 -3.85711771e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill +Body1168 3.04701159e+04 5.83960283e+03 ! particle number mass Rhill 4.77668965e+03 !particle radius in AU 8.56305753e+06 3.83573915e+06 2.26223304e+04 ! x y z -8.87660780e+02 1.95010957e+03 -6.47697797e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill +Body1169 1.28475493e+05 1.68563266e+04 ! particle number mass Rhill 7.71689197e+03 !particle radius in AU 7.06863637e+05 1.69810271e+07 1.26105980e+05 ! x y z -1.58048060e+03 4.41879800e+01 4.04119984e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill +Body1170 5.67329859e+04 7.91737704e+03 ! particle number mass Rhill 5.87643861e+03 !particle radius in AU -5.44027365e+06 8.90923003e+06 -1.91872642e+02 ! x y z -1.72578284e+03 -1.05328021e+03 2.75794079e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill +Body1171 4.29332911e+05 1.41021700e+04 ! particle number mass Rhill 7.82919405e+03 !particle radius in AU -3.84222450e+06 8.52500722e+06 5.13399679e+04 ! x y z -1.95749070e+03 -8.88579162e+02 4.05131851e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill +Body1172 2.41133271e+05 1.89734864e+04 ! particle number mass Rhill 6.45958637e+03 !particle radius in AU -1.04764717e+07 1.11206338e+07 -1.83995722e+05 ! x y z -1.21578555e+03 -1.15954535e+03 1.26396174e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill +Body1173 1.02998708e+06 2.48616557e+04 ! particle number mass Rhill 1.04808440e+04 !particle radius in AU 9.91080561e+06 7.33219213e+06 -1.96182672e+04 ! x y z -1.10289136e+03 1.51166868e+03 8.55255590e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill +Body1174 8.89416212e+04 1.13520798e+04 ! particle number mass Rhill 4.63255599e+03 !particle radius in AU -6.34641421e+06 1.11675051e+07 -1.12534756e+05 ! x y z -1.58363204e+03 -9.07829510e+02 -3.73545248e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill +Body1175 5.14885465e+05 3.14248507e+04 ! particle number mass Rhill 8.31806943e+03 !particle radius in AU -9.60844812e+06 -1.70444496e+07 1.09767306e+04 ! x y z 1.30061497e+03 -7.22601223e+02 5.04626944e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill +Body1176 2.69318662e+05 1.15494702e+04 ! particle number mass Rhill 6.70205230e+03 !particle radius in AU 3.30176954e+06 8.21216858e+06 2.33957768e+04 ! x y z -2.06647672e+03 8.14303416e+02 -3.27813568e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill +Body1177 3.05068788e+05 1.47559128e+04 ! particle number mass Rhill 6.98637011e+03 !particle radius in AU -3.56455427e+06 1.04513814e+07 9.13561134e+04 ! x y z -1.86227880e+03 -6.46156347e+02 -1.84370397e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill +Body1178 5.19675697e+05 1.60513381e+04 ! particle number mass Rhill 1.22955075e+04 !particle radius in AU 1.01719252e+07 6.26688339e+05 3.49609062e+04 ! x y z -1.13334526e+02 2.03525342e+03 3.73100714e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill +Body1179 1.39224144e+06 2.01859103e+04 ! particle number mass Rhill 1.15884099e+04 !particle radius in AU 6.79475129e+06 -6.15725925e+06 -4.34005132e+04 ! x y z 1.43607392e+03 1.60794893e+03 9.89854216e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill +Body1180 4.05538875e+05 1.93162514e+04 ! particle number mass Rhill 1.13200016e+04 !particle radius in AU 3.31203426e+06 1.26977181e+07 1.61925621e+04 ! x y z -1.75290457e+03 4.51047834e+02 -6.90112778e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill +Body1181 3.20579085e+04 6.70574528e+03 ! particle number mass Rhill 4.85825960e+03 !particle radius in AU -5.28465980e+06 9.08656562e+06 5.60870045e+04 ! x y z -1.73422854e+03 -1.05901334e+03 1.51078632e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill +Body1182 9.82029002e+05 2.71517490e+04 ! particle number mass Rhill 1.03155828e+04 !particle radius in AU -4.41381530e+06 -1.31465095e+07 1.23851466e+05 ! x y z 1.64911245e+03 -5.92288633e+02 -5.00592030e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill +Body1183 9.36064907e+04 1.42989922e+04 ! particle number mass Rhill 4.71217038e+03 !particle radius in AU 1.58308263e+07 -4.73628624e+05 -2.19545030e+04 ! x y z 5.84709400e+01 1.64641342e+03 -6.62703110e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill +Body1184 1.54283486e+06 2.12065020e+04 ! particle number mass Rhill 1.19920145e+04 !particle radius in AU 9.12968341e+06 9.11733516e+04 1.78969232e+04 ! x y z -5.65016782e+01 2.18069451e+03 -3.98571279e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill +Body1185 2.73946957e+05 1.19011985e+04 ! particle number mass Rhill 9.93248268e+03 !particle radius in AU 8.78149411e+06 -3.19216182e+06 -1.60141388e+04 ! x y z 7.37216338e+02 1.99835772e+03 -1.41820401e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill +Body1186 3.20723125e+04 9.43296932e+03 ! particle number mass Rhill 4.85898712e+03 !particle radius in AU 1.29860619e+07 -8.19871711e+06 9.27457802e+04 ! x y z 8.67118976e+02 1.40272209e+03 6.07478118e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill +Body1187 5.63661707e+05 1.72291545e+04 ! particle number mass Rhill 8.57284899e+03 !particle radius in AU 6.74596853e+06 7.83340922e+06 1.66421965e+04 ! x y z -1.53458492e+03 1.36487940e+03 -3.08963768e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill +Body1188 9.77483308e+05 2.12062991e+04 ! particle number mass Rhill 1.02996416e+04 !particle radius in AU 9.97004957e+06 -4.03326891e+06 1.22229820e+04 ! x y z 7.36970819e+02 1.85756062e+03 1.86046036e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill +Body1189 1.11997160e+06 3.12831472e+04 ! particle number mass Rhill 1.07775819e+04 !particle radius in AU 1.48289776e+07 -3.18422896e+06 -1.95106854e+04 ! x y z 3.65562411e+02 1.64235740e+03 -1.78622262e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill +Body1190 4.21697204e+05 2.76052200e+04 ! particle number mass Rhill 7.78250193e+03 !particle radius in AU -1.82004676e+07 -4.58264120e+06 -8.80114368e+04 ! x y z 3.67043849e+02 -1.45746561e+03 3.81482960e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill +Body1191 1.27924892e+05 1.00707109e+04 ! particle number mass Rhill 7.70585221e+03 !particle radius in AU 9.71830285e+06 -2.79239080e+06 -1.21765919e+05 ! x y z 5.86439180e+02 1.97016309e+03 1.41983570e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill +Body1192 2.18484788e+05 2.11984156e+04 ! particle number mass Rhill 9.21105533e+03 !particle radius in AU -6.87422066e+06 -1.61812284e+07 3.33849657e+04 ! x y z 1.44453834e+03 -6.12213456e+02 5.14798988e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill +Body1193 4.42881353e+05 1.37597985e+04 ! particle number mass Rhill 7.91069782e+03 !particle radius in AU -4.40453318e+05 -9.00359396e+06 2.55701381e+04 ! x y z 2.18504558e+03 -1.66090270e+02 -5.38264979e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill +Body1194 3.29981187e+05 3.15651668e+04 ! particle number mass Rhill 7.17158897e+03 !particle radius in AU 2.19604188e+07 6.04779191e+06 -2.54791200e+04 ! x y z -3.65663685e+02 1.33014017e+03 -8.36197344e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill +Body1195 2.00582226e+05 1.14105456e+04 ! particle number mass Rhill 8.95226931e+03 !particle radius in AU 6.76787299e+06 -6.88896584e+06 -7.92738002e+04 ! x y z 1.51846448e+03 1.48693289e+03 -8.03074046e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill +Body1196 2.41709605e+04 6.44082984e+03 ! particle number mass Rhill 4.42181219e+03 !particle radius in AU -6.18157795e+06 9.50909765e+06 -6.31347661e+04 ! x y z -1.61918243e+03 -1.05906497e+03 6.51625165e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill +Body1197 4.00640371e+05 2.08913635e+04 ! particle number mass Rhill 7.65074804e+03 !particle radius in AU 1.22370591e+07 -7.52313059e+06 -3.37590788e+04 ! x y z 9.11513184e+02 1.46224236e+03 1.38515615e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill +Body1198 1.61635239e+06 2.60284499e+04 ! particle number mass Rhill 1.21795436e+04 !particle radius in AU 7.05236290e+06 -8.64870991e+06 -6.91330978e+04 ! x y z 1.52616946e+03 1.23310907e+03 1.29403411e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill +Body1199 5.36110948e+05 1.44063126e+04 ! particle number mass Rhill 8.43083433e+03 !particle radius in AU 7.80864005e+06 -4.26482545e+06 -2.18013868e+04 ! x y z 1.03496940e+03 1.94204946e+03 1.21677642e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill +Body1200 4.28449000e+05 1.32968335e+04 ! particle number mass Rhill 7.82381744e+03 !particle radius in AU 5.75136921e+06 -6.66165297e+06 -1.60013139e+04 ! x y z 1.66229394e+03 1.46936203e+03 -7.73684722e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill +Body1201 9.10224446e+04 8.11138177e+03 ! particle number mass Rhill 6.87941995e+03 !particle radius in AU -1.22562478e+06 9.13823949e+06 -4.37327451e+04 ! x y z -2.12169150e+03 -2.88517939e+02 -1.49392473e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill +Body1202 1.98612171e+06 2.96000814e+04 ! particle number mass Rhill 1.30453064e+04 !particle radius in AU 7.69914612e+06 -9.13021219e+06 -4.57648993e+04 ! x y z 1.43992781e+03 1.22291153e+03 -3.96856343e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill +Body1203 4.53993230e+04 7.49997775e+03 ! particle number mass Rhill 5.45572052e+03 !particle radius in AU -1.04553344e+07 2.52527420e+06 -1.08628658e+05 ! x y z -4.86679714e+02 -1.92107394e+03 9.45357951e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill +Body1204 6.54079550e+05 2.35625462e+04 ! particle number mass Rhill 9.00870821e+03 !particle radius in AU 1.39140966e+07 -6.41849608e+05 1.71228409e+05 ! x y z 6.24928406e+01 1.73760043e+03 1.32646652e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill +Body1205 7.94478183e+05 1.80563097e+04 ! particle number mass Rhill 9.61198288e+03 !particle radius in AU -4.68891691e+06 -8.65727522e+06 1.38785454e+05 ! x y z 1.83563800e+03 -9.88706825e+02 -2.51608816e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill +Body1206 1.99428214e+06 2.23251883e+04 ! particle number mass Rhill 1.30631485e+04 !particle radius in AU 2.13007974e+05 9.18824852e+06 -3.80121317e+04 ! x y z -2.12834457e+03 7.70592587e+01 -1.61308426e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill +Body1207 5.76675515e+04 7.93652829e+03 ! particle number mass Rhill 5.90853066e+03 !particle radius in AU -1.00652683e+07 -2.07792286e+06 6.26672177e+04 ! x y z 4.27478087e+02 -2.00526834e+03 1.11714666e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill +Body1208 7.68189982e+05 1.70994829e+04 ! particle number mass Rhill 9.50477579e+03 !particle radius in AU -9.25272310e+06 4.61553055e+05 2.28064653e+03 ! x y z -1.21224875e+02 -2.16490532e+03 1.16467209e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill +Body1209 7.17469390e+04 7.67800796e+03 ! particle number mass Rhill 4.31241077e+03 !particle radius in AU 5.99768112e+06 7.18836176e+06 1.30862988e+04 ! x y z -1.63913963e+03 1.36776567e+03 -1.13032580e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill +Body1210 8.36379167e+04 1.86325541e+04 ! particle number mass Rhill 4.53858074e+03 !particle radius in AU 2.69549465e+06 -2.13775506e+07 -2.70977944e+04 ! x y z 1.39480467e+03 1.95781010e+02 -1.22454588e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill +Body1211 2.44077886e+04 5.84483951e+03 ! particle number mass Rhill 4.43620698e+03 !particle radius in AU -3.14237843e+06 -9.60218811e+06 -6.89227352e+04 ! x y z 1.95665546e+03 -6.62178945e+02 -9.36372693e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill +Body1212 1.44764486e+05 9.84771730e+03 ! particle number mass Rhill 5.44928691e+03 !particle radius in AU 3.78692528e+06 8.59540985e+06 -3.20061356e+04 ! x y z -1.96752618e+03 8.51121277e+02 -1.51485463e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill +Body1213 2.27221346e+04 6.08153019e+03 ! particle number mass Rhill 4.33163678e+03 !particle radius in AU -9.00146283e+06 -6.41911956e+06 6.65091457e+04 ! x y z 1.12404780e+03 -1.59135698e+03 -9.77302741e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill +Body1214 2.71535887e+04 5.59499408e+03 ! particle number mass Rhill 4.59668490e+03 !particle radius in AU 8.54824866e+06 -3.66634423e+06 -4.89483929e+04 ! x y z 8.47956516e+02 1.98291118e+03 3.60869553e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill +Body1215 1.83930380e+06 4.81996691e+04 ! particle number mass Rhill 1.27155989e+04 !particle radius in AU 1.95697614e+07 6.28199416e+06 9.65119660e+04 ! x y z -4.43211708e+02 1.34690163e+03 -9.62234736e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill +Body1216 1.59080558e+04 1.03572285e+04 ! particle number mass Rhill 3.84628408e+03 !particle radius in AU -1.58193926e+07 -1.35536390e+07 8.45439846e+04 ! x y z 9.33923428e+02 -1.08590633e+03 1.18308309e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill +Body1217 1.66392524e+06 3.70165505e+04 ! particle number mass Rhill 1.22978804e+04 !particle radius in AU 1.57128973e+07 -6.39323202e+05 1.78188715e+04 ! x y z 6.88318620e+01 1.65105864e+03 3.96550811e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill +Body1218 3.66179316e+05 1.41594102e+04 ! particle number mass Rhill 7.42478017e+03 !particle radius in AU 4.15871481e+06 9.23348984e+06 -2.00218047e+04 ! x y z -1.86711988e+03 8.27796037e+02 -1.71003540e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill +Body1219 1.54561493e+05 1.00684785e+04 ! particle number mass Rhill 8.20734629e+03 !particle radius in AU 1.01202151e+06 -9.34669057e+06 -3.05255233e+04 ! x y z 2.12896558e+03 2.37084406e+02 2.06490854e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill +Body1220 1.96961109e+06 2.97634995e+04 ! particle number mass Rhill 1.30090572e+04 !particle radius in AU -1.21933337e+07 -1.85215644e+04 -9.08532291e+04 ! x y z 3.99379627e+00 -1.85775511e+03 -5.11110124e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill +Body1221 1.52307934e+06 2.08671874e+04 ! particle number mass Rhill 1.19406098e+04 !particle radius in AU -3.43283359e+06 -8.55413032e+06 1.39837760e+04 ! x y z 2.01077915e+03 -7.56017909e+02 1.02863591e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill +Body1222 4.68434436e+05 2.00080803e+04 ! particle number mass Rhill 1.18773237e+04 !particle radius in AU -1.54011563e+06 -1.27126780e+07 7.48528448e+04 ! x y z 1.83173381e+03 -2.00582211e+02 -5.46653115e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill +Body1223 2.90685914e+05 1.99495647e+04 ! particle number mass Rhill 6.87480407e+03 !particle radius in AU 1.51139781e+07 1.12076930e+06 -2.10697882e+04 ! x y z -1.50737141e+02 1.67679110e+03 1.30972258e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill +Body1224 1.38602808e+05 1.24338676e+04 ! particle number mass Rhill 7.91455193e+03 !particle radius in AU 4.75991835e+06 1.10017280e+07 2.88714064e+04 ! x y z -1.75624695e+03 7.27843788e+02 7.23217325e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill +Body1225 2.95749638e+04 5.42872052e+03 ! particle number mass Rhill 4.72944737e+03 !particle radius in AU -7.70162983e+06 -4.41409406e+06 2.58165729e+04 ! x y z 1.05981797e+03 -1.92161597e+03 -1.53504172e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill +Body1226 4.32072593e+05 1.78081985e+04 ! particle number mass Rhill 7.84581210e+03 !particle radius in AU 8.79063205e+06 8.04366554e+06 -1.54947665e+04 ! x y z -1.27701177e+03 1.39840130e+03 -2.40220571e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill +Body1227 6.41589266e+04 9.67981886e+03 ! particle number mass Rhill 6.12239510e+03 !particle radius in AU 8.04074117e+06 9.64104753e+06 -4.45617960e+04 ! x y z -1.39128132e+03 1.17398843e+03 -6.62327287e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill +Body1228 3.20284500e+05 1.26827896e+04 ! particle number mass Rhill 7.10064233e+03 !particle radius in AU -6.66261606e+06 6.71220967e+06 -3.99553759e+04 ! x y z -1.50278601e+03 -1.49037570e+03 1.28507761e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill +Body1229 1.51846639e+05 1.45701862e+04 ! particle number mass Rhill 5.53673908e+03 !particle radius in AU 7.85675354e+06 -1.09086703e+07 6.52437187e+03 ! x y z 1.47253647e+03 1.04716710e+03 -2.78745894e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill +Body1230 1.23586335e+05 1.11194308e+04 ! particle number mass Rhill 7.61773407e+03 !particle radius in AU 1.20372202e+06 -1.12995198e+07 -7.66376724e+04 ! x y z 1.92159252e+03 2.10022167e+02 1.77035004e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill +Body1231 2.25142465e+05 1.38893155e+04 ! particle number mass Rhill 6.31351866e+03 !particle radius in AU 1.34520987e+06 -1.14199869e+07 -1.06162090e+05 ! x y z 1.91854210e+03 2.27440517e+02 -2.86612981e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill +Body1232 2.50526229e+04 5.93289297e+03 ! particle number mass Rhill 4.47493492e+03 !particle radius in AU -7.81637690e+06 6.77408689e+06 -7.41358369e+04 ! x y z -1.33330305e+03 -1.52276964e+03 -6.38372634e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill +Body1233 1.90834790e+06 2.35258485e+04 ! particle number mass Rhill 1.28727553e+04 !particle radius in AU -9.27394458e+06 2.25024078e+06 5.28422677e+04 ! x y z -5.05715454e+02 -2.06066723e+03 1.34558284e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill +Body1234 4.91248539e+04 7.28485384e+03 ! particle number mass Rhill 3.80089688e+03 !particle radius in AU 7.39246396e+06 7.02828616e+06 -5.45617263e+04 ! x y z -1.39190312e+03 1.48134140e+03 -3.43671966e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill +Body1235 1.41719231e+05 1.93293155e+04 ! particle number mass Rhill 7.97343121e+03 !particle radius in AU 1.36549158e+07 -1.27792544e+07 5.75773322e+03 ! x y z 1.01857297e+03 1.11983894e+03 2.42317366e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill +Body1236 2.00882370e+05 1.08894510e+04 ! particle number mass Rhill 6.07807803e+03 !particle radius in AU 8.51250762e+06 3.74715124e+06 -3.66793926e+04 ! x y z -9.06822201e+02 1.95546956e+03 -1.35124063e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill +Body1237 1.20287590e+05 1.23845440e+04 ! particle number mass Rhill 7.54934486e+03 !particle radius in AU 1.11622021e+07 6.11280266e+06 1.12048087e+05 ! x y z -8.90669182e+02 1.59847160e+03 8.83220737e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill +Body1238 4.77986782e+05 1.49760594e+04 ! particle number mass Rhill 8.11442267e+03 !particle radius in AU -3.59837711e+06 8.94095859e+06 9.64175823e+04 ! x y z -1.96856779e+03 -7.62947641e+02 3.79489804e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill +Body1239 2.65771158e+05 1.18757587e+04 ! particle number mass Rhill 9.83267321e+03 !particle radius in AU 1.29422873e+06 -9.18423777e+06 1.13052561e+04 ! x y z 2.13217255e+03 3.09173468e+02 -6.46064530e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill +Body1240 9.09935528e+05 1.77629488e+04 ! particle number mass Rhill 1.00567087e+04 !particle radius in AU 7.55024995e+06 5.55902389e+06 2.47186332e+04 ! x y z -1.28842830e+03 1.68728817e+03 -8.10804757e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill +Body1241 6.99841166e+05 3.29812546e+04 ! particle number mass Rhill 9.21408381e+03 !particle radius in AU 1.88151667e+07 3.33001002e+06 3.73324839e+04 ! x y z -2.30107887e+02 1.46487898e+03 2.65739699e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill +Body1242 3.90005908e+05 1.34816243e+04 ! particle number mass Rhill 1.11735897e+04 !particle radius in AU 5.44170973e+06 -7.58711950e+06 -1.68342575e+04 ! x y z 1.71954001e+03 1.27240084e+03 9.88806581e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill +Body1243 1.08664322e+06 2.28428386e+04 ! particle number mass Rhill 1.06695963e+04 !particle radius in AU -8.65530733e+06 -7.08569033e+06 -2.23265845e+04 ! x y z 1.25758504e+03 -1.50248441e+03 -3.62008173e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill +Body1244 1.52765224e+06 2.10792686e+04 ! particle number mass Rhill 1.19525480e+04 !particle radius in AU -5.77529746e+06 -7.17376952e+06 -5.18219866e+04 ! x y z 1.69375434e+03 -1.34010802e+03 -1.50223596e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill +Body1245 6.16725526e+04 8.80160618e+03 ! particle number mass Rhill 6.04226309e+03 !particle radius in AU -1.06219205e+07 -3.45583164e+06 7.57878163e+04 ! x y z 6.00669506e+02 -1.87043192e+03 1.96458906e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill +Body1246 2.90774616e+05 1.23816662e+04 ! particle number mass Rhill 6.87550328e+03 !particle radius in AU 6.08800715e+06 7.31025693e+06 2.11892900e+04 ! x y z -1.62733880e+03 1.34749417e+03 4.48661776e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill +Body1247 2.91111310e+05 1.70046080e+04 ! particle number mass Rhill 6.87815602e+03 !particle radius in AU 1.11973713e+07 -6.89047737e+06 8.77501535e+04 ! x y z 9.27451132e+02 1.53222806e+03 7.89688850e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill +Body1248 1.92146673e+04 5.02220470e+03 ! particle number mass Rhill 4.09618861e+03 !particle radius in AU -7.43211722e+06 -5.81999467e+06 -9.65323707e+03 ! x y z 1.33310134e+03 -1.66490648e+03 -3.67453264e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill +Body1249 1.12236575e+06 2.53698511e+04 ! particle number mass Rhill 1.07852562e+04 !particle radius in AU -1.08902550e+07 -5.66422797e+06 1.03662075e+04 ! x y z 8.63087680e+02 -1.66058015e+03 -2.16763143e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill +Body1250 1.97375621e+05 1.34147884e+04 ! particle number mass Rhill 8.90430770e+03 !particle radius in AU 5.12124924e+06 1.04057141e+07 -2.37917852e+04 ! x y z -1.74067826e+03 8.20317248e+02 -1.61468664e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill +Body1251 6.18834861e+04 1.06379610e+04 ! particle number mass Rhill 6.04914386e+03 !particle radius in AU -1.68906115e+06 -1.36100786e+07 1.12141407e+05 ! x y z 1.74322371e+03 -2.27430898e+02 1.33662045e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill +Body1252 1.48860804e+05 1.71420231e+04 ! particle number mass Rhill 8.10517587e+03 !particle radius in AU 1.55662567e+07 4.00286637e+06 -1.79247131e+05 ! x y z -4.13259864e+02 1.59216194e+03 8.36151351e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill +Body1253 9.89512707e+05 4.29095693e+04 ! particle number mass Rhill 1.03417203e+04 !particle radius in AU -1.88242941e+07 1.06236844e+07 -6.10248603e+04 ! x y z -7.07744890e+02 -1.22126213e+03 4.18101860e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill +Body1254 3.12504250e+05 1.56490359e+04 ! particle number mass Rhill 1.03781744e+04 !particle radius in AU 6.54563477e+06 9.67513797e+06 -6.81578535e+04 ! x y z -1.58341801e+03 1.07058771e+03 -6.04814628e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill +Body1255 1.91935878e+05 1.27404816e+04 ! particle number mass Rhill 8.82174250e+03 !particle radius in AU 1.04054207e+07 -4.16069278e+06 2.73610807e+04 ! x y z 7.03766909e+02 1.81842161e+03 8.81427302e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill +Body1256 1.11002558e+05 1.15265444e+04 ! particle number mass Rhill 4.98765792e+03 !particle radius in AU 3.08072328e+06 -1.16153087e+07 4.07709281e+04 ! x y z 1.83456791e+03 4.73999302e+02 7.43116200e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill +Body1257 1.46365124e+05 1.07472865e+04 ! particle number mass Rhill 5.46929730e+03 !particle radius in AU 6.34509950e+06 -8.39632633e+06 3.00680333e+04 ! x y z 1.60571507e+03 1.18326876e+03 -2.08403941e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill +Body1258 3.58622633e+04 7.27385097e+03 ! particle number mass Rhill 5.04330099e+03 !particle radius in AU 1.11214656e+07 1.24533693e+06 -1.06574136e+05 ! x y z -2.16829963e+02 1.93905765e+03 1.21579926e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill +Body1259 4.04109068e+05 1.42195375e+04 ! particle number mass Rhill 1.13066823e+04 !particle radius in AU -8.88143306e+06 -3.59836181e+06 5.33136699e+04 ! x y z 8.14785566e+02 -1.96550951e+03 6.43084310e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill +Body1260 3.08027204e+05 1.50707848e+04 ! particle number mass Rhill 7.00888103e+03 !particle radius in AU -8.26948189e+06 -7.55777650e+06 1.90589282e+04 ! x y z 1.31251337e+03 -1.45641325e+03 -2.75253497e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill +Body1261 5.68308086e+04 7.77187750e+03 ! particle number mass Rhill 3.99006780e+03 !particle radius in AU -8.76369433e+06 5.12820302e+06 4.83723083e+04 ! x y z -1.02986001e+03 -1.78262989e+03 -1.16887378e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill +Body1262 3.44231334e+05 1.47159604e+04 ! particle number mass Rhill 1.07181325e+04 !particle radius in AU 8.77351236e+06 5.86805867e+06 7.03132721e+04 ! x y z -1.14557695e+03 1.66192575e+03 2.25245099e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill +Body1263 2.40295629e+05 1.18592176e+04 ! particle number mass Rhill 6.45209798e+03 !particle radius in AU 2.81170524e+06 9.19584888e+06 4.45600518e+04 ! x y z -2.01744512e+03 6.24046260e+02 -9.89046691e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill +Body1264 6.80068207e+04 8.07363373e+03 ! particle number mass Rhill 6.24242232e+03 !particle radius in AU -9.87293199e+06 -1.42461669e+06 -2.08948330e+04 ! x y z 2.77302880e+02 -2.05434640e+03 1.23835967e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill +Body1265 4.03465047e+05 1.96297243e+04 ! particle number mass Rhill 1.13006727e+04 !particle radius in AU -3.58991165e+06 -1.30771532e+07 4.60336444e+04 ! x y z 1.69912089e+03 -4.85176809e+02 -8.42271300e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill +Body1266 1.12924923e+06 1.97340059e+04 ! particle number mass Rhill 1.08072599e+04 !particle radius in AU -9.30543267e+06 -1.69593678e+06 7.96573126e+04 ! x y z 3.79186148e+02 -2.10571304e+03 -2.17512876e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill +Body1267 2.12462415e+05 1.13846036e+04 ! particle number mass Rhill 6.19269515e+03 !particle radius in AU -3.38260922e+06 8.95675600e+06 -9.15710109e+04 ! x y z -1.98063128e+03 -7.58924908e+02 1.62762983e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill +Body1268 1.22284830e+05 9.48762297e+03 ! particle number mass Rhill 7.59089850e+03 !particle radius in AU 9.06470291e+06 3.39698455e+06 -1.93072359e+04 ! x y z -7.42646003e+02 1.96423004e+03 3.04319746e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill +Body1269 3.20826960e+05 1.28228485e+04 ! particle number mass Rhill 7.10464881e+03 !particle radius in AU -8.28344816e+06 -4.56542130e+06 -3.98741155e+04 ! x y z 9.81538136e+02 -1.88759078e+03 8.61570104e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill +Body1270 1.68765847e+05 1.17429653e+04 ! particle number mass Rhill 8.45143607e+03 !particle radius in AU 9.83373151e+06 4.43940145e+06 2.01558777e+04 ! x y z -8.55397447e+02 1.79285028e+03 -1.01803709e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill +Body1271 5.60563834e+05 1.63043729e+04 ! particle number mass Rhill 1.26098721e+04 !particle radius in AU 6.20736435e+06 7.70565657e+06 2.01353242e+04 ! x y z -1.62930967e+03 1.30802298e+03 1.80300563e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill +Body1272 2.23640540e+05 2.16768752e+04 ! particle number mass Rhill 9.28294621e+03 !particle radius in AU -1.21242621e+07 -1.29944427e+07 9.45840193e+03 ! x y z 1.14488121e+03 -1.06447129e+03 8.51817054e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill +Body1273 3.24484331e+05 1.23517614e+04 ! particle number mass Rhill 1.05091333e+04 !particle radius in AU -9.34416446e+04 9.14288304e+06 8.29702341e+03 ! x y z -2.15581546e+03 -1.85313701e+01 1.24100830e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill +Body1274 4.20796538e+05 1.46309941e+04 ! particle number mass Rhill 1.14602223e+04 !particle radius in AU -8.56201175e+06 -4.77007031e+06 6.27239711e+04 ! x y z 1.04809893e+03 -1.81527422e+03 -2.35300971e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill +Body1275 5.97784859e+05 1.68704229e+04 ! particle number mass Rhill 8.74246630e+03 !particle radius in AU 9.33774261e+06 -3.80575834e+06 3.61612768e+04 ! x y z 7.89084549e+02 1.90660726e+03 1.55750455e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill +Body1276 7.71866509e+05 1.63632082e+04 ! particle number mass Rhill 9.51991482e+03 !particle radius in AU 1.44814086e+05 -9.02785011e+06 -7.62099316e+03 ! x y z 2.17482769e+03 2.31217788e+01 4.51562127e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill +Body1277 2.09762369e+04 6.28274160e+03 ! particle number mass Rhill 4.21772425e+03 !particle radius in AU 2.68337698e+06 1.12799171e+07 -1.92110080e+04 ! x y z -1.86815076e+03 4.16102947e+02 -8.29271140e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill +Body1278 3.46246737e+05 1.25842743e+04 ! particle number mass Rhill 1.07390093e+04 !particle radius in AU -8.56711815e+06 -3.15713404e+06 3.97972006e+03 ! x y z 7.43604689e+02 -2.02339459e+03 6.66994916e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill +Body1279 4.20281553e+05 1.36364340e+04 ! particle number mass Rhill 7.77378347e+03 !particle radius in AU 2.18747509e+06 8.65395918e+06 -2.06536040e+04 ! x y z -2.15725804e+03 5.30856591e+02 2.37348618e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill +Body1280 1.24686009e+06 3.01782349e+04 ! particle number mass Rhill 1.11701303e+04 !particle radius in AU 7.66628600e+06 -1.17727557e+07 -1.47420679e+04 ! x y z 1.47098208e+03 9.52353449e+02 1.59639874e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill +Body1281 1.23652829e+06 2.28978896e+04 ! particle number mass Rhill 1.11391918e+04 !particle radius in AU 1.04264792e+07 -2.74372425e+06 3.12865429e+04 ! x y z 5.41650708e+02 1.91683777e+03 -8.25764712e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill +Body1282 5.71090410e+05 1.53591732e+04 ! particle number mass Rhill 8.61034631e+03 !particle radius in AU -3.55923980e+06 -8.64968069e+06 1.79106442e+03 ! x y z 1.99649530e+03 -7.67245271e+02 -5.93442801e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill +Body1283 5.19767258e+05 1.51351192e+04 ! particle number mass Rhill 8.34427553e+03 !particle radius in AU 9.42893053e+06 2.45878278e+05 -4.57214896e+04 ! x y z -6.01176022e+01 2.13776727e+03 1.81291767e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill +Body1284 4.43010149e+04 6.43778074e+03 ! particle number mass Rhill 5.41136566e+03 !particle radius in AU 9.07031967e+06 -2.25767487e+06 5.83955838e+03 ! x y z 5.13475058e+02 2.05838222e+03 2.17889632e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill +Body1285 1.89897561e+05 1.41973974e+04 ! particle number mass Rhill 5.96520618e+03 !particle radius in AU -7.87040592e+06 9.69728016e+06 -1.66849672e+03 ! x y z -1.42992939e+03 -1.17418658e+03 -3.60129869e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill +Body1286 1.97476197e+05 1.67504404e+04 ! particle number mass Rhill 6.04352860e+03 !particle radius in AU 1.32660339e+07 5.77686809e+06 1.35800303e+05 ! x y z -6.62231218e+02 1.59103506e+03 -3.43945323e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill +Body1287 6.78506127e+05 1.94924484e+04 ! particle number mass Rhill 9.11948377e+03 !particle radius in AU -1.01101796e+07 -4.73633978e+06 1.92223885e+04 ! x y z 8.16987783e+02 -1.78318056e+03 8.86814927e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill +Body1288 3.31102311e+05 2.06337640e+04 ! particle number mass Rhill 7.17970170e+03 !particle radius in AU -1.00157479e+07 1.12142854e+07 -2.29871580e+04 ! x y z -1.26146743e+03 -1.12281660e+03 -9.84657732e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill +Body1289 5.85238829e+05 1.87103235e+04 ! particle number mass Rhill 1.27922430e+04 !particle radius in AU -8.01070020e+06 -7.68441073e+06 -7.44586443e+03 ! x y z 1.37227167e+03 -1.42837223e+03 -3.04293724e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill +Body1290 2.57089994e+05 1.14604204e+04 ! particle number mass Rhill 6.59903940e+03 !particle radius in AU 5.94423414e+06 -6.60015867e+06 3.79489917e+04 ! x y z 1.64871713e+03 1.48917509e+03 4.06312752e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill +Body1291 5.62761960e+05 1.46125539e+04 ! particle number mass Rhill 1.26263329e+04 !particle radius in AU -3.52967631e+06 8.16512241e+06 -2.51085986e+04 ! x y z -2.00672046e+03 -8.99089812e+02 1.47195859e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill +Body1292 1.22606951e+05 1.04784482e+04 ! particle number mass Rhill 5.15573627e+03 !particle radius in AU 8.67857522e+06 6.03654833e+06 6.58011140e+03 ! x y z -1.13872966e+03 1.66817442e+03 2.18662162e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill +Body1293 2.63411927e+05 1.40199277e+04 ! particle number mass Rhill 9.80349206e+03 !particle radius in AU -4.55569332e+06 1.00472663e+07 8.70354064e+03 ! x y z -1.80149559e+03 -7.99810234e+02 3.42249675e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill +Body1294 2.73475123e+05 1.57989125e+04 ! particle number mass Rhill 9.92677698e+03 !particle radius in AU 9.14438839e+06 8.39253082e+06 -8.86556588e+04 ! x y z -1.26689180e+03 1.34538142e+03 -8.40350285e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill +Body1295 2.86580523e+05 1.51966222e+04 ! particle number mass Rhill 6.84228595e+03 !particle radius in AU 7.97751328e+06 8.67584783e+06 5.30436727e+04 ! x y z -1.38366127e+03 1.29303381e+03 -8.41467876e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill +Body1296 4.12299552e+05 1.34934085e+04 ! particle number mass Rhill 7.72425527e+03 !particle radius in AU -5.79048975e+06 6.93664576e+06 1.29124985e+04 ! x y z -1.68001209e+03 -1.40612278e+03 -3.61171376e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill +Body1297 5.59645883e+05 1.70426121e+04 ! particle number mass Rhill 1.26029852e+04 !particle radius in AU -5.16609529e+06 9.03539760e+06 5.58960613e+04 ! x y z -1.76517041e+03 -1.00560177e+03 -5.00965832e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill +Body1298 6.33916014e+04 1.50366592e+04 ! particle number mass Rhill 6.09788969e+03 !particle radius in AU 1.46424048e+07 -1.15689038e+07 3.27414078e+04 ! x y z 9.47675088e+02 1.20085208e+03 1.06976469e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill +Body1299 8.52433630e+04 8.93705997e+03 ! particle number mass Rhill 6.73063203e+03 !particle radius in AU 1.01236173e+07 1.45579667e+06 5.15839678e+04 ! x y z -2.87224826e+02 2.02832432e+03 -4.14184381e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill +Body1300 5.14081123e+04 6.53080242e+03 ! particle number mass Rhill 3.85889430e+03 !particle radius in AU 7.23258453e+06 4.97813060e+06 -4.38592192e+03 ! x y z -1.24479041e+03 1.83714641e+03 -1.95822638e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill +Body1301 6.77217199e+04 7.14700851e+03 ! particle number mass Rhill 4.23020736e+03 !particle radius in AU 8.93601994e+06 -6.94569357e+05 -6.12210199e+02 ! x y z 2.19917996e+02 2.16082384e+03 -1.54527155e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill +Body1302 6.11703776e+05 2.00034005e+04 ! particle number mass Rhill 1.29822323e+04 !particle radius in AU 8.82738308e+06 -7.76404080e+06 8.11338370e+04 ! x y z 1.26378234e+03 1.44510358e+03 2.18294651e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill +Body1303 1.65801844e+05 1.55733762e+04 ! particle number mass Rhill 8.40166656e+03 !particle radius in AU -1.07812933e+07 -9.62734933e+06 -5.03390757e+03 ! x y z 1.12256505e+03 -1.29339213e+03 -5.66212341e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill +Body1304 4.62987998e+05 1.42062076e+04 ! particle number mass Rhill 8.02864474e+03 !particle radius in AU -6.42251747e+06 -6.74488620e+06 7.04602772e+04 ! x y z 1.54144883e+03 -1.48324937e+03 1.60342159e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill +Body1305 2.60642975e+05 1.22939187e+04 ! particle number mass Rhill 6.62929998e+03 !particle radius in AU 9.47929213e+06 -2.19579661e+06 -3.25100566e+04 ! x y z 4.68213030e+02 2.04336200e+03 2.65890903e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill +Body1306 1.40715229e+06 2.33795274e+04 ! particle number mass Rhill 1.16296336e+04 !particle radius in AU -1.05077611e+07 -1.31085244e+06 7.30464724e+04 ! x y z 2.82650675e+02 -1.98548135e+03 -1.05658937e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill +Body1307 7.13061331e+04 7.85310031e+03 ! particle number mass Rhill 4.30356095e+03 !particle radius in AU -9.66162364e+06 4.23926500e+05 -1.22905037e+04 ! x y z -9.71624638e+01 -2.08984070e+03 2.75014649e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill +Body1308 4.89601650e+05 2.17422005e+04 ! particle number mass Rhill 8.17962300e+03 !particle radius in AU 9.30519559e+06 1.02777991e+07 -1.35151955e+04 ! x y z -1.30832060e+03 1.17931837e+03 4.96678180e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill +Body1309 1.78067654e+05 1.20379239e+04 ! particle number mass Rhill 8.60393924e+03 !particle radius in AU -5.38712062e+06 -9.43582755e+06 -1.42962613e+04 ! x y z 1.72402431e+03 -9.72573668e+02 -5.35637349e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill +Body1310 4.80906653e+04 1.22640544e+04 ! particle number mass Rhill 3.77403501e+03 !particle radius in AU -7.15437615e+06 -1.57030040e+07 1.86249551e+05 ! x y z 1.42003546e+03 -6.56667148e+02 -3.41426138e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill +Body1311 8.59903706e+04 7.89944042e+03 ! particle number mass Rhill 6.75023558e+03 !particle radius in AU 5.41844043e+06 -7.25472299e+06 -9.37968266e+03 ! x y z 1.74397758e+03 1.29517496e+03 1.90126636e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill +Body1312 1.63891142e+06 3.26516084e+04 ! particle number mass Rhill 1.22359443e+04 !particle radius in AU 1.22229448e+07 -6.93664382e+06 -3.73566212e+04 ! x y z 8.86957021e+02 1.49812000e+03 2.93544144e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill +Body1313 1.65548000e+05 1.22081060e+04 ! particle number mass Rhill 5.69849680e+03 !particle radius in AU 4.97534313e+05 1.12973925e+07 -2.47714549e+04 ! x y z -1.93747095e+03 6.82256092e+01 4.50885373e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill +Body1314 8.18131400e+04 1.04556815e+04 ! particle number mass Rhill 6.63911222e+03 !particle radius in AU 6.27007593e+06 1.03894624e+07 -7.16417007e+03 ! x y z -1.60760769e+03 9.75456582e+02 -4.84946763e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill +Body1315 1.03590462e+06 1.78980493e+04 ! particle number mass Rhill 1.05008774e+04 !particle radius in AU 4.20395564e+06 7.76433301e+06 8.41688618e+04 ! x y z -1.94265714e+03 1.06320178e+03 6.22424610e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill +Body1316 7.67868642e+04 7.82041161e+03 ! particle number mass Rhill 4.41111088e+03 !particle radius in AU 6.37276437e+06 -6.42184183e+06 6.41580563e+04 ! x y z 1.58319090e+03 1.53287002e+03 -1.33788595e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill +Body1317 5.89194336e+05 1.47666686e+04 ! particle number mass Rhill 1.28209983e+04 !particle radius in AU -7.71353791e+06 4.23425293e+06 1.25697535e+04 ! x y z -1.04844519e+03 -1.95403749e+03 -9.90990915e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill +Body1318 5.31112427e+04 7.05725430e+03 ! particle number mass Rhill 3.90104672e+03 !particle radius in AU -7.40633695e+06 5.93955618e+06 -5.19978226e+04 ! x y z -1.31908110e+03 -1.66222684e+03 -1.03799917e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill +Body1319 1.71842148e+06 2.82333324e+04 ! particle number mass Rhill 1.24306993e+04 !particle radius in AU 1.85739893e+06 -1.16268582e+07 -8.21342836e+03 ! x y z 1.89473415e+03 2.92048965e+02 -8.56627398e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill +Body1320 6.17278582e+05 1.48891277e+04 ! particle number mass Rhill 8.83648205e+03 !particle radius in AU 3.72582096e+06 7.91120697e+06 -5.23905881e+04 ! x y z -2.02715857e+03 9.13111080e+02 2.50053811e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill +Body1321 1.14474067e+06 2.18093377e+04 ! particle number mass Rhill 1.08564549e+04 !particle radius in AU 5.09385670e+05 -1.04637690e+07 -6.20563116e+04 ! x y z 2.02501696e+03 7.65309669e+01 -1.01351101e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill +Body1322 8.26533157e+04 7.68124990e+03 ! particle number mass Rhill 6.66176154e+03 !particle radius in AU -3.29144876e+06 8.15112104e+06 8.11267893e+04 ! x y z -2.05815351e+03 -8.34364146e+02 -5.14984629e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill +Body1323 1.46998004e+05 1.13133262e+04 ! particle number mass Rhill 5.47716901e+03 !particle radius in AU -1.05633758e+07 -2.07935484e+06 1.56201239e+04 ! x y z 3.80416672e+02 -1.96300156e+03 -6.47463330e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill +Body1324 1.56081831e+04 4.62254860e+03 ! particle number mass Rhill 3.82196266e+03 !particle radius in AU -8.96632975e+06 -4.86195335e+05 -1.06964367e+05 ! x y z 1.34820268e+02 -2.22107483e+03 1.19634049e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill +Body1325 6.88345306e+05 1.57488065e+04 ! particle number mass Rhill 9.16335366e+03 !particle radius in AU -7.48232762e+06 4.92380808e+06 2.29127905e+04 ! x y z -1.22302901e+03 -1.81943768e+03 2.38496332e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill +Body1326 1.99767409e+06 2.30772351e+04 ! particle number mass Rhill 1.30705504e+04 !particle radius in AU -5.03707716e+05 -9.29849125e+06 -1.11404007e+04 ! x y z 2.13355604e+03 -1.25957885e+02 3.59182325e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill +Body1327 1.47237759e+04 1.04619691e+04 ! particle number mass Rhill 3.74836657e+03 !particle radius in AU 2.17225066e+07 1.26121705e+06 -8.44855246e+04 ! x y z -9.80183609e+01 1.39255713e+03 -2.45394775e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill +Body1328 1.03148280e+05 1.18766934e+04 ! particle number mass Rhill 7.17226488e+03 !particle radius in AU -3.31559823e+06 1.24035988e+07 -2.07947532e+04 ! x y z -1.76007958e+03 -4.72548604e+02 9.49057096e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill +Body1329 7.89194790e+05 2.30906258e+04 ! particle number mass Rhill 9.59062845e+03 !particle radius in AU 1.21445680e+07 2.59228119e+06 -3.02162959e+04 ! x y z -3.98075492e+02 1.82853529e+03 6.91989022e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill +Body1330 1.23249402e+05 1.28550711e+04 ! particle number mass Rhill 7.61080504e+03 !particle radius in AU -1.13326598e+06 -1.29825734e+07 6.69579485e+03 ! x y z 1.80475746e+03 -1.76133915e+02 -5.83190587e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill +Body1331 1.22964994e+05 1.16605265e+04 ! particle number mass Rhill 7.60494634e+03 !particle radius in AU -4.79738768e+06 1.05660072e+07 -1.20703674e+04 ! x y z -1.76872416e+03 -7.96773745e+02 -7.48094782e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill +Body1332 4.01797998e+05 3.24133753e+04 ! particle number mass Rhill 1.12850870e+04 !particle radius in AU 2.19019020e+07 2.63899527e+06 3.37827752e+04 ! x y z -1.61269975e+02 1.38753575e+03 3.39443977e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill +Body1333 1.00770997e+06 2.34834210e+04 ! particle number mass Rhill 1.04047308e+04 !particle radius in AU -1.21105762e+07 -5.24541367e+05 -2.70555025e+04 ! x y z 6.19806533e+01 -1.85471109e+03 -1.08022259e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill +Body1334 3.90007197e+04 7.82329415e+03 ! particle number mass Rhill 5.18632661e+03 !particle radius in AU 6.24492290e+06 9.69571067e+06 -1.68199218e+04 ! x y z -1.63521643e+03 1.03697361e+03 9.03169661e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill +Body1335 2.52614269e+05 1.19155037e+04 ! particle number mass Rhill 6.56052039e+03 !particle radius in AU -9.25769957e+06 2.29292734e+06 -1.14919079e+04 ! x y z -5.12974483e+02 -2.05331332e+03 2.34930072e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill +Body1336 5.74783862e+05 1.77378872e+04 ! particle number mass Rhill 8.62886853e+03 !particle radius in AU -7.09412869e+06 -8.06275271e+06 -7.38498407e+04 ! x y z 1.50307169e+03 -1.31876348e+03 -1.74679708e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill +Body1337 1.20042329e+06 4.16689932e+04 ! particle number mass Rhill 1.10297026e+04 !particle radius in AU -1.83827850e+07 6.94620255e+06 -2.99390580e+04 ! x y z -5.38167682e+02 -1.38025174e+03 8.14592781e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill +Body1338 5.43654965e+04 1.07517216e+04 ! particle number mass Rhill 3.93151662e+03 !particle radius in AU 1.28440178e+07 6.15520582e+06 5.37944446e+04 ! x y z -7.49642103e+02 1.56926042e+03 -4.14121777e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill +Body1339 1.01511663e+05 1.53639766e+04 ! particle number mass Rhill 4.84125149e+03 !particle radius in AU -1.37958464e+07 -9.01984290e+06 9.37503357e+03 ! x y z 8.63514338e+02 -1.36928306e+03 -4.92726033e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill +Body1340 7.26811398e+04 1.23143345e+04 ! particle number mass Rhill 6.38228557e+03 !particle radius in AU 5.94552238e+06 -1.37356259e+07 -3.12464640e+04 ! x y z 1.54132538e+03 6.86924077e+02 4.95166504e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill +Body1341 1.79156251e+06 2.30318870e+04 ! particle number mass Rhill 1.26046169e+04 !particle radius in AU -8.47051395e+06 -4.33049723e+06 8.99388095e+03 ! x y z 1.01895175e+03 -1.86853627e+03 6.25752144e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill +Body1342 1.03732725e+06 4.12058066e+04 ! particle number mass Rhill 1.05056822e+04 !particle radius in AU -7.25230880e+06 -1.91074290e+07 -8.70931708e+04 ! x y z 1.36155621e+03 -5.02831587e+02 -8.24983528e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill +Body1343 1.06908158e+06 1.94954238e+04 ! particle number mass Rhill 1.06118054e+04 !particle radius in AU 4.25302051e+06 -8.61174101e+06 -1.08068198e+04 ! x y z 1.88839849e+03 9.49718679e+02 1.00715649e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill +Body1344 7.82894787e+04 1.38148136e+04 ! particle number mass Rhill 6.54239543e+03 !particle radius in AU 2.64852472e+06 1.60749418e+07 5.58768351e+04 ! x y z -1.60049117e+03 2.61947391e+02 -1.05513072e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill +Body1345 7.95878743e+04 7.78168116e+03 ! particle number mass Rhill 4.46410737e+03 !particle radius in AU 6.85901436e+06 5.92668091e+06 5.88024522e+03 ! x y z -1.42967304e+03 1.64782988e+03 3.76673216e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill +Body1346 3.00157124e+05 3.10642558e+04 ! particle number mass Rhill 1.02396523e+04 !particle radius in AU 1.65616231e+07 1.66028360e+07 -5.29304371e+04 ! x y z -9.28645255e+02 9.80527992e+02 5.80916438e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill +Body1347 9.96861900e+05 1.88907368e+04 ! particle number mass Rhill 1.03672601e+04 !particle radius in AU -7.26003067e+05 9.56806531e+06 9.83311273e+04 ! x y z -2.10111468e+03 -1.57355588e+02 7.65120270e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill +Body1348 1.71021140e+05 1.36698293e+04 ! particle number mass Rhill 8.48891637e+03 !particle radius in AU -3.13308835e+06 1.20377491e+07 -1.96893006e+04 ! x y z -1.80038683e+03 -4.46661696e+02 -1.05229342e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill +Body1349 5.21822966e+04 7.10639660e+03 ! particle number mass Rhill 5.71491865e+03 !particle radius in AU 3.61039948e+06 -8.94670524e+06 -6.45909208e+04 ! x y z 1.94572548e+03 7.94221249e+02 2.27282153e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill +Body1350 2.11854770e+05 1.49949851e+04 ! particle number mass Rhill 6.18678578e+03 !particle radius in AU 1.23051248e+07 -2.76310551e+06 1.16872533e+05 ! x y z 4.31851334e+02 1.79778427e+03 -3.52355374e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill +Body1351 4.53712916e+05 2.12325358e+04 ! particle number mass Rhill 7.97466982e+03 !particle radius in AU 1.37198938e+07 -1.77790003e+06 -1.13538998e+05 ! x y z 2.34248090e+02 1.75094064e+03 -4.43647357e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill +Body1352 6.12975304e+05 1.54940796e+04 ! particle number mass Rhill 8.81590001e+03 !particle radius in AU 7.46219447e+06 -5.55061844e+06 3.02223367e+04 ! x y z 1.30415331e+03 1.69020434e+03 -2.84026488e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill +Body1353 2.51706491e+05 1.19271740e+04 ! particle number mass Rhill 9.65607124e+03 !particle radius in AU 1.79117779e+06 -9.28064516e+06 2.29081417e+03 ! x y z 2.10478434e+03 3.74607623e+02 2.08339038e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill +Body1354 1.05226394e+06 1.80004323e+04 ! particle number mass Rhill 1.05558666e+04 !particle radius in AU 7.62366140e+06 -4.73786634e+06 -3.67690119e+04 ! x y z 1.17730042e+03 1.83367733e+03 -1.18403024e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill +Body1355 1.53011690e+06 2.33989676e+04 ! particle number mass Rhill 1.19589725e+04 !particle radius in AU -1.01261545e+07 2.81055834e+05 -8.19414070e+03 ! x y z -6.18154480e+01 -2.06712328e+03 -2.24522121e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill +Body1356 9.08272734e+05 1.83178714e+04 ! particle number mass Rhill 1.00505792e+04 !particle radius in AU 6.29538118e+06 7.15708897e+06 4.07031267e+04 ! x y z -1.60705715e+03 1.38487957e+03 -1.00848425e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill +Body1357 1.23742619e+06 1.91614444e+04 ! particle number mass Rhill 1.11418874e+04 !particle radius in AU -8.49609253e+06 2.57253582e+06 -4.04158861e+03 ! x y z -6.25851824e+02 -2.12221062e+03 -1.18572479e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill +Body1358 1.94661335e+05 1.30044682e+04 ! particle number mass Rhill 6.01467589e+03 !particle radius in AU -1.10898042e+07 -1.78242858e+06 -7.98635316e+03 ! x y z 3.31900537e+02 -1.93252272e+03 -5.54822823e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill +Body1359 5.76290328e+05 1.90919967e+04 ! particle number mass Rhill 1.27267086e+04 !particle radius in AU -9.56599926e+06 -6.50694892e+06 1.36299753e+04 ! x y z 1.08336182e+03 -1.59117844e+03 -6.14843419e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill +Body1360 1.46712586e+05 9.57263826e+03 ! particle number mass Rhill 5.47362181e+03 !particle radius in AU -8.97074514e+06 8.73736202e+05 8.61659651e+03 ! x y z -2.31036282e+02 -2.18526870e+03 3.84732945e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill +Body1361 1.04321892e+06 1.88500830e+04 ! particle number mass Rhill 1.05255343e+04 !particle radius in AU 2.22458775e+06 -9.09183474e+06 6.60915144e+04 ! x y z 2.08331663e+03 4.95850932e+02 -1.01931453e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill +Body1362 4.75220894e+05 1.68019312e+04 ! particle number mass Rhill 1.19344067e+04 !particle radius in AU 5.23135757e+06 -9.91357725e+06 4.20848292e+03 ! x y z 1.68969350e+03 9.19667997e+02 7.40595361e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill +Body1363 7.30092568e+04 1.27115707e+04 ! particle number mass Rhill 4.33755478e+03 !particle radius in AU -1.28024389e+07 8.53060405e+06 4.23749438e+04 ! x y z -9.17577167e+02 -1.39144923e+03 -5.10429471e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill +Body1364 1.28074679e+06 4.35476221e+04 ! particle number mass Rhill 1.12704197e+04 !particle radius in AU -8.46758421e+06 -1.84532581e+07 8.05817267e+04 ! x y z 1.31420508e+03 -6.13047074e+02 -4.80774414e-03 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill +Body1365 3.15565087e+05 1.24463932e+04 ! particle number mass Rhill 7.06559347e+03 !particle radius in AU -5.61587582e+06 7.53072526e+06 -2.26125540e+04 ! x y z -1.70025928e+03 -1.25935338e+03 1.03927192e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill +Body1366 1.32749597e+06 3.08557682e+04 ! particle number mass Rhill 1.14059133e+04 !particle radius in AU -2.14619149e+06 -1.42066503e+07 1.73542964e+04 ! x y z 1.70134938e+03 -2.12094299e+02 -3.88248921e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill +Body1367 3.00481034e+05 1.26260123e+04 ! particle number mass Rhill 1.02433343e+04 !particle radius in AU -2.01595454e+06 -9.31357942e+06 -4.91526291e+04 ! x y z 2.05875974e+03 -4.99092474e+02 -1.24005530e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill +Body1368 5.62740643e+05 2.30653210e+04 ! particle number mass Rhill 1.26261734e+04 !particle radius in AU -3.35093529e+06 -1.37898898e+07 -7.67867475e+04 ! x y z 1.68266801e+03 -4.09195838e+02 4.84518176e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill +Body1369 6.60086057e+04 9.53594170e+03 ! particle number mass Rhill 4.19423265e+03 !particle radius in AU -5.47614308e+04 1.19582326e+07 -9.89002659e+04 ! x y z -1.88840184e+03 -2.62651981e+01 7.68950274e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill +Body1370 1.25293273e+05 1.14207894e+04 ! particle number mass Rhill 5.19311868e+03 !particle radius in AU -3.77832466e+06 1.09398130e+07 3.13756637e+04 ! x y z -1.82483111e+03 -5.94408085e+02 -5.78133740e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill +Body1371 7.50733289e+04 1.04930646e+04 ! particle number mass Rhill 6.45155218e+03 !particle radius in AU 4.84011056e+06 -1.18968706e+07 1.84555477e+04 ! x y z 1.67151498e+03 6.81175038e+02 -7.19327483e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill +Body1372 1.98591196e+05 1.30161400e+04 ! particle number mass Rhill 6.05488167e+03 !particle radius in AU 5.21483996e+04 -1.14249117e+07 5.55267676e+04 ! x y z 1.92199543e+03 2.89226318e+00 3.62643891e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill +Body1373 6.85663466e+05 2.04510345e+04 ! particle number mass Rhill 9.15143782e+03 !particle radius in AU -1.10411425e+07 -3.92571862e+06 -5.07146026e+04 ! x y z 6.36950570e+02 -1.80153278e+03 2.92128142e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill +Body1374 1.23065485e+05 1.94250011e+04 ! particle number mass Rhill 7.60701744e+03 !particle radius in AU -1.31978898e+07 1.46521426e+07 -3.77196518e+04 ! x y z -1.09404867e+03 -9.86978912e+02 -1.39684139e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill +Body1375 9.32976416e+05 2.08746348e+04 ! particle number mass Rhill 1.01408856e+04 !particle radius in AU -2.88294831e+06 -1.04031089e+07 2.08513090e+04 ! x y z 1.92072665e+03 -5.23302927e+02 5.19800736e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill +Body1376 1.08992704e+06 1.83798070e+04 ! particle number mass Rhill 1.06803333e+04 !particle radius in AU 2.38782775e+06 -8.75851927e+06 4.58765881e+04 ! x y z 2.08778972e+03 5.70538122e+02 1.58463921e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill +Body1377 3.76825728e+05 2.16154245e+04 ! particle number mass Rhill 1.10462747e+04 !particle radius in AU -1.39881250e+07 -5.83335318e+06 -6.16116575e+04 ! x y z 6.22870510e+02 -1.55838806e+03 1.20223983e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill +Body1378 5.53365914e+05 1.43923959e+04 ! particle number mass Rhill 1.25556671e+04 !particle radius in AU 4.99865237e+06 7.28764110e+06 -6.86499352e+04 ! x y z -1.79951538e+03 1.27018155e+03 -3.04997592e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill +Body1379 6.39199380e+04 9.52618767e+03 ! particle number mass Rhill 6.11478378e+03 !particle radius in AU 4.99165759e+06 1.10448368e+07 3.69114811e+04 ! x y z -1.71481010e+03 7.51891478e+02 2.57133594e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill +Body1380 1.50512007e+04 4.38843070e+03 ! particle number mass Rhill 3.77594830e+03 !particle radius in AU -1.38190232e+06 8.92446579e+06 -2.39874601e+01 ! x y z -2.13999854e+03 -3.62741075e+02 -1.15400248e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill +Body1381 5.00451986e+04 8.33623035e+03 ! particle number mass Rhill 3.82448653e+03 !particle radius in AU -1.11170825e+07 2.94394609e+06 -4.30953134e+04 ! x y z -5.00071887e+02 -1.85670191e+03 4.27947102e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill +Body1382 1.37866160e+06 2.24025141e+04 ! particle number mass Rhill 1.15506092e+04 !particle radius in AU 1.02590139e+07 -2.70501621e+05 1.75890374e+04 ! x y z 8.26113275e+01 2.03083325e+03 -1.20188470e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill +Body1383 1.52540156e+06 2.36328931e+04 ! particle number mass Rhill 1.19466753e+04 !particle radius in AU 1.05552207e+06 1.03618993e+07 4.81086872e+04 ! x y z -2.01112311e+03 2.15384368e+02 -7.43201232e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill +Body1384 4.98999643e+05 1.49525075e+04 ! particle number mass Rhill 1.21302309e+04 !particle radius in AU 2.73631070e+06 -9.24970389e+06 5.21198850e+04 ! x y z 2.01203797e+03 5.75113061e+02 -1.08228016e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill +Body1385 1.22963928e+05 1.15704812e+04 ! particle number mass Rhill 7.60492436e+03 !particle radius in AU 7.49333106e+06 8.99255805e+06 4.28079932e+04 ! x y z -1.47027422e+03 1.22861330e+03 -2.29537873e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill +Body1386 6.29316275e+05 1.65343140e+04 ! particle number mass Rhill 8.89355341e+03 !particle radius in AU 7.19860353e+06 -6.54495925e+06 4.11431543e+04 ! x y z 1.41373944e+03 1.55175420e+03 1.34717999e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill +Body1387 6.64261825e+04 8.06796854e+03 ! particle number mass Rhill 4.20305844e+03 !particle radius in AU -1.00628201e+07 -1.83741461e+06 -1.98227486e+03 ! x y z 3.70859453e+02 -1.99423409e+03 -1.20280387e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill +Body1388 1.61162197e+06 2.05540497e+04 ! particle number mass Rhill 1.21676504e+04 !particle radius in AU 5.77701761e+06 6.58972717e+06 1.74818314e+04 ! x y z -1.68661617e+03 1.44550446e+03 -1.99467032e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill +Body1389 2.31008539e+05 1.09300831e+04 ! particle number mass Rhill 6.36788201e+03 !particle radius in AU 2.92908581e+06 -8.51550871e+06 2.35649421e+04 ! x y z 2.06952805e+03 6.82474350e+02 -1.19878409e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill +Body1390 8.79756930e+04 1.57795601e+04 ! particle number mass Rhill 4.61572468e+03 !particle radius in AU -1.67832510e+07 5.10602561e+06 6.05666574e+04 ! x y z -4.71529253e+02 -1.50630622e+03 1.54396748e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill +Body1391 7.86523786e+05 2.26449685e+04 ! particle number mass Rhill 9.57979650e+03 !particle radius in AU 5.94339422e+06 1.09804417e+07 4.79977238e+04 ! x y z -1.62390609e+03 8.74411928e+02 6.90172493e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill +Body1392 7.95689825e+05 2.04444166e+04 ! particle number mass Rhill 9.61686674e+03 !particle radius in AU -9.53286463e+05 1.08518193e+07 1.37804570e+04 ! x y z -1.99765013e+03 -1.63665978e+02 -1.39490183e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill +Body1393 1.57903814e+05 1.75328316e+04 ! particle number mass Rhill 8.26608492e+03 !particle radius in AU -6.92004578e+06 -1.47096496e+07 9.07914526e+04 ! x y z 1.47519584e+03 -6.90837866e+02 6.35058618e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill +Body1394 1.79760964e+06 3.27447713e+04 ! particle number mass Rhill 1.26187826e+04 !particle radius in AU -1.20616278e+07 6.06273134e+06 -6.00296658e+04 ! x y z -8.01878358e+02 -1.59732664e+03 6.85710223e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill +Body1395 1.72877299e+06 3.01002806e+04 ! particle number mass Rhill 1.24556096e+04 !particle radius in AU 1.07241366e+07 6.87028361e+06 9.95384965e+03 ! x y z -9.77403580e+02 1.54502689e+03 -6.02368193e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill +Body1396 5.37735425e+05 1.81911004e+04 ! particle number mass Rhill 8.43934121e+03 !particle radius in AU -9.89312276e+06 -5.78442642e+06 3.19342091e+03 ! x y z 1.00166999e+03 -1.63649382e+03 -7.28916722e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill +Body1397 1.12551232e+05 1.00244300e+04 ! particle number mass Rhill 7.38389889e+03 !particle radius in AU -1.05072101e+07 8.59747253e+05 -8.51062631e+04 ! x y z -1.76270864e+02 -2.00169685e+03 -1.88486496e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill +Body1398 1.93788717e+05 1.07523030e+04 ! particle number mass Rhill 6.00567499e+03 !particle radius in AU 5.23533805e+06 -8.01402331e+06 2.56229650e+04 ! x y z 1.74936393e+03 1.14948262e+03 1.14944776e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill +Body1399 3.94151482e+05 1.32927065e+04 ! particle number mass Rhill 1.12130402e+04 !particle radius in AU -3.53936356e+06 8.37116745e+06 -5.28989524e+04 ! x y z -2.00215068e+03 -8.57726431e+02 -1.43522460e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill +Body1400 9.72092511e+05 1.81538052e+04 ! particle number mass Rhill 1.02806726e+04 !particle radius in AU 8.06463120e+06 -4.43013823e+06 9.40752267e+04 ! x y z 1.03931497e+03 1.89699386e+03 -9.86578192e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill +Body1401 5.15220478e+05 1.68308350e+04 ! particle number mass Rhill 1.22602698e+04 !particle radius in AU -1.05188937e+07 8.26557998e+05 -2.50244301e+04 ! x y z -1.75058944e+02 -2.01148735e+03 6.39744454e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill +Body1402 2.13063868e+05 1.07950104e+04 ! particle number mass Rhill 9.13423664e+03 !particle radius in AU 9.02166027e+05 -9.17478955e+06 6.28467621e+04 ! x y z 2.13279891e+03 2.18658803e+02 5.09551557e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill +Body1403 4.71317796e+05 1.46342438e+04 ! particle number mass Rhill 8.07650766e+03 !particle radius in AU -3.82128992e+06 8.76150983e+06 -3.66320445e+04 ! x y z -1.91568216e+03 -8.82768818e+02 -8.66361539e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill +Body1404 4.64539498e+05 1.97631805e+04 ! particle number mass Rhill 8.03760289e+03 !particle radius in AU 6.34183157e+06 1.14263259e+07 -3.93771961e+04 ! x y z -1.57702001e+03 8.61699373e+02 7.37963170e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill +Body1405 1.22910745e+06 2.88108450e+04 ! particle number mass Rhill 1.11168637e+04 !particle radius in AU -1.30405721e+07 -3.97553562e+06 6.86718538e+04 ! x y z 5.08860652e+02 -1.69393029e+03 3.39424464e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill +Body1406 3.59051292e+05 1.29060626e+04 ! particle number mass Rhill 7.37628737e+03 !particle radius in AU 1.47724485e+06 8.92877200e+06 -1.05084746e+05 ! x y z -2.16100073e+03 3.48067255e+02 2.02796618e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill +Body1407 5.58713149e+05 1.72404097e+04 ! particle number mass Rhill 1.25959797e+04 !particle radius in AU 6.68480405e+06 8.22694034e+06 5.91279278e+04 ! x y z -1.56238715e+03 1.25932846e+03 7.35031359e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill +Body1408 1.49551836e+06 2.70347043e+04 ! particle number mass Rhill 1.18681469e+04 !particle radius in AU 1.16829878e+07 3.26454849e+06 8.84361419e+04 ! x y z -5.06154292e+02 1.79320925e+03 1.57229654e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill +Body1409 1.74614925e+05 1.13819946e+04 ! particle number mass Rhill 8.54796582e+03 !particle radius in AU 9.47110497e+06 -3.98852153e+06 -3.02153569e+04 ! x y z 8.00176660e+02 1.87835641e+03 1.12222570e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill +Body1410 4.37419833e+05 1.87404958e+04 ! particle number mass Rhill 7.87804554e+03 !particle radius in AU 1.46320698e+06 -1.24945211e+07 2.33172915e+04 ! x y z 1.82255294e+03 2.24692006e+02 -5.94227757e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill +Body1411 9.88194235e+05 2.19599829e+04 ! particle number mass Rhill 1.03371250e+04 !particle radius in AU -2.99549263e+06 1.07900890e+07 -3.59480074e+04 ! x y z -1.87291441e+03 -5.40526156e+02 -2.72086375e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill +Body1412 8.12416369e+04 8.11359134e+03 ! particle number mass Rhill 4.49481566e+03 !particle radius in AU 8.92552694e+06 -2.88867045e+06 4.50164736e+04 ! x y z 6.21245683e+02 2.05314318e+03 5.45203724e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill +Body1413 1.05826275e+06 1.96138959e+04 ! particle number mass Rhill 1.05758878e+04 !particle radius in AU 5.22399519e+06 8.01692184e+06 -5.68152669e+03 ! x y z -1.79741529e+03 1.14577258e+03 9.91685440e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill +Body1414 1.63403319e+05 9.80071456e+03 ! particle number mass Rhill 8.36095619e+03 !particle radius in AU 8.03570746e+06 -4.11887844e+06 3.48874429e+04 ! x y z 1.00266026e+03 1.93580077e+03 -1.91021104e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill +Body1415 2.42846073e+04 5.95994238e+03 ! particle number mass Rhill 4.42873150e+03 !particle radius in AU 9.90649703e+06 3.18003586e+06 1.94516997e+04 ! x y z -6.33346908e+02 1.92588552e+03 -4.00155121e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill +Body1416 1.39585476e+06 1.98821424e+04 ! particle number mass Rhill 1.15984265e+04 !particle radius in AU -1.09606598e+06 8.80615149e+06 -2.31959292e+04 ! x y z -2.19928594e+03 -2.15273172e+02 -1.46856638e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill +Body1417 5.69983191e+05 1.68129906e+04 ! particle number mass Rhill 8.60477818e+03 !particle radius in AU 1.52623331e+06 -9.87507162e+06 -7.34326606e+04 ! x y z 2.07157812e+03 3.10284089e+02 -1.48877124e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill +Body1418 4.36632456e+05 1.43212304e+04 ! particle number mass Rhill 1.16022173e+04 !particle radius in AU 5.60100517e+06 -7.52238732e+06 -7.05544699e+04 ! x y z 1.72239950e+03 1.29297128e+03 -1.52256341e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill +Body1419 1.67122060e+05 1.16630765e+04 ! particle number mass Rhill 5.71650065e+03 !particle radius in AU -3.94522959e+06 -9.97626417e+06 9.25599419e+03 ! x y z 1.86732899e+03 -7.00228008e+02 -6.60836692e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill +Body1420 1.46864649e+06 2.03402135e+04 ! particle number mass Rhill 1.17966335e+04 !particle radius in AU 8.23445883e+04 -9.04812768e+06 -1.64851152e+03 ! x y z 2.17359230e+03 -1.27347929e+01 -1.55026516e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill +Body1421 4.13129899e+05 1.84920921e+04 ! particle number mass Rhill 1.13901960e+04 !particle radius in AU -9.27915033e+06 -8.53740765e+06 -1.42390767e+05 ! x y z 1.24138782e+03 -1.35430995e+03 -1.90290768e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill +Body1422 3.39196625e+05 1.53683400e+04 ! particle number mass Rhill 7.23773766e+03 !particle radius in AU 6.08369217e+06 -9.30896549e+06 1.20641705e+05 ! x y z 1.63879722e+03 1.07988243e+03 -4.44689941e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill +Body1423 1.56760316e+05 1.13228643e+04 ! particle number mass Rhill 5.59582821e+03 !particle radius in AU 9.59849615e+06 4.68470056e+06 3.84316246e+04 ! x y z -8.55957491e+02 1.80183427e+03 7.74894619e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill +Body1424 8.72575676e+05 1.94114085e+04 ! particle number mass Rhill 9.91714578e+03 !particle radius in AU -1.08060668e+06 -1.00607858e+07 4.94826506e+04 ! x y z 2.05453656e+03 -2.59041316e+02 -1.24750217e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill +Body1425 1.52610080e+05 1.67317953e+04 ! particle number mass Rhill 8.17265933e+03 !particle radius in AU 1.47983590e+07 5.41415872e+06 -1.80415422e+04 ! x y z -5.58693227e+02 1.55361354e+03 1.18553934e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill +Body1426 1.44994049e+05 1.07202302e+04 ! particle number mass Rhill 8.03438024e+03 !particle radius in AU -7.58136593e+06 6.99309921e+06 2.29302110e+04 ! x y z -1.40627338e+03 -1.47284043e+03 -4.36076043e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill +Body1427 7.80472321e+05 1.86417464e+04 ! particle number mass Rhill 9.55516443e+03 !particle radius in AU -1.00024650e+07 2.57885499e+06 -6.07457902e+03 ! x y z -5.22539017e+02 -1.95674023e+03 -7.68835058e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill +Body1428 6.00438958e+05 1.93290671e+04 ! particle number mass Rhill 1.29020467e+04 !particle radius in AU -9.01182188e+06 7.17037576e+06 -1.80541014e+04 ! x y z -1.21356170e+03 -1.50384647e+03 1.80093599e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill +Body1429 1.75115386e+06 2.43458664e+04 ! particle number mass Rhill 1.25091298e+04 !particle radius in AU -5.24887098e+06 8.72732331e+06 8.04218722e+04 ! x y z -1.74335368e+03 -1.08193759e+03 -5.43249124e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill +Body1430 3.33981162e+05 2.15867295e+04 ! particle number mass Rhill 1.06106742e+04 !particle radius in AU -2.45049686e+06 1.55426920e+07 1.07580343e+05 ! x y z -1.62197493e+03 -2.92833542e+02 -1.14576459e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill +Body1431 4.58385695e+05 2.01935560e+04 ! particle number mass Rhill 8.00195335e+03 !particle radius in AU -1.22199859e+07 4.38221625e+06 -3.89351024e+04 ! x y z -6.16349372e+02 -1.72585692e+03 4.89125567e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill +Body1432 2.23751701e+05 1.21149867e+04 ! particle number mass Rhill 6.30049172e+03 !particle radius in AU -2.68787716e+06 -9.60100858e+06 2.64767119e+03 ! x y z 2.00338289e+03 -5.71028998e+02 2.70092626e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill +Body1433 6.14170089e+05 1.68963871e+04 ! particle number mass Rhill 1.29996565e+04 !particle radius in AU -8.95990349e+06 4.52753433e+06 1.16091499e+04 ! x y z -9.24228536e+02 -1.84658152e+03 6.10613917e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill +Body1434 4.88383647e+04 1.28185350e+04 ! particle number mass Rhill 5.59014012e+03 !particle radius in AU 1.71028024e+07 4.97528193e+06 -6.57328228e+04 ! x y z -4.53167939e+02 1.47788400e+03 4.60344609e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill +Body1435 3.78131340e+05 3.35514648e+04 ! particle number mass Rhill 1.10590176e+04 !particle radius in AU -2.23441151e+07 -5.50686380e+06 3.85003687e+04 ! x y z 3.37072469e+02 -1.33411055e+03 5.11825064e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill +Body1436 1.12257471e+06 4.29816726e+04 ! particle number mass Rhill 1.07859254e+04 !particle radius in AU -1.12784475e+07 1.70585791e+07 -1.32439952e+05 ! x y z -1.22293182e+03 -8.00872476e+02 4.14711101e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill +Body1437 6.97796488e+05 1.81514488e+04 ! particle number mass Rhill 9.20510168e+03 !particle radius in AU -3.79252235e+06 9.57625977e+06 -9.43032419e+04 ! x y z -1.90113874e+03 -7.45374550e+02 -2.76613575e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill +Body1438 6.32170601e+04 7.02909847e+03 ! particle number mass Rhill 4.13425343e+03 !particle radius in AU -7.96122660e+06 3.67866986e+06 -9.30226617e+03 ! x y z -9.42526154e+02 -2.01745780e+03 -1.25281974e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill +Body1439 1.55582987e+05 1.03484949e+04 ! particle number mass Rhill 5.58178407e+03 !particle radius in AU -7.53794950e+06 6.23579413e+06 -2.61014008e+04 ! x y z -1.34980984e+03 -1.58862900e+03 -1.61372420e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill +Body1440 4.37297807e+04 6.59045414e+03 ! particle number mass Rhill 5.38800623e+03 !particle radius in AU -8.66326774e+06 4.08110980e+06 -3.65358197e+04 ! x y z -9.22979977e+02 -1.88593300e+03 -1.20742584e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill +Body1441 1.00764560e+05 1.20451591e+04 ! particle number mass Rhill 4.82934540e+03 !particle radius in AU -8.01465112e+06 -1.03186901e+07 -8.69608158e+04 ! x y z 1.40671015e+03 -1.13976841e+03 1.88119518e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill +Body1442 3.51703554e+05 2.06788915e+04 ! particle number mass Rhill 1.07951308e+04 !particle radius in AU -1.49556816e+07 -7.86589247e+05 1.11406498e+05 ! x y z 1.14089906e+02 -1.67632423e+03 -1.08680759e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill +Body1443 1.92277696e+06 3.28524926e+04 ! particle number mass Rhill 1.29051176e+04 !particle radius in AU 1.27123539e+07 -2.64461233e+06 -6.18084715e+04 ! x y z 3.74400777e+02 1.80142774e+03 3.83561532e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill +Body1444 3.45658520e+05 2.43824484e+04 ! particle number mass Rhill 1.07329246e+04 !particle radius in AU -4.06927547e+05 -1.75442240e+07 1.00963469e+05 ! x y z 1.56104472e+03 -4.39048470e+01 3.93620680e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill +Body1445 1.13287340e+05 1.58649945e+04 ! particle number mass Rhill 5.02164633e+03 !particle radius in AU 8.84368264e+06 1.43003762e+07 5.00874702e+04 ! x y z -1.35152929e+03 8.24556921e+02 -8.03719400e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill +Body1446 1.49424265e+06 2.19656703e+04 ! particle number mass Rhill 1.18647713e+04 !particle radius in AU -9.54707879e+06 1.77630246e+06 -8.88116065e+03 ! x y z -3.48826440e+02 -2.06942564e+03 -2.16674061e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill +Body1447 7.99886482e+05 2.37523761e+04 ! particle number mass Rhill 9.63374432e+03 !particle radius in AU 1.09242185e+07 6.96934254e+06 -3.27489047e+04 ! x y z -9.84319971e+02 1.52494369e+03 8.24595564e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill +Body1448 6.88070041e+04 8.39015369e+03 ! particle number mass Rhill 4.25268498e+03 !particle radius in AU 5.58576103e+06 8.70672427e+06 -2.15687306e+04 ! x y z -1.72503313e+03 1.07740968e+03 -3.41426440e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill +Body1449 3.82536212e+05 1.40133678e+04 ! particle number mass Rhill 1.11017942e+04 !particle radius in AU -4.11471227e+06 -8.93287907e+06 -4.36028632e+04 ! x y z 1.89219131e+03 -8.56549006e+02 8.16432689e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill +Body1450 2.90080057e+05 1.19567122e+04 ! particle number mass Rhill 6.87002453e+03 !particle radius in AU 8.96616870e+06 -2.05606701e+06 2.01901008e+04 ! x y z 4.73236695e+02 2.09528249e+03 -4.42528671e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill +Body1451 1.59018668e+05 1.92436459e+04 ! particle number mass Rhill 8.28549309e+03 !particle radius in AU 1.71268946e+07 4.30766948e+06 2.02642738e+03 ! x y z -4.07771856e+02 1.51502114e+03 -1.13119700e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill +Body1452 9.33386750e+04 1.64255317e+04 ! particle number mass Rhill 4.70767212e+03 !particle radius in AU -4.68916418e+05 1.79356049e+07 2.73217306e+04 ! x y z -1.55840072e+03 -4.92017252e+01 -1.97207421e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill +Body1453 3.61408263e+05 1.25858962e+04 ! particle number mass Rhill 1.08935228e+04 !particle radius in AU -8.58951775e+06 -2.49673020e+06 1.50355881e+04 ! x y z 6.03037486e+02 -2.10005557e+03 9.90449926e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill +Body1454 4.04341391e+05 1.39794979e+04 ! particle number mass Rhill 1.13088486e+04 !particle radius in AU -1.24947062e+06 9.39169733e+06 -1.29611502e+03 ! x y z -2.12088670e+03 -2.33617557e+02 -7.92353291e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill +Body1455 1.15205467e+05 9.46757023e+03 ! particle number mass Rhill 5.04982925e+03 !particle radius in AU 9.31255896e+06 3.14623519e+06 -5.69089329e+03 ! x y z -7.03486722e+02 1.96419139e+03 2.25468152e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill +Body1456 1.36945908e+05 1.16200120e+04 ! particle number mass Rhill 7.88288776e+03 !particle radius in AU -5.85221513e+05 -1.12876036e+07 -5.52028652e+04 ! x y z 1.95064275e+03 -9.81526152e+01 -5.91601856e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill +Body1457 3.65528213e+05 1.31090663e+04 ! particle number mass Rhill 1.09347609e+04 !particle radius in AU -2.96784791e+06 -8.77030784e+06 -6.49349269e+04 ! x y z 2.04523947e+03 -6.63593054e+02 -5.41808592e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill +Body1458 1.69950901e+04 6.03470815e+03 ! particle number mass Rhill 3.93196955e+03 !particle radius in AU 8.90265546e+05 1.20291601e+07 -5.41238919e+02 ! x y z -1.86112508e+03 1.50752240e+02 -5.69806824e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill +Body1459 1.14279210e+05 1.31227492e+04 ! particle number mass Rhill 5.03625919e+03 !particle radius in AU -4.12865927e+06 -1.30370302e+07 2.49268877e+04 ! x y z 1.68286207e+03 -5.42218893e+02 7.09107529e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill +Body1460 1.32563480e+06 2.20277567e+04 ! particle number mass Rhill 1.14005804e+04 !particle radius in AU -8.83659135e+06 4.88772967e+06 3.97374919e+04 ! x y z -9.96652878e+02 -1.80490383e+03 4.50625373e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill +Body1461 1.09382671e+05 1.04026284e+04 ! particle number mass Rhill 7.31394737e+03 !particle radius in AU 7.51899250e+06 8.02238049e+06 4.96372898e+04 ! x y z -1.45435540e+03 1.33207577e+03 -8.91729858e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill +Body1462 1.96680548e+05 2.21014105e+04 ! particle number mass Rhill 8.89384301e+03 !particle radius in AU 1.07692501e+07 -1.58383421e+07 5.11056372e+04 ! x y z 1.24097868e+03 8.36402001e+02 1.17081374e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill +Body1463 6.31269846e+05 1.55026435e+04 ! particle number mass Rhill 8.90274659e+03 !particle radius in AU -7.87110940e+06 4.57199197e+06 -7.32174697e+03 ! x y z -1.11779702e+03 -1.86164265e+03 1.82306653e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill +Body1464 1.65148564e+05 1.29292367e+04 ! particle number mass Rhill 8.39061750e+03 !particle radius in AU -9.02697440e+06 7.44735568e+06 -6.20239222e+04 ! x y z -1.22828772e+03 -1.48671915e+03 -3.25023413e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill +Body1465 2.01259594e+05 1.25893360e+04 ! particle number mass Rhill 8.96233529e+03 !particle radius in AU 1.03311380e+07 2.97114168e+06 2.75510366e+04 ! x y z -5.53060286e+02 1.92682584e+03 -7.92293805e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill +Body1466 3.47358922e+04 5.91061876e+03 ! particle number mass Rhill 4.98993792e+03 !particle radius in AU 7.02853805e+06 6.05239702e+06 3.87860255e+03 ! x y z -1.40362427e+03 1.60647543e+03 -1.45016070e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill +Body1467 6.56492226e+04 7.07440593e+03 ! particle number mass Rhill 4.18660697e+03 !particle radius in AU 6.55440785e+06 5.85117198e+06 -4.93943511e+04 ! x y z -1.49384332e+03 1.63681032e+03 -1.39258100e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill +Body1468 4.49127828e+05 1.61155734e+04 ! particle number mass Rhill 1.17118539e+04 !particle radius in AU 9.90570829e+06 4.34179796e+06 -2.00530721e+04 ! x y z -7.94337401e+02 1.80469509e+03 -3.79870453e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill +Body1469 4.46485515e+05 1.75275373e+04 ! particle number mass Rhill 7.93209892e+03 !particle radius in AU -8.25205087e+06 7.98686094e+06 -3.50332951e+04 ! x y z -1.35816228e+03 -1.38349553e+03 1.34047111e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill +Body1470 3.40516646e+05 1.47688794e+04 ! particle number mass Rhill 7.24711433e+03 !particle radius in AU -9.96135005e+06 3.70457700e+06 -9.07193755e+04 ! x y z -7.21948720e+02 -1.87787046e+03 -1.05717777e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill +Body1471 7.95155921e+04 1.33847411e+04 ! particle number mass Rhill 6.57637276e+03 !particle radius in AU -1.22268683e+07 1.01474610e+07 -8.42852150e+04 ! x y z -1.02194217e+03 -1.27298189e+03 -7.67733923e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill +Body1472 9.54539516e+04 9.68623016e+03 ! particle number mass Rhill 6.98929911e+03 !particle radius in AU 4.92746951e+06 9.58728854e+06 2.89432610e+04 ! x y z -1.76304026e+03 9.13627287e+02 6.36664299e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill +Body1473 1.51141099e+06 2.76245591e+04 ! particle number mass Rhill 1.19100391e+04 !particle radius in AU 1.23329034e+07 -6.92729902e+05 2.96405314e+04 ! x y z 1.12931575e+02 1.84303874e+03 -9.66021750e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill +Body1474 2.27824759e+05 2.21950382e+04 ! particle number mass Rhill 9.34048218e+03 !particle radius in AU 1.63682186e+07 -7.64635682e+06 7.51258389e+04 ! x y z 6.57521797e+02 1.40505156e+03 -1.44981512e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill +Body1475 2.82996551e+04 5.59807489e+03 ! particle number mass Rhill 4.66046628e+03 !particle radius in AU -9.02931313e+06 1.40224619e+06 -7.68912993e+03 ! x y z -3.55553612e+02 -2.15150134e+03 1.02691019e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill +Body1476 1.08035073e+05 8.74419607e+03 ! particle number mass Rhill 7.28378715e+03 !particle radius in AU -2.13040703e+06 9.05085932e+06 2.75232896e+04 ! x y z -2.09375359e+03 -4.54923992e+02 -6.60791548e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill +Body1477 6.82388851e+04 9.03381717e+03 ! particle number mass Rhill 4.24094823e+03 !particle radius in AU 2.12770208e+06 -1.09362652e+07 6.56462507e+04 ! x y z 1.92901319e+03 3.58659857e+02 1.88568450e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill +Body1478 1.71725563e+06 3.27614334e+04 ! particle number mass Rhill 1.24278875e+04 !particle radius in AU 4.49722640e+06 1.29879609e+07 6.17022585e+04 ! x y z -1.66361829e+03 6.02542134e+02 -3.15731575e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill +Body1479 4.31736407e+05 1.33145899e+04 ! particle number mass Rhill 1.15586882e+04 !particle radius in AU -2.46270150e+05 -8.94568869e+06 -6.37006664e+04 ! x y z 2.17872017e+03 -8.88856930e+01 -1.82962039e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill +Body1480 4.69987554e+05 1.50577774e+04 ! particle number mass Rhill 8.06890215e+03 !particle radius in AU -7.68511313e+06 -6.12228878e+06 -9.32586560e+03 ! x y z 1.29882576e+03 -1.62777018e+03 -1.19293575e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill +Body1481 1.17648820e+05 8.85436283e+03 ! particle number mass Rhill 7.49373241e+03 !particle radius in AU -8.92478393e+06 1.31107857e+06 -7.25655485e+04 ! x y z -2.98094429e+02 -2.17047563e+03 -1.53783344e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill +Body1482 1.06595743e+05 1.08697806e+04 ! particle number mass Rhill 7.25129561e+03 !particle radius in AU -6.57681719e+06 -9.45888345e+06 -3.72144545e+04 ! x y z 1.58522928e+03 -1.10501157e+03 1.05113370e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill +Body1483 2.40181521e+05 2.05658561e+04 ! particle number mass Rhill 9.50638765e+03 !particle radius in AU 1.34071651e+07 1.03792566e+07 -4.53441732e+04 ! x y z -9.71553194e+02 1.24234337e+03 9.20294843e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill +Body1484 2.30979462e+05 1.61646706e+04 ! particle number mass Rhill 6.36761483e+03 !particle radius in AU -3.51077302e+06 -1.26567098e+07 2.57715830e+04 ! x y z 1.74422450e+03 -5.08580589e+02 2.03158207e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill +Body1485 1.30379505e+05 1.26014074e+04 ! particle number mass Rhill 5.26245957e+03 !particle radius in AU 2.88059988e+06 -1.21489772e+07 1.66531109e+03 ! x y z 1.80288747e+03 4.42317052e+02 -1.19583569e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill +Body1486 5.14863696e+05 1.57196952e+04 ! particle number mass Rhill 8.31795219e+03 !particle radius in AU -5.79801378e+06 7.81844110e+06 7.21651425e+04 ! x y z -1.66669076e+03 -1.30229321e+03 -2.20360225e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill +Body1487 1.26463086e+06 1.90076383e+04 ! particle number mass Rhill 1.12229473e+04 !particle radius in AU 1.79079043e+06 8.72935614e+06 7.66173175e+03 ! x y z -2.14494592e+03 4.29349753e+02 -3.05321261e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill +Body1488 1.10279394e+06 2.94811703e+04 ! particle number mass Rhill 1.07221971e+04 !particle radius in AU -1.31449667e+07 5.65642590e+06 -1.35348879e+04 ! x y z -6.99474388e+02 -1.58839301e+03 5.07187025e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill +Body1489 9.64986931e+05 2.60335138e+04 ! particle number mass Rhill 1.02555622e+04 !particle radius in AU -1.28107010e+07 3.64301270e+06 -4.79094708e+04 ! x y z -4.96849501e+02 -1.72146269e+03 1.99970261e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill +Body1490 3.85017463e+05 1.31518104e+04 ! particle number mass Rhill 7.54998008e+03 !particle radius in AU -8.81052520e+06 1.96363775e+06 -7.03542162e+04 ! x y z -4.55600237e+02 -2.14195252e+03 -1.54510587e+01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill +Body1491 7.12464696e+04 7.27507090e+03 ! particle number mass Rhill 4.30236032e+03 !particle radius in AU 6.76054921e+06 5.69153857e+06 -8.32813680e+04 ! x y z -1.43863210e+03 1.66962801e+03 -3.05680786e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill +Body1492 2.30337841e+05 1.99962209e+04 ! particle number mass Rhill 9.37470089e+03 !particle radius in AU -1.58533753e+07 -4.64141565e+06 -1.37616342e+05 ! x y z 4.71661565e+02 -1.53679456e+03 4.54920894e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill +Body1493 1.54078080e+05 1.40811002e+04 ! particle number mass Rhill 5.56372876e+03 !particle radius in AU -5.05912024e+06 1.20461614e+07 -1.00213774e+05 ! x y z -1.67920042e+03 -7.11202226e+02 4.13175962e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill +Body1494 8.27228641e+04 9.01203219e+03 ! particle number mass Rhill 6.66362952e+03 !particle radius in AU 8.41034459e+05 -1.03591089e+07 -4.26263251e+04 ! x y z 2.02679172e+03 1.77245292e+02 -7.59374588e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill +Body1495 6.59711957e+04 7.21319042e+03 ! particle number mass Rhill 4.19344015e+03 !particle radius in AU -8.72674150e+06 -1.84604826e+06 -9.49439666e+03 ! x y z 5.06255038e+02 -2.14329601e+03 8.35004981e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill +Body1496 4.76016816e+05 1.56977540e+04 ! particle number mass Rhill 1.19410657e+04 !particle radius in AU 8.32975138e+06 5.59994962e+06 1.36490477e+04 ! x y z -1.14500563e+03 1.73284125e+03 2.21368330e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill +Body1497 8.74132422e+05 1.84842648e+04 ! particle number mass Rhill 9.92303995e+03 !particle radius in AU 5.20187427e+06 8.26928364e+06 7.79156795e+04 ! x y z -1.78869520e+03 1.08594628e+03 -2.89543422e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill +Body1498 1.05100593e+06 1.88653392e+04 ! particle number mass Rhill 1.05516583e+04 !particle radius in AU -3.97296892e+06 -8.38171851e+06 1.59358464e+04 ! x y z 1.95617296e+03 -9.13960827e+02 -3.62965884e-01 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill +Body1499 4.64374943e+05 2.44967912e+04 ! particle number mass Rhill 8.03665372e+03 !particle radius in AU 8.20764080e+05 -1.58893023e+07 7.87114038e+04 ! x y z 1.64101205e+03 9.20364252e+01 9.68548448e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill +Body1500 7.98550448e+05 3.23468692e+04 ! particle number mass Rhill 9.62837764e+03 !particle radius in AU -9.69224879e+06 1.49532038e+07 7.33593405e+04 ! x y z -1.29931651e+03 -8.27698792e+02 -3.16602237e+00 ! vx vy vz 0.4 0.4 0.4 ! Ip 0.0 0.0 0.0 ! rot -1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill +Body1501 7.54058320e+04 8.18405513e+03 ! particle number mass Rhill 4.38450573e+03 !particle radius in AU -5.62663613e+06 7.91766436e+06 2.60207243e+04 ! x y z -1.74178290e+03 -1.18522553e+03 2.27430689e+00 ! vx vy vz diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 122d1a9d7..ae89cd6d4 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,6 +1,6 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 10000.0 +TSTOP 100000.0 DT 600.0 CB_IN cb.in PL_IN mars.in diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 0b274f44b..1fb3af422 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -405,33 +405,36 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'name' (id: 1521)>\n",
    -       "array(['Mars', 'Body2', 'Body3', ..., 'UNNAMED', 'UNNAMED', 'UNNAMED'],\n",
    -       "      dtype='<U15')\n",
    +       "
    <xarray.DataArray 'origin_type' (id: 1521)>\n",
    +       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    +       "       ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n",
    +       "      dtype='<U18')\n",
            "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " ], "text/plain": [ - "\n", - "array(['Mars', 'Body2', 'Body3', ..., 'UNNAMED', 'UNNAMED', 'UNNAMED'],\n", - " dtype='\n", + "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", + " ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n", + " dtype='
    <xarray.DataArray 'name' ()>\n",
            "array(b'1322', dtype='|S32')\n",
            "Coordinates:\n",
    -       "    id       int32 1321
    " + " id int32 1321" ], "text/plain": [ "\n", @@ -809,7 +812,7 @@ " id int32 1321" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index e1b788f24..45ea97f15 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -167,8 +167,9 @@ module swiftest_classes real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation contains - procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file - procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file + procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file + procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file + procedure :: copy => util_copy_particle_info !! Copies one set of information object components into another, component-by-component end type swiftest_particle_info !******************************************************************************************************************************** @@ -178,10 +179,10 @@ module swiftest_classes !! An abstract superclass for a generic Swiftest object contains !! The minimal methods that all systems must have - procedure :: dump => io_dump_base !! Dump contents to file - procedure :: dump_particle_info => io_dump_particle_info_base !! Dump contents of particle information metadata to file - procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format - generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments + procedure :: dump => io_dump_base !! Dump contents to file + procedure :: dump_particle_info => io_dump_particle_info_base !! Dump contents of particle information metadata to file + procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments end type swiftest_base !******************************************************************************************************************************** @@ -258,25 +259,25 @@ module swiftest_classes procedure(abstract_step_body), deferred :: step procedure(abstract_accel), deferred :: accel ! These are concrete because the implementation is the same for all types of particles - procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables - procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators - procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators - procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file - procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: write_frame_bin => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body - procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body - procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors - procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements - procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays - procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets - procedure :: append => util_append_body !! Appends elements from one structure to another - procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) - procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. - procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) - procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen - procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods - procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) - generic :: write_frame => write_frame_bin !! Add the generic write frame for Fortran binary files + procedure :: drift => drift_body !! Loop through bodies and call Danby drift routine on heliocentric variables + procedure :: v2pv => gr_vh2pv_body !! Converts from velocity to psudeovelocity for GR calculations using symplectic integrators + procedure :: pv2v => gr_pv2vh_body !! Converts from psudeovelocity to velocity for GR calculations using symplectic integrators + procedure :: read_in => io_read_in_body !! Read in body initial conditions from a file + procedure :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: write_frame_bin => io_write_frame_body !! I/O routine for writing out a single frame of time-series data for the central body + procedure :: accel_obl => obl_acc_body !! Compute the barycentric accelerations of bodies due to the oblateness of the central body + procedure :: el2xv => orbel_el2xv_vec !! Convert orbital elements to position and velocity vectors + procedure :: xv2el => orbel_xv2el_vec !! Convert position and velocity vectors to orbital elements + procedure :: setup => setup_body !! A constructor that sets the number of bodies and allocates all allocatable arrays + procedure :: accel_user => user_kick_getacch_body !! Add user-supplied heliocentric accelerations to planets + procedure :: append => util_append_body !! Appends elements from one structure to another + procedure :: fill => util_fill_body !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) + procedure :: resize => util_resize_body !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. + procedure :: set_ir3 => util_set_ir3h !! Sets the inverse heliocentric radius term (1/rh**3) + procedure :: sort => util_sort_body !! Sorts body arrays by a sortable componen + procedure :: rearrange => util_sort_rearrange_body !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods + procedure :: spill => util_spill_body !! "Spills" bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) + generic :: write_frame => write_frame_bin !! Add the generic write frame for Fortran binary files end type swiftest_body !******************************************************************************************************************************** @@ -1208,6 +1209,19 @@ module subroutine util_copy_encounter(self, source) class(swiftest_encounter), intent(in) :: source !! Source object to copy into end subroutine util_copy_encounter + module subroutine util_copy_particle_info(self, source) + implicit none + class(swiftest_particle_info), intent(inout) :: self + class(swiftest_particle_info), intent(in) :: source + end subroutine util_copy_particle_info + + module subroutine util_copy_particle_info_arr(source, dest, idx) + implicit none + class(swiftest_particle_info), dimension(:), intent(in) :: source !! Source object to copy into + class(swiftest_particle_info), dimension(:), intent(inout) :: dest !! Swiftest body object with particle metadata information object + integer(I4B), dimension(:), intent(in), optional :: idx !! Optional array of indices to draw the source object + end subroutine util_copy_particle_info_arr + module subroutine util_exit(code) implicit none integer(I4B), intent(in) :: code !! Failure exit code diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 3f5ebadc3..a8619e35e 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -833,7 +833,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, integer(I4B) :: i, ibiggest, nstart, nend, nfamily, nfrag logical, dimension(system%pl%nbody) :: lmask class(symba_pl), allocatable :: plnew - character(*), parameter :: FRAGFMT = '("Fragment",I0.7)' + character(*), parameter :: FRAGFMT = '("Newbody",I0.7)' + character(len=NAMELEN) :: newname select type(pl => system%pl) class is (symba_pl) @@ -880,7 +881,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%status(1:nfrag) = NEW_PARTICLE plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) + write(newname, FRAGFMT) id_frag(i) + plnew%info(i)%name = newname plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do @@ -889,29 +891,25 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%status(1:nfrag) = NEW_PARTICLE plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) + write(newname, FRAGFMT) id_frag(i) + plnew%info(i)%name = newname plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do case(HIT_AND_RUN_DISRUPT) - plnew%info(1)%name = pl%info(ibiggest)%name - plnew%info(1)%origin_type = pl%info(ibiggest)%origin_type - plnew%info(1)%origin_xh(:) = pl%info(ibiggest)%origin_xh(:) - plnew%info(1)%origin_vh(:) = pl%info(ibiggest)%origin_vh(:) + call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE plnew%status(2:nfrag) = NEW_PARTICLE plnew%info(2:nfrag)%origin_type = "Hit and run fragment" plnew%info(2:nfrag)%origin_time = param%t do i = 2, nfrag - write(info(i)%name, FRAGFMT) id_frag(i) + write(newname, FRAGFMT) id_frag(i) + plnew%info(i)%name = newname plnew%info(i)%origin_xh(:) = plnew%xh(:,i) plnew%info(i)%origin_vh(:) = plnew%vh(:,i) end do case(MERGED) - plnew%info(1)%name = pl%info(ibiggest)%name - plnew%info(1)%origin_type = pl%info(ibiggest)%origin_type - plnew%info(1)%origin_xh(:) = pl%info(ibiggest)%origin_xh(:) - plnew%info(1)%origin_vh(:) = pl%info(ibiggest)%origin_vh(:) + call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE end select diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 9722e4059..6abbc0e9a 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -127,7 +127,8 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to ! Internals - integer(I4B) :: nnew + integer(I4B) :: nnew, i + integer(I4B), dimension(:), allocatable :: idx if (.not. allocated(source)) return @@ -138,7 +139,11 @@ module subroutine util_append_arr_info(arr, source, nold, nsrc, lsource_mask) call util_resize(arr, nold + nnew) end if - arr(nold + 1:nold + nnew) = pack(source(1:nsrc), lsource_mask(1:nsrc)) + allocate(idx(nnew)) + + idx = pack([(i, i = 1, nsrc)], lsource_mask(1:nsrc)) + + call util_copy_particle_info_arr(source(1:nsrc), arr(nold+1:nold+nnew), idx) return end subroutine util_append_arr_info @@ -179,9 +184,9 @@ module subroutine util_append_body(self, source, lsource_mask) !! This method will automatically resize the destination body if it is too small implicit none ! Arguments - class(swiftest_body), intent(inout) :: self !! Swiftest body object - class(swiftest_body), intent(in) :: source !! Source object to append - logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + class(swiftest_body), intent(inout) :: self !! Swiftest body object + class(swiftest_body), intent(in) :: source !! Source object to append + logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to associate(nold => self%nbody, nsrc => source%nbody) call util_append(self%info, source%info, nold, nsrc, lsource_mask) diff --git a/src/util/util_copy.f90 b/src/util/util_copy.f90 index 73195df91..0d29cc92f 100644 --- a/src/util/util_copy.f90 +++ b/src/util/util_copy.f90 @@ -2,32 +2,93 @@ use swiftest contains -module subroutine util_copy_encounter(self, source) - !! author: David A. Minton - !! - !! Copies elements from the source encounter list into self. - implicit none - ! Arguments - class(swiftest_encounter), intent(inout) :: self !! Encounter list - class(swiftest_encounter), intent(in) :: source !! Source object to copy into - - associate(n => source%nenc) - self%nenc = n - self%lvdotr(1:n) = source%lvdotr(1:n) - self%status(1:n) = source%status(1:n) - self%kidx(1:n) = source%kidx(1:n) - self%index1(1:n) = source%index1(1:n) - self%index2(1:n) = source%index2(1:n) - self%id1(1:n) = source%id1(1:n) - self%id2(1:n) = source%id2(1:n) - self%x1(:,1:n) = source%x1(:,1:n) - self%x2(:,1:n) = source%x2(:,1:n) - self%v1(:,1:n) = source%v1(:,1:n) - self%v2(:,1:n) = source%v2(:,1:n) - self%t(1:n) = source%t(1:n) - end associate - - return -end subroutine util_copy_encounter + module subroutine util_copy_encounter(self, source) + !! author: David A. Minton + !! + !! Copies elements from the source encounter list into self. + implicit none + ! Arguments + class(swiftest_encounter), intent(inout) :: self !! Encounter list + class(swiftest_encounter), intent(in) :: source !! Source object to copy into + + associate(n => source%nenc) + self%nenc = n + self%lvdotr(1:n) = source%lvdotr(1:n) + self%status(1:n) = source%status(1:n) + self%kidx(1:n) = source%kidx(1:n) + self%index1(1:n) = source%index1(1:n) + self%index2(1:n) = source%index2(1:n) + self%id1(1:n) = source%id1(1:n) + self%id2(1:n) = source%id2(1:n) + self%x1(:,1:n) = source%x1(:,1:n) + self%x2(:,1:n) = source%x2(:,1:n) + self%v1(:,1:n) = source%v1(:,1:n) + self%v2(:,1:n) = source%v2(:,1:n) + self%t(1:n) = source%t(1:n) + end associate + + return + end subroutine util_copy_encounter + + + module subroutine util_copy_particle_info(self, source) + !! author: David A. Minton + !! + !! Copies one set of information object components into another, component-by-component + implicit none + class(swiftest_particle_info), intent(inout) :: self + class(swiftest_particle_info), intent(in) :: source + + self%name = source%name + self%particle_type = source%particle_type + self%origin_type = source%origin_type + self%origin_time = source%origin_time + self%origin_xh(:) = source%origin_xh(:) + self%origin_vh(:) = source%origin_vh(:) + + return + end subroutine util_copy_particle_info + + + module subroutine util_copy_particle_info_arr(source, dest, idx) + !! author: David A. Minton + !! + !! Copies contents from an array of one particle information objects to another. + implicit none + class(swiftest_particle_info), dimension(:), intent(in) :: source !! Source object to copy into + class(swiftest_particle_info), dimension(:), intent(inout) :: dest !! Swiftest body object with particle metadata information object + integer(I4B), dimension(:), intent(in), optional :: idx !! Optional array of indices to draw the source object + ! Internals + integer(I4B) :: i, j, n, nsource, ndest + + if (size(source) == 0) return + + if (present(idx)) then + n = size(idx) + else + n = size(source) + end if + + nsource = size(source) + ndest = size(dest) + + if ((n == 0) .or. (n > ndest) .or. (n > nsource)) then + write(*,*) 'Particle info copy operation failed. n, nsource, ndest: ',n, nsource, ndest + return + end if + + do i = 1, n + if (present(idx)) then + j = idx(i) + else + j = i + end if + call dest(i)%copy(source(j)) + end do + + return + end subroutine util_copy_particle_info_arr + + end submodule s_util_copy diff --git a/src/util/util_fill.f90 b/src/util/util_fill.f90 index 7009e3688..541ee40cd 100644 --- a/src/util/util_fill.f90 +++ b/src/util/util_fill.f90 @@ -92,15 +92,20 @@ module subroutine util_fill_arr_info(keeps, inserts, lfill_list) ! Arguments type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: keeps !! Array of values to keep type(swiftest_particle_info), dimension(:), allocatable, intent(in) :: inserts !! Array of values to insert into keep - logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps + logical, dimension(:), intent(in) :: lfill_list !! Logical array of bodies to merge into the keeps ! Internals - type(swiftest_particle_info), dimension(:), allocatable :: ktmp, itmp - + integer(I4B), dimension(:), allocatable :: insert_idx + integer(I4B) :: i, nkeep, ninsert if (.not.allocated(keeps) .or. .not.allocated(inserts)) return - keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:)) - keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:)) + nkeep = size(keeps) + ninsert = count(lfill_list) + + allocate(insert_idx(ninsert)) + + insert_idx(:) = pack([(i, i = 1, nkeep)], lfill_list) + call util_copy_particle_info_arr(inserts, keeps, insert_idx) return end subroutine util_fill_arr_info diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index d43d0b879..ed28d1007 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -163,10 +163,11 @@ module subroutine util_resize_arr_info(arr, nnew) allocate(tmp(nnew)) if (nnew > nold) then - tmp(1:nold) = arr(1:nold) + call util_copy_particle_info_arr(arr(1:nold), tmp(1:nold)) else - tmp(1:nnew) = arr(1:nnew) + call util_copy_particle_info_arr(arr(1:nnew), tmp(1:nnew)) end if + call move_alloc(tmp, arr) return diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index 218e49ef3..9717f1e3e 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -466,16 +466,17 @@ module subroutine util_sort_rearrange_arr_info(arr, ind, n) implicit none ! Arguments type(swiftest_particle_info), dimension(:), allocatable, intent(inout) :: arr !! Destination array - integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against - integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange + integer(I4B), dimension(:), intent(in) :: ind !! Index to rearrange against + integer(I4B), intent(in) :: n !! Number of elements in arr and ind to rearrange ! Internals - type(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation + type(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary copy of array used during rearrange operation integer(I4B) :: i if (.not. allocated(arr) .or. n <= 0) return allocate(tmp, mold=arr) - tmp(1:n) = arr(ind(1:n)) + + call util_copy_particle_info_arr(arr, tmp, ind) call move_alloc(tmp, arr) return diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 84391f168..b4d43e019 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -15,6 +15,7 @@ module subroutine util_spill_arr_char_string(keeps, discards, lspill_list, ldest logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals integer(I4B) :: nspill, nkeep, nlist + character(len=STRMAX), dimension(:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -31,7 +32,9 @@ module subroutine util_spill_arr_char_string(keeps, discards, lspill_list, ldest discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + allocate(tmp(nkeep)) + tmp(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -54,6 +57,7 @@ module subroutine util_spill_arr_DP(keeps, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals integer(I4B) :: nspill, nkeep, nlist + real(DP), dimension(:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -70,7 +74,9 @@ module subroutine util_spill_arr_DP(keeps, discards, lspill_list, ldestructive) discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + allocate(tmp(nkeep)) + tmp(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -93,6 +99,7 @@ module subroutine util_spill_arr_DPvec(keeps, discards, lspill_list, ldestructiv logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals integer(I4B) :: i, nspill, nkeep, nlist + real(DP), dimension(:,:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -111,9 +118,11 @@ module subroutine util_spill_arr_DPvec(keeps, discards, lspill_list, ldestructiv end do if (ldestructive) then if (nkeep > 0) then + allocate(tmp(NDIM, nkeep)) do i = 1, NDIM - keeps(i,:) = pack(keeps(i,1:nlist), .not. lspill_list(1:nlist)) + tmp(i, :) = pack(keeps(i, 1:nlist), .not. lspill_list(1:nlist)) end do + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -136,6 +145,7 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals integer(I4B) :: nspill, nkeep, nlist + integer(I4B), dimension(:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -152,7 +162,9 @@ module subroutine util_spill_arr_I4B(keeps, discards, lspill_list, ldestructive) discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + allocate(tmp(nkeep)) + tmp(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -175,6 +187,7 @@ module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals integer(I4B) :: nspill, nkeep, nlist + integer(I8B), dimension(:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -191,7 +204,9 @@ module subroutine util_spill_arr_I8B(keeps, discards, lspill_list, ldestructive) discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + allocate(tmp(nkeep)) + tmp(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -213,7 +228,9 @@ module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discardss logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or not ! Internals - integer(I4B) :: nspill, nkeep, nlist + integer(I4B) :: i, nspill, nkeep, nlist + integer(I4B), dimension(:), allocatable :: idx + type(swiftest_particle_info), dimension(:), allocatable :: tmp nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -227,10 +244,17 @@ module subroutine util_spill_arr_info(keeps, discards, lspill_list, ldestructive allocate(discards(nspill)) end if - discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) + allocate(idx(nspill)) + idx(:) = pack([(i, i = 1, nlist)], lspill_list) + call util_copy_particle_info_arr(keeps, discards, idx) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + deallocate(idx) + allocate(idx(nkeep)) + allocate(tmp(nkeep)) + idx(:) = pack([(i, i = 1, nlist)], .not. lspill_list) + call util_copy_particle_info_arr(keeps, tmp, idx) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -253,6 +277,7 @@ module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestruct logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter the keeps array or no ! Internals integer(I4B) :: nspill, nkeep, nlist + logical, dimension(:), allocatable :: tmp !! Array of values to keep nkeep = count(.not.lspill_list(:)) nspill = count(lspill_list(:)) @@ -269,7 +294,9 @@ module subroutine util_spill_arr_logical(keeps, discards, lspill_list, ldestruct discards(:) = pack(keeps(1:nlist), lspill_list(1:nlist)) if (ldestructive) then if (nkeep > 0) then - keeps(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + allocate(tmp(nkeep)) + tmp(:) = pack(keeps(1:nlist), .not. lspill_list(1:nlist)) + call move_alloc(tmp, keeps) else deallocate(keeps) end if @@ -325,6 +352,7 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) return end subroutine util_spill_body + module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive) !! author: David A. Minton !! From 8823057e3d861299049f2592d48f0b21f800639b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 13:05:16 -0400 Subject: [PATCH 244/315] Updated Clement example with new body naming system and NetCDF outputs. --- examples/symba_clement_2018/param.in | 6 +- .../symba_clement_2018/pl_clement_2018.in | 2210 ++++++++--------- examples/symba_clement_2018/sun_MsunAUYR.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 40 +- 4 files changed, 1132 insertions(+), 1126 deletions(-) diff --git a/examples/symba_clement_2018/param.in b/examples/symba_clement_2018/param.in index 849acd9e0..6f58b1822 100644 --- a/examples/symba_clement_2018/param.in +++ b/examples/symba_clement_2018/param.in @@ -4,14 +4,14 @@ TSTOP 100000000.0 DT 0.016 ISTEP_OUT 6250 ISTEP_DUMP 6250 -OUT_FORM EL -OUT_TYPE REAL8 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE OUT_STAT REPLACE IN_TYPE ASCII PL_IN pl_clement_2018.in TP_IN tp.in CB_IN sun_MsunAUYR.in -BIN_OUT bin.dat +BIN_OUT bin.nc CHK_QMIN -1.0 CHK_RMIN -1.0 CHK_RMAX 100000.0 diff --git a/examples/symba_clement_2018/pl_clement_2018.in b/examples/symba_clement_2018/pl_clement_2018.in index 584245a70..eb8eecffc 100644 --- a/examples/symba_clement_2018/pl_clement_2018.in +++ b/examples/symba_clement_2018/pl_clement_2018.in @@ -1,6629 +1,6629 @@ 1105 -2.0 0.0376722155 0.35307558995269156 +Jupiter 0.0376722155 0.35307558995269156 0.000467326079 5.172281681449432 0.046760050149286136 1.3034369794516383 100.50370344615287 277.95408735904414 299.47072527467117 0.4 0.4 0.4 0.0 0.0 0.0 -3.0 0.0112798314 0.43362938279920926 +Saturn 0.0112798314 0.43362938279920926 0.000389256801 9.495241797076803 0.05831886504886423 2.4897150857337977 113.60173064710709 341.1122276637114 214.47759752003608 0.4 0.4 0.4 0.0 0.0 0.0 -4.0 0.00172303742 0.4689444140515067 +Uranus 0.00172303742 0.4689444140515067 0.000169534465 19.209290579028355 0.04660264515690298 0.772131045762339 74.00329991835538 95.9871868832834 234.95264516428847 0.4 0.4 0.4 0.0 0.0 0.0 -5.0 0.00203247359 0.7765171236861929 +Neptune 0.00203247359 0.7765171236861929 0.000164587872 30.104466076098753 0.009375961185985455 1.7702774190709465 131.7823850231201 267.4341182268954 312.4212576431109 0.4 0.4 0.4 0.0 0.0 0.0 -6.0 0.00203247359 0.9027929359579849 +IceGiant 0.00203247359 0.9027929359579849 0.000164587872 34.99999998103326 0.046602647094867104 1.770277414721863 74.00329996123871 267.4340808607514 234.95264506877194 0.4 0.4 0.4 0.0 0.0 0.0 -7.0 2.96336237e-06 0.005512259131852213 +Body7 2.96336237e-06 0.005512259131852213 1.52529846e-05 1.884616116091531 0.0007423022395688265 6.5728685708454355 49.55283194123395 12.557899778504652 10.484350244753976 0.4 0.4 0.4 0.0 0.0 0.0 -8.0 2.96336237e-06 0.0019178533602580044 +Body8 2.96336237e-06 0.0019178533602580044 1.52529846e-05 0.6557052679466514 8.378761417954488e-05 0.3063403435881767 309.12238967303904 280.7713337479704 62.82466997448164 0.4 0.4 0.4 0.0 0.0 0.0 -9.0 2.96336237e-06 0.0004112571359191792 +Body9 2.96336237e-06 0.0004112571359191792 1.52529846e-05 0.14060692860614776 0.00023031374149944594 1.7305895846896235 258.19178410822843 126.80591596818843 241.30807229544132 0.4 0.4 0.4 0.0 0.0 0.0 -10.0 2.96336237e-06 0.0003558360060864788 +Body10 2.96336237e-06 0.0003558360060864788 1.52529846e-05 0.12165869849643374 0.001996906171922296 8.181163575953859 127.03740060987732 228.31258600353382 45.987222950345235 0.4 0.4 0.4 0.0 0.0 0.0 -11.0 2.96336237e-06 0.004238951617733855 +Body11 2.96336237e-06 0.004238951617733855 1.52529846e-05 1.4492781168343072 0.00123354906776431 6.127603772301239 0.586278364878247 120.20877867772262 332.4438578039355 0.4 0.4 0.4 0.0 0.0 0.0 -12.0 2.96336237e-06 0.000428115645359569 +Body12 2.96336237e-06 0.000428115645359569 1.52529846e-05 0.14637077566497864 0.0015174471395206497 7.384343118829618 90.24919099580596 294.5077497540469 309.5576905676759 0.4 0.4 0.4 0.0 0.0 0.0 -13.0 2.96336237e-06 0.0004147219696796154 +Body13 2.96336237e-06 0.0004147219696796154 1.52529846e-05 0.1417915393779389 0.000636441064464215 2.271662502450314 236.62326008233057 147.42136715339123 168.82519701899685 0.4 0.4 0.4 0.0 0.0 0.0 -14.0 2.96336237e-06 0.000668774022810232 +Body14 2.96336237e-06 0.000668774022810232 1.52529846e-05 0.22865077117447094 0.0015399665313668989 1.1545306249464131 182.11815578681754 152.61307302562298 352.4210953391632 0.4 0.4 0.4 0.0 0.0 0.0 -15.0 2.96336237e-06 0.0007265432314441647 +Body15 2.96336237e-06 0.0007265432314441647 1.52529846e-05 0.24840179865724105 0.0005839332787213311 2.5222956390757862 290.9274478155636 36.95928606481527 79.46628403762982 0.4 0.4 0.4 0.0 0.0 0.0 -16.0 2.96336237e-06 0.0003702478544426329 +Body16 2.96336237e-06 0.0003702478544426329 1.52529846e-05 0.12658604335178142 2.5298156499728664e-05 5.555515038103633 281.4445031789493 115.18582702932352 123.1281305262438 0.4 0.4 0.4 0.0 0.0 0.0 -17.0 2.96336237e-06 0.0003716166862503535 +Body17 2.96336237e-06 0.0003716166862503535 1.52529846e-05 0.12705404066891446 0.0018538649394883614 0.6607277579311023 277.3261168781127 349.65966467861733 180.55214229908566 0.4 0.4 0.4 0.0 0.0 0.0 -18.0 2.96336237e-06 0.009886886821922786 +Body18 2.96336237e-06 0.009886886821922786 1.52529846e-05 3.3802812598013072 0.0009489984628827527 6.676039983361881 59.82012534336036 213.93617863051722 163.23770845915809 0.4 0.4 0.4 0.0 0.0 0.0 -19.0 2.96336237e-06 0.0003042929175250516 +Body19 2.96336237e-06 0.0003042929175250516 1.52529846e-05 0.10403635291135628 0.0009103080479353925 6.122729019987302 318.3178593181005 175.8383457329596 150.09818752378183 0.4 0.4 0.4 0.0 0.0 0.0 -20.0 2.96336237e-06 0.000414062269914102 +Body20 2.96336237e-06 0.000414062269914102 1.52529846e-05 0.1415659910537166 0.001778924678086685 8.74170905442332 151.59204615190697 112.80122061317465 351.99863693065214 0.4 0.4 0.4 0.0 0.0 0.0 -21.0 2.96336237e-06 0.0005993179173196159 +Body21 2.96336237e-06 0.0005993179173196159 1.52529846e-05 0.204904047256471 0.0009022495147953 9.556673591780722 293.15242050181297 205.54468433705313 66.99160557674251 0.4 0.4 0.4 0.0 0.0 0.0 -22.0 2.96336237e-06 0.002357418873323602 +Body22 2.96336237e-06 0.002357418873323602 1.52529846e-05 0.8059907008673469 0.0005274445636380367 10.71837041537424 292.38024093727984 54.5314890445609 209.0622657387699 0.4 0.4 0.4 0.0 0.0 0.0 -23.0 2.96336237e-06 0.0004214539772450991 +Body23 2.96336237e-06 0.0004214539772450991 1.52529846e-05 0.14409318188930928 0.0005277374008030665 7.435302831333165 308.79862632298676 308.7903333476832 269.9580628313294 0.4 0.4 0.4 0.0 0.0 0.0 -24.0 2.96336237e-06 0.0006370769225463271 +Body24 2.96336237e-06 0.0006370769225463271 1.52529846e-05 0.21781367796788728 0.0005372113643125736 5.052697475502013 350.4786532330898 328.18629143860676 33.62398940139005 0.4 0.4 0.4 0.0 0.0 0.0 -25.0 2.96336237e-06 0.0015893429501222733 +Body25 2.96336237e-06 0.0015893429501222733 1.52529846e-05 0.5433890653813334 0.0010833931179439658 6.392318924578698 140.62795204427934 121.66139860726184 111.15061258998092 0.4 0.4 0.4 0.0 0.0 0.0 -26.0 2.96336237e-06 0.0002977220788417684 +Body26 2.96336237e-06 0.0002977220788417684 1.52529846e-05 0.10178981330163511 0.001554559170086404 6.762843301253261 275.72551196143047 304.0824964166165 279.0982565916498 0.4 0.4 0.4 0.0 0.0 0.0 -27.0 2.96336237e-06 0.0006434040689664967 +Body27 2.96336237e-06 0.0006434040689664967 1.52529846e-05 0.21997690031050524 0.001305716802829907 2.7998391456887615 75.36228204537746 56.58870706902731 14.357402916294584 0.4 0.4 0.4 0.0 0.0 0.0 -28.0 2.96336237e-06 0.00042548420866017075 +Body28 2.96336237e-06 0.00042548420866017075 1.52529846e-05 0.14547109952611498 0.0003031612390917364 5.499354660587805 99.672922712559 349.8198724431721 9.207509473918162 0.4 0.4 0.4 0.0 0.0 0.0 -29.0 2.96336237e-06 0.000535554750738145 +Body29 2.96336237e-06 0.000535554750738145 1.52529846e-05 0.18310371304176035 0.001924927935650522 9.765808261360519 174.90404902276703 179.70781236278643 349.9071587094426 0.4 0.4 0.4 0.0 0.0 0.0 -30.0 2.96336237e-06 0.001562483215882271 +Body30 2.96336237e-06 0.001562483215882271 1.52529846e-05 0.5342058454325218 0.000910989382946404 0.42557979839177 199.2182898728689 348.6064975505299 181.29024903254737 0.4 0.4 0.4 0.0 0.0 0.0 -31.0 2.96336237e-06 0.00086782112982034 +Body31 2.96336237e-06 0.00086782112982034 1.52529846e-05 0.29670406416372774 0.0015539346678792127 8.507172918199394 56.78001502543606 2.1901152768222105 210.0052739519094 0.4 0.4 0.4 0.0 0.0 0.0 -32.0 2.96336237e-06 0.0009735172826472634 +Body32 2.96336237e-06 0.0009735172826472634 1.52529846e-05 0.3328410940568706 0.0019038946718063178 1.4641789250636663 3.408328718128681 130.04949056115072 9.016242433085356 0.4 0.4 0.4 0.0 0.0 0.0 -33.0 2.96336237e-06 0.0038019527946996806 +Body33 2.96336237e-06 0.0038019527946996806 1.52529846e-05 1.2998702234636448 0.0009836202486354657 3.0512558532109577 138.0591311501441 314.0932368495456 74.27234332051141 0.4 0.4 0.4 0.0 0.0 0.0 -34.0 2.96336237e-06 0.0005479571006109701 +Body34 2.96336237e-06 0.0005479571006109701 1.52529846e-05 0.187344019581899 0.0008844589852042751 1.1462571354370081 28.565869118248454 220.9318913181933 212.27191880186984 0.4 0.4 0.4 0.0 0.0 0.0 -35.0 2.96336237e-06 0.00041487177744318864 +Body35 2.96336237e-06 0.00041487177744318864 1.52529846e-05 0.1418427579652354 0.000837740619082511 1.3240047327876507 66.96059900785556 122.84289190897105 90.8401190418799 0.4 0.4 0.4 0.0 0.0 0.0 -36.0 2.96336237e-06 0.004410491996161498 +Body36 2.96336237e-06 0.004410491996161498 1.52529846e-05 1.5079269854763997 0.0011606180197893023 11.458477170055312 43.6564442974332 303.7628696474891 239.03035318801133 0.4 0.4 0.4 0.0 0.0 0.0 -37.0 2.96336237e-06 0.00029269568494804857 +Body37 2.96336237e-06 0.00029269568494804857 1.52529846e-05 0.1000713122821184 0.001992921364867069 1.862015266455362 289.39207909055943 92.99956112881118 352.49936500999166 0.4 0.4 0.4 0.0 0.0 0.0 -38.0 2.96336237e-06 0.0005294652941220678 +Body38 2.96336237e-06 0.0005294652941220678 1.52529846e-05 0.18102175575303558 0.0015375005788222443 6.705775265229424 57.457618895550674 4.8991276747484 325.7412316817131 0.4 0.4 0.4 0.0 0.0 0.0 -39.0 2.96336237e-06 0.008838173136496128 +Body39 2.96336237e-06 0.008838173136496128 1.52529846e-05 3.0217308605103526 0.0007151903883037801 4.765943051487868 217.00603073329984 316.7592986736139 167.08804213361745 0.4 0.4 0.4 0.0 0.0 0.0 -40.0 2.96336237e-06 0.0033821686043295175 +Body40 2.96336237e-06 0.0033821686043295175 1.52529846e-05 1.1563479340486675 0.00014024853976584234 5.824022890508242 280.5118240980303 291.52707060581224 328.04622434434833 0.4 0.4 0.4 0.0 0.0 0.0 -41.0 2.96336237e-06 0.0018594751888462591 +Body41 2.96336237e-06 0.0018594751888462591 1.52529846e-05 0.6357460388830569 0.0016547156427348215 3.710620870063664 286.0231816539961 14.646380981042592 338.78134855925765 0.4 0.4 0.4 0.0 0.0 0.0 -42.0 2.96336237e-06 0.0003928901625901477 +Body42 2.96336237e-06 0.0003928901625901477 1.52529846e-05 0.13432734466211702 0.0010140900941583708 1.2375646950643446 105.27764656680067 32.503934734894735 79.49945640875738 0.4 0.4 0.4 0.0 0.0 0.0 -43.0 2.96336237e-06 0.00043047831964606665 +Body43 2.96336237e-06 0.00043047831964606665 1.52529846e-05 0.14717856316750708 0.00015736811248780546 4.479442312720945 131.36322545134732 214.5151978549483 245.40096474843565 0.4 0.4 0.4 0.0 0.0 0.0 -44.0 2.96336237e-06 0.0004590595533962268 +Body44 2.96336237e-06 0.0004590595533962268 1.52529846e-05 0.15695035590346132 0.001208683669168596 9.003131147077262 86.7435564939847 129.97504134377874 24.20918867850695 0.4 0.4 0.4 0.0 0.0 0.0 -45.0 2.96336237e-06 0.0003619975032214959 +Body45 2.96336237e-06 0.0003619975032214959 1.52529846e-05 0.1237652861081818 0.001187847968452721 4.302353822263908 341.3972947599278 22.014032448755064 311.42016526303485 0.4 0.4 0.4 0.0 0.0 0.0 -46.0 2.96336237e-06 0.0003324131500351793 +Body46 2.96336237e-06 0.0003324131500351793 1.52529846e-05 0.11365053143765139 0.0015502484288971025 4.00871284588694 261.88481642634423 339.06854717459015 79.69858695338057 0.4 0.4 0.4 0.0 0.0 0.0 -47.0 2.96336237e-06 0.000496379881807675 +Body47 2.96336237e-06 0.000496379881807675 1.52529846e-05 0.16971000502365977 0.0014325900377036435 9.95061299344038 250.17381730527916 87.95208230539924 102.0004995073183 0.4 0.4 0.4 0.0 0.0 0.0 -48.0 2.96336237e-06 0.0005157985955691492 +Body48 2.96336237e-06 0.0005157985955691492 1.52529846e-05 0.17634917419790458 0.0008367753488732046 2.8399055244426505 277.80982627559274 335.24157779229466 355.91319936843087 0.4 0.4 0.4 0.0 0.0 0.0 -49.0 2.96336237e-06 0.0014377264318076988 +Body49 2.96336237e-06 0.0014377264318076988 1.52529846e-05 0.4915520731343233 0.001668761198248755 2.724730971254485 1.184941006009358 180.7127233751173 190.77749105751863 0.4 0.4 0.4 0.0 0.0 0.0 -50.0 2.96336237e-06 0.0018469701340973388 +Body50 2.96336237e-06 0.0018469701340973388 1.52529846e-05 0.6314706180168207 0.00012548469609685502 2.2189534702546796 271.48546449808333 181.24061098711405 350.0467753082608 0.4 0.4 0.4 0.0 0.0 0.0 -51.0 2.96336237e-06 0.0006867805867685211 +Body51 2.96336237e-06 0.0006867805867685211 1.52529846e-05 0.23480713280760443 0.0009799971984811224 10.32166937046239 18.522746145836443 143.8970111474202 146.57428347230623 0.4 0.4 0.4 0.0 0.0 0.0 -52.0 2.96336237e-06 0.001144467965552166 +Body52 2.96336237e-06 0.001144467965552166 1.52529846e-05 0.3912883485042818 0.0011562023962381485 4.654414911538165 139.67234029432404 181.2814027780411 263.9615460438718 0.4 0.4 0.4 0.0 0.0 0.0 -53.0 2.96336237e-06 0.0007236927667533216 +Body53 2.96336237e-06 0.0007236927667533216 1.52529846e-05 0.24742723785263904 0.0009106011783749763 6.637469401668185 217.37100372225163 27.820897562259916 216.10094469186052 0.4 0.4 0.4 0.0 0.0 0.0 -54.0 2.96336237e-06 0.0010822227367685607 +Body54 2.96336237e-06 0.0010822227367685607 1.52529846e-05 0.37000699026088424 0.00155625665305578 2.048697893892725 237.61972697354346 230.27714637647796 68.89760532960919 0.4 0.4 0.4 0.0 0.0 0.0 -55.0 2.96336237e-06 0.0003441896635908343 +Body55 2.96336237e-06 0.0003441896635908343 1.52529846e-05 0.11767686741124705 0.001198428505168961 6.072268886189525 300.23374778378593 22.65361177317996 128.9596052337353 0.4 0.4 0.4 0.0 0.0 0.0 -56.0 2.96336237e-06 0.0005513198683284796 +Body56 2.96336237e-06 0.0005513198683284796 1.52529846e-05 0.18849373444172296 0.0005538080547316358 4.06122956076789 122.4297047079465 241.56914921410043 89.48149632078902 0.4 0.4 0.4 0.0 0.0 0.0 -57.0 2.96336237e-06 0.001865218727466639 +Body57 2.96336237e-06 0.001865218727466639 1.52529846e-05 0.63770972839555 0.0008225834609268351 10.919992929087485 85.46384904760785 305.6259559084242 86.59460080872209 0.4 0.4 0.4 0.0 0.0 0.0 -58.0 2.96336237e-06 0.0003069363065443012 +Body58 2.96336237e-06 0.0003069363065443012 1.52529846e-05 0.1049401154935597 0.0018009357119500263 0.592034643137779 25.16469002163629 180.19944782836734 335.3887921629321 0.4 0.4 0.4 0.0 0.0 0.0 -59.0 2.96336237e-06 0.00875446597270691 +Body59 2.96336237e-06 0.00875446597270691 1.52529846e-05 2.993111765120244 0.0006354800586648284 9.0042412902944 49.4919597225473 36.11869018733198 261.5725854651475 0.4 0.4 0.4 0.0 0.0 0.0 -60.0 2.96336237e-06 0.0003854621874058603 +Body60 2.96336237e-06 0.0003854621874058603 1.52529846e-05 0.13178775401382103 4.4529010620616345e-05 2.360287043259888 326.48003818293364 191.00545232281667 151.6460032361024 0.4 0.4 0.4 0.0 0.0 0.0 -61.0 2.96336237e-06 0.0010704942155659338 +Body61 2.96336237e-06 0.0010704942155659338 1.52529846e-05 0.36599706265267967 0.0005581318642156938 4.859609391716076 48.17369372173571 244.08610894914074 127.05543357948909 0.4 0.4 0.4 0.0 0.0 0.0 -62.0 2.96336237e-06 0.006953870017056551 +Body62 2.96336237e-06 0.006953870017056551 1.52529846e-05 2.377496266026745 1.0214216129345541e-05 7.587889256607299 62.36017315943624 288.7093435214597 144.67669650162128 0.4 0.4 0.4 0.0 0.0 0.0 -63.0 2.96336237e-06 0.0005502814419966461 +Body63 2.96336237e-06 0.0005502814419966461 1.52529846e-05 0.18813870124144422 0.0008200124826780808 4.739467256908708 105.80134697241932 140.8450054535519 116.52348499601447 0.4 0.4 0.4 0.0 0.0 0.0 -64.0 2.96336237e-06 0.00043123792660773683 +Body64 2.96336237e-06 0.00043123792660773683 1.52529846e-05 0.14743826930388712 6.654872018888729e-05 0.43233119103254647 116.87246380412185 249.10658724790036 18.443296542154236 0.4 0.4 0.4 0.0 0.0 0.0 -65.0 2.96336237e-06 0.0007838544428803723 +Body65 2.96336237e-06 0.0007838544428803723 1.52529846e-05 0.26799623899863934 0.0006335544840110136 3.912013198254297 1.422457404214392 1.1037941278376344 209.20450761766227 0.4 0.4 0.4 0.0 0.0 0.0 -66.0 2.96336237e-06 0.0004617177005654156 +Body66 2.96336237e-06 0.0004617177005654156 1.52529846e-05 0.1578591642294431 0.001462342243452415 2.6139086813479384 339.32713268531063 324.9716853293816 185.46654489619115 0.4 0.4 0.4 0.0 0.0 0.0 -67.0 2.96336237e-06 0.000966026120046073 +Body67 2.96336237e-06 0.000966026120046073 1.52529846e-05 0.3302798999205344 0.0012943277404190033 2.07090981231813 250.52813757471867 172.21424522235066 184.46280287699042 0.4 0.4 0.4 0.0 0.0 0.0 -68.0 2.96336237e-06 0.0004166358165940514 +Body68 2.96336237e-06 0.0004166358165940514 1.52529846e-05 0.14244587486043392 0.0004004025716564624 11.216416510869244 214.858418619383 233.3580913046752 139.20899858980107 0.4 0.4 0.4 0.0 0.0 0.0 -69.0 2.96336237e-06 0.001752802301460241 +Body69 2.96336237e-06 0.001752802301460241 1.52529846e-05 0.5992750679237953 0.00020092576841079375 3.098104910493994 12.188464684450674 184.25164373455684 337.8926560055481 0.4 0.4 0.4 0.0 0.0 0.0 -70.0 2.96336237e-06 0.0018710623936237275 +Body70 2.96336237e-06 0.0018710623936237275 1.52529846e-05 0.6397076510536248 0.0002264822119683341 4.492144164063947 185.69461488058917 302.74015643751306 68.32329141485204 0.4 0.4 0.4 0.0 0.0 0.0 -71.0 2.96336237e-06 0.00032714043349845297 +Body71 2.96336237e-06 0.00032714043349845297 1.52529846e-05 0.11184781383620987 0.0006745963590975601 11.223592983244703 299.7532726735807 81.53622715906313 272.5551284711186 0.4 0.4 0.4 0.0 0.0 0.0 -72.0 2.96336237e-06 0.0024734708981726376 +Body72 2.96336237e-06 0.0024734708981726376 1.52529846e-05 0.8456683559093109 0.00067595270188909 6.429813857902258 171.77598150380612 78.85585985653326 91.83884206797602 0.4 0.4 0.4 0.0 0.0 0.0 -73.0 2.96336237e-06 0.001860822716695508 +Body73 2.96336237e-06 0.001860822716695508 1.52529846e-05 0.6362067524744957 0.0019150357270504297 6.99716246024162 39.881166427162526 94.16779161006244 304.496858353172 0.4 0.4 0.4 0.0 0.0 0.0 -74.0 2.96336237e-06 0.0005852088275810136 +Body74 2.96336237e-06 0.0005852088275810136 1.52529846e-05 0.20008021418391064 0.0009314005907283757 2.500651234196459 19.02043485849883 157.19403208231407 225.30409522496208 0.4 0.4 0.4 0.0 0.0 0.0 -75.0 2.96336237e-06 0.0005426423718263105 +Body75 2.96336237e-06 0.0005426423718263105 1.52529846e-05 0.1855269381855715 0.0001464086728528122 8.321861407243103 50.133767147926584 137.99182539572098 47.9871236095155 0.4 0.4 0.4 0.0 0.0 0.0 -76.0 2.96336237e-06 0.00033240500836887306 +Body76 2.96336237e-06 0.00033240500836887306 1.52529846e-05 0.11364774783928172 0.0007847641170717963 1.5894841887345945 5.787407085828862 353.58328754555964 315.9332274421555 0.4 0.4 0.4 0.0 0.0 0.0 -77.0 2.96336237e-06 0.0018778603413056314 +Body77 2.96336237e-06 0.0018778603413056314 1.52529846e-05 0.6420318381883755 0.0015138855021274002 1.9208238539698494 192.1660704480532 249.9821485712254 64.44683327824293 0.4 0.4 0.4 0.0 0.0 0.0 -78.0 2.96336237e-06 0.001359331142595401 +Body78 2.96336237e-06 0.001359331142595401 1.52529846e-05 0.46474908330000686 0.001707547960728472 2.551257182249693 234.77502060953586 161.44361253378054 144.21526760560283 0.4 0.4 0.4 0.0 0.0 0.0 -79.0 2.96336237e-06 0.0015946183954167843 +Body79 2.96336237e-06 0.0015946183954167843 1.52529846e-05 0.5451927159325465 0.0004578749650967072 10.098289348566071 141.88454324679114 72.86297110120593 190.4352832521177 0.4 0.4 0.4 0.0 0.0 0.0 -80.0 2.96336237e-06 0.0008452285833792304 +Body80 2.96336237e-06 0.0008452285833792304 1.52529846e-05 0.288979776152588 0.0017867250039365573 1.2090758348980601 285.4906115439976 114.40545630390098 105.89085636285911 0.4 0.4 0.4 0.0 0.0 0.0 -81.0 2.96336237e-06 0.004044561714236451 +Body81 2.96336237e-06 0.004044561714236451 1.52529846e-05 1.3828171003665302 0.0009830800043135217 9.96155439965852 114.57880137808799 146.18283890529827 98.29337208284545 0.4 0.4 0.4 0.0 0.0 0.0 -82.0 2.96336237e-06 0.011421491213150557 +Body82 2.96336237e-06 0.011421491213150557 1.52529846e-05 3.904955462946195 0.0002493766806123511 2.8983381040505707 110.34349021157364 57.27650400202746 156.207756210604 0.4 0.4 0.4 0.0 0.0 0.0 -83.0 2.96336237e-06 0.00443901923055079 +Body83 2.96336237e-06 0.00443901923055079 1.52529846e-05 1.5176803160785328 0.0004705120497389799 11.377571422949671 215.86224406942333 294.2470414571703 357.6385223802111 0.4 0.4 0.4 0.0 0.0 0.0 -84.0 2.96336237e-06 0.0017237509115899283 +Body84 2.96336237e-06 0.0017237509115899283 1.52529846e-05 0.5893425309666562 0.0005613530732356125 5.436319252086878 91.49742720579809 263.2834004462977 323.40619872828955 0.4 0.4 0.4 0.0 0.0 0.0 -85.0 2.96336237e-06 0.0003628628664899316 +Body85 2.96336237e-06 0.0003628628664899316 1.52529846e-05 0.12406114984081071 0.00019277605226163423 0.43354596978899146 33.3084551810417 256.88755156979323 178.17894205051425 0.4 0.4 0.4 0.0 0.0 0.0 -86.0 2.96336237e-06 0.0013358065929795853 +Body86 2.96336237e-06 0.0013358065929795853 1.52529846e-05 0.4567061476779175 0.0011858249024265526 7.255704549265122 311.80420731067284 263.8411001240191 53.20182707985439 0.4 0.4 0.4 0.0 0.0 0.0 -87.0 2.96336237e-06 0.009327851159356281 +Body87 2.96336237e-06 0.009327851159356281 1.52529846e-05 3.189149530696851 0.00044967413146262676 5.7088595655220225 201.13803507415147 180.31863077187782 84.84802457451434 0.4 0.4 0.4 0.0 0.0 0.0 -88.0 2.96336237e-06 0.0010930789467634894 +Body88 2.96336237e-06 0.0010930789467634894 1.52529846e-05 0.3737186786678916 0.0010712575445926738 4.737993907013679 111.24558688225532 262.75985237332554 278.564628048252 0.4 0.4 0.4 0.0 0.0 0.0 -89.0 2.96336237e-06 0.0003110136706795079 +Body89 2.96336237e-06 0.0003110136706795079 1.52529846e-05 0.10633414759121293 0.0010992579545403803 2.698638929207632 63.949878138869906 213.00270074997584 155.9172911297509 0.4 0.4 0.4 0.0 0.0 0.0 -90.0 2.96336237e-06 0.005316960413365863 +Body90 2.96336237e-06 0.005316960413365863 1.52529846e-05 1.8178443799471666 0.0014415005771152344 6.104347936783227 196.54132799728893 145.59871447908833 277.8926496760078 0.4 0.4 0.4 0.0 0.0 0.0 -91.0 2.96336237e-06 0.005577501405309552 +Body91 2.96336237e-06 0.005577501405309552 1.52529846e-05 1.9069221501634153 0.0005306043429530631 10.734771503339624 225.7400967557793 353.1675426238301 52.2985523542907 0.4 0.4 0.4 0.0 0.0 0.0 -92.0 2.96336237e-06 0.0003464192022134111 +Body92 2.96336237e-06 0.0003464192022134111 1.52529846e-05 0.11843913644088624 0.0010195217727061176 8.555266129794546 199.11263407523387 179.72300188226367 124.33321523618078 0.4 0.4 0.4 0.0 0.0 0.0 -93.0 2.96336237e-06 0.0013567124917219324 +Body93 2.96336237e-06 0.0013567124917219324 1.52529846e-05 0.4638537785763884 0.0005088412966745147 10.415384386783682 315.0251998521479 301.9207071748058 338.6673300092794 0.4 0.4 0.4 0.0 0.0 0.0 -94.0 2.96336237e-06 0.0010001044219994175 +Body94 2.96336237e-06 0.0010001044219994175 1.52529846e-05 0.34193111506373947 0.001729140497532948 9.667089515541221 89.17173976722862 309.26337399604756 284.4388045990902 0.4 0.4 0.4 0.0 0.0 0.0 -95.0 2.96336237e-06 0.0003245938403393872 +Body95 2.96336237e-06 0.0003245938403393872 1.52529846e-05 0.11097714531466465 0.0016926325067968522 1.8765632088536646 181.15091271958 173.58221858572264 88.09695160724537 0.4 0.4 0.4 0.0 0.0 0.0 -96.0 2.96336237e-06 0.0005177858788758957 +Body96 2.96336237e-06 0.0005177858788758957 1.52529846e-05 0.17702861724612637 0.0002478281018597761 9.159778720650952 160.3088036954629 38.53182945837775 335.4697169770586 0.4 0.4 0.4 0.0 0.0 0.0 -97.0 2.96336237e-06 0.0015151185752123697 +Body97 2.96336237e-06 0.0015151185752123697 1.52529846e-05 0.5180120920177788 2.9502982112599547e-06 7.009095414468045 281.37693305656705 4.849548456356212 359.1004845579101 0.4 0.4 0.4 0.0 0.0 0.0 -98.0 2.96336237e-06 0.0003350113563366908 +Body98 2.96336237e-06 0.0003350113563366908 1.52529846e-05 0.11453884625588343 0.0011989095169828302 6.5905002472760374 59.15624414719007 269.39010899221546 123.0990286579837 0.4 0.4 0.4 0.0 0.0 0.0 -99.0 2.96336237e-06 0.0012874772911666674 +Body99 2.96336237e-06 0.0012874772911666674 1.52529846e-05 0.4401825810426401 0.0002036497411803174 3.1771770594002913 100.76352640956914 120.26047229947972 194.5615138427278 0.4 0.4 0.4 0.0 0.0 0.0 -100.0 2.96336237e-06 0.00040838650279990496 +Body100 2.96336237e-06 0.00040838650279990496 1.52529846e-05 0.1396254723083644 0.0004861527967895541 11.131515304468477 262.1262484543326 33.59992903683474 182.1510046705191 0.4 0.4 0.4 0.0 0.0 0.0 -101.0 2.96336237e-06 0.0013243099351560306 +Body101 2.96336237e-06 0.0013243099351560306 1.52529846e-05 0.4527754930956137 0.001261914712861443 9.83965028122555 297.72636258480867 71.8128525718681 56.63573381981481 0.4 0.4 0.4 0.0 0.0 0.0 -102.0 2.96336237e-06 0.0019790875030929254 +Body102 2.96336237e-06 0.0019790875030929254 1.52529846e-05 0.6766409405413768 0.0009016004840216479 7.593246713308825 355.5379789655611 289.2039035363469 135.50491239970953 0.4 0.4 0.4 0.0 0.0 0.0 -103.0 2.96336237e-06 0.00030453665889241036 +Body103 2.96336237e-06 0.00030453665889241036 1.52529846e-05 0.10411968696697571 0.0011992959016376718 1.098941138399255 165.94115750005759 198.33423950434633 247.96779069456593 0.4 0.4 0.4 0.0 0.0 0.0 -104.0 2.96336237e-06 0.0002950967801424541 +Body104 2.96336237e-06 0.0002950967801424541 1.52529846e-05 0.10089223571684924 0.0017749395365379967 7.944123402911042 98.55169231931721 77.0260459225988 187.86561079123032 0.4 0.4 0.4 0.0 0.0 0.0 -105.0 2.96336237e-06 0.00038266901491270424 +Body105 2.96336237e-06 0.00038266901491270424 1.52529846e-05 0.13083278114884678 0.000397437811020739 1.485636402870702 332.2718789916222 165.0358244796671 344.2374508160317 0.4 0.4 0.4 0.0 0.0 0.0 -106.0 2.96336237e-06 0.00342975196143917 +Body106 2.96336237e-06 0.00342975196143917 1.52529846e-05 1.1726164656110538 0.0014673076508426542 3.761359336182932 357.0970820407398 74.49778133500645 72.15707611613152 0.4 0.4 0.4 0.0 0.0 0.0 -107.0 2.96336237e-07 0.00016816959154585814 +Body107 2.96336237e-07 0.00016816959154585814 7.07980829e-06 0.12387226470904195 0.0005531995219881519 10.355978378376493 167.8468401653107 194.82823573726952 211.2267678896405 0.4 0.4 0.4 0.0 0.0 0.0 -108.0 2.96336237e-07 0.00031238764510778253 +Body108 2.96336237e-07 0.00031238764510778253 7.07980829e-06 0.23010203397011544 0.0015261790638578562 11.402130907481173 240.52621289420662 257.13676455604707 174.67141681189824 0.4 0.4 0.4 0.0 0.0 0.0 -109.0 2.96336237e-07 0.0009879110922956823 +Body109 2.96336237e-07 0.0009879110922956823 7.07980829e-06 0.7276867548345038 0.0003207190041773218 0.08589053062255086 98.44578407007661 85.55661268681133 37.370841744572076 0.4 0.4 0.4 0.0 0.0 0.0 -110.0 2.96336237e-07 0.000785792619431494 +Body110 2.96336237e-07 0.000785792619431494 7.07980829e-06 0.5788080381588274 0.00016604617562400475 9.412958915158283 351.0710936405306 137.41416246163016 129.97454633579267 0.4 0.4 0.4 0.0 0.0 0.0 -111.0 2.96336237e-07 0.0006155430753947794 +Body111 2.96336237e-07 0.0006155430753947794 7.07980829e-06 0.45340369845833645 0.0005439008162404882 4.035430293108841 64.71336831652852 103.21305113594659 66.88095597857762 0.4 0.4 0.4 0.0 0.0 0.0 -112.0 2.96336237e-07 0.004403662469145191 +Body112 2.96336237e-07 0.004403662469145191 7.07980829e-06 3.243699637092097 0.0002020826503553822 7.389264551217258 251.3369840198275 259.11381324975497 268.92906302672765 0.4 0.4 0.4 0.0 0.0 0.0 -113.0 2.96336237e-07 0.0008628168581811688 +Body113 2.96336237e-07 0.0008628168581811688 7.07980829e-06 0.6355434253575909 0.0005259848429150753 4.7087952689007215 306.5808360320152 288.3570014006157 118.33807629420642 0.4 0.4 0.4 0.0 0.0 0.0 -114.0 2.96336237e-07 0.00017936753664072642 +Body114 2.96336237e-07 0.00017936753664072642 7.07980829e-06 0.13212057408672506 0.0008665990131266118 7.120353865956092 190.6498907794794 67.47847112103364 67.34416211198067 0.4 0.4 0.4 0.0 0.0 0.0 -115.0 2.96336237e-07 0.00019489758562106689 +Body115 2.96336237e-07 0.00019489758562106689 7.07980829e-06 0.14355987366849599 0.0007000052466704764 11.067266200846223 302.59326698995415 307.16068571669496 320.29539349711746 0.4 0.4 0.4 0.0 0.0 0.0 -116.0 2.96336237e-07 0.0001628468016523569 +Body116 2.96336237e-07 0.0001628468016523569 7.07980829e-06 0.11995154377122244 0.0014304974516166369 8.682040333318456 53.699379689860955 126.10980496487173 244.39176131260652 0.4 0.4 0.4 0.0 0.0 0.0 -117.0 2.96336237e-07 0.0031958201254853424 +Body117 2.96336237e-07 0.0031958201254853424 7.07980829e-06 2.354013427205437 0.0004309473905377549 6.9308357983711355 1.4931374316461492 223.11468690258278 182.31725106488204 0.4 0.4 0.4 0.0 0.0 0.0 -118.0 2.96336237e-07 0.00022418288944292232 +Body118 2.96336237e-07 0.00022418288944292232 7.07980829e-06 0.16513117483988746 0.00022456101212881178 1.0598981407408903 114.65563902572339 195.5529426878297 153.30104159945483 0.4 0.4 0.4 0.0 0.0 0.0 -119.0 2.96336237e-07 0.00014740592815102062 +Body119 2.96336237e-07 0.00014740592815102062 7.07980829e-06 0.1085779300749866 0.0014275161808413696 4.182286103891713 185.19997719955006 69.72766414334342 9.101445563021494 0.4 0.4 0.4 0.0 0.0 0.0 -120.0 2.96336237e-07 0.00029585734777689063 +Body120 2.96336237e-07 0.00029585734777689063 7.07980829e-06 0.217925960115925 0.0002554032758021398 3.8965563945123276 3.601488246601578 242.95765486078784 162.17838073574453 0.4 0.4 0.4 0.0 0.0 0.0 -121.0 2.96336237e-07 0.0007727191730603037 +Body121 2.96336237e-07 0.0007727191730603037 7.07980829e-06 0.5691782507836827 0.0014564975655409615 5.719967231993963 132.89767002952325 284.20909613831935 321.5205172054022 0.4 0.4 0.4 0.0 0.0 0.0 -122.0 2.96336237e-07 0.000213337994549106 +Body122 2.96336237e-07 0.000213337994549106 7.07980829e-06 0.15714291918272705 0.0009494019514339251 9.258388123215918 303.4191655124367 4.878388841323113 218.06868709619636 0.4 0.4 0.4 0.0 0.0 0.0 -123.0 2.96336237e-07 0.00503670254640343 +Body123 2.96336237e-07 0.00503670254640343 7.07980829e-06 3.7099914755912216 0.0010572364648053154 8.010499521080863 27.338053747350823 357.39960777194 177.32187278760247 0.4 0.4 0.4 0.0 0.0 0.0 -124.0 2.96336237e-07 0.0004888292015968271 +Body124 2.96336237e-07 0.0004888292015968271 7.07980829e-06 0.3600673564174043 0.0005742657612974902 10.991021500652414 27.37893830965835 73.88568796383163 163.34375430175132 0.4 0.4 0.4 0.0 0.0 0.0 -125.0 2.96336237e-07 0.00014264880902187626 +Body125 2.96336237e-07 0.00014264880902187626 7.07980829e-06 0.10507387732323137 9.366386918200216e-05 10.015322656735082 35.15867604017057 22.715911698400244 239.12458545347477 0.4 0.4 0.4 0.0 0.0 0.0 -126.0 2.96336237e-07 0.00030911707147207823 +Body126 2.96336237e-07 0.00030911707147207823 7.07980829e-06 0.22769295775468146 0.00114543654379223 7.2920536261670375 49.219898695122154 122.03136784373147 29.828866312026616 0.4 0.4 0.4 0.0 0.0 0.0 -127.0 2.96336237e-07 0.00027012914569216496 +Body127 2.96336237e-07 0.00027012914569216496 7.07980829e-06 0.19897478927801643 0.000404593719157789 4.158279605327939 244.79974749640303 9.508569293962292 221.75078468690472 0.4 0.4 0.4 0.0 0.0 0.0 -128.0 2.96336237e-07 0.001140878866283859 +Body128 2.96336237e-07 0.001140878866283859 7.07980829e-06 0.8403614923850751 8.166778751100094e-05 2.3495898654178586 19.66803963421033 324.7517696127286 86.7158886901674 0.4 0.4 0.4 0.0 0.0 0.0 -129.0 2.96336237e-07 0.002093064990976749 +Body129 2.96336237e-07 0.002093064990976749 7.07980829e-06 1.5417335454775085 0.0019781302961249174 9.297247630023088 80.94579107830113 303.78348612504453 157.20359273800975 0.4 0.4 0.4 0.0 0.0 0.0 -130.0 2.96336237e-07 0.00024098630227522674 +Body130 2.96336237e-07 0.00024098630227522674 7.07980829e-06 0.17750842320711635 0.0009065473133236789 1.1969282234062077 208.46027229431306 177.53308148788503 193.90461945177137 0.4 0.4 0.4 0.0 0.0 0.0 -131.0 2.96336237e-07 0.00017488753769088187 +Body131 2.96336237e-07 0.00017488753769088187 7.07980829e-06 0.12882064565905776 0.0007637828097086882 4.264892111605374 48.83276293064713 251.82172372717227 93.46042142454374 0.4 0.4 0.4 0.0 0.0 0.0 -132.0 2.96336237e-07 0.0001829508529618976 +Body132 2.96336237e-07 0.0001829508529618976 7.07980829e-06 0.13476001385578287 0.00012336312947165454 10.908632447200223 3.041087803171923 147.6307876075636 158.6334537310142 0.4 0.4 0.4 0.0 0.0 0.0 -133.0 2.96336237e-07 0.0007185313679488019 +Body133 2.96336237e-07 0.0007185313679488019 7.07980829e-06 0.529263982829101 0.0006014399909228298 10.751025293098404 259.0034496020978 71.26585297294893 169.2533123873972 0.4 0.4 0.4 0.0 0.0 0.0 -134.0 2.96336237e-07 0.0003356472216466589 +Body134 2.96336237e-07 0.0003356472216466589 7.07980829e-06 0.24723483661034923 0.0014629077708104236 7.287843144309161 301.2638371683688 127.51989720943986 350.2545635084609 0.4 0.4 0.4 0.0 0.0 0.0 -135.0 2.96336237e-07 0.000367851307342242 +Body135 2.96336237e-07 0.000367851307342242 7.07980829e-06 0.2709560872319762 0.001449899070243202 5.3985906685376595 12.869632117018408 56.440619438168206 202.03548534709378 0.4 0.4 0.4 0.0 0.0 0.0 -136.0 2.96336237e-07 0.001020738812493088 +Body136 2.96336237e-07 0.001020738812493088 7.07980829e-06 0.7518673692292205 0.0012878198164970637 9.63415161769334 252.38383472649286 100.10844071089208 53.564469155545595 0.4 0.4 0.4 0.0 0.0 0.0 -137.0 2.96336237e-07 0.0003458138054797775 +Body137 2.96336237e-07 0.0003458138054797775 7.07980829e-06 0.25472345421467585 0.0019417161345252878 4.492776211582144 32.81484412388676 294.309511162598 356.86306577351746 0.4 0.4 0.4 0.0 0.0 0.0 -138.0 2.96336237e-07 0.005423859736551002 +Body138 2.96336237e-07 0.005423859736551002 7.07980829e-06 3.9951681089000517 0.0016294274679503591 4.017393924029837 53.96037334403256 238.11794566096674 189.17852482330372 0.4 0.4 0.4 0.0 0.0 0.0 -139.0 2.96336237e-07 0.00022464116667460812 +Body139 2.96336237e-07 0.00022464116667460812 7.07980829e-06 0.16546873787986208 0.0003270774573829799 8.732005449682077 190.0565396265665 252.49069835037028 36.440263763470895 0.4 0.4 0.4 0.0 0.0 0.0 -140.0 2.96336237e-07 0.00017892196313582106 +Body140 2.96336237e-07 0.00017892196313582106 7.07980829e-06 0.13179236850187698 0.0012997759733666453 4.791504166071849 339.4645982231863 224.59146298588695 16.435525916126085 0.4 0.4 0.4 0.0 0.0 0.0 -141.0 2.96336237e-07 0.003572985279690336 +Body141 2.96336237e-07 0.003572985279690336 7.07980829e-06 2.6318300133744494 0.0016593635605119624 5.196026746192993 199.06815846896959 264.6777435678608 188.65547946252804 0.4 0.4 0.4 0.0 0.0 0.0 -142.0 2.96336237e-07 0.0006012280502272479 +Body142 2.96336237e-07 0.0006012280502272479 7.07980829e-06 0.4428593748944328 0.0018396972558659796 9.622671158320054 63.01326469430487 166.6051238855187 350.0800519903532 0.4 0.4 0.4 0.0 0.0 0.0 -143.0 2.96336237e-07 0.0003791479110369971 +Body143 2.96336237e-07 0.0003791479110369971 7.07980829e-06 0.2792770676799085 0.001877076266242859 3.48890767723524 157.21151440385083 97.74472544944372 15.724902633339642 0.4 0.4 0.4 0.0 0.0 0.0 -144.0 2.96336237e-07 0.0013135886106589365 +Body144 2.96336237e-07 0.0013135886106589365 7.07980829e-06 0.9675779943483723 0.00160002291337724 1.8015622994879954 222.10756640600732 59.163772721633265 88.68453279850249 0.4 0.4 0.4 0.0 0.0 0.0 -145.0 2.96336237e-07 0.00019265066338718887 +Body145 2.96336237e-07 0.00019265066338718887 7.07980829e-06 0.14190481021036971 0.0012818420622606925 2.271664559627985 96.82770203480024 200.08884344226988 269.93379244585316 0.4 0.4 0.4 0.0 0.0 0.0 -146.0 2.96336237e-07 0.0003410152371557038 +Body146 2.96336237e-07 0.0003410152371557038 7.07980829e-06 0.25118887034490417 0.0008201337497851175 5.3814977411779825 124.75435580418859 354.6430029121366 34.25689544138114 0.4 0.4 0.4 0.0 0.0 0.0 -147.0 2.96336237e-07 0.0004492852049709176 +Body147 2.96336237e-07 0.0004492852049709176 7.07980829e-06 0.3309395909713998 0.00013413983096058658 2.079421664422223 220.65257096631845 282.99697243327626 179.4785782033792 0.4 0.4 0.4 0.0 0.0 0.0 -148.0 2.96336237e-07 0.00031646761210079417 +Body148 2.96336237e-07 0.00031646761210079417 7.07980829e-06 0.2331073023228347 0.0008321440549849696 8.138223976196302 357.1499273249601 345.83759313945666 171.95488139485323 0.4 0.4 0.4 0.0 0.0 0.0 -149.0 2.96336237e-07 0.0030007519303011394 +Body149 2.96336237e-07 0.0030007519303011394 7.07980829e-06 2.21032788401029 0.0005453550198973763 1.193619266234995 114.70209914368695 359.1252528706196 165.34546146882104 0.4 0.4 0.4 0.0 0.0 0.0 -150.0 2.96336237e-07 0.00044661239308489296 +Body150 2.96336237e-07 0.00044661239308489296 7.07980829e-06 0.3289708208838966 0.0007315984915959174 5.998345784509511 184.6392027490737 117.6774753530886 22.70218197599295 0.4 0.4 0.4 0.0 0.0 0.0 -151.0 2.96336237e-07 0.0001589193735568456 +Body151 2.96336237e-07 0.0001589193735568456 7.07980829e-06 0.11705863424934708 0.001782716686229557 9.975268794775284 315.3388992722859 202.00883409163833 339.06925812232953 0.4 0.4 0.4 0.0 0.0 0.0 -152.0 2.96336237e-07 0.0013828055989717654 +Body152 2.96336237e-07 0.0013828055989717654 7.07980829e-06 1.0185626284896245 0.0015720599420678773 5.391948036033658 9.820726173963978 286.1158705977679 206.034011860938 0.4 0.4 0.4 0.0 0.0 0.0 -153.0 2.96336237e-07 0.00038037707112716703 +Body153 2.96336237e-07 0.00038037707112716703 7.07980829e-06 0.2801824563572533 0.0013860194854161548 9.848432483325945 158.82387513055312 205.0823418590616 37.56087631123559 0.4 0.4 0.4 0.0 0.0 0.0 -154.0 2.96336237e-07 0.0013628622598251458 +Body154 2.96336237e-07 0.0013628622598251458 7.07980829e-06 1.003872537592433 0.0013261028002044145 6.480312337478101 167.62398308531448 98.09395195195651 75.24672256131272 0.4 0.4 0.4 0.0 0.0 0.0 -155.0 2.96336237e-07 0.001364806745053002 +Body155 2.96336237e-07 0.001364806745053002 7.07980829e-06 1.0053048285711628 0.001983518426589933 4.367180046307461 261.6577560096613 290.33343326668313 332.8968570055506 0.4 0.4 0.4 0.0 0.0 0.0 -156.0 2.96336237e-07 0.00022145689694976492 +Body156 2.96336237e-07 0.00022145689694976492 7.07980829e-06 0.16312323237773801 0.0006439448200590166 11.067956808253003 184.72859242658714 344.652192145938 254.2430158874952 0.4 0.4 0.4 0.0 0.0 0.0 -157.0 2.96336237e-07 0.0003177625865168285 +Body157 2.96336237e-07 0.0003177625865168285 7.07980829e-06 0.23406116926262982 0.00029821637830765893 0.15540232276448177 273.90933503912856 252.71441052672986 86.66419647342113 0.4 0.4 0.4 0.0 0.0 0.0 -158.0 2.96336237e-07 0.0002934051804898172 +Body158 2.96336237e-07 0.0002934051804898172 7.07980829e-06 0.21611971492912865 0.0011028044694697762 3.1406010838512883 268.825042139767 338.59104007622176 57.915432061847646 0.4 0.4 0.4 0.0 0.0 0.0 -159.0 2.96336237e-07 0.0006754039114352842 +Body159 2.96336237e-07 0.0006754039114352842 7.07980829e-06 0.49749667186424473 0.0010626644786087133 8.88185444878993 128.26300715096647 34.443743165914995 283.6020679966429 0.4 0.4 0.4 0.0 0.0 0.0 -160.0 2.96336237e-07 0.002066712252351126 +Body160 2.96336237e-07 0.002066712252351126 7.07980829e-06 1.52232234643234 0.001793237979184002 7.375200915704474 347.057516065177 161.152451712529 300.3840302811319 0.4 0.4 0.4 0.0 0.0 0.0 -161.0 2.96336237e-07 0.004515216758673851 +Body161 2.96336237e-07 0.004515216758673851 7.07980829e-06 3.3258695606490276 0.0013745148894753647 6.966183990909284 23.251726492966064 196.06378863722077 338.06632215580805 0.4 0.4 0.4 0.0 0.0 0.0 -162.0 2.96336237e-07 0.0010236214108874067 +Body162 2.96336237e-07 0.0010236214108874067 7.07980829e-06 0.7539906662418885 0.0004840005158154663 7.427940478904475 349.557243638905 246.69414694612487 330.93962802388324 0.4 0.4 0.4 0.0 0.0 0.0 -163.0 2.96336237e-07 0.0002718807786590962 +Body163 2.96336237e-07 0.0002718807786590962 7.07980829e-06 0.20026502695153556 0.0006058354245075206 5.295860408343369 73.35823722731428 98.10792491734249 317.9966842101337 0.4 0.4 0.4 0.0 0.0 0.0 -164.0 2.96336237e-07 0.00018018330144109257 +Body164 2.96336237e-07 0.00018018330144109257 7.07980829e-06 0.1327214593737879 0.0008093086192652557 3.6928066678370177 59.170715481563 138.97885118139544 251.188395768202 0.4 0.4 0.4 0.0 0.0 0.0 -165.0 2.96336237e-07 0.00017559504684091343 +Body165 2.96336237e-07 0.00017559504684091343 7.07980829e-06 0.12934179077162636 0.0006135474766472398 9.933562821823118 10.484576903357922 194.67967982707057 20.333846557878356 0.4 0.4 0.4 0.0 0.0 0.0 -166.0 2.96336237e-07 0.00039962935024950884 +Body166 2.96336237e-07 0.00039962935024950884 7.07980829e-06 0.2943635184254499 0.0012619760406024807 2.779578041982537 35.52954059395194 305.2214761982664 138.76489378040108 0.4 0.4 0.4 0.0 0.0 0.0 -167.0 2.96336237e-07 0.00022115456668983884 +Body167 2.96336237e-07 0.00022115456668983884 7.07980829e-06 0.1629005385265913 0.0001929527786699337 9.440631307955767 127.4007986821642 337.0886437695329 269.41233940608936 0.4 0.4 0.4 0.0 0.0 0.0 -168.0 2.96336237e-07 0.0008060441724070385 +Body168 2.96336237e-07 0.0008060441724070385 7.07980829e-06 0.5937251566931361 0.0005249423886786294 2.9987821947478523 48.6375472295649 214.28217837784138 255.52618034001915 0.4 0.4 0.4 0.0 0.0 0.0 -169.0 2.96336237e-07 0.00031106873049514165 +Body169 2.96336237e-07 0.00031106873049514165 7.07980829e-06 0.22913053288883273 0.0016186032198070468 9.151761940335717 11.200770827285309 266.3777681156726 49.034665032791885 0.4 0.4 0.4 0.0 0.0 0.0 -170.0 2.96336237e-07 0.0003671364476741176 +Body170 2.96336237e-07 0.0003671364476741176 7.07980829e-06 0.2704295277914392 0.00012545600265867656 3.134397409063039 10.298354663953061 133.16092507665462 276.0065731998203 0.4 0.4 0.4 0.0 0.0 0.0 -171.0 2.96336237e-07 0.0001406861515402154 +Body171 2.96336237e-07 0.0001406861515402154 7.07980829e-06 0.10362820081972879 0.0010692074694615696 10.759956971253267 43.8394536060831 179.56586036953883 129.3281899786029 0.4 0.4 0.4 0.0 0.0 0.0 -172.0 2.96336237e-07 0.00016190577897156664 +Body172 2.96336237e-07 0.00016190577897156664 7.07980829e-06 0.1192583946142283 0.00019753162900574672 3.8060033566757454 349.38327819474637 26.026878084041176 320.1433164558795 0.4 0.4 0.4 0.0 0.0 0.0 -173.0 2.96336237e-07 0.00019959834578956432 +Body173 2.96336237e-07 0.00019959834578956432 7.07980829e-06 0.14702241289793241 0.0009524778563671583 8.147159648286227 314.40136019421766 221.39624878001882 155.89907353446114 0.4 0.4 0.4 0.0 0.0 0.0 -174.0 2.96336237e-07 0.00026054361645258187 +Body174 2.96336237e-07 0.00026054361645258187 7.07980829e-06 0.1919141714550962 0.0011892772120079787 6.863317164196909 114.29995318209117 163.44259320800703 20.060149144011508 0.4 0.4 0.4 0.0 0.0 0.0 -175.0 2.96336237e-07 0.00014110396260167847 +Body175 2.96336237e-07 0.00014110396260167847 7.07980829e-06 0.10393595682917241 0.0019650009001170015 8.380209652009132 27.694704254845995 124.84538034739687 0.9605955234993264 0.4 0.4 0.4 0.0 0.0 0.0 -176.0 2.96336237e-07 0.000335299116311714 +Body176 2.96336237e-07 0.000335299116311714 7.07980829e-06 0.24697842523537622 0.00013153259079534292 9.342039055239226 98.7649591870879 183.74431768897168 325.6204743384124 0.4 0.4 0.4 0.0 0.0 0.0 -177.0 2.96336237e-07 0.0009920857025102555 +Body177 2.96336237e-07 0.0009920857025102555 7.07980829e-06 0.7307617365645729 0.0017633866996118002 9.110512873524705 226.63496885023062 241.9899351563555 284.7615263965227 0.4 0.4 0.4 0.0 0.0 0.0 -178.0 2.96336237e-07 0.0005050245818596466 +Body178 2.96336237e-07 0.0005050245818596466 7.07980829e-06 0.3719967332597837 0.0006100482118329518 3.0520895784014277 37.530361626110185 202.00026377977647 135.978768482857 0.4 0.4 0.4 0.0 0.0 0.0 -179.0 2.96336237e-07 0.00021298758224292248 +Body179 2.96336237e-07 0.00021298758224292248 7.07980829e-06 0.15688480851271908 0.0006791788186175694 8.326300133053458 24.834781106245998 71.16192911147928 183.39434898702336 0.4 0.4 0.4 0.0 0.0 0.0 -180.0 2.96336237e-07 0.0001546801787549805 +Body180 2.96336237e-07 0.0001546801787549805 7.07980829e-06 0.11393608007161017 0.0016976011178171653 1.9413029702389735 333.9359764465807 329.27703780599694 298.5147658284802 0.4 0.4 0.4 0.0 0.0 0.0 -181.0 2.96336237e-07 0.001414987985585469 +Body181 2.96336237e-07 0.001414987985585469 7.07980829e-06 1.042267895755463 0.001616466643041654 10.645313273891006 329.61906607910646 202.88772573773534 117.97158715648169 0.4 0.4 0.4 0.0 0.0 0.0 -182.0 2.96336237e-07 0.00042896379618307366 +Body182 2.96336237e-07 0.00042896379618307366 7.07980829e-06 0.3159710172507339 0.000766433922706978 8.17912136606349 13.739394195734159 34.350772076221816 352.3560733672413 0.4 0.4 0.4 0.0 0.0 0.0 -183.0 2.96336237e-07 0.00019906284169194215 +Body183 2.96336237e-07 0.00019906284169194215 7.07980829e-06 0.14662796521732815 0.0012326717671009941 0.7877533807498188 74.61864594498222 328.98883992061695 161.9126770172985 0.4 0.4 0.4 0.0 0.0 0.0 -184.0 2.96336237e-07 0.0003817964110505486 +Body184 2.96336237e-07 0.0003817964110505486 7.07980829e-06 0.2812279298526996 0.0006617861350581386 5.156218707648213 61.38509954988284 30.762104505928384 290.25836261238675 0.4 0.4 0.4 0.0 0.0 0.0 -185.0 2.96336237e-07 0.0006641055159158564 +Body185 2.96336237e-07 0.0006641055159158564 7.07980829e-06 0.48917437157377647 0.0007007716015580458 7.78402706330698 109.68696794203515 200.37796049973736 300.38920394549854 0.4 0.4 0.4 0.0 0.0 0.0 -186.0 2.96336237e-07 0.00036563238786947765 +Body186 2.96336237e-07 0.00036563238786947765 7.07980829e-06 0.26932165036516986 0.0017465208479135463 4.539557413499532 316.6242898617949 323.76084431082694 165.39345302687377 0.4 0.4 0.4 0.0 0.0 0.0 -187.0 2.96336237e-07 0.0010726745256709551 +Body187 2.96336237e-07 0.0010726745256709551 7.07980829e-06 0.790122765769607 0.00041571389225238895 8.48743965069622 312.8252679132003 63.779768711678884 346.1600707719443 0.4 0.4 0.4 0.0 0.0 0.0 -188.0 2.96336237e-07 0.002760564552000707 +Body188 2.96336237e-07 0.002760564552000707 7.07980829e-06 2.033407941283969 0.0012487716784506683 4.780479160068423 119.95278344844063 192.49227229271023 312.8861177607798 0.4 0.4 0.4 0.0 0.0 0.0 -189.0 2.96336237e-07 0.00014918339096463875 +Body189 2.96336237e-07 0.00014918339096463875 7.07980829e-06 0.10988719378987731 0.0018685801956184883 9.871355330700402 16.62388996911967 341.4312426028597 117.11558241918884 0.4 0.4 0.4 0.0 0.0 0.0 -190.0 2.96336237e-07 0.0001694186633171762 +Body190 2.96336237e-07 0.0001694186633171762 7.07980829e-06 0.12479232015827643 0.001494790158159074 6.170794640494448 287.2665655167668 196.7638664776334 108.39673013661518 0.4 0.4 0.4 0.0 0.0 0.0 -191.0 2.96336237e-07 0.00021199568746620945 +Body191 2.96336237e-07 0.00021199568746620945 7.07980829e-06 0.15615418741044323 2.78913477291886e-05 10.692986130530839 200.68567455035873 82.4386461946673 294.62391664458 0.4 0.4 0.4 0.0 0.0 0.0 -192.0 2.96336237e-07 0.00014016614488350753 +Body192 2.96336237e-07 0.00014016614488350753 7.07980829e-06 0.10324516841988725 0.0004637618628390578 0.7308051275018799 42.30233194875857 310.1699033238308 52.740299428167255 0.4 0.4 0.4 0.0 0.0 0.0 -193.0 2.96336237e-07 0.0012229160482499482 +Body193 2.96336237e-07 0.0012229160482499482 7.07980829e-06 0.9007893701427262 0.00022289967307811764 2.700684154462068 152.30439809554642 286.5828940111849 236.45852634540913 0.4 0.4 0.4 0.0 0.0 0.0 -194.0 2.96336237e-07 0.0007667428750310092 +Body194 2.96336237e-07 0.0007667428750310092 7.07980829e-06 0.5647761614127097 0.0018924303727522655 9.159135124003821 211.70900212994155 346.3426486608832 78.23424628533033 0.4 0.4 0.4 0.0 0.0 0.0 -195.0 2.96336237e-07 0.00032907751915612477 +Body195 2.96336237e-07 0.00032907751915612477 7.07980829e-06 0.2423956506523743 0.0012369454673971248 9.788750352316649 334.9339658731037 143.94705891738602 218.96160352808548 0.4 0.4 0.4 0.0 0.0 0.0 -196.0 2.96336237e-07 0.0035665013066683814 +Body196 2.96336237e-07 0.0035665013066683814 7.07980829e-06 2.627053975000575 0.000316185566059322 10.18193359257925 190.764389273938 312.49027742470116 193.61040983155738 0.4 0.4 0.4 0.0 0.0 0.0 -197.0 2.96336237e-07 0.0020067073773769673 +Body197 2.96336237e-07 0.0020067073773769673 7.07980829e-06 1.4781232751953437 0.0006941622875320177 10.98511563930743 190.41758145328998 148.6655764055237 309.18433423478973 0.4 0.4 0.4 0.0 0.0 0.0 -198.0 2.96336237e-07 0.0016980237611734642 +Body198 2.96336237e-07 0.0016980237611734642 7.07980829e-06 1.2507495968375788 0.001614108985697043 2.1464434538508557 322.37009572544537 55.104142869009216 85.39669528097619 0.4 0.4 0.4 0.0 0.0 0.0 -199.0 2.96336237e-07 0.0002435955289572822 +Body199 2.96336237e-07 0.0002435955289572822 7.07980829e-06 0.17943035698405208 0.0008730361704048029 4.3454735664214414 305.60595571513664 160.92719052876444 77.14881713031818 0.4 0.4 0.4 0.0 0.0 0.0 -200.0 2.96336237e-07 0.00016010149885709995 +Body200 2.96336237e-07 0.00016010149885709995 7.07980829e-06 0.11792937750778232 0.0010256005854385702 6.358956336477252 99.14079090569145 14.581675963536666 236.57160174756234 0.4 0.4 0.4 0.0 0.0 0.0 -201.0 2.96336237e-07 0.0008787982558057802 +Body201 2.96336237e-07 0.0008787982558057802 7.07980829e-06 0.6473151844418513 0.0015377994661774882 9.32745353877487 228.24666762955778 323.9446178720141 119.24764249841333 0.4 0.4 0.4 0.0 0.0 0.0 -202.0 2.96336237e-07 0.0017954751469194494 +Body202 2.96336237e-07 0.0017954751469194494 7.07980829e-06 1.3225314436056246 0.000691805367143881 10.532213204900485 211.87639711279724 61.735729223558934 82.11482242324249 0.4 0.4 0.4 0.0 0.0 0.0 -203.0 2.96336237e-07 0.0012991885817706806 +Body203 2.96336237e-07 0.0012991885817706806 7.07980829e-06 0.9569710577799532 0.0007249951304479727 2.000271567863135 288.99784275305177 214.0678946094761 254.58478817829277 0.4 0.4 0.4 0.0 0.0 0.0 -204.0 2.96336237e-07 0.0003399181905856912 +Body204 2.96336237e-07 0.0003399181905856912 7.07980829e-06 0.2503807953423453 0.0013759788133305114 3.316892456213196 96.23975353122707 357.4722317667782 127.2736160439848 0.4 0.4 0.4 0.0 0.0 0.0 -205.0 2.96336237e-07 0.00024793880705204326 +Body205 2.96336237e-07 0.00024793880705204326 7.07980829e-06 0.18262957801392843 0.0017157779266407896 2.2009158458663625 11.807095777018043 339.8227906851545 39.16400100090238 0.4 0.4 0.4 0.0 0.0 0.0 -206.0 2.96336237e-07 0.00014772181136383643 +Body206 2.96336237e-07 0.00014772181136383643 7.07980829e-06 0.10881060691385727 0.0006751379178441995 8.205815716422652 167.78369402264536 217.23434074847805 96.10947124818023 0.4 0.4 0.4 0.0 0.0 0.0 -207.0 2.96336237e-07 0.0001726437639612437 +Body207 2.96336237e-07 0.0001726437639612437 7.07980829e-06 0.12716790136188713 0.0007840743508914886 7.104423669752906 20.288608511524213 215.52017237393778 52.26007028792386 0.4 0.4 0.4 0.0 0.0 0.0 -208.0 2.96336237e-07 0.0018620952900203491 +Body208 2.96336237e-07 0.0018620952900203491 7.07980829e-06 1.371603264053607 0.0009670280064962706 0.26975802667935367 186.73900145950276 11.807046949130749 210.80209167405837 0.4 0.4 0.4 0.0 0.0 0.0 -209.0 2.96336237e-07 0.0001500772754354715 +Body209 2.96336237e-07 0.0001500772754354715 7.07980829e-06 0.11054562134965469 0.0004212731576929747 5.107089289406828 191.41091549672987 168.2169823184333 214.77055756537882 0.4 0.4 0.4 0.0 0.0 0.0 -210.0 2.96336237e-07 0.002084404211654546 +Body210 2.96336237e-07 0.002084404211654546 7.07980829e-06 1.535354090434984 0.0003044619843016671 9.817178189524565 24.02751479490522 345.76928856220974 77.25094364044551 0.4 0.4 0.4 0.0 0.0 0.0 -211.0 2.96336237e-07 0.0037098487958060786 +Body211 2.96336237e-07 0.0037098487958060786 7.07980829e-06 2.732642494046239 0.0017533570248068017 10.541784042600442 183.96265326310302 42.56564437980813 318.5382099562932 0.4 0.4 0.4 0.0 0.0 0.0 -212.0 2.96336237e-07 0.00038115621754547513 +Body212 2.96336237e-07 0.00038115621754547513 7.07980829e-06 0.2807563688612237 0.00042096780769310235 8.178730051971389 13.660589419038033 61.78654310928999 359.09913531464383 0.4 0.4 0.4 0.0 0.0 0.0 -213.0 2.96336237e-07 0.00014785801751927767 +Body213 2.96336237e-07 0.00014785801751927767 7.07980829e-06 0.10891093518834927 0.001649245523746131 1.5883493999405343 162.60580357685225 292.9008584369058 264.2190177580755 0.4 0.4 0.4 0.0 0.0 0.0 -214.0 2.96336237e-07 0.0004740021377059934 +Body214 2.96336237e-07 0.0004740021377059934 7.07980829e-06 0.34914586956439975 0.0008049997580228192 7.147446272658471 196.43371055896776 244.68364848264363 125.53445762406609 0.4 0.4 0.4 0.0 0.0 0.0 -215.0 2.96336237e-07 0.0001697778484955723 +Body215 2.96336237e-07 0.0001697778484955723 7.07980829e-06 0.1250568928499792 0.0011272406254360131 0.8303248616962521 219.21382519185622 294.0883983025753 125.65741218814509 0.4 0.4 0.4 0.0 0.0 0.0 -216.0 2.96336237e-07 0.0022980225363745223 +Body216 2.96336237e-07 0.0022980225363745223 7.07980829e-06 1.6927034983937899 0.00042475279959607796 6.839865737755455 256.1546018631811 52.72632430493219 240.04551169076447 0.4 0.4 0.4 0.0 0.0 0.0 -217.0 2.96336237e-07 0.00035289505479375573 +Body217 2.96336237e-07 0.00035289505479375573 7.07980829e-06 0.25993944113257617 0.0010708877295575513 5.692463515502207 148.48804231261136 191.641133752022 41.885954320221956 0.4 0.4 0.4 0.0 0.0 0.0 -218.0 2.96336237e-07 0.00025301275516371996 +Body218 2.96336237e-07 0.00025301275516371996 7.07980829e-06 0.18636700425033675 0.0012416834402048642 10.26542747504295 329.24538975442806 257.9445474945486 185.52836484359017 0.4 0.4 0.4 0.0 0.0 0.0 -219.0 2.96336237e-07 0.0014762812657693556 +Body219 2.96336237e-07 0.0014762812657693556 7.07980829e-06 1.0874159951117812 0.0017109019247707644 8.236341398611993 7.455178471365682 73.51925788845762 265.1313439020597 0.4 0.4 0.4 0.0 0.0 0.0 -220.0 2.96336237e-07 0.0003149117198965777 +Body220 2.96336237e-07 0.0003149117198965777 7.07980829e-06 0.231961245599929 3.4109124152629e-05 2.1542164870395832 285.29015445980576 282.9646433174194 174.9398683992383 0.4 0.4 0.4 0.0 0.0 0.0 -221.0 2.96336237e-07 0.00019506210462675862 +Body221 2.96336237e-07 0.00019506210462675862 7.07980829e-06 0.14368105694328057 0.0008306655083517787 8.114916758603387 99.24628499032778 189.16677308527224 143.18476513265207 0.4 0.4 0.4 0.0 0.0 0.0 -222.0 2.96336237e-07 0.00013615561035436202 +Body222 2.96336237e-07 0.00013615561035436202 7.07980829e-06 0.1002910434187357 0.001378237544990353 0.8497756036880315 58.85638691575179 169.1319154934693 228.48288782623976 0.4 0.4 0.4 0.0 0.0 0.0 -223.0 2.96336237e-07 0.00038439934667768895 +Body223 2.96336237e-07 0.00038439934667768895 7.07980829e-06 0.2831452296930682 0.0012684965519581396 3.023547839769216 49.435923162329786 103.29742604797761 219.8817809109895 0.4 0.4 0.4 0.0 0.0 0.0 -224.0 2.96336237e-07 0.00018149758177013166 +Body224 2.96336237e-07 0.00018149758177013166 7.07980829e-06 0.13368954688190451 0.001655295759468958 10.408320781356021 161.15193021387574 5.411709863050264 110.29299367176876 0.4 0.4 0.4 0.0 0.0 0.0 -225.0 2.96336237e-07 0.0001915431981668877 +Body225 2.96336237e-07 0.0001915431981668877 7.07980829e-06 0.14108906092023843 0.0015564326687895838 10.714020711437744 146.0653453808813 175.78773632718568 160.5520207087941 0.4 0.4 0.4 0.0 0.0 0.0 -226.0 2.96336237e-07 0.0012367194492356964 +Body226 2.96336237e-07 0.0012367194492356964 7.07980829e-06 0.910956835765222 0.0008941512327692245 7.343267100816448 34.79194078075773 235.37851553601487 0.5637235052828101 0.4 0.4 0.4 0.0 0.0 0.0 -227.0 2.96336237e-07 0.0006033454038874619 +Body227 2.96336237e-07 0.0006033454038874619 7.07980829e-06 0.4444189992633197 0.00027434415554570955 1.3946438470777796 177.87891221055915 205.47947156499617 226.64594351417597 0.4 0.4 0.4 0.0 0.0 0.0 -228.0 2.96336237e-07 0.0002295040567714756 +Body228 2.96336237e-07 0.0002295040567714756 7.07980829e-06 0.1690507006104184 0.0015495487122857464 0.506258533467444 118.3395525479282 111.12727377366951 20.62163702517497 0.4 0.4 0.4 0.0 0.0 0.0 -229.0 2.96336237e-07 0.000680188629669569 +Body229 2.96336237e-07 0.000680188629669569 7.07980829e-06 0.5010210538778258 0.0018125122300620218 3.516518540160953 286.18394034264486 46.65261004443694 180.6934797702036 0.4 0.4 0.4 0.0 0.0 0.0 -230.0 2.96336237e-07 0.0008309321372508847 +Body230 2.96336237e-07 0.0008309321372508847 7.07980829e-06 0.612057416056242 0.0013479381556343616 8.781970742963736 4.6502582809159225 235.79852002674681 254.58469355674114 0.4 0.4 0.4 0.0 0.0 0.0 -231.0 2.96336237e-07 0.00028875338348513253 +Body231 2.96336237e-07 0.00028875338348513253 7.07980829e-06 0.21269324154211386 0.0017014082467900972 10.805769273150426 210.4351975769534 16.69354930850494 307.16209275059845 0.4 0.4 0.4 0.0 0.0 0.0 -232.0 2.96336237e-07 0.004789166988213282 +Body232 2.96336237e-07 0.004789166988213282 7.07980829e-06 3.5276589271966508 0.00016917592282757524 0.0919403618348367 5.541775361397037 316.5417521480938 19.724330375795756 0.4 0.4 0.4 0.0 0.0 0.0 -233.0 2.96336237e-07 0.00015602774231945101 +Body233 2.96336237e-07 0.00015602774231945101 7.07980829e-06 0.1149286837226979 0.0005694907494871749 4.2061005176099675 298.3884159608733 160.7896563736114 54.12728271096299 0.4 0.4 0.4 0.0 0.0 0.0 -234.0 2.96336237e-07 0.00033361659151024965 +Body234 2.96336237e-07 0.00033361659151024965 7.07980829e-06 0.24573909203803246 0.0008538548336281108 5.267761887787151 69.88816687432661 130.85673441359256 330.0663861704082 0.4 0.4 0.4 0.0 0.0 0.0 -235.0 2.96336237e-07 0.0007255629284671912 +Body235 2.96336237e-07 0.0007255629284671912 7.07980829e-06 0.5344433694104976 0.00029151450416525646 5.790283282713547 209.80207261084993 200.85446052779668 22.50654792931252 0.4 0.4 0.4 0.0 0.0 0.0 -236.0 2.96336237e-07 0.00014050915870131856 +Body236 2.96336237e-07 0.00014050915870131856 7.07980829e-06 0.10349782942743427 0.0007924621844157655 11.173923475547578 11.154342452970775 214.64853940043557 285.1138704849443 0.4 0.4 0.4 0.0 0.0 0.0 -237.0 2.96336237e-07 0.00037797350969624765 +Body237 2.96336237e-07 0.00037797350969624765 7.07980829e-06 0.2784120138231516 0.00035560782977214273 3.5867703877553323 347.79807714965494 142.65591536366088 120.30910012971961 0.4 0.4 0.4 0.0 0.0 0.0 -238.0 2.96336237e-07 0.0002818717377284597 +Body238 2.96336237e-07 0.0002818717377284597 7.07980829e-06 0.20762428087586896 0.0019345055907977475 4.699858656823634 11.910525225358313 225.4147272411337 227.5842364756943 0.4 0.4 0.4 0.0 0.0 0.0 -239.0 2.96336237e-07 0.00017962394541836337 +Body239 2.96336237e-07 0.00017962394541836337 7.07980829e-06 0.13230944257171812 0.0005909912378243259 6.874912174730618 4.410205837761819 12.178632782698875 168.85550551610942 0.4 0.4 0.4 0.0 0.0 0.0 -240.0 2.96336237e-07 0.00014763491417794765 +Body240 2.96336237e-07 0.00014763491417794765 7.07980829e-06 0.10874659919929998 0.0001487868707847223 8.592895875798417 341.2285492296072 117.82083180908305 107.39008168704405 0.4 0.4 0.4 0.0 0.0 0.0 -241.0 2.96336237e-07 0.00021413852875499322 +Body241 2.96336237e-07 0.00021413852875499322 7.07980829e-06 0.15773258574580046 0.0013968876742388708 2.5666121192866873 7.892521759158565 273.23494428618056 114.36072842368112 0.4 0.4 0.4 0.0 0.0 0.0 -242.0 2.96336237e-07 0.000302920880213668 +Body242 2.96336237e-07 0.000302920880213668 7.07980829e-06 0.2231288969355152 0.001490662786820567 8.823469116533468 77.74603760548976 256.1711765244276 190.7090045158862 0.4 0.4 0.4 0.0 0.0 0.0 -243.0 2.96336237e-07 0.002176341257532404 +Body243 2.96336237e-07 0.002176341257532404 7.07980829e-06 1.603074122212809 1.1249616815154717e-05 7.221093398248473 333.49253555301203 218.11923385527152 275.41388027309995 0.4 0.4 0.4 0.0 0.0 0.0 -244.0 2.96336237e-07 0.00024317880758719938 +Body244 2.96336237e-07 0.00024317880758719938 7.07980829e-06 0.17912340363184193 0.000336998420125595 7.724078976290007 161.37544585797195 241.90498095337946 69.3977624533481 0.4 0.4 0.4 0.0 0.0 0.0 -245.0 2.96336237e-07 0.00038691804961616397 +Body245 2.96336237e-07 0.00038691804961616397 7.07980829e-06 0.2850004844644586 9.420942546640277e-05 7.669912374939788 259.7007514363307 35.13983765302773 10.91017038567923 0.4 0.4 0.4 0.0 0.0 0.0 -246.0 2.96336237e-07 0.00047054547278308634 +Body246 2.96336237e-07 0.00047054547278308634 7.07980829e-06 0.3465997201184457 0.0009193224760291305 6.7204038763804865 161.4453141138866 180.73760235721628 141.2837397885981 0.4 0.4 0.4 0.0 0.0 0.0 -247.0 2.96336237e-07 0.0001594873671616805 +Body247 2.96336237e-07 0.0001594873671616805 7.07980829e-06 0.11747701341959062 0.0014297941505331205 9.641397929251935 46.77020617086623 74.02294078385285 275.92894966924365 0.4 0.4 0.4 0.0 0.0 0.0 -248.0 2.96336237e-07 0.0010118558762477353 +Body248 2.96336237e-07 0.0010118558762477353 7.07980829e-06 0.7453242753210819 0.0019755797078711747 6.782190434597142 78.2813100583065 150.3875582241861 12.61430541775426 0.4 0.4 0.4 0.0 0.0 0.0 -249.0 2.96336237e-07 0.0006915933047027637 +Body249 2.96336237e-07 0.0006915933047027637 7.07980829e-06 0.5094216387377067 0.0011040779288285353 9.711103505274918 341.190827080925 137.43932028377347 142.79616533586562 0.4 0.4 0.4 0.0 0.0 0.0 -250.0 2.96336237e-07 0.0004130865867584533 +Body250 2.96336237e-07 0.0004130865867584533 7.07980829e-06 0.30427600229227064 0.0006650742528771187 2.3314517503433927 348.7061105973839 33.495458937222274 142.47561828090258 0.4 0.4 0.4 0.0 0.0 0.0 -251.0 2.96336237e-07 0.00014720505103971152 +Body251 2.96336237e-07 0.00014720505103971152 7.07980829e-06 0.10842996573448166 0.0017727333230638425 5.354009837425878 23.03294932605134 357.9059136353031 67.57407478038287 0.4 0.4 0.4 0.0 0.0 0.0 -252.0 2.96336237e-07 0.000984600319821135 +Body252 2.96336237e-07 0.000984600319821135 7.07980829e-06 0.725248068502518 0.0016807788727423241 2.745464915439347 207.77125122588643 259.65622404449584 55.63308259585522 0.4 0.4 0.4 0.0 0.0 0.0 -253.0 2.96336237e-07 0.00040567014772123635 +Body253 2.96336237e-07 0.00040567014772123635 7.07980829e-06 0.29881311752712514 0.0005181305464388276 2.907943351307752 174.15791217888955 248.3289466312303 65.98173066158998 0.4 0.4 0.4 0.0 0.0 0.0 -254.0 2.96336237e-07 0.00023718335075471962 +Body254 2.96336237e-07 0.00023718335075471962 7.07980829e-06 0.17470720205236642 0.0004048198416281155 2.942839656148467 107.79982635849616 232.18812022144456 210.21701646839182 0.4 0.4 0.4 0.0 0.0 0.0 -255.0 2.96336237e-07 0.004283665517049441 +Body255 2.96336237e-07 0.004283665517049441 7.07980829e-06 3.155310921405471 0.0008690751471973748 2.9468228217980252 299.4906587956731 350.15633095889694 75.52026808606432 0.4 0.4 0.4 0.0 0.0 0.0 -256.0 2.96336237e-07 0.000817134870139535 +Body256 2.96336237e-07 0.000817134870139535 7.07980829e-06 0.6018944685925062 0.0005609106650894346 3.367785048520667 233.83059625294527 309.822511579689 97.28410767563408 0.4 0.4 0.4 0.0 0.0 0.0 -257.0 2.96336237e-07 0.00015528474379070223 +Body257 2.96336237e-07 0.00015528474379070223 7.07980829e-06 0.11438139744112007 0.0011797166186013966 10.837249867290915 169.6006931282434 208.11075987000896 233.87472157884088 0.4 0.4 0.4 0.0 0.0 0.0 -258.0 2.96336237e-07 0.0008434582955810151 +Body258 2.96336237e-07 0.0008434582955810151 7.07980829e-06 0.6212840758001004 0.0008612378969723491 5.01164468826643 198.09164937559453 354.2664945635985 289.3258487055918 0.4 0.4 0.4 0.0 0.0 0.0 -259.0 2.96336237e-07 0.0002147178424179851 +Body259 2.96336237e-07 0.0002147178424179851 7.07980829e-06 0.15815930317284568 0.00048635766663721026 7.555015607446637 120.8362654476432 47.0664105312282 66.63879584602019 0.4 0.4 0.4 0.0 0.0 0.0 -260.0 2.96336237e-07 0.0004047082180033782 +Body260 2.96336237e-07 0.0004047082180033782 7.07980829e-06 0.298104568427691 0.0010505831612709206 3.5709675793137308 224.89284013971303 178.55081080406057 334.3940893078972 0.4 0.4 0.4 0.0 0.0 0.0 -261.0 2.96336237e-07 0.00016261985975975462 +Body261 2.96336237e-07 0.00016261985975975462 7.07980829e-06 0.11978438033854957 0.0006309182599047637 2.0017352253487477 31.612113473826636 341.20755547153817 89.2680098475455 0.4 0.4 0.4 0.0 0.0 0.0 -262.0 2.96336237e-07 0.00017805495279096215 +Body262 2.96336237e-07 0.00017805495279096215 7.07980829e-06 0.13115373619055 0.0018221731090361927 4.067869231849736 119.11962705630604 333.0495355236492 149.44948219551455 0.4 0.4 0.4 0.0 0.0 0.0 -263.0 2.96336237e-07 0.0002406453365312257 +Body263 2.96336237e-07 0.0002406453365312257 7.07980829e-06 0.17725727079300055 0.0009377733636088368 10.395809749714058 270.9505765961 298.9615482937117 288.5573654373031 0.4 0.4 0.4 0.0 0.0 0.0 -264.0 2.96336237e-07 0.0005833010762516816 +Body264 2.96336237e-07 0.0005833010762516816 7.07980829e-06 0.42965452111961755 0.0015665462291608002 3.6943684564611403 164.81313967514203 8.491196746822613 354.10643082270167 0.4 0.4 0.4 0.0 0.0 0.0 -265.0 2.96336237e-07 0.0004650446566381699 +Body265 2.96336237e-07 0.0004650446566381699 7.07980829e-06 0.3425478665856205 0.0011592257075281403 2.8377121499569835 155.09023565207045 114.58340895178573 132.77196435560555 0.4 0.4 0.4 0.0 0.0 0.0 -266.0 2.96336237e-07 0.0002830521676258744 +Body266 2.96336237e-07 0.0002830521676258744 7.07980829e-06 0.20849377531525543 0.0009276865729839454 5.071334838260017 78.03911987700765 127.5115304739284 162.63541069544019 0.4 0.4 0.4 0.0 0.0 0.0 -267.0 2.96336237e-07 0.0005591199386490625 +Body267 2.96336237e-07 0.0005591199386490625 7.07980829e-06 0.41184290458096057 0.001963941440472467 1.4928876090999643 197.58335766687242 234.72955990999395 115.31060076949608 0.4 0.4 0.4 0.0 0.0 0.0 -268.0 2.96336237e-07 0.00045605011976187506 +Body268 2.96336237e-07 0.00045605011976187506 7.07980829e-06 0.335922568619241 0.00019918741957323128 3.782891073799093 250.13842381649116 326.9879175546122 293.37785999714566 0.4 0.4 0.4 0.0 0.0 0.0 -269.0 2.96336237e-07 0.004221674486263204 +Body269 2.96336237e-07 0.004221674486263204 7.07980829e-06 3.109648864998293 9.395893190170921e-05 6.959994520926894 302.0166560623343 69.93562142002673 204.67515235084042 0.4 0.4 0.4 0.0 0.0 0.0 -270.0 2.96336237e-07 0.0028958481002412154 +Body270 2.96336237e-07 0.0028958481002412154 7.07980829e-06 2.133056631302087 0.0017127018283247966 1.2994943768340637 27.3948787970591 164.80826908236628 91.06657370776342 0.4 0.4 0.4 0.0 0.0 0.0 -271.0 2.96336237e-07 0.0027918986640844586 +Body271 2.96336237e-07 0.0027918986640844586 7.07980829e-06 2.05648837687748 0.000909040281369389 6.316269060791007 353.38275478294435 210.45802798856064 276.50218980188725 0.4 0.4 0.4 0.0 0.0 0.0 -272.0 2.96336237e-07 0.0006193301949800568 +Body272 2.96336237e-07 0.0006193301949800568 7.07980829e-06 0.4561932579467078 0.000531155583006727 0.9557363211994999 35.14124101438557 62.789057177241475 204.8361250748343 0.4 0.4 0.4 0.0 0.0 0.0 -273.0 2.96336237e-07 0.0013633319545579942 +Body273 2.96336237e-07 0.0013633319545579942 7.07980829e-06 1.0042185106648833 0.0006243122502952267 1.6622398169826273 88.79831610924471 31.759105856310057 349.87779027468093 0.4 0.4 0.4 0.0 0.0 0.0 -274.0 2.96336237e-07 0.00022448066128420477 +Body274 2.96336237e-07 0.00022448066128420477 7.07980829e-06 0.1653505109993392 0.000984910938394988 8.64712660160123 96.32856540828398 33.39814592089414 190.49175636262328 0.4 0.4 0.4 0.0 0.0 0.0 -275.0 2.96336237e-07 0.00023385189275707766 +Body275 2.96336237e-07 0.00023385189275707766 7.07980829e-06 0.17225327894321488 0.0004507722173204072 2.0623087142726786 90.86674638551156 35.708335043797334 6.1504009310031424 0.4 0.4 0.4 0.0 0.0 0.0 -276.0 2.96336237e-07 0.0007236741577720057 +Body276 2.96336237e-07 0.0007236741577720057 7.07980829e-06 0.5330521172740204 0.0010252529693844888 2.425520360206466 145.93090085987384 124.27193077457585 301.5935684271459 0.4 0.4 0.4 0.0 0.0 0.0 -277.0 2.96336237e-07 0.004877712984588716 +Body277 2.96336237e-07 0.004877712984588716 7.07980829e-06 3.592881141278991 5.830717080473449e-05 3.526339375615492 351.36151318117334 338.22374970629886 148.99798219413535 0.4 0.4 0.4 0.0 0.0 0.0 -278.0 2.96336237e-07 0.0015932248899463701 +Body278 2.96336237e-07 0.0015932248899463701 7.07980829e-06 1.1735556558966482 0.0004713092568289672 2.4420849935412474 124.5320238473141 142.44497982130548 348.8685090358063 0.4 0.4 0.4 0.0 0.0 0.0 -279.0 2.96336237e-07 0.00015438530451958966 +Body279 2.96336237e-07 0.00015438530451958966 7.07980829e-06 0.11371887826356362 0.001684106342533987 4.260438131801079 118.06852705903006 63.0824313989246 107.32296690173546 0.4 0.4 0.4 0.0 0.0 0.0 -280.0 2.96336237e-07 0.0004676223281528159 +Body280 2.96336237e-07 0.0004676223281528159 7.07980829e-06 0.3444465570995242 0.00017458176162088424 8.771994098916668 289.96532402399885 263.43716217781775 88.67844086604237 0.4 0.4 0.4 0.0 0.0 0.0 -281.0 2.96336237e-07 0.00030689082150139386 +Body281 2.96336237e-07 0.00030689082150139386 7.07980829e-06 0.2260531213065926 0.0001389546880067447 8.317900590662783 129.3093251303657 126.75033720369892 39.68818985068336 0.4 0.4 0.4 0.0 0.0 0.0 -282.0 2.96336237e-07 0.00016337000737253707 +Body282 2.96336237e-07 0.00016337000737253707 7.07980829e-06 0.12033693257351236 0.0007847664923863612 5.325462720215728 201.2719119400836 166.04592478545598 170.03779621767723 0.4 0.4 0.4 0.0 0.0 0.0 -283.0 2.96336237e-07 0.00035652831014559557 +Body283 2.96336237e-07 0.00035652831014559557 7.07980829e-06 0.26261566555913024 0.0014982151714328952 10.962654304958802 228.23841788964108 174.9792769157084 123.96613498843118 0.4 0.4 0.4 0.0 0.0 0.0 -284.0 2.96336237e-07 0.00029163914318341435 +Body284 2.96336237e-07 0.00029163914318341435 7.07980829e-06 0.21481886714390272 0.00021469580921765585 4.1290254174892365 66.5908804077143 125.64321519201816 166.41069852906648 0.4 0.4 0.4 0.0 0.0 0.0 -285.0 2.96336237e-07 0.002472326230018165 +Body285 2.96336237e-07 0.002472326230018165 7.07980829e-06 1.821094089584001 2.107474130330652e-06 3.7825140479516866 192.21174039003108 264.52980539740355 347.8641428782904 0.4 0.4 0.4 0.0 0.0 0.0 -286.0 2.96336237e-07 0.0001933634368959666 +Body286 2.96336237e-07 0.0001933634368959666 7.07980829e-06 0.14242983300399903 0.0009824500665722429 8.409381527228243 318.1547354292355 345.2908820248665 284.6050377786674 0.4 0.4 0.4 0.0 0.0 0.0 -287.0 2.96336237e-07 0.0006119929742245199 +Body287 2.96336237e-07 0.0006119929742245199 7.07980829e-06 0.45078872468178216 0.0013030763010814608 11.232159219303057 285.95416096202626 200.28696560521092 320.0404299094864 0.4 0.4 0.4 0.0 0.0 0.0 -288.0 2.96336237e-07 0.00042826795884411866 +Body288 2.96336237e-07 0.00042826795884411866 7.07980829e-06 0.31545846949312123 0.0009007784181869242 6.879509621691664 89.2096671407246 12.235493134100752 266.0479848260117 0.4 0.4 0.4 0.0 0.0 0.0 -289.0 2.96336237e-07 0.00017410820540282124 +Body289 2.96336237e-07 0.00017410820540282124 7.07980829e-06 0.12824659624503737 0.00014342148426163992 1.0703625616233259 46.538023129070226 107.4930627998194 300.56956795686585 0.4 0.4 0.4 0.0 0.0 0.0 -290.0 2.96336237e-07 0.00015114966336430465 +Body290 2.96336237e-07 0.00015114966336430465 7.07980829e-06 0.11133553301067563 2.766395057426916e-05 5.761202682615806 319.4801151987132 141.96380152116765 189.0460950989753 0.4 0.4 0.4 0.0 0.0 0.0 -291.0 2.96336237e-07 0.00021734923207295198 +Body291 2.96336237e-07 0.00021734923207295198 7.07980829e-06 0.16009756200368674 0.0013191852741356376 5.615188330135927 151.0271919560084 69.3646412761158 192.88078617531676 0.4 0.4 0.4 0.0 0.0 0.0 -292.0 2.96336237e-07 0.0011944697111478653 +Body292 2.96336237e-07 0.0011944697111478653 7.07980829e-06 0.8798360445912934 0.0006850212851320823 6.814346772167117 78.44571808758236 103.92010109199413 242.81886155862486 0.4 0.4 0.4 0.0 0.0 0.0 -293.0 2.96336237e-07 0.00015278398644398032 +Body293 2.96336237e-07 0.00015278398644398032 7.07980829e-06 0.11253936123719822 5.183610896181789e-05 4.053109511534237 236.27362376794815 258.6362917075659 310.0353562648458 0.4 0.4 0.4 0.0 0.0 0.0 -294.0 2.96336237e-07 0.00034896123301151255 +Body294 2.96336237e-07 0.00034896123301151255 7.07980829e-06 0.2570418220764263 6.0769476677815276e-05 5.713343744289857 299.9253937144354 189.19621914314894 101.59353256474273 0.4 0.4 0.4 0.0 0.0 0.0 -295.0 2.96336237e-07 0.00025478314682010465 +Body295 2.96336237e-07 0.00025478314682010465 7.07980829e-06 0.18767105941204867 0.0018449348227060555 1.2835484399431265 290.4682644970513 305.78831832496115 215.73128560603016 0.4 0.4 0.4 0.0 0.0 0.0 -296.0 2.96336237e-07 0.0006250814006742552 +Body296 2.96336237e-07 0.0006250814006742552 7.07980829e-06 0.46042954625304894 0.000596769292531275 2.5129034189216504 145.43775163382543 274.05520730065695 223.66497443462396 0.4 0.4 0.4 0.0 0.0 0.0 -297.0 2.96336237e-07 0.0002282198327816247 +Body297 2.96336237e-07 0.0002282198327816247 7.07980829e-06 0.16810475234144653 0.0017247737094638039 5.107324795408434 124.79937809811587 226.08434523725555 305.7830635332392 0.4 0.4 0.4 0.0 0.0 0.0 -298.0 2.96336237e-07 0.0009477301107050991 +Body298 2.96336237e-07 0.0009477301107050991 7.07980829e-06 0.6980897917800946 0.0001517768392752887 5.574014468921428 249.01242380384846 257.47120895883273 139.97390722263367 0.4 0.4 0.4 0.0 0.0 0.0 -299.0 2.96336237e-07 0.0031407431101470235 +Body299 2.96336237e-07 0.0031407431101470235 7.07980829e-06 2.3134441746987386 0.0015616804960815864 6.117489231243545 256.7324568865978 220.6785657320005 123.0674530910947 0.4 0.4 0.4 0.0 0.0 0.0 -300.0 2.96336237e-07 0.0004204361522249776 +Body300 2.96336237e-07 0.0004204361522249776 7.07980829e-06 0.30968962856439886 0.00195927594219296 6.306085925673815 312.00891473474553 73.99762506858666 216.5279233163698 0.4 0.4 0.4 0.0 0.0 0.0 -301.0 2.96336237e-07 0.0009942157315783549 +Body301 2.96336237e-07 0.0009942157315783549 7.07980829e-06 0.7323306975291335 0.00021855504650573836 8.368350519218684 237.27561034714356 272.3964709349121 286.9144825005913 0.4 0.4 0.4 0.0 0.0 0.0 -302.0 2.96336237e-07 0.00018683411530759256 +Body302 2.96336237e-07 0.00018683411530759256 7.07980829e-06 0.1376203912688386 0.0010315807571819164 5.2755550278547485 44.12983056103787 223.37841130869015 128.86001971717735 0.4 0.4 0.4 0.0 0.0 0.0 -303.0 2.96336237e-07 0.00025133191919356077 +Body303 2.96336237e-07 0.00025133191919356077 7.07980829e-06 0.18512891503150636 0.0009331929516210252 6.536562647357183 291.76734381546066 70.66568841443045 126.26321054382733 0.4 0.4 0.4 0.0 0.0 0.0 -304.0 2.96336237e-07 0.00019500768911756772 +Body304 2.96336237e-07 0.00019500768911756772 7.07980829e-06 0.14364097495047312 0.00039209244628038144 9.848623859718383 245.89557619047113 117.87493794887448 338.12840463525515 0.4 0.4 0.4 0.0 0.0 0.0 -305.0 2.96336237e-07 0.0001625383298355381 +Body305 2.96336237e-07 0.0001625383298355381 7.07980829e-06 0.11972432610245717 0.0011745754487988123 4.387084176328411 106.0618658508988 80.5444882525448 84.64174187568527 0.4 0.4 0.4 0.0 0.0 0.0 -306.0 2.96336237e-07 0.00023586028260954013 +Body306 2.96336237e-07 0.00023586028260954013 7.07980829e-06 0.1737326415149872 0.001671319316829762 5.501673418983377 348.95321631475684 200.94418904994996 330.4440114985243 0.4 0.4 0.4 0.0 0.0 0.0 -307.0 2.96336237e-07 0.0003365884691163788 +Body307 2.96336237e-07 0.0003365884691163788 7.07980829e-06 0.2479281513449222 0.0014193080584742374 11.094828295285224 31.371307509920015 240.58423164611085 165.28222019489715 0.4 0.4 0.4 0.0 0.0 0.0 -308.0 2.96336237e-07 0.00023571497841569307 +Body308 2.96336237e-07 0.00023571497841569307 7.07980829e-06 0.17362561170419857 0.0005768421886276322 5.284489567307279 98.85486595751904 13.212732070412448 230.02980695324322 0.4 0.4 0.4 0.0 0.0 0.0 -309.0 2.96336237e-07 0.0001801084671471839 +Body309 2.96336237e-07 0.0001801084671471839 7.07980829e-06 0.13266633708099312 0.0009177789908346947 5.324485126624002 148.3631841889071 267.83910430205896 59.843201690272075 0.4 0.4 0.4 0.0 0.0 0.0 -310.0 2.96336237e-07 0.004922591836343339 +Body310 2.96336237e-07 0.004922591836343339 7.07980829e-06 3.625938514810581 0.0008037249965389214 1.863877400137279 347.99161053606065 214.8189761659566 173.46818152084595 0.4 0.4 0.4 0.0 0.0 0.0 -311.0 2.96336237e-07 0.001606405521600504 +Body311 2.96336237e-07 0.001606405521600504 7.07980829e-06 1.183264395022937 0.00025039709043080626 11.41113625586248 176.51998858123935 140.35911454474774 147.38759836239387 0.4 0.4 0.4 0.0 0.0 0.0 -312.0 2.96336237e-07 0.00022953580689701405 +Body312 2.96336237e-07 0.00022953580689701405 7.07980829e-06 0.1690740874779198 0.00017995036684982085 2.5624472975864214 93.69670004832261 5.072707264965885 194.42820284682057 0.4 0.4 0.4 0.0 0.0 0.0 -313.0 2.96336237e-07 0.0004560010949555674 +Body313 2.96336237e-07 0.0004560010949555674 7.07980829e-06 0.3358864573714915 0.0017281502204120312 5.808809764521844 316.45299102623267 192.88920395505212 19.031504976546625 0.4 0.4 0.4 0.0 0.0 0.0 -314.0 2.96336237e-07 0.00020589517649069033 +Body314 2.96336237e-07 0.00020589517649069033 7.07980829e-06 0.15166060385902067 0.0014460419115430905 8.580387771814594 2.027448348404554 61.39523640794668 310.8259013460574 0.4 0.4 0.4 0.0 0.0 0.0 -315.0 2.96336237e-07 0.0017103724786315462 +Body315 2.96336237e-07 0.0017103724786315462 7.07980829e-06 1.2598455551718035 0.001040160606823539 8.866568986800155 201.9511825476413 25.06154164547849 167.52608336931982 0.4 0.4 0.4 0.0 0.0 0.0 -316.0 2.96336237e-07 0.00036481350926962107 +Body316 2.96336237e-07 0.00036481350926962107 7.07980829e-06 0.26871847148036926 6.7596178272466e-05 10.264244616216553 96.8748429708464 157.16467008976218 200.80623110746035 0.4 0.4 0.4 0.0 0.0 0.0 -317.0 2.96336237e-07 0.0005677970507966551 +Body317 2.96336237e-07 0.0005677970507966551 7.07980829e-06 0.41823439024121756 0.0016492348678305217 3.985448712266753 141.35422552657585 324.0916041102787 22.20933645695202 0.4 0.4 0.4 0.0 0.0 0.0 -318.0 2.96336237e-07 0.00017869361209387716 +Body318 2.96336237e-07 0.00017869361209387716 7.07980829e-06 0.13162416710200292 0.0011439008076636614 3.2407253494579034 190.01218772119614 44.20946646779479 2.004533467122998 0.4 0.4 0.4 0.0 0.0 0.0 -319.0 2.96336237e-07 0.00015228572269447034 +Body319 2.96336237e-07 0.00015228572269447034 7.07980829e-06 0.11217234447449538 0.0009168186738675861 2.8638522507923314 93.22615350753611 33.85431327929882 239.03387997148917 0.4 0.4 0.4 0.0 0.0 0.0 -320.0 2.96336237e-07 0.0002228749297341271 +Body320 2.96336237e-07 0.0002228749297341271 7.07980829e-06 0.1641677430459031 0.0014250007569514766 8.995787444712223 6.360744237560372 246.00127166536984 117.23024488217823 0.4 0.4 0.4 0.0 0.0 0.0 -321.0 2.96336237e-07 0.00016657687495983734 +Body321 2.96336237e-07 0.00016657687495983734 7.07980829e-06 0.12269908346541473 0.0002722641518232161 2.5361455280784493 294.747187083813 253.91062671694937 21.543427585789953 0.4 0.4 0.4 0.0 0.0 0.0 -322.0 2.96336237e-07 0.0003119834065271981 +Body322 2.96336237e-07 0.0003119834065271981 7.07980829e-06 0.22980427533254327 0.0002561538067768338 7.283682147132967 351.50642528622967 353.05050444668393 37.915945343913684 0.4 0.4 0.4 0.0 0.0 0.0 -323.0 2.96336237e-07 0.0003636327820351304 +Body323 2.96336237e-07 0.0003636327820351304 7.07980829e-06 0.2678487580250677 0.00030140848800125055 7.394557096887053 269.6118768787643 66.8992901686776 271.65173432137044 0.4 0.4 0.4 0.0 0.0 0.0 -324.0 2.96336237e-07 0.00015848034184009056 +Body324 2.96336237e-07 0.00015848034184009056 7.07980829e-06 0.11673524728899572 0.0019276867342928185 8.11274732856384 303.66016858902975 82.72816698207556 313.66739660789585 0.4 0.4 0.4 0.0 0.0 0.0 -325.0 2.96336237e-07 0.00027836204038314506 +Body325 2.96336237e-07 0.00027836204038314506 7.07980829e-06 0.2050390682068539 0.0007631400667376777 10.463799400784199 28.670451511576793 91.11735677392642 254.85925697503265 0.4 0.4 0.4 0.0 0.0 0.0 -326.0 2.96336237e-07 0.00026836168207477904 +Body326 2.96336237e-07 0.00026836168207477904 7.07980829e-06 0.19767289088447285 0.0016214214428952305 8.268846910383754 222.17426119100602 196.7982012673432 282.25263254954075 0.4 0.4 0.4 0.0 0.0 0.0 -327.0 2.96336237e-07 0.0003589316062721598 +Body327 2.96336237e-07 0.0003589316062721598 7.07980829e-06 0.26438591267234157 7.76907304503399e-06 5.047413034763888 173.2690936517081 28.344089675206597 291.5460190814182 0.4 0.4 0.4 0.0 0.0 0.0 -328.0 2.96336237e-07 0.00014822536550915556 +Body328 2.96336237e-07 0.00014822536550915556 7.07980829e-06 0.10918152053629596 0.0010554718431630332 5.294051241865372 280.9870442314642 243.25347719092647 275.98182391301384 0.4 0.4 0.4 0.0 0.0 0.0 -329.0 2.96336237e-07 0.0006505027268334232 +Body329 2.96336237e-07 0.0006505027268334232 7.07980829e-06 0.47915467494187414 0.0006517479027116303 7.292113973652021 5.488359739149935 185.63065345666627 225.7335982038429 0.4 0.4 0.4 0.0 0.0 0.0 -330.0 2.96336237e-07 0.0007169610725077651 +Body330 2.96336237e-07 0.0007169610725077651 7.07980829e-06 0.528107316806692 0.0012695547737103553 2.286365445938052 264.56567615972165 94.99106094678771 139.68443412635122 0.4 0.4 0.4 0.0 0.0 0.0 -331.0 2.96336237e-07 0.00014290244996673993 +Body331 2.96336237e-07 0.00014290244996673993 7.07980829e-06 0.1052607070465743 0.0011677205977731777 0.8176499307396407 273.11035397112664 153.26705683902466 305.48002207509745 0.4 0.4 0.4 0.0 0.0 0.0 -332.0 2.96336237e-07 0.0027107575201529735 +Body332 2.96336237e-07 0.0027107575201529735 7.07980829e-06 1.9967205129760297 0.0002174696896302886 4.548246093501465 31.607783203459267 55.72124572358127 62.8218389960747 0.4 0.4 0.4 0.0 0.0 0.0 -333.0 2.96336237e-07 0.00021889530790215867 +Body333 2.96336237e-07 0.00021889530790215867 7.07980829e-06 0.16123638806977442 0.001444705141822196 9.609484812903395 31.464950213756925 349.80740372868604 234.47574007627532 0.4 0.4 0.4 0.0 0.0 0.0 -334.0 2.96336237e-07 0.0011772666033075512 +Body334 2.96336237e-07 0.0011772666033075512 7.07980829e-06 0.8671643843427015 0.0017419436543695752 7.697186841151445 327.70006686631075 245.93846763390636 237.56052707500405 0.4 0.4 0.4 0.0 0.0 0.0 -335.0 2.96336237e-07 0.00014321614347240008 +Body335 2.96336237e-07 0.00014321614347240008 7.07980829e-06 0.10549177096611795 0.0013551666337921638 5.4536982339343565 10.92195396327973 165.29999635983054 27.633395340256648 0.4 0.4 0.4 0.0 0.0 0.0 -336.0 2.96336237e-07 0.00029889604796622495 +Body336 2.96336237e-07 0.00029889604796622495 7.07980829e-06 0.2201642403588903 0.0013608821634157593 8.38274482236048 46.71017873691516 210.61788270484556 166.69795474367763 0.4 0.4 0.4 0.0 0.0 0.0 -337.0 2.96336237e-07 0.00018415554172083735 +Body337 2.96336237e-07 0.00018415554172083735 7.07980829e-06 0.13564737716247616 0.0003179485550799256 8.136125699171172 152.81408877925242 209.80742536198633 130.40397707101712 0.4 0.4 0.4 0.0 0.0 0.0 -338.0 2.96336237e-07 0.003543703727191604 +Body338 2.96336237e-07 0.003543703727191604 7.07980829e-06 2.6102614753951827 0.0017753297686231334 8.620159985630853 94.67477537826696 273.860740239627 146.26748120005496 0.4 0.4 0.4 0.0 0.0 0.0 -339.0 2.96336237e-07 0.0008243326122071452 +Body339 2.96336237e-07 0.0008243326122071452 7.07980829e-06 0.6071962630638525 0.0007381654194420349 1.990384843054466 310.9770511114949 94.0747249242464 252.80656511785244 0.4 0.4 0.4 0.0 0.0 0.0 -340.0 2.96336237e-07 0.005008804403226113 +Body340 2.96336237e-07 0.005008804403226113 7.07980829e-06 3.6894419449371676 0.0005994918878210641 9.959226775698019 322.9608823547301 50.78959164496634 295.6703866824421 0.4 0.4 0.4 0.0 0.0 0.0 -341.0 2.96336237e-07 0.0001503613961053045 +Body341 2.96336237e-07 0.0001503613961053045 7.07980829e-06 0.11075490217444199 0.0015504100076306501 1.6675619240329276 159.33523472053665 29.682478042780815 205.71814487652136 0.4 0.4 0.4 0.0 0.0 0.0 -342.0 2.96336237e-07 0.00013732826243335652 +Body342 2.96336237e-07 0.00013732826243335652 7.07980829e-06 0.10115480878443323 0.0015317213079232641 10.458820129694365 118.01043838028095 102.64908626926156 336.57718276865387 0.4 0.4 0.4 0.0 0.0 0.0 -343.0 2.96336237e-07 0.001101513135339633 +Body343 2.96336237e-07 0.001101513135339633 7.07980829e-06 0.8113650358963385 0.0006358631971043168 8.635102019265844 290.0593797645032 124.67027381809105 357.8987600908822 0.4 0.4 0.4 0.0 0.0 0.0 -344.0 2.96336237e-07 0.0002496437530839839 +Body344 2.96336237e-07 0.0002496437530839839 7.07980829e-06 0.18388542649546316 0.0017114415848874511 6.152672513669821 227.02003856771577 207.80971255570097 306.4507853203065 0.4 0.4 0.4 0.0 0.0 0.0 -345.0 2.96336237e-07 0.000786402919866365 +Body345 2.96336237e-07 0.000786402919866365 7.07980829e-06 0.5792575801736796 0.001996656772695265 2.4412597448951736 226.3625546241884 331.64674246663526 36.1478697838596 0.4 0.4 0.4 0.0 0.0 0.0 -346.0 2.96336237e-07 0.0003388719406716841 +Body346 2.96336237e-07 0.0003388719406716841 7.07980829e-06 0.24961013671667837 0.0017937088367951564 9.811900318991631 64.85290027540626 118.22661839313105 62.03376070937007 0.4 0.4 0.4 0.0 0.0 0.0 -347.0 2.96336237e-07 0.000426447460349051 +Body347 2.96336237e-07 0.000426447460349051 7.07980829e-06 0.314117506067983 0.00015224476174463102 8.252536131358141 260.43549278392493 32.70366712445605 190.55803156205212 0.4 0.4 0.4 0.0 0.0 0.0 -348.0 2.96336237e-07 0.0006444195357616657 +Body348 2.96336237e-07 0.0006444195357616657 7.07980829e-06 0.47467384908156435 0.0010876343271783054 6.514014864428936 310.5233342327956 343.9574292034065 199.19111614640337 0.4 0.4 0.4 0.0 0.0 0.0 -349.0 2.96336237e-07 0.00054226433855886 +Body349 2.96336237e-07 0.00054226433855886 7.07980829e-06 0.39942721553152877 0.0017981619784875422 10.227345064991548 37.37523364182289 202.41739212372974 269.0861108570201 0.4 0.4 0.4 0.0 0.0 0.0 -350.0 2.96336237e-07 0.00047954498951542 +Body350 2.96336237e-07 0.00047954498951542 7.07980829e-06 0.35322868620365555 0.0016492335376706317 0.49337664309798085 283.7971089038009 95.5833514086352 71.56770760930895 0.4 0.4 0.4 0.0 0.0 0.0 -351.0 2.96336237e-07 0.00028009747225710857 +Body351 2.96336237e-07 0.00028009747225710857 7.07980829e-06 0.20631737229560168 0.0010316139909898982 1.2686189308547466 86.55109564714702 214.38460242228032 104.33146341509861 0.4 0.4 0.4 0.0 0.0 0.0 -352.0 2.96336237e-07 0.00025623404455162827 +Body352 2.96336237e-07 0.00025623404455162827 7.07980829e-06 0.18873977811566775 0.0006452132368777103 0.6050579146050421 157.43781147686246 2.5850389604214 159.43765898916868 0.4 0.4 0.4 0.0 0.0 0.0 -353.0 2.96336237e-07 0.0004058236215884254 +Body353 2.96336237e-07 0.0004058236215884254 7.07980829e-06 0.29892616504854447 1.3191328167835538e-05 1.9784258448731697 189.94678909317844 33.557846185365456 293.99534737705994 0.4 0.4 0.4 0.0 0.0 0.0 -354.0 2.96336237e-07 0.00019280291180421137 +Body354 2.96336237e-07 0.00019280291180421137 7.07980829e-06 0.14201695507580933 0.001647108671401029 3.5640591075394887 135.654713397442 47.85588862949121 320.6811997480477 0.4 0.4 0.4 0.0 0.0 0.0 -355.0 2.96336237e-07 0.004773934278971867 +Body355 2.96336237e-07 0.004773934278971867 7.07980829e-06 3.516438645491477 0.0010761216903622214 3.221566589364664 37.186866202379946 309.6540427909378 16.17630653640015 0.4 0.4 0.4 0.0 0.0 0.0 -356.0 2.96336237e-07 0.0011590159350373256 +Body356 2.96336237e-07 0.0011590159350373256 7.07980829e-06 0.8537211001537772 0.0017587197664019573 7.585968540023092 278.7934262814676 99.53015751946636 352.88619866914877 0.4 0.4 0.4 0.0 0.0 0.0 -357.0 2.96336237e-07 0.0017832929898511443 +Body357 2.96336237e-07 0.0017832929898511443 7.07980829e-06 1.3135581722120224 3.17502276408299e-05 11.030328628464801 98.53532708337863 56.9975562596022 33.71040048985311 0.4 0.4 0.4 0.0 0.0 0.0 -358.0 2.96336237e-07 0.00039697861826237725 +Body358 2.96336237e-07 0.00039697861826237725 7.07980829e-06 0.29241101220024956 0.0008458555454990808 10.58777976211051 239.12203417314623 133.0689566770032 115.70577915610316 0.4 0.4 0.4 0.0 0.0 0.0 -359.0 2.96336237e-07 0.00029557716051867804 +Body359 2.96336237e-07 0.00029557716051867804 7.07980829e-06 0.21771957660807217 0.0010392643981527155 8.03170940349945 288.9256328269013 67.78208540280802 342.17504476494315 0.4 0.4 0.4 0.0 0.0 0.0 -360.0 2.96336237e-07 0.0014833560516777343 +Body360 2.96336237e-07 0.0014833560516777343 7.07980829e-06 1.0926272211410928 0.0006092108167580567 2.2096414041046692 311.3662182072021 291.7919905103377 304.97098144688493 0.4 0.4 0.4 0.0 0.0 0.0 -361.0 2.96336237e-07 0.000993445612055267 +Body361 2.96336237e-07 0.000993445612055267 7.07980829e-06 0.7317634341580055 0.0014006123392814103 2.1919067330947506 120.01996203370337 128.74716731340266 5.827785850564331 0.4 0.4 0.4 0.0 0.0 0.0 -362.0 2.96336237e-07 0.0005463426586983324 +Body362 2.96336237e-07 0.0005463426586983324 7.07980829e-06 0.40243127082619357 0.0011965762956253783 10.898821474898226 281.91463076199005 29.575440192365903 214.20508522622518 0.4 0.4 0.4 0.0 0.0 0.0 -363.0 2.96336237e-07 0.0003881791589043536 +Body363 2.96336237e-07 0.0003881791589043536 7.07980829e-06 0.2859294066443704 2.900497725161311e-05 9.127483813809095 249.54173239568317 90.63367169371816 266.5485228009919 0.4 0.4 0.4 0.0 0.0 0.0 -364.0 2.96336237e-07 0.0013968631201863857 +Body364 2.96336237e-07 0.0013968631201863857 7.07980829e-06 1.028917276871913 0.001603944913241954 3.0960547395036917 11.620252615054142 44.62761359844495 198.88658277447743 0.4 0.4 0.4 0.0 0.0 0.0 -365.0 2.96336237e-07 0.0002630194417645936 +Body365 2.96336237e-07 0.0002630194417645936 7.07980829e-06 0.1937378429381731 0.000747167760463149 7.1657186191455775 228.24188046622197 277.72286896705293 91.13011664684869 0.4 0.4 0.4 0.0 0.0 0.0 -366.0 2.96336237e-07 0.0002749926323670147 +Body366 2.96336237e-07 0.0002749926323670147 7.07980829e-06 0.2025571914427479 0.00133596025404816 4.503723068347708 73.89042601654641 43.869574691929124 124.89440067010928 0.4 0.4 0.4 0.0 0.0 0.0 -367.0 2.96336237e-07 0.00034802520380482264 +Body367 2.96336237e-07 0.00034802520380482264 7.07980829e-06 0.25635235106920873 0.0003990604853807404 4.721069759511323 289.9667438551355 89.90143863984306 308.2229017081904 0.4 0.4 0.4 0.0 0.0 0.0 -368.0 2.96336237e-07 0.00036443935286634496 +Body368 2.96336237e-07 0.00036443935286634496 7.07980829e-06 0.26844287111407733 0.0008485077286316471 6.764038727594673 253.3611698186918 150.74732229379677 328.9769827782936 0.4 0.4 0.4 0.0 0.0 0.0 -369.0 2.96336237e-07 0.0008469945776758163 +Body369 2.96336237e-07 0.0008469945776758163 7.07980829e-06 0.6238888705653514 0.0001333427676397332 4.1474959515146415 267.71710049416396 150.87718065006715 119.97373879602044 0.4 0.4 0.4 0.0 0.0 0.0 -370.0 2.96336237e-07 0.0002799708966091264 +Body370 2.96336237e-07 0.0002799708966091264 7.07980829e-06 0.20622413776949955 0.0005428172476920105 6.168519622305448 96.33658992043293 129.60600999117443 297.12149196391545 0.4 0.4 0.4 0.0 0.0 0.0 -371.0 2.96336237e-07 0.0005421356999893545 +Body371 2.96336237e-07 0.0005421356999893545 7.07980829e-06 0.3993324614752984 0.0009919338011116921 4.745092400309358 295.19339993138095 291.6130480807459 203.70027399593255 0.4 0.4 0.4 0.0 0.0 0.0 -372.0 2.96336237e-07 0.0006294503606226284 +Body372 2.96336237e-07 0.0006294503606226284 7.07980829e-06 0.46364768431387976 0.00041641717513561904 1.934529957130357 350.8676271559399 177.52429758946244 62.301164228997536 0.4 0.4 0.4 0.0 0.0 0.0 -373.0 2.96336237e-07 0.0002809800292278342 +Body373 2.96336237e-07 0.0002809800292278342 7.07980829e-06 0.20696745611690134 0.0008475677763260917 0.46568355676114265 14.900153214321696 190.0523015188567 319.6113375878809 0.4 0.4 0.4 0.0 0.0 0.0 -374.0 2.96336237e-07 0.0018166312625594561 +Body374 2.96336237e-07 0.0018166312625594561 7.07980829e-06 1.3381148551646602 0.0010624355759753792 6.933338705363457 257.43788022187965 295.18471400586776 295.1190325206985 0.4 0.4 0.4 0.0 0.0 0.0 -375.0 2.96336237e-07 0.00016392755580813283 +Body375 2.96336237e-07 0.00016392755580813283 7.07980829e-06 0.12074761792255417 0.00023695768245123492 3.1581589183258623 339.1487157944927 83.23577626586008 345.89695591969786 0.4 0.4 0.4 0.0 0.0 0.0 -376.0 2.96336237e-07 0.00029571793986295827 +Body376 2.96336237e-07 0.00029571793986295827 7.07980829e-06 0.2178232734538571 0.0002948999251832698 0.362705770588533 213.82508431076934 242.2651748717798 83.27447892616063 0.4 0.4 0.4 0.0 0.0 0.0 -377.0 2.96336237e-07 0.00020811537789423138 +Body377 2.96336237e-07 0.00020811537789423138 7.07980829e-06 0.15329598498493502 0.0018051616135915112 3.106896506398628 178.3112067859215 63.88472884866744 1.3270972588545527 0.4 0.4 0.4 0.0 0.0 0.0 -378.0 2.96336237e-07 0.0001559380129035177 +Body378 2.96336237e-07 0.0001559380129035177 7.07980829e-06 0.11486258981201816 0.0017844542058524017 6.130540321897014 288.19324195157367 344.28272044710786 210.06820283808818 0.4 0.4 0.4 0.0 0.0 0.0 -379.0 2.96336237e-07 0.0012589113538808599 +Body379 2.96336237e-07 0.0012589113538808599 7.07980829e-06 0.9273032005350614 0.0007950274671429485 0.7443682928155341 206.7513766110101 220.9240832277189 190.998462308951 0.4 0.4 0.4 0.0 0.0 0.0 -380.0 2.96336237e-07 0.0021256371126569047 +Body380 2.96336237e-07 0.0021256371126569047 7.07980829e-06 1.5657258882180163 1.9263879203954986e-05 5.128316556491018 239.8438686641544 174.44658062206983 247.6331818960163 0.4 0.4 0.4 0.0 0.0 0.0 -381.0 2.96336237e-07 0.000977305599748203 +Body381 2.96336237e-07 0.000977305599748203 7.07980829e-06 0.7198748408723243 0.0010168747207552594 6.687759662707231 346.7619173455041 149.905703053694 34.41280092344825 0.4 0.4 0.4 0.0 0.0 0.0 -382.0 2.96336237e-07 0.0008650682748260707 +Body382 2.96336237e-07 0.0008650682748260707 7.07980829e-06 0.6372017993599538 0.0006067227825775598 3.8110465174551575 283.42141873127645 296.75010671228034 236.75772996243154 0.4 0.4 0.4 0.0 0.0 0.0 -383.0 2.96336237e-07 0.0004166997753732313 +Body383 2.96336237e-07 0.0004166997753732313 7.07980829e-06 0.3069374457340919 0.0012556587656461812 7.028090843879932 157.07945315433642 109.64383603363065 170.14986474214172 0.4 0.4 0.4 0.0 0.0 0.0 -384.0 2.96336237e-07 0.0012888125307341934 +Body384 2.96336237e-07 0.0012888125307341934 7.07980829e-06 0.9493281484477046 0.0011246500645733703 1.0945156676865877 40.94588274454956 313.0368841398567 91.0294850281977 0.4 0.4 0.4 0.0 0.0 0.0 -385.0 2.96336237e-07 0.0004170975464251864 +Body385 2.96336237e-07 0.0004170975464251864 7.07980829e-06 0.3072304404460873 0.0005324736339296211 8.850334116104705 277.3659221161124 9.697380193441212 64.32137229646291 0.4 0.4 0.4 0.0 0.0 0.0 -386.0 2.96336237e-07 0.0006424192463846406 +Body386 2.96336237e-07 0.0006424192463846406 7.07980829e-06 0.4732004532498454 0.0009767299868219384 4.560220727189972 141.0032517869996 198.6227331147623 95.44242731540014 0.4 0.4 0.4 0.0 0.0 0.0 -387.0 2.96336237e-07 0.00029749720154096163 +Body387 2.96336237e-07 0.00029749720154096163 7.07980829e-06 0.21913386219667502 3.8428933346828534e-05 0.4566407574340587 163.58034265489712 30.086812659347586 336.68557772655623 0.4 0.4 0.4 0.0 0.0 0.0 -388.0 2.96336237e-07 0.00037333395328135164 +Body388 2.96336237e-07 0.00037333395328135164 7.07980829e-06 0.2749945567485662 0.000790150080386718 1.8156192287506017 43.99805042163406 347.86839033496585 214.04308309953382 0.4 0.4 0.4 0.0 0.0 0.0 -389.0 2.96336237e-07 0.004147011336074886 +Body389 2.96336237e-07 0.004147011336074886 7.07980829e-06 3.054652635185745 0.0014026881427117554 10.790384698103471 279.67254068824695 225.0250301683067 97.97655801733977 0.4 0.4 0.4 0.0 0.0 0.0 -390.0 2.96336237e-07 0.00033661360847250473 +Body390 2.96336237e-07 0.00033661360847250473 7.07980829e-06 0.24794666877692653 0.0007621219491829389 9.595112059936255 106.89981329122423 248.35330221528335 176.9399293058729 0.4 0.4 0.4 0.0 0.0 0.0 -391.0 2.96336237e-07 0.0005946763114846585 +Body391 2.96336237e-07 0.0005946763114846585 7.07980829e-06 0.4380334208776199 0.000334786490861461 7.27688899569563 346.55013797445457 314.40373096079713 182.33788039799467 0.4 0.4 0.4 0.0 0.0 0.0 -392.0 2.96336237e-07 0.0021357003856353578 +Body392 2.96336237e-07 0.0021357003856353578 7.07980829e-06 1.573138407941514 0.0002122062437119598 5.7992283642476155 199.8708344637552 185.03678107510362 197.54499438742337 0.4 0.4 0.4 0.0 0.0 0.0 -393.0 2.96336237e-07 0.0008881507473098536 +Body393 2.96336237e-07 0.0008881507473098536 7.07980829e-06 0.6542041486870058 0.001082481934100155 2.7982249640470442 119.9027947481912 170.5019847492018 291.70022422658934 0.4 0.4 0.4 0.0 0.0 0.0 -394.0 2.96336237e-07 0.0007244470355779672 +Body394 2.96336237e-07 0.0007244470355779672 7.07980829e-06 0.5336214123724252 9.630470210241686e-05 5.950031157607894 126.92938559220951 32.644368454661134 350.5658369759275 0.4 0.4 0.4 0.0 0.0 0.0 -395.0 2.96336237e-07 0.0006653067544630493 +Body395 2.96336237e-07 0.0006653067544630493 7.07980829e-06 0.4900591934843774 0.0019737014910964673 0.8943016802588735 272.8273238811659 55.953417510337296 50.223313961578874 0.4 0.4 0.4 0.0 0.0 0.0 -396.0 2.96336237e-07 0.0007161433044466716 +Body396 2.96336237e-07 0.0007161433044466716 7.07980829e-06 0.5275049559351265 0.0005776380861563799 2.1625712495313376 323.42339680121006 295.9412274627063 312.5321427083825 0.4 0.4 0.4 0.0 0.0 0.0 -397.0 2.96336237e-07 0.00019237855607078444 +Body397 2.96336237e-07 0.00019237855607078444 7.07980829e-06 0.14170437831767688 0.001235027961422897 8.862824259166967 187.64716698671413 265.10784930422506 313.1562873499811 0.4 0.4 0.4 0.0 0.0 0.0 -398.0 2.96336237e-07 0.0002694653837463263 +Body398 2.96336237e-07 0.0002694653837463263 7.07980829e-06 0.19848586797718606 0.0001843567188453995 7.817351154193235 10.9747308973224 84.04994685907948 167.64074726542177 0.4 0.4 0.4 0.0 0.0 0.0 -399.0 2.96336237e-07 0.0005559092662315294 +Body399 2.96336237e-07 0.0005559092662315294 7.07980829e-06 0.40947795108406015 0.0015731368864208269 7.301942896898631 233.93068498816038 96.85691573796926 228.57420704043378 0.4 0.4 0.4 0.0 0.0 0.0 -400.0 2.96336237e-07 0.0005648674168838437 +Body400 2.96336237e-07 0.0005648674168838437 7.07980829e-06 0.4160764472729765 0.0008511691534231788 11.02211477235316 288.5365659185221 243.18693500084063 147.5758032364719 0.4 0.4 0.4 0.0 0.0 0.0 -401.0 2.96336237e-07 0.0003563429630533414 +Body401 2.96336237e-07 0.0003563429630533414 7.07980829e-06 0.2624791404961643 0.0006910428723700232 1.6815715845642314 345.6424607017423 5.893839931298697 6.255682574253842 0.4 0.4 0.4 0.0 0.0 0.0 -402.0 2.96336237e-07 0.00016104257317250704 +Body402 2.96336237e-07 0.00016104257317250704 7.07980829e-06 0.11862256469838804 0.0010496344692817025 4.916447327909487 302.6523312870475 77.2459630669138 352.07919775440547 0.4 0.4 0.4 0.0 0.0 0.0 -403.0 2.96336237e-07 0.0005296002136298966 +Body403 2.96336237e-07 0.0005296002136298966 7.07980829e-06 0.39009893078582225 0.00035129161820691924 6.677196188784857 287.91001686761524 41.031404630978 88.87616473052356 0.4 0.4 0.4 0.0 0.0 0.0 -404.0 2.96336237e-07 0.000680609470172004 +Body404 2.96336237e-07 0.000680609470172004 7.07980829e-06 0.501331041347253 0.001425845881592816 3.2094418329058256 221.46587179584483 243.95606935186083 110.57964936968159 0.4 0.4 0.4 0.0 0.0 0.0 -405.0 2.96336237e-07 0.00036071081000078566 +Body405 2.96336237e-07 0.00036071081000078566 7.07980829e-06 0.26569645873014985 0.0005837248865675421 4.246745909239596 68.65912803601522 184.39073957774 328.5406871742207 0.4 0.4 0.4 0.0 0.0 0.0 -406.0 2.96336237e-07 0.0012218677490596584 +Body406 2.96336237e-07 0.0012218677490596584 7.07980829e-06 0.9000172020378971 0.001653325602643437 0.4316924490710903 243.42814614167057 36.062607930561725 200.57349259723486 0.4 0.4 0.4 0.0 0.0 0.0 -407.0 2.96336237e-07 0.00022469531896527966 +Body407 2.96336237e-07 0.00022469531896527966 7.07980829e-06 0.16550862598818775 0.0006231907034263553 10.828347490927952 215.92068451736867 172.60595676103023 39.75954075681499 0.4 0.4 0.4 0.0 0.0 0.0 -408.0 2.96336237e-07 0.00030192373602011584 +Body408 2.96336237e-07 0.00030192373602011584 7.07980829e-06 0.22239440915825795 0.000472568455432349 2.060980747075354 229.523789056114 199.61364747622306 342.653951976515 0.4 0.4 0.4 0.0 0.0 0.0 -409.0 2.96336237e-07 0.0007191942353202133 +Body409 2.96336237e-07 0.0007191942353202133 7.07980829e-06 0.5297522451941558 0.0019716610411549614 2.285858920711909 84.27479164545005 103.59991024063056 23.961613159888778 0.4 0.4 0.4 0.0 0.0 0.0 -410.0 2.96336237e-07 0.00025605536434479824 +Body410 2.96336237e-07 0.00025605536434479824 7.07980829e-06 0.18860816382276702 0.001783512692209141 9.452149479129856 260.4969228407456 340.862082769848 299.53745307977607 0.4 0.4 0.4 0.0 0.0 0.0 -411.0 2.96336237e-07 0.0014137481967857802 +Body411 2.96336237e-07 0.0014137481967857802 7.07980829e-06 1.0413546780627359 0.0006675714211968135 6.751304877817071 197.4393793507263 34.63396263565147 17.886456900372362 0.4 0.4 0.4 0.0 0.0 0.0 -412.0 2.96336237e-07 0.00018851276799694233 +Body412 2.96336237e-07 0.00018851276799694233 7.07980829e-06 0.13885687230193297 0.0005099067038711923 3.4579373385270666 97.37519886197563 161.24570001991358 88.00320543674819 0.4 0.4 0.4 0.0 0.0 0.0 -413.0 2.96336237e-07 0.00022744268097446977 +Body413 2.96336237e-07 0.00022744268097446977 7.07980829e-06 0.16753230905077734 0.001439434713915598 1.488957242480834 330.64136140921306 54.28403635089244 292.3523663851032 0.4 0.4 0.4 0.0 0.0 0.0 -414.0 2.96336237e-07 0.0006898514209958568 +Body414 2.96336237e-07 0.0006898514209958568 7.07980829e-06 0.5081385822846886 0.0010638026176632393 0.11968083851335284 160.7138589091659 25.382795589912288 25.782727478421545 0.4 0.4 0.4 0.0 0.0 0.0 -415.0 2.96336237e-07 0.0008266249233141564 +Body415 2.96336237e-07 0.0008266249233141564 7.07980829e-06 0.6088847595728408 0.00014688882663911135 8.1996019102165 246.03901024919443 68.98131066613524 288.1999591902379 0.4 0.4 0.4 0.0 0.0 0.0 -416.0 2.96336237e-07 0.0004534921194170814 +Body416 2.96336237e-07 0.0004534921194170814 7.07980829e-06 0.33403836771868944 0.0005142348550326742 7.8216933915030875 248.20221654965226 331.99676605650495 244.64201903455245 0.4 0.4 0.4 0.0 0.0 0.0 -417.0 2.96336237e-07 0.000424897105060519 +Body417 2.96336237e-07 0.000424897105060519 7.07980829e-06 0.31297552778921833 0.00029497534822830286 0.15310919652858854 140.46973581083438 24.65529286461425 351.40407552316753 0.4 0.4 0.4 0.0 0.0 0.0 -418.0 2.96336237e-07 0.0009879275456483537 +Body418 2.96336237e-07 0.0009879275456483537 7.07980829e-06 0.7276988742315883 0.0011029900349679963 10.864568129667113 208.5430096157955 9.10233088314665 317.21898012234874 0.4 0.4 0.4 0.0 0.0 0.0 -419.0 2.96336237e-07 0.0015502587131062853 +Body419 2.96336237e-07 0.0015502587131062853 7.07980829e-06 1.1419071421424887 0.0006712296928285242 6.872092503437728 23.789921841197497 176.23932642847208 203.11796148326633 0.4 0.4 0.4 0.0 0.0 0.0 -420.0 2.96336237e-07 0.0001706954398692114 +Body420 2.96336237e-07 0.0001706954398692114 7.07980829e-06 0.1257327827090514 0.0006363407247909787 7.996370665082673 242.54962943655892 119.0581532962803 244.4636246279242 0.4 0.4 0.4 0.0 0.0 0.0 -421.0 2.96336237e-07 0.0008548996282611012 +Body421 2.96336237e-07 0.0008548996282611012 7.07980829e-06 0.6297116623652099 0.0018528503137257384 6.449151072040503 247.14499536359432 194.51125232940055 120.02019995779871 0.4 0.4 0.4 0.0 0.0 0.0 -422.0 2.96336237e-07 0.0020676193368498715 +Body422 2.96336237e-07 0.0020676193368498715 7.07980829e-06 1.5229904970183599 0.0018279824313815899 3.119809687865496 319.56432456135326 256.80466553677377 302.7810027784062 0.4 0.4 0.4 0.0 0.0 0.0 -423.0 2.96336237e-07 0.0014317805565749072 +Body423 2.96336237e-07 0.0014317805565749072 7.07980829e-06 1.0546371581151317 0.0005102985592123978 7.904804333209818 231.8152004370599 136.71782915075784 317.74375180780237 0.4 0.4 0.4 0.0 0.0 0.0 -424.0 2.96336237e-07 0.0002923636451554646 +Body424 2.96336237e-07 0.0002923636451554646 7.07980829e-06 0.21535252902200486 0.0012571792466268344 7.172400983983878 255.00609299925236 150.88650593626468 54.83063423384363 0.4 0.4 0.4 0.0 0.0 0.0 -425.0 2.96336237e-07 0.00020267791261800836 +Body425 2.96336237e-07 0.00020267791261800836 7.07980829e-06 0.1492907951533426 2.4169993512502616e-05 1.8789654006057819 142.81133764592184 200.87399856342702 268.6282317022573 0.4 0.4 0.4 0.0 0.0 0.0 -426.0 2.96336237e-07 0.00216686956495537 +Body426 2.96336237e-07 0.00216686956495537 7.07980829e-06 1.596097355489646 0.0019817103498467135 7.425491559820209 271.70257003964826 15.863017483508967 264.63792447579806 0.4 0.4 0.4 0.0 0.0 0.0 -427.0 2.96336237e-07 0.0001553159107903783 +Body427 2.96336237e-07 0.0001553159107903783 7.07980829e-06 0.11440435478316135 0.0005117869222478517 8.667289313439003 218.19361442257141 144.619241655023 119.95076677123069 0.4 0.4 0.4 0.0 0.0 0.0 -428.0 2.96336237e-07 0.0006311383297158283 +Body428 2.96336237e-07 0.0006311383297158283 7.07980829e-06 0.46489102772936586 0.000277977539000612 4.101627214272958 231.6073302900749 98.09235602296367 116.20533850272857 0.4 0.4 0.4 0.0 0.0 0.0 -429.0 2.96336237e-07 0.00018352418073515838 +Body429 2.96336237e-07 0.00018352418073515838 7.07980829e-06 0.13518232212829265 0.0004995940876123834 10.532479056086265 213.8058404309228 61.39961018062948 265.52368141249804 0.4 0.4 0.4 0.0 0.0 0.0 -430.0 2.96336237e-07 0.00023931226875080732 +Body430 2.96336237e-07 0.00023931226875080732 7.07980829e-06 0.17627534461090566 0.0014351073175199352 10.094752215598206 236.8492000043581 1.4027964177489896 321.9949830850897 0.4 0.4 0.4 0.0 0.0 0.0 -431.0 2.96336237e-07 0.00029309420455664 +Body431 2.96336237e-07 0.00029309420455664 7.07980829e-06 0.21589065274994054 0.0011799630485976175 0.6723681526471154 296.59764239360464 359.5559702912326 114.540592515933 0.4 0.4 0.4 0.0 0.0 0.0 -432.0 2.96336237e-07 0.004222680517088697 +Body432 2.96336237e-07 0.004222680517088697 7.07980829e-06 3.1103898985916754 0.00042637688730952177 9.098589541222267 0.4371423916632341 329.05080871562564 127.13138850101329 0.4 0.4 0.4 0.0 0.0 0.0 -433.0 2.96336237e-07 0.000748582470725869 +Body433 2.96336237e-07 0.000748582470725869 7.07980829e-06 0.5513993648787411 0.0008576894511570327 3.1242992472498163 283.9222469806783 86.35211955431778 70.7562799265316 0.4 0.4 0.4 0.0 0.0 0.0 -434.0 2.96336237e-07 0.0007306232922059338 +Body434 2.96336237e-07 0.0007306232922059338 7.07980829e-06 0.5381707895154495 0.0009348514117079304 2.5557739076942165 69.52099049625218 74.14516210351093 4.234771022669347 0.4 0.4 0.4 0.0 0.0 0.0 -435.0 2.96336237e-07 0.00013897041687791617 +Body435 2.96336237e-07 0.00013897041687791617 7.07980829e-06 0.10236440552650627 0.00013146320707978484 0.7364793187850734 357.6923007593962 90.33367235008731 318.70658846752104 0.4 0.4 0.4 0.0 0.0 0.0 -436.0 2.96336237e-07 0.00029779475298576227 +Body436 2.96336237e-07 0.00029779475298576227 7.07980829e-06 0.21935303601398698 0.000555782890957427 11.18983876159149 327.61355695929603 97.40480976734528 165.0138253761267 0.4 0.4 0.4 0.0 0.0 0.0 -437.0 2.96336237e-07 0.0001708745799574377 +Body437 2.96336237e-07 0.0001708745799574377 7.07980829e-06 0.12586473574660587 0.0018987729174404723 6.736566670953775 182.67517715189774 273.16145577873795 183.44656120677303 0.4 0.4 0.4 0.0 0.0 0.0 -438.0 2.96336237e-07 0.000728623848165005 +Body438 2.96336237e-07 0.000728623848165005 7.07980829e-06 0.5366980163509781 0.0006550250963848307 9.768788974647288 67.0108552725336 257.03153378424787 13.000160888491234 0.4 0.4 0.4 0.0 0.0 0.0 -439.0 2.96336237e-07 0.00013599191518003068 +Body439 2.96336237e-07 0.00013599191518003068 7.07980829e-06 0.10017046697099641 0.0003582430996764604 7.76057892051022 20.841385258916905 113.02934367613256 180.8733491565871 0.4 0.4 0.4 0.0 0.0 0.0 -440.0 2.96336237e-07 0.0018797971931425249 +Body440 2.96336237e-07 0.0018797971931425249 7.07980829e-06 1.3846423325870287 0.0019378229233473117 4.622098056806427 109.98005607003847 225.20986743480188 142.48074218515666 0.4 0.4 0.4 0.0 0.0 0.0 -441.0 2.96336237e-07 0.0001997542634290336 +Body441 2.96336237e-07 0.0001997542634290336 7.07980829e-06 0.1471372604808492 7.759826083314737e-05 3.1994038265505984 18.00063527962045 150.13335509330886 284.73890718547926 0.4 0.4 0.4 0.0 0.0 0.0 -442.0 2.96336237e-07 0.00024525408550693235 +Body442 2.96336237e-07 0.00024525408550693235 7.07980829e-06 0.18065203537468522 0.0013635787575385526 5.055965540023692 187.18991520484477 189.55324411240977 238.44197104059097 0.4 0.4 0.4 0.0 0.0 0.0 -443.0 2.96336237e-07 0.0002719572676112937 +Body443 2.96336237e-07 0.0002719572676112937 7.07980829e-06 0.20032136805129583 0.0012308591993952483 7.0044899345984275 269.552911515444 223.2589430936312 255.77773483876354 0.4 0.4 0.4 0.0 0.0 0.0 -444.0 2.96336237e-07 0.0024012337876925392 +Body444 2.96336237e-07 0.0024012337876925392 7.07980829e-06 1.7687280122591906 0.0014246905125783382 3.1894616327597674 263.45723692347207 348.5056611813291 229.81072090051504 0.4 0.4 0.4 0.0 0.0 0.0 -445.0 2.96336237e-07 0.0012814807946355462 +Body445 2.96336237e-07 0.0012814807946355462 7.07980829e-06 0.9439276551335444 0.0008456351484432009 8.506847778604175 16.976934831274097 204.11939881755924 21.926603695751165 0.4 0.4 0.4 0.0 0.0 0.0 -446.0 2.96336237e-07 0.0002214572277532168 +Body446 2.96336237e-07 0.0002214572277532168 7.07980829e-06 0.16312347604469576 0.0006328788606050711 4.341669245285442 217.21176443296935 47.570634047337755 255.51497981231765 0.4 0.4 0.4 0.0 0.0 0.0 -447.0 2.96336237e-07 0.000371320605655443 +Body447 2.96336237e-07 0.000371320605655443 7.07980829e-06 0.27351154232381 0.0012718461900307523 3.6005688541966956 160.45882348034823 229.3479177073646 325.89926615619186 0.4 0.4 0.4 0.0 0.0 0.0 -448.0 2.96336237e-07 0.00018813481449221457 +Body448 2.96336237e-07 0.00018813481449221457 7.07980829e-06 0.13857847502359635 0.0004967774773828962 9.454215364643224 236.19374241613463 15.838117427972968 32.50108674998017 0.4 0.4 0.4 0.0 0.0 0.0 -449.0 2.96336237e-07 0.0002829712914052262 +Body449 2.96336237e-07 0.0002829712914052262 7.07980829e-06 0.2084342025915501 0.0006005957457232561 1.584780194658919 102.56822379223705 346.4911804247638 40.57008757741396 0.4 0.4 0.4 0.0 0.0 0.0 -450.0 2.96336237e-07 0.00019747957360339362 +Body450 2.96336237e-07 0.00019747957360339362 7.07980829e-06 0.1454617436551108 0.0005977045502023303 11.353602159881305 200.3192108307083 271.1674421737156 31.081475067751285 0.4 0.4 0.4 0.0 0.0 0.0 -451.0 2.96336237e-07 0.001245613757542642 +Body451 2.96336237e-07 0.001245613757542642 7.07980829e-06 0.9175083062354428 1.590462859464138e-05 3.357327507443001 79.60987598923194 30.837831867702302 298.7278990002848 0.4 0.4 0.4 0.0 0.0 0.0 -452.0 2.96336237e-07 0.0002486996704319826 +Body452 2.96336237e-07 0.0002486996704319826 7.07980829e-06 0.18319002339017568 0.0009885566764127646 9.782621242440886 108.07786801396067 273.9970912250933 310.35367852760163 0.4 0.4 0.4 0.0 0.0 0.0 -453.0 2.96336237e-07 0.00016692767554210932 +Body453 2.96336237e-07 0.00016692767554210932 7.07980829e-06 0.12295748013622683 0.0010979062296577725 10.024347500550677 106.88907055247773 198.1327684359928 340.050135138907 0.4 0.4 0.4 0.0 0.0 0.0 -454.0 2.96336237e-07 0.0005445630251279117 +Body454 2.96336237e-07 0.0005445630251279117 7.07980829e-06 0.40112040815064176 0.0012765243645821193 0.36158828981659213 300.78312579930036 122.72230217785753 79.57847915252297 0.4 0.4 0.4 0.0 0.0 0.0 -455.0 2.96336237e-07 0.0006418298530095252 +Body455 2.96336237e-07 0.0006418298530095252 7.07980829e-06 0.47276631119414475 0.0018754191712590468 9.618142402240167 210.01360274606708 52.81319523404354 295.506781436836 0.4 0.4 0.4 0.0 0.0 0.0 -456.0 2.96336237e-07 0.0003305503945146837 +Body456 2.96336237e-07 0.0003305503945146837 7.07980829e-06 0.24348055788573156 0.0009724490518056483 9.764140650772767 285.1217564231297 241.4693010940454 153.8706167630325 0.4 0.4 0.4 0.0 0.0 0.0 -457.0 2.96336237e-07 0.0008872014207357944 +Body457 2.96336237e-07 0.0008872014207357944 7.07980829e-06 0.6535048829541451 0.0012768686940541607 3.1122731807633186 191.39791508615775 317.147311001137 65.98215050080154 0.4 0.4 0.4 0.0 0.0 0.0 -458.0 2.96336237e-07 0.0007939614798380874 +Body458 2.96336237e-07 0.0007939614798380874 7.07980829e-06 0.5848251499883511 0.00040825964837822265 1.8844887309819964 318.2015406963481 193.18114828574815 104.40965648293675 0.4 0.4 0.4 0.0 0.0 0.0 -459.0 2.96336237e-07 0.0002696263073715259 +Body459 2.96336237e-07 0.0002696263073715259 7.07980829e-06 0.1986044029258377 0.001056477230864351 5.155184286743782 225.03923040849543 131.52836819098496 255.26276672816687 0.4 0.4 0.4 0.0 0.0 0.0 -460.0 2.96336237e-07 0.0006881217741479458 +Body460 2.96336237e-07 0.0006881217741479458 7.07980829e-06 0.5068645393960302 0.0003326335736345842 5.266871447065479 228.66670984475485 245.29263210567836 343.40974951486265 0.4 0.4 0.4 0.0 0.0 0.0 -461.0 2.96336237e-07 0.00036350958220436396 +Body461 2.96336237e-07 0.00036350958220436396 7.07980829e-06 0.2677580100966906 0.0011350441528606126 6.177365782766478 118.87478336871442 355.77015297228894 95.63595646327923 0.4 0.4 0.4 0.0 0.0 0.0 -462.0 2.96336237e-07 0.0004486060856822659 +Body462 2.96336237e-07 0.0004486060856822659 7.07980829e-06 0.3304393575848548 0.0014687785019336904 5.241448084521409 96.18365857942207 183.77862980776774 228.65495228458707 0.4 0.4 0.4 0.0 0.0 0.0 -463.0 2.96336237e-07 0.0004604269617478805 +Body463 2.96336237e-07 0.0004604269617478805 7.07980829e-06 0.33914651252072975 0.0004055292170800828 4.895873668563538 59.02464154565896 62.12229762294026 55.07526689128356 0.4 0.4 0.4 0.0 0.0 0.0 -464.0 2.96336237e-07 0.0005143025297492694 +Body464 2.96336237e-07 0.0005143025297492694 7.07980829e-06 0.3788307893241148 0.0005293066055721069 4.462141950647905 320.6002755530967 306.8596225069373 320.9666429183768 0.4 0.4 0.4 0.0 0.0 0.0 -465.0 2.96336237e-07 0.0006667305570919559 +Body465 2.96336237e-07 0.0006667305570919559 7.07980829e-06 0.49110795417006453 0.0007770182250284304 0.690544254500474 289.6118630282647 147.3904940483378 243.83250464820526 0.4 0.4 0.4 0.0 0.0 0.0 -466.0 2.96336237e-07 0.0005863629315512525 +Body466 2.96336237e-07 0.0005863629315512525 7.07980829e-06 0.43190985721624947 0.0007198902586070987 4.0182624493743635 288.28733727149256 324.69481343360036 189.6182444711077 0.4 0.4 0.4 0.0 0.0 0.0 -467.0 2.96336237e-07 0.000294672324076889 +Body467 2.96336237e-07 0.000294672324076889 7.07980829e-06 0.21705308192133735 0.00044576452998949914 8.921250090759099 238.22729318130882 296.190068054446 195.9121254193718 0.4 0.4 0.4 0.0 0.0 0.0 -468.0 2.96336237e-07 0.0028087096654579474 +Body468 2.96336237e-07 0.0028087096654579474 7.07980829e-06 2.0688712148984254 0.0002984810832466857 10.575534104328895 152.56442877635615 170.47613853133058 274.7547200671628 0.4 0.4 0.4 0.0 0.0 0.0 -469.0 2.96336237e-07 0.0003450690782735793 +Body469 2.96336237e-07 0.0003450690782735793 7.07980829e-06 0.2541748946042599 0.0008041489377130242 8.309065348651579 261.2187986265465 53.27309426724574 261.1432403005431 0.4 0.4 0.4 0.0 0.0 0.0 -470.0 2.96336237e-07 0.00046973846516796657 +Body470 2.96336237e-07 0.00046973846516796657 7.07980829e-06 0.3460052852981942 0.0018686403872765615 3.0895039953712953 75.98671392677977 38.52726973601133 140.56799733511798 0.4 0.4 0.4 0.0 0.0 0.0 -471.0 2.96336237e-07 0.00041866256056546783 +Body471 2.96336237e-07 0.00041866256056546783 7.07980829e-06 0.30838321630809845 0.0007211803251128147 10.87151624456058 51.710646603351435 342.61557663182634 39.59410990999061 0.4 0.4 0.4 0.0 0.0 0.0 -472.0 2.96336237e-07 0.0003214617114907036 +Body472 2.96336237e-07 0.0003214617114907036 7.07980829e-06 0.23678591268231478 0.00043228108644888024 8.092409625280016 162.74609562124746 81.11807186647502 138.9873457289479 0.4 0.4 0.4 0.0 0.0 0.0 -473.0 2.96336237e-07 0.003263293606577269 +Body473 2.96336237e-07 0.003263293606577269 7.07980829e-06 2.4037138090273222 0.001132185797944382 7.94561700619783 44.938610848203766 268.82872855970845 36.99135992364371 0.4 0.4 0.4 0.0 0.0 0.0 -474.0 2.96336237e-07 0.0008214380972595391 +Body474 2.96336237e-07 0.0008214380972595391 7.07980829e-06 0.6050641884212358 0.0017016394827102327 9.659688816023383 109.74887856274627 109.62683981188026 47.758744134896425 0.4 0.4 0.4 0.0 0.0 0.0 -475.0 2.96336237e-07 0.0008837582199748425 +Body475 2.96336237e-07 0.0008837582199748425 7.07980829e-06 0.6509686510932816 0.0012461324332944481 4.499649557650997 10.572812949107973 47.77269188323101 215.6753167223474 0.4 0.4 0.4 0.0 0.0 0.0 -476.0 2.96336237e-07 0.001098223293562403 +Body476 2.96336237e-07 0.001098223293562403 7.07980829e-06 0.8089417669347273 0.0008312252935948881 3.3621695139802132 210.05120303274737 154.63817919238844 104.28857510691935 0.4 0.4 0.4 0.0 0.0 0.0 -477.0 2.96336237e-07 0.0013733620550810425 +Body477 2.96336237e-07 0.0013733620550810425 7.07980829e-06 1.0116065958450184 0.0017738610178885557 10.197193583320637 193.21906157260963 160.6826353045648 197.35313110103235 0.4 0.4 0.4 0.0 0.0 0.0 -478.0 2.96336237e-07 0.0010710598818969162 +Body478 2.96336237e-07 0.0010710598818969162 7.07980829e-06 0.788933433149185 0.0011447284160657012 6.439774290412318 130.66057255969486 89.60632128531438 276.6850184610414 0.4 0.4 0.4 0.0 0.0 0.0 -479.0 2.96336237e-07 0.00013804426495303047 +Body479 2.96336237e-07 0.00013804426495303047 7.07980829e-06 0.10168221003952403 0.00020449864584018424 6.3886896970000135 294.43963116142464 80.85135126684784 59.551631887885094 0.4 0.4 0.4 0.0 0.0 0.0 -480.0 2.96336237e-07 0.000510984594283785 +Body480 2.96336237e-07 0.000510984594283785 7.07980829e-06 0.37638682679503926 0.0009538703934352033 7.8137851712048985 270.8856913657831 54.866604813306864 203.72806433585802 0.4 0.4 0.4 0.0 0.0 0.0 -481.0 2.96336237e-07 0.0003052773574941031 +Body481 2.96336237e-07 0.0003052773574941031 7.07980829e-06 0.22486465769213987 0.00010499401161215899 9.80847519219533 204.58216972265092 63.46577648609118 52.22718811087346 0.4 0.4 0.4 0.0 0.0 0.0 -482.0 2.96336237e-07 0.0007595910572551223 +Body482 2.96336237e-07 0.0007595910572551223 7.07980829e-06 0.5595081943769218 1.603969670767141e-05 3.5748016430332377 252.14559085297245 258.52147517626855 89.88327467849027 0.4 0.4 0.4 0.0 0.0 0.0 -483.0 2.96336237e-07 0.0005026243751300119 +Body483 2.96336237e-07 0.0005026243751300119 7.07980829e-06 0.3702287617695952 0.0017002155023706134 3.2650363437768473 4.579531934785606 181.49448196402307 253.24637502081566 0.4 0.4 0.4 0.0 0.0 0.0 -484.0 2.96336237e-07 0.0014946853378614818 +Body484 2.96336237e-07 0.0014946853378614818 7.07980829e-06 1.100972275227372 0.0011016475133641122 1.1713720975409359 50.43747985108622 106.6248278266832 32.13983751921431 0.4 0.4 0.4 0.0 0.0 0.0 -485.0 2.96336237e-07 0.0001840981898284837 +Body485 2.96336237e-07 0.0001840981898284837 7.07980829e-06 0.1356051322552614 0.0006111558538924435 10.4892853776386 222.02834859636715 325.69799642747853 140.07145275861674 0.4 0.4 0.4 0.0 0.0 0.0 -486.0 2.96336237e-07 0.00015386479581017197 +Body486 2.96336237e-07 0.00015386479581017197 7.07980829e-06 0.11333547605604403 0.000622891064807166 8.184129534679386 37.28466927526265 329.2628905575532 294.6220703951143 0.4 0.4 0.4 0.0 0.0 0.0 -487.0 2.96336237e-07 0.0003082091957628682 +Body487 2.96336237e-07 0.0003082091957628682 7.07980829e-06 0.22702422436988573 0.001991696543638015 3.5267414013239837 338.50159401266495 180.01552983278972 322.20628816659337 0.4 0.4 0.4 0.0 0.0 0.0 -488.0 2.96336237e-07 0.00014583060375858106 +Body488 2.96336237e-07 0.00014583060375858106 7.07980829e-06 0.10741755977052718 0.0002905638340767039 11.302540381129162 241.2135864811138 151.6941052951146 298.57489059943174 0.4 0.4 0.4 0.0 0.0 0.0 -489.0 2.96336237e-07 0.0005605944288335752 +Body489 2.96336237e-07 0.0005605944288335752 7.07980829e-06 0.41292900128113025 7.941636802451363e-05 7.359319334258025 297.84171946708426 94.33235973893102 344.4529489692567 0.4 0.4 0.4 0.0 0.0 0.0 -490.0 2.96336237e-07 0.00021857685064681165 +Body490 2.96336237e-07 0.00021857685064681165 7.07980829e-06 0.16100181521346763 0.0012407299957247105 0.6038825024030959 239.7275077723229 236.00381573862157 256.95939485907843 0.4 0.4 0.4 0.0 0.0 0.0 -491.0 2.96336237e-07 0.00019674218925549213 +Body491 2.96336237e-07 0.00019674218925549213 7.07980829e-06 0.14491859273052377 0.0013058487505551934 3.821881106309761 216.39978867899538 258.25042579710794 351.02242222027417 0.4 0.4 0.4 0.0 0.0 0.0 -492.0 2.96336237e-07 0.0002159160466132611 +Body492 2.96336237e-07 0.0002159160466132611 7.07980829e-06 0.15904189000610347 0.0014522873185646632 4.0846204015874 134.00372653420538 92.03836218081587 302.6381080058215 0.4 0.4 0.4 0.0 0.0 0.0 -493.0 2.96336237e-07 0.0016256926204691628 +Body493 2.96336237e-07 0.0016256926204691628 7.07980829e-06 1.197471105014716 0.0004360059768893441 0.4814083894751589 349.1904845488782 337.1306233013751 217.9405054238214 0.4 0.4 0.4 0.0 0.0 0.0 -494.0 2.96336237e-07 0.00014250608506025607 +Body494 2.96336237e-07 0.00014250608506025607 7.07980829e-06 0.10496874808915509 0.0002830915520879843 2.6416972133031833 29.164561498142817 179.8847025710235 47.37482513737826 0.4 0.4 0.4 0.0 0.0 0.0 -495.0 2.96336237e-07 0.005380221359981844 +Body495 2.96336237e-07 0.005380221359981844 7.07980829e-06 3.9630244586470065 0.001250718071607223 7.831364396971 299.152626258313 80.18063960689692 220.34424722803575 0.4 0.4 0.4 0.0 0.0 0.0 -496.0 2.96336237e-07 0.0010596897261804911 +Body496 2.96336237e-07 0.0010596897261804911 7.07980829e-06 0.7805582749190838 0.0013975054818890363 4.884298008228713 324.268561752692 180.9283217090302 120.10113424767462 0.4 0.4 0.4 0.0 0.0 0.0 -497.0 2.96336237e-07 0.003975669049986422 +Body497 2.96336237e-07 0.003975669049986422 7.07980829e-06 2.928443391153569 0.00019889105320171344 6.917866506846601 53.38988957506836 56.96803300644175 52.93302086318209 0.4 0.4 0.4 0.0 0.0 0.0 -498.0 2.96336237e-07 0.00016401256780677155 +Body498 2.96336237e-07 0.00016401256780677155 7.07980829e-06 0.12081023702450965 0.0013348618001110496 8.191123147193156 281.7322152624938 230.89269153751596 24.132095903135788 0.4 0.4 0.4 0.0 0.0 0.0 -499.0 2.96336237e-07 0.00023516729516164113 +Body499 2.96336237e-07 0.00023516729516164113 7.07980829e-06 0.17322219296244507 0.0011407861152418625 1.7214983246331481 310.9919211691427 240.0381065105395 73.29352599760033 0.4 0.4 0.4 0.0 0.0 0.0 -500.0 2.96336237e-07 0.002372935488260879 +Body500 2.96336237e-07 0.002372935488260879 7.07980829e-06 1.7478837299737187 0.0002530022664911261 0.7808132069679781 132.332998689434 23.225140699784063 169.22321380849056 0.4 0.4 0.4 0.0 0.0 0.0 -501.0 2.96336237e-07 0.0008364206062998774 +Body501 2.96336237e-07 0.0008364206062998774 7.07980829e-06 0.6161001748251411 0.0003301383670470987 5.459400528391105 46.31716383973629 305.7668990894059 76.65337789038414 0.4 0.4 0.4 0.0 0.0 0.0 -502.0 2.96336237e-07 0.0004237487750512881 +Body502 2.96336237e-07 0.0004237487750512881 7.07980829e-06 0.31212967784946866 0.0007325283957620936 5.65261886087358 341.3807343417507 44.436293900198685 196.82498772211372 0.4 0.4 0.4 0.0 0.0 0.0 -503.0 2.96336237e-07 0.0002809942841018974 +Body503 2.96336237e-07 0.0002809942841018974 7.07980829e-06 0.20697795613368275 0.0003389102918443133 10.801909255067267 210.45066679552102 128.9542129407433 89.9655687791985 0.4 0.4 0.4 0.0 0.0 0.0 -504.0 2.96336237e-07 0.00021032636207145845 +Body504 2.96336237e-07 0.00021032636207145845 7.07980829e-06 0.1549245767817718 0.00019034547652992633 9.896740981102905 106.97073529266052 173.00512256005695 141.4982023951114 0.4 0.4 0.4 0.0 0.0 0.0 -505.0 2.96336237e-07 0.0001405877294726506 +Body505 2.96336237e-07 0.0001405877294726506 7.07980829e-06 0.10355570397713952 5.588787033835933e-05 0.025148184590135212 339.6974022171061 134.4855494358087 106.9595251566057 0.4 0.4 0.4 0.0 0.0 0.0 -506.0 2.96336237e-07 0.0002616476332737474 +Body506 2.96336237e-07 0.0002616476332737474 7.07980829e-06 0.19272738068428888 0.0011840292720909423 2.1374607043381766 276.3040437338511 74.32516348293399 173.22195104801668 0.4 0.4 0.4 0.0 0.0 0.0 -507.0 2.96336237e-07 0.0001830276335913892 +Body507 2.96336237e-07 0.0001830276335913892 7.07980829e-06 0.13481656980251192 7.772338761572637e-05 2.1436693812878 239.43227036224593 323.59484907154894 257.15734762862957 0.4 0.4 0.4 0.0 0.0 0.0 -508.0 2.96336237e-07 0.0020038800548480675 +Body508 2.96336237e-07 0.0020038800548480675 7.07980829e-06 1.4760406939064297 0.0011508169614244208 8.250037489904742 36.89799320893618 35.08064963050396 58.92373260868641 0.4 0.4 0.4 0.0 0.0 0.0 -509.0 2.96336237e-07 0.00021041196540253537 +Body509 2.96336237e-07 0.00021041196540253537 7.07980829e-06 0.15498763145408004 0.00032656122692631444 3.063724364482827 329.95091023219123 101.64460523053472 160.78145664072994 0.4 0.4 0.4 0.0 0.0 0.0 -510.0 2.96336237e-07 0.00034420033681411346 +Body510 2.96336237e-07 0.00034420033681411346 7.07980829e-06 0.2535349871689057 0.00033342152374707547 1.1857613413900874 324.36341312691667 144.5633870194615 49.563557204289175 0.4 0.4 0.4 0.0 0.0 0.0 -511.0 2.96336237e-07 0.0015832822576863253 +Body511 2.96336237e-07 0.0015832822576863253 7.07980829e-06 1.1662319990815273 0.0019487406036725137 3.0607160983513313 11.225699088239294 351.3300983911463 32.506879328548955 0.4 0.4 0.4 0.0 0.0 0.0 -512.0 2.96336237e-07 0.0001880645524644118 +Body512 2.96336237e-07 0.0001880645524644118 7.07980829e-06 0.13852672062241733 0.001227333136741469 5.359209920502055 342.184172049542 104.16755202122069 158.05339443952155 0.4 0.4 0.4 0.0 0.0 0.0 -513.0 2.96336237e-07 0.0001695592618230741 +Body513 2.96336237e-07 0.0001695592618230741 7.07980829e-06 0.12489588380007507 0.00020491376609093243 9.967337840176775 222.72561471076645 200.2889141067975 329.78545124155136 0.4 0.4 0.4 0.0 0.0 0.0 -514.0 2.96336237e-07 0.00018691819550851435 +Body514 2.96336237e-07 0.00018691819550851435 7.07980829e-06 0.13768232401666558 0.001555586199538783 10.031201567524477 233.12258895874854 238.5593259895004 45.262601699849064 0.4 0.4 0.4 0.0 0.0 0.0 -515.0 2.96336237e-07 0.0002372145015271881 +Body515 2.96336237e-07 0.0002372145015271881 7.07980829e-06 0.17473014744158713 0.0011718121703042283 11.298391017700013 273.7254978829876 169.35877595958758 172.46893054714874 0.4 0.4 0.4 0.0 0.0 0.0 -516.0 2.96336237e-07 0.000487556463853684 +Body516 2.96336237e-07 0.000487556463853684 7.07980829e-06 0.35912986881828135 0.0010875086244021 2.6390881856199 327.05906565898886 41.46149650372694 161.77042037952188 0.4 0.4 0.4 0.0 0.0 0.0 -517.0 2.96336237e-07 0.00037749753986737175 +Body517 2.96336237e-07 0.00037749753986737175 7.07980829e-06 0.27806141856931255 0.00017474096544441254 10.193602074021994 96.01356506043527 32.73445552687746 171.11188339049957 0.4 0.4 0.4 0.0 0.0 0.0 -518.0 2.96336237e-07 0.0007259623387149332 +Body518 2.96336237e-07 0.0007259623387149332 7.07980829e-06 0.5347375715399136 0.0006307112549701429 6.423123416772914 132.89631888091645 152.6344585362946 31.11756389346557 0.4 0.4 0.4 0.0 0.0 0.0 -519.0 2.96336237e-07 0.0013262157694597188 +Body519 2.96336237e-07 0.0013262157694597188 7.07980829e-06 0.9768790501642038 0.0016801546962580637 3.6624407128558283 344.8432510603976 225.88265169610546 61.03331943826858 0.4 0.4 0.4 0.0 0.0 0.0 -520.0 2.96336237e-07 0.00013948893650871826 +Body520 2.96336237e-07 0.00013948893650871826 7.07980829e-06 0.10274634259594391 0.0005862369214162208 7.71693453685987 295.65211563192264 87.19006628973742 2.9786213795126453 0.4 0.4 0.4 0.0 0.0 0.0 -521.0 2.96336237e-07 0.00015929457772364975 +Body521 2.96336237e-07 0.00015929457772364975 7.07980829e-06 0.11733500638917965 0.00046241603580283465 11.030928489656732 169.65241881138567 293.1253864516373 214.18603709260668 0.4 0.4 0.4 0.0 0.0 0.0 -522.0 2.96336237e-07 0.00019824865788944 +Body522 2.96336237e-07 0.00019824865788944 7.07980829e-06 0.14602824447959978 0.0002413067174747541 4.229625827383947 116.24908588305853 10.857662875818633 206.68925611407855 0.4 0.4 0.4 0.0 0.0 0.0 -523.0 2.96336237e-07 0.00021207331037066918 +Body523 2.96336237e-07 0.00021207331037066918 7.07980829e-06 0.1562113637696193 0.0016684263660526643 6.046041305164429 345.6484692547302 292.66639197693917 146.17732450811894 0.4 0.4 0.4 0.0 0.0 0.0 -524.0 2.96336237e-07 0.0005136104792758559 +Body524 2.96336237e-07 0.0005136104792758559 7.07980829e-06 0.37832103093886404 0.001074156993879785 2.1395424495167066 281.75088372571247 303.56480204625746 296.22629924132457 0.4 0.4 0.4 0.0 0.0 0.0 -525.0 2.96336237e-07 0.004109072545859522 +Body525 2.96336237e-07 0.004109072545859522 7.07980829e-06 3.0267072508799453 0.00127398446590752 2.1560406699554804 346.66700089774304 155.95497531651893 1.6343077005043352 0.4 0.4 0.4 0.0 0.0 0.0 -526.0 2.96336237e-07 0.00014930581917609634 +Body526 2.96336237e-07 0.00014930581917609634 7.07980829e-06 0.10997737335015408 0.0012084257180196292 1.3951600642609057 16.76773394168345 8.795909418806362 9.929660069933089 0.4 0.4 0.4 0.0 0.0 0.0 -527.0 2.96336237e-07 0.0002868838371068101 +Body527 2.96336237e-07 0.0002868838371068101 7.07980829e-06 0.2113161498709467 0.0007791354218313612 3.234346128256671 76.11991217262185 136.83240360065855 173.1533929976486 0.4 0.4 0.4 0.0 0.0 0.0 -528.0 2.96336237e-07 0.0001555609431935719 +Body528 2.96336237e-07 0.0001555609431935719 7.07980829e-06 0.11458484352926389 0.0010363406659536396 10.541470655799642 325.59035485038135 265.93712788220773 313.42035876985943 0.4 0.4 0.4 0.0 0.0 0.0 -529.0 2.96336237e-07 0.00021564072526620022 +Body529 2.96336237e-07 0.00021564072526620022 7.07980829e-06 0.15883909068626403 0.0008601114966143062 1.9731166269703835 219.97708142667824 234.306907552938 287.0479249364048 0.4 0.4 0.4 0.0 0.0 0.0 -530.0 2.96336237e-07 0.00021063118430903212 +Body530 2.96336237e-07 0.00021063118430903212 7.07980829e-06 0.1551491062020721 0.0012742398782430151 2.110216655102381 322.4131256335296 156.66338000836896 213.30875362979424 0.4 0.4 0.4 0.0 0.0 0.0 -531.0 2.96336237e-07 0.0003195852526861271 +Body531 2.96336237e-07 0.0003195852526861271 7.07980829e-06 0.23540372937783355 0.0014827207961310713 11.034200232871168 20.075050100885207 297.061404860893 134.27646383235646 0.4 0.4 0.4 0.0 0.0 0.0 -532.0 2.96336237e-07 0.00038029698725507155 +Body532 2.96336237e-07 0.00038029698725507155 7.07980829e-06 0.2801234672706298 0.0009391237366618727 0.961050066133553 130.06618341196372 65.34014485280774 265.5894113155054 0.4 0.4 0.4 0.0 0.0 0.0 -533.0 2.96336237e-07 0.0008086245014997202 +Body533 2.96336237e-07 0.0008086245014997202 7.07980829e-06 0.5956258047560051 0.0017346144564827134 3.419230682901365 224.4906528425378 41.564974205435675 171.21663430141882 0.4 0.4 0.4 0.0 0.0 0.0 -534.0 2.96336237e-07 0.0009378327930594523 +Body534 2.96336237e-07 0.0009378327930594523 7.07980829e-06 0.6907995133174945 0.001605499749195453 9.284357963360389 18.93455793138919 339.4733996745166 319.8812805446561 0.4 0.4 0.4 0.0 0.0 0.0 -535.0 2.96336237e-07 0.00023975902634056496 +Body535 2.96336237e-07 0.00023975902634056496 7.07980829e-06 0.17660442238240123 0.0015568675724954336 11.38693154194754 44.37020689907796 295.86645019371497 177.82671930546547 0.4 0.4 0.4 0.0 0.0 0.0 -536.0 2.96336237e-07 0.0003929351753048108 +Body536 2.96336237e-07 0.0003929351753048108 7.07980829e-06 0.28943264713572475 0.0005699233782748937 1.5567056350737614 227.9860385142784 77.8850459256719 355.6214169541282 0.4 0.4 0.4 0.0 0.0 0.0 -537.0 2.96336237e-07 0.0005262829725743801 +Body537 2.96336237e-07 0.0005262829725743801 7.07980829e-06 0.38765547975311526 0.0003177615026623367 8.827340263326045 199.89821685270525 352.371252920494 13.099545361125765 0.4 0.4 0.4 0.0 0.0 0.0 -538.0 2.96336237e-07 0.0014263756327302175 +Body538 2.96336237e-07 0.0014263756327302175 7.07980829e-06 1.0506559380201834 0.0011850450275658014 6.109575048260612 137.21707874901938 317.54578704073776 298.4847960400838 0.4 0.4 0.4 0.0 0.0 0.0 -539.0 2.96336237e-07 0.00040333645655972814 +Body539 2.96336237e-07 0.00040333645655972814 7.07980829e-06 0.29709414082836405 0.0012408573548279333 5.600605325783357 152.95523816976183 264.91770769590966 7.071477493229634 0.4 0.4 0.4 0.0 0.0 0.0 -540.0 2.96336237e-07 0.0015199855563997338 +Body540 2.96336237e-07 0.0015199855563997338 7.07980829e-06 1.1196081970914764 0.0013138724882288133 1.1787466854789124 244.3058781253184 129.76972788859368 156.95401255974633 0.4 0.4 0.4 0.0 0.0 0.0 -541.0 2.96336237e-07 0.00039472534353346346 +Body541 2.96336237e-07 0.00039472534353346346 7.07980829e-06 0.29075126954929537 0.00037545014934496027 5.765569150437208 61.964196642898294 171.97954045248818 354.7328600184298 0.4 0.4 0.4 0.0 0.0 0.0 -542.0 2.96336237e-07 0.0009011051757505035 +Body542 2.96336237e-07 0.0009011051757505035 7.07980829e-06 0.6637462684852627 0.0007574696521700472 11.096574280070378 336.34868318728115 231.8204350102131 228.9728749303282 0.4 0.4 0.4 0.0 0.0 0.0 -543.0 2.96336237e-07 0.0004267125719876535 +Body543 2.96336237e-07 0.0004267125719876535 7.07980829e-06 0.3143127850049926 0.0007238579750846895 0.5277440721609482 80.37180018466877 103.55653927353048 114.87976373867865 0.4 0.4 0.4 0.0 0.0 0.0 -544.0 2.96336237e-07 0.00020963363183072777 +Body544 2.96336237e-07 0.00020963363183072777 7.07980829e-06 0.1544143176858023 0.00010596757190516148 10.466373300966364 146.7818903901798 36.69076173997252 34.93306695589757 0.4 0.4 0.4 0.0 0.0 0.0 -545.0 2.96336237e-07 0.00029132633094057064 +Body545 2.96336237e-07 0.00029132633094057064 7.07980829e-06 0.21458845235491755 0.001312258673813912 5.263516568737595 330.2344757051127 325.3527645378588 166.22816141416666 0.4 0.4 0.4 0.0 0.0 0.0 -546.0 2.96336237e-07 0.0003716442765482616 +Body546 2.96336237e-07 0.0003716442765482616 7.07980829e-06 0.2737499555003259 0.0005701813356438088 9.435472283986273 50.5993612097436 173.37357873802534 55.87387941263882 0.4 0.4 0.4 0.0 0.0 0.0 -547.0 2.96336237e-07 0.00022121543151980844 +Body547 2.96336237e-07 0.00022121543151980844 7.07980829e-06 0.16294537103323034 0.0010450316087317016 10.629320699054388 250.72526708627996 283.0549912557477 235.35874115592677 0.4 0.4 0.4 0.0 0.0 0.0 -548.0 2.96336237e-07 0.0006338471318379385 +Body548 2.96336237e-07 0.0006338471318379385 7.07980829e-06 0.4668863079130782 9.80881213544338e-05 4.917842409782587 183.5716451313882 137.80102400877854 122.07017831456447 0.4 0.4 0.4 0.0 0.0 0.0 -549.0 2.96336237e-07 0.004398684433331888 +Body549 2.96336237e-07 0.004398684433331888 7.07980829e-06 3.2400328590240277 0.000795174145733708 9.411673637407711 166.69529349617045 322.2493980338734 332.78622466184925 0.4 0.4 0.4 0.0 0.0 0.0 -550.0 2.96336237e-07 0.0002696915901036577 +Body550 2.96336237e-07 0.0002696915901036577 7.07980829e-06 0.19865248962094845 0.0006383917190026313 4.502193781959035 102.46776932906943 299.3886454963272 107.42304201248047 0.4 0.4 0.4 0.0 0.0 0.0 -551.0 2.96336237e-07 0.00018742789541377648 +Body551 2.96336237e-07 0.00018742789541377648 7.07980829e-06 0.13805776455265326 0.00022135125820552654 3.165822612591817 231.2522567846904 284.00788607334607 18.568891102091413 0.4 0.4 0.4 0.0 0.0 0.0 -552.0 2.96336237e-07 0.00018745115705878982 +Body552 2.96336237e-07 0.00018745115705878982 7.07980829e-06 0.13807489887891386 0.00038252357678747435 5.636462188612152 21.26016001601263 38.97144934099217 238.96398622306455 0.4 0.4 0.4 0.0 0.0 0.0 -553.0 2.96336237e-07 0.0007527174634770774 +Body553 2.96336237e-07 0.0007527174634770774 7.07980829e-06 0.5544451647284006 0.0015926903230669928 3.5709289457786735 331.65272711665096 152.2997527431007 67.38730245989973 0.4 0.4 0.4 0.0 0.0 0.0 -554.0 2.96336237e-07 0.0019986589647870623 +Body554 2.96336237e-07 0.0019986589647870623 7.07980829e-06 1.4721948841844608 0.00022013630176110412 1.2170747798596109 184.3562047825064 1.3825637097073917 29.688792239766972 0.4 0.4 0.4 0.0 0.0 0.0 -555.0 2.96336237e-07 0.00022858846842984274 +Body555 2.96336237e-07 0.00022858846842984274 7.07980829e-06 0.16837628616737488 0.0004563697736791034 1.037718489230666 55.32749146467346 234.60174223122448 51.71202442623142 0.4 0.4 0.4 0.0 0.0 0.0 -556.0 2.96336237e-07 0.002995858109066055 +Body556 2.96336237e-07 0.002995858109066055 7.07980829e-06 2.2067231376712 0.00042132883736718585 7.18920001167939 329.5453745377768 154.99871161132532 1.263889070543565 0.4 0.4 0.4 0.0 0.0 0.0 -557.0 2.96336237e-07 0.0008811270370001727 +Body557 2.96336237e-07 0.0008811270370001727 7.07980829e-06 0.6490305445013574 0.0015222806424304506 2.569952590511676 318.10486175424745 143.8423848274806 66.22399625468148 0.4 0.4 0.4 0.0 0.0 0.0 -558.0 2.96336237e-07 0.00024402598794333842 +Body558 2.96336237e-07 0.00024402598794333842 7.07980829e-06 0.17974742934521437 0.0002150961941387449 4.943731950964769 150.82092745036815 154.92037935629455 348.0792764816835 0.4 0.4 0.4 0.0 0.0 0.0 -559.0 2.96336237e-07 0.0008097529907645238 +Body559 2.96336237e-07 0.0008097529907645238 7.07980829e-06 0.5964570401752393 0.0009056928941771672 11.063627159187728 229.76649388304784 251.88631294206922 271.0341809092236 0.4 0.4 0.4 0.0 0.0 0.0 -560.0 2.96336237e-07 0.00033530779260211027 +Body560 2.96336237e-07 0.00033530779260211027 7.07980829e-06 0.24698481611574155 0.0004575492589735706 5.29573681938387 196.6887131179752 295.8424376270973 172.27820863278714 0.4 0.4 0.4 0.0 0.0 0.0 -561.0 2.96336237e-07 0.0035073641574024108 +Body561 2.96336237e-07 0.0035073641574024108 7.07980829e-06 2.5834940630053387 0.0017461636990900654 7.244140409413152 63.206300786279186 337.9878014590007 104.79139588265613 0.4 0.4 0.4 0.0 0.0 0.0 -562.0 2.96336237e-07 0.0001813535469778788 +Body562 2.96336237e-07 0.0001813535469778788 7.07980829e-06 0.13358345210133657 0.0018257665528339558 0.06804701843758584 77.29411815014136 289.8233053967625 44.70554421084728 0.4 0.4 0.4 0.0 0.0 0.0 -563.0 2.96336237e-07 0.00370967526002868 +Body563 2.96336237e-07 0.00370967526002868 7.07980829e-06 2.732514669095504 0.001995822512916354 6.48078290387372 231.67326349644276 62.4395595885095 165.01621451958113 0.4 0.4 0.4 0.0 0.0 0.0 -564.0 2.96336237e-07 0.00018554024250358602 +Body564 2.96336237e-07 0.00018554024250358602 7.07980829e-06 0.13666733576692272 0.0018703754785616086 7.597540731858161 34.349929235997486 283.0074100974388 269.69008152808203 0.4 0.4 0.4 0.0 0.0 0.0 -565.0 2.96336237e-07 0.0015961104296749599 +Body565 2.96336237e-07 0.0015961104296749599 7.07980829e-06 1.175681119470667 0.0012730084315147824 5.377171503588457 303.22071615442695 207.38446726959208 323.23225029635455 0.4 0.4 0.4 0.0 0.0 0.0 -566.0 2.96336237e-07 0.00038398491349272686 +Body566 2.96336237e-07 0.00038398491349272686 7.07980829e-06 0.2828399617982013 0.0008656344622862977 0.6978761551131981 158.93800419606512 215.01005022703546 20.614101759917133 0.4 0.4 0.4 0.0 0.0 0.0 -567.0 2.96336237e-07 0.0001411459851863336 +Body567 2.96336237e-07 0.0001411459851863336 7.07980829e-06 0.10396691030109508 0.00038399114582490725 6.250057689311349 12.23793133378916 169.4460441634575 246.49382276408937 0.4 0.4 0.4 0.0 0.0 0.0 -568.0 2.96336237e-07 0.00015192863370384972 +Body568 2.96336237e-07 0.00015192863370384972 7.07980829e-06 0.1119093158165541 3.5729588432924006e-05 7.225655657371077 201.789567932713 174.36108665329155 129.48783093991912 0.4 0.4 0.4 0.0 0.0 0.0 -569.0 2.96336237e-07 0.00031883766930319916 +Body569 2.96336237e-07 0.00031883766930319916 7.07980829e-06 0.23485306593237423 0.000518575631308253 3.0998582988447634 66.08807509880653 4.722678788284973 249.7975273077748 0.4 0.4 0.4 0.0 0.0 0.0 -570.0 2.96336237e-07 0.0027604374222985994 +Body570 2.96336237e-07 0.0027604374222985994 7.07980829e-06 2.0333142986463963 0.00043570189366228104 7.66004660343979 74.86531219644911 109.11381471164702 63.388254479519375 0.4 0.4 0.4 0.0 0.0 0.0 -571.0 2.96336237e-07 0.00015023702103083965 +Body571 2.96336237e-07 0.00015023702103083965 7.07980829e-06 0.11066328857173478 0.0002025540454515301 1.713521712310485 171.11108479090643 205.51382169603775 290.0568023988995 0.4 0.4 0.4 0.0 0.0 0.0 -572.0 2.96336237e-07 0.00014196229283846236 +Body572 2.96336237e-07 0.00014196229283846236 7.07980829e-06 0.10456819544806491 2.173921362080966e-05 3.073288627352398 10.968423542573241 178.72148059876903 320.74860936554234 0.4 0.4 0.4 0.0 0.0 0.0 -573.0 2.96336237e-07 0.00017644798154518564 +Body573 2.96336237e-07 0.00017644798154518564 7.07980829e-06 0.12997005508799847 0.000934704509277352 1.9203136651672266 294.72119378122954 199.03601184031737 225.6308009153569 0.4 0.4 0.4 0.0 0.0 0.0 -574.0 2.96336237e-07 0.00488950703768421 +Body574 2.96336237e-07 0.00488950703768421 7.07980829e-06 3.6015685386473737 0.0011288535517277043 5.974265923620937 306.34658415429885 203.69236750614562 44.76481984330883 0.4 0.4 0.4 0.0 0.0 0.0 -575.0 2.96336237e-07 0.00031186948806703133 +Body575 2.96336237e-07 0.00031186948806703133 7.07980829e-06 0.2297203639813691 0.0012567479194631834 9.41483183716345 18.332217446078737 331.41003064049977 348.4144705113405 0.4 0.4 0.4 0.0 0.0 0.0 -576.0 2.96336237e-07 0.0001487618405166382 +Body576 2.96336237e-07 0.0001487618405166382 7.07980829e-06 0.10957668338069491 0.0017672399928124682 5.6249568984237825 271.47221073307526 142.67097078512444 42.26206452246715 0.4 0.4 0.4 0.0 0.0 0.0 -577.0 2.96336237e-07 0.0038743964810022463 +Body577 2.96336237e-07 0.0038743964810022463 7.07980829e-06 2.8538468939054225 0.0006506913213680251 0.591259736892407 165.1635937171999 39.0089297437918 129.8573140431278 0.4 0.4 0.4 0.0 0.0 0.0 -578.0 2.96336237e-07 0.0011639056319223877 +Body578 2.96336237e-07 0.0011639056319223877 7.07980829e-06 0.857322808532359 0.0003657736519404083 3.9944348302790336 62.91043468737944 334.19923827705736 101.7599629885375 0.4 0.4 0.4 0.0 0.0 0.0 -579.0 2.96336237e-07 0.0007557338782340886 +Body579 2.96336237e-07 0.0007557338782340886 7.07980829e-06 0.5566670297149183 0.0013819556062958454 8.912729073447055 350.379562278306 170.03008599931147 117.8897306536765 0.4 0.4 0.4 0.0 0.0 0.0 -580.0 2.96336237e-07 0.0007441033838763215 +Body580 2.96336237e-07 0.0007441033838763215 7.07980829e-06 0.5481001082962534 0.0017994302592596633 2.920918678345923 289.36419883741945 37.746177522707 109.52089250377925 0.4 0.4 0.4 0.0 0.0 0.0 -581.0 2.96336237e-07 0.0006404112844241382 +Body581 2.96336237e-07 0.0006404112844241382 7.07980829e-06 0.4717214058595851 3.268654708260321e-05 7.342893652930963 6.708118526039286 300.81672964848804 163.5847131251365 0.4 0.4 0.4 0.0 0.0 0.0 -582.0 2.96336237e-07 0.0004170343646860486 +Body582 2.96336237e-07 0.0004170343646860486 7.07980829e-06 0.30718390132422047 0.00129564052304586 6.772843533548752 132.17508244267017 235.6246930233473 92.41348937785952 0.4 0.4 0.4 0.0 0.0 0.0 -583.0 2.96336237e-07 0.0006142731857822208 +Body583 2.96336237e-07 0.0006142731857822208 7.07980829e-06 0.452468308767536 0.0012831395547548085 0.35693486697819715 289.84203743155155 37.471355251152374 152.76210299600683 0.4 0.4 0.4 0.0 0.0 0.0 -584.0 2.96336237e-07 0.0002186007074490638 +Body584 2.96336237e-07 0.0002186007074490638 7.07980829e-06 0.161019387927396 0.0005285228635833609 9.509448549686741 10.441247455748337 258.7137472871262 13.98555666620972 0.4 0.4 0.4 0.0 0.0 0.0 -585.0 2.96336237e-07 0.00015163266460483272 +Body585 2.96336237e-07 0.00015163266460483272 7.07980829e-06 0.11169130754144252 0.0017351807711539903 8.236934752674342 338.9561331034808 315.03020962224696 281.5056436671877 0.4 0.4 0.4 0.0 0.0 0.0 -586.0 2.96336237e-07 0.00013803807018296932 +Body586 2.96336237e-07 0.00013803807018296932 7.07980829e-06 0.10167764702554646 0.0010788844747734155 2.081152476831487 231.1147779863094 173.32364579351096 16.576167527235604 0.4 0.4 0.4 0.0 0.0 0.0 -587.0 2.96336237e-07 0.00014385587000249536 +Body587 2.96336237e-07 0.00014385587000249536 7.07980829e-06 0.10596298798786918 0.0015337344335405886 5.078489864022907 163.60494002217212 45.97076191655148 197.42281730424295 0.4 0.4 0.4 0.0 0.0 0.0 -588.0 2.96336237e-07 0.0010458551133801324 +Body588 2.96336237e-07 0.0010458551133801324 7.07980829e-06 0.7703678189442542 0.0009797708938080478 11.283297895529412 346.10187303775945 197.66436899732548 139.39949915940022 0.4 0.4 0.4 0.0 0.0 0.0 -589.0 2.96336237e-07 0.0006915718567643916 +Body589 2.96336237e-07 0.0006915718567643916 7.07980829e-06 0.5094058403720506 0.0005370947777134646 2.1924826909073003 303.2572365218713 287.6168495565728 39.50899662075566 0.4 0.4 0.4 0.0 0.0 0.0 -590.0 2.96336237e-07 0.00016045188829099034 +Body590 2.96336237e-07 0.00016045188829099034 7.07980829e-06 0.11818747133025725 0.0009670524569643206 4.577048973494536 255.19398559665547 190.28022421180938 155.2474211536552 0.4 0.4 0.4 0.0 0.0 0.0 -591.0 2.96336237e-07 0.001215267645449028 +Body591 2.96336237e-07 0.001215267645449028 7.07980829e-06 0.8951556228781464 0.001826137463166628 6.073642475279137 64.67987211426808 222.7717361365298 197.18867931288221 0.4 0.4 0.4 0.0 0.0 0.0 -592.0 2.96336237e-07 0.00223801144996431 +Body592 2.96336237e-07 0.00223801144996431 7.07980829e-06 1.6484998518667904 0.00016212374731820305 0.9945919558650346 19.03525850339453 233.4268420634682 199.36203861767825 0.4 0.4 0.4 0.0 0.0 0.0 -593.0 2.96336237e-07 0.00024854336865957183 +Body593 2.96336237e-07 0.00024854336865957183 7.07980829e-06 0.18307489285826092 0.0002707099289692515 9.00702823491124 115.46501288290709 103.59743334648506 126.27403706772289 0.4 0.4 0.4 0.0 0.0 0.0 -594.0 2.96336237e-07 0.001116235676776967 +Body594 2.96336237e-07 0.001116235676776967 7.07980829e-06 0.8222095324153061 0.00016278175432533432 2.9858432167738442 132.34492827913058 224.31294256691262 287.1697667291248 0.4 0.4 0.4 0.0 0.0 0.0 -595.0 2.96336237e-07 0.00023863615306077128 +Body595 2.96336237e-07 0.00023863615306077128 7.07980829e-06 0.1757773236490884 0.0018576596050919468 9.920915714559277 330.2455528634638 130.04346261213527 181.20020042815298 0.4 0.4 0.4 0.0 0.0 0.0 -596.0 2.96336237e-07 0.0005973374935985437 +Body596 2.96336237e-07 0.0005973374935985437 7.07980829e-06 0.4399936245756842 0.001985323158316638 6.144072589369572 246.27913594083248 38.497536024206944 267.37312751789614 0.4 0.4 0.4 0.0 0.0 0.0 -597.0 2.96336237e-07 0.000267870431344185 +Body597 2.96336237e-07 0.000267870431344185 7.07980829e-06 0.19731103985076764 0.0012661897820085283 1.3957219833476502 133.0753112837152 149.68409171850544 13.1900051947497 0.4 0.4 0.4 0.0 0.0 0.0 -598.0 2.96336237e-07 0.00018182297837722762 +Body598 2.96336237e-07 0.00018182297837722762 7.07980829e-06 0.1339292312046117 0.0001441448776271945 9.896120622591337 340.6224666198475 68.34349319183616 253.90966951292768 0.4 0.4 0.4 0.0 0.0 0.0 -599.0 2.96336237e-07 0.0006942814168186987 +Body599 2.96336237e-07 0.0006942814168186987 7.07980829e-06 0.5114016788420551 6.8049624083765325e-06 9.459636655573432 154.44073711328545 304.1283217208743 271.0508981064775 0.4 0.4 0.4 0.0 0.0 0.0 -600.0 2.96336237e-07 0.003251383035479193 +Body600 2.96336237e-07 0.003251383035479193 7.07980829e-06 2.394940585507335 0.001630963008879431 7.576307456712098 102.8245241661817 141.06190766153344 347.97067601007785 0.4 0.4 0.4 0.0 0.0 0.0 -601.0 2.96336237e-07 0.0008037917662087488 +Body601 2.96336237e-07 0.0008037917662087488 7.07980829e-06 0.5920660537943178 0.0007213802108214524 2.389162061972422 131.06788341462484 323.2321573259845 70.0121031471566 0.4 0.4 0.4 0.0 0.0 0.0 -602.0 2.96336237e-07 0.00031217744297902224 +Body602 2.96336237e-07 0.00031217744297902224 7.07980829e-06 0.22994720090251478 0.00030871911273242983 0.3459312765581275 202.62648951170405 203.82198400891744 203.87635197029647 0.4 0.4 0.4 0.0 0.0 0.0 -603.0 2.96336237e-07 0.0019052077650725712 +Body603 2.96336237e-07 0.0019052077650725712 7.07980829e-06 1.4033595398038192 0.0010517567411638877 7.236562515014696 42.94701433835536 253.2677416745719 214.6279211388312 0.4 0.4 0.4 0.0 0.0 0.0 -604.0 2.96336237e-07 0.0005639353501258678 +Body604 2.96336237e-07 0.0005639353501258678 7.07980829e-06 0.415389894971165 0.001251950065233756 0.04115413323433487 123.64172924201583 97.5090925740975 219.3676930750815 0.4 0.4 0.4 0.0 0.0 0.0 -605.0 2.96336237e-07 0.0008162820050460149 +Body605 2.96336237e-07 0.0008162820050460149 7.07980829e-06 0.6012662555508111 0.0007676231845837971 4.744473889977715 57.08898789584103 52.682171100489235 345.59820093224397 0.4 0.4 0.4 0.0 0.0 0.0 -606.0 2.96336237e-07 0.003258024201738965 +Body606 2.96336237e-07 0.003258024201738965 7.07980829e-06 2.3998324110588225 0.0001344199983331823 7.195320590308699 149.8789211769831 232.34004143297224 20.78144650478375 0.4 0.4 0.4 0.0 0.0 0.0 -607.0 2.96336237e-07 0.000818478166276205 +Body607 2.96336237e-07 0.000818478166276205 7.07980829e-06 0.6028839288932338 7.619711362721837e-05 1.582109832541075 66.40045877569965 266.40990238571675 151.5736391228142 0.4 0.4 0.4 0.0 0.0 0.0 -608.0 2.96336237e-07 0.00026181785846330946 +Body608 2.96336237e-07 0.00026181785846330946 7.07980829e-06 0.19285276708469426 0.0016842003747065332 0.037999884642444644 172.67468602923137 328.5727689535254 200.22342970631107 0.4 0.4 0.4 0.0 0.0 0.0 -609.0 2.96336237e-07 0.0005906305617148067 +Body609 2.96336237e-07 0.0005906305617148067 7.07980829e-06 0.4350533566351437 0.0013220093252810908 4.485287553433146 85.1645899361914 15.799195242711468 275.19440166281646 0.4 0.4 0.4 0.0 0.0 0.0 -610.0 2.96336237e-07 0.00032702729366690516 +Body610 2.96336237e-07 0.00032702729366690516 7.07980829e-06 0.24088547231288193 7.239649384495158e-05 9.34505013261343 301.3019304591288 335.6101116776717 235.56122618193643 0.4 0.4 0.4 0.0 0.0 0.0 -611.0 2.96336237e-07 0.005068804676918208 +Body611 2.96336237e-07 0.005068804676918208 7.07980829e-06 3.733637626909645 0.000296354861569827 5.064043667693064 232.80870301152322 288.950474782517 198.78340556645938 0.4 0.4 0.4 0.0 0.0 0.0 -612.0 2.96336237e-07 0.0004350708241459647 +Body612 2.96336237e-07 0.0004350708241459647 7.07980829e-06 0.3204694011586146 0.001607124776444409 1.0855739782503697 31.890025121702593 247.87942399451754 178.5652208474234 0.4 0.4 0.4 0.0 0.0 0.0 -613.0 2.96336237e-07 0.0001445964642723686 +Body613 2.96336237e-07 0.0001445964642723686 7.07980829e-06 0.10650850331318125 0.00012408216834281383 5.256181079391067 53.409562736385524 8.005838299167175 31.765234187618567 0.4 0.4 0.4 0.0 0.0 0.0 -614.0 2.96336237e-07 0.001037340939048294 +Body614 2.96336237e-07 0.001037340939048294 7.07980829e-06 0.7640963518679676 0.00013706352333168513 8.464907155099446 13.166394059277055 330.2140099724791 183.4900568440762 0.4 0.4 0.4 0.0 0.0 0.0 -615.0 2.96336237e-07 0.0001853996130910315 +Body615 2.96336237e-07 0.0001853996130910315 7.07980829e-06 0.13656374935954846 0.0012220329386595716 3.5161206014426596 277.68898473237715 164.25753427871146 175.4559030865875 0.4 0.4 0.4 0.0 0.0 0.0 -616.0 2.96336237e-07 0.0030600086446074476 +Body616 2.96336237e-07 0.0030600086446074476 7.07980829e-06 2.2539758665787524 0.001938170619110775 10.991957090603162 169.56250753355766 253.61474809359726 333.56278601175336 0.4 0.4 0.4 0.0 0.0 0.0 -617.0 2.96336237e-07 0.0001933510892994848 +Body617 2.96336237e-07 0.0001933510892994848 7.07980829e-06 0.14242073787136622 5.59282843625155e-05 2.493053399120122 278.1744327941427 63.62100350694788 315.8316048030788 0.4 0.4 0.4 0.0 0.0 0.0 -618.0 2.96336237e-07 0.0001649118494017696 +Body618 2.96336237e-07 0.0001649118494017696 7.07980829e-06 0.12147264005920569 0.00015945612176493138 5.871601357082228 346.9485775057369 207.28250697682012 95.52624383984607 0.4 0.4 0.4 0.0 0.0 0.0 -619.0 2.96336237e-07 0.00027887053207297185 +Body619 2.96336237e-07 0.00027887053207297185 7.07980829e-06 0.20541361878181558 0.00093405207335318 8.810722728327729 229.82532153182538 238.9585445114894 99.56029732602983 0.4 0.4 0.4 0.0 0.0 0.0 -620.0 2.96336237e-07 0.00022959293197398893 +Body620 2.96336237e-07 0.00022959293197398893 7.07980829e-06 0.16911616531489085 0.00033642908510491933 0.7047005877969347 52.63028151883537 46.299069317996285 148.8642116985476 0.4 0.4 0.4 0.0 0.0 0.0 -621.0 2.96336237e-07 0.0006079587867474103 +Body621 2.96336237e-07 0.0006079587867474103 7.07980829e-06 0.44781717712400537 0.0013185468969901452 7.308664230013674 112.46886738432933 46.86784968040457 285.07913941124656 0.4 0.4 0.4 0.0 0.0 0.0 -622.0 2.96336237e-07 0.0026061845394853432 +Body622 2.96336237e-07 0.0026061845394853432 7.07980829e-06 1.9196929610648872 0.0012083646380991453 6.640368790446349 33.235414808784235 244.45399861956838 50.2951600707005 0.4 0.4 0.4 0.0 0.0 0.0 -623.0 2.96336237e-07 0.0003170110547748826 +Body623 2.96336237e-07 0.0003170110547748826 7.07980829e-06 0.23350759749011243 0.0015671626539036127 5.2729849043237245 212.27489278714967 350.2070572217914 272.5174350775053 0.4 0.4 0.4 0.0 0.0 0.0 -624.0 2.96336237e-07 0.001730607217961456 +Body624 2.96336237e-07 0.001730607217961456 7.07980829e-06 1.2747502889203512 0.0011308593104387016 5.277543759453205 121.65950877291856 122.31688340803859 240.58549078686895 0.4 0.4 0.4 0.0 0.0 0.0 -625.0 2.96336237e-07 0.00045971176710267036 +Body625 2.96336237e-07 0.00045971176710267036 7.07980829e-06 0.3386197063389724 0.0019245478296946632 6.706216859920054 120.32281524162406 290.819121967765 289.80547811454966 0.4 0.4 0.4 0.0 0.0 0.0 -626.0 2.96336237e-07 0.0002908459664453671 +Body626 2.96336237e-07 0.0002908459664453671 7.07980829e-06 0.21423462002792132 0.001969455049293789 11.085891427221117 132.95197570547631 28.5155536215231 27.955901095355458 0.4 0.4 0.4 0.0 0.0 0.0 -627.0 2.96336237e-07 0.0005361763985903277 +Body627 2.96336237e-07 0.0005361763985903277 7.07980829e-06 0.39494289167498225 0.0006466901925786029 1.7275362827264746 52.27335330682294 171.19288612108963 40.59209846221847 0.4 0.4 0.4 0.0 0.0 0.0 -628.0 2.96336237e-07 0.00023450395183713944 +Body628 2.96336237e-07 0.00023450395183713944 7.07980829e-06 0.17273358001446604 0.0012843551732391793 0.240042602593119 204.30976402358672 291.4345369683879 127.56746664520237 0.4 0.4 0.4 0.0 0.0 0.0 -629.0 2.96336237e-07 0.00016800600223417086 +Body629 2.96336237e-07 0.00016800600223417086 7.07980829e-06 0.12375176623880946 0.0009103926418732471 7.69965215426651 72.52068660068198 60.65498279678075 309.48605631919054 0.4 0.4 0.4 0.0 0.0 0.0 -630.0 2.96336237e-07 0.0007723627532455746 +Body630 2.96336237e-07 0.0007723627532455746 7.07980829e-06 0.5689157150349078 0.0019387307530750579 7.7625148511423765 15.896642110598476 241.9063891364222 175.27318973415365 0.4 0.4 0.4 0.0 0.0 0.0 -631.0 2.96336237e-07 0.002486831247250957 +Body631 2.96336237e-07 0.002486831247250957 7.07980829e-06 1.8317783596577595 0.0016743653466072485 0.7366777508667895 3.356802695185532 59.64222825547303 84.47374524883585 0.4 0.4 0.4 0.0 0.0 0.0 -632.0 2.96336237e-07 0.0009871990228380316 +Body632 2.96336237e-07 0.0009871990228380316 7.07980829e-06 0.7271622506388373 0.0004894926225488888 0.8463098189096294 190.14793558849976 239.45267806069756 339.5271823753155 0.4 0.4 0.4 0.0 0.0 0.0 -633.0 2.96336237e-07 0.0024870247797498914 +Body633 2.96336237e-07 0.0024870247797498914 7.07980829e-06 1.8319209140203971 0.0018232071393422975 4.649935149793254 24.48792011915197 256.5074942589969 27.33961953231162 0.4 0.4 0.4 0.0 0.0 0.0 -634.0 2.96336237e-07 0.001226253834333867 +Body634 2.96336237e-07 0.001226253834333867 7.07980829e-06 0.9032479544654253 0.00035321447020389055 7.67738566283 321.6636415432153 24.46232049015446 174.35299257792914 0.4 0.4 0.4 0.0 0.0 0.0 -635.0 2.96336237e-07 0.0001952149125384996 +Body635 2.96336237e-07 0.0001952149125384996 7.07980829e-06 0.14379361392768433 0.0014748479195456098 5.716360603748947 186.838721744644 96.22300231415029 253.21447381830825 0.4 0.4 0.4 0.0 0.0 0.0 -636.0 2.96336237e-07 0.0001421534976608017 +Body636 2.96336237e-07 0.0001421534976608017 7.07980829e-06 0.10470903526428106 0.0004282321287474031 1.8946056877858317 125.71925949311029 37.17364830551126 314.9302159306426 0.4 0.4 0.4 0.0 0.0 0.0 -637.0 2.96336237e-07 0.00013684327484605717 +Body637 2.96336237e-07 0.00013684327484605717 7.07980829e-06 0.10079757112783726 0.0011260152644128496 4.954417366881907 197.40749831124947 246.4163541945344 127.46513997641759 0.4 0.4 0.4 0.0 0.0 0.0 -638.0 2.96336237e-07 0.0032242109199887713 +Body638 2.96336237e-07 0.0032242109199887713 7.07980829e-06 2.3749258405597247 0.0013893562078547517 8.490722761944754 174.42451874149117 109.56331625471293 139.64190938036091 0.4 0.4 0.4 0.0 0.0 0.0 -639.0 2.96336237e-07 0.000255630348446776 +Body639 2.96336237e-07 0.000255630348446776 7.07980829e-06 0.188295100793111 0.0004968066058958826 8.200683059805339 26.93767816334544 184.29122347481268 83.5885263298429 0.4 0.4 0.4 0.0 0.0 0.0 -640.0 2.96336237e-07 0.003560890948578924 +Body640 2.96336237e-07 0.003560890948578924 7.07980829e-06 2.622921433820083 0.0003197885895524075 8.459530567219446 311.9819100543256 211.94534747535357 181.0177979938429 0.4 0.4 0.4 0.0 0.0 0.0 -641.0 2.96336237e-07 0.0026795472569350305 +Body641 2.96336237e-07 0.0026795472569350305 7.07980829e-06 1.9737313033844868 0.0004561766998506409 4.075608711482687 202.22665550882067 124.25186617516704 281.22245218250043 0.4 0.4 0.4 0.0 0.0 0.0 -642.0 2.96336237e-07 0.0004998714824267933 +Body642 2.96336237e-07 0.0004998714824267933 7.07980829e-06 0.3682010048456824 0.0008391449584152692 4.540101495200403 197.81257584084372 128.159905230966 163.6508318701311 0.4 0.4 0.4 0.0 0.0 0.0 -643.0 2.96336237e-07 0.0002474592404428257 +Body643 2.96336237e-07 0.0002474592404428257 7.07980829e-06 0.1822763334028394 0.0003184451665412306 0.04858474776077769 155.96555493402232 337.1480022566122 169.02144916062696 0.4 0.4 0.4 0.0 0.0 0.0 -644.0 2.96336237e-07 0.0009028080095618069 +Body644 2.96336237e-07 0.0009028080095618069 7.07980829e-06 0.6650005611233689 0.00192871250885523 2.033364793084355 35.754249594685135 237.97464340203368 331.7190243653989 0.4 0.4 0.4 0.0 0.0 0.0 -645.0 2.96336237e-07 0.00018159315424751834 +Body645 2.96336237e-07 0.00018159315424751834 7.07980829e-06 0.13375994474104727 9.811202791236438e-05 2.2579088584966875 164.16846395501065 169.46331898131555 187.08397642347268 0.4 0.4 0.4 0.0 0.0 0.0 -646.0 2.96336237e-07 0.0001969438005298225 +Body646 2.96336237e-07 0.0001969438005298225 7.07980829e-06 0.145067097849152 7.98948634108138e-05 5.056301536012419 54.6012366078569 152.94987752228718 293.59100133569535 0.4 0.4 0.4 0.0 0.0 0.0 -647.0 2.96336237e-07 0.00018253913903001993 +Body647 2.96336237e-07 0.00018253913903001993 7.07980829e-06 0.134456748939188 0.0007885297463161409 7.998766353585145 329.66308300857037 142.40091293152295 195.08877923911388 0.4 0.4 0.4 0.0 0.0 0.0 -648.0 2.96336237e-07 0.0010012008611789895 +Body648 2.96336237e-07 0.0010012008611789895 7.07980829e-06 0.7374758834986245 0.0008944335972933425 3.08910296816031 308.0829434011404 88.44126340113061 61.511908742687396 0.4 0.4 0.4 0.0 0.0 0.0 -649.0 2.96336237e-07 0.00017920413203351859 +Body649 2.96336237e-07 0.00017920413203351859 7.07980829e-06 0.13200021166821252 0.001973824026582865 2.9139223601352673 337.9176766578831 339.15607143232756 291.8971934171335 0.4 0.4 0.4 0.0 0.0 0.0 -650.0 2.96336237e-07 0.0005424370023288993 +Body650 2.96336237e-07 0.0005424370023288993 7.07980829e-06 0.3995543981691946 0.0004742912607023718 5.689270060432094 271.4202719848906 1.5739119660578094 227.40922594438504 0.4 0.4 0.4 0.0 0.0 0.0 -651.0 2.96336237e-07 0.0008854653444048179 +Body651 2.96336237e-07 0.0008854653444048179 7.07980829e-06 0.6522261041639429 0.0018448416347183673 4.451400094266383 189.13747672082027 222.415694177009 8.122993879845518 0.4 0.4 0.4 0.0 0.0 0.0 -652.0 2.96336237e-07 0.0008694532655168269 +Body652 2.96336237e-07 0.0008694532655168269 7.07980829e-06 0.6404317455267905 0.0004377978709931798 10.690648451723188 258.4604132749266 240.45445892419482 299.1240070410905 0.4 0.4 0.4 0.0 0.0 0.0 -653.0 2.96336237e-07 0.0005874066758094755 +Body653 2.96336237e-07 0.0005874066758094755 7.07980829e-06 0.43267867019756595 0.0006281792952345125 5.71369078021565 54.584105248947814 341.5389079819305 339.8448963020495 0.4 0.4 0.4 0.0 0.0 0.0 -654.0 2.96336237e-07 0.00015901474490431352 +Body654 2.96336237e-07 0.00015901474490431352 7.07980829e-06 0.11712888395793357 0.00033420516718611843 10.079639002914915 12.72024175587819 54.80935584066693 290.1403830678467 0.4 0.4 0.4 0.0 0.0 0.0 -655.0 2.96336237e-07 0.0008367144613707807 +Body655 2.96336237e-07 0.0008367144613707807 7.07980829e-06 0.6163166259254526 0.0006138384183936136 2.1220325309486077 330.18413832377274 27.996198028777396 126.1181923299269 0.4 0.4 0.4 0.0 0.0 0.0 -656.0 2.96336237e-07 0.000817617054822833 +Body656 2.96336237e-07 0.000817617054822833 7.07980829e-06 0.6022496416542891 0.0007079234911322488 4.880614628768484 112.2946253899763 291.1896120333841 335.56499821019673 0.4 0.4 0.4 0.0 0.0 0.0 -657.0 2.96336237e-07 0.00030642858518189293 +Body657 2.96336237e-07 0.00030642858518189293 7.07980829e-06 0.22571264203682084 0.0001141107467010895 0.5281438837468506 254.84352251320942 61.46898436421913 176.76216336533523 0.4 0.4 0.4 0.0 0.0 0.0 -658.0 2.96336237e-07 0.0004456773618062657 +Body658 2.96336237e-07 0.0004456773618062657 7.07980829e-06 0.3282820849418475 0.0004042465307940946 3.7503005974513846 238.77939024376533 296.06082811160405 91.75212879566924 0.4 0.4 0.4 0.0 0.0 0.0 -659.0 2.96336237e-07 0.00024897193209457867 +Body659 2.96336237e-07 0.00024897193209457867 7.07980829e-06 0.18339056897293657 0.0014900248859833283 11.263834448814169 347.22461050262575 279.3372667732881 191.89560719513707 0.4 0.4 0.4 0.0 0.0 0.0 -660.0 2.96336237e-07 0.00022666457893856436 +Body660 2.96336237e-07 0.00022666457893856436 7.07980829e-06 0.16695916582983994 0.0004164000259568861 10.44010411581719 74.47573238247747 317.3036574166131 128.27636752925542 0.4 0.4 0.4 0.0 0.0 0.0 -661.0 2.96336237e-07 0.0005509794482643657 +Body661 2.96336237e-07 0.0005509794482643657 7.07980829e-06 0.4058466898638688 0.001868474142519383 4.290113023581601 75.15165790995682 77.41956431569024 75.98320995463946 0.4 0.4 0.4 0.0 0.0 0.0 -662.0 2.96336237e-07 0.0008553855328424462 +Body662 2.96336237e-07 0.0008553855328424462 7.07980829e-06 0.6300695754716784 0.0003500264064981754 0.8756494453825668 227.34439867668328 195.10245611576033 306.76358495203453 0.4 0.4 0.4 0.0 0.0 0.0 -663.0 2.96336237e-07 0.00021847646553867044 +Body663 2.96336237e-07 0.00021847646553867044 7.07980829e-06 0.1609278724121906 0.0015707531676115054 5.539447860380739 316.2646884519082 19.14667473997313 195.6501405355072 0.4 0.4 0.4 0.0 0.0 0.0 -664.0 2.96336237e-07 0.0046299207857439595 +Body664 2.96336237e-07 0.0046299207857439595 7.07980829e-06 3.410359553600857 0.001896588298002862 6.312335279795444 332.4966817409635 83.61093784848859 129.63382325605707 0.4 0.4 0.4 0.0 0.0 0.0 -665.0 2.96336237e-07 0.0006675378879534775 +Body665 2.96336237e-07 0.0006675378879534775 7.07980829e-06 0.4917026270908161 0.0018056644096763215 0.03984059849205596 326.2892439770493 154.1995291255449 275.56243137649767 0.4 0.4 0.4 0.0 0.0 0.0 -666.0 2.96336237e-07 0.00016422724719542423 +Body666 2.96336237e-07 0.00016422724719542423 7.07980829e-06 0.12096836800297199 0.0010632375940384557 1.898596693109538 284.6339609263093 177.91170359269552 170.17335060450043 0.4 0.4 0.4 0.0 0.0 0.0 -667.0 2.96336237e-07 0.00013928586120913445 +Body667 2.96336237e-07 0.00013928586120913445 7.07980829e-06 0.1025967590889931 0.0011505802075445371 8.0853667703526 17.643915781547662 37.81574822381601 147.74946480962396 0.4 0.4 0.4 0.0 0.0 0.0 -668.0 2.96336237e-07 0.00030551019102325244 +Body668 2.96336237e-07 0.00030551019102325244 7.07980829e-06 0.2250361608532691 0.0007463695616484125 2.9654372783413208 346.499205866674 192.7895672860623 346.62919463902944 0.4 0.4 0.4 0.0 0.0 0.0 -669.0 2.96336237e-07 0.00046071357116781613 +Body669 2.96336237e-07 0.00046071357116781613 7.07980829e-06 0.33935762653728896 0.0005718751041345676 10.28285976001631 200.006881979692 41.74957018172289 77.92610778956914 0.4 0.4 0.4 0.0 0.0 0.0 -670.0 2.96336237e-07 0.0004757090054981114 +Body670 2.96336237e-07 0.0004757090054981114 7.07980829e-06 0.3504031335978378 0.0016231463843525307 8.030331289553216 15.924355318435744 268.6979116032126 60.52120112419434 0.4 0.4 0.4 0.0 0.0 0.0 -671.0 2.96336237e-07 0.0006120138337095581 +Body671 2.96336237e-07 0.0006120138337095581 7.07980829e-06 0.4508040895978089 0.000265285576125677 6.8369691834517505 316.3659801854172 71.741967981769 201.95398950257825 0.4 0.4 0.4 0.0 0.0 0.0 -672.0 2.96336237e-07 0.0002678933984330214 +Body672 2.96336237e-07 0.0002678933984330214 7.07980829e-06 0.19732795720949928 0.0014827227710590524 9.026813439297806 309.574481788882 64.29359356770362 315.62242388091744 0.4 0.4 0.4 0.0 0.0 0.0 -673.0 2.96336237e-07 0.00018963216147158642 +Body673 2.96336237e-07 0.00018963216147158642 7.07980829e-06 0.13968140784090927 0.0002432662323447128 1.898068040476368 32.77520487590174 187.89963303352357 123.05929733557318 0.4 0.4 0.4 0.0 0.0 0.0 -674.0 2.96336237e-07 0.000434625653282486 +Body674 2.96336237e-07 0.000434625653282486 7.07980829e-06 0.32014149215595433 0.00022612721316125548 10.683120155053267 110.32662597708337 10.31254512885041 235.1266578745043 0.4 0.4 0.4 0.0 0.0 0.0 -675.0 2.96336237e-07 0.0001472189376390587 +Body675 2.96336237e-07 0.0001472189376390587 7.07980829e-06 0.10844019448329664 0.0009411317524646069 6.1396351895991 81.4179177567502 358.59783028280935 140.88338828782435 0.4 0.4 0.4 0.0 0.0 0.0 -676.0 2.96336237e-07 0.000155275679541639 +Body676 2.96336237e-07 0.000155275679541639 7.07980829e-06 0.11437472079376051 0.00014078280759094789 6.80643269318097 100.47008138693961 234.06621211429206 30.227410402726072 0.4 0.4 0.4 0.0 0.0 0.0 -677.0 2.96336237e-07 0.00015085363059412783 +Body677 2.96336237e-07 0.00015085363059412783 7.07980829e-06 0.11111747783593914 0.0019035866271859907 9.206963338815642 143.93390754803625 255.0214135079393 164.96961100176586 0.4 0.4 0.4 0.0 0.0 0.0 -678.0 2.96336237e-07 0.0006284217651180013 +Body678 2.96336237e-07 0.0006284217651180013 7.07980829e-06 0.4628900297732671 0.00047998741958668416 1.0303231727163369 64.52588412504464 11.451639250708514 337.19518620904057 0.4 0.4 0.4 0.0 0.0 0.0 -679.0 2.96336237e-07 0.0005667897074819582 +Body679 2.96336237e-07 0.0005667897074819582 7.07980829e-06 0.41749238987965404 0.0016594297588471735 8.093638105658696 206.58695034847358 20.457138485484986 195.3333738138891 0.4 0.4 0.4 0.0 0.0 0.0 -680.0 2.96336237e-07 0.0003023018289134171 +Body680 2.96336237e-07 0.0003023018289134171 7.07980829e-06 0.22267290910901064 0.0007335787751952187 10.488189469864082 332.07166362509565 297.83121697771855 96.42669951726079 0.4 0.4 0.4 0.0 0.0 0.0 -681.0 2.96336237e-07 0.0002666793468056547 +Body681 2.96336237e-07 0.0002666793468056547 7.07980829e-06 0.19643369729500934 0.0009795508494005235 2.132504721935984 88.01559085201606 259.0222461437196 143.73866315216463 0.4 0.4 0.4 0.0 0.0 0.0 -682.0 2.96336237e-07 0.00018903218193703922 +Body682 2.96336237e-07 0.00018903218193703922 7.07980829e-06 0.13923946811185206 6.602681404781175e-05 4.603002472462074 288.85709177130957 136.40944246624719 329.89625217303643 0.4 0.4 0.4 0.0 0.0 0.0 -683.0 2.96336237e-07 0.00032821229707185543 +Body683 2.96336237e-07 0.00032821229707185543 7.07980829e-06 0.2417583355583105 0.0015448242869727717 10.177886468554314 197.6042898566892 248.32269227881912 224.3736884568563 0.4 0.4 0.4 0.0 0.0 0.0 -684.0 2.96336237e-07 0.0001476157870951627 +Body684 2.96336237e-07 0.0001476157870951627 7.07980829e-06 0.10873251035576964 0.0005980920597091385 8.435273501160374 342.7004387606334 332.6896722540702 309.5558133299631 0.4 0.4 0.4 0.0 0.0 0.0 -685.0 2.96336237e-07 0.00023150245382020737 +Body685 2.96336237e-07 0.00023150245382020737 7.07980829e-06 0.17052270256950486 0.0013616593545773424 10.890136087894044 304.6528113313791 61.04197597194677 92.14557773468027 0.4 0.4 0.4 0.0 0.0 0.0 -686.0 2.96336237e-07 0.002179631735533323 +Body686 2.96336237e-07 0.002179631735533323 7.07980829e-06 1.6054978598112797 0.0018262799514842743 4.4325784016024885 3.7549247937623407 183.00283602981585 201.8865183895837 0.4 0.4 0.4 0.0 0.0 0.0 -687.0 2.96336237e-07 0.0013158755088717858 +Body687 2.96336237e-07 0.0013158755088717858 7.07980829e-06 0.9692625037663991 0.0017704630109185754 8.578872157801683 254.43921029038702 150.26756994645848 147.04436858266612 0.4 0.4 0.4 0.0 0.0 0.0 -688.0 2.96336237e-07 0.0004939073938160034 +Body688 2.96336237e-07 0.0004939073938160034 7.07980829e-06 0.3638079088266409 3.476963813007497e-05 7.372412467124726 174.2397072432993 36.804476049813175 252.09380653575596 0.4 0.4 0.4 0.0 0.0 0.0 -689.0 2.96336237e-07 0.0009275705379094532 +Body689 2.96336237e-07 0.0009275705379094532 7.07980829e-06 0.6832404250497098 0.0012888767115054062 6.14322940730504 289.9180198728175 52.50586858445317 313.02109249593957 0.4 0.4 0.4 0.0 0.0 0.0 -690.0 2.96336237e-07 0.001703767654000007 +Body690 2.96336237e-07 0.001703767654000007 7.07980829e-06 1.2549804985489377 0.0012611754043086853 6.907937339024762 21.593275472050017 306.5247233767375 334.8416878198467 0.4 0.4 0.4 0.0 0.0 0.0 -691.0 2.96336237e-07 0.00014982533379061578 +Body691 2.96336237e-07 0.00014982533379061578 7.07980829e-06 0.11036004331598093 0.0010076489714658532 5.873722340739745 130.13028564258022 280.7695443082286 332.320263822961 0.4 0.4 0.4 0.0 0.0 0.0 -692.0 2.96336237e-07 0.00019578934965292167 +Body692 2.96336237e-07 0.00019578934965292167 7.07980829e-06 0.14421673933128612 0.0015622315821619312 11.09482074137682 159.1055068305897 332.4641004637756 66.24381345940542 0.4 0.4 0.4 0.0 0.0 0.0 -693.0 2.96336237e-07 0.0005403743795116072 +Body693 2.96336237e-07 0.0005403743795116072 7.07980829e-06 0.3980350880652103 0.0011789556791269224 9.365646318173521 179.08988980834505 182.25478313354176 230.60531044742112 0.4 0.4 0.4 0.0 0.0 0.0 -694.0 2.96336237e-07 0.00013842399008811172 +Body694 2.96336237e-07 0.00013842399008811172 7.07980829e-06 0.10196191228543591 0.001511674657718188 6.479749813751055 303.7457569578909 58.507652243295375 15.998340357817439 0.4 0.4 0.4 0.0 0.0 0.0 -695.0 2.96336237e-07 0.000786370680814055 +Body695 2.96336237e-07 0.000786370680814055 7.07980829e-06 0.5792338331669525 0.0015758918681709252 2.223362196868569 345.57393152987873 54.32062551066704 256.30215707274664 0.4 0.4 0.4 0.0 0.0 0.0 -696.0 2.96336237e-07 0.00023215604873114143 +Body696 2.96336237e-07 0.00023215604873114143 7.07980829e-06 0.17100413492047556 0.000896305323811314 1.477365418838949 283.2291601972887 120.31150953749442 10.525291736890637 0.4 0.4 0.4 0.0 0.0 0.0 -697.0 2.96336237e-07 0.0009573509260265156 +Body697 2.96336237e-07 0.0009573509260265156 7.07980829e-06 0.7051764010253001 0.0019473619911553302 5.46883494082748 134.36185274508637 184.44009607520738 171.13748203011968 0.4 0.4 0.4 0.0 0.0 0.0 -698.0 2.96336237e-07 0.000986443639892288 +Body698 2.96336237e-07 0.000986443639892288 7.07980829e-06 0.7266058421029556 0.0017744648819095605 2.4134341797858845 213.37357339309585 70.55466510705511 278.87927999605495 0.4 0.4 0.4 0.0 0.0 0.0 -699.0 2.96336237e-07 0.0005347437515155118 +Body699 2.96336237e-07 0.0005347437515155118 7.07980829e-06 0.3938876162470352 4.179300896003979e-05 8.223098115975583 85.94541014994134 271.8418525346638 50.56502453799913 0.4 0.4 0.4 0.0 0.0 0.0 -700.0 2.96336237e-07 0.0011825627283298537 +Body700 2.96336237e-07 0.0011825627283298537 7.07980829e-06 0.8710654641673258 0.0005109129898239557 7.391471968575326 27.768736733955453 87.73669240747158 148.38631012868396 0.4 0.4 0.4 0.0 0.0 0.0 -701.0 2.96336237e-07 0.0008642834152835138 +Body701 2.96336237e-07 0.0008642834152835138 7.07980829e-06 0.63662367861814 0.0015328328582410093 10.518483860791719 1.324842387549117 251.57031937929105 356.72404795950865 0.4 0.4 0.4 0.0 0.0 0.0 -702.0 2.96336237e-07 0.00017933377161084873 +Body702 2.96336237e-07 0.00017933377161084873 7.07980829e-06 0.13209570305813736 0.001322871106967368 1.783841837906193 146.87654874467452 95.91665072944734 45.62504352116719 0.4 0.4 0.4 0.0 0.0 0.0 -703.0 2.96336237e-07 0.00014018472613653047 +Body703 2.96336237e-07 0.00014018472613653047 7.07980829e-06 0.10325885520994202 0.0017386158889329596 2.9940039457503267 311.39999279407516 208.4438630978695 314.67438404243035 0.4 0.4 0.4 0.0 0.0 0.0 -704.0 2.96336237e-07 0.00015540204600507363 +Body704 2.96336237e-07 0.00015540204600507363 7.07980829e-06 0.11446780123633656 0.0006725612422352022 4.917737372954217 283.5772959714623 71.2268392860552 20.739701307542546 0.4 0.4 0.4 0.0 0.0 0.0 -705.0 2.96336237e-07 0.0010803722366743227 +Body705 2.96336237e-07 0.0010803722366743227 7.07980829e-06 0.7957928330290784 0.001841262773469651 5.178751748100323 325.4814860257893 191.2892219329175 245.12287325303154 0.4 0.4 0.4 0.0 0.0 0.0 -706.0 2.96336237e-07 0.0003336506402990743 +Body706 2.96336237e-07 0.0003336506402990743 7.07980829e-06 0.245764172081003 0.0008654037237796469 9.939631759610565 230.74275967542837 22.980689444767926 193.7582323009708 0.4 0.4 0.4 0.0 0.0 0.0 -707.0 2.96336237e-07 0.0001898928096710243 +Body707 2.96336237e-07 0.0001898928096710243 7.07980829e-06 0.1398733990472856 9.676663150501012e-05 8.314426882477536 147.19261490448886 240.45701745184593 27.02600158549476 0.4 0.4 0.4 0.0 0.0 0.0 -708.0 2.96336237e-07 0.0006354028822312142 +Body708 2.96336237e-07 0.0006354028822312142 7.07980829e-06 0.46803226017927313 0.0005896313259031769 1.5927514004708827 145.89505669147474 320.41144833715174 224.47590179873464 0.4 0.4 0.4 0.0 0.0 0.0 -709.0 2.96336237e-07 0.00034681023979569645 +Body709 2.96336237e-07 0.00034681023979569645 7.07980829e-06 0.25545741910221637 0.0007136334057754165 4.50399133200968 172.94403815595263 133.4379306179208 151.9923540365337 0.4 0.4 0.4 0.0 0.0 0.0 -710.0 2.96336237e-07 0.0004473427981548912 +Body710 2.96336237e-07 0.0004473427981548912 7.07980829e-06 0.3295088309328238 0.00013825366577298724 0.6640671450405241 113.36805573037367 195.17836298394744 272.68190859714724 0.4 0.4 0.4 0.0 0.0 0.0 -711.0 2.96336237e-07 0.0004337909237351195 +Body711 2.96336237e-07 0.0004337909237351195 7.07980829e-06 0.3195266376004942 0.0005762012937554643 6.664872975247961 125.97058901306497 139.46256025551878 194.88332638602157 0.4 0.4 0.4 0.0 0.0 0.0 -712.0 2.96336237e-07 0.00022887849633253414 +Body712 2.96336237e-07 0.00022887849633253414 7.07980829e-06 0.16858991820872643 0.0009324015520148652 3.87237174229875 210.3622711985168 217.76685945633358 226.25184493096793 0.4 0.4 0.4 0.0 0.0 0.0 -713.0 2.96336237e-07 0.0001370280669148757 +Body713 2.96336237e-07 0.0001370280669148757 7.07980829e-06 0.10093368736534727 0.0009578400499910475 7.837345853171855 211.1012710762346 352.555679574253 98.72806588507845 0.4 0.4 0.4 0.0 0.0 0.0 -714.0 2.96336237e-07 0.0003802455491822092 +Body714 2.96336237e-07 0.0003802455491822092 7.07980829e-06 0.280085578431636 0.0012200235046621196 8.03839773670988 118.75583481423674 351.88628181557317 159.5308600334554 0.4 0.4 0.4 0.0 0.0 0.0 -715.0 2.96336237e-07 0.0012710618691298007 +Body715 2.96336237e-07 0.0012710618691298007 7.07980829e-06 0.9362531648385521 0.001960157851242125 10.763840351695578 43.05187730426613 115.02995672645146 27.80931454782792 0.4 0.4 0.4 0.0 0.0 0.0 -716.0 2.96336237e-07 0.00015113095705303057 +Body716 2.96336237e-07 0.00015113095705303057 7.07980829e-06 0.11132175410379613 0.00198126814743763 6.286001060098768 87.14091069310513 338.04209973091486 55.507811122078934 0.4 0.4 0.4 0.0 0.0 0.0 -717.0 2.96336237e-07 0.00050657397189937 +Body717 2.96336237e-07 0.00050657397189937 7.07980829e-06 0.3731380005446354 0.0016662782222925448 3.2831614880553754 78.53670413788092 281.76281833275186 241.33812351763282 0.4 0.4 0.4 0.0 0.0 0.0 -718.0 2.96336237e-07 0.00033871726387646765 +Body718 2.96336237e-07 0.00033871726387646765 7.07980829e-06 0.24949620312889192 0.000652351960471266 9.107336295930738 293.4968146155879 130.3880884808986 356.21004108918163 0.4 0.4 0.4 0.0 0.0 0.0 -719.0 2.96336237e-07 0.0008529081508180829 +Body719 2.96336237e-07 0.0008529081508180829 7.07980829e-06 0.6282447573277652 0.0001692190026859606 0.4135194149743559 183.7778900459685 3.1747878073784532 37.93304287401226 0.4 0.4 0.4 0.0 0.0 0.0 -720.0 2.96336237e-07 0.0014504542485699796 +Body720 2.96336237e-07 0.0014504542485699796 7.07980829e-06 1.0683920379162042 0.0014337151872125485 0.15507329878585382 222.75507709194997 353.7339650120208 253.22449111367806 0.4 0.4 0.4 0.0 0.0 0.0 -721.0 2.96336237e-07 0.0003995851699871754 +Body721 2.96336237e-07 0.0003995851699871754 7.07980829e-06 0.29433097562683586 5.018617293303635e-06 4.606276855402575 196.30495919528175 80.02677322973838 261.5544103562484 0.4 0.4 0.4 0.0 0.0 0.0 -722.0 2.96336237e-07 0.0004663049126723303 +Body722 2.96336237e-07 0.0004663049126723303 7.07980829e-06 0.3434761602660039 0.0014277603419004838 5.4988869942119445 18.336750193775515 61.72061996821379 24.32664588396063 0.4 0.4 0.4 0.0 0.0 0.0 -723.0 2.96336237e-07 0.00016160736072448088 +Body723 2.96336237e-07 0.00016160736072448088 7.07980829e-06 0.11903858231785998 0.0014582262824983866 5.448228802161735 118.05515219608522 99.46467963418462 74.32735266079698 0.4 0.4 0.4 0.0 0.0 0.0 -724.0 2.96336237e-07 0.00030145139394952675 +Body724 2.96336237e-07 0.00030145139394952675 7.07980829e-06 0.22204648607975494 0.0002651624829284599 3.4839261536774204 353.7033605924432 26.63014034431109 258.883489782699 0.4 0.4 0.4 0.0 0.0 0.0 -725.0 2.96336237e-07 0.00019587870513939723 +Body725 2.96336237e-07 0.00019587870513939723 7.07980829e-06 0.14428255780876567 0.0005886921483224232 7.122349866659202 187.9185724288045 277.49814412774685 339.1040220890197 0.4 0.4 0.4 0.0 0.0 0.0 -726.0 2.96336237e-07 0.00018223697272332903 +Body726 2.96336237e-07 0.00018223697272332903 7.07980829e-06 0.1342341758545744 0.001993061737343073 1.5186597635745005 186.16266229109107 120.82284316697938 36.16980590190327 0.4 0.4 0.4 0.0 0.0 0.0 -727.0 2.96336237e-07 0.002208504304487439 +Body727 2.96336237e-07 0.002208504304487439 7.07980829e-06 1.6267651440535622 0.001997985158804577 0.8593148249474335 72.18814289875074 80.88938512039681 349.70856370829034 0.4 0.4 0.4 0.0 0.0 0.0 -728.0 2.96336237e-07 0.0008108208240677552 +Body728 2.96336237e-07 0.0008108208240677552 7.07980829e-06 0.597243596938487 0.0005039148462018542 4.7811402892298025 218.77516459671426 24.768981392881912 280.2967231155555 0.4 0.4 0.4 0.0 0.0 0.0 -729.0 2.96336237e-07 0.001132726282941681 +Body729 2.96336237e-07 0.001132726282941681 7.07980829e-06 0.8343563701002331 0.00039414985266650896 3.6037723479865944 83.15750376306154 75.42354496372273 97.74895243636577 0.4 0.4 0.4 0.0 0.0 0.0 -730.0 2.96336237e-07 0.00032727320517223467 +Body730 2.96336237e-07 0.00032727320517223467 7.07980829e-06 0.24106660859800436 0.00037987141173158616 10.274740295263058 197.91773818633536 352.5865595760306 261.0191288110265 0.4 0.4 0.4 0.0 0.0 0.0 -731.0 2.96336237e-07 0.0009752402802714085 +Body731 2.96336237e-07 0.0009752402802714085 7.07980829e-06 0.7183535444323048 0.0013231086235482108 0.9592225266971143 274.38243588304704 344.23442375404215 260.73810812560674 0.4 0.4 0.4 0.0 0.0 0.0 -732.0 2.96336237e-07 0.0011428393782413875 +Body732 2.96336237e-07 0.0011428393782413875 7.07980829e-06 0.8418055885140829 0.0010192051936423027 2.1830154450298775 22.895436977403044 357.1218738349401 85.62306577590662 0.4 0.4 0.4 0.0 0.0 0.0 -733.0 2.96336237e-07 0.0004572602444272732 +Body733 2.96336237e-07 0.0004572602444272732 7.07980829e-06 0.3368139359675542 0.000555346752112463 6.319773644161184 113.6762916782172 224.86454862560015 165.82655056882967 0.4 0.4 0.4 0.0 0.0 0.0 -734.0 2.96336237e-07 0.00015778980918020817 +Body734 2.96336237e-07 0.00015778980918020817 7.07980829e-06 0.11622660691204703 0.0012360086888716822 3.7103248613231874 141.15874516414368 232.6102120136255 8.479461773646221 0.4 0.4 0.4 0.0 0.0 0.0 -735.0 2.96336237e-07 0.0014942829058571304 +Body735 2.96336237e-07 0.0014942829058571304 7.07980829e-06 1.1006758472982074 0.000349403337070044 0.14346873743832864 76.87539447076438 105.24609325235642 249.8553971165713 0.4 0.4 0.4 0.0 0.0 0.0 -736.0 2.96336237e-07 0.00014637261873858538 +Body736 2.96336237e-07 0.00014637261873858538 7.07980829e-06 0.10781680331070699 0.0012736508360480675 11.221630354955153 129.42714487972242 65.22069766832125 279.98812006676945 0.4 0.4 0.4 0.0 0.0 0.0 -737.0 2.96336237e-07 0.0008608180061731988 +Body737 2.96336237e-07 0.0008608180061731988 7.07980829e-06 0.6340710882794698 0.001511988582795197 4.2441144550867795 249.39391931471766 309.17457420265424 17.839708517509724 0.4 0.4 0.4 0.0 0.0 0.0 -738.0 2.96336237e-07 0.00022551393979595722 +Body738 2.96336237e-07 0.00022551393979595722 7.07980829e-06 0.16611161500244348 0.0017230161759853974 2.754899549887548 284.2214645492094 329.7467797502512 345.5511870893493 0.4 0.4 0.4 0.0 0.0 0.0 -739.0 2.96336237e-07 0.0008344058534459075 +Body739 2.96336237e-07 0.0008344058534459075 7.07980829e-06 0.6146161253215647 0.0011901584859750538 0.6692427980735299 220.04955308835034 17.55046868783327 22.589151763506287 0.4 0.4 0.4 0.0 0.0 0.0 -740.0 2.96336237e-07 0.0003864765014179772 +Body740 2.96336237e-07 0.0003864765014179772 7.07980829e-06 0.28467524388567844 0.0005656004790699498 0.0869755058384638 36.08205324642893 11.74038337500243 191.43021754215243 0.4 0.4 0.4 0.0 0.0 0.0 -741.0 2.96336237e-07 0.00014406405961522867 +Body741 2.96336237e-07 0.00014406405961522867 7.07980829e-06 0.10611633865359367 0.0004104958381684452 5.536332415834654 306.2252048683907 222.88495242694134 297.9257683728652 0.4 0.4 0.4 0.0 0.0 0.0 -742.0 2.96336237e-07 0.0002106722970417079 +Body742 2.96336237e-07 0.0002106722970417079 7.07980829e-06 0.15517938948490648 0.0016045777089143468 6.257405036858542 132.6281615688201 124.58164025052454 209.3185616951079 0.4 0.4 0.4 0.0 0.0 0.0 -743.0 2.96336237e-07 0.00034739878913081577 +Body743 2.96336237e-07 0.00034739878913081577 7.07980829e-06 0.2558909394453656 0.0008848410000050655 1.8800883236189605 22.59000938767972 244.71224492603585 203.02373720932383 0.4 0.4 0.4 0.0 0.0 0.0 -744.0 2.96336237e-07 0.0002416141226863816 +Body744 2.96336237e-07 0.0002416141226863816 7.07980829e-06 0.17797087028476838 0.0018027797509316973 5.535730075592067 144.6725556217197 254.9396114858643 294.6395873317908 0.4 0.4 0.4 0.0 0.0 0.0 -745.0 2.96336237e-07 0.000562846985628491 +Body745 2.96336237e-07 0.000562846985628491 7.07980829e-06 0.4145882151081191 0.0017929642136530707 9.086241206217649 353.3526691916557 314.79294099522104 259.4798715415805 0.4 0.4 0.4 0.0 0.0 0.0 -746.0 2.96336237e-07 0.00028597602580276727 +Body746 2.96336237e-07 0.00028597602580276727 7.07980829e-06 0.21064746392643938 0.0011404320812687437 1.3497302415157837 264.89618015841376 315.938364379284 213.05922299203462 0.4 0.4 0.4 0.0 0.0 0.0 -747.0 2.96336237e-07 0.0005955575301132271 +Body747 2.96336237e-07 0.0005955575301132271 7.07980829e-06 0.4386825188876773 0.001262635271510421 1.019380298177697 326.28037068382815 239.50749192273528 357.0437637912174 0.4 0.4 0.4 0.0 0.0 0.0 -748.0 2.96336237e-07 0.0003194116973814109 +Body748 2.96336237e-07 0.0003194116973814109 7.07980829e-06 0.2352758900434459 0.0009268394605218976 2.8545622521287846 301.8093959116166 73.63705470361427 196.66760197641878 0.4 0.4 0.4 0.0 0.0 0.0 -749.0 2.96336237e-07 0.00021345646348534076 +Body749 2.96336237e-07 0.00021345646348534076 7.07980829e-06 0.15723018237516379 0.0015428543506282974 5.245136896364564 37.46583168672329 98.8444306387554 286.91754980834173 0.4 0.4 0.4 0.0 0.0 0.0 -750.0 2.96336237e-07 0.0018562879648262526 +Body750 2.96336237e-07 0.0018562879648262526 7.07980829e-06 1.3673256386096608 0.00019464130129659486 6.392431451247973 13.671795434653754 256.8057573052545 208.9974818148667 0.4 0.4 0.4 0.0 0.0 0.0 -751.0 2.96336237e-07 0.0003438121044613112 +Body751 2.96336237e-07 0.0003438121044613112 7.07980829e-06 0.25324901858009685 0.0004849968083047293 0.6512227674260226 191.72118211560357 27.38888088806392 215.418613343208 0.4 0.4 0.4 0.0 0.0 0.0 -752.0 2.96336237e-07 0.0007351719490103386 +Body752 2.96336237e-07 0.0007351719490103386 7.07980829e-06 0.5415212907241782 0.0017214586941266883 5.013572365171728 1.1868998491342897 310.0545999201715 263.421684099375 0.4 0.4 0.4 0.0 0.0 0.0 -753.0 2.96336237e-07 0.0001440480205409621 +Body753 2.96336237e-07 0.0001440480205409621 7.07980829e-06 0.10610452441039445 0.001415155758078455 2.9168704913691466 87.34460078326019 115.41238499588349 218.47853766179134 0.4 0.4 0.4 0.0 0.0 0.0 -754.0 2.96336237e-07 0.00016567726861439446 +Body754 2.96336237e-07 0.00016567726861439446 7.07980829e-06 0.12203644122235352 0.0007367694324498964 7.939696829581024 144.80446947266682 334.6934128655556 334.96083232634686 0.4 0.4 0.4 0.0 0.0 0.0 -755.0 2.96336237e-07 0.003357132716724993 +Body755 2.96336237e-07 0.003357132716724993 7.07980829e-06 2.4728348848736057 0.00109460936093632 7.57817818817873 200.93402617764775 38.94546503077487 336.82864362635746 0.4 0.4 0.4 0.0 0.0 0.0 -756.0 2.96336237e-07 0.000239476354339221 +Body756 2.96336237e-07 0.000239476354339221 7.07980829e-06 0.17639620863427682 0.001108603677540412 2.174346842575558 204.07151110596655 298.80659272210426 94.77954703857242 0.4 0.4 0.4 0.0 0.0 0.0 -757.0 2.96336237e-07 0.0002247301690325285 +Body757 2.96336237e-07 0.0002247301690325285 7.07980829e-06 0.16553429624590613 2.286669973466227e-05 8.477343429801845 104.59141545363481 254.52826278341865 156.39407168530036 0.4 0.4 0.4 0.0 0.0 0.0 -758.0 2.96336237e-07 0.00013690457719890955 +Body758 2.96336237e-07 0.00013690457719890955 7.07980829e-06 0.10084272591004262 0.0005270544426914094 1.2430379394875384 18.23871682645244 274.6745175011331 46.74741417981779 0.4 0.4 0.4 0.0 0.0 0.0 -759.0 2.96336237e-07 0.0002564215369937045 +Body759 2.96336237e-07 0.0002564215369937045 7.07980829e-06 0.18887788342473297 0.0013769913442365858 5.516940557693017 57.296249965262085 304.79426021501166 341.6907740411331 0.4 0.4 0.4 0.0 0.0 0.0 -760.0 2.96336237e-07 0.00032523412275674117 +Body760 2.96336237e-07 0.00032523412275674117 7.07980829e-06 0.23956463815011464 0.0004766588720606672 0.6849299933323854 295.98639353183904 117.36140746706391 355.6278987307299 0.4 0.4 0.4 0.0 0.0 0.0 -761.0 2.96336237e-07 0.0006034806082832441 +Body761 2.96336237e-07 0.0006034806082832441 7.07980829e-06 0.44451858965032254 0.0015451262612941163 9.453687588841811 203.39899116099176 75.07410352055902 288.420934960148 0.4 0.4 0.4 0.0 0.0 0.0 -762.0 2.96336237e-07 0.00015674806130235787 +Body762 2.96336237e-07 0.00015674806130235787 7.07980829e-06 0.11545926444722357 0.00022678197602867345 2.51397584832074 154.11481001554114 316.5895802985698 144.8171785524458 0.4 0.4 0.4 0.0 0.0 0.0 -763.0 2.96336237e-07 0.00044591737566831286 +Body763 2.96336237e-07 0.00044591737566831286 7.07980829e-06 0.3284588770740044 0.000582023915909846 1.9042826267649233 183.0490667929288 34.32821351074982 128.09899856474172 0.4 0.4 0.4 0.0 0.0 0.0 -764.0 2.96336237e-07 0.00020874189344392697 +Body764 2.96336237e-07 0.00020874189344392697 7.07980829e-06 0.15375747091293682 0.0013518925712033031 3.9213046414563917 252.88051690821115 346.0891363946157 227.24651734444123 0.4 0.4 0.4 0.0 0.0 0.0 -765.0 2.96336237e-07 0.0005977027995281557 +Body765 2.96336237e-07 0.0005977027995281557 7.07980829e-06 0.44026270575972415 0.001706378820013462 3.665130790550011 279.1441761599938 331.86968339138923 161.08982168644127 0.4 0.4 0.4 0.0 0.0 0.0 -766.0 2.96336237e-07 0.0005462104415519695 +Body766 2.96336237e-07 0.0005462104415519695 7.07980829e-06 0.40233388082124205 0.00045154828716743357 7.549631354241249 166.25274596264225 139.83647490843492 241.36161695412613 0.4 0.4 0.4 0.0 0.0 0.0 -767.0 2.96336237e-07 0.0019508638604603097 +Body767 2.96336237e-07 0.0019508638604603097 7.07980829e-06 1.4369894242642867 0.0019299261931772004 4.408038074230426 123.84920808275756 5.017403188848644 267.46104210371675 0.4 0.4 0.4 0.0 0.0 0.0 -768.0 2.96336237e-07 0.00021438100266887562 +Body768 2.96336237e-07 0.00021438100266887562 7.07980829e-06 0.15791118993083406 0.0019442717872762822 11.39841416830864 231.35322832263287 339.9831170872492 170.62953355543732 0.4 0.4 0.4 0.0 0.0 0.0 -769.0 2.96336237e-07 0.00013637692054304016 +Body769 2.96336237e-07 0.00013637692054304016 7.07980829e-06 0.1004540585870711 0.0001344854299818731 2.9430162092938996 101.18123245946741 16.977350858590118 217.85339551927711 0.4 0.4 0.4 0.0 0.0 0.0 -770.0 2.96336237e-07 0.00039628226188392717 +Body770 2.96336237e-07 0.00039628226188392717 7.07980829e-06 0.2918980821226399 0.0013619973696854474 0.467152728932887 108.18991731689154 176.95159646304947 72.23870735210176 0.4 0.4 0.4 0.0 0.0 0.0 -771.0 2.96336237e-07 0.000698358333406906 +Body771 2.96336237e-07 0.000698358333406906 7.07980829e-06 0.5144047002930133 0.0015421293318597141 11.415702042294306 260.27523332282703 273.2602707005577 186.21628932692565 0.4 0.4 0.4 0.0 0.0 0.0 -772.0 2.96336237e-07 0.00028461336199966497 +Body772 2.96336237e-07 0.00028461336199966497 7.07980829e-06 0.20964373757035026 0.0013800293673098358 8.859667863354286 125.68513477242199 61.52892104688898 229.49254655341616 0.4 0.4 0.4 0.0 0.0 0.0 -773.0 2.96336237e-07 0.0033019090419650742 +Body773 2.96336237e-07 0.0033019090419650742 7.07980829e-06 2.4321576043070934 7.592285081661148e-05 6.75835305766169 278.44449561624015 201.0474604342087 246.68234934394988 0.4 0.4 0.4 0.0 0.0 0.0 -774.0 2.96336237e-07 0.0016086561408426812 +Body774 2.96336237e-07 0.0016086561408426812 7.07980829e-06 1.1849221816653586 0.0012518712973603068 6.07210859808765 329.8140693187001 178.90220086015898 344.2534420910264 0.4 0.4 0.4 0.0 0.0 0.0 -775.0 2.96336237e-07 0.0004057839032363561 +Body775 2.96336237e-07 0.0004057839032363561 7.07980829e-06 0.29889690885438885 0.00030723730352063704 1.3545602077168246 275.29327826163626 16.48766869977107 289.9506131142709 0.4 0.4 0.4 0.0 0.0 0.0 -776.0 2.96336237e-07 0.0005182646094632937 +Body776 2.96336237e-07 0.0005182646094632937 7.07980829e-06 0.3817492229280883 0.0017244210524684127 11.35830215721803 198.9972987687514 15.552954256805542 112.4403775751002 0.4 0.4 0.4 0.0 0.0 0.0 -777.0 2.96336237e-07 0.00025773587547939263 +Body777 2.96336237e-07 0.00025773587547939263 7.07980829e-06 0.18984601377053362 0.0017068426449346299 7.7791974518317195 62.53619149931553 120.73376985616541 225.68366487062107 0.4 0.4 0.4 0.0 0.0 0.0 -778.0 2.96336237e-07 0.0011513744043605825 +Body778 2.96336237e-07 0.0011513744043605825 7.07980829e-06 0.8480924148363507 0.0008740145212589823 9.389156432134588 3.3864525215180348 191.77297733737754 50.34556783248005 0.4 0.4 0.4 0.0 0.0 0.0 -779.0 2.96336237e-07 0.00019069701018462385 +Body779 2.96336237e-07 0.00019069701018462385 7.07980829e-06 0.14046576618086803 0.0016610122416479565 0.3263632448613249 202.3832416550209 148.90572697487266 306.71587259490514 0.4 0.4 0.4 0.0 0.0 0.0 -780.0 2.96336237e-07 0.000183014949797821 +Body780 2.96336237e-07 0.000183014949797821 7.07980829e-06 0.13480722703001688 0.00023870757193003006 10.86745715521768 40.4422116892952 332.72334304633546 102.46487442592486 0.4 0.4 0.4 0.0 0.0 0.0 -781.0 2.96336237e-07 0.00019010035917179903 +Body781 2.96336237e-07 0.00019010035917179903 7.07980829e-06 0.14002627821208505 0.0009745538138515665 2.605842650876843 248.8424013641794 252.33564259715783 158.58573935383882 0.4 0.4 0.4 0.0 0.0 0.0 -782.0 2.96336237e-07 0.00015766445076292833 +Body782 2.96336237e-07 0.00015766445076292833 7.07980829e-06 0.11613426898753848 0.0004009723458603021 7.436470499798395 210.6903181795709 135.90861565498648 100.14814531806343 0.4 0.4 0.4 0.0 0.0 0.0 -783.0 2.96336237e-07 0.00019282317353288035 +Body783 2.96336237e-07 0.00019282317353288035 7.07980829e-06 0.1420318796896713 0.0008492041527252425 0.5663478420982258 17.051067966498163 36.14156681072912 233.47696301941528 0.4 0.4 0.4 0.0 0.0 0.0 -784.0 2.96336237e-07 0.0006785968098311466 +Body784 2.96336237e-07 0.0006785968098311466 7.07980829e-06 0.49984853317071337 0.001056969125782388 2.129281381961314 296.7313175208352 343.9604450772309 237.2496777096723 0.4 0.4 0.4 0.0 0.0 0.0 -785.0 2.96336237e-07 0.00013780632139179854 +Body785 2.96336237e-07 0.00013780632139179854 7.07980829e-06 0.10150694287301791 0.0018115669137227677 2.8103422089756918 349.77158346307993 94.59875697216971 99.73426693191381 0.4 0.4 0.4 0.0 0.0 0.0 -786.0 2.96336237e-07 0.00034073923077270753 +Body786 2.96336237e-07 0.00034073923077270753 7.07980829e-06 0.2509855664335275 0.0017792906836705319 5.520765221365393 215.39140744510857 94.45196463699138 266.26458399959836 0.4 0.4 0.4 0.0 0.0 0.0 -787.0 2.96336237e-07 0.00031320123871055543 +Body787 2.96336237e-07 0.00031320123871055543 7.07980829e-06 0.23070131997183466 0.0003647661258347948 4.728738700627131 308.4240173290373 235.43277837361742 19.86268427021919 0.4 0.4 0.4 0.0 0.0 0.0 -788.0 2.96336237e-07 0.0007908013466746332 +Body788 2.96336237e-07 0.0007908013466746332 7.07980829e-06 0.5824974232683128 0.000733879413242465 10.58163592523781 166.59711091932118 36.80830601645519 282.58301278505724 0.4 0.4 0.4 0.0 0.0 0.0 -789.0 2.96336237e-07 0.00019105301337326078 +Body789 2.96336237e-07 0.00019105301337326078 7.07980829e-06 0.14072799504647168 0.001668655123700562 7.9908431865517064 264.1561725966188 23.582810086009808 292.36425626006894 0.4 0.4 0.4 0.0 0.0 0.0 -790.0 2.96336237e-07 0.0006002588397728856 +Body790 2.96336237e-07 0.0006002588397728856 7.07980829e-06 0.4421454628675441 0.00022178748634611188 11.438400717437004 250.2047538204758 303.4810776677282 204.76040864011122 0.4 0.4 0.4 0.0 0.0 0.0 -791.0 2.96336237e-07 0.00021806349128496557 +Body791 2.96336237e-07 0.00021806349128496557 7.07980829e-06 0.16062367915345274 0.0009804911927767412 1.6584717895438603 226.28492908631438 229.19854234355597 9.353466953393456 0.4 0.4 0.4 0.0 0.0 0.0 -792.0 2.96336237e-07 0.0004540964137523443 +Body792 2.96336237e-07 0.0004540964137523443 7.07980829e-06 0.33448348569258574 0.0011738625331951884 10.662230115006006 267.24057597302476 267.74465579912385 253.2965632707878 0.4 0.4 0.4 0.0 0.0 0.0 -793.0 2.96336237e-07 0.0010488173402543155 +Body793 2.96336237e-07 0.0010488173402543155 7.07980829e-06 0.7725497696055722 0.001095722001517709 9.242402013388748 323.14447834195244 301.491191690332 293.32981193086493 0.4 0.4 0.4 0.0 0.0 0.0 -794.0 2.96336237e-07 0.0005999909388933805 +Body794 2.96336237e-07 0.0005999909388933805 7.07980829e-06 0.4419481293998417 0.0015833703304402554 4.872405037186607 35.12747293707084 153.1253118555626 77.25667586625241 0.4 0.4 0.4 0.0 0.0 0.0 -795.0 2.96336237e-07 0.0002818183472463251 +Body795 2.96336237e-07 0.0002818183472463251 7.07980829e-06 0.20758495390911397 0.00040306205079961504 8.58999362096016 95.19877690553305 242.72105712761459 280.0466839990116 0.4 0.4 0.4 0.0 0.0 0.0 -796.0 2.96336237e-07 0.00019014506892123023 +Body796 2.96336237e-07 0.00019014506892123023 7.07980829e-06 0.14005921102630972 0.0006602959512029577 11.332039920511034 323.92212532949304 203.51644452917097 74.7527947079839 0.4 0.4 0.4 0.0 0.0 0.0 -797.0 2.96336237e-07 0.0004845094202535584 +Body797 2.96336237e-07 0.0004845094202535584 7.07980829e-06 0.35688544289118485 0.00010693699223592864 9.048576338576657 190.51448161289002 98.6305204470717 187.3084468345109 0.4 0.4 0.4 0.0 0.0 0.0 -798.0 2.96336237e-07 0.00015792929540787927 +Body798 2.96336237e-07 0.00015792929540787927 7.07980829e-06 0.11632935125933666 3.897035279878499e-05 11.45903908700319 195.80384686313445 233.2776988816495 359.35301035654265 0.4 0.4 0.4 0.0 0.0 0.0 -799.0 2.96336237e-07 0.0005021740146888711 +Body799 2.96336237e-07 0.0005021740146888711 7.07980829e-06 0.369897030168973 0.0005783785768568472 10.96464741061004 51.22165432560145 112.10159565886289 41.214857697624 0.4 0.4 0.4 0.0 0.0 0.0 -800.0 2.96336237e-07 0.0002652196542834954 +Body800 2.96336237e-07 0.0002652196542834954 7.07980829e-06 0.1953585004247748 0.0015860402110689398 7.970135016600727 33.28395820345033 47.065047089942105 8.642540234570333 0.4 0.4 0.4 0.0 0.0 0.0 -801.0 2.96336237e-07 0.00099556213210484 +Body801 2.96336237e-07 0.00099556213210484 7.07980829e-06 0.7333224444965137 0.0011540216657062665 0.2948520707827325 358.7803936031105 339.4687255490858 120.89997913809488 0.4 0.4 0.4 0.0 0.0 0.0 -802.0 2.96336237e-07 0.0026351289790410228 +Body802 2.96336237e-07 0.0026351289790410228 7.07980829e-06 1.94101318456985 0.0018777704527595757 6.2920679103717365 168.5198178770795 313.068885556533 173.1580935790628 0.4 0.4 0.4 0.0 0.0 0.0 -803.0 2.96336237e-07 0.0004472189018881262 +Body803 2.96336237e-07 0.0004472189018881262 7.07980829e-06 0.3294175700157216 0.001934026663548147 4.665930753879519 188.0777245359656 24.249023206259835 148.43747096583212 0.4 0.4 0.4 0.0 0.0 0.0 -804.0 2.96336237e-07 0.0009541783526290509 +Body804 2.96336237e-07 0.0009541783526290509 7.07980829e-06 0.7028395109366277 2.178248308034613e-05 7.534024626949479 220.92753336090098 156.5092513310764 125.53081160503076 0.4 0.4 0.4 0.0 0.0 0.0 -805.0 2.96336237e-07 0.00017818575131362238 +Body805 2.96336237e-07 0.00017818575131362238 7.07980829e-06 0.13125008124956802 0.00029390144367573754 11.238272718260015 44.728692941629134 244.4748145815674 141.26217597353818 0.4 0.4 0.4 0.0 0.0 0.0 -806.0 2.96336237e-07 0.0007755350636563324 +Body806 2.96336237e-07 0.0007755350636563324 7.07980829e-06 0.5712524114098495 0.0019266172346230073 1.878430788539713 283.4231153555986 2.2596062499485012 183.9729256430123 0.4 0.4 0.4 0.0 0.0 0.0 -807.0 2.96336237e-07 0.00029338105105387744 +Body807 2.96336237e-07 0.00029338105105387744 7.07980829e-06 0.21610194139558708 0.0009800223634739993 7.0601858461868705 65.81941569461553 212.36340422378717 312.9363049828724 0.4 0.4 0.4 0.0 0.0 0.0 -808.0 2.96336237e-07 0.0001839258304776056 +Body808 2.96336237e-07 0.0001839258304776056 7.07980829e-06 0.13547817385011343 0.0006727160750319806 2.882340028183936 295.1627506804039 68.85676814351325 228.03106149519562 0.4 0.4 0.4 0.0 0.0 0.0 -809.0 2.96336237e-07 0.0006015656325230227 +Body809 2.96336237e-07 0.0006015656325230227 7.07980829e-06 0.4431080350898872 0.0016628797571062509 7.129072715261133 290.1742628633195 108.96638613120928 128.99246608530885 0.4 0.4 0.4 0.0 0.0 0.0 -810.0 2.96336237e-07 0.00013888180832424046 +Body810 2.96336237e-07 0.00013888180832424046 7.07980829e-06 0.10229913723325831 0.0005630924347893253 9.278706461480203 267.71603877159674 316.40397628593826 81.80556050635376 0.4 0.4 0.4 0.0 0.0 0.0 -811.0 2.96336237e-07 0.0006476764256898102 +Body811 2.96336237e-07 0.0006476764256898102 7.07980829e-06 0.4770728459965168 0.0007695813520703637 2.493021098908406 150.4916511166996 332.4116821410066 247.0361193746425 0.4 0.4 0.4 0.0 0.0 0.0 -812.0 2.96336237e-07 0.001857003948737935 +Body812 2.96336237e-07 0.001857003948737935 7.07980829e-06 1.3678530261582662 0.0017596352045231752 10.68854821580626 329.79402578262415 259.4447597715369 328.1565524762129 0.4 0.4 0.4 0.0 0.0 0.0 -813.0 2.96336237e-07 0.0008663331149826085 +Body813 2.96336237e-07 0.0008663331149826085 7.07980829e-06 0.6381334696651798 2.928046135023384e-05 5.815041660654898 129.22501519714 213.2823989189814 118.96109333137306 0.4 0.4 0.4 0.0 0.0 0.0 -814.0 2.96336237e-07 0.00026489283030708673 +Body814 2.96336237e-07 0.00026489283030708673 7.07980829e-06 0.1951177647141935 0.00011759470556837991 3.531197956621164 331.29872796235486 4.773729879659973 140.06250876198635 0.4 0.4 0.4 0.0 0.0 0.0 -815.0 2.96336237e-07 0.0010162303462848672 +Body815 2.96336237e-07 0.0010162303462848672 7.07980829e-06 0.7485464720655725 0.0007100241137663527 5.490099494596708 324.98298402852896 274.8809849689539 247.5318900734145 0.4 0.4 0.4 0.0 0.0 0.0 -816.0 2.96336237e-07 0.000347727729247991 +Body816 2.96336237e-07 0.000347727729247991 7.07980829e-06 0.2561332338869088 0.0004507987013529211 3.620170639195692 92.43280629170972 91.6328644393501 151.8214337011307 0.4 0.4 0.4 0.0 0.0 0.0 -817.0 2.96336237e-07 0.002802965923879553 +Body817 2.96336237e-07 0.002802965923879553 7.07980829e-06 2.064640424595143 0.0011544401169181033 5.094307632826079 42.63499315368269 1.2211239273548 334.76305659292217 0.4 0.4 0.4 0.0 0.0 0.0 -818.0 2.96336237e-07 0.0022355737226198336 +Body818 2.96336237e-07 0.0022355737226198336 7.07980829e-06 1.6467042430166545 0.001267457569557079 5.302936231753688 32.68371764101885 353.5751312018522 90.58755046498557 0.4 0.4 0.4 0.0 0.0 0.0 -819.0 2.96336237e-07 0.0002765175125921366 +Body819 2.96336237e-07 0.0002765175125921366 7.07980829e-06 0.20368040501043008 0.000579749287670038 10.557519510639555 80.04140368158535 227.8990205868312 200.62764208554964 0.4 0.4 0.4 0.0 0.0 0.0 -820.0 2.96336237e-07 0.00025127731812467786 +Body820 2.96336237e-07 0.00025127731812467786 7.07980829e-06 0.18508869635703679 0.0012439466918257101 1.6815787713970378 281.7339713158612 63.45528865916926 191.41206074359687 0.4 0.4 0.4 0.0 0.0 0.0 -821.0 2.96336237e-07 0.0003243969593156292 +Body821 2.96336237e-07 0.0003243969593156292 7.07980829e-06 0.2389479908096002 0.0015118202277195345 2.6668616922794715 328.82511142542853 82.03336133179428 168.83579865308715 0.4 0.4 0.4 0.0 0.0 0.0 -822.0 2.96336237e-07 0.0009083701808113307 +Body822 2.96336237e-07 0.0009083701808113307 7.07980829e-06 0.6690976082948853 0.00025961637392022535 7.205434432573989 69.44371066237589 224.96004566756855 200.0052414276524 0.4 0.4 0.4 0.0 0.0 0.0 -823.0 2.96336237e-07 0.0004355681290935779 +Body823 2.96336237e-07 0.0004355681290935779 7.07980829e-06 0.32083571167614394 0.0005817622084768684 2.2490912361513873 52.61862941037551 95.05577134176204 285.75692796158575 0.4 0.4 0.4 0.0 0.0 0.0 -824.0 2.96336237e-07 0.000797513088797965 +Body824 2.96336237e-07 0.000797513088797965 7.07980829e-06 0.58744123438968 0.0018399317866374398 5.370650518781352 263.37964612868376 3.6889272906534942 195.81773461969757 0.4 0.4 0.4 0.0 0.0 0.0 -825.0 2.96336237e-07 0.00017059845221530778 +Body825 2.96336237e-07 0.00017059845221530778 7.07980829e-06 0.1256613424431423 0.001517189447519589 3.3332887759450993 275.16030741344696 301.2390055314444 315.6894181532665 0.4 0.4 0.4 0.0 0.0 0.0 -826.0 2.96336237e-07 0.0033227899288844234 +Body826 2.96336237e-07 0.0033227899288844234 7.07980829e-06 2.447538284774096 9.660561342932512e-05 2.7342205684146665 177.28452929413666 303.60541873955395 123.91807566013593 0.4 0.4 0.4 0.0 0.0 0.0 -827.0 2.96336237e-07 0.0005055089895304048 +Body827 2.96336237e-07 0.0005055089895304048 7.07980829e-06 0.3723535437548778 0.0018186148187213451 9.203022093505952 283.6114261752834 246.85904148851748 262.9477557950902 0.4 0.4 0.4 0.0 0.0 0.0 -828.0 2.96336237e-07 0.000635315421759987 +Body828 2.96336237e-07 0.000635315421759987 7.07980829e-06 0.4679678375536138 0.001999300112822092 8.915870860087727 6.110983399515164 74.87211877631918 225.79948655833374 0.4 0.4 0.4 0.0 0.0 0.0 -829.0 2.96336237e-07 0.0001751333264149705 +Body829 2.96336237e-07 0.0001751333264149705 7.07980829e-06 0.12900169150458152 0.00020038175632658404 7.233274970039065 33.90253649557301 49.37802414776593 162.2065661133979 0.4 0.4 0.4 0.0 0.0 0.0 -830.0 2.96336237e-07 0.00018378643480033245 +Body830 2.96336237e-07 0.00018378643480033245 7.07980829e-06 0.13537549620146275 0.001360339845600366 10.875239413531316 161.6554836466115 83.73152649783016 79.92932738916704 0.4 0.4 0.4 0.0 0.0 0.0 -831.0 2.96336237e-07 0.00013889055865239607 +Body831 2.96336237e-07 0.00013889055865239607 7.07980829e-06 0.10230558264919598 0.00025597517786164737 9.075636286562998 338.08271471426997 353.0506196112916 352.887114895571 0.4 0.4 0.4 0.0 0.0 0.0 -832.0 2.96336237e-07 0.00046757051185114865 +Body832 2.96336237e-07 0.00046757051185114865 7.07980829e-06 0.3444083896604684 0.0018761686833968828 1.4669598373422508 44.87652012756437 177.67362914504258 277.8618957553 0.4 0.4 0.4 0.0 0.0 0.0 -833.0 2.96336237e-07 0.00022908114180874786 +Body833 2.96336237e-07 0.00022908114180874786 7.07980829e-06 0.1687391851115053 0.0010077475692341418 9.107937193226173 7.136521656548504 194.19135352752443 196.3527680670335 0.4 0.4 0.4 0.0 0.0 0.0 -834.0 2.96336237e-07 0.00021727031334741124 +Body834 2.96336237e-07 0.00021727031334741124 7.07980829e-06 0.16003943115392477 0.000739993500523618 3.9730366478446846 296.9687491788795 302.9933737007289 214.05408453261558 0.4 0.4 0.4 0.0 0.0 0.0 -835.0 2.96336237e-07 0.0005924232935996261 +Body835 2.96336237e-07 0.0005924232935996261 7.07980829e-06 0.4363738674156443 0.00024725894484776647 5.085743123157824 71.55973253885118 50.78724890867379 61.5909874775926 0.4 0.4 0.4 0.0 0.0 0.0 -836.0 2.96336237e-07 0.0002814335672288224 +Body836 2.96336237e-07 0.0002814335672288224 7.07980829e-06 0.20730152828058798 0.000749027403100355 6.9645972304617505 60.3604226804254 310.0977903351363 151.78370717308115 0.4 0.4 0.4 0.0 0.0 0.0 -837.0 2.96336237e-07 0.0030778130889382743 +Body837 2.96336237e-07 0.0030778130889382743 7.07980829e-06 2.2670904660784137 0.0019786704159376963 6.529858491445284 335.4186873573771 111.62895536664745 171.68897715927645 0.4 0.4 0.4 0.0 0.0 0.0 -838.0 2.96336237e-07 0.001498847858869942 +Body838 2.96336237e-07 0.001498847858869942 7.07980829e-06 1.104038352152916 0.0015428587562416583 9.936778811770814 70.57570537759302 84.10602504856243 323.5258802143975 0.4 0.4 0.4 0.0 0.0 0.0 -839.0 2.96336237e-07 0.00203066320928066 +Body839 2.96336237e-07 0.00203066320928066 7.07980829e-06 1.4957689335074194 0.0015924422714005465 4.586246084377397 249.62557390036193 211.62955989583318 257.4388242400432 0.4 0.4 0.4 0.0 0.0 0.0 -840.0 2.96336237e-07 0.0011667006416620786 +Body840 2.96336237e-07 0.0011667006416620786 7.07980829e-06 0.8593815885005848 0.001499272202059968 6.8205193906369255 84.64657910167873 239.46586383339405 332.6535290917713 0.4 0.4 0.4 0.0 0.0 0.0 -841.0 2.96336237e-07 0.0017354364389528172 +Body841 2.96336237e-07 0.0017354364389528172 7.07980829e-06 1.278307451279381 0.0016006380667095345 7.82686925837928 191.4754417698664 253.15609398992035 81.93901595863738 0.4 0.4 0.4 0.0 0.0 0.0 -842.0 2.96336237e-07 0.0002532550453718099 +Body842 2.96336237e-07 0.0002532550453718099 7.07980829e-06 0.18654547311927458 0.00012406021956921763 8.109841908874293 270.85693362482044 315.15099460865144 96.14894521079918 0.4 0.4 0.4 0.0 0.0 0.0 -843.0 2.96336237e-07 0.00018634532862649348 +Body843 2.96336237e-07 0.00018634532862649348 7.07980829e-06 0.1372603552326516 0.00023538722443516055 1.4894936849675249 29.459189369441635 67.36450335439682 54.83310544269817 0.4 0.4 0.4 0.0 0.0 0.0 -844.0 2.96336237e-07 0.00029158732454737286 +Body844 2.96336237e-07 0.00029158732454737286 7.07980829e-06 0.21478069798536706 0.0011673470373269362 11.085709061263685 157.76460542425414 246.27746168342864 6.8453046530047255 0.4 0.4 0.4 0.0 0.0 0.0 -845.0 2.96336237e-07 0.00043364524658754777 +Body845 2.96336237e-07 0.00043364524658754777 7.07980829e-06 0.3194193330752219 0.0005270330406529689 6.106343852796523 120.78469905417309 110.64435294021592 215.49307444340332 0.4 0.4 0.4 0.0 0.0 0.0 -846.0 2.96336237e-07 0.0005231633713284643 +Body846 2.96336237e-07 0.0005231633713284643 7.07980829e-06 0.38535760849251127 0.0008634990263518041 7.341507171398043 13.421311492632363 308.85783416097735 42.162340012495825 0.4 0.4 0.4 0.0 0.0 0.0 -847.0 2.96336237e-07 0.00024536499782918075 +Body847 2.96336237e-07 0.00024536499782918075 7.07980829e-06 0.18073373243070323 0.001840481967359855 4.241185462063619 104.16487034797203 201.47379798782168 341.4733827028155 0.4 0.4 0.4 0.0 0.0 0.0 -848.0 2.96336237e-07 0.0007719265143580483 +Body848 2.96336237e-07 0.0007719265143580483 7.07980829e-06 0.5685943852483791 0.0010008140520680474 6.480222534777339 184.32169092200232 103.34919779642523 356.77619199609273 0.4 0.4 0.4 0.0 0.0 0.0 -849.0 2.96336237e-07 0.00023807814028319418 +Body849 2.96336237e-07 0.00023807814028319418 7.07980829e-06 0.17536629626976455 0.0016343601065652842 0.3249529259262394 250.36546856571204 334.7025341217382 118.21873934867935 0.4 0.4 0.4 0.0 0.0 0.0 -850.0 2.96336237e-07 0.00036119262264286574 +Body850 2.96336237e-07 0.00036119262264286574 7.07980829e-06 0.26605135774959376 0.0006346791313101497 5.198710968805152 69.94065044167266 48.948388574773986 182.85169447898264 0.4 0.4 0.4 0.0 0.0 0.0 -851.0 2.96336237e-07 0.00014370289200430812 +Body851 2.96336237e-07 0.00014370289200430812 7.07980829e-06 0.10585030571926211 0.0008869379847759032 7.036548385781691 217.77453992851946 318.4554561270853 6.752281945579717 0.4 0.4 0.4 0.0 0.0 0.0 -852.0 2.96336237e-07 0.0002943846158913051 +Body852 2.96336237e-07 0.0002943846158913051 7.07980829e-06 0.2168411585635174 0.0019843826310521093 9.771476355648222 12.58898431960575 82.51007889246536 49.68333298101479 0.4 0.4 0.4 0.0 0.0 0.0 -853.0 2.96336237e-07 0.0036181905740869944 +Body853 2.96336237e-07 0.0036181905740869944 7.07980829e-06 2.665127841729025 0.0015892742646676375 1.2515737974751457 294.98820419885124 228.7910948770245 204.76071041664952 0.4 0.4 0.4 0.0 0.0 0.0 -854.0 2.96336237e-07 0.0010405906262700396 +Body854 2.96336237e-07 0.0010405906262700396 7.07980829e-06 0.7664900433317653 0.00046992321384812445 8.905411384088065 277.4220633800536 156.90548650393134 73.42355366447521 0.4 0.4 0.4 0.0 0.0 0.0 -855.0 2.96336237e-07 0.003507517870227573 +Body855 2.96336237e-07 0.003507517870227573 7.07980829e-06 2.5836072865411315 0.0012873026248305089 0.6714927881734676 85.46654907224594 218.62623893590367 5.529413848953804 0.4 0.4 0.4 0.0 0.0 0.0 -856.0 2.96336237e-07 0.00042121870808606814 +Body856 2.96336237e-07 0.00042121870808606814 7.07980829e-06 0.31026605243439553 0.001538504517840296 2.299785133154835 182.92903981976596 317.7000092803654 356.8222340252494 0.4 0.4 0.4 0.0 0.0 0.0 -857.0 2.96336237e-07 0.00025589642012622665 +Body857 2.96336237e-07 0.00025589642012622665 7.07980829e-06 0.18849108688789498 0.0012482613808640873 3.4547783623564907 104.61754395223984 177.493497505299 52.3953201643133 0.4 0.4 0.4 0.0 0.0 0.0 -858.0 2.96336237e-07 0.0003499440683809984 +Body858 2.96336237e-07 0.0003499440683809984 7.07980829e-06 0.25776577009779705 0.001200451739714381 5.589758437491127 110.52822608125959 304.65887602596644 285.1524557787873 0.4 0.4 0.4 0.0 0.0 0.0 -859.0 2.96336237e-07 0.00023340484224533388 +Body859 2.96336237e-07 0.00023340484224533388 7.07980829e-06 0.17192398540792114 0.00036678529835194857 9.701014602462163 350.2988638669182 75.93158966813593 359.721039470067 0.4 0.4 0.4 0.0 0.0 0.0 -860.0 2.96336237e-07 0.0003012859326608643 +Body860 2.96336237e-07 0.0003012859326608643 7.07980829e-06 0.2219246087274947 0.0005714322286880682 2.239794572571739 239.93191774307263 295.5484957385658 292.6691114359901 0.4 0.4 0.4 0.0 0.0 0.0 -861.0 2.96336237e-07 0.0011013945629108654 +Body861 2.96336237e-07 0.0011013945629108654 7.07980829e-06 0.8112776964721983 0.0005018275332768457 10.083706033837855 102.82962935920158 251.05942161360068 26.822294015250964 0.4 0.4 0.4 0.0 0.0 0.0 -862.0 2.96336237e-07 0.0005946599085366378 +Body862 2.96336237e-07 0.0005946599085366378 7.07980829e-06 0.43802133860816467 0.001048428201218883 4.1025828039813526 40.600990991843354 239.80380101745874 62.07603929801504 0.4 0.4 0.4 0.0 0.0 0.0 -863.0 2.96336237e-07 0.000644830243600255 +Body863 2.96336237e-07 0.000644830243600255 7.07980829e-06 0.47497637291855616 0.0013321768983939044 4.63432393570585 45.083707155219024 301.3977548929328 239.62704853879058 0.4 0.4 0.4 0.0 0.0 0.0 -864.0 2.96336237e-07 0.0018338196731331666 +Body864 2.96336237e-07 0.0018338196731331666 7.07980829e-06 1.3507756895339567 0.001297586822510243 7.9497211836853365 348.46108412918124 87.62476857679734 103.32036290834739 0.4 0.4 0.4 0.0 0.0 0.0 -865.0 2.96336237e-07 0.0002663604970815203 +Body865 2.96336237e-07 0.0002663604970815203 7.07980829e-06 0.1961988353495927 0.0014513812053653485 7.576126394985915 348.84703759168565 304.9628712857538 337.6984736486929 0.4 0.4 0.4 0.0 0.0 0.0 -866.0 2.96336237e-07 0.00024146287214828595 +Body866 2.96336237e-07 0.00024146287214828595 7.07980829e-06 0.1778594604483042 9.184822468081804e-05 11.169429029020852 68.42320619800215 75.12601964025916 21.785360489624612 0.4 0.4 0.4 0.0 0.0 0.0 -867.0 2.96336237e-07 0.00021814842997838415 +Body867 2.96336237e-07 0.00021814842997838415 7.07980829e-06 0.1606862442594179 0.0017400031243608673 7.347710628140643 223.60600683349512 122.49114370433226 107.17786152085814 0.4 0.4 0.4 0.0 0.0 0.0 -868.0 2.96336237e-07 0.0007497335046502527 +Body868 2.96336237e-07 0.0007497335046502527 7.07980829e-06 0.5522472064989752 0.0007622626132573405 7.291097000588904 313.4202166141992 134.58901635813177 193.878916798132 0.4 0.4 0.4 0.0 0.0 0.0 -869.0 2.96336237e-07 0.0001667481985630033 +Body869 2.96336237e-07 0.0001667481985630033 7.07980829e-06 0.12282527894776799 0.0014162630721568541 5.217098764177743 337.3804679201184 173.53323786741743 353.3966084016116 0.4 0.4 0.4 0.0 0.0 0.0 -870.0 2.96336237e-07 0.00031250176198306017 +Body870 2.96336237e-07 0.00031250176198306017 7.07980829e-06 0.23018609147214195 0.0015562575272119795 9.361382981745848 48.47024895045403 23.02355121536537 121.03929246247257 0.4 0.4 0.4 0.0 0.0 0.0 -871.0 2.96336237e-07 0.00023059340795823506 +Body871 2.96336237e-07 0.00023059340795823506 7.07980829e-06 0.1698531072603185 0.0019813387627493403 9.279340087444739 2.0250013283920247 270.51162903123645 97.37548932556639 0.4 0.4 0.4 0.0 0.0 0.0 -872.0 2.96336237e-07 0.0002204659791078828 +Body872 2.96336237e-07 0.0002204659791078828 7.07980829e-06 0.16239333087719793 0.0012809206122057952 0.42712771391559484 197.06203490560554 347.4089646137663 67.49418715611142 0.4 0.4 0.4 0.0 0.0 0.0 -873.0 2.96336237e-07 0.00027345697966011924 +Body873 2.96336237e-07 0.00027345697966011924 7.07980829e-06 0.20142604295828573 0.0018116840747689782 10.674508764160732 103.56691137629706 266.9193441476812 326.2393207943043 0.4 0.4 0.4 0.0 0.0 0.0 -874.0 2.96336237e-07 0.00026916832336908836 +Body874 2.96336237e-07 0.00026916832336908836 7.07980829e-06 0.19826705587598786 0.00039683896467854684 0.35179682592842354 325.2166765580088 98.71526095385327 3.9673545628655678 0.4 0.4 0.4 0.0 0.0 0.0 -875.0 2.96336237e-07 0.0022229132327439348 +Body875 2.96336237e-07 0.0022229132327439348 7.07980829e-06 1.6373786358195543 0.0006605613446908923 7.3615331574055025 252.2233729738277 22.284879677551952 229.69276267720048 0.4 0.4 0.4 0.0 0.0 0.0 -876.0 2.96336237e-07 0.00018777834971615669 +Body876 2.96336237e-07 0.00018777834971615669 7.07980829e-06 0.138315906156696 0.0011872852358163328 10.140241012719367 349.1506501093582 312.2512600928142 285.213085940648 0.4 0.4 0.4 0.0 0.0 0.0 -877.0 2.96336237e-07 0.00020212037530735753 +Body877 2.96336237e-07 0.00020212037530735753 7.07980829e-06 0.14888011799883888 0.00015537661070074625 7.218086014392529 182.46051259244547 316.96550885841606 169.6637749668604 0.4 0.4 0.4 0.0 0.0 0.0 -878.0 2.96336237e-07 0.0001739000727617808 +Body878 2.96336237e-07 0.0001739000727617808 7.07980829e-06 0.12809328754416846 3.088396781264784e-05 6.4272787336170945 63.778122100059875 253.59048138502038 215.1941927139361 0.4 0.4 0.4 0.0 0.0 0.0 -879.0 2.96336237e-07 0.0003886205487771876 +Body879 2.96336237e-07 0.0003886205487771876 7.07980829e-06 0.28625453060206685 0.001570610688246003 4.596643792009561 305.35365538701126 285.97542830086036 349.34165196516363 0.4 0.4 0.4 0.0 0.0 0.0 -880.0 2.96336237e-07 0.0009222337930440628 +Body880 2.96336237e-07 0.0009222337930440628 7.07980829e-06 0.6793094250004531 0.0011367893271683742 2.6439443194291687 285.7982116353794 170.4396408737005 121.80530388570517 0.4 0.4 0.4 0.0 0.0 0.0 -881.0 2.96336237e-07 0.0005536935198694872 +Body881 2.96336237e-07 0.0005536935198694872 7.07980829e-06 0.4078458515031312 0.0018133452871063858 1.4457615059152908 91.22783846390665 329.90668562817825 253.22700314937367 0.4 0.4 0.4 0.0 0.0 0.0 -882.0 2.96336237e-07 0.00018278613111823822 +Body882 2.96336237e-07 0.00018278613111823822 7.07980829e-06 0.13463868117230798 0.0011331933115473899 9.86274096834836 69.03072764321948 218.86072425030633 180.10823421827652 0.4 0.4 0.4 0.0 0.0 0.0 -883.0 2.96336237e-07 0.0001960632599862665 +Body883 2.96336237e-07 0.0001960632599862665 7.07980829e-06 0.14441849931064232 0.0012861487147670608 2.5576684866102952 208.59094625454324 305.7005612521587 21.26041328596223 0.4 0.4 0.4 0.0 0.0 0.0 -884.0 2.96336237e-07 0.0005423752586368978 +Body884 2.96336237e-07 0.0005423752586368978 7.07980829e-06 0.39950891830039414 0.0015637046464971854 7.027440341287953 233.80729957048158 209.340402563229 311.3583501969673 0.4 0.4 0.4 0.0 0.0 0.0 -885.0 2.96336237e-07 0.00013943092042929199 +Body885 2.96336237e-07 0.00013943092042929199 7.07980829e-06 0.10270360845428364 0.0005159228348304664 5.944858672896004 69.95225801877062 174.7276120972792 28.822418951690324 0.4 0.4 0.4 0.0 0.0 0.0 -886.0 2.96336237e-07 0.0004005939203667401 +Body886 2.96336237e-07 0.0004005939203667401 7.07980829e-06 0.2950740124201952 0.0007439613777354018 4.246019729481516 110.28612280210407 152.0147394483259 181.0295145568587 0.4 0.4 0.4 0.0 0.0 0.0 -887.0 2.96336237e-07 0.0005581300249991568 +Body887 2.96336237e-07 0.0005581300249991568 7.07980829e-06 0.41111374275953355 0.001641221658129226 3.537297275366544 345.8387738825924 59.96632429562442 149.0526849684242 0.4 0.4 0.4 0.0 0.0 0.0 -888.0 2.96336237e-07 0.00021660729245310455 +Body888 2.96336237e-07 0.00021660729245310455 7.07980829e-06 0.159551055705235 0.0007892488059156157 1.7915838548160363 115.39063975714294 182.44918518147443 350.9235637043461 0.4 0.4 0.4 0.0 0.0 0.0 -889.0 2.96336237e-07 0.003164410622959606 +Body889 2.96336237e-07 0.003164410622959606 7.07980829e-06 2.3308774596652744 2.7772058913318547e-05 7.672750487076867 351.61488935551984 140.60487486378307 293.05304585644706 0.4 0.4 0.4 0.0 0.0 0.0 -890.0 2.96336237e-07 0.004587781522415004 +Body890 2.96336237e-07 0.004587781522415004 7.07980829e-06 3.3793201371775554 0.0009792748409096067 9.49626835683781 138.20231916057185 19.125111032545025 284.81908775422175 0.4 0.4 0.4 0.0 0.0 0.0 -891.0 2.96336237e-07 0.00021244089566533318 +Body891 2.96336237e-07 0.00021244089566533318 7.07980829e-06 0.1564821239142163 0.0013817427484116704 9.982107239203284 64.62388065890237 162.42173072740277 247.13863850664836 0.4 0.4 0.4 0.0 0.0 0.0 -892.0 2.96336237e-07 0.00042874284555031636 +Body892 2.96336237e-07 0.00042874284555031636 7.07980829e-06 0.3158082669281759 0.0002685727501766675 10.783700828009044 81.17210301083347 317.9386637033409 267.4309864608306 0.4 0.4 0.4 0.0 0.0 0.0 -893.0 2.96336237e-07 0.0016517438476905757 +Body893 2.96336237e-07 0.0016517438476905757 7.07980829e-06 1.2166602133707667 0.0016764679152562712 4.70497587780575 238.60777089204234 153.80807142934077 28.448304618780632 0.4 0.4 0.4 0.0 0.0 0.0 -894.0 2.96336237e-07 0.0016763443702606448 +Body894 2.96336237e-07 0.0016763443702606448 7.07980829e-06 1.2347807452443866 0.0009170286725977459 7.525170965998676 277.7130339289491 226.47276480764017 253.76637763823024 0.4 0.4 0.4 0.0 0.0 0.0 -895.0 2.96336237e-07 0.0011638058295318644 +Body895 2.96336237e-07 0.0011638058295318644 7.07980829e-06 0.8572492949558327 0.0008700423009628168 9.981524212140938 98.86559967641855 170.53910254755223 100.58524057055833 0.4 0.4 0.4 0.0 0.0 0.0 -896.0 2.96336237e-07 0.002936364382214191 +Body896 2.96336237e-07 0.002936364382214191 7.07980829e-06 2.1629005737143157 7.756112803423427e-05 11.203056729757954 86.29368061239245 43.411670622833604 338.40781629557614 0.4 0.4 0.4 0.0 0.0 0.0 -897.0 2.96336237e-07 0.0002474161427641772 +Body897 2.96336237e-07 0.0002474161427641772 7.07980829e-06 0.18224458802599205 0.001079508198632446 6.842173578076072 8.919350620653807 65.9391414835763 218.61113668757775 0.4 0.4 0.4 0.0 0.0 0.0 -898.0 2.96336237e-07 0.0001622493777332493 +Body898 2.96336237e-07 0.0001622493777332493 7.07980829e-06 0.11951148648636527 0.000938253938961925 10.679087500356292 335.22452069738205 213.1717272391943 122.17723318475782 0.4 0.4 0.4 0.0 0.0 0.0 -899.0 2.96336237e-07 0.0003122324229346243 +Body899 2.96336237e-07 0.0003122324229346243 7.07980829e-06 0.22998769866166033 0.0015136721058106677 2.682422781035682 280.03553763851926 230.61767521277147 344.2296842122416 0.4 0.4 0.4 0.0 0.0 0.0 -900.0 2.96336237e-07 0.00021203945051390856 +Body900 2.96336237e-07 0.00021203945051390856 7.07980829e-06 0.1561864228923709 0.001765045682968018 11.422249892962794 345.8666862049946 180.58605285731926 319.09691026620914 0.4 0.4 0.4 0.0 0.0 0.0 -901.0 2.96336237e-07 0.0002273306449758014 +Body901 2.96336237e-07 0.0002273306449758014 7.07980829e-06 0.1674497843044399 0.00039029297664267936 10.413884131713067 254.63805790852138 312.1469638623364 253.9856842053702 0.4 0.4 0.4 0.0 0.0 0.0 -902.0 2.96336237e-07 0.00027837990138805533 +Body902 2.96336237e-07 0.00027837990138805533 7.07980829e-06 0.20505222446838656 8.898162310285005e-05 2.5301508178227907 158.05436831881912 50.59492182468012 164.42547164960322 0.4 0.4 0.4 0.0 0.0 0.0 -903.0 2.96336237e-07 0.0008690958013977799 +Body903 2.96336237e-07 0.0008690958013977799 7.07980829e-06 0.6401684405524991 0.0005103352043887674 8.079126775697432 104.99864058693485 172.60913273339662 181.89105730929109 0.4 0.4 0.4 0.0 0.0 0.0 -904.0 2.96336237e-07 0.0004262945653432144 +Body904 2.96336237e-07 0.0004262945653432144 7.07980829e-06 0.3140048849308226 0.0004068762402332769 10.246111286380062 199.8177194802882 324.28121763384036 38.813978610555196 0.4 0.4 0.4 0.0 0.0 0.0 -905.0 2.96336237e-07 0.0005797269109412859 +Body905 2.96336237e-07 0.0005797269109412859 7.07980829e-06 0.4270218219058451 0.0004148968294459902 0.9308775351703481 234.71882840320092 96.08242228494359 85.3661114561507 0.4 0.4 0.4 0.0 0.0 0.0 -906.0 2.96336237e-07 0.0007447631040431821 +Body906 2.96336237e-07 0.0007447631040431821 7.07980829e-06 0.5485860524576922 0.0002497401557252757 11.091004923880098 30.463723661868443 109.8090314106109 32.45174612970782 0.4 0.4 0.4 0.0 0.0 0.0 -907.0 2.96336237e-07 0.0011740321433804258 +Body907 2.96336237e-07 0.0011740321433804258 7.07980829e-06 0.8647819091722458 0.0005357039357688908 8.6536979165979 346.454961363041 263.17586156314053 31.037511257599284 0.4 0.4 0.4 0.0 0.0 0.0 -908.0 2.96336237e-07 0.0018510889647867837 +Body908 2.96336237e-07 0.0018510889647867837 7.07980829e-06 1.3634961002062462 0.00014126241631399 1.4214869125410696 39.61105736997827 83.07875977519102 134.15938861187436 0.4 0.4 0.4 0.0 0.0 0.0 -909.0 2.96336237e-07 0.00023462688073896192 +Body909 2.96336237e-07 0.00023462688073896192 7.07980829e-06 0.17282412837892938 0.0017705139720229762 10.763198940284598 260.38595677013 187.39030393342694 85.08779752218953 0.4 0.4 0.4 0.0 0.0 0.0 -910.0 2.96336237e-07 0.0001500746714962574 +Body910 2.96336237e-07 0.0001500746714962574 7.07980829e-06 0.11054370331058086 0.000281278337030201 7.299413573808814 136.49636937293405 102.25244427475243 310.49680731457863 0.4 0.4 0.4 0.0 0.0 0.0 -911.0 2.96336237e-07 0.00019619635152198428 +Body911 2.96336237e-07 0.00019619635152198428 7.07980829e-06 0.14451653338322 0.00017314515611592754 8.354513792245776 38.52556308984034 292.7928653960391 98.19102238346747 0.4 0.4 0.4 0.0 0.0 0.0 -912.0 2.96336237e-07 0.0014594514605221617 +Body912 2.96336237e-07 0.0014594514605221617 7.07980829e-06 1.0750193063203148 0.0004736592387483617 10.525175396992385 354.1327714293186 177.29058917698717 135.57871242297458 0.4 0.4 0.4 0.0 0.0 0.0 -913.0 2.96336237e-07 0.0004900684755729853 +Body913 2.96336237e-07 0.0004900684755729853 7.07980829e-06 0.3609801948955772 7.059808878859866e-05 2.7253547110759446 46.58756017502697 247.45595632197276 257.4521187175939 0.4 0.4 0.4 0.0 0.0 0.0 -914.0 2.96336237e-07 0.0003497168329852906 +Body914 2.96336237e-07 0.0003497168329852906 7.07980829e-06 0.25759839047327854 0.001965306184034864 9.563434786642063 292.28406608674385 251.4582104887518 355.1915687853607 0.4 0.4 0.4 0.0 0.0 0.0 -915.0 2.96336237e-07 0.00013859536374337858 +Body915 2.96336237e-07 0.00013859536374337858 7.07980829e-06 0.10208814463573322 8.257253637475793e-06 0.4855986306531283 139.0604079346995 112.81281039522419 299.8312400393687 0.4 0.4 0.4 0.0 0.0 0.0 -916.0 2.96336237e-07 0.0001933392197641028 +Body916 2.96336237e-07 0.0001933392197641028 7.07980829e-06 0.14241199487439932 0.0018796159120632928 7.449758077618493 10.90734683153995 321.51599993791405 184.8920986736227 0.4 0.4 0.4 0.0 0.0 0.0 -917.0 2.96336237e-07 0.00024570843099537825 +Body917 2.96336237e-07 0.00024570843099537825 7.07980829e-06 0.18098670232664 0.0009508845867033116 1.5928860717515263 303.13456573570323 204.50757147870775 191.47934446511255 0.4 0.4 0.4 0.0 0.0 0.0 -918.0 2.96336237e-07 0.0008660757753783367 +Body918 2.96336237e-07 0.0008660757753783367 7.07980829e-06 0.637943915541349 0.0018668982720163895 6.658079751187519 87.9919399839599 246.36657869117042 149.15534322130247 0.4 0.4 0.4 0.0 0.0 0.0 -919.0 2.96336237e-07 0.0016615592487689134 +Body919 2.96336237e-07 0.0016615592487689134 7.07980829e-06 1.223890152799321 0.001421622572581398 5.1610356923745595 264.9771993652235 40.19201047952638 278.0236849242551 0.4 0.4 0.4 0.0 0.0 0.0 -920.0 2.96336237e-07 0.001603657692579818 +Body920 2.96336237e-07 0.001603657692579818 7.07980829e-06 1.181240367963724 3.685176165738216e-05 1.6420859189574308 130.56188251548426 140.90512522455236 336.48806457761 0.4 0.4 0.4 0.0 0.0 0.0 -921.0 2.96336237e-07 0.001397686753371511 +Body921 2.96336237e-07 0.001397686753371511 7.07980829e-06 1.0295239579430457 0.0017914896317848858 11.252344408486978 267.67377709144375 277.9361470120739 268.5109911132014 0.4 0.4 0.4 0.0 0.0 0.0 -922.0 2.96336237e-07 0.0017560473979587865 +Body922 2.96336237e-07 0.0017560473979587865 7.07980829e-06 1.2934893051830842 0.0001158813985735487 7.979966579999663 273.9413454619434 47.43960388209858 236.0072840421206 0.4 0.4 0.4 0.0 0.0 0.0 -923.0 2.96336237e-07 0.0007621621848392839 +Body923 2.96336237e-07 0.0007621621848392839 7.07980829e-06 0.5614020646883041 0.000713239837599196 7.5270807760887815 61.75097790549843 174.57744167115027 271.8218476694562 0.4 0.4 0.4 0.0 0.0 0.0 -924.0 2.96336237e-07 0.00017089341444879782 +Body924 2.96336237e-07 0.00017089341444879782 7.07980829e-06 0.12587860906982662 0.0010331661463704816 11.310459107843037 356.98065710606045 56.798708831950776 329.3070601388 0.4 0.4 0.4 0.0 0.0 0.0 -925.0 2.96336237e-07 0.0003475085127644576 +Body925 2.96336237e-07 0.0003475085127644576 7.07980829e-06 0.2559717609236506 8.063217974700513e-05 0.6224293583547946 124.40429076478733 71.81562824723706 141.66885873276337 0.4 0.4 0.4 0.0 0.0 0.0 -926.0 2.96336237e-07 0.003112920782245804 +Body926 2.96336237e-07 0.003112920782245804 7.07980829e-06 2.292950488920464 0.0012268090307240697 10.728770587782575 340.62230336033423 216.29033228044932 157.05766776364314 0.4 0.4 0.4 0.0 0.0 0.0 -927.0 2.96336237e-07 0.00033547189080752464 +Body927 2.96336237e-07 0.00033547189080752464 7.07980829e-06 0.24710568943268615 0.0015196161689792866 0.6899233683709616 88.94224942027253 214.4230545720397 276.6010138005357 0.4 0.4 0.4 0.0 0.0 0.0 -928.0 2.96336237e-07 0.0004253133838612374 +Body928 2.96336237e-07 0.0004253133838612374 7.07980829e-06 0.3132821551486675 0.0007120727472340359 9.106731138982164 319.4754144242723 310.64917536138154 126.13269863021297 0.4 0.4 0.4 0.0 0.0 0.0 -929.0 2.96336237e-07 0.00024231766837550515 +Body929 2.96336237e-07 0.00024231766837550515 7.07980829e-06 0.17848909594635745 0.000582710938667069 2.5165912778794906 314.3199004524181 357.3118023762465 224.97487607442832 0.4 0.4 0.4 0.0 0.0 0.0 -930.0 2.96336237e-07 0.00016665571708055534 +Body930 2.96336237e-07 0.00016665571708055534 7.07980829e-06 0.12275715788872771 0.0001996971746856274 4.755013017812427 298.8461973517313 236.9987112242499 122.60336003968959 0.4 0.4 0.4 0.0 0.0 0.0 -931.0 2.96336237e-07 0.0011458622256510802 +Body931 2.96336237e-07 0.0011458622256510802 7.07980829e-06 0.8440321917368563 0.0015919258009235721 0.050627567583707594 307.90525771874314 70.82616332779979 151.67221763977068 0.4 0.4 0.4 0.0 0.0 0.0 -932.0 2.96336237e-07 0.0003185660980161783 +Body932 2.96336237e-07 0.0003185660980161783 7.07980829e-06 0.23465302887428308 0.0008616327888656786 1.3646300797339588 92.86887888927751 169.57093262294586 136.36646901125172 0.4 0.4 0.4 0.0 0.0 0.0 -933.0 2.96336237e-07 0.00017301998407785504 +Body933 2.96336237e-07 0.00017301998407785504 7.07980829e-06 0.1274450218415491 0.0009832415846796373 7.534952392781988 188.0735046660178 46.94571173047234 325.12927952800834 0.4 0.4 0.4 0.0 0.0 0.0 -934.0 2.96336237e-07 0.00017929256067435054 +Body934 2.96336237e-07 0.00017929256067435054 7.07980829e-06 0.13206534743921788 0.0014183729364793134 9.448867289289323 102.96675853797645 253.93257299631134 159.6978646781303 0.4 0.4 0.4 0.0 0.0 0.0 -935.0 2.96336237e-07 0.0003863368281993399 +Body935 2.96336237e-07 0.0003863368281993399 7.07980829e-06 0.28457236180246254 0.000888160443355646 4.1802766015432535 130.71026300243284 77.05772571539467 312.5231300249637 0.4 0.4 0.4 0.0 0.0 0.0 -936.0 2.96336237e-07 0.00018020809151091216 +Body936 2.96336237e-07 0.00018020809151091216 7.07980829e-06 0.13273971952452396 0.000954720677358364 3.781611671128357 86.59490665478535 218.8644239532834 257.03107035409835 0.4 0.4 0.4 0.0 0.0 0.0 -937.0 2.96336237e-07 0.00013852529342309162 +Body937 2.96336237e-07 0.00013852529342309162 7.07980829e-06 0.10203653144465007 0.0014604833997294586 3.6529460849484523 234.00092849065598 297.1160112326384 336.3256323449483 0.4 0.4 0.4 0.0 0.0 0.0 -938.0 2.96336237e-07 0.0005121982142226524 +Body938 2.96336237e-07 0.0005121982142226524 7.07980829e-06 0.3772807687315193 0.0004918646428922008 11.372738889176471 203.8576062272574 186.04307420989318 137.3162745936581 0.4 0.4 0.4 0.0 0.0 0.0 -939.0 2.96336237e-07 0.0003612424968544203 +Body939 2.96336237e-07 0.0003612424968544203 7.07980829e-06 0.2660880946618919 0.0012522462747390918 2.3336207876186714 33.72314577304029 351.18940081152004 312.24372550510225 0.4 0.4 0.4 0.0 0.0 0.0 -940.0 2.96336237e-07 0.00020039859797553946 +Body940 2.96336237e-07 0.00020039859797553946 7.07980829e-06 0.147611871727581 0.0003302271416131716 7.906221530658699 34.26814032180242 125.39790450977469 111.22749608626296 0.4 0.4 0.4 0.0 0.0 0.0 -941.0 2.96336237e-07 0.0003016544051248369 +Body941 2.96336237e-07 0.0003016544051248369 7.07980829e-06 0.2221960223533211 0.00034568242946911244 0.3094325084357767 82.4728732578794 144.70477273697668 5.612271501423794 0.4 0.4 0.4 0.0 0.0 0.0 -942.0 2.96336237e-07 0.0017318366453486073 +Body942 2.96336237e-07 0.0017318366453486073 7.07980829e-06 1.2756558744863375 0.00113569105556339 11.116242048126862 249.09496606643057 47.771023520745274 237.73234968632318 0.4 0.4 0.4 0.0 0.0 0.0 -943.0 2.96336237e-07 0.0002690118256463962 +Body943 2.96336237e-07 0.0002690118256463962 7.07980829e-06 0.19815178100879285 0.0013539827861898711 3.18150775198909 111.76818070956686 19.606030246044075 288.92966931597437 0.4 0.4 0.4 0.0 0.0 0.0 -944.0 2.96336237e-07 0.0029001700963420364 +Body944 2.96336237e-07 0.0029001700963420364 7.07980829e-06 2.1362401761995384 0.0003159380215570494 5.514532240030428 32.79351781650099 63.5250969796889 206.50573852382644 0.4 0.4 0.4 0.0 0.0 0.0 -945.0 2.96336237e-07 0.00021330535508806603 +Body945 2.96336237e-07 0.00021330535508806603 7.07980829e-06 0.1571188772383973 0.00018089683554716642 8.720015163429723 77.51771133589922 244.9843816940459 350.9514638838498 0.4 0.4 0.4 0.0 0.0 0.0 -946.0 2.96336237e-07 0.00025520310194109973 +Body946 2.96336237e-07 0.00025520310194109973 7.07980829e-06 0.18798039471717506 0.000498428427346686 8.467466822253689 10.456225088945663 233.40446105050938 203.41064615006937 0.4 0.4 0.4 0.0 0.0 0.0 -947.0 2.96336237e-07 0.00016549421931184313 +Body947 2.96336237e-07 0.00016549421931184313 7.07980829e-06 0.12190160869138278 0.0009178253598946444 4.75514175557383 340.3535534538125 148.36917743145676 297.2912537647712 0.4 0.4 0.4 0.0 0.0 0.0 -948.0 2.96336237e-07 0.00040035279118295214 +Body948 2.96336237e-07 0.00040035279118295214 7.07980829e-06 0.2948963987517032 0.0013138752553493239 3.3576335327672404 50.85479916051726 301.2286638812889 220.74045454943635 0.4 0.4 0.4 0.0 0.0 0.0 -949.0 2.96336237e-07 0.000285480858760384 +Body949 2.96336237e-07 0.000285480858760384 7.07980829e-06 0.21028272817138718 0.0014023500153727342 6.337903481467864 224.1884139697174 73.89985298832633 51.546935726864305 0.4 0.4 0.4 0.0 0.0 0.0 -950.0 2.96336237e-07 0.0013858975257163215 +Body950 2.96336237e-07 0.0013858975257163215 7.07980829e-06 1.0208401149522006 0.0018940614327674413 1.848873587406221 190.43226813540824 280.5625437975362 308.817550256019 0.4 0.4 0.4 0.0 0.0 0.0 -951.0 2.96336237e-07 0.001052652002039967 +Body951 2.96336237e-07 0.001052652002039967 7.07980829e-06 0.7753743482670024 0.0013849169643145925 7.011026598611074 334.4076414167877 257.5505584243084 296.3064892675258 0.4 0.4 0.4 0.0 0.0 0.0 -952.0 2.96336237e-07 0.0016153416493503315 +Body952 2.96336237e-07 0.0016153416493503315 7.07980829e-06 1.1898466693326095 2.613348257784218e-05 4.937533708443644 142.3452936426748 151.70237022125707 230.49088117151877 0.4 0.4 0.4 0.0 0.0 0.0 -953.0 2.96336237e-07 0.0017051179432337625 +Body953 2.96336237e-07 0.0017051179432337625 7.07980829e-06 1.2559751099044152 0.0019156727899918755 2.8945065616128502 24.996113996404127 262.60281692979856 150.1397892119794 0.4 0.4 0.4 0.0 0.0 0.0 -954.0 2.96336237e-07 0.0013195877705214655 +Body954 2.96336237e-07 0.0013195877705214655 7.07980829e-06 0.9719969235477123 0.0015740751678921254 9.299530719572873 116.84233709368452 223.50093449549743 245.37283756444006 0.4 0.4 0.4 0.0 0.0 0.0 -955.0 2.96336237e-07 0.0004102460698317077 +Body955 2.96336237e-07 0.0004102460698317077 7.07980829e-06 0.3021837021241728 0.00035554080270896657 2.6519256374613476 251.19016945519695 318.6678358289691 142.7111516622103 0.4 0.4 0.4 0.0 0.0 0.0 -956.0 2.96336237e-07 0.00024167065264447027 +Body956 2.96336237e-07 0.00024167065264447027 7.07980829e-06 0.17801250976232183 0.0009665892019281847 4.502199852684603 323.8900125494872 100.80453312749627 214.0618920813722 0.4 0.4 0.4 0.0 0.0 0.0 -957.0 2.96336237e-07 0.0009466043491808458 +Body957 2.96336237e-07 0.0009466043491808458 7.07980829e-06 0.6972605655909263 0.0019802403653123375 0.7888060136048444 306.8805064809969 282.50984888295784 352.56112767493175 0.4 0.4 0.4 0.0 0.0 0.0 -958.0 2.96336237e-07 0.00018695352823005392 +Body958 2.96336237e-07 0.00018695352823005392 7.07980829e-06 0.1377083497933545 0.0007637836181920838 4.569634942627846 139.37121999073983 67.43502251913877 332.4186808804151 0.4 0.4 0.4 0.0 0.0 0.0 -959.0 2.96336237e-07 0.0037034203517796937 +Body959 2.96336237e-07 0.0037034203517796937 7.07980829e-06 2.727907357849595 0.00146266418574885 9.626222885297471 213.93243792835034 245.51731066063286 75.89340605050207 0.4 0.4 0.4 0.0 0.0 0.0 -960.0 2.96336237e-07 0.000373511443845889 +Body960 2.96336237e-07 0.000373511443845889 7.07980829e-06 0.275125294761257 0.0012760803381254955 1.2094857559534204 79.07672523194096 264.5777821313358 76.72573920333284 0.4 0.4 0.4 0.0 0.0 0.0 -961.0 2.96336237e-07 0.00039442763362750277 +Body961 2.96336237e-07 0.00039442763362750277 7.07980829e-06 0.29053197901086525 0.0014417868317733395 11.41598090400923 156.72159484209047 7.72719848001625 185.43652858762405 0.4 0.4 0.4 0.0 0.0 0.0 -962.0 2.96336237e-07 0.00020500322527754812 +Body962 2.96336237e-07 0.00020500322527754812 7.07980829e-06 0.15100360032011528 0.00030171279342584156 1.4120336481863598 172.0684637181415 92.67238877088263 160.71866360160317 0.4 0.4 0.4 0.0 0.0 0.0 -963.0 2.96336237e-07 0.0007085940877853797 +Body963 2.96336237e-07 0.0007085940877853797 7.07980829e-06 0.5219442683220008 0.0005234297891182462 4.097317522810404 333.94283962717805 317.556416326482 164.74610674255527 0.4 0.4 0.4 0.0 0.0 0.0 -964.0 2.96336237e-07 0.00014947946804124763 +Body964 2.96336237e-07 0.00014947946804124763 7.07980829e-06 0.11010528160034792 0.0008975475009067994 10.322701472999627 326.6226849149638 168.79718850314603 119.17626470159382 0.4 0.4 0.4 0.0 0.0 0.0 -965.0 2.96336237e-07 0.0010586172297893071 +Body965 2.96336237e-07 0.0010586172297893071 7.07980829e-06 0.7797682833656346 0.00016487428505234443 8.752058115225326 130.82154975364693 87.02897050604159 93.10471368544235 0.4 0.4 0.4 0.0 0.0 0.0 -966.0 2.96336237e-07 0.00022758994635737866 +Body966 2.96336237e-07 0.00022758994635737866 7.07980829e-06 0.16764078345644415 0.0009489750126910459 6.401127999449354 2.285091354335331 303.6446873244932 228.97229775105836 0.4 0.4 0.4 0.0 0.0 0.0 -967.0 2.96336237e-07 0.000999277512501037 +Body967 2.96336237e-07 0.000999277512501037 7.07980829e-06 0.7360591615195017 0.0018949678770281517 2.87369291606918 56.67813336159815 123.49991022508948 285.23540579935207 0.4 0.4 0.4 0.0 0.0 0.0 -968.0 2.96336237e-07 0.001291167167389695 +Body968 2.96336237e-07 0.001291167167389695 7.07980829e-06 0.9510625534159438 0.00048414046083810925 0.038185085019309936 139.91628422613323 331.77350842486277 234.9446144529372 0.4 0.4 0.4 0.0 0.0 0.0 -969.0 2.96336237e-07 0.0016073709303560204 +Body969 2.96336237e-07 0.0016073709303560204 7.07980829e-06 1.18397550675138 0.0012098443018083715 9.646477689381754 31.621294470619585 126.17811718834633 334.5105864118128 0.4 0.4 0.4 0.0 0.0 0.0 -970.0 2.96336237e-07 0.0034709429840917563 +Body970 2.96336237e-07 0.0034709429840917563 7.07980829e-06 2.556666542168309 0.0007600022860671346 11.316786818393913 258.5630322140128 332.7233936354956 299.4496346844978 0.4 0.4 0.4 0.0 0.0 0.0 -971.0 2.96336237e-07 0.0003385735361366209 +Body971 2.96336237e-07 0.0003385735361366209 7.07980829e-06 0.2493903345204671 0.0006619383365492601 6.918466133956221 34.08709733785606 41.67273369273931 169.08779374597916 0.4 0.4 0.4 0.0 0.0 0.0 -972.0 2.96336237e-07 0.00050944360942722 +Body972 2.96336237e-07 0.00050944360942722 7.07980829e-06 0.3752517506953094 0.0019324612115266307 10.802402793584992 212.13550421956228 82.64100064809932 358.327784724528 0.4 0.4 0.4 0.0 0.0 0.0 -973.0 2.96336237e-07 0.001229790121697113 +Body973 2.96336237e-07 0.001229790121697113 7.07980829e-06 0.9058527531113671 0.0019972782738101407 8.070688417828606 170.93848526477916 286.36681005572785 11.702196432894826 0.4 0.4 0.4 0.0 0.0 0.0 -974.0 2.96336237e-07 0.0008650449636453158 +Body974 2.96336237e-07 0.0008650449636453158 7.07980829e-06 0.6371846285460949 0.0009740192551011546 3.532833541688154 331.1815313747915 250.47137135834765 279.6190711788757 0.4 0.4 0.4 0.0 0.0 0.0 -975.0 2.96336237e-07 0.002961099957296551 +Body975 2.96336237e-07 0.002961099957296551 7.07980829e-06 2.181120584098874 5.6510615072364866e-05 5.138204604312275 122.391328210872 56.07153820108413 286.4349957165175 0.4 0.4 0.4 0.0 0.0 0.0 -976.0 2.96336237e-07 0.0006799189019085471 +Body976 2.96336237e-07 0.0006799189019085471 7.07980829e-06 0.5008223747450198 0.001866120847901651 6.4065430644434676 222.15782786186904 168.83609464143038 178.13873495994855 0.4 0.4 0.4 0.0 0.0 0.0 -977.0 2.96336237e-07 0.004828142098697655 +Body977 2.96336237e-07 0.004828142098697655 7.07980829e-06 3.5563676560376067 0.001177565972191332 2.2812645152918685 356.4603873337414 307.1163678613121 303.8837059895023 0.4 0.4 0.4 0.0 0.0 0.0 -978.0 2.96336237e-07 0.000141646097163809 +Body978 2.96336237e-07 0.000141646097163809 7.07980829e-06 0.10433528845251076 0.001606147555238029 8.552526312184236 139.34496706570155 211.07561174914002 265.0884024681136 0.4 0.4 0.4 0.0 0.0 0.0 -979.0 2.96336237e-07 0.0005109812736103546 +Body979 2.96336237e-07 0.0005109812736103546 7.07980829e-06 0.376384380815749 0.0018168962500772184 8.186136241961707 173.48400684429888 254.6603408381069 50.17427136135035 0.4 0.4 0.4 0.0 0.0 0.0 -980.0 2.96336237e-07 0.0002598404969961439 +Body980 2.96336237e-07 0.0002598404969961439 7.07980829e-06 0.19139625975281196 2.0898093658894817e-05 1.570997656758336 277.31444846549095 299.90080452120395 59.28785330492891 0.4 0.4 0.4 0.0 0.0 0.0 -981.0 2.96336237e-07 0.0003856543733284739 +Body981 2.96336237e-07 0.0003856543733284739 7.07980829e-06 0.2840696714549461 0.0018994182556429312 6.299140599034355 188.7934353057022 314.490493699651 52.82133332577567 0.4 0.4 0.4 0.0 0.0 0.0 -982.0 2.96336237e-07 0.0007677979183114158 +Body982 2.96336237e-07 0.0007677979183114158 7.07980829e-06 0.5655532971559121 0.0007504200853511277 2.4239440934296557 295.55688315737433 41.24680176624648 98.2982458846315 0.4 0.4 0.4 0.0 0.0 0.0 -983.0 2.96336237e-07 0.001368007221170845 +Body983 2.96336237e-07 0.001368007221170845 7.07980829e-06 1.0076622715620158 0.0011230732994190636 6.916651351080801 79.4090970845436 331.0348072724332 253.98022025170627 0.4 0.4 0.4 0.0 0.0 0.0 -984.0 2.96336237e-07 0.000408044664239916 +Body984 2.96336237e-07 0.000408044664239916 7.07980829e-06 0.3005621658304129 0.000862785366571587 8.224997779033004 4.44990334992864 28.905921968573782 27.49431333688353 0.4 0.4 0.4 0.0 0.0 0.0 -985.0 2.96336237e-07 0.00040727545945343756 +Body985 2.96336237e-07 0.00040727545945343756 7.07980829e-06 0.29999557624634926 0.0011676625751051118 3.055021078867999 256.9847919768008 164.61755869715932 54.083333897413326 0.4 0.4 0.4 0.0 0.0 0.0 -986.0 2.96336237e-07 0.00019081952515606263 +Body986 2.96336237e-07 0.00019081952515606263 7.07980829e-06 0.14055600964779558 0.0006255484448296172 4.197820752524388 212.36644452501898 273.32646812567185 296.0458302579175 0.4 0.4 0.4 0.0 0.0 0.0 -987.0 2.96336237e-07 0.0002079176483392447 +Body987 2.96336237e-07 0.0002079176483392447 7.07980829e-06 0.15315033910715795 0.001205282231944934 2.7062419360122356 263.1550680592602 239.03960080387805 266.1389806298129 0.4 0.4 0.4 0.0 0.0 0.0 -988.0 2.96336237e-07 0.0005356291778285949 +Body988 2.96336237e-07 0.0005356291778285949 7.07980829e-06 0.3945398136010656 0.0014083723635099636 7.44772565198021 271.94654997981996 318.713146901804 271.098975185176 0.4 0.4 0.4 0.0 0.0 0.0 -989.0 2.96336237e-07 0.00031289836564658895 +Body989 2.96336237e-07 0.00031289836564658895 7.07980829e-06 0.2304782262959327 0.001996157571664623 1.7953675532218945 157.30520641324463 97.28381007133018 168.826782524686 0.4 0.4 0.4 0.0 0.0 0.0 -990.0 2.96336237e-07 0.00014013209994440944 +Body990 2.96336237e-07 0.00014013209994440944 7.07980829e-06 0.10322009121259194 0.0010882833278620838 5.078082735136406 9.2520530552408 132.5894578402618 331.3155501776673 0.4 0.4 0.4 0.0 0.0 0.0 -991.0 2.96336237e-07 0.00233082373662703 +Body991 2.96336237e-07 0.00233082373662703 7.07980829e-06 1.7168645784267693 0.0016271650341297165 4.114544153927535 351.25334548400645 138.95504074018666 185.8353351547235 0.4 0.4 0.4 0.0 0.0 0.0 -992.0 2.96336237e-07 0.002636986233870952 +Body992 2.96336237e-07 0.002636986233870952 7.07980829e-06 1.9423812223929209 0.0019692418167083325 11.425318652008995 185.73262580174244 252.03030092015973 207.56120933659767 0.4 0.4 0.4 0.0 0.0 0.0 -993.0 2.96336237e-07 0.00016402183333624496 +Body993 2.96336237e-07 0.00016402183333624496 7.07980829e-06 0.12081706193327614 0.0003224994503120344 7.709563804183875 257.0939616583555 85.40420498679829 110.05836070945647 0.4 0.4 0.4 0.0 0.0 0.0 -994.0 2.96336237e-07 0.0012377043699630425 +Body994 2.96336237e-07 0.0012377043699630425 7.07980829e-06 0.9116823198431324 0.00022287062354428208 9.300229676165964 280.63884189171 318.62871983717224 296.0717146606687 0.4 0.4 0.4 0.0 0.0 0.0 -995.0 2.96336237e-07 0.002260220280143841 +Body995 2.96336237e-07 0.002260220280143841 7.07980829e-06 1.6648586838386625 0.0007465494368326222 7.4287326086969925 112.11905360177528 291.5900905227579 109.71810904858756 0.4 0.4 0.4 0.0 0.0 0.0 -996.0 2.96336237e-07 0.00026215899699463027 +Body996 2.96336237e-07 0.00026215899699463027 7.07980829e-06 0.19310404677245338 0.0006067378650827866 3.6110927080088966 97.28106390217381 324.10608453382685 168.11069126980863 0.4 0.4 0.4 0.0 0.0 0.0 -997.0 2.96336237e-07 0.00018069785172300103 +Body997 2.96336237e-07 0.00018069785172300103 7.07980829e-06 0.13310047265520683 0.0005521152215102571 4.912658693805361 93.03184991783085 132.10056259281993 305.7467862413506 0.4 0.4 0.4 0.0 0.0 0.0 -998.0 2.96336237e-07 0.0014835722645703342 +Body998 2.96336237e-07 0.0014835722645703342 7.07980829e-06 1.092786481685282 0.00022519760218844083 0.28299231052296037 293.16727028839244 89.60460664524368 269.71206597351477 0.4 0.4 0.4 0.0 0.0 0.0 -999.0 2.96336237e-07 0.0006542284424778668 +Body999 2.96336237e-07 0.0006542284424778668 7.07980829e-06 0.48189900481921283 5.8469340653842034e-05 8.6347131557263 320.3038606133154 3.7362594166049425 297.8745781037441 0.4 0.4 0.4 0.0 0.0 0.0 -1000.0 2.96336237e-07 0.0023860635951898344 +Body1000 2.96336237e-07 0.0023860635951898344 7.07980829e-06 1.7575537798423284 0.0015923584364734404 0.7497659565533127 258.13390529900033 164.1276557227987 234.5342373211746 0.4 0.4 0.4 0.0 0.0 0.0 -1001.0 2.96336237e-07 0.00016412719469400177 +Body1001 2.96336237e-07 0.00016412719469400177 7.07980829e-06 0.12089467019692349 0.0006199101143477205 3.528817814353401 42.290001410886 340.89543332710036 171.86047583604415 0.4 0.4 0.4 0.0 0.0 0.0 -1002.0 2.96336237e-07 0.004941936846687636 +Body1002 2.96336237e-07 0.004941936846687636 7.07980829e-06 3.6401878818937763 0.001361898468997319 2.167593142033261 16.21639790039635 4.730174650782885 58.251883556586385 0.4 0.4 0.4 0.0 0.0 0.0 -1003.0 2.96336237e-07 0.00022503263383578275 +Body1003 2.96336237e-07 0.00022503263383578275 7.07980829e-06 0.16575708920050317 0.001966846897325159 9.99588265829861 161.46885212574486 120.73838153799245 190.69422150670002 0.4 0.4 0.4 0.0 0.0 0.0 -1004.0 2.96336237e-07 0.0006111785368094322 +Body1004 2.96336237e-07 0.0006111785368094322 7.07980829e-06 0.4501888171352197 0.001266552287936059 3.4753217655037876 293.8923905613918 150.86042915093037 112.98897163665784 0.4 0.4 0.4 0.0 0.0 0.0 -1005.0 2.96336237e-07 0.0014933101478686677 +Body1005 2.96336237e-07 0.0014933101478686677 7.07980829e-06 1.0999593221884236 0.0003932826201052038 11.015694261113268 197.1351304007129 80.23041820280649 256.5820864126465 0.4 0.4 0.4 0.0 0.0 0.0 -1006.0 2.96336237e-07 0.00018406461078391325 +Body1006 2.96336237e-07 0.00018406461078391325 7.07980829e-06 0.13558039822184031 0.0018493648780547522 8.220110340024462 55.73290020366385 260.5081647359973 247.1075065232204 0.4 0.4 0.4 0.0 0.0 0.0 -1007.0 2.96336237e-07 0.00019456058361372848 +Body1007 2.96336237e-07 0.00019456058361372848 7.07980829e-06 0.14331164090847814 0.0010977637225908158 2.4063330147587334 280.25718138195566 174.4845719313416 50.162734252997346 0.4 0.4 0.4 0.0 0.0 0.0 -1008.0 2.96336237e-07 0.00024237110581885066 +Body1008 2.96336237e-07 0.00024237110581885066 7.07980829e-06 0.17852845750433366 0.0015150721806043333 2.593896114664551 1.5867521368020707 50.3209565059869 286.4748774211602 0.4 0.4 0.4 0.0 0.0 0.0 -1009.0 2.96336237e-07 0.0002880594378219669 +Body1009 2.96336237e-07 0.0002880594378219669 7.07980829e-06 0.2121820871765049 0.0011051968447009415 0.9220451361420159 213.93920419758638 101.13182462569537 87.28103445701775 0.4 0.4 0.4 0.0 0.0 0.0 -1010.0 2.96336237e-07 0.001835451666065534 +Body1010 2.96336237e-07 0.001835451666065534 7.07980829e-06 1.3519778013941521 0.0012681262242561415 8.64584690347934 157.36434888906416 144.07645513624757 80.24977045653176 0.4 0.4 0.4 0.0 0.0 0.0 -1011.0 2.96336237e-07 0.00031003391026964154 +Body1011 2.96336237e-07 0.00031003391026964154 7.07980829e-06 0.22836829327273386 0.0014620575872105336 7.427938697241293 90.3044091402035 81.87800973534473 358.49381627511474 0.4 0.4 0.4 0.0 0.0 0.0 -1012.0 2.96336237e-07 0.00017192364762639922 +Body1012 2.96336237e-07 0.00017192364762639922 7.07980829e-06 0.1266374699061692 0.0018842981448954994 3.4713185050926847 76.79269848254022 92.0385212581749 214.5312215545811 0.4 0.4 0.4 0.0 0.0 0.0 -1013.0 2.96336237e-07 0.0011995594696174474 +Body1013 2.96336237e-07 0.0011995594696174474 7.07980829e-06 0.8835851166004101 0.000669592468330938 1.2977853266371469 325.7330316843859 1.5205524389952982 206.46145338562224 0.4 0.4 0.4 0.0 0.0 0.0 -1014.0 2.96336237e-07 0.0004297236435249972 +Body1014 2.96336237e-07 0.0004297236435249972 7.07980829e-06 0.31653071422217804 0.0003968290223471482 10.695383872637636 235.65535308705591 285.04481948708445 4.037853790044544 0.4 0.4 0.4 0.0 0.0 0.0 -1015.0 2.96336237e-07 0.0009663190570397225 +Body1015 2.96336237e-07 0.0009663190570397225 7.07980829e-06 0.7117822486616155 1.0582720333339041e-05 1.0331708911946655 20.22623311598944 318.3578681583923 174.8102790417449 0.4 0.4 0.4 0.0 0.0 0.0 -1016.0 2.96336237e-07 0.00019430233859558718 +Body1016 2.96336237e-07 0.00019430233859558718 7.07980829e-06 0.14312141986463225 0.000694789513369331 1.1919133893280893 144.64146687271867 33.42514348436069 1.7437790912856979 0.4 0.4 0.4 0.0 0.0 0.0 -1017.0 2.96336237e-07 0.0002351421165249028 +Body1017 2.96336237e-07 0.0002351421165249028 7.07980829e-06 0.17320364659668183 0.00011020940322937086 6.6717830165939 106.49474151879747 116.21484599903383 168.11514233105655 0.4 0.4 0.4 0.0 0.0 0.0 -1018.0 2.96336237e-07 0.0006374122183839503 +Body1018 2.96336237e-07 0.0006374122183839503 7.07980829e-06 0.46951231978763164 1.0313885841382204e-05 0.283485576361803 248.40949874465076 61.78537628740118 69.80315322742248 0.4 0.4 0.4 0.0 0.0 0.0 -1019.0 2.96336237e-07 0.0016238205834913815 +Body1019 2.96336237e-07 0.0016238205834913815 7.07980829e-06 1.196092178789557 0.00044029218790311245 9.294952685150736 192.9432720942652 219.75438615459558 8.593013571751802 0.4 0.4 0.4 0.0 0.0 0.0 -1020.0 2.96336237e-07 0.0002359911786367202 +Body1020 2.96336237e-07 0.0002359911786367202 7.07980829e-06 0.1738290583949901 0.0016860917119783944 7.070809732901793 50.61554168251882 82.35194741251726 122.93934305630053 0.4 0.4 0.4 0.0 0.0 0.0 -1021.0 2.96336237e-07 0.0013374222699180736 +Body1021 2.96336237e-07 0.0013374222699180736 7.07980829e-06 0.985133661348538 0.0016013894048395488 0.1937721644334621 310.06595705801703 328.0680479331346 324.315639311186 0.4 0.4 0.4 0.0 0.0 0.0 -1022.0 2.96336237e-07 0.0005509336475663367 +Body1022 2.96336237e-07 0.0005509336475663367 7.07980829e-06 0.40581295346635515 0.00177184140930115 4.72270518835129 13.777991578702514 29.103319407207273 209.48918113436866 0.4 0.4 0.4 0.0 0.0 0.0 -1023.0 2.96336237e-07 0.00041610279811663437 +Body1023 2.96336237e-07 0.00041610279811663437 7.07980829e-06 0.30649771745697174 0.0009590960375982868 0.3398205898598721 4.114269656502745 119.46390049602921 202.11512779386223 0.4 0.4 0.4 0.0 0.0 0.0 -1024.0 2.96336237e-07 0.0001403860693474923 +Body1024 2.96336237e-07 0.0001403860693474923 7.07980829e-06 0.1034071628754145 0.0014866370983263651 0.4388100867792128 156.1246806954142 299.55046831024754 184.84512699514002 0.4 0.4 0.4 0.0 0.0 0.0 -1025.0 2.96336237e-07 0.0004904100706912027 +Body1025 2.96336237e-07 0.0004904100706912027 7.07980829e-06 0.36123181090129014 0.0005275158958782995 6.040658312413581 289.57784927223867 106.22818791374922 246.0010122010286 0.4 0.4 0.4 0.0 0.0 0.0 -1026.0 2.96336237e-07 0.0002115872709214439 +Body1026 2.96336237e-07 0.0002115872709214439 7.07980829e-06 0.1558533513206383 0.00017962305255114086 2.228555718939646 221.69083506261506 335.55035580083063 68.78998943071673 0.4 0.4 0.4 0.0 0.0 0.0 -1027.0 2.96336237e-07 0.0012054461730928302 +Body1027 2.96336237e-07 0.0012054461730928302 7.07980829e-06 0.8879212113989006 0.0018184438677694458 9.604726975252321 256.33122715191917 110.65660729704527 307.36242303481583 0.4 0.4 0.4 0.0 0.0 0.0 -1028.0 2.96336237e-07 0.0002301953665735905 +Body1028 2.96336237e-07 0.0002301953665735905 7.07980829e-06 0.16955991342360516 0.001875700972295152 8.812230202795027 318.4987276783344 313.5618824324488 232.72945395306718 0.4 0.4 0.4 0.0 0.0 0.0 -1029.0 2.96336237e-07 0.0003830711229494787 +Body1029 2.96336237e-07 0.0003830711229494787 7.07980829e-06 0.2821668715978782 0.0018646047988924999 10.4842960126124 87.79503469486153 142.14901778290115 169.28619961043805 0.4 0.4 0.4 0.0 0.0 0.0 -1030.0 2.96336237e-07 0.00013616362117447619 +Body1030 2.96336237e-07 0.00013616362117447619 7.07980829e-06 0.1002969441194545 0.0019340938484324966 9.257468575255746 98.6643320398618 100.47235147951874 223.44457800245482 0.4 0.4 0.4 0.0 0.0 0.0 -1031.0 2.96336237e-07 0.0010567519895469774 +Body1031 2.96336237e-07 0.0010567519895469774 7.07980829e-06 0.7783943635569466 0.001679773904269816 1.2027233467654006 183.8272709991961 232.37589915408836 235.10407255216268 0.4 0.4 0.4 0.0 0.0 0.0 -1032.0 2.96336237e-07 0.0006595442619462101 +Body1032 2.96336237e-07 0.0006595442619462101 7.07980829e-06 0.485814591402228 0.0010034907372722369 3.273195681562454 229.21049828043255 132.60304900464524 14.233912459494354 0.4 0.4 0.4 0.0 0.0 0.0 -1033.0 2.96336237e-07 0.00023664997581116507 +Body1033 2.96336237e-07 0.00023664997581116507 7.07980829e-06 0.17431432268820896 0.0016827982976985647 5.078435328585683 62.29790054827389 41.22978729775912 107.23698746785354 0.4 0.4 0.4 0.0 0.0 0.0 -1034.0 2.96336237e-07 0.001318705638331831 +Body1034 2.96336237e-07 0.001318705638331831 7.07980829e-06 0.9713471526164856 0.0018570382735186622 7.035178345537015 353.5214098527756 257.39567363852177 183.11732818206784 0.4 0.4 0.4 0.0 0.0 0.0 -1035.0 2.96336237e-07 0.0005118746339964803 +Body1035 2.96336237e-07 0.0005118746339964803 7.07980829e-06 0.37704242233926993 0.0005823099511214891 7.468921656685116 229.6514522787109 181.28691418249238 167.59896969912432 0.4 0.4 0.4 0.0 0.0 0.0 -1036.0 2.96336237e-07 0.00015029486112446563 +Body1036 2.96336237e-07 0.00015029486112446563 7.07980829e-06 0.11070589308377869 0.00018389956348444143 1.9961843041263327 158.13156629323322 291.93559238946756 147.74549322555492 0.4 0.4 0.4 0.0 0.0 0.0 -1037.0 2.96336237e-07 0.00043842515077565096 +Body1037 2.96336237e-07 0.00043842515077565096 7.07980829e-06 0.32294016910407747 0.0015694793242154081 4.926590245765692 301.9847715564752 193.4474659331788 270.15259927024186 0.4 0.4 0.4 0.0 0.0 0.0 -1038.0 2.96336237e-07 0.0006671725313668756 +Body1038 2.96336237e-07 0.0006671725313668756 7.07980829e-06 0.49143350859327606 0.0015771093149727837 10.224654773938632 111.27785703678904 48.8195507283246 90.33356191746999 0.4 0.4 0.4 0.0 0.0 0.0 -1039.0 2.96336237e-07 0.0007178575227925163 +Body1039 2.96336237e-07 0.0007178575227925163 7.07980829e-06 0.5287676343227806 0.0014126630019065758 9.776440869136062 187.9378440567246 159.39709706456992 19.349416992256124 0.4 0.4 0.4 0.0 0.0 0.0 -1040.0 2.96336237e-07 0.0002798437797408352 +Body1040 2.96336237e-07 0.0002798437797408352 7.07980829e-06 0.20613050458520504 0.0016509289679437099 4.723892716345665 91.14449265725597 85.21589055108116 98.32164075727847 0.4 0.4 0.4 0.0 0.0 0.0 -1041.0 2.96336237e-07 0.0002263422882310149 +Body1041 2.96336237e-07 0.0002263422882310149 7.07980829e-06 0.16672176928584023 0.0004714213343695067 0.22170557888045386 54.607112841276376 12.205015472013512 173.46043809374353 0.4 0.4 0.4 0.0 0.0 0.0 -1042.0 2.96336237e-07 0.0009296457461436903 +Body1042 2.96336237e-07 0.0009296457461436903 7.07980829e-06 0.6847690054628205 0.0006431313423143502 0.7775645891294196 13.438885358051545 201.28512538898056 237.90695576201654 0.4 0.4 0.4 0.0 0.0 0.0 -1043.0 2.96336237e-07 0.00014471154854085126 +Body1043 2.96336237e-07 0.00014471154854085126 7.07980829e-06 0.1065932733886645 0.0013576679540193398 5.468547562720859 36.06169947612996 221.1108065224926 121.64906093398862 0.4 0.4 0.4 0.0 0.0 0.0 -1044.0 2.96336237e-07 0.00037877024306155 +Body1044 2.96336237e-07 0.00037877024306155 7.07980829e-06 0.2789988807199672 0.0011132428485285735 5.050474666995423 249.74545118406445 258.5653900199572 92.29764359239104 0.4 0.4 0.4 0.0 0.0 0.0 -1045.0 2.96336237e-07 0.001114328815806798 +Body1045 2.96336237e-07 0.001114328815806798 7.07980829e-06 0.8208049551389457 0.0002629442756225448 6.163105710226599 271.7004838770167 98.10963662399806 23.94590526447956 0.4 0.4 0.4 0.0 0.0 0.0 -1046.0 2.96336237e-07 0.0001582092222130898 +Body1046 2.96336237e-07 0.0001582092222130898 7.07980829e-06 0.11653554291976381 0.00023376293046817017 8.835825709860268 263.8062967986066 31.365484807908 308.687475111338 0.4 0.4 0.4 0.0 0.0 0.0 -1047.0 2.96336237e-07 0.0001380216644816069 +Body1047 2.96336237e-07 0.0001380216644816069 7.07980829e-06 0.10166556272800358 0.00045162508055423043 1.5132402918154233 326.71546075352586 327.68305493129543 29.18082087489584 0.4 0.4 0.4 0.0 0.0 0.0 -1048.0 2.96336237e-07 0.0006949747121783435 +Body1048 2.96336237e-07 0.0006949747121783435 7.07980829e-06 0.5119123541997226 0.0018713396984367957 7.02135922104862 303.3858597951343 78.44703853152163 145.1418248146341 0.4 0.4 0.4 0.0 0.0 0.0 -1049.0 2.96336237e-07 0.00041090676352630105 +Body1049 2.96336237e-07 0.00041090676352630105 7.07980829e-06 0.3026703633777083 0.0018193201285857054 4.736122465093243 192.76873790004578 123.35136201021704 226.6478029131528 0.4 0.4 0.4 0.0 0.0 0.0 -1050.0 2.96336237e-07 0.0005190460990146181 +Body1050 2.96336237e-07 0.0005190460990146181 7.07980829e-06 0.382324861363546 0.00036914350456759447 7.0531347201912356 319.30383186798866 186.0442457047016 45.41161522402716 0.4 0.4 0.4 0.0 0.0 0.0 -1051.0 2.96336237e-07 0.0005570896423234391 +Body1051 2.96336237e-07 0.0005570896423234391 7.07980829e-06 0.4103474058907777 0.00019454636651792913 3.308658013346352 259.4879647052133 198.29000308840256 121.88790531858048 0.4 0.4 0.4 0.0 0.0 0.0 -1052.0 2.96336237e-07 0.00015004376774584662 +Body1052 2.96336237e-07 0.00015004376774584662 7.07980829e-06 0.11052093987566852 0.0005132108209643012 5.847971496400572 358.2931626537533 52.74559372288429 341.8253704638137 0.4 0.4 0.4 0.0 0.0 0.0 -1053.0 2.96336237e-07 0.0002698064447930371 +Body1053 2.96336237e-07 0.0002698064447930371 7.07980829e-06 0.19873709059045247 4.0859603511946685e-05 9.177085749947818 74.85375525962608 51.57071985092971 71.96201861419884 0.4 0.4 0.4 0.0 0.0 0.0 -1054.0 2.96336237e-07 0.0012305098304465736 +Body1054 2.96336237e-07 0.0012305098304465736 7.07980829e-06 0.9063828843432212 8.347532413762518e-05 11.039263844273759 351.14137820165297 198.23851222477109 203.36588365669812 0.4 0.4 0.4 0.0 0.0 0.0 -1055.0 2.96336237e-07 0.0001568172138124013 +Body1055 2.96336237e-07 0.0001568172138124013 7.07980829e-06 0.11551020158723 0.0009641443679568011 6.060219043124053 250.67097763803443 73.7144156562964 61.69380447177951 0.4 0.4 0.4 0.0 0.0 0.0 -1056.0 2.96336237e-07 0.0007784718672315925 +Body1056 2.96336237e-07 0.0007784718672315925 7.07980829e-06 0.5734156354893578 0.00037805965343345397 9.20178855576056 185.31494995190826 272.62312850782456 244.0037955450334 0.4 0.4 0.4 0.0 0.0 0.0 -1057.0 2.96336237e-07 0.0020016415139744647 +Body1057 2.96336237e-07 0.0020016415139744647 7.07980829e-06 1.474391804085696 0.0017615842823230773 6.886427957908099 232.2819884863594 20.386138671028082 287.0942892242212 0.4 0.4 0.4 0.0 0.0 0.0 -1058.0 2.96336237e-07 0.0003128786308940594 +Body1058 2.96336237e-07 0.0003128786308940594 7.07980829e-06 0.23046368984813118 0.00026034657543586693 0.9965960172825522 282.2271432222122 109.64538903982367 30.26113287739992 0.4 0.4 0.4 0.0 0.0 0.0 -1059.0 2.96336237e-07 0.002280948538736275 +Body1059 2.96336237e-07 0.002280948538736275 7.07980829e-06 1.6801269396018885 0.0018814136632662839 4.401712167064789 142.60240528002035 323.0208336955997 201.17599880588443 0.4 0.4 0.4 0.0 0.0 0.0 -1060.0 2.96336237e-07 0.0010794162761996403 +Body1060 2.96336237e-07 0.0010794162761996403 7.07980829e-06 0.7950886808224714 0.0006422835491610436 7.311343469200093 3.3195965949378676 195.64747664798455 301.5916100882996 0.4 0.4 0.4 0.0 0.0 0.0 -1061.0 2.96336237e-07 0.0038205438966614834 +Body1061 2.96336237e-07 0.0038205438966614834 7.07980829e-06 2.8141795466674058 0.00119787361542321 10.667509696747311 52.83677312459824 41.02571442700538 313.93040156906204 0.4 0.4 0.4 0.0 0.0 0.0 -1062.0 2.96336237e-07 0.0007444726066210494 +Body1062 2.96336237e-07 0.0007444726066210494 7.07980829e-06 0.5483720745723865 0.0003865067453184975 0.5355920908152287 342.9518172608334 309.11372912966795 118.04505970639424 0.4 0.4 0.4 0.0 0.0 0.0 -1063.0 2.96336237e-07 0.0030820512703673723 +Body1063 2.96336237e-07 0.0030820512703673723 7.07980829e-06 2.2702122738145465 0.001414595339723291 3.0183779331408984 44.040931617179766 165.14070943364828 170.9325128444665 0.4 0.4 0.4 0.0 0.0 0.0 -1064.0 2.96336237e-07 0.001292023450921525 +Body1064 2.96336237e-07 0.001292023450921525 7.07980829e-06 0.9516932844496926 0.001255124176185626 9.410447615755132 103.77112988217213 98.92626620219501 36.37866204625916 0.4 0.4 0.4 0.0 0.0 0.0 -1065.0 2.96336237e-07 0.0005006501267576775 +Body1065 2.96336237e-07 0.0005006501267576775 7.07980829e-06 0.3687745475164047 0.00012010083746096664 11.332153792172592 82.36163994190758 221.29234376821722 312.489878003404 0.4 0.4 0.4 0.0 0.0 0.0 -1066.0 2.96336237e-07 0.00024312721614488058 +Body1066 2.96336237e-07 0.00024312721614488058 7.07980829e-06 0.17908540182223479 0.0007928811065615938 9.090241652441014 148.41938777280106 66.55238686381871 122.48896513542098 0.4 0.4 0.4 0.0 0.0 0.0 -1067.0 2.96336237e-07 0.000484561114979234 +Body1067 2.96336237e-07 0.000484561114979234 7.07980829e-06 0.3569235207784181 0.0002450194070024846 4.327457613923389 154.34903842078862 184.03496751066874 141.03467043934236 0.4 0.4 0.4 0.0 0.0 0.0 -1068.0 2.96336237e-07 0.0002295281745818022 +Body1068 2.96336237e-07 0.0002295281745818022 7.07980829e-06 0.169068465580634 0.0014182095016049016 4.076850747292395 285.9512621452999 304.0626748996221 13.733221199055034 0.4 0.4 0.4 0.0 0.0 0.0 -1069.0 2.96336237e-07 0.0003594752961708292 +Body1069 2.96336237e-07 0.0003594752961708292 7.07980829e-06 0.2647863899431045 0.0002604205926253782 9.280674865620604 145.2491426198426 8.796817478925986 128.45810995912268 0.4 0.4 0.4 0.0 0.0 0.0 -1070.0 2.96336237e-07 0.00014172518222536575 +Body1070 2.96336237e-07 0.00014172518222536575 7.07980829e-06 0.10439354182394157 9.839221898313551e-05 2.1156677281913794 24.852002854809896 92.69018327719559 148.89039267610767 0.4 0.4 0.4 0.0 0.0 0.0 -1071.0 2.96336237e-07 0.0002016479386200088 +Body1071 2.96336237e-07 0.0002016479386200088 7.07980829e-06 0.14853212522645015 0.0017914163418180427 11.068928719328813 114.12056238330297 311.59906008741643 291.70201700840965 0.4 0.4 0.4 0.0 0.0 0.0 -1072.0 2.96336237e-07 0.00029647910859208323 +Body1072 2.96336237e-07 0.00029647910859208323 7.07980829e-06 0.21838394374767 0.0005146041736322796 9.504245913579787 265.097773326478 182.73670388417793 51.957204708288096 0.4 0.4 0.4 0.0 0.0 0.0 -1073.0 2.96336237e-07 0.00027367525859549297 +Body1073 2.96336237e-07 0.00027367525859549297 7.07980829e-06 0.20158682533168915 0.00018687907075023996 9.319915790288432 282.55201858549447 141.6311126988207 131.21227760057155 0.4 0.4 0.4 0.0 0.0 0.0 -1074.0 2.96336237e-07 0.00015525822331078113 +Body1074 2.96336237e-07 0.00015525822331078113 7.07980829e-06 0.11436186268528936 0.0004119016832350737 6.574991289388891 105.77935988116378 236.0611136901257 109.28511887744698 0.4 0.4 0.4 0.0 0.0 0.0 -1075.0 2.96336237e-07 0.0003583433710142642 +Body1075 2.96336237e-07 0.0003583433710142642 7.07980829e-06 0.2639526236757552 0.0008337956289715744 1.3376216652307844 121.92448780471639 34.07719270560039 77.69917625943664 0.4 0.4 0.4 0.0 0.0 0.0 -1076.0 2.96336237e-07 0.00038670760067879823 +Body1076 2.96336237e-07 0.00038670760067879823 7.07980829e-06 0.2848454695997766 0.0016887729407050614 2.0032196718865887 5.268555024531614 305.5550610348134 87.36285255817019 0.4 0.4 0.4 0.0 0.0 0.0 -1077.0 2.96336237e-07 0.0005852817156672451 +Body1077 2.96336237e-07 0.0005852817156672451 7.07980829e-06 0.4311134429599012 4.2331792720825e-05 8.59969096301321 63.37516804763427 165.06484164761468 4.724447309546279 0.4 0.4 0.4 0.0 0.0 0.0 -1078.0 2.96336237e-07 0.0015676661151334862 +Body1078 2.96336237e-07 0.0015676661151334862 7.07980829e-06 1.1547292837198626 0.0011981035748268721 8.969251150946953 305.463305609603 217.13849671607755 101.181996737649 0.4 0.4 0.4 0.0 0.0 0.0 -1079.0 2.96336237e-07 0.00014305620178764748 +Body1079 2.96336237e-07 0.00014305620178764748 7.07980829e-06 0.10537395930629548 0.0009062114287953925 8.535513578982753 200.6263462199005 138.64084794365152 240.50625521460537 0.4 0.4 0.4 0.0 0.0 0.0 -1080.0 2.96336237e-07 0.0004940068971867729 +Body1080 2.96336237e-07 0.0004940068971867729 7.07980829e-06 0.36388120214780617 0.0011787048296460743 2.2700663210263694 157.0025718585469 106.5254491912733 193.52066864297382 0.4 0.4 0.4 0.0 0.0 0.0 -1081.0 2.96336237e-07 0.00034215807366096336 +Body1081 2.96336237e-07 0.00034215807366096336 7.07980829e-06 0.25203067381720473 0.00033240376352644557 5.8095471421992055 294.8529110644031 32.43864947017361 108.02452531613245 0.4 0.4 0.4 0.0 0.0 0.0 -1082.0 2.96336237e-07 0.0005257134897729528 +Body1082 2.96336237e-07 0.0005257134897729528 7.07980829e-06 0.38723600365355887 0.0014176988844195625 1.7020679685604367 154.24226598932938 249.80038110010247 217.66315089733828 0.4 0.4 0.4 0.0 0.0 0.0 -1083.0 2.96336237e-07 0.00013922216074144442 +Body1083 2.96336237e-07 0.00013922216074144442 7.07980829e-06 0.10254983787616709 0.001955802223468188 6.566427553036517 285.0325186657339 202.16052389944963 135.84081277325714 0.4 0.4 0.4 0.0 0.0 0.0 -1084.0 2.96336237e-07 0.0002073898952932506 +Body1084 2.96336237e-07 0.0002073898952932506 7.07980829e-06 0.15276160078405535 0.0007628203986920079 10.56800929369996 333.12847419347 204.0299708421488 12.049520689477403 0.4 0.4 0.4 0.0 0.0 0.0 -1085.0 2.96336237e-07 0.00017702811622741558 +Body1085 2.96336237e-07 0.00017702811622741558 7.07980829e-06 0.13039737727070405 0.00036806562946591764 7.391982068575776 17.506082273198004 89.500369236383 15.26719944960728 0.4 0.4 0.4 0.0 0.0 0.0 -1086.0 2.96336237e-07 0.00020397807847560232 +Body1086 2.96336237e-07 0.00020397807847560232 7.07980829e-06 0.15024848606403035 0.0015049857013671706 1.2247498246658155 268.0571666819836 169.12252482509325 35.3722225357901 0.4 0.4 0.4 0.0 0.0 0.0 -1087.0 2.96336237e-07 0.00014807870410146713 +Body1087 2.96336237e-07 0.00014807870410146713 7.07980829e-06 0.10907349101354584 0.0006756310625710788 1.2383196196555968 64.40501108361362 318.89784866832827 311.5312956004794 0.4 0.4 0.4 0.0 0.0 0.0 -1088.0 2.96336237e-07 0.0002733111251738441 +Body1088 2.96336237e-07 0.0002733111251738441 7.07980829e-06 0.20131860780686034 0.001126384587638148 3.43465132561609 184.4402950800669 242.44812792063072 237.3097094630739 0.4 0.4 0.4 0.0 0.0 0.0 -1089.0 2.96336237e-07 0.00015277565689980917 +Body1089 2.96336237e-07 0.00015277565689980917 7.07980829e-06 0.11253322576709932 0.0009290556457821281 8.960476834173825 258.69701166205476 210.9678169871424 193.3540846978131 0.4 0.4 0.4 0.0 0.0 0.0 -1090.0 2.96336237e-07 0.0043134087862902485 +Body1090 2.96336237e-07 0.0043134087862902485 7.07980829e-06 3.177219555938278 0.0008815486955619425 3.6471376972641885 187.12691492260888 208.12911881504223 127.41614600761226 0.4 0.4 0.4 0.0 0.0 0.0 -1091.0 2.96336237e-07 0.00037712157611909835 +Body1091 2.96336237e-07 0.00037712157611909835 7.07980829e-06 0.27778448692834806 0.0005856039772976977 0.7362629193989895 352.3748924239602 122.29468759528565 358.21764314401554 0.4 0.4 0.4 0.0 0.0 0.0 -1092.0 2.96336237e-07 0.00024348957256648923 +Body1092 2.96336237e-07 0.00024348957256648923 7.07980829e-06 0.17935231042422356 5.080273648972676e-05 3.472841125950471 87.14731508665045 200.7294349087714 23.581240140004677 0.4 0.4 0.4 0.0 0.0 0.0 -1093.0 2.96336237e-07 0.0019968678097743524 +Body1093 2.96336237e-07 0.0019968678097743524 7.07980829e-06 1.4708755349142997 0.0008350197432291574 6.939407722721982 184.84798594437146 215.22131590969263 274.3975154363176 0.4 0.4 0.4 0.0 0.0 0.0 -1094.0 2.96336237e-07 0.0002513942749606196 +Body1094 2.96336237e-07 0.0002513942749606196 7.07980829e-06 0.1851748457494931 0.0012729795107657288 3.968846002826205 15.515048045390435 316.7696316507825 94.76644295378343 0.4 0.4 0.4 0.0 0.0 0.0 -1095.0 2.96336237e-07 0.0001559672886350869 +Body1095 2.96336237e-07 0.0001559672886350869 7.07980829e-06 0.11488415406235117 0.0006109202926005335 3.789764151004609 278.57890670487143 14.385308236382837 334.617191068131 0.4 0.4 0.4 0.0 0.0 0.0 -1096.0 2.96336237e-07 0.0005494382458640973 +Body1096 2.96336237e-07 0.0005494382458640973 7.07980829e-06 0.404711453523331 0.0018056648021694045 6.125582872164304 212.4724906745584 14.141381811132613 308.585487497957 0.4 0.4 0.4 0.0 0.0 0.0 -1097.0 2.96336237e-07 0.0002965408486382183 +Body1097 2.96336237e-07 0.0002965408486382183 7.07980829e-06 0.2184294209309568 0.0018885208812988777 11.317354301511031 164.26963701178843 297.40431351980413 270.4945984891715 0.4 0.4 0.4 0.0 0.0 0.0 -1098.0 2.96336237e-07 0.0002576039217105266 +Body1098 2.96336237e-07 0.0002576039217105266 7.07980829e-06 0.18974881776716537 0.00033002858484475775 4.498053807254714 33.645734868988015 295.597646549693 234.4151171811031 0.4 0.4 0.4 0.0 0.0 0.0 -1099.0 2.96336237e-07 0.0001958825246323774 +Body1099 2.96336237e-07 0.0001958825246323774 7.07980829e-06 0.14428537121421636 0.0017137044394379005 4.029642428036966 271.67316889786736 106.54609382292395 138.21725331441138 0.4 0.4 0.4 0.0 0.0 0.0 -1100.0 2.96336237e-07 0.00016611157008233055 +Body1100 2.96336237e-07 0.00016611157008233055 7.07980829e-06 0.12235634392239092 0.001657358982362942 0.5373922338997845 225.46337325647366 197.13129345073978 114.94304125662089 0.4 0.4 0.4 0.0 0.0 0.0 -1101.0 2.96336237e-07 0.001308605507277351 +Body1101 2.96336237e-07 0.001308605507277351 7.07980829e-06 0.9639074835533934 0.0010432942754127976 10.412349198039687 114.9249921105892 32.56533325561457 288.25205278496304 0.4 0.4 0.4 0.0 0.0 0.0 -1102.0 2.96336237e-07 0.0003442049054244555 +Body1102 2.96336237e-07 0.0003442049054244555 7.07980829e-06 0.25353835236771743 0.0008680211886097618 7.07908811460832 184.72976734274292 234.14267202181568 36.374336712281284 0.4 0.4 0.4 0.0 0.0 0.0 -1103.0 2.96336237e-07 0.00262679764649654 +Body1103 2.96336237e-07 0.00262679764649654 7.07980829e-06 1.9348763971706382 0.001429152651771894 6.217100494758238 51.181217194967104 134.40266278121493 62.68811212560275 0.4 0.4 0.4 0.0 0.0 0.0 -1104.0 2.96336237e-07 0.00013666754181719987 +Body1104 2.96336237e-07 0.00013666754181719987 7.07980829e-06 0.10066812770070735 0.0010243846983094584 9.311950281761822 220.50938404411406 259.8318109894018 285.0754878105018 0.4 0.4 0.4 0.0 0.0 0.0 -1105.0 2.96336237e-07 0.00019553250780010182 +Body1105 2.96336237e-07 0.00019553250780010182 7.07980829e-06 0.14402755184686397 0.0015210580561077288 1.9378674420443527 31.802333045565963 246.72956575146446 163.22157357298997 0.4 0.4 0.4 0.0 0.0 0.0 -1106.0 2.96336237e-07 0.0011042330330908016 +Body1106 2.96336237e-07 0.0011042330330908016 7.07980829e-06 0.8133684890243221 4.150335338481837e-05 7.261073943736824 269.56939767535096 179.46353685386686 260.9257799412304 diff --git a/examples/symba_clement_2018/sun_MsunAUYR.in b/examples/symba_clement_2018/sun_MsunAUYR.in index fbe9bc7ed..20c47c397 100644 --- a/examples/symba_clement_2018/sun_MsunAUYR.in +++ b/examples/symba_clement_2018/sun_MsunAUYR.in @@ -1,4 +1,4 @@ -0 +Sun 39.476926408897626 0.004650467260962157 0.0 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 1fb3af422..d04fa73bd 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -36,7 +36,7 @@ "Reading Swiftest file param.in\n", "\n", "Creating Dataset\n", - "Successfully converted 2 output frames.\n", + "Successfully converted 17 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] } @@ -405,22 +405,22 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'origin_type' (id: 1521)>\n",
    +       "
    <xarray.DataArray 'origin_type' (id: 2612)>\n",
            "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
            "       ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n",
    -       "      dtype='<U18')\n",
    +       "      dtype='<U20')\n",
            "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    • id
      (id)
      int32
      0 1 2 3 4 ... 2608 2609 2610 2611
      array([   0,    1,    2, ..., 2609, 2610, 2611], dtype=int32)
  • " ], "text/plain": [ - "\n", + "\n", "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", " ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n", - " dtype='
    <xarray.DataArray 'name' ()>\n",
    -       "array(b'1322', dtype='|S32')\n",
    +       "
    <xarray.DataArray 'origin_type' (id: 2612)>\n",
    +       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    +       "       ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n",
    +       "      dtype='<U20')\n",
            "Coordinates:\n",
    -       "    id       int32 1321
    " + " * id (id) int32 0 1 2 3 4 5 6 7 ... 2605 2606 2607 2608 2609 2610 2611
    " ], "text/plain": [ - "\n", - "array(b'1322', dtype='|S32')\n", + "\n", + "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", + " ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n", + " dtype=' Date: Sat, 28 Aug 2021 13:24:30 -0400 Subject: [PATCH 245/315] Fixed array indexing problem when re-indexing the pl-pl encounter lists after a rearray operation. --- src/symba/symba_util.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index b8428dd99..51af8159d 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -418,7 +418,7 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(in) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k, npl + integer(I4B) :: i, j, k, npl, nencmin logical, dimension(:), allocatable :: lmask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter @@ -500,8 +500,10 @@ module subroutine symba_util_rearray_pl(self, system, param) call move_alloc(levelm_orig_pl, pl%levelm) call move_alloc(nplenc_orig_pl, pl%nplenc) + ! Re-index the encounter list as the index values may have changed associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) - do k = 1, system%plplenc_list%nenc + nencmin = min(system%plplenc_list%nenc, plplenc_old%nenc) + do k = 1, nencmin if ((idnew1(k) == idold1(k)) .and. (idnew2(k) == idold2(k))) then ! This is an encounter we already know about, so save the old information system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) From 3a796246814f6f005d39315364f329c9c3338062 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 14:04:28 -0400 Subject: [PATCH 246/315] Improved reporting of collisions with body names and ids --- src/discard/discard.f90 | 18 +++++++++--- src/symba/symba_collision.f90 | 52 ++++++++++++++++++++++++++++++++--- src/symba/symba_discard.f90 | 6 ++-- 3 files changed, 65 insertions(+), 11 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index 5c6f704e1..1d9922207 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -125,14 +125,14 @@ subroutine discard_cb_tp(tp, system, param) tp%status(i) = DISCARDED_RMAX write(idstr, *) tp%id(i) write(timestr, *) param%t - write(*, *) "Particle " // trim(adjustl(idstr)) // " too far from the central body at t = " // trim(adjustl(timestr)) + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then tp%status(i) = DISCARDED_RMIN write(idstr, *) tp%id(i) write(timestr, *) param%t - write(*, *) "Particle " // trim(adjustl(idstr)) // " too close to the central body at t = " // trim(adjustl(timestr)) + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. else if (param%rmaxu >= 0.0_DP) then @@ -143,7 +143,7 @@ subroutine discard_cb_tp(tp, system, param) tp%status(i) = DISCARDED_RMAXU write(idstr, *) tp%id(i) write(timestr, *) param%t - write(*, *) "Particle " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. end if @@ -173,6 +173,7 @@ subroutine discard_peri_tp(tp, system, param) integer(I4B) :: i, j, ih real(DP) :: r2 real(DP), dimension(NDIM) :: dx + character(len=STRMAX) :: idstr, timestr associate(cb => system%cb, ntp => tp%nbody, pl => system%pl, npl => system%pl%nbody, t => param%t) call tp%get_peri(system, param) @@ -190,7 +191,9 @@ subroutine discard_peri_tp(tp, system, param) (tp%atp(i) <= param%qmin_ahi) .and. & (tp%peri(i) <= param%qmin)) then tp%status(i) = DISCARDED_PERI - write(*, *) "Particle ", tp%id(i), " perihelion distance too small at t = ", t + write(idstr, *) tp%id(i) + write(timestr, *) param%t + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " perihelion distance too small at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. end if end if @@ -219,6 +222,7 @@ subroutine discard_pl_tp(tp, system, param) integer(I4B) :: i, j, isp real(DP) :: r2min, radius real(DP), dimension(NDIM) :: dx, dv + character(len=STRMAX) :: idstri, idstrj, timestr associate(ntp => tp%nbody, pl => system%pl, npl => system%pl%nbody, t => param%t, dt => param%dt) do i = 1, ntp @@ -233,6 +237,12 @@ subroutine discard_pl_tp(tp, system, param) tp%lmask(i) = .false. pl%ldiscard(j) = .true. write(*, *) "Particle ", tp%id(i), " too close to massive body ", pl%id(j), " at t = ", t + write(idstri, *) tp%id(i) + write(idstrj, *) pl%id(j) + write(timestr, *) param%t + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstri)) // ")" & + // " too close to massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstrj)) & + // " at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. exit end if diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index a8619e35e..cf4fdb131 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -30,8 +30,11 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass real(DP), dimension(:), allocatable :: m_frag, rad_frag integer(I4B), dimension(:), allocatable :: id_frag logical :: lfailure + character(len=STRMAX) :: collider_message - write(*, '("Disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + collider_message = "Disruption between" + call symba_collision_collider_message(system%pl, family, collider_message) + write(*,*) trim(adjustl(collider_message)) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_DISRUPT @@ -125,8 +128,12 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, integer(I4B), dimension(:), allocatable :: id_frag logical :: lpure logical, dimension(system%pl%nbody) :: lmask + character(len=STRMAX) :: collider_message + character(len=NAMELEN) :: idstr - write(*, '("Hit and run between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + collider_message = "Hit and run between" + call symba_collision_collider_message(system%pl, family, collider_message) + write(*,*) trim(adjustl(collider_message)) mtot = sum(mass(:)) xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot @@ -232,10 +239,15 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad real(DP), dimension(NDIM, 1) :: vb_frag, xb_frag, rot_frag, Ip_frag real(DP), dimension(1) :: m_frag, rad_frag integer(I4B), dimension(1) :: id_frag + character(len=STRMAX) :: collider_message + character(len=NAMELEN) :: idstr + + collider_message = "Merging" + call symba_collision_collider_message(system%pl, family, collider_message) + write(*,*) trim(adjustl(collider_message)) select type(pl => system%pl) class is (symba_pl) - write(*, '("Merging bodies ",I8,99(:,",",I8))') pl%id(family(:)) ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) id_frag(1) = pl%id(ibiggest) @@ -338,8 +350,12 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, integer(I4B), dimension(:), allocatable :: id_frag logical :: lfailure logical, dimension(system%pl%nbody) :: lmask + character(len=STRMAX) :: collider_message + character(len=NAMELEN) :: idstr - write(*, '("Supercatastrophic disruption between bodies ",I8,99(:,",",I8))') system%pl%id(family(:)) + collider_message = "Supercatastrophic disruption between" + call symba_collision_collider_message(system%pl, family, collider_message) + write(*,*) trim(adjustl(collider_message)) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_SUPERCAT @@ -403,6 +419,34 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, end function symba_collision_casesupercatastrophic + subroutine symba_collision_collider_message(pl, family, collider_message) + !! author: David A. Minton + !! + !! Prints a nicely formatted message about which bodies collided, including their names and ids. + !! This subroutine appends the body names and ids to an input message. + implicit none + ! Arguments + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + integer(I4B), dimension(:), intent(in) :: family !! Index of collisional family members + character(*), intent(inout) :: collider_message !! The message to print to the screen. + ! Internals + integer(I4B) :: i, n + character(len=STRMAX) :: idstr + + n = size(family) + if (n == 0) return + + do i = 1, n + if (i > 1) collider_message = trim(adjustl(collider_message)) // " and " + collider_message = " " // trim(adjustl(collider_message)) // " " // trim(adjustl(pl%info(family(i))%name)) + write(idstr, '(I10)') pl%id(family(i)) + collider_message = trim(adjustl(collider_message)) // " (" // trim(adjustl(idstr)) // ") " + end do + + return + end subroutine symba_collision_collider_message + + module function symba_collision_check_encounter(self, system, param, t, dt, irec) result(lany_collision) !! author: David A. Minton !! diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index acd233cba..b1a433fca 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -36,14 +36,14 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAX write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(idstr)) // " too far from the central body at t = " // trim(adjustl(timestr)) + write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMIN write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(idstr)) // " too close to the central body at t = " // trim(adjustl(timestr)) + write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) vb2 = dot_product(pl%vb(:,i), pl%vb(:,i)) @@ -54,7 +54,7 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAXU write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(idstr)) // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) end if end if end if From 2b2027d1f8d1a212c6d1d3d61fbb4cd43faad1d9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 15:34:18 -0400 Subject: [PATCH 247/315] Fixed issues related to gaps in the id record that were causing the processing code to fail because of empty string values if idslots were not filled between writes. Now particle info is dumped to the bin file in NetCDF mode after a rearray operation to catch all newly created bodies and fill all id slots. --- src/io/io.f90 | 70 ++++++++++--------- src/modules/swiftest_classes.f90 | 18 +++-- src/modules/symba_classes.f90 | 2 +- src/netcdf/netcdf.f90 | 111 ++++++++++++++++++++++--------- src/setup/setup.f90 | 11 +-- src/symba/symba_collision.f90 | 1 - src/symba/symba_util.f90 | 40 ++++++----- 7 files changed, 154 insertions(+), 99 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index b3cd08b59..c3417f094 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -145,7 +145,7 @@ module subroutine io_dump_particle_info_base(self, param, idx) implicit none ! Arguments class(swiftest_base), intent(inout) :: self !! Swiftest base object (can be cb, pl, or tp) - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters integer(I4B), dimension(:), optional, intent(in) :: idx !! Array of test particle indices to append to the particle file ! Internals @@ -154,41 +154,47 @@ module subroutine io_dump_particle_info_base(self, param, idx) integer(I4B) :: i character(STRMAX) :: errmsg - if (lfirst) then - select case(param%out_stat) - case('APPEND') - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case('NEW', 'UNKNOWN', 'REPLACE') - open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) - case default - write(*,*) 'Invalid status code',trim(adjustl(param%out_stat)) - call util_exit(FAILURE) - end select - - lfirst = .false. - else - open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) - end if + if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then + if (lfirst) then + select case(param%out_stat) + case('APPEND') + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case('NEW', 'UNKNOWN', 'REPLACE') + open(unit = LUN, file = param%particle_out, status = param%out_stat, form = 'UNFORMATTED', err = 667, iomsg = errmsg) + case default + write(*,*) 'Invalid status code',trim(adjustl(param%out_stat)) + call util_exit(FAILURE) + end select - select type(self) - class is (swiftest_cb) - write(LUN, err = 667, iomsg = errmsg) self%id - call self%info%dump(LUN) - class is (swiftest_body) - if (present(idx)) then - do i = 1, size(idx) - write(LUN, err = 667, iomsg = errmsg) self%id(idx(i)) - call self%info(idx(i))%dump(LUN) - end do + lfirst = .false. else - do i = 1, self%nbody - write(LUN, err = 667, iomsg = errmsg) self%id(i) - call self%info(i)%dump(LUN) - end do + open(unit = LUN, file = param%particle_out, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if - end select - close(unit = LUN, err = 667, iomsg = errmsg) + select type(self) + class is (swiftest_cb) + write(LUN, err = 667, iomsg = errmsg) self%id + call self%info%dump(LUN) + class is (swiftest_body) + if (present(idx)) then + do i = 1, size(idx) + write(LUN, err = 667, iomsg = errmsg) self%id(idx(i)) + call self%info(idx(i))%dump(LUN) + end do + else + do i = 1, self%nbody + write(LUN, err = 667, iomsg = errmsg) self%id(i) + call self%info(i)%dump(LUN) + end do + end if + end select + + close(unit = LUN, err = 667, iomsg = errmsg) + else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call param%nciu%open(param) + call self%write_particle_info(param%nciu) + call param%nciu%close(param) + end if return diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 45ea97f15..75b792b57 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -179,10 +179,12 @@ module swiftest_classes !! An abstract superclass for a generic Swiftest object contains !! The minimal methods that all systems must have - procedure :: dump => io_dump_base !! Dump contents to file - procedure :: dump_particle_info => io_dump_particle_info_base !! Dump contents of particle information metadata to file - procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format - generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments + procedure :: dump => io_dump_base !! Dump contents to file + procedure :: dump_particle_info => io_dump_particle_info_base !! Dump contents of particle information metadata to file + procedure :: write_frame_netcdf => netcdf_write_frame_base !! I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format + procedure :: write_particle_info_netcdf => netcdf_write_particle_info_base !! Writes out the particle information metadata to NetCDF file + generic :: write_frame => write_frame_netcdf !! Set up generic procedure that will switch between NetCDF or Fortran binary depending on arguments + generic :: write_particle_info => write_particle_info_netcdf end type swiftest_base !******************************************************************************************************************************** @@ -652,7 +654,7 @@ end subroutine io_dump_param module subroutine io_dump_particle_info_base(self, param, idx) implicit none class(swiftest_base), intent(inout) :: self !! Swiftest base object (can be cb, pl, or tp) - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters integer(I4B), dimension(:), optional, intent(in) :: idx !! Array of test particle indices to append to the particle file end subroutine io_dump_particle_info_base @@ -913,6 +915,12 @@ module subroutine netcdf_write_hdr_system(self, iu, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine netcdf_write_hdr_system + module subroutine netcdf_write_particle_info_base(self, iu) + implicit none + class(swiftest_base), intent(in) :: self !! Swiftest particle object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + end subroutine netcdf_write_particle_info_base + module subroutine obl_acc_body(self, system) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest body object diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 3a9e37fce..60dbd4feb 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -571,7 +571,7 @@ module subroutine symba_util_rearray_pl(self, system, param) implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_util_rearray_pl end interface diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index d2f7a0f80..e37703782 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -238,26 +238,22 @@ module subroutine netcdf_write_frame_base(self, iu, param) integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring + call self%write_particle_info(iu) + tslot = int(param%ioutput, kind=I4B) + 1 select type(self) class is (swiftest_body) associate(n => self%nbody) if (n == 0) return + + allocate(ind(n)) call util_sort(self%id(1:n), ind) do i = 1, n j = ind(i) idslot = self%id(j) + 1 - call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - charstring = trim(adjustl(self%info(j)%name)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - - charstring = trim(adjustl(self%info(j)%particle_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) if ((param%out_form == XV) .or. (param%out_form == XVEL)) then call check( nf90_put_var(iu%ncid, iu%xhx_varid, self%xh(1, j), start=[idslot, tslot]) ) @@ -277,19 +273,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[idslot, tslot]) ) end if - if (iu%ltrack_origin) then - charstring = trim(adjustl(self%info(j)%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info(j)%origin_xh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info(j)%origin_xh(3), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info(j)%origin_vh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info(j)%origin_vh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info(j)%origin_vh(3), start=[idslot]) ) - end if - select type(self) class is (swiftest_pl) ! Additional output if the passed polymorphic object is a massive body call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass(j), start=[idslot, tslot]) ) @@ -342,23 +325,85 @@ module subroutine netcdf_write_frame_base(self, iu, param) call check( nf90_put_var(iu%ncid, iu%Q_varid, self%Q, start=[idslot, tslot]) ) end if - if (iu%ltrack_origin) then - charstring = trim(adjustl(self%info%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info%origin_xh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info%origin_xh(3), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info%origin_vh(1), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info%origin_vh(2), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info%origin_vh(3), start=[idslot]) ) - end if end select return end subroutine netcdf_write_frame_base + + module subroutine netcdf_write_particle_info_base(self, iu) + !! author: Carlisle A. Wishard, Dana Singh, and David A. Minton + !! + !! Write all current particle to file + implicit none + ! Arguments + class(swiftest_base), intent(in) :: self !! Swiftest particle object + class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset + ! Internals + integer(I4B) :: i, j, tslot, strlen, idslot + integer(I4B), dimension(:), allocatable :: ind + character(len=:), allocatable :: charstring + + + select type(self) + class is (swiftest_body) + associate(n => self%nbody) + if (n == 0) return + allocate(ind(n)) + call util_sort(self%id(1:n), ind) + + do i = 1, n + j = ind(i) + idslot = self%id(j) + 1 + call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) + charstring = trim(adjustl(self%info(j)%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info(j)%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info(j)%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info(j)%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info(j)%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info(j)%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info(j)%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info(j)%origin_vh(3), start=[idslot]) ) + end do + end associate + + class is (swiftest_cb) + idslot = self%id + 1 + call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) + + charstring = trim(adjustl(self%info%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info%origin_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_xhz_varid, self%info%origin_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info%origin_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info%origin_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info%origin_vh(3), start=[idslot]) ) + end select + + return + end subroutine netcdf_write_particle_info_base + module subroutine netcdf_write_hdr_system(self, iu, param) !! author: David A. Minton diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 342818672..11bd69fd1 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -175,15 +175,8 @@ module subroutine setup_initialize_particle_info_system(self, param) end if cb%info%particle_type = CB_TYPE_NAME - call cb%dump_particle_info(param) - if (npl > 0) then - pl%info(1:npl)%particle_type = PL_TYPE_NAME - call pl%dump_particle_info(param) - end if - if (ntp > 0) then - tp%info(1:ntp)%particle_type = TP_TYPE_NAME - call tp%dump_particle_info(param) - end if + if (npl > 0) pl%info(1:npl)%particle_type = PL_TYPE_NAME + if (ntp > 0) tp%info(1:ntp)%particle_type = TP_TYPE_NAME end associate diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index cf4fdb131..7a68a56cd 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -907,7 +907,6 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Copy over identification, information, and physical properties of the new bodies from the fragment list plnew%id(1:nfrag) = id_frag(1:nfrag) - param%maxid = param%maxid + nfrag plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) do i = 1, nfrag diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 51af8159d..150bf7825 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -291,15 +291,6 @@ module subroutine symba_util_index_eucl_plpl(self, param) npl = int(self%nbody, kind=I8B) call pl%sort("mass", ascending=.false.) - select type(param) - class is (symba_parameters) - pl%lmtiny(1:npl) = pl%Gmass(1:npl) < param%GMTINY - where(pl%lmtiny(1:npl)) - pl%info(1:npl)%particle_type = PL_TINY_TYPE_NAME - elsewhere - pl%info(1:npl)%particle_type = PL_TYPE_NAME - end where - end select nplm = count(.not. pl%lmtiny(1:npl)) pl%nplm = int(nplm, kind=I4B) @@ -415,11 +406,11 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Arguments class(symba_pl), intent(inout) :: self !! SyMBA massive body object class(symba_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(symba_parameters), intent(in) :: param !! Current run configuration parameters + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. integer(I4B) :: i, j, k, npl, nencmin - logical, dimension(:), allocatable :: lmask + logical, dimension(:), allocatable :: lmask, ldump_mask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter integer(I4B), dimension(:), allocatable :: levelg_orig_pl, levelm_orig_pl, levelg_orig_tp, levelm_orig_tp, nplenc_orig_pl, nplenc_orig_tp, ntpenc_orig_pl @@ -450,16 +441,16 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Append the adds to the main pl object call pl%append(pl_adds, lsource_mask=[(.true., i=1, nadd)]) - allocate(lmask(npl+nadd)) - lmask(1:npl) = .false. - lmask(npl+1:npl+nadd) = pl%status(npl+1:npl+nadd) == NEW_PARTICLE - + allocate(ldump_mask(npl+nadd)) ! This mask is used only to append the original Fortran binary particle.dat file with new bodies. This is ignored for NetCDF output + ldump_mask(1:npl) = .false. + ldump_mask(npl+1:npl+nadd) = pl%status(npl+1:npl+nadd) == NEW_PARTICLE npl = pl%nbody - call pl%dump_particle_info(param, idx=pack([(i, i=1, npl)], lmask)) - - deallocate(lmask) + else + allocate(ldump_mask(npl)) + ldump_mask(:) = .false. end if + ! Reset all of the status flags for this body where(pl%status(1:npl) /= INACTIVE) pl%status(1:npl) = ACTIVE @@ -471,6 +462,19 @@ module subroutine symba_util_rearray_pl(self, system, param) pl%lmask(1:npl) = .false. end where + select type(param) + class is (symba_parameters) + pl%lmtiny(1:npl) = pl%Gmass(1:npl) < param%GMTINY + where(pl%lmtiny(1:npl)) + pl%info(1:npl)%particle_type = PL_TINY_TYPE_NAME + elsewhere + pl%info(1:npl)%particle_type = PL_TYPE_NAME + end where + end select + + call pl%dump_particle_info(param, idx=pack([(i, i=1, npl)], ldump_mask)) + deallocate(ldump_mask) + ! Reindex the new list of bodies call pl%index(param) From 9292e37a3c0e10f087b4544fbd947726d03dc711 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 15:39:48 -0400 Subject: [PATCH 248/315] Put the nan initializer back into the Makefile.Defines, as it was never the true source of problems before. --- Makefile.Defines | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 83f1df3f3..e764b40ee 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -51,13 +51,13 @@ ADVIXE_FLAGS = -g -O2 -qopt-report=5 -vec -vecabi=cmdtarget -simd -shared-intel VTUNE_FLAGS = -g -O2 -vec -simd -shared-intel -qopenmp -debug inline-debug-info -parallel-source-info=2 -parallel -DTBB_DEBUG -DTBB_USE_THREADING_TOOLS -qopenmp -fp-model no-except -mp1 -xhost -traceback #Be sure to set the environment variable KMP_FORKJOIN_FRAMES=1 for OpenMP debuging in vtune -IDEBUG = -O0 -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin +IDEBUG = -O0 -init=snan,arrays -nogen-interfaces -no-pie -no-ftz -fpe-all=0 -g -traceback -mp1 -fp-model strict -fpe0 -debug all -align all -pad -ip -prec-div -prec-sqrt -assume protect-parens -CB -no-wrap-margin STRICTREAL = -fp-model strict -fp-model no-except -prec-div -prec-sqrt -assume protect-parens SIMDVEC = -simd -xhost -align all -assume contiguous_assumed_shape -vecabi=cmdtarget -prec-div -prec-sqrt -assume protect-parens PAR = -qopenmp #-parallel #Something goes wrong in SyMBA at the moment with auto-paralellization enabled HEAPARR = -heap-arrays 1048576 OPTREPORT = -qopt-report=5 -IPRODUCTION = -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) +IPRODUCTION = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMDVEC) $(HEAPARR) #gfortran flags GDEBUG = -g -Og -fbacktrace -fbounds-check -ffree-line-length-none From 4275b8212c7f15c961c193ab2f907b9559e7decb Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 15:50:24 -0400 Subject: [PATCH 249/315] Updated Chambers example with new style --- examples/symba_chambers_2013/init_cond.py | 19 +- examples/symba_chambers_2013/param.in | 4 +- .../symba_chambers_2013/pl_chambers_2013.in | 940 +++++++++--------- examples/symba_chambers_2013/sun_MsunAUYR.in | 2 +- examples/symba_mars_disk/testnetcdf.ipynb | 859 ---------------- 5 files changed, 487 insertions(+), 1337 deletions(-) delete mode 100644 examples/symba_mars_disk/testnetcdf.ipynb diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index 7fe0c93b8..eff7f4839 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -38,7 +38,8 @@ sim.param['CHK_RMAX'] = 1000.0 sim.param['CHK_EJECT'] = 1000.0 sim.param['IN_FORM'] = 'EL' -sim.param['OUT_FORM'] = 'EL' +sim.param['OUT_FORM'] = 'XVEL' +sim.param['OUT_TYPE'] = 'NETCDF_DOUBLE' # Add central body sim.add("Sun") @@ -78,12 +79,20 @@ Rhs = avals * (GMvals / (3 * GMcb))**(1.0/3.0) # Give the bodies unique ids -idb = np.arange(100, 100 + Nb) -ids = np.arange(100 + Nb, 100 + Nb + Ns) +idb = np.arange(10, 10 + Nb) +ids = np.arange(11 + Nb, 11 + Nb + Ns) + +nameb = [] +for i in idb: + nameb.append(f"BigBody{i-10:0.4g}") +names = [] +for i in ids: + names.append(f"SmallBody{i-10:0.4g}") + # Populate the simulation object with the two types of bodies -sim.addp(idb, avalb, evalb, incvalb, capomvalb, omegavalb, capmvalb, GMpl=GMvalb, Rpl=Rvalb, rhill=Rhb) -sim.addp(ids, avals, evals, incvals, capomvals, omegavals, capmvals, GMpl=GMvals, Rpl=Rvals, rhill=Rhs) +sim.addp(idb, nameb, avalb, evalb, incvalb, capomvalb, omegavalb, capmvalb, GMpl=GMvalb, Rpl=Rvalb, rhill=Rhb) +sim.addp(ids, names, avals, evals, incvals, capomvals, omegavals, capmvals, GMpl=GMvals, Rpl=Rvals, rhill=Rhs) # Save everything to a set of initial conditions files sim.save("param.in") diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index 7bc67e7bf..b1d279019 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -4,8 +4,8 @@ TSTOP 300000000.0 DT 0.01642710472279261 ISTEP_OUT 60876 ISTEP_DUMP 60876 -OUT_FORM EL -OUT_TYPE REAL8 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE OUT_STAT REPLACE IN_TYPE ASCII PL_IN pl_chambers_2013.in diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 9f07ba581..6151b7b10 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -1,937 +1,937 @@ 156 -5 0.037692251088985676735 0.35527124629249231394 +Jupiter 0.037692251088985676735 0.35527132160755719005 0.00046732617030490929307 -5.2035240151214816606 0.048518677336151047608 1.303568872392780964 -100.51672855018520636 273.38350380059858935 317.24733983021741324 +5.203525118232844804 0.04851860564816618676 1.3035691661895258964 +100.51674233424300553 273.38304127662058818 317.663122660171382 0.0 0.0 0.27560000000000001164 --80.96882015576837074 -2387.9972166758053216 5008.7356633679251408 -6 0.011285899820091272997 0.4376627522796287038 +-80.968403371628011836 -2387.9972308074941552 5008.7356633679251408 +Saturn 0.011285899820091272997 0.43766379465266665196 0.00038925687730393611812 -9.581843040035108672 0.052193289679895830957 2.486259885154824989 -113.5952699440524043 335.70375572759667193 225.29914557362599226 +9.5818658609281062155 0.052205424243311190913 2.4862597472377250263 +113.59526896860690215 335.6868332999574136 225.48455056285450837 0.0 0.0 0.22000000000000000111 -441.93102714484842597 378.52937229654824397 5135.9113502360652523 -100 1.1053539394491336042e-05 0.0024942259412694431663 +441.93109321068034775 378.52929516502754512 5135.9113502360652523 +BigBody0 1.1053539394491336042e-05 0.008528824599778775939 2.3653347588909066005e-05 -0.54986599948168679575 0.00790211437739073673 0.17380192597475080385 -107.43156870400773073 276.28353146985244848 194.7142891976026533 +1.8802268813604403608 0.0034577859413208434335 0.20794489945719352164 +116.242322863494550234 358.09542459575311568 304.1535424267980261 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -101 1.1053539394491336042e-05 0.004438085330891615839 +BigBody1 1.1053539394491336042e-05 0.0059690494989390618847 2.3653347588909066005e-05 -0.9784006275765486649 0.008894460002898382789 0.06959456688275278413 -230.72372262612213945 175.80689672313920369 127.98999815613836972 +1.3159102045981110329 0.0036523142822058084558 0.16300211835552913531 +70.81394155502881915 342.55883603006623161 54.136608497372229465 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -102 1.1053539394491336042e-05 0.0022118749019394030531 +BigBody2 1.1053539394491336042e-05 0.005052057603777761473 2.3653347588909066005e-05 -0.48762014040490725408 0.007065173882583869816 0.08255052734200557518 -59.69880211598947284 257.706889533954552 96.36252359516613808 +1.1137542344405522154 0.0072840872640179358394 0.22240338257676339762 +222.71628592255183321 288.921923370197419 92.574120388092254075 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -103 1.1053539394491336042e-05 0.0050274480066339513537 +BigBody3 1.1053539394491336042e-05 0.008820409406923653894 2.3653347588909066005e-05 -1.1083289116955583609 0.004924644152842923804 0.24223522245862766367 -188.40224626199380964 313.44855208036375416 129.90947721881380517 +1.9445083759762775699 0.0070581282930688585622 0.4537120652082861083 +88.34935150484484723 251.72864441608038533 152.56079513094485378 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -104 1.1053539394491336042e-05 0.005497178565716073497 +BigBody4 1.1053539394491336042e-05 0.0043985248115830084884 2.3653347588909066005e-05 -1.2118836294471209136 0.0006636314586658864428 0.21679091691902274697 -292.58786958533733014 349.21714004172918067 92.84912374945815827 +0.9696792907763345237 0.007528169003062028415 0.457734929544543645 +338.01823746004760096 276.8234782165463912 29.31485745878157445 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -105 1.1053539394491336042e-05 0.0058680503539993149066 +BigBody5 1.1053539394491336042e-05 0.0046551615123747859965 2.3653347588909066005e-05 -1.2936443806163331338 0.004833849563252618463 0.008567844508054200947 -328.27890426256050205 131.98075608160368688 322.13564633221562872 +1.0262562807152380007 0.0043961574801766592144 0.28711745105524327792 +233.15202689156717497 278.38726074673456878 121.530061504206173595 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -106 1.1053539394491336042e-05 0.002694510776600401099 +BigBody6 1.1053539394491336042e-05 0.005006625370130645683 2.3653347588909066005e-05 -0.5940199068475252586 0.0067237368733709312538 0.060288304615935095487 -79.16558592832937791 133.19532279503386007 105.316435864485242746 +1.1037384455139314099 0.0020211417817972299887 0.4414365163938446246 +50.42909229312481756 248.7156337605344163 88.127412340235309784 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -107 1.1053539394491336042e-05 0.00894284236059420335 +BigBody7 1.1053539394491336042e-05 0.0062302636945590992105 2.3653347588909066005e-05 -1.9714994024609464596 0.0012301078319352542253 0.24539756157331871211 -30.202531544478411263 131.4722075501692018 190.3346811342855176 +1.3734963287646788643 0.003284048646794181063 0.29726687779842847492 +274.57090965904603763 131.66391666318924081 158.84925050402665647 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -108 1.1053539394491336042e-05 0.00847142435998454647 +BigBody8 1.1053539394491336042e-05 0.0074737606895573080315 2.3653347588909066005e-05 -1.8675726788270168299 0.008026755773111227815 0.4017258251905144184 -133.3423586393701612 179.84390448017239805 225.68364681866682986 +1.6476321665385271764 0.0051051784849983454506 0.33643916637153092886 +53.76286556014000695 114.94625551330999258 331.9130531888574751 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -109 1.1053539394491336042e-05 0.007174596670026274337 +BigBody9 1.1053539394491336042e-05 0.004160663550733341382 2.3653347588909066005e-05 -1.5816797923423595584 0.0031475338026421342819 0.4360851322619670456 -63.04925866997809436 321.46581691044519857 79.431408115766444666 +0.9172414511359892053 0.009838312525106383821 0.18305346601295341413 +329.20200341844741843 353.39532922142575444 283.615736735883047 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -110 1.1053539394491336042e-05 0.0081372984647778109835 +BigBody10 1.1053539394491336042e-05 0.008893323580690212565 2.3653347588909066005e-05 -1.7939127644300645326 0.0019829617212629392295 0.33499759592398342667 -335.2559643572936352 187.7176940339578266 256.98389267937642444 +1.9605827116533913745 0.0067739209011702531185 0.46943231065629464904 +307.18407738324981437 299.20369618829118963 229.02822238698416868 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -111 1.1053539394491336042e-05 0.005574526073514087418 +BigBody11 1.1053539394491336042e-05 0.005284153980059674703 2.3653347588909066005e-05 -1.2289353183013898008 0.0087975519315924410185 0.0931356879078180655 -38.076421761989216463 246.32382787018278236 116.79845254567619861 +1.1649211731724051777 0.003955590755475825275 0.24091863890394393799 +341.82285906978518142 354.6568377939822767 184.99977149020475053 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -112 1.1053539394491336042e-05 0.0024200689107431695442 +BigBody12 1.1053539394491336042e-05 0.0026579413908231734066 2.3653347588909066005e-05 -0.53351766911023290607 0.0035617909124576263916 0.42026149289799202835 -131.64906776807390543 176.17113073415276858 35.570566593488898377 +0.5859579820923875859 0.006632063244305479166 0.16775989049041784007 +27.20019477149550724 279.74596003486641393 327.6212083468928995 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -113 1.1053539394491336042e-05 0.0047743187507997904987 +BigBody13 1.1053539394491336042e-05 0.0051385647895537602423 2.3653347588909066005e-05 -1.0525251575310632379 0.0047905759606499866837 0.077107525060287229746 -10.342512502279181064 88.664376332507956135 298.3693887978787984 +1.1328252253167268027 0.006171984666579787178 0.4427718223948383658 +107.83457765693708552 6.9738506997831350986 173.32578598950007631 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -114 1.1053539394491334998e-06 0.0027667873593623189602 +SmallBody15 1.1053539394491334998e-06 0.003965920256829754137 1.0978911404624207108e-05 -1.3141053718928097371 0.0034379157133108007721 0.41062772150774839997 -117.94487904653206556 135.95661427482011163 357.92535799856455014 +1.8836420863219696109 0.00083078406930939708176 0.06635858690178686459 +323.06500151110822117 223.479512701876871 180.32306345539035419 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -115 1.1053539394491334998e-06 0.0020116765919858510565 +SmallBody16 1.1053539394491334998e-06 0.0014930561726806290352 1.0978911404624207108e-05 -0.95546013216169445315 0.0060206064844968258665 0.07110023689215083653 -180.02093341162267848 11.570684680871377026 52.45363865763020783 +0.7091376684291115229 0.0074165290527274220847 0.16041991537260708034 +97.8551304528232464 194.39999141865840215 111.523194158961615585 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -116 1.1053539394491334998e-06 0.0033395287462686999945 +SmallBody17 1.1053539394491334998e-06 0.003916740972575052582 1.0978911404624207108e-05 -1.586132974842564547 0.00645121634259801513 0.096969056514780882505 -171.91023859938232476 254.67841176708233775 313.28806379016128858 +1.8602840348236275858 0.0068953273747443368305 0.38095682124591934148 +269.789420394791307 66.45754651052922668 281.4678606370854368 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -117 1.1053539394491334998e-06 0.00371593566160539721 +SmallBody18 1.1053539394491334998e-06 0.00080932657540582023503 1.0978911404624207108e-05 -1.7649101214808080584 0.0023577563737892525027 0.48595446091290439572 -47.606286791272218295 202.27273102322442355 347.88058470986658222 +0.38439542408547117125 0.002798999239863538685 0.3941004343151243705 +124.84899501740618177 211.15221271210285181 29.144252829021478846 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -118 1.1053539394491334998e-06 0.0015295236196825508856 +SmallBody19 1.1053539394491334998e-06 0.0032101876354546605832 1.0978911404624207108e-05 -0.72645814224228044687 0.0020370449700726233656 0.3606883424967191054 -274.4280316761291374 280.74766948740551697 24.536589249099783672 +1.5247014926030020288 0.0035659021143455739422 0.28726784725956733269 +305.26683999664834346 237.6590433520821648 189.34085106677034105 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -119 1.1053539394491334998e-06 0.0033834333628134683705 +SmallBody20 1.1053539394491334998e-06 0.0031334439057496713725 1.0978911404624207108e-05 -1.6069857853258651126 0.0098416039402617061516 0.44624727946733649953 -222.77492385480474013 170.8759481887598497 79.99493114501900948 +1.4882515113194170198 0.008406522751564652132 0.09743791038730081899 +182.41313627988012058 240.08302063346957311 226.69806193018246177 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -120 1.1053539394491334998e-06 0.0040359986896511094793 +SmallBody21 1.1053539394491334998e-06 0.002318563101422126877 1.0978911404624207108e-05 -1.9169263373551235219 0.0029802273191661932637 0.230406336919138921 -310.79966407192694078 1.4550646525895816197 252.0063452744394965 +1.101218066629267911 2.3817568879540563625e-05 0.33838972038816461652 +150.79556741229683325 282.89580965142215518 23.878283687633977905 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -121 1.1053539394491334998e-06 0.0031542038750952466353 +SmallBody22 1.1053539394491334998e-06 0.0012750969215099122365 1.0978911404624207108e-05 -1.4981116066914148544 0.006503703527213184135 0.26407165396100124033 -26.062848056125357488 210.56488681239142124 301.56600646968121282 +0.6056163689523108573 0.0083862008640609771865 0.28205301454095604852 +168.88081394329302043 66.51585258832571412 123.579634987953141945 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -122 1.1053539394491334998e-06 0.0018880288863730688365 +SmallBody23 1.1053539394491334998e-06 0.0009972153932821939899 1.0978911404624207108e-05 -0.8967327732925158834 0.007238336978075715633 0.033528086738177642623 -69.065440349257514185 293.81947043939737796 286.96470672499521015 +0.47363455699333534277 0.008223686359273599603 0.45829335098125117964 +332.887696649695215 224.83461963531169658 56.68973281012301868 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -123 1.1053539394491334998e-06 0.0012989977425082224311 +SmallBody24 1.1053539394491334998e-06 0.0025111857965660877644 1.0978911404624207108e-05 -0.61696823419784485587 0.0019528884250943146297 0.47321436840562031145 -249.99391755383430791 343.34598728791138456 346.86912583193304727 +1.1927055882780186469 0.009445402404313582925 0.2826526105232125552 +81.65691402455405523 319.28094528076371716 285.4796954001860172 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -124 1.1053539394491334998e-06 0.0021375309010602413823 +SmallBody25 1.1053539394491334998e-06 0.0035077853428683975809 1.0978911404624207108e-05 -1.0152355330687710122 0.0024575205682447810208 0.49078797741929608422 -336.94314367642243724 93.98747142904542784 343.1238225943502016 +1.666047644359857749 0.00780508176633639382 0.3915267218229046553 +349.7700899820581526 103.620959441678763824 190.0130222471377408 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -125 1.1053539394491334998e-06 0.0021886806744636735113 +SmallBody26 1.1053539394491334998e-06 0.002616178816288626711 1.0978911404624207108e-05 -1.0395294824296072989 0.0015032750981988285063 0.09664665566612262726 -261.27453454035151026 87.106680576905262114 281.8545767584969326 +1.2425727711541307841 0.0059671677576496086337 0.040591307271055199202 +249.8380759041125998 172.84395937673110666 116.2823571530794311 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -126 1.1053539394491334998e-06 0.0009572790019622815113 +SmallBody27 1.1053539394491334998e-06 0.0014624993815020629117 1.0978911404624207108e-05 -0.45466648335734549669 0.007148101776801299087 0.14093359206177985543 -154.4274485437105966 76.386907113986950435 65.4137928754450968 +0.69462450271737596896 0.002509422369573702672 0.3563096511224873586 +326.30240761342378164 99.402500501397057064 33.00720407437324866 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -127 1.1053539394491334998e-06 0.003729812565234214185 +SmallBody28 1.1053539394491334998e-06 0.0021389824887149377763 1.0978911404624207108e-05 -1.7715010557433059635 0.0048324755718385462716 0.43641352554780121764 -301.99915691100079584 305.68759778831190488 138.29375135377947004 +1.015924974969087291 0.0013605389397748734841 0.37043249792133786658 +40.362475475710553496 144.82896127558345256 267.48146434768148083 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -128 1.1053539394491334998e-06 0.0016846822255838862265 +SmallBody29 1.1053539394491334998e-06 0.0026004238204672692798 1.0978911404624207108e-05 -0.80015182774377024977 0.0036167730417621802956 0.30363913306983342233 -217.30104253608558906 127.25594694684403407 68.62323143700560024 +1.2350898236218830206 0.0022389905398143704514 0.027582496424290670056 +253.62523056238714503 134.43399262017697993 87.61567399908518894 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -129 1.1053539394491334998e-06 0.0028156518271099348789 +SmallBody30 1.1053539394491334998e-06 0.0018595270433249734511 1.0978911404624207108e-05 -1.3373138990477930754 0.0015358743297277000113 0.07854569816442086294 -195.79544064919386415 111.78591391871525218 42.72825320073468447 +0.8831956198384895984 0.0093748321201790139195 0.15306614007396368571 +32.49007980188935818 312.47276611996448992 204.6772536877609241 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -130 1.1053539394491334998e-06 0.0025544219135459682557 +SmallBody31 1.1053539394491334998e-06 0.0023041613246169277259 1.0978911404624207108e-05 -1.2132408901293838532 0.0045333183675212128383 0.42641938966810982725 -335.4707082103248581 340.32782670462358965 78.71452296875966681 +1.0943778401115078491 0.00910193752843261282 0.4261907295499119397 +70.748502810014073816 13.655344195174929922 194.09865473575752048 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -131 1.1053539394491334998e-06 0.0017385535134058515513 +SmallBody32 1.1053539394491334998e-06 0.0038244892574693115303 1.0978911404624207108e-05 -0.82573837977064679094 0.00947228661087365191 0.23945040316916776924 -19.579735631200563262 154.31747127598504221 359.85036935042643336 +1.8164684253672074288 0.0017344662236440178474 0.00040903376803846924759 +59.8833868869903867 42.472681151302708713 233.09999986567706287 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -132 1.1053539394491334998e-06 0.0012114779308318496938 +SmallBody33 1.1053539394491334998e-06 0.0016063083513415578069 1.0978911404624207108e-05 -0.5754000759937840659 0.008441518730336730614 0.075040026844357343716 -322.159144370426759 120.90343932105199087 100.737894230941492424 +0.7629275976960977479 0.0065616077232138123043 0.12701470276996179587 +208.21085395120184103 224.54004801606461683 36.813460817990929286 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -133 1.1053539394491334998e-06 0.004078388748157303896 +SmallBody34 1.1053539394491334998e-06 0.0025445731499428134166 1.0978911404624207108e-05 -1.9370597977055710182 0.0047539556352681408558 0.3644800323507790818 -343.45071951804578703 154.80672968106802045 201.89115733144456044 +1.2085631496757802683 0.0047985387630170017736 0.4632494968073996855 +241.05066411065314469 328.81491334014680206 131.68473045002352251 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -134 1.1053539394491334998e-06 0.0036039203608008465391 +SmallBody35 1.1053539394491334998e-06 0.001047943309379953965 1.0978911404624207108e-05 -1.7117076561654485101 0.006971012371901982689 0.10052614663363507175 -301.49565382461685203 343.23510866942172015 146.10462884072774159 +0.49772814222077332857 0.0029061071793044248278 0.12960075213423966067 +155.73347709155672192 84.35449874309856 289.45180387803600297 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -135 1.1053539394491334998e-06 0.0026929339739795838812 +SmallBody36 1.1053539394491334998e-06 0.0026029481051308368118 1.0978911404624207108e-05 -1.2790281802410847778 0.0073399150338953915093 0.22998077022595031504 -236.3867911788404399 68.590499117694676556 211.12134048117644625 +1.2362887506103832358 0.0052503463521577789855 0.39421104664957734576 +232.78768364560565374 152.4465616008079678 262.08575226692556726 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -136 1.1053539394491334998e-06 0.0010561758343539430626 +SmallBody37 1.1053539394491334998e-06 0.0030638297692394653602 1.0978911404624207108e-05 -0.5016382386204670807 0.009262343459015066546 0.25431397403127209422 -240.85528397317872873 280.3614716393232129 287.26674439180794707 +1.4551877811277245112 0.008675136231728216435 0.45565417212897607602 +160.12532605266272867 45.356797121355818092 207.55389444211135697 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -137 1.1053539394491334998e-06 0.0028006595358145995742 +SmallBody38 1.1053539394491334998e-06 0.0012379047660899184597 1.0978911404624207108e-05 -1.3301932034650567616 0.00022993810281455418594 0.08342160340369197957 -70.66457523971979526 275.49054890145470154 246.17193312636263158 +0.5879516897118539642 0.008863952046974160268 0.004871947750551219869 +291.7929722033654798 87.72125563281429095 301.4985684783306965 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -138 1.1053539394491334998e-06 0.0031345916538533425973 +SmallBody39 1.1053539394491334998e-06 0.0020203414546642405008 1.0978911404624207108e-05 -1.4887966424598750859 0.0042935099714141999883 0.29314963965799401002 -18.314807368556046185 317.45412549425219595 74.96719911477174492 +0.9595755704348436499 0.0032823959415707250516 0.36231618128498471743 +357.5523446581528333 140.63194771525292026 320.62512669923916064 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -139 1.1053539394491334998e-06 0.0031727769387009091975 +SmallBody40 1.1053539394491334998e-06 0.0021619748273928422718 1.0978911404624207108e-05 -1.5069330155987958886 0.00042623156360929617507 0.45965895515338095478 -20.129300049819683238 327.29502018496526716 59.231125864523988866 +1.0268453500628844655 0.0029510979342795397654 0.17200839693427560917 +86.24968012545755869 72.78534928310089924 39.274115808944131345 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -140 1.1053539394491334998e-06 0.0029468534902006606923 +SmallBody41 1.1053539394491334998e-06 0.0024650228414904151912 1.0978911404624207108e-05 -1.399629063849084698 0.007272282375730997235 0.20432669181302576256 -187.73561134042344634 233.75900696254421973 213.69939588190965196 +1.1707801638170043379 0.00084383852112471572065 0.44417323723969309723 +166.30850841454468991 233.52138330631103713 349.3701749884398282 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -141 1.1053539394491334998e-06 0.0017889952492140027216 +SmallBody42 1.1053539394491334998e-06 0.0011494655829696986032 1.0978911404624207108e-05 -0.8496960416302725694 0.00931974963626281197 0.08786331420963222616 -125.44242963323571871 213.90820310140793481 297.45792212645267227 +0.54594686948928417003 0.0073746126625160376977 0.29560517114275930428 +26.677876967304161582 2.9383852082894490465 235.62759414701335459 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -142 1.1053539394491334998e-06 0.0008745444542327522458 +SmallBody43 1.1053539394491334998e-06 0.003264557522307860051 1.0978911404624207108e-05 -0.4153711203636550886 0.005598789000554379308 0.28860546557484068053 -292.6804153683137315 293.15323963175370636 16.632979010081850646 +1.550524857792678457 0.006855910395679264309 0.052845126544926068757 +148.49370087394166262 245.6507471059472607 49.154351554646346756 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -143 1.1053539394491334998e-06 0.00173576060783876918 +SmallBody44 1.1053539394491334998e-06 0.0022017288538633278715 1.0978911404624207108e-05 -0.8244118693698843092 0.0011315413061166990603 0.44860347344260603775 -182.34383300537979267 131.24180851437259321 59.650805508873453675 +1.04572680821414421 0.0076940762442233648355 0.18695834780422621035 +186.24536246289451924 209.5758013639246542 201.39838185512508062 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -144 1.1053539394491334998e-06 0.002134797181745330879 +SmallBody45 1.1053539394491334998e-06 0.004177140733055960152 1.0978911404624207108e-05 -1.0139371336002267476 0.007289343253590587976 0.4634087498204931821 -69.447553734797935476 272.51215072362390401 180.88652358187317759 +1.9839627566197359787 0.00081961714887728747466 0.2135493543574670805 +101.192900958177077086 93.105553169601165564 161.53073494194276805 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -145 1.1053539394491334998e-06 0.0029149732559586442152 +SmallBody46 1.1053539394491334998e-06 0.0035270692540920479557 1.0978911404624207108e-05 -1.3844873194237774516 0.00093405874852250936335 0.49831837684007984635 -52.65042390426480523 132.1570385313290501 335.1642645009007424 +1.6752066754087575617 0.0051909332532851107725 0.4097943495140765613 +262.29384437991438972 291.42131387222036665 172.62099421016796441 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -146 1.1053539394491334998e-06 0.0009297558019152983528 +SmallBody47 1.1053539394491334998e-06 0.0031824870893333604256 1.0978911404624207108e-05 -0.44159414337030833408 0.0020058824691861665453 0.2050019411895118715 -258.613537774471979 316.83987106637459874 136.16219228862655655 +1.5115449208342359722 0.008474861491332898178 0.23696328042397618585 +303.88198790793740045 243.16694917270854148 162.96827879419998908 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -147 1.1053539394491334998e-06 0.0030225941590539279168 +SmallBody48 1.1053539394491334998e-06 0.0041919001326894561326 1.0978911404624207108e-05 -1.4356026342335368451 0.008673339650493765152 0.44714004675905749675 -263.19836098306842587 200.28114364179853624 93.21390608694554203 +1.9909728386481431173 0.0031161195922749587717 0.26294671201488906132 +307.4797827097971208 259.2394012562882608 164.19654679575444334 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -148 1.1053539394491334998e-06 0.0038587364317993124525 +SmallBody49 1.1053539394491334998e-06 0.001029626898232924747 1.0978911404624207108e-05 -1.8327343648536362775 0.0023968869061356022979 0.4162622981093172525 -150.99202022316734428 214.42374102088223253 234.46673681709688708 +0.4890286322274733921 0.0016789299820979420447 0.25125269592494270388 +347.9448828508308793 68.2032792277530433 113.95671636992425135 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -149 1.1053539394491334998e-06 0.0039857019664824380383 +SmallBody50 1.1053539394491334998e-06 0.0038377798107606164424 1.0978911404624207108e-05 -1.8930375502819491995 0.0054042423153714269635 0.280354479114709787 -309.89818193102905752 339.47805287826588483 108.2834163186351617 +1.8227808683586907978 0.007278564707354728998 0.4021962803889706506 +158.00800895167876092 62.120145774820663576 338.3524603761762819 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -150 1.1053539394491334998e-06 0.002526214410417571716 +SmallBody51 1.1053539394491334998e-06 0.0025752915599265981195 1.0978911404624207108e-05 -1.199843535517624904 0.00807200501209657216 0.29297227617312499026 -311.1092985416864849 134.93278660564592997 298.0184908095267815 +1.2231530773907171028 0.008180773825256060228 0.49500640013808755446 +215.58419051019205881 238.11054770931033886 62.812965789585732068 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -151 1.1053539394491334998e-06 0.0036581411698850117867 +SmallBody52 1.1053539394491334998e-06 0.0041729107831517003945 1.0978911404624207108e-05 -1.7374602158064242907 0.007153689989388728465 0.44052283973240657922 -237.80983305122521188 259.39413015086012138 14.914034897260304291 +1.981953711770945592 0.0048392368899002205854 0.3439364072598658506 +140.49484117857338106 18.628480746247863209 292.76153894725842974 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -152 1.1053539394491334998e-06 0.000802372644126310084 +SmallBody53 1.1053539394491334998e-06 0.0018463049351976143146 1.0978911404624207108e-05 -0.3810926048719686654 0.006030170704880976132 0.26258916301020024386 -0.15571237391343473178 101.42157830594325674 191.6534478425715804 +0.876915685365348585 0.008414142640979114726 0.4865439996116162069 +25.84749855806933283 147.59552825474432325 351.5883167468276156 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -153 1.1053539394491334998e-06 0.0008778988031953014719 +SmallBody54 1.1053539394491334998e-06 0.003956761570869228732 1.0978911404624207108e-05 -0.41696429230582593428 0.0089104527399628801615 0.18935210551241321575 -290.94348385697963977 194.03201349755511274 246.1264492528840151 +1.8792921031620857253 0.002984509339591897778 0.14521761596090265733 +244.65011115033149736 159.52306947113194724 247.8509476040788968 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -154 1.1053539394491334998e-06 0.0019399977622078306769 +SmallBody55 1.1053539394491334998e-06 0.0022375767585976735108 1.0978911404624207108e-05 -0.9214157611898694533 0.0074622525238668066527 0.044888899465576392878 -352.50451572365290076 314.09425533244291273 232.43445962578101671 +1.0627530260125956918 0.009221146035204222727 0.2774484485756325003 +54.974773353537798926 192.71826493446795325 115.03720651882959203 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -155 1.1053539394491334998e-06 0.0031391545550959035403 +SmallBody56 1.1053539394491334998e-06 0.003569113589554936672 1.0978911404624207108e-05 -1.4909638249193351012 0.0014758841420516332667 0.0055864793798309220207 -218.56254662217830287 78.14339758395870206 316.430657512916639 +1.6951759321362349642 0.00029328152838550283158 0.12854405399432916601 +123.759610708168693805 28.642969205068872895 59.9453124910687265 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -156 1.1053539394491334998e-06 0.0019439900334437632077 +SmallBody57 1.1053539394491334998e-06 0.003838073039724368385 1.0978911404624207108e-05 -0.9233119188614880013 0.0035238992618186449311 0.15216969786581269197 -87.51270655933404896 92.86798277740109597 135.18235847560532648 +1.822920139544514706 0.002427257726946776585 0.3478287098983082748 +175.60627375154865604 261.21004876719126742 102.5765639749250937 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -157 1.1053539394491334998e-06 0.0013581656022498558282 +SmallBody58 1.1053539394491334998e-06 0.0037821584480800916802 1.0978911404624207108e-05 -0.64507043080026138515 0.006017967999349400042 0.044024484429886545644 -243.82486182874328051 313.91412429654531024 17.842738258345278268 +1.7963631058070641533 0.0021913818779026750933 0.2277714432057212357 +127.64574510289172338 286.48389918379018582 351.4955198015076121 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -158 1.1053539394491334998e-06 0.0007957084646394230086 +SmallBody59 1.1053539394491334998e-06 0.0032090764608138491496 1.0978911404624207108e-05 -0.37792740533708479855 0.00079709924865743134875 0.49822584694119959048 -117.10532475856990686 273.82529416769699537 142.59754259648363472 +1.5241737322893442741 0.0051795655611637280227 0.37004071826046752713 +220.09047138550891987 85.25328121777833701 155.14257439202265232 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -159 1.1053539394491334998e-06 0.0025211857007434836788 +SmallBody60 1.1053539394491334998e-06 0.001251952383047329137 1.0978911404624207108e-05 -1.1974551140243550051 0.0020342978333770613854 0.05030793806922934097 -329.78186071094091858 192.3131026578458318 69.88335078328420025 +0.5946237054862358873 0.008964827144955677535 0.11220341486493962124 +355.46676640997060304 293.65836711181913188 135.58653747694026492 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -160 1.1053539394491334998e-06 0.0029456358665218289093 +SmallBody61 1.1053539394491334998e-06 0.0034286826689865096638 1.0978911404624207108e-05 -1.399050744806284996 0.008335673423392558901 0.37206739455989384924 -343.64590296578933248 312.07849532760184275 256.63764061611948364 +1.6284772657300985443 0.0055865188113676115048 0.009295182349638275721 +281.14377556523862722 311.47981280814713045 17.970788876634557596 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -161 1.1053539394491334998e-06 0.0021827320107767314121 +SmallBody62 1.1053539394491334998e-06 0.0024123456722281855242 1.0978911404624207108e-05 -1.0367041222225272801 0.00029136466928890268494 0.11776130787270561173 -350.3069098964570003 208.28777218518968084 13.916149934058807958 +1.1457607669091200986 0.0059942816043978908516 0.20544766408447995287 +331.65266199253352397 67.908967452709333656 331.3349063308830864 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -162 1.1053539394491334998e-06 0.0039978967833819220262 +SmallBody63 1.1053539394491334998e-06 0.00070926620825757897553 1.0978911404624207108e-05 -1.898829565466142677 0.0007690667793557670953 0.05189455759954236802 -143.58325146495602098 143.25676647476683456 249.32199351899294015 +0.33687103969860016095 0.0071611781196035881325 0.25924949443614342393 +330.94730198197396476 94.214661441576183165 61.868231242313015628 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -163 1.1053539394491334998e-06 0.003272058425080806188 +SmallBody64 1.1053539394491334998e-06 0.0037496693687355927613 1.0978911404624207108e-05 -1.5540874650145959368 0.008269972669539046167 0.06961212410979411569 -95.125280555953153794 23.840220641634189747 215.57362311616685702 +1.780932186061826572 0.009928144041807798401 0.48322239522126919642 +29.863534255917500104 193.6213362397997173 261.59011579676081283 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -164 1.1053539394491334998e-06 0.002084380419276098977 +SmallBody65 1.1053539394491334998e-06 0.0012736281298308463319 1.0978911404624207108e-05 -0.9899913330058756067 0.001806727826544205634 0.24664641966640482584 -215.72125982122091159 64.54893275208473824 83.09008589262639077 +0.6049187558780279028 0.0015091166639728593492 0.21853541766376521904 +343.27239511068603406 327.27856875910737244 218.61156947625917724 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -165 1.1053539394491334998e-06 0.0026146669636595032606 +SmallBody66 1.1053539394491334998e-06 0.0038448787389546260301 1.0978911404624207108e-05 -1.241854705974774431 0.0073163913270025450475 0.43641130899208679939 -308.0761874808885068 218.62011086494891288 148.7932624505823469 +1.8261525548899533167 0.0051995677384110115804 0.31065813156730226474 +333.06925492853127935 306.6948175209735723 318.41411463851756025 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -166 1.1053539394491334998e-06 0.0027294558735364785618 +SmallBody67 1.1053539394491334998e-06 0.0008288368759312896654 1.0978911404624207108e-05 -1.2963745166832558731 0.0034043325384798118864 0.33020015938329294602 -73.96163975096013132 354.886841550204565 206.63567540075379725 +0.39366198034647403858 0.0046883091977471943665 0.0132479346083514970545 +261.21488538826179138 126.85930642388336764 249.97227049855567316 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -167 1.1053539394491334998e-06 0.0023440737884687683454 +SmallBody68 1.1053539394491334998e-06 0.0027031517150100666755 1.0978911404624207108e-05 -1.1133345492260346976 0.0011591388934861801031 0.48103431467001306343 -226.41816836110476174 173.94407663538297015 144.67436636749943091 +1.2838811691530558345 0.0049121456620970583087 0.07255473068979628737 +69.26560015966929029 305.8875197413007072 134.63575408635963981 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -168 1.1053539394491334998e-06 0.0012672577499801911835 +SmallBody69 1.1053539394491334998e-06 0.0036973458793854774706 1.0978911404624207108e-05 -0.60189309857392880865 0.0083767637767715036334 0.018624213155859659086 -229.40491160703805917 289.0753963788822034 22.11230128196215361 +1.756080771948452135 0.0009601252277977257105 0.1695493446614180777 +134.78798723652712965 157.09044357175469031 86.40744012700496057 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -169 1.1053539394491334998e-06 0.0016816587455295810122 +SmallBody70 1.1053539394491334998e-06 0.0024226359340959145194 1.0978911404624207108e-05 -0.7987158043472744051 0.00047420727998471746663 0.46591218774088305477 -43.025524209519325325 126.20059793122902647 6.7084425859654972513 +1.1506482001095099665 0.005674234583021546194 0.062224739795935124498 +118.63742114361265578 189.83674534297023229 261.05238102013146317 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -170 1.1053539394491334998e-06 0.0027469802655764696665 +SmallBody71 1.1053539394491334998e-06 0.00093424490574192736807 1.0978911404624207108e-05 -1.3046978515579010782 0.009718325881772035477 0.2879767022977701152 -233.91150510083792824 254.98840830964169868 219.45043790648659865 +0.44372627522120611232 0.0030334359757953079616 0.37391057552349776794 +283.89092391956961592 259.95137404118332825 346.16472723124888944 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -171 1.1053539394491334998e-06 0.0031926528968724679073 +SmallBody72 1.1053539394491334998e-06 0.00402765939824776902 1.0978911404624207108e-05 -1.5163732435644108332 0.0029295138139127110087 0.32840722977188846476 -323.51936544562488507 34.22854017443987118 126.816058110113985435 +1.9129655314790134923 0.0070964021998901963273 0.10810520726298006311 +30.878255376390765008 42.882658122567953285 200.72893583876941648 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -172 1.1053539394491334998e-06 0.0035052067479395476428 +SmallBody73 1.1053539394491334998e-06 0.0033292669766640747785 1.0978911404624207108e-05 -1.6648229223238577568 0.002654112317870128794 0.17083834486027260624 -48.117742607139220468 178.38978668204242695 226.22621143244791142 +1.5812590742455658877 0.0075533749864811006516 0.034121039683396359177 +12.444814241754089679 179.89151615168688636 24.585029489733646102 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -173 1.1053539394491334998e-06 0.001838393003548669653 +SmallBody74 1.1053539394491334998e-06 0.003240825693085024002 1.0978911404624207108e-05 -0.8731578570498674807 0.00043382965833911770045 0.14108441272084493168 -290.24618248374150653 358.88384573110090514 10.601402057842364002 +1.5392532563951069058 0.007790252254965330213 0.13892538626639078236 +141.39967666810218816 332.89551723271819128 160.49050452598243055 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -174 1.1053539394491334998e-06 0.00093067278714692325337 +SmallBody75 1.1053539394491334998e-06 0.0034714994099128829643 1.0978911404624207108e-05 -0.44202967204031873294 0.008257710081936825083 0.34599096908411330897 -203.48739340960284494 195.89940138259203195 17.082183487022412294 +1.6488133819364620969 0.0020113095285093731714 0.2250088606724180984 +121.56584291487612859 261.9173061622969385 204.9625551145382758 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -175 1.1053539394491334998e-06 0.0017450042528889666407 +SmallBody76 1.1053539394491334998e-06 0.0028822325406752456014 1.0978911404624207108e-05 -0.8288022044548091216 0.006115886185979944184 0.25529116017821090745 -53.829490571961741807 219.33778473703310397 343.53534427898989634 +1.3689368833962529681 0.0066549127060297960656 0.48400569827392897482 +323.0385985342796289 300.57860189094759562 326.29641894563383175 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -176 1.1053539394491334998e-06 0.0011667698358213854431 +SmallBody77 1.1053539394491334998e-06 0.002359251110792053277 1.0978911404624207108e-05 -0.5541656476877772075 0.0016390618557769155109 0.3104864966220892697 -176.9572515015768488 104.788569746962281215 77.14886608478597907 +1.1205431266139891378 0.00187266540976202653 0.2899909357581830216 +297.41659583594747573 84.110180689059419024 193.95555654830641856 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -177 1.1053539394491334998e-06 0.0015849004106428059382 +SmallBody78 1.1053539394491334998e-06 0.0020392119957311834948 1.0978911404624207108e-05 -0.75275974371259668505 0.009038114731466031712 0.015702172595620456086 -283.44398352098153282 81.58770635648234304 350.55144207852117688 +0.9685382683822236771 0.005796291689317471449 0.18032954869133310805 +210.61736569565172772 339.83162500243662407 286.56658480991978877 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -178 1.1053539394491334998e-06 0.0014779839130640572598 +SmallBody79 1.1053539394491334998e-06 0.0012902589705479611569 1.0978911404624207108e-05 -0.70197899132236596387 0.0027532363280162652427 0.31837156736772159737 -179.79513291005125097 214.85384715268216382 69.9170103997386434 +0.61281769218460813153 0.0051275432937355307217 0.26015155293290603833 +252.79427964190173839 243.58645523218484641 94.5849664301508426 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -179 1.1053539394491334998e-06 0.0024947503142784889404 +SmallBody80 1.1053539394491334998e-06 0.002569631786099053519 1.0978911404624207108e-05 -1.1848994388496214558 0.0028306863944576278122 0.39380634232213529433 -257.86875984787252492 39.217060266705907168 307.09409211912384308 +1.2204649274809282744 0.009774416274180727782 0.18879104486517794825 +297.42495064236146618 167.18624634577579968 262.85679182442186175 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -180 1.1053539394491334998e-06 0.0024209039871307366447 +SmallBody81 1.1053539394491334998e-06 0.0012458382627007142979 1.0978911404624207108e-05 -1.1498255995568971155 0.005869562964554509224 0.49891729637140685982 -22.952690308212837067 27.786705678660602814 76.562922938223778146 +0.5917197604596338145 0.0059329588692788991916 0.12473018336564589692 +304.73001514884600738 226.65939866595209651 16.465072799066366116 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -181 1.1053539394491334998e-06 0.0024519234158279439095 +SmallBody82 1.1053539394491334998e-06 0.0022377586318457351852 1.0978911404624207108e-05 -1.1645584982547720898 0.00089326472872355627483 0.17352040769354859506 -189.10428527863840031 248.98443834165630051 196.70913584086514447 +1.0628394080077543382 0.006038988883799283232 0.35429140209491377655 +134.2063281554704588 28.068140033037273895 102.45187320676993181 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -182 1.1053539394491334998e-06 0.001024322156351863638 +SmallBody83 1.1053539394491334998e-06 0.0035347112204193382299 1.0978911404624207108e-05 -0.48650910727055229898 0.0062340291869955035894 0.31558320184418009458 -60.187390464613173435 212.04805898225171745 213.57189992478367913 +1.6788362817710009711 0.005393162353996002606 0.40916585652483161706 +321.51399261729824275 85.275218183474947864 13.380081092205875493 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -183 1.1053539394491334998e-06 0.0037527897284826381195 +SmallBody84 1.1053539394491334998e-06 0.0013173890271765144052 1.0978911404624207108e-05 -1.7824142231587343232 0.008076098062902195909 0.22731699318437420532 -241.33034681508564745 91.29964040867220376 77.55454829343980805 +0.62570330590360201395 0.0021190727883600257546 0.063937686380848790524 +358.49903571823466564 261.8252697425855331 329.52545912534344552 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -184 1.1053539394491334998e-06 0.002433831311738762775 +SmallBody85 1.1053539394491334998e-06 0.0026742519704062899805 1.0978911404624207108e-05 -1.1559655244969635479 0.0016380661739020753367 0.235790930269410004 -321.19446586376886899 54.22389316392560943 271.04642625993039928 +1.2701550295197931995 0.003093091606578978088 0.164766088603622185 +65.416173843145656974 99.08915094286399494 221.51994734982011437 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -185 1.1053539394491334998e-06 0.0029350973355299183975 +SmallBody86 1.1053539394491334998e-06 0.0015944882125721168941 1.0978911404624207108e-05 -1.3940453944162498612 0.00077841784491747170564 0.28092453139431766695 -44.344994449764591593 339.67291104634369958 151.12443679878529679 +0.757313538559648336 0.0017118846522998633179 0.09482340810856743074 +180.97094221219410315 340.1787807327712585 241.56066273233966513 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -186 1.1053539394491334998e-06 0.0038169290788321545519 +SmallBody87 1.1053539394491334998e-06 0.0040002027295242097347 1.0978911404624207108e-05 -1.8128776646511952642 0.009577144155417962462 0.102383372042556208825 -58.42283688193803215 102.30186777369159756 98.086142829228379014 +1.8999247910181251697 0.009304028507485592389 0.21361492145653071528 +245.92756844748836897 0.50288013040264978315 12.128504315564425653 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -187 1.1053539394491334998e-06 0.0037092087455415407268 +SmallBody88 1.1053539394491334998e-06 0.0032832760165585669895 1.0978911404624207108e-05 -1.7617151247616444909 0.006801862124626666291 0.49660760298493189513 -219.13814363048163614 188.94648500227631871 13.318695124000999641 +1.5594153400212324989 0.00037893859811106712617 0.32653593805682129547 +311.4097123200511419 338.66774555916367717 147.39784950675996811 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -188 1.1053539394491334998e-06 0.0035179805920149388823 +SmallBody89 1.1053539394491334998e-06 0.0040775826436979433924 1.0978911404624207108e-05 -1.6708899505912782057 0.0013143444126650139815 0.16851823163657153604 -268.10095886723007652 100.026140809892083894 105.8844956443853107 +1.9366769326484614133 0.0062074179873753800377 0.45176793352172295304 +67.54036593010991396 8.225425679737066176 175.74568379456468392 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -189 1.1053539394491334998e-06 0.0017793602037805589573 +SmallBody90 1.1053539394491334998e-06 0.0026437150028610220674 1.0978911404624207108e-05 -0.84511980814428544484 0.0018945620033825627017 0.36108250227350330297 -191.93161504103943571 34.666401519514842278 212.80421272965310209 +1.2556512791839518073 0.0020446823287433558113 0.27311501221477701984 +148.59595005915571164 126.34646048684935238 23.641531776338045034 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -190 1.1053539394491334998e-06 0.001337398180775289937 +SmallBody91 1.1053539394491334998e-06 0.003416497150947439354 1.0978911404624207108e-05 -0.63520679598649709696 0.0014330566748994245842 0.015380000441147401169 -57.881111666861649212 31.610168368282963058 120.38149686642903191 +1.6226896671059203303 0.0044050688871926290888 0.17024510243746560079 +250.9509925834948092 299.29960623843152234 285.30964167173664237 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -191 1.1053539394491334998e-06 0.0020675986630140241381 +SmallBody92 1.1053539394491334998e-06 0.002401362336633064 1.0978911404624207108e-05 -0.9820207182858231576 0.0038878276442858871777 0.32469455752036718854 -105.35731765914751179 257.3843644363531098 192.07302426945980756 +1.1405441534032028095 0.0072032600981295734355 0.1568913846604371165 +23.861181509211903062 121.431863197952594646 243.68934136993257766 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -192 1.1053539394491334998e-06 0.0025029455637043175103 +SmallBody93 1.1053539394491334998e-06 0.0010510350719675327177 1.0978911404624207108e-05 -1.1887918309620983948 0.0064629091304864109274 0.12679380439923110258 -352.71774998892141184 147.45947326342127326 232.0002771188475208 +0.4991965968930148767 0.009078045669567351081 0.14766305581499117316 +224.96635719118671659 47.37255544667560514 355.94205723897465532 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -193 1.1053539394491334998e-06 0.00094512130272425033487 +SmallBody94 1.1053539394491334998e-06 0.0012593951334772171438 1.0978911404624207108e-05 -0.44889209747095193404 0.0053373915614944849456 0.32941854539394571644 -305.71069304813414647 172.2992104392735655 91.00916799981128236 +0.5981586928384361457 0.0018442473258474324001 0.48443807652551473808 +340.1585757515797468 80.290634330682280506 76.0201822161276084 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -194 1.1053539394491334998e-06 0.0034092625577608660855 +SmallBody95 1.1053539394491334998e-06 0.0016132609485169218172 1.0978911404624207108e-05 -1.6192535455197185623 0.0030470668778012624175 0.41462701601666840379 -140.33788510416528084 61.311580446985658455 259.46790100376045984 +0.7662297832673294895 0.008855545801541802806 0.44350051768946618935 +253.4211815280780229 310.82659001777676622 195.55695808992521734 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -195 1.1053539394491334998e-06 0.0031194310802934548436 +SmallBody96 1.1053539394491334998e-06 0.0039273174105778759005 1.0978911404624207108e-05 -1.4815960200164444149 0.00027725778011730597798 0.15321623213376195372 -26.125021238802005996 230.51083794879502875 172.17747993701027553 +1.8653073894186134041 0.0041961814167760982247 0.25521367294838631645 +12.882291052690050037 198.21528606358461388 215.72559762339224676 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -196 1.1053539394491334998e-06 0.0030603886610092652493 +SmallBody97 1.1053539394491334998e-06 0.0037651995006149393317 1.0978911404624207108e-05 -1.4535534022531539922 0.0069977768552927210183 0.34106957969408180364 -170.36755571685284849 106.74391944489579487 243.93856426771816359 +1.7883083328624815866 0.0010078752183982652747 0.02577853096094878671 +71.11397056481432344 200.83927602827213832 264.96685257874128183 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -197 1.1053539394491334998e-06 0.00074818681152074183633 +SmallBody98 1.1053539394491334998e-06 0.001185620800859618772 1.0978911404624207108e-05 -0.35535665755873779847 0.0058593579788037497905 0.2210846705896606923 -93.32630747998547349 93.38559488248714047 144.73647810339707576 +0.5631190478608267824 0.003059639106271775516 0.34118161769295923813 +146.64875137025669005 225.66678455336588627 95.93283454161746704 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -198 1.1053539394491334998e-06 0.0010189341349627265995 +SmallBody99 1.1053539394491334998e-06 0.0033015903140253701294 1.0978911404624207108e-05 -0.48395002811783771612 0.004355929018771392998 0.3148147651486025711 -104.37134461938777008 148.3206361948264771 319.21143480785696056 +1.5681138461070474044 0.0047690418770962791917 0.104294320166698484265 +54.223539465643227686 315.33007220613569643 268.01705063763682801 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -199 1.1053539394491334998e-06 0.0012841975153201117172 +SmallBody100 1.1053539394491334998e-06 0.0027949972967621498463 1.0978911404624207108e-05 -0.6099387608314446041 0.008206854224227476402 0.36303861724155556123 -167.05504491633865882 55.509667745005231154 62.54928443720996256 +1.3275038826791325519 0.0074182924067507927113 0.1398377407057855848 +154.44256669268099813 24.608962888651074508 93.007569133222744995 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -200 1.1053539394491334998e-06 0.0017521184176711138835 +SmallBody101 1.1053539394491334998e-06 0.003992235866447200529 1.0978911404624207108e-05 -0.8321811277121804462 0.0074729471446112610833 0.27027343319120750165 -83.909248607546928156 177.97057268141455211 292.71160190085106478 +1.8961408726294546323 0.009496479632133238494 0.21468181838894312419 +9.376804482463917623 101.881442440233584534 295.18997529788072143 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -201 1.1053539394491334998e-06 0.0011400563073696778689 +SmallBody102 1.1053539394491334998e-06 0.0010080293063265012185 1.0978911404624207108e-05 -0.54147786699447120196 0.0075253498170819400556 0.36311252466536780847 -132.13500697470266232 8.066085135284627228 85.49238498185923163 +0.47877070205147276294 0.0007815655215245819994 0.13118381398226147683 +155.82338848749665772 309.05685925931902602 189.74619427179570152 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -202 1.1053539394491334998e-06 0.0007266806633034729832 +SmallBody103 1.1053539394491334998e-06 0.0035828809889099322783 1.0978911404624207108e-05 -0.34514215921451030233 0.003138712621743231651 0.44549759279474399065 -172.0718978485695061 126.04240106870447846 60.443420132649201548 +1.7017148565635762392 0.0078012604149201173268 0.30551670213562293066 +35.505130876376483684 120.78189364849589538 97.791574975481793786 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -203 1.1053539394491334998e-06 0.0021270971459522370655 +SmallBody104 1.1053539394491334998e-06 0.0010339926893446762294 1.0978911404624207108e-05 -1.0102799467314087511 0.008936437059711933514 0.12275610939039000025 -166.58882157985800632 112.606652616931071975 258.1699258129560235 +0.49110219582573877428 0.005988483180863304542 0.24370575264438143481 +131.03466363087656532 40.866170770556671243 13.883550784796074851 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -204 1.1053539394491334998e-06 0.0039396547555080155497 +SmallBody105 1.1053539394491334998e-06 0.00076653787489025262456 1.0978911404624207108e-05 -1.8711670993065925295 0.0041692516961832964614 0.27372930913918147589 -318.97638827684272655 79.61204505900145989 245.10666614701753474 +0.36407262587203004234 0.008636617535491592987 0.2092320469700378327 +234.74128999562717013 3.2198734071443135818 286.18883606922651097 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -205 1.1053539394491334998e-06 0.0022620131795458212741 +SmallBody106 1.1053539394491334998e-06 0.003569486662021974079 1.0978911404624207108e-05 -1.0743592782708812905 0.0075169185908215887387 0.20882146866135353758 -234.88520970008934796 17.095830900992531554 138.43215727509851831 +1.6953531255628928598 0.0087632182443418363965 0.46446558295746426248 +93.673096737565316516 284.09048681624364008 3.3921253231597292555 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -206 1.1053539394491334998e-06 0.0026566875365635395124 +SmallBody107 1.1053539394491334998e-06 0.0020655336029156220287 1.0978911404624207108e-05 -1.2618126765055976968 0.0051193244260370820986 0.44677877859452302944 -150.47122191491908438 343.37990617736471677 301.97701769135204586 +0.98103990327688905815 0.0008080663836135304522 0.26398591508525298677 +215.1705210123592451 13.491047695534055251 293.9000446053132123 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -207 1.1053539394491334998e-06 0.0034560287471722631767 +SmallBody108 1.1053539394491334998e-06 0.00090433309374782441307 1.0978911404624207108e-05 -1.6414654804270103483 0.0037589487554753808415 0.09860035604127542763 -128.45161012695862723 138.12513353072444033 5.526087606209117986 +0.42951944696912175425 0.005297739638715663786 0.27005745103297529308 +10.740103884040387072 237.22605466326461965 158.33780673462703703 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -208 1.1053539394491334998e-06 0.002304056067954902178 +SmallBody109 1.1053539394491334998e-06 0.0019991073350657544734 1.0978911404624207108e-05 -1.0943278477098412615 0.009219538533139311556 0.095222162006226629405 -88.84804456629333913 324.895702579789031 92.17463967125601698 +0.949490274021527636 0.0034695504087138276036 0.47598267696206147948 +198.07373469054741122 220.41034279657506545 113.817295977641350646 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -209 1.1053539394491334998e-06 0.0023066637656628765428 +SmallBody110 1.1053539394491334998e-06 0.002251483284792258904 1.0978911404624207108e-05 -1.0955663923181668817 0.0023950527694435730375 0.46421151527080745103 -324.69082920897227496 153.43578428037761796 41.923263645731672966 +1.0693580297237896826 0.004035515964109191722 0.038937608095047426815 +280.28181613799023353 335.51906774754201024 103.42152042735344253 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -210 1.1053539394491334998e-06 0.002666806636181415379 +SmallBody111 1.1053539394491334998e-06 0.0021119591611738492167 1.0978911404624207108e-05 -1.2666188149757524606 0.003488235603050726663 0.19193371390053609593 -347.20274230104041635 274.35539277308657802 284.14459644239968839 +1.0030900529907145202 0.0047801409420897148297 0.36554603793164414105 +238.97153389107484145 336.94275740825520415 354.4088285517665895 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -211 1.1053539394491334998e-06 0.0025343612448345294427 +SmallBody112 1.1053539394491334998e-06 0.003750697645708955891 1.0978911404624207108e-05 -1.2037129325766431354 0.005956303872558349824 0.3559311915280667371 -48.760650502383171556 87.16581688184170673 276.1874380855203981 +1.7814205735376178463 0.008216991237457019204 0.37632371665336056266 +89.342006467283596294 125.82022150851074116 319.9007496683395857 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -212 1.1053539394491334998e-06 0.002164860753990135927 +SmallBody113 1.1053539394491334998e-06 0.0027159022397352150873 1.0978911404624207108e-05 -1.0282160414647947277 0.003302246673230939747 0.45300872701331695858 -8.341266489676053553 174.76177078024284128 139.30465877858190993 +1.2899371217289095082 0.0027102260511703557544 0.49570586801303845315 +105.723856149928764125 214.67075718408133866 198.22402209155814035 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -213 1.1053539394491334998e-06 0.0040843078728013477335 +SmallBody114 1.1053539394491334998e-06 0.00250098952292614985 1.0978911404624207108e-05 -1.9398711281337372991 0.0032104583781716335665 0.49487356206707699968 -44.65480097070717136 319.46209090426640387 209.69564164397232275 +1.1878627954561591373 0.0055269486194088170497 0.28582563402598959446 +198.15652198877376122 50.825175292553865347 38.458878742928611416 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -214 1.1053539394491334998e-06 0.0040395756391825065194 +SmallBody115 1.1053539394491334998e-06 0.0031140745262582451406 1.0978911404624207108e-05 -1.9186252350236749908 0.00069040374099674673303 0.28080790407379557783 -219.22548593736834732 69.77143869502911855 223.94515672652107696 +1.4790518865077075805 0.006118278412732922056 0.3086911846887249733 +209.00522198253077022 209.0447667763183972 302.3997529416504335 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -215 1.1053539394491334998e-06 0.00091136450338093370237 +SmallBody116 1.1053539394491334998e-06 0.002627832958283806611 1.0978911404624207108e-05 -0.43285906507876115157 0.00578665741605939761 0.2520692500298778449 -44.834183261530739628 285.77456721148087126 192.38915101002694996 +1.2481079889397856952 0.0053051121161105732615 0.3299746252761422416 +133.87850351417839079 250.47308287578673003 301.9918008789680357 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -216 1.1053539394491334998e-06 0.00089616742587646485246 +SmallBody117 1.1053539394491334998e-06 0.0031597121301605122381 1.0978911404624207108e-05 -0.42564110482673200853 0.0005533013370391437393 0.053116133899315576272 -231.8805534469131544 245.91272374704527692 14.578357422055852055 +1.5007277916853674071 0.007573092642192360939 0.13642247448670236087 +88.025380854098912664 120.144181413174720774 318.87396349165152287 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -217 1.1053539394491334998e-06 0.0023193968496302787142 +SmallBody118 1.1053539394491334998e-06 0.00093094972396938369424 1.0978911404624207108e-05 -1.101614061281849688 0.002375347752201917382 0.09571246417006856744 -2.1596347900400880704 186.47676216633470858 354.55084390332558542 +0.44216120515754175901 0.00886881958774052466 0.41844036187083433198 +20.163186214228115745 337.03851824104918933 156.84154111341879911 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -218 1.1053539394491334998e-06 0.0025152446923543384353 +SmallBody119 1.1053539394491334998e-06 0.0037723189778824764127 1.0978911404624207108e-05 -1.1946333897555136971 0.008334727953654641475 0.018759532069737849813 -64.0613065617537103 229.64622309479892692 219.95966530084248802 +1.7916897793226445046 0.001098164024120308396 0.30931507299879934525 +332.77979531452609763 167.04470469364389373 355.07028692488006527 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -219 1.1053539394491334998e-06 0.0032400431175406403072 +SmallBody120 1.1053539394491334998e-06 0.0037653266656142048815 1.0978911404624207108e-05 -1.5388815665638277963 0.0038596927309883745025 0.07238357784374110926 -10.920921913452374952 45.915301829139480105 239.98713144054397617 +1.7883687307850346659 0.006371715457058402428 0.082470207424121366735 +235.80874892467014092 254.5021145150402333 43.003779741307269546 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -220 1.1053539394491334998e-06 0.0014717978465589673241 +SmallBody121 1.1053539394491334998e-06 0.0020643614208088825627 1.0978911404624207108e-05 -0.69904087495512245987 0.0002590716396011583187 0.47895548340827731604 -134.11954212847601298 251.59803103538556002 309.99281161383004246 +0.98048316703256199744 0.0022536360259029640692 0.2657233991482298996 +201.9224168131107433 35.510966049397936217 269.0479325637503507 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -221 1.1053539394491334998e-06 0.0013681262389589482948 +SmallBody122 1.1053539394491334998e-06 0.0012493819934868600675 1.0978911404624207108e-05 -0.64980130618271503273 0.0025999932632500477245 0.30082009587089675318 -74.681300459323509244 205.48992092596844827 205.89842465713653041 +0.59340288064841817395 0.0024430042115868256733 0.3060539089368434218 +4.141252475781271869 288.81343355757388736 245.01300887770881332 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -222 1.1053539394491334998e-06 0.0007066410520629793092 +SmallBody123 1.1053539394491334998e-06 0.001358949686478997836 1.0978911404624207108e-05 -0.33562420305764623096 0.0057440840623750911986 0.49342242728993979117 -120.04528088590963364 66.99678235535563431 33.598980329756699348 +0.645442837192117036 0.00680655598933405364 0.37332907634182399548 +142.76890287293809934 240.01228369288145359 199.05279648688636485 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -223 1.1053539394491334998e-06 0.0029659316169642682108 +SmallBody124 1.1053539394491334998e-06 0.001372467998698668969 1.0978911404624207108e-05 -1.4086903561023089715 0.004259341892601368508 0.14267186104797779933 -14.54174899091190909 269.45780351797532148 187.85278880815860703 +0.6518634559095917158 0.004859331047906131039 0.10133584662204236926 +223.88750283359757987 260.86881228241998087 140.45156031392056661 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -224 1.1053539394491334998e-06 0.0017923632718833247994 +SmallBody125 1.1053539394491334998e-06 0.003145893994423096287 1.0978911404624207108e-05 -0.85129570799691123284 0.0035517834521794121663 0.33564765636087789957 -60.086176349130006713 71.36287420486030442 34.692133839275442142 +1.4941647696516584531 0.008393567717643860351 0.1951188989893116732 +200.22793560214802255 102.89583384607908556 47.7458985350726266 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -225 1.1053539394491334998e-06 0.0025792465993613212239 +SmallBody126 1.1053539394491334998e-06 0.00085991395374624328017 1.0978911404624207108e-05 -1.225031551553044995 0.007727504177897022257 0.43707332848336299946 -222.49856223195729399 67.49883181549482458 155.70267988055215369 +0.40842225990361852306 0.009925563889294575573 0.07832748266555661365 +53.17607097807006511 332.93429864214544978 200.16735258876744297 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -226 1.1053539394491334998e-06 0.0025218031217037754374 +SmallBody127 1.1053539394491334998e-06 0.0020912214038404363845 1.0978911404624207108e-05 -1.1977483625090616925 0.0063833015042883698223 0.35426145269927189485 -158.78039132816695655 326.73787900488514424 196.37060773228171229 +0.9932405073721715105 0.0020658612770351634721 0.17106687565709588483 +208.88869138521144464 120.983163700799536855 49.37968505744140657 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -227 1.1053539394491334998e-06 0.0037271560089606554719 +SmallBody128 1.1053539394491334998e-06 0.0037117773832440165345 1.0978911404624207108e-05 -1.7702393054110998616 0.009025891821731380285 0.42491523235654526935 -153.68685705365447802 110.118312544184320245 339.71639203889168357 +1.7629351175420249209 0.0032481182990924764055 0.24616989531905253408 +147.11975344892698558 136.13717547777136474 281.30407881784151414 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -228 1.1053539394491334998e-06 0.0020252561485106393543 +SmallBody129 1.1053539394491334998e-06 0.0024032375471735127028 1.0978911404624207108e-05 -0.96190983929829898536 0.005028390165655082303 0.10997122163472444756 -176.66660117126502882 284.4337634361459095 342.56504716502763586 +1.1414347980117576231 0.0041502652786197550758 0.08454980233453107674 +229.99908908688681208 44.5578445821387632 67.002250085263554524 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -229 1.1053539394491334998e-06 0.0022163078324654828465 +SmallBody130 1.1053539394491334998e-06 0.001767467028496686351 1.0978911404624207108e-05 -1.0526511979880723846 0.0072927562709262181567 0.36442810076757331528 -311.91609402259734907 83.16466928132197722 145.73476099765306913 +0.83947105979486336125 0.00016077274532254272246 0.39130968768011842318 +335.08715148259341277 228.63942269662831563 359.0911028463757475 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -230 1.1053539394491334998e-06 0.0021864883259347588167 +SmallBody131 1.1053539394491334998e-06 0.0026430902300121048054 1.0978911404624207108e-05 -1.0384882108735697948 0.004272215538613700729 0.48261188771066088066 -5.0174868989032495037 63.042328755519697836 134.43975920341418373 +1.2553545388673543748 0.0025769333010502780239 0.12589489115239127504 +255.52745736528126486 212.70128728982925281 244.94843935268181667 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -231 1.1053539394491334998e-06 0.003586532509954617801 +SmallBody132 1.1053539394491334998e-06 0.0032882512617878725745 1.0978911404624207108e-05 -1.7034491725037455012 0.00091850208316692221085 0.4865720816280050265 -186.59166544767518303 328.54463528608755496 169.13916587264412783 +1.5617783681954762187 0.004948006327108393776 0.34078014567581271788 +176.22761230380203301 5.155392124877287152 89.585872570524358594 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -232 1.1053539394491334998e-06 0.0019971223755757787394 +SmallBody133 1.1053539394491334998e-06 0.0012831312069338747407 1.0978911404624207108e-05 -0.9485475033673462786 0.0024845240039717132567 0.42570943759153928587 -266.1136976489871131 251.90747956373090233 134.63749761808043104 +0.60943231006510478753 0.0061437650448469506223 0.075499238771577492635 +178.83721349122171773 298.9789356869800372 25.027632544203186171 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -233 1.1053539394491334998e-06 0.0018117777664029862334 +SmallBody134 1.1053539394491334998e-06 0.0026382347801195862704 1.0978911404624207108e-05 -0.8605167605127614916 0.008511268700557947375 0.14756130233560865728 -207.83259904623565717 241.90873517882627652 66.39053522116275019 +1.2530484083419548558 0.0086514879756291844515 0.41341953068728581888 +229.0983678706646458 261.02130278752747472 166.5931723152342272 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -234 1.1053539394491334998e-06 0.0041112960409139540064 +SmallBody135 1.1053539394491334998e-06 0.0035699538420565724963 1.0978911404624207108e-05 -1.9526893508910134756 0.0053017033825177826978 0.18168625664735371661 -107.23622785654312395 264.34294940319352918 139.24585411098206578 +1.6955750160493552325 0.0011432190566918820976 0.06560289215472481228 +151.50679626869310823 58.08436171306480844 271.85287368639353645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -235 1.1053539394491334998e-06 0.00084542567454914067173 +SmallBody136 1.1053539394491334998e-06 0.0012462497121113039665 1.0978911404624207108e-05 -0.4015409484584254729 0.004569942210221058891 0.20513364186354821062 -147.04352523756176652 145.80768674791906392 141.08054790192051087 +0.5919151812890981468 0.0094315073904481742245 0.39860349008798984238 +132.68495221114258698 220.62094792819442546 239.06532584793680485 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -236 1.1053539394491334998e-06 0.0027510687630676706793 +SmallBody137 1.1053539394491334998e-06 0.0040900465170436520375 1.0978911404624207108e-05 -1.3066397125751481045 0.0014607117158009586076 0.17392330571108188808 -41.268742310849482635 50.34908495498763159 131.26010660592496038 +1.942596738109030774 0.00085894138299823284775 0.3540861393320458017 +84.657989801255880025 285.9942938027552941 43.06626227900954973 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -237 1.1053539394491334998e-06 0.0018516760523599570933 +SmallBody138 1.1053539394491334998e-06 0.0026321784367130867263 1.0978911404624207108e-05 -0.87946673573509115407 0.0069253255867478746496 0.42639371801740005852 -183.18023072835251241 66.90390603052549068 269.9485162822036841 +1.25017190488476726 0.001035518339557566338 0.22991215033825823655 +291.55028201024350665 284.70513762060340923 312.21379878133922148 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -238 1.1053539394491334998e-06 0.0009976837669774952503 +SmallBody139 1.1053539394491334998e-06 0.0018316989583566004745 1.0978911404624207108e-05 -0.47385701441745431417 0.008776175977294868938 0.2420535467050825007 -13.241003135370498001 29.930518870899959438 264.79758292300277844 +0.8699784725854904366 0.00040252767386671385727 0.15574484799388010892 +8.5800417750262134575 129.27886023199005194 305.03511084637750628 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -239 1.1053539394491334998e-06 0.002403879454815229617 +SmallBody140 1.1053539394491334998e-06 0.0027152985394420051477 1.0978911404624207108e-05 -1.141739676620294297 0.0052954006268846765676 0.39314436349414877414 -268.12797354862044585 89.01621607348261023 283.2200310651768973 +1.2896503899728040121 0.00542740198905945076 0.45310649794265428492 +341.809792373788639 113.82747539427856509 247.91497334638845018 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -240 1.1053539394491334998e-06 0.003342777170318209772 +SmallBody141 1.1053539394491334998e-06 0.0036602812116765727579 1.0978911404624207108e-05 -1.5876758369924879322 0.0075782735246336385693 0.18385331654242520472 -33.490939838720102273 95.664683550198063244 192.41953657540850031 +1.7384766439048284781 0.0032945029965048724767 0.17661293162929425637 +324.49650636688886607 14.8923843223844354355 291.25435855870654223 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -241 1.1053539394491334998e-06 0.0034831354783670050171 +SmallBody142 1.1053539394491334998e-06 0.0038094090876577454437 1.0978911404624207108e-05 -1.654340015565003208 0.007918655724342917382 0.36378558708580316372 -210.66813303450092576 38.317401760357086005 89.57021493780356991 +1.8093059912569828818 0.008653814027203068915 0.39558567978807523957 +152.01949489017039241 245.78383843322686175 192.08442194631814459 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -242 1.1053539394491334998e-06 0.0015733736610314644142 +SmallBody143 1.1053539394491334998e-06 0.0032982900468595283284 1.0978911404624207108e-05 -0.74728503184741801313 0.0032172058887935338876 0.34763922608101577305 -330.30756327774741976 78.395884514425375755 154.66807042402732009 +1.5665463606995986279 0.006009483925970214059 0.38831677230782329913 +254.46309759358049973 35.7461201936248969 296.39612354554310514 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -243 1.1053539394491334998e-06 0.0015024124635363894444 +SmallBody144 1.1053539394491334998e-06 0.0030634256646320016972 1.0978911404624207108e-05 -0.71358150544207954447 0.005098169278581456132 0.354132981158384208 -101.241415954006015454 226.88387410856495308 213.36195978437388021 +1.4549958487648424477 0.0042019944515554741304 0.103702341899099270695 +28.581569847499295633 307.20222382027014874 306.62611247928236935 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -244 1.1053539394491334998e-06 0.0024256195223060660179 +SmallBody145 1.1053539394491334998e-06 0.0040865138550243042622 1.0978911404624207108e-05 -1.1520652765903638404 0.00039979469491987498168 0.2619806069247970215 -129.34836716938255563 32.698660384755541486 47.76954843794489136 +1.9409188751099109016 0.0010500141747999292442 0.15765471770149258601 +43.99728845349395101 12.378161652724681829 225.46205282476034881 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -245 1.1053539394491334998e-06 0.0010295582610689521239 +SmallBody146 1.1053539394491334998e-06 0.002109241822064289481 1.0978911404624207108e-05 -0.4889960325173501321 0.00953330627798549754 0.032636225049778477825 -30.945257375386532317 8.9502855637170739556 281.9619345119862146 +1.0017994334174236126 0.0065873200112985001373 0.44933340912200309125 +255.35329387166856918 259.26783636729476257 307.03948715962786764 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -246 1.1053539394491334998e-06 0.0040735004214879100807 +SmallBody147 1.1053539394491334998e-06 0.0020702331248985193483 1.0978911404624207108e-05 -1.9347380521207213633 0.0061709428962725245207 0.18206378926998395551 -268.40431808929264434 139.72384314612651224 97.64478403540555007 +0.9832719747305034286 0.006643360427983963437 0.38337657172513023296 +338.87403685252746754 212.09324525218809754 90.86376618933867633 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -247 1.1053539394491334998e-06 0.0039790977499327418195 +SmallBody148 1.1053539394491334998e-06 0.0016976701006517697416 1.0978911404624207108e-05 -1.889900830571367818 0.0059630702111043397406 0.44802136438877876445 -344.6465255333775417 236.14941078506609529 93.97870420135595282 +0.80632051155621620175 0.002373623883236905107 0.4938933358938096263 +228.9834606765335252 97.13181363461184503 82.37470004717647498 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -248 1.1053539394491334998e-06 0.0021148161915397994054 +SmallBody149 1.1053539394491334998e-06 0.0031278599433041361999 1.0978911404624207108e-05 -1.004447019921639539 0.0061398326141391566454 0.24818031299564763392 -77.2653313418328338 16.855370968656181674 295.22318336849701836 +1.4855993685657300496 0.0022376413513541305346 0.24129161476336913328 +4.5963354373523879204 193.07560146926255129 67.33203953027762623 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -249 1.1053539394491334998e-06 0.002161969124119271856 +SmallBody150 1.1053539394491334998e-06 0.0006418232920025271226 1.0978911404624207108e-05 -1.0268426412524618296 0.0020303539850371954065 0.4545716073597971807 -101.72505014017664848 353.0747641621397861 17.310508232021199149 +0.3048385460387668111 0.0066988423982709457277 0.117546375927761515 +285.06880360673568475 149.40827372648249138 144.57986758582379139 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -250 1.1053539394491334998e-06 0.0013500001344871598864 +SmallBody151 1.1053539394491334998e-06 0.0009829595240749040168 1.0978911404624207108e-05 -0.6411921837009073588 0.008810306621742310801 0.30869615351986745555 -355.9149898972989945 358.0328710131873322 174.7162073679091634 +0.46686363032891009528 0.008499308628501150986 0.34053342820077781017 +209.39838432125981171 82.769614540913750034 86.68430849061675758 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -251 1.1053539394491334998e-06 0.0014155631438375293998 +SmallBody152 1.1053539394491334998e-06 0.0023496093753247095933 1.0978911404624207108e-05 -0.6723318021805277933 0.00842670699769050742 0.4283300305564463062 -192.77762805609106067 180.17735441882669534 255.90801647172918365 +1.1159637156487294263 0.0053380903741851813 0.37830349306169885892 +350.2143556697128588 198.60142248144447308 138.80606990835988768 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -252 1.1053539394491334998e-06 0.0020923628796454186781 +SmallBody153 1.1053539394491334998e-06 0.0032584963875012445194 1.0978911404624207108e-05 -0.9937826594396721447 0.006172407155352415374 0.19106488268036120326 -257.4605374263549038 85.1732723860656904 228.11893704313536091 +1.5476460786258632307 0.008427187777420793585 0.19769962836446186571 +272.7555605558899856 109.36660148695808914 88.2209819361593901 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -253 1.1053539394491334998e-06 0.0024110010975998127964 +SmallBody154 1.1053539394491334998e-06 0.0012963852453560645777 1.0978911404624207108e-05 -1.1451221516082092933 0.008873912374514099713 0.012132993003118819342 -198.23741779484768699 261.31906330910709357 268.37623845258082156 +0.61572741005930442526 0.00083496920154526362706 0.3536340306533050648 +166.14122344102605666 312.85186907946501833 237.33755609293859834 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 diff --git a/examples/symba_chambers_2013/sun_MsunAUYR.in b/examples/symba_chambers_2013/sun_MsunAUYR.in index 2c02b8009..b7b871b22 100644 --- a/examples/symba_chambers_2013/sun_MsunAUYR.in +++ b/examples/symba_chambers_2013/sun_MsunAUYR.in @@ -1,4 +1,4 @@ -0 +Sun 39.476926408897626 0.004650467260962157 4.7535806948127355e-12 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb deleted file mode 100644 index d04fa73bd..000000000 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ /dev/null @@ -1,859 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/home/daminton/git/swiftest/examples/symba_mars_disk'" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import swiftest\n", - "import os\n", - "import xarray as xr\n", - "import numpy as np\n", - "os.getcwd()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.in\n", - "\n", - "Creating Dataset\n", - "Successfully converted 17 output frames.\n", - "Swiftest simulation data stored as xarray DataSet .ds\n" - ] - } - ], - "source": [ - "sim = swiftest.Simulation(param_file=\"param.in\")\n", - "sim.bin2xr()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'origin_type' (id: 2612)>\n",
    -       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    -       "       ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n",
    -       "      dtype='<U20')\n",
    -       "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 2605 2606 2607 2608 2609 2610 2611
    " - ], - "text/plain": [ - "\n", - "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", - " ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n", - " dtype='\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'origin_type' (id: 2612)>\n",
    -       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    -       "       ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n",
    -       "      dtype='<U20')\n",
    -       "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 2605 2606 2607 2608 2609 2610 2611
    " - ], - "text/plain": [ - "\n", - "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", - " ..., 'Supercatastrophic', 'Supercatastrophic', 'Supercatastrophic'],\n", - " dtype=' Date: Sat, 28 Aug 2021 16:21:51 -0400 Subject: [PATCH 250/315] Updated the animation script for the symba_mars_disk example to use the new NetCDF-formatted output files --- examples/symba_mars_disk/aescattermovie.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index 0171b4a4b..909b674fb 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -13,6 +13,7 @@ ymin = 1e-6 ymax = 1.0 framejump = 1 +ncutoff = 1e20 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" @@ -22,8 +23,10 @@ def __init__(self, ds, param): nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param + self.Rcb = self.ds['radius'].sel(id=0, time=0).values self.ds['radmarker'] = self.ds['radius'].fillna(0) - self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + np.where(self.ds['radmarker'] > ncutoff, 0, self.ds['radmarker']) + self.ds['radmarker'] = (self.ds['radmarker'] / self.Rcb) * radscale self.clist = {'Initial conditions' : 'xkcd:faded blue', 'Disruption' : 'xkcd:marigold', @@ -38,14 +41,14 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) - self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): scat = [] for key, value in self.clist.items(): - idx = origin == value + idx = origin == key s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) scat.append(s) return scat @@ -62,7 +65,7 @@ def setup_plot(self): self.ax.set_yscale('log') self.title = self.ax.text(0.50, 1.05, "", bbox={'facecolor': 'w', 'alpha': 0.5, 'pad': 5}, transform=self.ax.transAxes, - ha="center") + ha="center", animated=True) self.title.set_text(f"{titletext} - Time = ${t / 24 / 3600:4.1f}$ days with ${npl:f}$ particles") slist = self.scatters(pl, radmarker, origin) @@ -76,15 +79,18 @@ def setup_plot(self): def data_stream(self, frame=0): while True: d = self.ds.isel(time=frame) - d = d.where(np.invert(np.isnan(d['a'])), drop=True) + d = d.where(d['a'] < ncutoff, drop=True) + radius = d['radmarker'].values + d = d.where(d['a'] > self.Rcb, drop=True) + Gmass = d['Gmass'].values - a = d['a'].values / RMars + a = d['a'].values / self.Rcb e = d['e'].values name = d['id'].values npl = d.id.count().values radmarker = d['radmarker'] - origin = d['origin_type'] + origin = d['origin_type'].values t = self.ds.coords['time'].values[frame] From e753b4123968750b552af12b5c469587dcefb0f8 Mon Sep 17 00:00:00 2001 From: David Minton Date: Sat, 28 Aug 2021 16:22:35 -0400 Subject: [PATCH 251/315] Updated encoder to the one that's compatible on the RCAC clusters --- examples/symba_mars_disk/aescattermovie.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index 909b674fb..eaaa4d9b4 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -42,7 +42,7 @@ def __init__(self, ds, param): self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) - self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) + self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): From 2eac89dbd308a9ab2f6d4fb621a6ca9e964bcfa3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 16:28:32 -0400 Subject: [PATCH 252/315] Updated defaults in python script to NetCDF --- examples/symba_chambers_2013/init_cond.py | 1 + examples/symba_chambers_2013/param.in | 2 +- .../symba_chambers_2013/pl_chambers_2013.in | 924 +++---- examples/symba_mars_disk/testnetcdf.ipynb | 2435 +++++++++++++++++ python/swiftest/swiftest/simulation_class.py | 4 +- 5 files changed, 2901 insertions(+), 465 deletions(-) create mode 100644 examples/symba_mars_disk/testnetcdf.ipynb diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index eff7f4839..cf9baa290 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -40,6 +40,7 @@ sim.param['IN_FORM'] = 'EL' sim.param['OUT_FORM'] = 'XVEL' sim.param['OUT_TYPE'] = 'NETCDF_DOUBLE' +sim.param['BIN_OUT'] = 'bin.nc' # Add central body sim.add("Sun") diff --git a/examples/symba_chambers_2013/param.in b/examples/symba_chambers_2013/param.in index b1d279019..8f200df67 100644 --- a/examples/symba_chambers_2013/param.in +++ b/examples/symba_chambers_2013/param.in @@ -11,7 +11,7 @@ IN_TYPE ASCII PL_IN pl_chambers_2013.in TP_IN tp.in CB_IN sun_MsunAUYR.in -BIN_OUT bin.dat +BIN_OUT bin.nc CHK_QMIN -1.0 CHK_RMIN -1.0 CHK_RMAX 1000.0 diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index 6151b7b10..bae3d0a91 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -11,927 +11,927 @@ Saturn 0.011285899820091272997 0.43766379465266665196 113.59526896860690215 335.6868332999574136 225.48455056285450837 0.0 0.0 0.22000000000000000111 441.93109321068034775 378.52929516502754512 5135.9113502360652523 -BigBody0 1.1053539394491336042e-05 0.008528824599778775939 +BigBody0 1.1053539394491336042e-05 0.0063075596499805015168 2.3653347588909066005e-05 -1.8802268813604403608 0.0034577859413208434335 0.20794489945719352164 -116.242322863494550234 358.09542459575311568 304.1535424267980261 +1.3905366526104205871 0.0051551549664398807135 0.3092444066234905642 +228.58509335446049704 334.67460737226542733 216.69401173037385888 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody1 1.1053539394491336042e-05 0.0059690494989390618847 +BigBody1 1.1053539394491336042e-05 0.0060310909831888406354 2.3653347588909066005e-05 -1.3159102045981110329 0.0036523142822058084558 0.16300211835552913531 -70.81394155502881915 342.55883603006623161 54.136608497372229465 +1.3295875953195663843 0.0059376373304325580013 0.37911239701313403927 +49.836771644804038317 353.35838600309818958 98.50291362894803626 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody2 1.1053539394491336042e-05 0.005052057603777761473 +BigBody2 1.1053539394491336042e-05 0.0035241167077997471306 2.3653347588909066005e-05 -1.1137542344405522154 0.0072840872640179358394 0.22240338257676339762 -222.71628592255183321 288.921923370197419 92.574120388092254075 +0.77691115458376436287 0.0035957008056896190389 0.42835300354068150952 +347.5342864326624408 7.965633467666743961 71.65897451799423834 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody3 1.1053539394491336042e-05 0.008820409406923653894 +BigBody3 1.1053539394491336042e-05 0.007837878259153562561 2.3653347588909066005e-05 -1.9445083759762775699 0.0070581282930688585622 0.4537120652082861083 -88.34935150484484723 251.72864441608038533 152.56079513094485378 +1.7279039125829078749 0.0045575169313139419353 0.30382866814111919584 +253.64737905496954795 267.12833283229065273 189.10836150338562334 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody4 1.1053539394491336042e-05 0.0043985248115830084884 +BigBody4 1.1053539394491336042e-05 0.0026272209025122289392 2.3653347588909066005e-05 -0.9696792907763345237 0.007528169003062028415 0.457734929544543645 -338.01823746004760096 276.8234782165463912 29.31485745878157445 +0.57918547935710384955 0.0035229707266752063877 0.19534986609695992321 +351.2858699045939943 331.00199448212464404 260.0567726858896549 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody5 1.1053539394491336042e-05 0.0046551615123747859965 +BigBody5 1.1053539394491336042e-05 0.0025768241135549523954 2.3653347588909066005e-05 -1.0262562807152380007 0.0043961574801766592144 0.28711745105524327792 -233.15202689156717497 278.38726074673456878 121.530061504206173595 +0.56807522656398412586 0.009587363144368176923 0.47985543902781624404 +208.04744805740477887 152.82398397889099328 222.69294085751820944 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody6 1.1053539394491336042e-05 0.005006625370130645683 +BigBody6 1.1053539394491336042e-05 0.0026065591161533988347 2.3653347588909066005e-05 -1.1037384455139314099 0.0020211417817972299887 0.4414365163938446246 -50.42909229312481756 248.7156337605344163 88.127412340235309784 +0.5746304734856257923 0.0025001534530765868493 0.26243591511318342668 +250.28064959229163833 58.357636473165307223 223.37515017006040807 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody7 1.1053539394491336042e-05 0.0062302636945590992105 +BigBody7 1.1053539394491336042e-05 0.005273184794616913636 2.3653347588909066005e-05 -1.3734963287646788643 0.003284048646794181063 0.29726687779842847492 -274.57090965904603763 131.66391666318924081 158.84925050402665647 +1.1625029551524634908 0.009502371963720513889 0.48925430380691231624 +282.8532270407699798 11.300947267125426521 252.28305802704849725 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody8 1.1053539394491336042e-05 0.0074737606895573080315 +BigBody8 1.1053539394491336042e-05 0.0013743091219513574427 2.3653347588909066005e-05 -1.6476321665385271764 0.0051051784849983454506 0.33643916637153092886 -53.76286556014000695 114.94625551330999258 331.9130531888574751 +0.30297409967357413763 0.006153085722489816216 0.24413190643541238245 +200.54313002395986132 95.676151272770198375 285.05850827347865106 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody9 1.1053539394491336042e-05 0.004160663550733341382 +BigBody9 1.1053539394491336042e-05 0.0014400388191713955921 2.3653347588909066005e-05 -0.9172414511359892053 0.009838312525106383821 0.18305346601295341413 -329.20200341844741843 353.39532922142575444 283.615736735883047 +0.31746457748454987025 0.0082836787198065416765 0.3458292101729332213 +109.10988633396883074 190.8784377815383948 83.709048009304211746 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody10 1.1053539394491336042e-05 0.008893323580690212565 +BigBody10 1.1053539394491336042e-05 0.006356298033710497025 2.3653347588909066005e-05 -1.9605827116533913745 0.0067739209011702531185 0.46943231065629464904 -307.18407738324981437 299.20369618829118963 229.02822238698416868 +1.4012813007352717953 0.003165171108998443561 0.20197461359785090496 +246.39263065184604784 174.9762417406147108 321.5192778374650402 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody11 1.1053539394491336042e-05 0.005284153980059674703 +BigBody11 1.1053539394491336042e-05 0.0074989071844086092277 2.3653347588909066005e-05 -1.1649211731724051777 0.003955590755475825275 0.24091863890394393799 -341.82285906978518142 354.6568377939822767 184.99977149020475053 +1.6531758513732035532 0.0022871815438197298093 0.0070104389974737779667 +354.36533178823532353 311.093700682041856 310.25114822903884715 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody12 1.1053539394491336042e-05 0.0026579413908231734066 +BigBody12 1.1053539394491336042e-05 0.0024899092426714881184 2.3653347588909066005e-05 -0.5859579820923875859 0.006632063244305479166 0.16775989049041784007 -27.20019477149550724 279.74596003486641393 327.6212083468928995 +0.54891435923540754516 0.0022069297624748274687 0.27749529254220250962 +114.30900274612675105 243.56280767632020456 21.231447431177706164 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody13 1.1053539394491336042e-05 0.0051385647895537602423 +BigBody13 1.1053539394491336042e-05 0.008449694968226453511 2.3653347588909066005e-05 -1.1328252253167268027 0.006171984666579787178 0.4427718223948383658 -107.83457765693708552 6.9738506997831350986 173.32578598950007631 +1.8627823133996121996 0.006977961045014737136 0.48710585020453461835 +143.59149899463938027 274.8740789951295369 245.2333786693829154 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody15 1.1053539394491334998e-06 0.003965920256829754137 +SmallBody15 1.1053539394491334998e-06 0.0017906229980958408579 1.0978911404624207108e-05 -1.8836420863219696109 0.00083078406930939708176 0.06635858690178686459 -323.06500151110822117 223.479512701876871 180.32306345539035419 +0.85046915256070887423 0.00392301989673250924 0.2688494315152081815 +273.16219120632564454 50.115914721428694634 165.84879211345474914 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody16 1.1053539394491334998e-06 0.0014930561726806290352 +SmallBody16 1.1053539394491334998e-06 0.0017924083782442332348 1.0978911404624207108e-05 -0.7091376684291115229 0.0074165290527274220847 0.16041991537260708034 -97.8551304528232464 194.39999141865840215 111.523194158961615585 +0.8513171315844434428 0.007552464623893690235 0.39603425460827951232 +81.47723026955590342 106.604362386465339796 332.7343601414484624 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody17 1.1053539394491334998e-06 0.003916740972575052582 +SmallBody17 1.1053539394491334998e-06 0.0029193442700291086804 1.0978911404624207108e-05 -1.8602840348236275858 0.0068953273747443368305 0.38095682124591934148 -269.789420394791307 66.45754651052922668 281.4678606370854368 +1.3865633637035013059 0.0080003725369993655 0.25584505360144360608 +138.51987810492843778 326.46995736065861138 306.6642035347931028 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody18 1.1053539394491334998e-06 0.00080932657540582023503 +SmallBody18 1.1053539394491334998e-06 0.00083210543813983783056 1.0978911404624207108e-05 -0.38439542408547117125 0.002798999239863538685 0.3941004343151243705 -124.84899501740618177 211.15221271210285181 29.144252829021478846 +0.39521440725853312914 0.00857965444976194723 0.4462197941140798596 +34.92615520153869113 191.44938410333966772 76.45598120928450214 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody19 1.1053539394491334998e-06 0.0032101876354546605832 +SmallBody19 1.1053539394491334998e-06 0.0014997120748366796664 1.0978911404624207108e-05 -1.5247014926030020288 0.0035659021143455739422 0.28726784725956733269 -305.26683999664834346 237.6590433520821648 189.34085106677034105 +0.7122989365867320455 0.0095012482862691580165 0.22540652816168355033 +25.333112836017342318 252.23481776709510882 62.533664756602398427 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody20 1.1053539394491334998e-06 0.0031334439057496713725 +SmallBody20 1.1053539394491334998e-06 0.0009222365084692850775 1.0978911404624207108e-05 -1.4882515113194170198 0.008406522751564652132 0.09743791038730081899 -182.41313627988012058 240.08302063346957311 226.69806193018246177 +0.43802280136716942316 0.004781612088389226682 0.16753228279959353486 +271.35984601722304888 68.325986632106989305 352.8125464325211169 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody21 1.1053539394491334998e-06 0.002318563101422126877 +SmallBody21 1.1053539394491334998e-06 0.0020208271999879728366 1.0978911404624207108e-05 -1.101218066629267911 2.3817568879540563625e-05 0.33838972038816461652 -150.79556741229683325 282.89580965142215518 23.878283687633977905 +0.9598062786376726496 0.003605982751920797525 0.1569186298203504859 +245.49110527946089633 57.92230959367861942 324.0334343406562425 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody22 1.1053539394491334998e-06 0.0012750969215099122365 +SmallBody22 1.1053539394491334998e-06 0.0039602711035984731796 1.0978911404624207108e-05 -0.6056163689523108573 0.0083862008640609771865 0.28205301454095604852 -168.88081394329302043 66.51585258832571412 123.579634987953141945 +1.8809589807400564077 0.007251369815475449017 0.38064872111638359264 +306.61046955850400764 181.36712055864495596 155.52039454636368987 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody23 1.1053539394491334998e-06 0.0009972153932821939899 +SmallBody23 1.1053539394491334998e-06 0.0019682776333037484235 1.0978911404624207108e-05 -0.47363455699333534277 0.008223686359273599603 0.45829335098125117964 -332.887696649695215 224.83461963531169658 56.68973281012301868 +0.9348474874834820092 0.0098458579465244763784 0.18502955450711011665 +307.05002984880451322 140.36370226483856527 85.95578402340959201 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody24 1.1053539394491334998e-06 0.0025111857965660877644 +SmallBody24 1.1053539394491334998e-06 0.0022414635714275113668 1.0978911404624207108e-05 -1.1927055882780186469 0.009445402404313582925 0.2826526105232125552 -81.65691402455405523 319.28094528076371716 285.4796954001860172 +1.0645990954627644332 0.0084373716687540078335 0.4460803209227525712 +190.65913682739514456 191.5789014687326528 246.52257502088281171 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody25 1.1053539394491334998e-06 0.0035077853428683975809 +SmallBody25 1.1053539394491334998e-06 0.0021578231801338408073 1.0978911404624207108e-05 -1.666047644359857749 0.00780508176633639382 0.3915267218229046553 -349.7700899820581526 103.620959441678763824 190.0130222471377408 +1.0248734956134282204 0.005065996629560730498 0.14626119997104242154 +240.98330390541326551 220.41241905441205517 189.21797176247514471 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody26 1.1053539394491334998e-06 0.002616178816288626711 +SmallBody26 1.1053539394491334998e-06 0.0029827362662033012827 1.0978911404624207108e-05 -1.2425727711541307841 0.0059671677576496086337 0.040591307271055199202 -249.8380759041125998 172.84395937673110666 116.2823571530794311 +1.4166718440048984284 0.0025266126922014230452 0.29821242045816626076 +133.43125921208502405 189.91995919972310958 82.880462421090214775 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody27 1.1053539394491334998e-06 0.0014624993815020629117 +SmallBody27 1.1053539394491334998e-06 0.0027039346261452628856 1.0978911404624207108e-05 -0.69462450271737596896 0.002509422369573702672 0.3563096511224873586 -326.30240761342378164 99.402500501397057064 33.00720407437324866 +1.2842530183755827 0.0046897109457686584136 0.21496551660303919729 +112.39385384106159904 215.8952064205250565 354.25306544481526316 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody28 1.1053539394491334998e-06 0.0021389824887149377763 +SmallBody28 1.1053539394491334998e-06 0.003236657978466086267 1.0978911404624207108e-05 -1.015924974969087291 0.0013605389397748734841 0.37043249792133786658 -40.362475475710553496 144.82896127558345256 267.48146434768148083 +1.5372737706385561918 0.008236569108027860103 0.41764153867254960595 +38.342904015669752482 190.88468085878071179 189.19919955010038848 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody29 1.1053539394491334998e-06 0.0026004238204672692798 +SmallBody29 1.1053539394491334998e-06 0.0014865754187823128504 1.0978911404624207108e-05 -1.2350898236218830206 0.0022389905398143704514 0.027582496424290670056 -253.62523056238714503 134.43399262017697993 87.61567399908518894 +0.7060595881845728172 0.0067468676596185196692 0.45043008242521387352 +236.91404942165763714 21.927133499684750007 28.172244007534004595 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody30 1.1053539394491334998e-06 0.0018595270433249734511 +SmallBody30 1.1053539394491334998e-06 0.0006483419933024542547 1.0978911404624207108e-05 -0.8831956198384895984 0.0093748321201790139195 0.15306614007396368571 -32.49007980188935818 312.47276611996448992 204.6772536877609241 +0.30793464967210609773 0.008069936872778109976 0.2724959287926068674 +358.70308062571780283 225.49128516561441415 199.72976304561231586 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody31 1.1053539394491334998e-06 0.0023041613246169277259 +SmallBody31 1.1053539394491334998e-06 0.002018210243469286887 1.0978911404624207108e-05 -1.0943778401115078491 0.00910193752843261282 0.4261907295499119397 -70.748502810014073816 13.655344195174929922 194.09865473575752048 +0.9585633364912231613 0.009009905756055591741 0.31963549148297148994 +27.366823661514217747 315.7263950336954963 72.26266493943053604 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody32 1.1053539394491334998e-06 0.0038244892574693115303 +SmallBody32 1.1053539394491334998e-06 0.00091189020915312874153 1.0978911404624207108e-05 -1.8164684253672074288 0.0017344662236440178474 0.00040903376803846924759 -59.8833868869903867 42.472681151302708713 233.09999986567706287 +0.43310875278133753596 0.0009226434312926524257 3.7871736713213088876e-05 +140.28680626290937994 198.6519961479969254 188.39714836428248645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody33 1.1053539394491334998e-06 0.0016063083513415578069 +SmallBody33 1.1053539394491334998e-06 0.0014458168785057989686 1.0978911404624207108e-05 -0.7629275976960977479 0.0065616077232138123043 0.12701470276996179587 -208.21085395120184103 224.54004801606461683 36.813460817990929286 +0.68670102904317897874 0.0013277259838060907152 0.29757365508293343037 +358.03703640013964105 256.17728183625638394 172.02261627369821895 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody34 1.1053539394491334998e-06 0.0025445731499428134166 +SmallBody34 1.1053539394491334998e-06 0.0014390149238434223788 1.0978911404624207108e-05 -1.2085631496757802683 0.0047985387630170017736 0.4632494968073996855 -241.05066411065314469 328.81491334014680206 131.68473045002352251 +0.68347039220693850403 0.009030013891107387461 0.23770174057769000164 +28.788093527018038031 297.1203224520854178 347.65300912374004838 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody35 1.1053539394491334998e-06 0.001047943309379953965 +SmallBody35 1.1053539394491334998e-06 0.0012625053685361255998 1.0978911404624207108e-05 -0.49772814222077332857 0.0029061071793044248278 0.12960075213423966067 -155.73347709155672192 84.35449874309856 289.45180387803600297 +0.5996359211425668079 0.00029626288583441075155 0.04027165425420448086 +92.97568107878895205 251.9501186448117096 217.31372830682673225 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody36 1.1053539394491334998e-06 0.0026029481051308368118 +SmallBody36 1.1053539394491334998e-06 0.0039596359940901068546 1.0978911404624207108e-05 -1.2362887506103832358 0.0052503463521577789855 0.39421104664957734576 -232.78768364560565374 152.4465616008079678 262.08575226692556726 +1.8806573309533967109 0.0099750025372931476475 0.30898084325688157659 +69.326066836276083905 193.05576292211591749 19.749320687752476289 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody37 1.1053539394491334998e-06 0.0030638297692394653602 +SmallBody37 1.1053539394491334998e-06 0.0027287215096217574358 1.0978911404624207108e-05 -1.4551877811277245112 0.008675136231728216435 0.45565417212897607602 -160.12532605266272867 45.356797121355818092 207.55389444211135697 +1.2960257253090312624 0.00034691773709094597677 0.029246476333898208111 +131.63716530630554757 211.34034504873113747 98.226995574387899524 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody38 1.1053539394491334998e-06 0.0012379047660899184597 +SmallBody38 1.1053539394491334998e-06 0.0033772431763425540378 1.0978911404624207108e-05 -0.5879516897118539642 0.008863952046974160268 0.004871947750551219869 -291.7929722033654798 87.72125563281429095 301.4985684783306965 +1.6040457121514952732 0.00016590685794708791919 0.38000365951495623795 +129.05280805195508265 322.10721881350264084 19.370815517117634386 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody39 1.1053539394491334998e-06 0.0020203414546642405008 +SmallBody39 1.1053539394491334998e-06 0.003896112452102458823 1.0978911404624207108e-05 -0.9595755704348436499 0.0032823959415707250516 0.36231618128498471743 -357.5523446581528333 140.63194771525292026 320.62512669923916064 +1.8504863720305302355 0.00047515625553996469277 0.45527381432526925487 +236.085725999933004 210.21818181641509682 137.83196137498174494 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody40 1.1053539394491334998e-06 0.0021619748273928422718 +SmallBody40 1.1053539394491334998e-06 0.0034576435287466804158 1.0978911404624207108e-05 -1.0268453500628844655 0.0029510979342795397654 0.17200839693427560917 -86.24968012545755869 72.78534928310089924 39.274115808944131345 +1.6422324324423847042 0.0054180737848693325334 0.3633074328433625877 +318.57279378603777786 344.63336593785294326 145.55306177607735663 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody41 1.1053539394491334998e-06 0.0024650228414904151912 +SmallBody41 1.1053539394491334998e-06 0.0027505018335353342132 1.0978911404624207108e-05 -1.1707801638170043379 0.00084383852112471572065 0.44417323723969309723 -166.30850841454468991 233.52138330631103713 349.3701749884398282 +1.3063704453539404238 0.006063652581356089241 0.26150027322263946772 +281.12447238732357846 237.65962840401968492 131.73191153344592408 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody42 1.1053539394491334998e-06 0.0011494655829696986032 +SmallBody42 1.1053539394491334998e-06 0.0018598838998215439473 1.0978911404624207108e-05 -0.54594686948928417003 0.0073746126625160376977 0.29560517114275930428 -26.677876967304161582 2.9383852082894490465 235.62759414701335459 +0.88336511137442252917 0.00021332665852522470374 0.49452520848202163872 +128.64442400907418573 305.79449185728265093 272.11975853427526317 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody43 1.1053539394491334998e-06 0.003264557522307860051 +SmallBody43 1.1053539394491334998e-06 0.0038787297493011350567 1.0978911404624207108e-05 -1.550524857792678457 0.006855910395679264309 0.052845126544926068757 -148.49370087394166262 245.6507471059472607 49.154351554646346756 +1.8422303334694387633 0.0017691531576543284825 0.42914608465831793893 +90.33060632601211637 298.92072716920284847 155.60340000412523409 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody44 1.1053539394491334998e-06 0.0022017288538633278715 +SmallBody44 1.1053539394491334998e-06 0.0040205050284578732577 1.0978911404624207108e-05 -1.04572680821414421 0.0076940762442233648355 0.18695834780422621035 -186.24536246289451924 209.5758013639246542 201.39838185512508062 +1.9095675125667193051 0.0030801669204009039967 0.15953646867409598809 +209.08679797383152277 320.77246942730693036 198.45127398866443968 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody45 1.1053539394491334998e-06 0.004177140733055960152 +SmallBody45 1.1053539394491334998e-06 0.0010656801230813612627 1.0978911404624207108e-05 -1.9839627566197359787 0.00081961714887728747466 0.2135493543574670805 -101.192900958177077086 93.105553169601165564 161.53073494194276805 +0.50615236827718168566 0.0024434709549745249092 0.17777835590219637218 +184.54384211440816443 235.74454741983433337 193.59681355350048193 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody46 1.1053539394491334998e-06 0.0035270692540920479557 +SmallBody46 1.1053539394491334998e-06 0.0012848279975201385693 1.0978911404624207108e-05 -1.6752066754087575617 0.0051909332532851107725 0.4097943495140765613 -262.29384437991438972 291.42131387222036665 172.62099421016796441 +0.61023821284503521056 0.003987143732529693438 0.001365418664104667279 +343.87442064134455677 332.11360135906141977 211.12253475805300695 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody47 1.1053539394491334998e-06 0.0031824870893333604256 +SmallBody47 1.1053539394491334998e-06 0.001586855972994529395 1.0978911404624207108e-05 -1.5115449208342359722 0.008474861491332898178 0.23696328042397618585 -303.88198790793740045 243.16694917270854148 162.96827879419998908 +0.7536885519864870986 0.0068545946072486622566 0.47875353005964926822 +268.6816988781197324 118.55357784026483614 28.10015400805450625 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody48 1.1053539394491334998e-06 0.0041919001326894561326 +SmallBody48 1.1053539394491334998e-06 0.0022330250179423978959 1.0978911404624207108e-05 -1.9909728386481431173 0.0031161195922749587717 0.26294671201488906132 -307.4797827097971208 259.2394012562882608 164.19654679575444334 +1.0605911443535949168 0.0022050845762832060014 0.17006705206962935417 +60.87397436452053512 63.78368846451786567 329.77954502722860752 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody49 1.1053539394491334998e-06 0.001029626898232924747 +SmallBody49 1.1053539394491334998e-06 0.0028707184422754971512 1.0978911404624207108e-05 -0.4890286322274733921 0.0016789299820979420447 0.25125269592494270388 -347.9448828508308793 68.2032792277530433 113.95671636992425135 +1.363468180314170386 0.005942764201040959607 0.37173945785205231296 +29.57191054050963075 100.41312169995346437 72.46300737457485752 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody50 1.1053539394491334998e-06 0.0038377798107606164424 +SmallBody50 1.1053539394491334998e-06 0.0013589924201308696665 1.0978911404624207108e-05 -1.8227808683586907978 0.007278564707354728998 0.4021962803889706506 -158.00800895167876092 62.120145774820663576 338.3524603761762819 +0.6454631338445848687 0.003687156220124645535 0.47108622959286672316 +214.35473118646626745 160.7608961783459165 180.69048975870487084 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody51 1.1053539394491334998e-06 0.0025752915599265981195 +SmallBody51 1.1053539394491334998e-06 0.0011543345402911547252 1.0978911404624207108e-05 -1.2231530773907171028 0.008180773825256060228 0.49500640013808755446 -215.58419051019205881 238.11054770931033886 62.812965789585732068 +0.5482594154643087858 0.0058273827372787257925 0.47155791843593697354 +114.383916488962867675 222.32926951962554085 161.00772323788964968 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody52 1.1053539394491334998e-06 0.0041729107831517003945 +SmallBody52 1.1053539394491334998e-06 0.003625757501063538497 1.0978911404624207108e-05 -1.981953711770945592 0.0048392368899002205854 0.3439364072598658506 -140.49484117857338106 18.628480746247863209 292.76153894725842974 +1.7220793615402316679 0.0067582117965574381446 0.473313138490892793 +19.264507554706526093 306.34719154839370958 350.14073181346304864 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody53 1.1053539394491334998e-06 0.0018463049351976143146 +SmallBody53 1.1053539394491334998e-06 0.00071857240099922700467 1.0978911404624207108e-05 -0.876915685365348585 0.008414142640979114726 0.4865439996116162069 -25.84749855806933283 147.59552825474432325 351.5883167468276156 +0.34129108225528154152 0.0007615613901554241444 0.06859795886339431492 +197.15917765141804807 158.25617293553941067 27.519089489610109922 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody54 1.1053539394491334998e-06 0.003956761570869228732 +SmallBody54 1.1053539394491334998e-06 0.0011716620583187394159 1.0978911404624207108e-05 -1.8792921031620857253 0.002984509339591897778 0.14521761596090265733 -244.65011115033149736 159.52306947113194724 247.8509476040788968 +0.5564892436238774165 0.0045826378199643122424 0.24195292989213706969 +239.72284529330184455 132.21214770785758219 305.41153045395969912 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody55 1.1053539394491334998e-06 0.0022375767585976735108 +SmallBody55 1.1053539394491334998e-06 0.0024615255028710602107 1.0978911404624207108e-05 -1.0627530260125956918 0.009221146035204222727 0.2774484485756325003 -54.974773353537798926 192.71826493446795325 115.03720651882959203 +1.1691190779184184034 0.0068687080516668854585 0.10666014510077265198 +275.99872699417227295 169.73889419589309568 248.90290020737802479 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody56 1.1053539394491334998e-06 0.003569113589554936672 +SmallBody56 1.1053539394491334998e-06 0.0017321756455436248891 1.0978911404624207108e-05 -1.6951759321362349642 0.00029328152838550283158 0.12854405399432916601 -123.759610708168693805 28.642969205068872895 59.9453124910687265 +0.8227091659820937597 0.00843319774766918516 0.22884853768953594688 +304.30606168405762446 25.93584871510447698 4.848633998416511659 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody57 1.1053539394491334998e-06 0.003838073039724368385 +SmallBody57 1.1053539394491334998e-06 0.0023910402872564365214 1.0978911404624207108e-05 -1.822920139544514706 0.002427257726946776585 0.3478287098983082748 -175.60627375154865604 261.21004876719126742 102.5765639749250937 +1.1356416224989502872 0.0007665109352532950343 0.1419214571706507999 +240.43439932382597135 298.9062599161678122 58.015459116669731543 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody58 1.1053539394491334998e-06 0.0037821584480800916802 +SmallBody58 1.1053539394491334998e-06 0.0019350973663502399923 1.0978911404624207108e-05 -1.7963631058070641533 0.0021913818779026750933 0.2277714432057212357 -127.64574510289172338 286.48389918379018582 351.4955198015076121 +0.9190882832580831163 0.0064336379372377438743 0.21851798864023092017 +154.82954330295854106 356.93189278963092192 194.69117686773361697 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody59 1.1053539394491334998e-06 0.0032090764608138491496 +SmallBody59 1.1053539394491334998e-06 0.0037561789778854402514 1.0978911404624207108e-05 -1.5241737322893442741 0.0051795655611637280227 0.37004071826046752713 -220.09047138550891987 85.25328121777833701 155.14257439202265232 +1.7840239713136967215 0.006148371953439728775 0.25679832782220995968 +294.159436987109018 13.667963580601236728 109.71022344892682554 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody60 1.1053539394491334998e-06 0.001251952383047329137 +SmallBody60 1.1053539394491334998e-06 0.0013611814389692063118 1.0978911404624207108e-05 -0.5946237054862358873 0.008964827144955677535 0.11220341486493962124 -355.46676640997060304 293.65836711181913188 135.58653747694026492 +0.64650282394035563094 0.00210355505260503969 0.05531076625953512682 +1.2066583847071798985 19.662168359747298041 42.088447685333754578 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody61 1.1053539394491334998e-06 0.0034286826689865096638 +SmallBody61 1.1053539394491334998e-06 0.0036842862982039128794 1.0978911404624207108e-05 -1.6284772657300985443 0.0055865188113676115048 0.009295182349638275721 -281.14377556523862722 311.47981280814713045 17.970788876634557596 +1.749878030806350182 0.0058877624633116307576 0.25927135724151134655 +106.54193156547684396 309.62159619247529463 198.30883233401769417 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody62 1.1053539394491334998e-06 0.0024123456722281855242 +SmallBody62 1.1053539394491334998e-06 0.002352457282817648111 1.0978911404624207108e-05 -1.1457607669091200986 0.0059942816043978908516 0.20544766408447995287 -331.65266199253352397 67.908967452709333656 331.3349063308830864 +1.1173163496061098154 0.008722730655786280901 0.45532722119645963055 +7.669255186594696738 328.27376432936614492 283.993162943758648 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody63 1.1053539394491334998e-06 0.00070926620825757897553 +SmallBody63 1.1053539394491334998e-06 0.0041865789707916299196 1.0978911404624207108e-05 -0.33687103969860016095 0.0071611781196035881325 0.25924949443614342393 -330.94730198197396476 94.214661441576183165 61.868231242313015628 +1.98844551488725374 0.0071526190521102421538 0.44868034424472752475 +202.41141669675778303 86.25518321577487768 248.93971582039534951 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody64 1.1053539394491334998e-06 0.0037496693687355927613 +SmallBody64 1.1053539394491334998e-06 0.0038156990777683893855 1.0978911404624207108e-05 -1.780932186061826572 0.009928144041807798401 0.48322239522126919642 -29.863534255917500104 193.6213362397997173 261.59011579676081283 +1.8122934668812227255 0.0046607119651452099535 0.18959887351040988213 +103.753167455451190904 251.98883746225675395 79.68459651017317924 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody65 1.1053539394491334998e-06 0.0012736281298308463319 +SmallBody65 1.1053539394491334998e-06 0.0020349210108043651083 1.0978911404624207108e-05 -0.6049187558780279028 0.0015091166639728593492 0.21853541766376521904 -343.27239511068603406 327.27856875910737244 218.61156947625917724 +0.9665002345145459195 0.009888737196005765312 0.031496742813291678242 +331.12496419413429294 92.43097071039983348 51.154372128609594483 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody66 1.1053539394491334998e-06 0.0038448787389546260301 +SmallBody66 1.1053539394491334998e-06 0.0007519970150145614117 1.0978911404624207108e-05 -1.8261525548899533167 0.0051995677384110115804 0.31065813156730226474 -333.06925492853127935 306.6948175209735723 318.41411463851756025 +0.35716634085886211913 0.009812992174250710631 0.19330764764073876671 +294.8736717732407442 59.943598965498772202 37.415260394651753018 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody67 1.1053539394491334998e-06 0.0008288368759312896654 +SmallBody67 1.1053539394491334998e-06 0.0017422896962019374534 1.0978911404624207108e-05 -0.39366198034647403858 0.0046883091977471943665 0.0132479346083514970545 -261.21488538826179138 126.85930642388336764 249.97227049855567316 +0.82751290641292607475 0.004483101404917193278 0.42444650766319869106 +284.08737987214851728 20.66202219747616553 244.94157667031407755 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody68 1.1053539394491334998e-06 0.0027031517150100666755 +SmallBody68 1.1053539394491334998e-06 0.0009990898270396054195 1.0978911404624207108e-05 -1.2838811691530558345 0.0049121456620970583087 0.07255473068979628737 -69.26560015966929029 305.8875197413007072 134.63575408635963981 +0.47452483266325140576 0.0024462445739371319574 0.2497100598204521904 +38.56617039404348901 71.18453251440668339 355.36891313147475557 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody69 1.1053539394491334998e-06 0.0036973458793854774706 +SmallBody69 1.1053539394491334998e-06 0.0033996536056487195092 1.0978911404624207108e-05 -1.756080771948452135 0.0009601252277977257105 0.1695493446614180777 -134.78798723652712965 157.09044357175469031 86.40744012700496057 +1.6146897052426172348 0.0015219920533292442388 0.17922372150567844606 +12.159534634854507473 344.35229701092345067 10.8997608537475052515 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody70 1.1053539394491334998e-06 0.0024226359340959145194 +SmallBody70 1.1053539394491334998e-06 0.0018534897741513436611 1.0978911404624207108e-05 -1.1506482001095099665 0.005674234583021546194 0.062224739795935124498 -118.63742114361265578 189.83674534297023229 261.05238102013146317 +0.88032817582412259405 0.008005928497239050978 0.32284168761100751066 +272.37506606187326952 58.34741166490307762 222.9991401165076752 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody71 1.1053539394491334998e-06 0.00093424490574192736807 +SmallBody71 1.1053539394491334998e-06 0.0031561172624764302416 1.0978911404624207108e-05 -0.44372627522120611232 0.0030334359757953079616 0.37391057552349776794 -283.89092391956961592 259.95137404118332825 346.16472723124888944 +1.4990203836625171085 0.005123403698736885524 0.0565805471353558187 +222.61764027553329015 15.581020765914104231 49.313482304184191207 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody72 1.1053539394491334998e-06 0.00402765939824776902 +SmallBody72 1.1053539394491334998e-06 0.0024433392566886891639 1.0978911404624207108e-05 -1.9129655314790134923 0.0070964021998901963273 0.10810520726298006311 -30.878255376390765008 42.882658122567953285 200.72893583876941648 +1.1604813907026119146 0.007303514048424671924 0.13882682659903528011 +140.85830088218762057 70.182013379350649984 354.88230752734301632 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody73 1.1053539394491334998e-06 0.0033292669766640747785 +SmallBody73 1.1053539394491334998e-06 0.002840560638411957164 1.0978911404624207108e-05 -1.5812590742455658877 0.0075533749864811006516 0.034121039683396359177 -12.444814241754089679 179.89151615168688636 24.585029489733646102 +1.3491445164708089077 0.005720642229715540601 0.14981819009776592422 +352.3487865630142437 211.34103074075423478 192.0694520334756703 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody74 1.1053539394491334998e-06 0.003240825693085024002 +SmallBody74 1.1053539394491334998e-06 0.0031444797715256892693 1.0978911404624207108e-05 -1.5392532563951069058 0.007790252254965330213 0.13892538626639078236 -141.39967666810218816 332.89551723271819128 160.49050452598243055 +1.4934930744090704202 0.0031276427636128647028 0.3214666381100500514 +175.07919233828184247 35.481995834318553307 260.6360034601860889 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody75 1.1053539394491334998e-06 0.0034714994099128829643 +SmallBody75 1.1053539394491334998e-06 0.003459255021998138457 1.0978911404624207108e-05 -1.6488133819364620969 0.0020113095285093731714 0.2250088606724180984 -121.56584291487612859 261.9173061622969385 204.9625551145382758 +1.6429978226453376688 0.009295252819063579489 0.49102576894325750123 +345.02654860489548128 345.52660132514841962 310.74654593341955433 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody76 1.1053539394491334998e-06 0.0028822325406752456014 +SmallBody76 1.1053539394491334998e-06 0.0022873662080603565067 1.0978911404624207108e-05 -1.3689368833962529681 0.0066549127060297960656 0.48400569827392897482 -323.0385985342796289 300.57860189094759562 326.29641894563383175 +1.0864008798243816045 0.008384640338494970396 0.27205559161590919803 +253.52651755208796658 290.75194124657178918 159.72113624314474123 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody77 1.1053539394491334998e-06 0.002359251110792053277 +SmallBody77 1.1053539394491334998e-06 0.0012272542532064478338 1.0978911404624207108e-05 -1.1205431266139891378 0.00187266540976202653 0.2899909357581830216 -297.41659583594747573 84.110180689059419024 193.95555654830641856 +0.5828931527244621824 0.0019247710050318911704 0.35217059511512804892 +128.04935681999808139 128.25988178793110706 38.454554612780782463 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody78 1.1053539394491334998e-06 0.0020392119957311834948 +SmallBody78 1.1053539394491334998e-06 0.0026543878147870777827 1.0978911404624207108e-05 -0.9685382683822236771 0.005796291689317471449 0.18032954869133310805 -210.61736569565172772 339.83162500243662407 286.56658480991978877 +1.2607204072605178169 0.0096473280615230992685 0.42213107167069263692 +216.82569867369645067 235.68868231250542067 139.71833578625705741 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody79 1.1053539394491334998e-06 0.0012902589705479611569 +SmallBody79 1.1053539394491334998e-06 0.0009780107056720420075 1.0978911404624207108e-05 -0.61281769218460813153 0.0051275432937355307217 0.26015155293290603833 -252.79427964190173839 243.58645523218484641 94.5849664301508426 +0.46451315376419793912 0.008467739880838711167 0.09984937286937312084 +25.346273704217509248 167.68809971291636884 218.82435230989008801 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody80 1.1053539394491334998e-06 0.002569631786099053519 +SmallBody80 1.1053539394491334998e-06 0.0015585452504019390022 1.0978911404624207108e-05 -1.2204649274809282744 0.009774416274180727782 0.18879104486517794825 -297.42495064236146618 167.18624634577579968 262.85679182442186175 +0.7402421725546883824 0.00081815707488439471263 0.027275888583668805865 +78.168111726190360855 118.103475439356216725 271.37806527923407884 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody81 1.1053539394491334998e-06 0.0012458382627007142979 +SmallBody81 1.1053539394491334998e-06 0.0036228037421964175176 1.0978911404624207108e-05 -0.5917197604596338145 0.0059329588692788991916 0.12473018336564589692 -304.73001514884600738 226.65939866595209651 16.465072799066366116 +1.7206764527184079672 0.0020388197417552213556 0.2779771865718832502 +188.21340057803570289 56.037973252133966184 346.32195813540357676 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody82 1.1053539394491334998e-06 0.0022377586318457351852 +SmallBody82 1.1053539394491334998e-06 0.0028566024176281324616 1.0978911404624207108e-05 -1.0628394080077543382 0.006038988883799283232 0.35429140209491377655 -134.2063281554704588 28.068140033037273895 102.45187320676993181 +1.3567636738199855273 0.0064602626792048187254 0.49422002485399357807 +305.31013000174260696 158.96334607327713684 9.2952725232621382645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody83 1.1053539394491334998e-06 0.0035347112204193382299 +SmallBody83 1.1053539394491334998e-06 0.0030364083037735251215 1.0978911404624207108e-05 -1.6788362817710009711 0.005393162353996002606 0.40916585652483161706 -321.51399261729824275 85.275218183474947864 13.380081092205875493 +1.4421637607048936047 0.003164481042823339297 0.14375208160874736185 +280.5711764965416819 198.45145802447700589 122.38992208970854847 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody84 1.1053539394491334998e-06 0.0013173890271765144052 +SmallBody84 1.1053539394491334998e-06 0.0018847712591592793446 1.0978911404624207108e-05 -0.62570330590360201395 0.0021190727883600257546 0.063937686380848790524 -358.49903571823466564 261.8252697425855331 329.52545912534344552 +0.89518554003413797204 0.008354232084976069214 0.32514509699956206656 +72.82349432517753485 24.921837702544884507 116.15812089477469726 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody85 1.1053539394491334998e-06 0.0026742519704062899805 +SmallBody85 1.1053539394491334998e-06 0.0032273771675824087141 1.0978911404624207108e-05 -1.2701550295197931995 0.003093091606578978088 0.164766088603622185 -65.416173843145656974 99.08915094286399494 221.51994734982011437 +1.5328657833761838436 0.0061896190689282827233 0.34623152187383665623 +352.86954858625608722 142.80960466527201902 269.9476990871480666 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody86 1.1053539394491334998e-06 0.0015944882125721168941 +SmallBody86 1.1053539394491334998e-06 0.0040634164063012070394 1.0978911404624207108e-05 -0.757313538559648336 0.0017118846522998633179 0.09482340810856743074 -180.97094221219410315 340.1787807327712585 241.56066273233966513 +1.9299485772511566495 0.0031536402555862341236 0.3950675392513491313 +139.96088035745842149 181.76039716652948641 296.43536960581485573 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody87 1.1053539394491334998e-06 0.0040002027295242097347 +SmallBody87 1.1053539394491334998e-06 0.0037177872852294766954 1.0978911404624207108e-05 -1.8999247910181251697 0.009304028507485592389 0.21361492145653071528 -245.92756844748836897 0.50288013040264978315 12.128504315564425653 +1.7657895633153577464 0.008302463231769427812 0.008650241018383963976 +326.76492167094011165 248.04800625477449216 143.12774627005794059 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody88 1.1053539394491334998e-06 0.0032832760165585669895 +SmallBody88 1.1053539394491334998e-06 0.0029394228179550476069 1.0978911404624207108e-05 -1.5594153400212324989 0.00037893859811106712617 0.32653593805682129547 -311.4097123200511419 338.66774555916367717 147.39784950675996811 +1.3960998131165724967 0.009864572886023466672 0.16006323209123973772 +161.58563417885309832 300.60320078078825645 271.84316795198083128 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody89 1.1053539394491334998e-06 0.0040775826436979433924 +SmallBody89 1.1053539394491334998e-06 0.0021301474391629660392 1.0978911404624207108e-05 -1.9366769326484614133 0.0062074179873753800377 0.45176793352172295304 -67.54036593010991396 8.225425679737066176 175.74568379456468392 +1.0117287052276131565 0.0027700618814613365247 0.06101905242943728158 +90.188877701137116105 0.14553788257543054385 151.58365796171364082 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody90 1.1053539394491334998e-06 0.0026437150028610220674 +SmallBody90 1.1053539394491334998e-06 0.0030529567836454087592 1.0978911404624207108e-05 -1.2556512791839518073 0.0020446823287433558113 0.27311501221477701984 -148.59595005915571164 126.34646048684935238 23.641531776338045034 +1.4500235791411446584 0.0051415674121213740186 0.035783766155871643555 +19.607471849850583112 137.4149541556064662 295.3619168323355666 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody91 1.1053539394491334998e-06 0.003416497150947439354 +SmallBody91 1.1053539394491334998e-06 0.00064875962033329815164 1.0978911404624207108e-05 -1.6226896671059203303 0.0044050688871926290888 0.17024510243746560079 -250.9509925834948092 299.29960623843152234 285.30964167173664237 +0.30813300460633064048 0.0068435724329741955824 0.25415063445939684028 +113.703628424172109135 315.29312159144251382 30.016315228589590447 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody92 1.1053539394491334998e-06 0.002401362336633064 +SmallBody92 1.1053539394491334998e-06 0.0031774066214905104554 1.0978911404624207108e-05 -1.1405441534032028095 0.0072032600981295734355 0.1568913846604371165 -23.861181509211903062 121.431863197952594646 243.68934136993257766 +1.5091319164298944155 0.008761774007885180307 0.3729577687009506537 +86.71738414973454212 203.68279937784481604 178.04985347510225324 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody93 1.1053539394491334998e-06 0.0010510350719675327177 +SmallBody93 1.1053539394491334998e-06 0.0013602341599096074799 1.0978911404624207108e-05 -0.4991965968930148767 0.009078045669567351081 0.14766305581499117316 -224.96635719118671659 47.37255544667560514 355.94205723897465532 +0.64605290700088136013 0.0028866588611838571443 0.123745735802174794404 +354.80506939301045577 301.26726001571074676 20.783162938658389152 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody94 1.1053539394491334998e-06 0.0012593951334772171438 +SmallBody94 1.1053539394491334998e-06 0.004066691095601753041 1.0978911404624207108e-05 -0.5981586928384361457 0.0018442473258474324001 0.48443807652551473808 -340.1585757515797468 80.290634330682280506 76.0201822161276084 +1.9315039142692205232 0.0022152965415877636304 0.48054874999633290233 +133.09052109598391667 191.53766059844949154 81.83111779972121269 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody95 1.1053539394491334998e-06 0.0016132609485169218172 +SmallBody95 1.1053539394491334998e-06 0.0021660555110931399977 1.0978911404624207108e-05 -0.7662297832673294895 0.008855545801541802806 0.44350051768946618935 -253.4211815280780229 310.82659001777676622 195.55695808992521734 +1.0287834998644624918 0.0048806432832589697127 0.40599080267573434133 +284.29323859414336084 206.50267632987038269 32.181201191434148257 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody96 1.1053539394491334998e-06 0.0039273174105778759005 +SmallBody96 1.1053539394491334998e-06 0.0012256412334758639172 1.0978911404624207108e-05 -1.8653073894186134041 0.0041961814167760982247 0.25521367294838631645 -12.882291052690050037 198.21528606358461388 215.72559762339224676 +0.58212703750937100367 0.006815394001574134712 0.07111194936362880137 +356.8708968589809274 272.2075288690623438 105.15655667544666585 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody97 1.1053539394491334998e-06 0.0037651995006149393317 +SmallBody97 1.1053539394491334998e-06 0.003625916465309114207 1.0978911404624207108e-05 -1.7883083328624815866 0.0010078752183982652747 0.02577853096094878671 -71.11397056481432344 200.83927602827213832 264.96685257874128183 +1.7221548627414147159 0.003762997164236574557 0.24815013062447038861 +147.28961407645965664 218.03440726170023822 1.8591648258108683933 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody98 1.1053539394491334998e-06 0.001185620800859618772 +SmallBody98 1.1053539394491334998e-06 0.0008081494427977152585 1.0978911404624207108e-05 -0.5631190478608267824 0.003059639106271775516 0.34118161769295923813 -146.64875137025669005 225.66678455336588627 95.93283454161746704 +0.383836336565244296 0.0040007873825194332357 0.08120615205831077654 +124.07811978970127598 166.61704692849599496 199.01689105952982572 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody99 1.1053539394491334998e-06 0.0033015903140253701294 +SmallBody99 1.1053539394491334998e-06 0.003021340601443785476 1.0978911404624207108e-05 -1.5681138461070474044 0.0047690418770962791917 0.104294320166698484265 -54.223539465643227686 315.33007220613569643 268.01705063763682801 +1.4350072481140032643 0.004057562854776786479 0.16489395982405652408 +92.709269128307440155 214.9999281263282569 57.464246578171120916 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody100 1.1053539394491334998e-06 0.0027949972967621498463 +SmallBody100 1.1053539394491334998e-06 0.0009475797808058692764 1.0978911404624207108e-05 -1.3275038826791325519 0.0074182924067507927113 0.1398377407057855848 -154.44256669268099813 24.608962888651074508 93.007569133222744995 +0.450059769154431355 0.0037395517851033176736 0.45479598440039348262 +26.317730599306557338 23.931789830584875745 143.91842879072783035 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody101 1.1053539394491334998e-06 0.003992235866447200529 +SmallBody101 1.1053539394491334998e-06 0.0026909717843638427215 1.0978911404624207108e-05 -1.8961408726294546323 0.009496479632133238494 0.21468181838894312419 -9.376804482463917623 101.881442440233584534 295.18997529788072143 +1.2780962243009246215 0.0035555600141111065246 0.3257354511083095927 +192.7416849222909434 164.91900290185728295 333.67905845802670228 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody102 1.1053539394491334998e-06 0.0010080293063265012185 +SmallBody102 1.1053539394491334998e-06 0.0041810760162440572295 1.0978911404624207108e-05 -0.47877070205147276294 0.0007815655215245819994 0.13118381398226147683 -155.82338848749665772 309.05685925931902602 189.74619427179570152 +1.9858318474119498465 0.007254756249778001459 0.41576480580086311312 +105.64094867962499791 318.98199615126588924 22.47872975241655169 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody103 1.1053539394491334998e-06 0.0035828809889099322783 +SmallBody103 1.1053539394491334998e-06 0.0007996094815216030466 1.0978911404624207108e-05 -1.7017148565635762392 0.0078012604149201173268 0.30551670213562293066 -35.505130876376483684 120.78189364849589538 97.791574975481793786 +0.37978022110312864568 0.0047214882095757814556 0.01341383505492060868 +103.99287880664391537 101.414451660559109314 179.41217948023177087 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody104 1.1053539394491334998e-06 0.0010339926893446762294 +SmallBody104 1.1053539394491334998e-06 0.0041316235921579503004 1.0978911404624207108e-05 -0.49110219582573877428 0.005988483180863304542 0.24370575264438143481 -131.03466363087656532 40.866170770556671243 13.883550784796074851 +1.962344066204342985 0.001297636502650572005 0.4471175237115694867 +84.38714843221671913 15.1728657372036792594 321.65176691418702148 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody105 1.1053539394491334998e-06 0.00076653787489025262456 +SmallBody105 1.1053539394491334998e-06 0.0006468297403521850707 1.0978911404624207108e-05 -0.36407262587203004234 0.008636617535491592987 0.2092320469700378327 -234.74128999562717013 3.2198734071443135818 286.18883606922651097 +0.3072163943573689715 0.002069552547494897185 0.06067182285957134491 +14.403233133169720759 137.80158957237256345 145.80670189311638296 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody106 1.1053539394491334998e-06 0.003569486662021974079 +SmallBody106 1.1053539394491334998e-06 0.0015291286852166491375 1.0978911404624207108e-05 -1.6953531255628928598 0.0087632182443418363965 0.46446558295746426248 -93.673096737565316516 284.09048681624364008 3.3921253231597292555 +0.7262705653034777775 0.0036886731925131191132 0.307053270062749184 +259.23562206716201217 48.774316930331721665 261.170258806677964 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody107 1.1053539394491334998e-06 0.0020655336029156220287 +SmallBody107 1.1053539394491334998e-06 0.0023265433330934118486 1.0978911404624207108e-05 -0.98103990327688905815 0.0008080663836135304522 0.26398591508525298677 -215.1705210123592451 13.491047695534055251 293.9000446053132123 +1.1050083345270516055 0.0021619185594817648226 0.32733237728798875166 +10.142047630130853975 212.86498766789461001 117.3267626732119453 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody108 1.1053539394491334998e-06 0.00090433309374782441307 +SmallBody108 1.1053539394491334998e-06 0.0011665670476203062816 1.0978911404624207108e-05 -0.42951944696912175425 0.005297739638715663786 0.27005745103297529308 -10.740103884040387072 237.22605466326461965 158.33780673462703703 +0.55406933198664720663 0.0049526344715693608467 0.2827810313805791953 +155.34731745098386568 309.39073596933502586 84.99503647176723575 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody109 1.1053539394491334998e-06 0.0019991073350657544734 +SmallBody109 1.1053539394491334998e-06 0.003262805107546985368 1.0978911404624207108e-05 -0.949490274021527636 0.0034695504087138276036 0.47598267696206147948 -198.07373469054741122 220.41034279657506545 113.817295977641350646 +1.54969253591465006 0.0014634230002845761195 0.34160518035174364249 +161.22273174154071285 313.478568111725167 211.56542262438233593 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody110 1.1053539394491334998e-06 0.002251483284792258904 +SmallBody110 1.1053539394491334998e-06 0.0015382966919372130521 1.0978911404624207108e-05 -1.0693580297237896826 0.004035515964109191722 0.038937608095047426815 -280.28181613799023353 335.51906774754201024 103.42152042735344253 +0.73062497542475979273 0.0018662111938524982881 0.47978521949566910187 +42.599778446102199325 323.68686590233079414 260.06072539586818948 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody111 1.1053539394491334998e-06 0.0021119591611738492167 +SmallBody111 1.1053539394491334998e-06 0.0030189705886898708342 1.0978911404624207108e-05 -1.0030900529907145202 0.0047801409420897148297 0.36554603793164414105 -238.97153389107484145 336.94275740825520415 354.4088285517665895 +1.4338815936683029229 0.007854986736292183039 0.034614304523278571768 +220.97166421899538591 100.270100143954621785 69.89976223012565981 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody112 1.1053539394491334998e-06 0.003750697645708955891 +SmallBody112 1.1053539394491334998e-06 0.0012520764056687804838 1.0978911404624207108e-05 -1.7814205735376178463 0.008216991237457019204 0.37632371665336056266 -89.342006467283596294 125.82022150851074116 319.9007496683395857 +0.5946826109140541661 0.004228441446919988314 0.48169411754613156162 +211.7494079431474745 247.34135423949993537 271.44979516436404765 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody113 1.1053539394491334998e-06 0.0027159022397352150873 +SmallBody113 1.1053539394491334998e-06 0.0020341208345655149776 1.0978911404624207108e-05 -1.2899371217289095082 0.0027102260511703557544 0.49570586801303845315 -105.723856149928764125 214.67075718408133866 198.22402209155814035 +0.96612018510801100923 0.0038251263510292701948 0.10211507788692092413 +94.997718911079232385 72.20047856021278676 177.12490005041385643 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody114 1.1053539394491334998e-06 0.00250098952292614985 +SmallBody114 1.1053539394491334998e-06 0.0036771750591194379922 1.0978911404624207108e-05 -1.1878627954561591373 0.0055269486194088170497 0.28582563402598959446 -198.15652198877376122 50.825175292553865347 38.458878742928611416 +1.746500497129936269 0.0058508507173112688643 0.041718288224785682328 +343.583602423471973 2.3923430163143555305 21.049002232435121584 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody115 1.1053539394491334998e-06 0.0031140745262582451406 +SmallBody115 1.1053539394491334998e-06 0.0037508323771434353573 1.0978911404624207108e-05 -1.4790518865077075805 0.006118278412732922056 0.3086911846887249733 -209.00522198253077022 209.0447667763183972 302.3997529416504335 +1.7814845651924926528 0.0070428576311776583396 0.42896385937108449937 +225.1566819158494468 49.358015725800711948 130.80343322774197645 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody116 1.1053539394491334998e-06 0.002627832958283806611 +SmallBody116 1.1053539394491334998e-06 0.0020312318442109675703 1.0978911404624207108e-05 -1.2481079889397856952 0.0053051121161105732615 0.3299746252761422416 -133.87850351417839079 250.47308287578673003 301.9918008789680357 +0.96474803855276136666 0.0010046447322486307206 0.11664706284615694587 +77.674155996469721686 249.84767415263414136 55.65928972394180363 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody117 1.1053539394491334998e-06 0.0031597121301605122381 +SmallBody117 1.1053539394491334998e-06 0.000974112043281249845 1.0978911404624207108e-05 -1.5007277916853674071 0.007573092642192360939 0.13642247448670236087 -88.025380854098912664 120.144181413174720774 318.87396349165152287 +0.46266145628061638995 0.0063666039556358813845 0.44153244695566923328 +293.91178927167914026 5.1655049063911606666 314.89223144009667976 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody118 1.1053539394491334998e-06 0.00093094972396938369424 +SmallBody118 1.1053539394491334998e-06 0.003556444135703642334 1.0978911404624207108e-05 -0.44216120515754175901 0.00886881958774052466 0.41844036187083433198 -20.163186214228115745 337.03851824104918933 156.84154111341879911 +1.6891584847496128319 0.00046239007278428225943 0.4111588368317175557 +274.4195616566905187 310.5383527188005246 290.2995654268337944 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody119 1.1053539394491334998e-06 0.0037723189778824764127 +SmallBody119 1.1053539394491334998e-06 0.0026110924430802409018 1.0978911404624207108e-05 -1.7916897793226445046 0.001098164024120308396 0.30931507299879934525 -332.77979531452609763 167.04470469364389373 355.07028692488006527 +1.2401569619543475476 0.0055636321901455041555 0.124411556495122033184 +80.591271036595884425 93.531937081230040576 91.02581530568424739 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody120 1.1053539394491334998e-06 0.0037653266656142048815 +SmallBody120 1.1053539394491334998e-06 0.0022292651491043821605 1.0978911404624207108e-05 -1.7883687307850346659 0.006371715457058402428 0.082470207424121366735 -235.80874892467014092 254.5021145150402333 43.003779741307269546 +1.058805367856919144 0.008856431115937380902 0.22985551372836227069 +103.40731004504169732 278.42753807868166405 161.92298625486941432 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody121 1.1053539394491334998e-06 0.0020643614208088825627 +SmallBody121 1.1053539394491334998e-06 0.0023714005649848728144 1.0978911404624207108e-05 -0.98048316703256199744 0.0022536360259029640692 0.2657233991482298996 -201.9224168131107433 35.510966049397936217 269.0479325637503507 +1.1263135964574069181 0.00017054783801896290373 0.4551410040723882222 +105.3440152261756424 219.93423944623813782 353.84921407221094114 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody122 1.1053539394491334998e-06 0.0012493819934868600675 +SmallBody122 1.1053539394491334998e-06 0.0017365893716236742182 1.0978911404624207108e-05 -0.59340288064841817395 0.0024430042115868256733 0.3060539089368434218 -4.141252475781271869 288.81343355757388736 245.01300887770881332 +0.8248054966351270334 0.0055371318107404737113 0.18749094029727253474 +305.60396836315686642 61.663571188350786656 195.18191086891513919 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody123 1.1053539394491334998e-06 0.001358949686478997836 +SmallBody123 1.1053539394491334998e-06 0.0017727724852365723844 1.0978911404624207108e-05 -0.645442837192117036 0.00680655598933405364 0.37332907634182399548 -142.76890287293809934 240.01228369288145359 199.05279648688636485 +0.84199092427907729075 0.0043065589255132140714 0.2675084388459675333 +38.470555172757549656 257.86123937948008233 183.30306588402953594 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody124 1.1053539394491334998e-06 0.001372467998698668969 +SmallBody124 1.1053539394491334998e-06 0.00094409454073867135766 1.0978911404624207108e-05 -0.6518634559095917158 0.004859331047906131039 0.10133584662204236926 -223.88750283359757987 260.86881228241998087 140.45156031392056661 +0.4484044295494042376 0.005010474032756404364 0.15668152843086047277 +147.71326304493319981 322.57992193070856501 156.73534881298201071 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody125 1.1053539394491334998e-06 0.003145893994423096287 +SmallBody125 1.1053539394491334998e-06 0.0032754931475123096045 1.0978911404624207108e-05 -1.4941647696516584531 0.008393567717643860351 0.1951188989893116732 -200.22793560214802255 102.89583384607908556 47.7458985350726266 +1.5557188109085715588 0.007473354630028248083 0.34840638866081469205 +52.632633320882533212 35.15462414717750761 124.31246142990700321 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody126 1.1053539394491334998e-06 0.00085991395374624328017 +SmallBody126 1.1053539394491334998e-06 0.0025963640847439910755 1.0978911404624207108e-05 -0.40842225990361852306 0.009925563889294575573 0.07832748266555661365 -53.17607097807006511 332.93429864214544978 200.16735258876744297 +1.2331616232112614373 0.008238562530627425301 0.42399484169233947473 +63.706532055494825784 25.70985870870202561 86.201329802784854905 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody127 1.1053539394491334998e-06 0.0020912214038404363845 +SmallBody127 1.1053539394491334998e-06 0.0038812889913659328306 1.0978911404624207108e-05 -0.9932405073721715105 0.0020658612770351634721 0.17106687565709588483 -208.88869138521144464 120.983163700799536855 49.37968505744140657 +1.8434458637247526092 0.004680365985859572496 0.27780307484521127304 +44.297859819313217145 319.2557910969932209 56.73815808854173781 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody128 1.1053539394491334998e-06 0.0037117773832440165345 +SmallBody128 1.1053539394491334998e-06 0.0028165808881701460246 1.0978911404624207108e-05 -1.7629351175420249209 0.0032481182990924764055 0.24616989531905253408 -147.11975344892698558 136.13717547777136474 281.30407881784151414 +1.3377551632186404085 0.003719109121861046384 0.3140927561272534585 +43.246668183993357104 193.2453748363514876 49.380547237145876238 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody129 1.1053539394491334998e-06 0.0024032375471735127028 +SmallBody129 1.1053539394491334998e-06 0.001979252152895991799 1.0978911404624207108e-05 -1.1414347980117576231 0.0041502652786197550758 0.08454980233453107674 -229.99908908688681208 44.5578445821387632 67.002250085263554524 +0.9400599137660112792 0.0030979164694139040524 0.12701535332402813516 +84.99503342739515688 226.20476970399542438 171.66651562275484366 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody130 1.1053539394491334998e-06 0.001767467028496686351 +SmallBody130 1.1053539394491334998e-06 0.0017130867917206263939 1.0978911404624207108e-05 -0.83947105979486336125 0.00016077274532254272246 0.39130968768011842318 -335.08715148259341277 228.63942269662831563 359.0911028463757475 +0.8136427788355728996 0.0073092069346394495516 0.085814698783936105286 +212.90921320180737553 9.763998354941886504 196.01088884421542957 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody131 1.1053539394491334998e-06 0.0026430902300121048054 +SmallBody131 1.1053539394491334998e-06 0.0022358482630314104035 1.0978911404624207108e-05 -1.2553545388673543748 0.0025769333010502780239 0.12589489115239127504 -255.52745736528126486 212.70128728982925281 244.94843935268181667 +1.061932064726491376 0.0019027594188349805475 0.44476175906320358777 +157.18551589009481972 298.71764639949674347 262.90690529651982388 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody132 1.1053539394491334998e-06 0.0032882512617878725745 +SmallBody132 1.1053539394491334998e-06 0.0030586636594471469293 1.0978911404624207108e-05 -1.5617783681954762187 0.004948006327108393776 0.34078014567581271788 -176.22761230380203301 5.155392124877287152 89.585872570524358594 +1.4527341004692158055 0.0062927146114276216737 0.4423521059459766258 +302.02420770009632633 148.5803921871369937 246.85928425279297471 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody133 1.1053539394491334998e-06 0.0012831312069338747407 +SmallBody133 1.1053539394491334998e-06 0.0026878291059565319547 1.0978911404624207108e-05 -0.60943231006510478753 0.0061437650448469506223 0.075499238771577492635 -178.83721349122171773 298.9789356869800372 25.027632544203186171 +1.2766035867972855833 0.007637980856047291156 0.4059059184123336994 +161.50116546845228527 77.850685558381286455 264.8286603906785217 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody134 1.1053539394491334998e-06 0.0026382347801195862704 +SmallBody134 1.1053539394491334998e-06 0.0027943947444222948776 1.0978911404624207108e-05 -1.2530484083419548558 0.0086514879756291844515 0.41341953068728581888 -229.0983678706646458 261.02130278752747472 166.5931723152342272 +1.3272176961516530813 0.004701184643604254705 0.36952456793924481904 +47.269844566301287614 4.9163514335424984836 355.22962273370120556 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody135 1.1053539394491334998e-06 0.0035699538420565724963 +SmallBody135 1.1053539394491334998e-06 0.0031563510355617611948 1.0978911404624207108e-05 -1.6955750160493552325 0.0011432190566918820976 0.06560289215472481228 -151.50679626869310823 58.08436171306480844 271.85287368639353645 +1.4991314158552144775 0.00015436034423323640417 0.1917380856368509634 +172.68410025626315019 292.7689313206145698 242.35314712175855334 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody136 1.1053539394491334998e-06 0.0012462497121113039665 +SmallBody136 1.1053539394491334998e-06 0.00079256183150516454785 1.0978911404624207108e-05 -0.5919151812890981468 0.0094315073904481742245 0.39860349008798984238 -132.68495221114258698 220.62094792819442546 239.06532584793680485 +0.3764328895077013737 0.005331669234970675547 0.037038119773405431268 +137.29879269110134032 276.60344003919925626 318.224575012218736 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody137 1.1053539394491334998e-06 0.0040900465170436520375 +SmallBody137 1.1053539394491334998e-06 0.0024729521662073515708 1.0978911404624207108e-05 -1.942596738109030774 0.00085894138299823284775 0.3540861393320458017 -84.657989801255880025 285.9942938027552941 43.06626227900954973 +1.1745462530940675716 0.0025436198446592396885 0.19726208266038036676 +200.11200833959856027 328.50318859698677443 25.032545226553306605 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody138 1.1053539394491334998e-06 0.0026321784367130867263 +SmallBody138 1.1053539394491334998e-06 0.003141353993759099369 1.0978911404624207108e-05 -1.25017190488476726 0.001035518339557566338 0.22991215033825823655 -291.55028201024350665 284.70513762060340923 312.21379878133922148 +1.4920084639851722841 0.008895169829864444169 0.40742482505034210982 +125.08982552404354749 13.6810870370561410425 125.89960225777221581 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody139 1.1053539394491334998e-06 0.0018316989583566004745 +SmallBody139 1.1053539394491334998e-06 0.0024697651374539426903 1.0978911404624207108e-05 -0.8699784725854904366 0.00040252767386671385727 0.15574484799388010892 -8.5800417750262134575 129.27886023199005194 305.03511084637750628 +1.1730325510775176934 0.009714048229482108096 0.4495197610396466925 +276.1486670185516914 249.96765269618634875 38.405693580368897244 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody140 1.1053539394491334998e-06 0.0027152985394420051477 +SmallBody140 1.1053539394491334998e-06 0.0009277239963550222287 1.0978911404624207108e-05 -1.2896503899728040121 0.00542740198905945076 0.45310649794265428492 -341.809792373788639 113.82747539427856509 247.91497334638845018 +0.4406291228412222427 0.0011498177626615313941 0.24676970418810539876 +215.50167505295402748 65.33626690753465027 206.42806807478683595 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody141 1.1053539394491334998e-06 0.0036602812116765727579 +SmallBody141 1.1053539394491334998e-06 0.0033835772813540165789 1.0978911404624207108e-05 -1.7384766439048284781 0.0032945029965048724767 0.17661293162929425637 -324.49650636688886607 14.8923843223844354355 291.25435855870654223 +1.6070541404622327164 0.004719441710564133141 0.4984568824987272717 +47.33899341199827404 82.97698800601314417 283.4966539407437267 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody142 1.1053539394491334998e-06 0.0038094090876577454437 +SmallBody142 1.1053539394491334998e-06 0.0029520691321285031499 1.0978911404624207108e-05 -1.8093059912569828818 0.008653814027203068915 0.39558567978807523957 -152.01949489017039241 245.78383843322686175 192.08442194631814459 +1.4021062701483164581 3.6003378605201640536e-05 0.4090674261173213866 +121.20788516521034239 247.02993176949499343 145.1606631047432927 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody143 1.1053539394491334998e-06 0.0032982900468595283284 +SmallBody143 1.1053539394491334998e-06 0.0021549829461906115147 1.0978911404624207108e-05 -1.5665463606995986279 0.006009483925970214059 0.38831677230782329913 -254.46309759358049973 35.7461201936248969 296.39612354554310514 +1.0235245062631623814 0.007773773829953017217 0.17819203426573304583 +133.79316693748211264 145.67071914831808499 74.72284817886242081 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody144 1.1053539394491334998e-06 0.0030634256646320016972 +SmallBody144 1.1053539394491334998e-06 0.0026211917416770771317 1.0978911404624207108e-05 -1.4549958487648424477 0.0042019944515554741304 0.103702341899099270695 -28.581569847499295633 307.20222382027014874 306.62611247928236935 +1.2449536957884614896 0.0009156041969351491616 0.26838610331624801475 +191.78935301636164468 61.319754558406870615 198.83867506070333775 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody145 1.1053539394491334998e-06 0.0040865138550243042622 +SmallBody145 1.1053539394491334998e-06 0.002779232403688257159 1.0978911404624207108e-05 -1.9409188751099109016 0.0010500141747999292442 0.15765471770149258601 -43.99728845349395101 12.378161652724681829 225.46205282476034881 +1.3200162343762673611 0.0011825034198607953326 0.3931650954771686024 +199.15447694467161455 110.263445447020046686 357.83521607737361592 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody146 1.1053539394491334998e-06 0.002109241822064289481 +SmallBody146 1.1053539394491334998e-06 0.0007386121576737557171 1.0978911404624207108e-05 -1.0017994334174236126 0.0065873200112985001373 0.44933340912200309125 -255.35329387166856918 259.26783636729476257 307.03948715962786764 +0.35080910748707688773 0.0027024900833699395247 0.19622296338412259509 +292.6436334273752209 93.80156934406009839 28.132779645617151942 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody147 1.1053539394491334998e-06 0.0020702331248985193483 +SmallBody147 1.1053539394491334998e-06 0.00087410562446381314443 1.0978911404624207108e-05 -0.9832719747305034286 0.006643360427983963437 0.38337657172513023296 -338.87403685252746754 212.09324525218809754 90.86376618933867633 +0.41516269503788583162 0.008753675790044105481 0.049200587066592693652 +245.22266454023861115 133.22745192774976886 358.34006313094175766 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody148 1.1053539394491334998e-06 0.0016976701006517697416 +SmallBody148 1.1053539394491334998e-06 0.0040583585328557611443 1.0978911404624207108e-05 -0.80632051155621620175 0.002373623883236905107 0.4938933358938096263 -228.9834606765335252 97.13181363461184503 82.37470004717647498 +1.9275463042168652361 0.008863374200234029263 0.11472348585362174278 +68.51868890765923936 343.0156047967958557 250.37058077253891497 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody149 1.1053539394491334998e-06 0.0031278599433041361999 +SmallBody149 1.1053539394491334998e-06 0.0028701976421156316045 1.0978911404624207108e-05 -1.4855993685657300496 0.0022376413513541305346 0.24129161476336913328 -4.5963354373523879204 193.07560146926255129 67.33203953027762623 +1.3632208225671262891 0.00037100362980518777727 0.40857805997329038616 +138.99534285941138023 75.25892901304128202 102.39451884516589075 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody150 1.1053539394491334998e-06 0.0006418232920025271226 +SmallBody150 1.1053539394491334998e-06 0.0028371368040875375277 1.0978911404624207108e-05 -0.3048385460387668111 0.0066988423982709457277 0.117546375927761515 -285.06880360673568475 149.40827372648249138 144.57986758582379139 +1.3475183419608791624 0.00923347856029827288 0.111868912647413332184 +163.972662313269268 324.1674645569764266 326.5948943827923472 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody151 1.1053539394491334998e-06 0.0009829595240749040168 +SmallBody151 1.1053539394491334998e-06 0.002298777012902104625 1.0978911404624207108e-05 -0.46686363032891009528 0.008499308628501150986 0.34053342820077781017 -209.39838432125981171 82.769614540913750034 86.68430849061675758 +1.0918205228950430552 0.0038962200559046968225 0.07185178854072693522 +95.25129914312677215 288.83172427646081815 113.743637781598437186 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody152 1.1053539394491334998e-06 0.0023496093753247095933 +SmallBody152 1.1053539394491334998e-06 0.0026756500371529266427 1.0978911404624207108e-05 -1.1159637156487294263 0.0053380903741851813 0.37830349306169885892 -350.2143556697128588 198.60142248144447308 138.80606990835988768 +1.2708190512834474095 0.0031796818189825425474 0.34148938686865598635 +240.33583276715017973 159.13444408059913826 16.850108154309943131 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody153 1.1053539394491334998e-06 0.0032584963875012445194 +SmallBody153 1.1053539394491334998e-06 0.0030031099519741718352 1.0978911404624207108e-05 -1.5476460786258632307 0.008427187777420793585 0.19769962836446186571 -272.7555605558899856 109.36660148695808914 88.2209819361593901 +1.4263484712405121169 0.008772238975162893054 0.2928674262574444409 +332.10498285516734995 307.4942771576799032 198.04833839322409972 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody154 1.1053539394491334998e-06 0.0012963852453560645777 +SmallBody154 1.1053539394491334998e-06 0.0037055221237351476841 1.0978911404624207108e-05 -0.61572741005930442526 0.00083496920154526362706 0.3536340306533050648 -166.14122344102605666 312.85186907946501833 237.33755609293859834 +1.7599641374645813574 0.0075196173991873881473 0.31916489509013851178 +47.261748044667832858 81.10596844478185119 286.61303054015036196 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb new file mode 100644 index 000000000..405947b38 --- /dev/null +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -0,0 +1,2435 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/home/daminton/git/swiftest/examples/symba_mars_disk'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import swiftest\n", + "import os\n", + "import xarray as xr\n", + "import numpy as np\n", + "os.getcwd()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.in\n", + "\n", + "Creating Dataset\n", + "Successfully converted 2 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "sim = swiftest.Simulation(param_file=\"param.in\")\n", + "sim.bin2xr()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'origin_type' (id: 1533)>\n",
    +       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    +       "       ..., 'Disruption', 'Disruption', 'Disruption'], dtype='<U18')\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1526 1527 1528 1529 1530 1531 1532
    " + ], + "text/plain": [ + "\n", + "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", + " ..., 'Disruption', 'Disruption', 'Disruption'], dtype='\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'xhx' (time: 2)>\n",
    +       "array([      0.      , 2742814.426863])\n",
    +       "Coordinates:\n",
    +       "  * time     (time) float64 0.0 6e+03\n",
    +       "    id       int32 1510
    " + ], + "text/plain": [ + "\n", + "array([ 0. , 2742814.426863])\n", + "Coordinates:\n", + " * time (time) float64 0.0 6e+03\n", + " id int32 1510" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.ds.sel(id=1510)['xhx']" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3.38950000e+06 7.07643092e+03 4.84234399e+03 ... 9.96920997e+36\n", + " 9.96920997e+36 9.96920997e+36]\n", + "[3.38950000e+06 7.07643092e+03 4.84234399e+03 ... 9.96920997e+36\n", + " 9.96920997e+36 9.96920997e+36]\n" + ] + } + ], + "source": [ + "for n in sim.ds['radius']:\n", + " print(n.values)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "swiftestOOF", + "language": "python", + "name": "swiftestoof" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/python/swiftest/swiftest/simulation_class.py b/python/swiftest/swiftest/simulation_class.py index e28d31587..b2736c96d 100644 --- a/python/swiftest/swiftest/simulation_class.py +++ b/python/swiftest/swiftest/simulation_class.py @@ -24,8 +24,8 @@ def __init__(self, codename="Swiftest", param_file=""): 'IN_FORM': "EL", 'ISTEP_OUT': "1", 'ISTEP_DUMP': "1", - 'BIN_OUT': "bin.dat", - 'OUT_TYPE': 'REAL8', + 'BIN_OUT': "bin.nc", + 'OUT_TYPE': 'NETCDF_DOUBLE', 'OUT_FORM': "XVEL", 'OUT_STAT': "REPLACE", 'CHK_RMAX': "-1.0", From fdbf1a909dc7dd75c4bc5677566bece65c9a6494 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 28 Aug 2021 16:34:22 -0400 Subject: [PATCH 253/315] Updated naming scheme in the Chambers run --- examples/symba_chambers_2013/init_cond.py | 4 +- .../symba_chambers_2013/pl_chambers_2013.in | 924 +++++++++--------- 2 files changed, 464 insertions(+), 464 deletions(-) diff --git a/examples/symba_chambers_2013/init_cond.py b/examples/symba_chambers_2013/init_cond.py index cf9baa290..a3225caf4 100755 --- a/examples/symba_chambers_2013/init_cond.py +++ b/examples/symba_chambers_2013/init_cond.py @@ -85,10 +85,10 @@ nameb = [] for i in idb: - nameb.append(f"BigBody{i-10:0.4g}") + nameb.append(f"BigBody{i-9:0.4g}") names = [] for i in ids: - names.append(f"SmallBody{i-10:0.4g}") + names.append(f"SmallBody{i-9:0.4g}") # Populate the simulation object with the two types of bodies diff --git a/examples/symba_chambers_2013/pl_chambers_2013.in b/examples/symba_chambers_2013/pl_chambers_2013.in index bae3d0a91..d694bd90c 100644 --- a/examples/symba_chambers_2013/pl_chambers_2013.in +++ b/examples/symba_chambers_2013/pl_chambers_2013.in @@ -11,927 +11,927 @@ Saturn 0.011285899820091272997 0.43766379465266665196 113.59526896860690215 335.6868332999574136 225.48455056285450837 0.0 0.0 0.22000000000000000111 441.93109321068034775 378.52929516502754512 5135.9113502360652523 -BigBody0 1.1053539394491336042e-05 0.0063075596499805015168 +BigBody1 1.1053539394491336042e-05 0.0074243341280248171816 2.3653347588909066005e-05 -1.3905366526104205871 0.0051551549664398807135 0.3092444066234905642 -228.58509335446049704 334.67460737226542733 216.69401173037385888 +1.6367358057845475816 0.0034166548941629258651 0.21879260968354363737 +21.041926702013121542 6.966209570135037943 353.89940691003835127 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody1 1.1053539394491336042e-05 0.0060310909831888406354 +BigBody2 1.1053539394491336042e-05 0.008701441270991232489 2.3653347588909066005e-05 -1.3295875953195663843 0.0059376373304325580013 0.37911239701313403927 -49.836771644804038317 353.35838600309818958 98.50291362894803626 +1.9182811878580832143 0.001983570125226424754 0.47699514975225187907 +244.73038369249368884 169.64703978001028872 228.74294167258540256 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody2 1.1053539394491336042e-05 0.0035241167077997471306 +BigBody3 1.1053539394491336042e-05 0.0028274735843444539963 2.3653347588909066005e-05 -0.77691115458376436287 0.0035957008056896190389 0.42835300354068150952 -347.5342864326624408 7.965633467666743961 71.65897451799423834 +0.62333229830507885794 0.005233546206515517739 0.39568260035041247225 +325.88888897134881972 153.91710344621517947 52.819812549308984728 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody3 1.1053539394491336042e-05 0.007837878259153562561 +BigBody4 1.1053539394491336042e-05 0.0014161638656182578314 2.3653347588909066005e-05 -1.7279039125829078749 0.0045575169313139419353 0.30382866814111919584 -253.64737905496954795 267.12833283229065273 189.10836150338562334 +0.31220121101046316436 0.005603861843408211238 0.092818768166148979404 +163.68602221786181872 248.54181736106085054 263.40784379446773755 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody4 1.1053539394491336042e-05 0.0026272209025122289392 +BigBody5 1.1053539394491336042e-05 0.0058031850839421550937 2.3653347588909066005e-05 -0.57918547935710384955 0.0035229707266752063877 0.19534986609695992321 -351.2858699045939943 331.00199448212464404 260.0567726858896549 +1.2793444705875420819 0.008208680503293538239 0.023138084495924027273 +209.58319396393750367 119.52910880653347192 314.50121467342484038 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody5 1.1053539394491336042e-05 0.0025768241135549523954 +BigBody6 1.1053539394491336042e-05 0.0057067919277962843923 2.3653347588909066005e-05 -0.56807522656398412586 0.009587363144368176923 0.47985543902781624404 -208.04744805740477887 152.82398397889099328 222.69294085751820944 +1.2580940624868359734 0.0065171590670703941767 0.39352865077091525592 +195.49136805916123194 57.04938439216533652 248.43605393468556031 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody6 1.1053539394491336042e-05 0.0026065591161533988347 +BigBody7 1.1053539394491336042e-05 0.008909342916648943839 2.3653347588909066005e-05 -0.5746304734856257923 0.0025001534530765868493 0.26243591511318342668 -250.28064959229163833 58.357636473165307223 223.37515017006040807 +1.9641142634796455724 0.003827092787364123807 0.11322153568015552727 +193.30489858580236273 167.70088129510983777 72.21547320900106115 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody7 1.1053539394491336042e-05 0.005273184794616913636 +BigBody8 1.1053539394491336042e-05 0.0022763633549123734702 2.3653347588909066005e-05 -1.1625029551524634908 0.009502371963720513889 0.48925430380691231624 -282.8532270407699798 11.300947267125426521 252.28305802704849725 +0.5018369790089363125 0.0042844948172547350426 0.168943107634771994 +258.4718846019206353 276.50078927222079983 175.04487030031225459 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody8 1.1053539394491336042e-05 0.0013743091219513574427 +BigBody9 1.1053539394491336042e-05 0.0068303803402822211564 2.3653347588909066005e-05 -0.30297409967357413763 0.006153085722489816216 0.24413190643541238245 -200.54313002395986132 95.676151272770198375 285.05850827347865106 +1.5057953854564698482 0.0025088080634212738332 0.38815973385703372855 +342.40213238162482412 38.531939970843424703 190.77674887921716618 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody9 1.1053539394491336042e-05 0.0014400388191713955921 +BigBody10 1.1053539394491336042e-05 0.008388115886865277387 2.3653347588909066005e-05 -0.31746457748454987025 0.0082836787198065416765 0.3458292101729332213 -109.10988633396883074 190.8784377815383948 83.709048009304211746 +1.8492068619701422794 0.007194433386484905789 0.40063701449417626899 +144.04024254110095171 333.32725808913193077 77.12020350544085545 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody10 1.1053539394491336042e-05 0.006356298033710497025 +BigBody11 1.1053539394491336042e-05 0.008617248786048845239 2.3653347588909066005e-05 -1.4012813007352717953 0.003165171108998443561 0.20197461359785090496 -246.39263065184604784 174.9762417406147108 321.5192778374650402 +1.8997204856716041199 0.008611198402818386749 0.35916982827818139112 +335.510100580524238 94.3216870275639252 312.88201783559190972 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody11 1.1053539394491336042e-05 0.0074989071844086092277 +BigBody12 1.1053539394491336042e-05 0.0035499236688427180967 2.3653347588909066005e-05 -1.6531758513732035532 0.0022871815438197298093 0.0070104389974737779667 -354.36533178823532353 311.093700682041856 310.25114822903884715 +0.7826004428686323955 0.0012885916956714516066 0.072998416848503777654 +289.698333799458851 51.867186524003187742 193.41829977210343827 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody12 1.1053539394491336042e-05 0.0024899092426714881184 +BigBody13 1.1053539394491336042e-05 0.0026082150511211890182 2.3653347588909066005e-05 -0.54891435923540754516 0.0022069297624748274687 0.27749529254220250962 -114.30900274612675105 243.56280767632020456 21.231447431177706164 +0.5749955335714322935 0.00070756832643816154876 0.49519708693510428033 +359.6794452009551719 319.60134668069326835 154.49113681541822984 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -BigBody13 1.1053539394491336042e-05 0.008449694968226453511 +BigBody14 1.1053539394491336042e-05 0.008562476338591311624 2.3653347588909066005e-05 -1.8627823133996121996 0.006977961045014737136 0.48710585020453461835 -143.59149899463938027 274.8740789951295369 245.2333786693829154 +1.8876455945933858782 0.004021006848009781899 0.087891473786938734136 +274.70971881893206046 154.36910259029556869 302.11280885249925632 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody15 1.1053539394491334998e-06 0.0017906229980958408579 +SmallBody16 1.1053539394491334998e-06 0.0017351564481596240887 1.0978911404624207108e-05 -0.85046915256070887423 0.00392301989673250924 0.2688494315152081815 -273.16219120632564454 50.115914721428694634 165.84879211345474914 +0.8241249194251554222 0.0006487878307126593129 0.37479217715625012808 +39.79358057252731129 88.04695214526078928 350.63033380622476898 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody16 1.1053539394491334998e-06 0.0017924083782442332348 +SmallBody17 1.1053539394491334998e-06 0.003438767681582787084 1.0978911404624207108e-05 -0.8513171315844434428 0.007552464623893690235 0.39603425460827951232 -81.47723026955590342 106.604362386465339796 332.7343601414484624 +1.633267214326447947 0.00023758016472743781152 0.34167698710799682127 +268.24635832820735004 169.94300166889169645 84.47584522462051382 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody17 1.1053539394491334998e-06 0.0029193442700291086804 +SmallBody18 1.1053539394491334998e-06 0.0036234919106881456764 1.0978911404624207108e-05 -1.3865633637035013059 0.0080003725369993655 0.25584505360144360608 -138.51987810492843778 326.46995736065861138 306.6642035347931028 +1.7210033032473028847 0.0047742023208973216955 0.11586561032367881374 +122.12903874666852744 83.63949330516025782 89.43732781404645493 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody18 1.1053539394491334998e-06 0.00083210543813983783056 +SmallBody19 1.1053539394491334998e-06 0.001134755447805816562 1.0978911404624207108e-05 -0.39521440725853312914 0.00857965444976194723 0.4462197941140798596 -34.92615520153869113 191.44938410333966772 76.45598120928450214 +0.5389601859717687571 0.005953573515783903633 0.38301846117291393767 +198.6812014627746521 82.06633747367067144 222.26356386390955322 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody19 1.1053539394491334998e-06 0.0014997120748366796664 +SmallBody20 1.1053539394491334998e-06 0.0031159203507303477127 1.0978911404624207108e-05 -0.7122989365867320455 0.0095012482862691580165 0.22540652816168355033 -25.333112836017342318 252.23481776709510882 62.533664756602398427 +1.4799285739937022566 0.0035619477965435409651 0.059098198702242421554 +310.44503242432062962 355.89233767122334484 296.79189250544027345 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody20 1.1053539394491334998e-06 0.0009222365084692850775 +SmallBody21 1.1053539394491334998e-06 0.0023535027362334387583 1.0978911404624207108e-05 -0.43802280136716942316 0.004781612088389226682 0.16753228279959353486 -271.35984601722304888 68.325986632106989305 352.8125464325211169 +1.1178128951556278725 0.0011223516138449806528 0.022315933398055154413 +297.56102596926723436 2.4935445365223785075 290.66289100541200696 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody21 1.1053539394491334998e-06 0.0020208271999879728366 +SmallBody22 1.1053539394491334998e-06 0.0035656742897341810272 1.0978911404624207108e-05 -0.9598062786376726496 0.003605982751920797525 0.1569186298203504859 -245.49110527946089633 57.92230959367861942 324.0334343406562425 +1.693542412178616452 0.0040932943971498294417 0.3948665983305137961 +339.093558804669442 259.81990416297884394 148.95186208865482058 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody22 1.1053539394491334998e-06 0.0039602711035984731796 +SmallBody23 1.1053539394491334998e-06 0.0022611863814377749927 1.0978911404624207108e-05 -1.8809589807400564077 0.007251369815475449017 0.38064872111638359264 -306.61046955850400764 181.36712055864495596 155.52039454636368987 +1.0739665846178696462 0.0012840171705301973125 0.19476937266504218416 +297.386703142769818 151.91509859305122632 250.19456183898023482 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody23 1.1053539394491334998e-06 0.0019682776333037484235 +SmallBody24 1.1053539394491334998e-06 0.0023953714758779178613 1.0978911404624207108e-05 -0.9348474874834820092 0.0098458579465244763784 0.18502955450711011665 -307.05002984880451322 140.36370226483856527 85.95578402340959201 +1.1376987513978915612 0.008515802940667225804 0.039736464816959027324 +130.21317576651230752 70.45013837961363379 221.87886384170494125 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody24 1.1053539394491334998e-06 0.0022414635714275113668 +SmallBody25 1.1053539394491334998e-06 0.0034659284677154082642 1.0978911404624207108e-05 -1.0645990954627644332 0.0084373716687540078335 0.4460803209227525712 -190.65913682739514456 191.5789014687326528 246.52257502088281171 +1.6461674232423710862 0.004605036788321378513 0.31874779879437620256 +148.5866490040527026 149.30091714058067964 99.46202642603512345 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody25 1.1053539394491334998e-06 0.0021578231801338408073 +SmallBody26 1.1053539394491334998e-06 0.0028314912741128235144 1.0978911404624207108e-05 -1.0248734956134282204 0.005065996629560730498 0.14626119997104242154 -240.98330390541326551 220.41241905441205517 189.21797176247514471 +1.344836957270491018 0.004004225412797391033 0.31408792179868039174 +329.42526329938533536 218.74973858770289326 31.598359508124481465 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody26 1.1053539394491334998e-06 0.0029827362662033012827 +SmallBody27 1.1053539394491334998e-06 0.0035657719433803714185 1.0978911404624207108e-05 -1.4166718440048984284 0.0025266126922014230452 0.29821242045816626076 -133.43125921208502405 189.91995919972310958 82.880462421090214775 +1.6935887934737345883 0.003625823925211191321 0.011103313823782212655 +4.3173658011361659703 265.51362444050306522 306.2440101174317988 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody27 1.1053539394491334998e-06 0.0027039346261452628856 +SmallBody28 1.1053539394491334998e-06 0.003297916350976027023 1.0978911404624207108e-05 -1.2842530183755827 0.0046897109457686584136 0.21496551660303919729 -112.39385384106159904 215.8952064205250565 354.25306544481526316 +1.5663688711768488648 0.0046622077804485666935 0.33919175649180494103 +306.97367190207165777 18.174144285673445864 354.14468289351236763 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody28 1.1053539394491334998e-06 0.003236657978466086267 +SmallBody29 1.1053539394491334998e-06 0.001696857290253097992 1.0978911404624207108e-05 -1.5372737706385561918 0.008236569108027860103 0.41764153867254960595 -38.342904015669752482 190.88468085878071179 189.19919955010038848 +0.80593446146544556186 0.0089081506786704706125 0.043157412254051730205 +277.850373401511888 123.10579243426050766 93.01488646634489044 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody29 1.1053539394491334998e-06 0.0014865754187823128504 +SmallBody30 1.1053539394491334998e-06 0.0021446696510771600803 1.0978911404624207108e-05 -0.7060595881845728172 0.0067468676596185196692 0.45043008242521387352 -236.91404942165763714 21.927133499684750007 28.172244007534004595 +1.0186261332585864192 0.0029210959858598228855 0.19801062855300394228 +6.458452465982582602 319.89801940984625617 228.20899095996719552 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody30 1.1053539394491334998e-06 0.0006483419933024542547 +SmallBody31 1.1053539394491334998e-06 0.0027547362011134702279 1.0978911404624207108e-05 -0.30793464967210609773 0.008069936872778109976 0.2724959287926068674 -358.70308062571780283 225.49128516561441415 199.72976304561231586 +1.3083815884084177839 0.0075545048562947990367 0.33085846113471090169 +294.3939768734622362 308.9097722907977186 289.8210233062081329 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody31 1.1053539394491334998e-06 0.002018210243469286887 +SmallBody32 1.1053539394491334998e-06 0.0031842594376846704832 1.0978911404624207108e-05 -0.9585633364912231613 0.009009905756055591741 0.31963549148297148994 -27.366823661514217747 315.7263950336954963 72.26266493943053604 +1.5123867103130843592 0.001686012349810540531 0.37228230250032695592 +18.8797547571544726 125.872553835984504644 208.9251761899009523 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody32 1.1053539394491334998e-06 0.00091189020915312874153 +SmallBody33 1.1053539394491334998e-06 0.002247708832979587486 1.0978911404624207108e-05 -0.43310875278133753596 0.0009226434312926524257 3.7871736713213088876e-05 -140.28680626290937994 198.6519961479969254 188.39714836428248645 +1.0675653269393858835 0.0011230027938351151619 0.35557286841218888052 +243.67111775541096108 37.96034701396045108 88.987820375667197936 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody33 1.1053539394491334998e-06 0.0014458168785057989686 +SmallBody34 1.1053539394491334998e-06 0.0013121511866584325592 1.0978911404624207108e-05 -0.68670102904317897874 0.0013277259838060907152 0.29757365508293343037 -358.03703640013964105 256.17728183625638394 172.02261627369821895 +0.6232155562257534198 0.0011780431424190363453 0.35960708946175562462 +322.02262254571718358 332.4949291895190413 152.81190365726115488 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody34 1.1053539394491334998e-06 0.0014390149238434223788 +SmallBody35 1.1053539394491334998e-06 0.0014967817348828841872 1.0978911404624207108e-05 -0.68347039220693850403 0.009030013891107387461 0.23770174057769000164 -28.788093527018038031 297.1203224520854178 347.65300912374004838 +0.71090715074467070167 0.008832462815755786831 0.10952157655510541545 +160.71141170112289842 114.18934134683311754 277.6929815128169139 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody35 1.1053539394491334998e-06 0.0012625053685361255998 +SmallBody36 1.1053539394491334998e-06 0.0030299295774483482833 1.0978911404624207108e-05 -0.5996359211425668079 0.00029626288583441075155 0.04027165425420448086 -92.97568107878895205 251.9501186448117096 217.31372830682673225 +1.4390866434706655053 0.0043491365873236367476 0.2172391413785259573 +107.424624730892062985 140.64076212096063045 65.37328530182462316 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody36 1.1053539394491334998e-06 0.0039596359940901068546 +SmallBody37 1.1053539394491334998e-06 0.0038420224219524271426 1.0978911404624207108e-05 -1.8806573309533967109 0.0099750025372931476475 0.30898084325688157659 -69.326066836276083905 193.05576292211591749 19.749320687752476289 +1.8247959267762252633 0.0069595061027765839703 0.2031458227831892116 +60.30069261316840823 186.29407945868973684 96.04805330164970201 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody37 1.1053539394491334998e-06 0.0027287215096217574358 +SmallBody38 1.1053539394491334998e-06 0.0027991657617720382088 1.0978911404624207108e-05 -1.2960257253090312624 0.00034691773709094597677 0.029246476333898208111 -131.63716530630554757 211.34034504873113747 98.226995574387899524 +1.3294837248392123996 0.0021307104738356487383 0.27150507932869094585 +286.3783517588109362 129.48053796312069608 119.90656313407949085 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody38 1.1053539394491334998e-06 0.0033772431763425540378 +SmallBody39 1.1053539394491334998e-06 0.0039543751049730075407 1.0978911404624207108e-05 -1.6040457121514952732 0.00016590685794708791919 0.38000365951495623795 -129.05280805195508265 322.10721881350264084 19.370815517117634386 +1.8781586341792051442 0.0023844012437418417825 0.27326985201083692223 +114.968426872986213993 57.98285683500146348 113.5343972847980325 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody39 1.1053539394491334998e-06 0.003896112452102458823 +SmallBody40 1.1053539394491334998e-06 0.0020036090161593164158 1.0978911404624207108e-05 -1.8504863720305302355 0.00047515625553996469277 0.45527381432526925487 -236.085725999933004 210.21818181641509682 137.83196137498174494 +0.9516283795349782526 0.0022186742704323092652 0.04628224671674396884 +32.299509227827073232 317.61854491863351768 268.59769558425449532 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody40 1.1053539394491334998e-06 0.0034576435287466804158 +SmallBody41 1.1053539394491334998e-06 0.0028799283662589175008 1.0978911404624207108e-05 -1.6422324324423847042 0.0054180737848693325334 0.3633074328433625877 -318.57279378603777786 344.63336593785294326 145.55306177607735663 +1.3678424993381399499 0.0066819507316878603426 0.07716164563597766035 +329.64464444459332526 204.92003707923961997 163.74906736662356366 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody41 1.1053539394491334998e-06 0.0027505018335353342132 +SmallBody42 1.1053539394491334998e-06 0.0037367851650158436479 1.0978911404624207108e-05 -1.3063704453539404238 0.006063652581356089241 0.26150027322263946772 -281.12447238732357846 237.65962840401968492 131.73191153344592408 +1.7748127416949179835 0.0026742823651202530903 0.35585638061056223957 +113.347581144256466246 174.66974907394964589 289.37163474014494113 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody42 1.1053539394491334998e-06 0.0018598838998215439473 +SmallBody43 1.1053539394491334998e-06 0.0022390360937310795117 1.0978911404624207108e-05 -0.88336511137442252917 0.00021332665852522470374 0.49452520848202163872 -128.64442400907418573 305.79449185728265093 272.11975853427526317 +1.0634461476331320551 0.00053313026316393122544 0.2373999411140914062 +271.30012989506457188 10.459818195289575016 58.036821152458777817 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody43 1.1053539394491334998e-06 0.0038787297493011350567 +SmallBody44 1.1053539394491334998e-06 0.0023045570046331629935 1.0978911404624207108e-05 -1.8422303334694387633 0.0017691531576543284825 0.42914608465831793893 -90.33060632601211637 298.92072716920284847 155.60340000412523409 +1.0945657711547540636 0.0011368233813004891431 0.46678482074518445888 +302.43512296271762807 34.219408880811762685 273.1731433525869761 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody44 1.1053539394491334998e-06 0.0040205050284578732577 +SmallBody45 1.1053539394491334998e-06 0.0036257009987981708087 1.0978911404624207108e-05 -1.9095675125667193051 0.0030801669204009039967 0.15953646867409598809 -209.08679797383152277 320.77246942730693036 198.45127398866443968 +1.7220525253866716398 0.005812492405147601064 0.18241253340230184632 +349.16566525366459928 66.79804880955843771 244.99022628833102999 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody45 1.1053539394491334998e-06 0.0010656801230813612627 +SmallBody46 1.1053539394491334998e-06 0.0019632679325566203126 1.0978911404624207108e-05 -0.50615236827718168566 0.0024434709549745249092 0.17777835590219637218 -184.54384211440816443 235.74454741983433337 193.59681355350048193 +0.9324680944155254725 0.005096834041688923754 0.2483520694023206854 +119.99880286178381539 9.742430947085129134 155.32437515351233515 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody46 1.1053539394491334998e-06 0.0012848279975201385693 +SmallBody47 1.1053539394491334998e-06 0.0009102148088042158425 1.0978911404624207108e-05 -0.61023821284503521056 0.003987143732529693438 0.001365418664104667279 -343.87442064134455677 332.11360135906141977 211.12253475805300695 +0.43231300944705941536 0.005648229292013018203 0.18853291667710370128 +269.6055670622664593 357.6457559917049025 334.9767947473189338 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody47 1.1053539394491334998e-06 0.001586855972994529395 +SmallBody48 1.1053539394491334998e-06 0.0012954121171608724439 1.0978911404624207108e-05 -0.7536885519864870986 0.0068545946072486622566 0.47875353005964926822 -268.6816988781197324 118.55357784026483614 28.10015400805450625 +0.6152652158886844358 0.0064177679039259761737 0.3660772735514235543 +288.48514746496266525 38.450761776372161194 55.7962725159071411 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody48 1.1053539394491334998e-06 0.0022330250179423978959 +SmallBody49 1.1053539394491334998e-06 0.0024739699402568946195 1.0978911404624207108e-05 -1.0605911443535949168 0.0022050845762832060014 0.17006705206962935417 -60.87397436452053512 63.78368846451786567 329.77954502722860752 +1.1750296521313488007 0.0065104146765382125625 0.03763006803493884611 +262.774107356739421 201.1690156846309776 105.607622741249286946 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody49 1.1053539394491334998e-06 0.0028707184422754971512 +SmallBody50 1.1053539394491334998e-06 0.0016836813798114476406 1.0978911404624207108e-05 -1.363468180314170386 0.005942764201040959607 0.37173945785205231296 -29.57191054050963075 100.41312169995346437 72.46300737457485752 +0.79967646891232724293 0.0010604079445286596853 0.36911162753965132133 +278.5022837689812718 353.07542055254396018 94.178933984937216906 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody50 1.1053539394491334998e-06 0.0013589924201308696665 +SmallBody51 1.1053539394491334998e-06 0.0017195953704312818065 1.0978911404624207108e-05 -0.6454631338445848687 0.003687156220124645535 0.47108622959286672316 -214.35473118646626745 160.7608961783459165 180.69048975870487084 +0.8167340746730060719 0.0014735397597012923811 0.106630877203119256436 +217.86989923422629545 260.11059897322320467 190.31524934619145029 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody51 1.1053539394491334998e-06 0.0011543345402911547252 +SmallBody52 1.1053539394491334998e-06 0.0008608540298652155061 1.0978911404624207108e-05 -0.5482594154643087858 0.0058273827372787257925 0.47155791843593697354 -114.383916488962867675 222.32926951962554085 161.00772323788964968 +0.4088687557551154983 0.0022200982033595763505 0.35810271184633135633 +288.9047897804766194 62.075500010596677214 18.189906361202666574 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody52 1.1053539394491334998e-06 0.003625757501063538497 +SmallBody53 1.1053539394491334998e-06 0.0019848569361943638805 1.0978911404624207108e-05 -1.7220793615402316679 0.0067582117965574381446 0.473313138490892793 -19.264507554706526093 306.34719154839370958 350.14073181346304864 +0.9427219455321182995 0.004239482820492568131 0.2260315464979905653 +350.77406185440707986 159.74287915746657518 87.84313205545750236 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody53 1.1053539394491334998e-06 0.00071857240099922700467 +SmallBody54 1.1053539394491334998e-06 0.0029664053385532961257 1.0978911404624207108e-05 -0.34129108225528154152 0.0007615613901554241444 0.06859795886339431492 -197.15917765141804807 158.25617293553941067 27.519089489610109922 +1.4089153535466614198 0.008939923531461250669 0.34471554248304558943 +182.63918552677125717 348.7500402840085485 120.74620441079039779 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody54 1.1053539394491334998e-06 0.0011716620583187394159 +SmallBody55 1.1053539394491334998e-06 0.0023637080106960954408 1.0978911404624207108e-05 -0.5564892436238774165 0.0045826378199643122424 0.24195292989213706969 -239.72284529330184455 132.21214770785758219 305.41153045395969912 +1.1226599629823756921 0.008703427486171486441 0.08785815527239088096 +338.94990604190400063 238.9132533680246695 319.78307374199994229 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody55 1.1053539394491334998e-06 0.0024615255028710602107 +SmallBody56 1.1053539394491334998e-06 0.0026328560562540776697 1.0978911404624207108e-05 -1.1691190779184184034 0.0068687080516668854585 0.10666014510077265198 -275.99872699417227295 169.73889419589309568 248.90290020737802479 +1.2504937451143398608 0.002589156467576795434 0.410462142220338444 +189.77150265342899615 122.37242655661786728 96.94997250606695616 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody56 1.1053539394491334998e-06 0.0017321756455436248891 +SmallBody57 1.1053539394491334998e-06 0.002121649634828146817 1.0978911404624207108e-05 -0.8227091659820937597 0.00843319774766918516 0.22884853768953594688 -304.30606168405762446 25.93584871510447698 4.848633998416511659 +1.0076926125051663963 0.009841532148699604771 0.48146102056592687823 +185.59042598838865956 64.35847565299175699 78.96986998774411859 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody57 1.1053539394491334998e-06 0.0023910402872564365214 +SmallBody58 1.1053539394491334998e-06 0.0018289433155997616911 1.0978911404624207108e-05 -1.1356416224989502872 0.0007665109352532950343 0.1419214571706507999 -240.43439932382597135 298.9062599161678122 58.015459116669731543 +0.8686696604219803497 0.0082175492365333217826 0.18858910014174024017 +235.11309456546851493 45.764303821886500145 40.807378448225108514 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody58 1.1053539394491334998e-06 0.0019350973663502399923 +SmallBody59 1.1053539394491334998e-06 0.0013740407773030377619 1.0978911404624207108e-05 -0.9190882832580831163 0.0064336379372377438743 0.21851798864023092017 -154.82954330295854106 356.93189278963092192 194.69117686773361697 +0.65261045831503694536 0.00886869353675501064 0.058625206665167850506 +39.187838407592039403 322.45546892152003693 253.06901117526950884 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody59 1.1053539394491334998e-06 0.0037561789778854402514 +SmallBody60 1.1053539394491334998e-06 0.0022926246503426237399 1.0978911404624207108e-05 -1.7840239713136967215 0.006148371953439728775 0.25679832782220995968 -294.159436987109018 13.667963580601236728 109.71022344892682554 +1.0888984144569340273 0.0039875571453738345787 0.020129257957628376996 +9.110799581756335641 125.83977812325261425 78.40563607259049661 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody60 1.1053539394491334998e-06 0.0013611814389692063118 +SmallBody61 1.1053539394491334998e-06 0.0025091531893443032756 1.0978911404624207108e-05 -0.64650282394035563094 0.00210355505260503969 0.05531076625953512682 -1.2066583847071798985 19.662168359747298041 42.088447685333754578 +1.191740186994086681 0.008173634999465642995 0.29869700212275529516 +278.24214351007020696 214.39280016748816138 101.53169945550675379 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody61 1.1053539394491334998e-06 0.0036842862982039128794 +SmallBody62 1.1053539394491334998e-06 0.0009897399507804386538 1.0978911404624207108e-05 -1.749878030806350182 0.0058877624633116307576 0.25927135724151134655 -106.54193156547684396 309.62159619247529463 198.30883233401769417 +0.47008404230864464513 0.0016900691601710205337 0.2923668713090333826 +222.75856139935487477 23.871242778405207474 247.11608431356100368 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody62 1.1053539394491334998e-06 0.002352457282817648111 +SmallBody63 1.1053539394491334998e-06 0.0041212944734210044516 1.0978911404624207108e-05 -1.1173163496061098154 0.008722730655786280901 0.45532722119645963055 -7.669255186594696738 328.27376432936614492 283.993162943758648 +1.9574381776570324298 0.0009901435887703768229 0.14466197394385382768 +286.3416003771931173 297.27668389783224256 139.31901126031084459 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody63 1.1053539394491334998e-06 0.0041865789707916299196 +SmallBody64 1.1053539394491334998e-06 0.0010057170108254320502 1.0978911404624207108e-05 -1.98844551488725374 0.0071526190521102421538 0.44868034424472752475 -202.41141669675778303 86.25518321577487768 248.93971582039534951 +0.47767246082629277737 0.009318667742477268132 0.44646018202156600996 +181.50231862935842742 39.941988854307389545 92.775461164340114806 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody64 1.1053539394491334998e-06 0.0038156990777683893855 +SmallBody65 1.1053539394491334998e-06 0.0012355928427943945143 1.0978911404624207108e-05 -1.8122934668812227255 0.0046607119651452099535 0.18959887351040988213 -103.753167455451190904 251.98883746225675395 79.68459651017317924 +0.58685362526834994323 0.0063944758811966167025 0.13179594249846143805 +166.27829439480856877 194.57385330167642223 248.15960802489175308 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody65 1.1053539394491334998e-06 0.0020349210108043651083 +SmallBody66 1.1053539394491334998e-06 0.0029497258104301727759 1.0978911404624207108e-05 -0.9665002345145459195 0.009888737196005765312 0.031496742813291678242 -331.12496419413429294 92.43097071039983348 51.154372128609594483 +1.4009932928096608951 0.0073617980845235523463 0.4331110895441231401 +298.98597359658293726 291.79032465955356201 134.71870506235592302 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody66 1.1053539394491334998e-06 0.0007519970150145614117 +SmallBody67 1.1053539394491334998e-06 0.0024335602953199311332 1.0978911404624207108e-05 -0.35716634085886211913 0.009812992174250710631 0.19330764764073876671 -294.8736717732407442 59.943598965498772202 37.415260394651753018 +1.1558368033176316114 0.0014674948178538295418 0.14595620981903045799 +26.906065188725545312 193.59979141105480949 342.92713693975338174 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody67 1.1053539394491334998e-06 0.0017422896962019374534 +SmallBody68 1.1053539394491334998e-06 0.0011621530047934199633 1.0978911404624207108e-05 -0.82751290641292607475 0.004483101404917193278 0.42444650766319869106 -284.08737987214851728 20.66202219747616553 244.94157667031407755 +0.5519728508924466315 0.009125710167568410955 0.38391361749146651894 +312.46372840188922737 52.13612183972309566 237.37098505324595976 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody68 1.1053539394491334998e-06 0.0009990898270396054195 +SmallBody69 1.1053539394491334998e-06 0.0013502749860594976756 1.0978911404624207108e-05 -0.47452483266325140576 0.0024462445739371319574 0.2497100598204521904 -38.56617039404348901 71.18453251440668339 355.36891313147475557 +0.64132272641372556343 0.00090827058188821087684 0.122492384756083261266 +85.557328856885106916 38.164622893518028945 6.7652899237678276734 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody69 1.1053539394491334998e-06 0.0033996536056487195092 +SmallBody70 1.1053539394491334998e-06 0.0011111205042707826829 1.0978911404624207108e-05 -1.6146897052426172348 0.0015219920533292442388 0.17922372150567844606 -12.159534634854507473 344.35229701092345067 10.8997608537475052515 +0.5277346011220065414 0.0057285060222213544934 0.3871179032550878807 +78.49694291256504641 297.43183861262565415 359.95087146468250694 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody70 1.1053539394491334998e-06 0.0018534897741513436611 +SmallBody71 1.1053539394491334998e-06 0.0012221682205234687057 1.0978911404624207108e-05 -0.88032817582412259405 0.008005928497239050978 0.32284168761100751066 -272.37506606187326952 58.34741166490307762 222.9991401165076752 +0.5804775052596473639 0.006606364723628247587 0.35126971133492751465 +266.67191037878211546 347.85365732062336974 196.00158209101920193 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody71 1.1053539394491334998e-06 0.0031561172624764302416 +SmallBody72 1.1053539394491334998e-06 0.0026308596582066154685 1.0978911404624207108e-05 -1.4990203836625171085 0.005123403698736885524 0.0565805471353558187 -222.61764027553329015 15.581020765914104231 49.313482304184191207 +1.2495455416357714729 0.002031665833294462719 0.32894383168929558492 +180.19692357114033143 187.6939538154834679 245.18398176961554213 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody72 1.1053539394491334998e-06 0.0024433392566886891639 +SmallBody73 1.1053539394491334998e-06 0.0025459751819877767305 1.0978911404624207108e-05 -1.1604813907026119146 0.007303514048424671924 0.13882682659903528011 -140.85830088218762057 70.182013379350649984 354.88230752734301632 +1.2092290547861306305 0.0062147785036781658108 0.42828731835165739783 +351.15138514894761101 140.23344369553493038 252.31698431602899291 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody73 1.1053539394491334998e-06 0.002840560638411957164 +SmallBody74 1.1053539394491334998e-06 0.0026758393184655913376 1.0978911404624207108e-05 -1.3491445164708089077 0.005720642229715540601 0.14981819009776592422 -352.3487865630142437 211.34103074075423478 192.0694520334756703 +1.2709089517916776213 0.0029285359688681514116 0.40818349943589532502 +346.8551108771299596 12.119434598934258673 249.55690237557612932 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody74 1.1053539394491334998e-06 0.0031444797715256892693 +SmallBody75 1.1053539394491334998e-06 0.0038435765356302306976 1.0978911404624207108e-05 -1.4934930744090704202 0.0031276427636128647028 0.3214666381100500514 -175.07919233828184247 35.481995834318553307 260.6360034601860889 +1.8255340641417958647 0.004337083773540291974 0.12440740004749534231 +0.21158758918201403532 315.85729824918280428 23.028332918127727424 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody75 1.1053539394491334998e-06 0.003459255021998138457 +SmallBody76 1.1053539394491334998e-06 0.001962369310037469242 1.0978911404624207108e-05 -1.6429978226453376688 0.009295252819063579489 0.49102576894325750123 -345.02654860489548128 345.52660132514841962 310.74654593341955433 +0.9320412872466534715 0.0072527006896398269614 0.33669899514991330491 +314.09559552333024612 29.746778859664111394 138.08651123959521101 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody76 1.1053539394491334998e-06 0.0022873662080603565067 +SmallBody77 1.1053539394491334998e-06 0.0034266742915467665759 1.0978911404624207108e-05 -1.0864008798243816045 0.008384640338494970396 0.27205559161590919803 -253.52651755208796658 290.75194124657178918 159.72113624314474123 +1.6275233725538036378 0.004486668873624886922 0.0018127120154187714718 +208.63800449670034709 178.44725683460612231 295.00705561696236146 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody77 1.1053539394491334998e-06 0.0012272542532064478338 +SmallBody78 1.1053539394491334998e-06 0.0035827057041377866747 1.0978911404624207108e-05 -0.5828931527244621824 0.0019247710050318911704 0.35217059511512804892 -128.04935681999808139 128.25988178793110706 38.454554612780782463 +1.7016316038120020693 0.008074545809734847562 0.2024727100717404471 +189.54840202229254942 346.288978261405191 336.5068221459076767 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody78 1.1053539394491334998e-06 0.0026543878147870777827 +SmallBody79 1.1053539394491334998e-06 0.0014758979985400451381 1.0978911404624207108e-05 -1.2607204072605178169 0.0096473280615230992685 0.42213107167069263692 -216.82569867369645067 235.68868231250542067 139.71833578625705741 +0.70098827135538399613 0.0050294491101013204942 0.37130662544207221343 +117.532332239196989576 119.15539963745180785 126.925668244431079756 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody79 1.1053539394491334998e-06 0.0009780107056720420075 +SmallBody80 1.1053539394491334998e-06 0.0015255152064378374044 1.0978911404624207108e-05 -0.46451315376419793912 0.008467739880838711167 0.09984937286937312084 -25.346273704217509248 167.68809971291636884 218.82435230989008801 +0.72455431780856671686 0.003950446349021759229 0.3068308339372661231 +36.56291538527193552 161.75570886946522364 245.93043129193375762 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody80 1.1053539394491334998e-06 0.0015585452504019390022 +SmallBody81 1.1053539394491334998e-06 0.0011590532892219572599 1.0978911404624207108e-05 -0.7402421725546883824 0.00081815707488439471263 0.027275888583668805865 -78.168111726190360855 118.103475439356216725 271.37806527923407884 +0.55050061889383805624 0.008508557323662622671 0.093253923803440552653 +124.451163796711156806 347.73017221758141204 183.74365373633969512 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody81 1.1053539394491334998e-06 0.0036228037421964175176 +SmallBody82 1.1053539394491334998e-06 0.0024439578873632304452 1.0978911404624207108e-05 -1.7206764527184079672 0.0020388197417552213556 0.2779771865718832502 -188.21340057803570289 56.037973252133966184 346.32195813540357676 +1.1607752137497215905 0.00108159632099681614 0.1793530901487539464 +85.69565254676035693 163.58450447375494718 246.78582364352257628 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody82 1.1053539394491334998e-06 0.0028566024176281324616 +SmallBody83 1.1053539394491334998e-06 0.0041849171231261979345 1.0978911404624207108e-05 -1.3567636738199855273 0.0064602626792048187254 0.49422002485399357807 -305.31013000174260696 158.96334607327713684 9.2952725232621382645 +1.987656208496568544 0.008796530612750232819 0.21319751377321760621 +282.4698261721002268 13.883490992204517767 193.43011573870168718 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody83 1.1053539394491334998e-06 0.0030364083037735251215 +SmallBody84 1.1053539394491334998e-06 0.0035583177618115590538 1.0978911404624207108e-05 -1.4421637607048936047 0.003164481042823339297 0.14375208160874736185 -280.5711764965416819 198.45145802447700589 122.38992208970854847 +1.6900483768206462365 0.0029694984676444315282 0.43619357254784330014 +199.84303896526179756 4.9382382008980618693 153.69868992069012847 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody84 1.1053539394491334998e-06 0.0018847712591592793446 +SmallBody85 1.1053539394491334998e-06 0.003650212543420925295 1.0978911404624207108e-05 -0.89518554003413797204 0.008354232084976069214 0.32514509699956206656 -72.82349432517753485 24.921837702544884507 116.15812089477469726 +1.733694458169527719 8.37953811003178139e-05 0.49730476275208318482 +76.67449702244863374 109.74398992658458951 289.31049603383297608 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody85 1.1053539394491334998e-06 0.0032273771675824087141 +SmallBody86 1.1053539394491334998e-06 0.002135981151471338737 1.0978911404624207108e-05 -1.5328657833761838436 0.0061896190689282827233 0.34623152187383665623 -352.86954858625608722 142.80960466527201902 269.9476990871480666 +1.0144994684583215072 0.004506861636329010344 0.04762916404555184169 +352.8677626105417744 154.41611377083665957 134.09312216693749065 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody86 1.1053539394491334998e-06 0.0040634164063012070394 +SmallBody87 1.1053539394491334998e-06 0.003200581292058947748 1.0978911404624207108e-05 -1.9299485772511566495 0.0031536402555862341236 0.3950675392513491313 -139.96088035745842149 181.76039716652948641 296.43536960581485573 +1.5201388913543600889 0.005572932191637661528 0.41540019173215758652 +268.21187697796170823 48.902911826943373796 262.3436588669285925 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody87 1.1053539394491334998e-06 0.0037177872852294766954 +SmallBody88 1.1053539394491334998e-06 0.0012861207686880307786 1.0978911404624207108e-05 -1.7657895633153577464 0.008302463231769427812 0.008650241018383963976 -326.76492167094011165 248.04800625477449216 143.12774627005794059 +0.6108522237232498764 0.005429823746949486059 0.4157807676443512901 +327.8425030797158115 27.98437582738972651 42.77216027009259136 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody88 1.1053539394491334998e-06 0.0029394228179550476069 +SmallBody89 1.1053539394491334998e-06 0.0011761722209149318581 1.0978911404624207108e-05 -1.3960998131165724967 0.009864572886023466672 0.16006323209123973772 -161.58563417885309832 300.60320078078825645 271.84316795198083128 +0.5586313774874398508 0.0031758045904765452166 0.101357753154031782206 +296.28816067879887441 283.822297721177506 334.6154077534155249 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody89 1.1053539394491334998e-06 0.0021301474391629660392 +SmallBody90 1.1053539394491334998e-06 0.0036412139412147807882 1.0978911404624207108e-05 -1.0117287052276131565 0.0027700618814613365247 0.06101905242943728158 -90.188877701137116105 0.14553788257543054385 151.58365796171364082 +1.729420507929511297 0.0031178033685856634469 0.2575855781953989565 +69.84018972442507334 62.167401490125023145 330.0595318836462866 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody90 1.1053539394491334998e-06 0.0030529567836454087592 +SmallBody91 1.1053539394491334998e-06 0.0030033226640541959833 1.0978911404624207108e-05 -1.4500235791411446584 0.0051415674121213740186 0.035783766155871643555 -19.607471849850583112 137.4149541556064662 295.3619168323355666 +1.426449500358662581 0.0020081709600639477062 0.22600455672962604936 +284.87116687156947137 94.95424318278870146 53.66013829009383329 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody91 1.1053539394491334998e-06 0.00064875962033329815164 +SmallBody92 1.1053539394491334998e-06 0.0011083051001590989141 1.0978911404624207108e-05 -0.30813300460633064048 0.0068435724329741955824 0.25415063445939684028 -113.703628424172109135 315.29312159144251382 30.016315228589590447 +0.5263974048771655756 0.005519262107960243649 0.4757355366967259136 +161.12521856985677005 123.28366453298917804 315.06783952424086692 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody92 1.1053539394491334998e-06 0.0031774066214905104554 +SmallBody93 1.1053539394491334998e-06 0.0012127048213767872621 1.0978911404624207108e-05 -1.5091319164298944155 0.008761774007885180307 0.3729577687009506537 -86.71738414973454212 203.68279937784481604 178.04985347510225324 +0.5759827964006745127 0.0035395840478532037375 0.2742620450020670786 +114.32380284259015468 316.44931732492420906 69.43354290911554472 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody93 1.1053539394491334998e-06 0.0013602341599096074799 +SmallBody94 1.1053539394491334998e-06 0.0019679363219885160354 1.0978911404624207108e-05 -0.64605290700088136013 0.0028866588611838571443 0.123745735802174794404 -354.80506939301045577 301.26726001571074676 20.783162938658389152 +0.93468537924219741164 0.006668566768847774412 0.120331645988828450644 +15.981416727773186892 109.48045067821274756 119.3717579036452463 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody94 1.1053539394491334998e-06 0.004066691095601753041 +SmallBody95 1.1053539394491334998e-06 0.001665356753916010893 1.0978911404624207108e-05 -1.9315039142692205232 0.0022152965415877636304 0.48054874999633290233 -133.09052109598391667 191.53766059844949154 81.83111779972121269 +0.7909730572657345249 0.0087883446026040274585 0.45799248207591430893 +293.11097031314750438 196.40564036731450415 150.97581680478862154 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody95 1.1053539394491334998e-06 0.0021660555110931399977 +SmallBody96 1.1053539394491334998e-06 0.0031494462429892897639 1.0978911404624207108e-05 -1.0287834998644624918 0.0048806432832589697127 0.40599080267573434133 -284.29323859414336084 206.50267632987038269 32.181201191434148257 +1.4958519354207724383 0.0078384276253645052135 0.23057847829940381068 +187.22691615495435258 143.57930146928600834 300.05148838927118504 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody96 1.1053539394491334998e-06 0.0012256412334758639172 +SmallBody97 1.1053539394491334998e-06 0.0037139675097976452121 1.0978911404624207108e-05 -0.58212703750937100367 0.006815394001574134712 0.07111194936362880137 -356.8708968589809274 272.2075288690623438 105.15655667544666585 +1.7639753337550669876 0.00058526678535686382787 0.31377985952056214325 +96.073907241268287294 66.097445801554471245 146.26152385491423047 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody97 1.1053539394491334998e-06 0.003625916465309114207 +SmallBody98 1.1053539394491334998e-06 0.0009376304215520192408 1.0978911404624207108e-05 -1.7221548627414147159 0.003762997164236574557 0.24815013062447038861 -147.28961407645965664 218.03440726170023822 1.8591648258108683933 +0.4453342500797059511 0.005402555175319281519 0.1563447182758816445 +150.65938548412697173 129.60102495664250455 298.9416915331759128 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody98 1.1053539394491334998e-06 0.0008081494427977152585 +SmallBody99 1.1053539394491334998e-06 0.0023466136892612675851 1.0978911404624207108e-05 -0.383836336565244296 0.0040007873825194332357 0.08120615205831077654 -124.07811978970127598 166.61704692849599496 199.01689105952982572 +1.1145408932062483842 0.0090975189299379727315 0.45482889277417670737 +89.719047762599629436 286.27451258390016164 21.998612599652954458 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody99 1.1053539394491334998e-06 0.003021340601443785476 +SmallBody100 1.1053539394491334998e-06 0.0036042149048601778175 1.0978911404624207108e-05 -1.4350072481140032643 0.004057562854776786479 0.16489395982405652408 -92.709269128307440155 214.9999281263282569 57.464246578171120916 +1.7118475519652889272 0.009055900701920591503 0.22094329683365754313 +287.5728030058700142 5.3589737449812568926 121.09435219102297765 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody100 1.1053539394491334998e-06 0.0009475797808058692764 +SmallBody101 1.1053539394491334998e-06 0.004177037313904747932 1.0978911404624207108e-05 -0.450059769154431355 0.0037395517851033176736 0.45479598440039348262 -26.317730599306557338 23.931789830584875745 143.91842879072783035 +1.9839136369569239093 0.00089942446384002174356 0.06184857477503691303 +184.64410637865165654 193.78867613591432928 247.20281327688800843 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody101 1.1053539394491334998e-06 0.0026909717843638427215 +SmallBody102 1.1053539394491334998e-06 0.0034917647268310307955 1.0978911404624207108e-05 -1.2780962243009246215 0.0035555600141111065246 0.3257354511083095927 -192.7416849222909434 164.91900290185728295 333.67905845802670228 +1.6584385386132607376 2.8075269902115839197e-05 0.04242993985314380545 +80.55152924373120982 109.48248599757039301 147.04779191594042231 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody102 1.1053539394491334998e-06 0.0041810760162440572295 +SmallBody103 1.1053539394491334998e-06 0.0018358130659390312309 1.0978911404624207108e-05 -1.9858318474119498465 0.007254756249778001459 0.41576480580086311312 -105.64094867962499791 318.98199615126588924 22.47872975241655169 +0.871932497298059328 0.003865347425684947675 0.45248086692718403334 +267.06624420510524942 272.16072602226120125 97.21049707720219146 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody103 1.1053539394491334998e-06 0.0007996094815216030466 +SmallBody104 1.1053539394491334998e-06 0.0009961246488978876669 1.0978911404624207108e-05 -0.37978022110312864568 0.0047214882095757814556 0.01341383505492060868 -103.99287880664391537 101.414451660559109314 179.41217948023177087 +0.4731165001755865407 0.00018215173839106869142 0.020988643787622551784 +351.87198325404813204 117.171842981893476576 211.50245566826470167 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody104 1.1053539394491334998e-06 0.0041316235921579503004 +SmallBody105 1.1053539394491334998e-06 0.0010521274211646043996 1.0978911404624207108e-05 -1.962344066204342985 0.001297636502650572005 0.4471175237115694867 -84.38714843221671913 15.1728657372036792594 321.65176691418702148 +0.49971541592802215526 0.0078217984607909171735 0.33700162667911554015 +298.54816397832667008 261.0376684663759761 268.33032509548360167 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody105 1.1053539394491334998e-06 0.0006468297403521850707 +SmallBody106 1.1053539394491334998e-06 0.0008060914125760300691 1.0978911404624207108e-05 -0.3072163943573689715 0.002069552547494897185 0.06067182285957134491 -14.403233133169720759 137.80158957237256345 145.80670189311638296 +0.38285886044635036862 0.008097211239727968371 0.23983964363154663957 +132.15823015688874875 249.60545854775469365 129.91248150410982021 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody106 1.1053539394491334998e-06 0.0015291286852166491375 +SmallBody107 1.1053539394491334998e-06 0.0018401646289936616459 1.0978911404624207108e-05 -0.7262705653034777775 0.0036886731925131191132 0.307053270062749184 -259.23562206716201217 48.774316930331721665 261.170258806677964 +0.8739993031792088196 0.007885116676628872029 0.37978548582970406144 +17.667600689734385355 210.61746945153194588 196.43391786767980989 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody107 1.1053539394491334998e-06 0.0023265433330934118486 +SmallBody108 1.1053539394491334998e-06 0.0018536452717464226642 1.0978911404624207108e-05 -1.1050083345270516055 0.0021619185594817648226 0.32733237728798875166 -10.142047630130853975 212.86498766789461001 117.3267626732119453 +0.8804020305149495851 0.0013794006984467266971 0.26346466351854286314 +254.9539705880254985 205.43238842788551324 122.144017495580698096 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody108 1.1053539394491334998e-06 0.0011665670476203062816 +SmallBody109 1.1053539394491334998e-06 0.0036875419284336350676 1.0978911404624207108e-05 -0.55406933198664720663 0.0049526344715693608467 0.2827810313805791953 -155.34731745098386568 309.39073596933502586 84.99503647176723575 +1.7514243155829152254 0.0013678952795426902594 0.123704372454268463066 +131.52075526346038714 118.165228300980302834 334.8452791953995984 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody109 1.1053539394491334998e-06 0.003262805107546985368 +SmallBody110 1.1053539394491334998e-06 0.002362038229611548831 1.0978911404624207108e-05 -1.54969253591465006 0.0014634230002845761195 0.34160518035174364249 -161.22273174154071285 313.478568111725167 211.56542262438233593 +1.1218668885577500749 0.00919480252541974262 0.4193036507438517857 +205.06059433110686996 349.61078704935107453 182.18047202289503161 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody110 1.1053539394491334998e-06 0.0015382966919372130521 +SmallBody111 1.1053539394491334998e-06 0.0014184120245393167206 1.0978911404624207108e-05 -0.73062497542475979273 0.0018662111938524982881 0.47978521949566910187 -42.599778446102199325 323.68686590233079414 260.06072539586818948 +0.6736848983703858096 0.0083531057511023274614 0.22806179640198764869 +247.63026686832256473 22.743578978697456705 196.99677932251091761 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody111 1.1053539394491334998e-06 0.0030189705886898708342 +SmallBody112 1.1053539394491334998e-06 0.00090218315204428206853 1.0978911404624207108e-05 -1.4338815936683029229 0.007854986736292183039 0.034614304523278571768 -220.97166421899538591 100.270100143954621785 69.89976223012565981 +0.42849831683697725548 0.0077287908582096519206 0.105149254482249487896 +253.69830147230294415 337.20903933062618307 15.887727537436497016 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody112 1.1053539394491334998e-06 0.0012520764056687804838 +SmallBody113 1.1053539394491334998e-06 0.0041671217738134337225 1.0978911404624207108e-05 -0.5946826109140541661 0.004228441446919988314 0.48169411754613156162 -211.7494079431474745 247.34135423949993537 271.44979516436404765 +1.979204180534433366 0.0023222774165393691645 0.15776441287425713167 +256.0244883237422755 186.77731837310594187 210.27075551184211122 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody113 1.1053539394491334998e-06 0.0020341208345655149776 +SmallBody114 1.1053539394491334998e-06 0.0037234180189260659195 1.0978911404624207108e-05 -0.96612018510801100923 0.0038251263510292701948 0.10211507788692092413 -94.997718911079232385 72.20047856021278676 177.12490005041385643 +1.7684639204080152552 0.0048923341387555156767 0.18584046914891033664 +313.1367182478481368 20.291058860939237718 14.830653668149720303 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody114 1.1053539394491334998e-06 0.0036771750591194379922 +SmallBody115 1.1053539394491334998e-06 0.0015485822750073396757 1.0978911404624207108e-05 -1.746500497129936269 0.0058508507173112688643 0.041718288224785682328 -343.583602423471973 2.3923430163143555305 21.049002232435121584 +0.73551018639688825473 0.004955578380412001792 0.2542579857945891364 +126.67824666224566954 180.59420107988003679 251.77903864847220916 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody115 1.1053539394491334998e-06 0.0037508323771434353573 +SmallBody116 1.1053539394491334998e-06 0.0038524635535576166553 1.0978911404624207108e-05 -1.7814845651924926528 0.0070428576311776583396 0.42896385937108449937 -225.1566819158494468 49.358015725800711948 130.80343322774197645 +1.8297550166334890509 0.004420989995721213116 0.050995343716709384818 +200.53521365396184706 174.92280986408158583 63.09881703506901829 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody116 1.1053539394491334998e-06 0.0020312318442109675703 +SmallBody117 1.1053539394491334998e-06 0.002877861961986883982 1.0978911404624207108e-05 -0.96474803855276136666 0.0010046447322486307206 0.11664706284615694587 -77.674155996469721686 249.84767415263414136 55.65928972394180363 +1.3668610459043613048 0.009617796897453803617 0.38436144468911415117 +351.45830670101508986 2.6855955544584331207 34.117423751931553966 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody117 1.1053539394491334998e-06 0.000974112043281249845 +SmallBody118 1.1053539394491334998e-06 0.0025749721082934398766 1.0978911404624207108e-05 -0.46266145628061638995 0.0063666039556358813845 0.44153244695566923328 -293.91178927167914026 5.1655049063911606666 314.89223144009667976 +1.2230013515612012664 0.0011610078708781479493 0.046776969767367171382 +40.226079876629214027 287.61432809202983663 41.326237938535143712 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody118 1.1053539394491334998e-06 0.003556444135703642334 +SmallBody119 1.1053539394491334998e-06 0.0038644464188619738641 1.0978911404624207108e-05 -1.6891584847496128319 0.00046239007278428225943 0.4111588368317175557 -274.4195616566905187 310.5383527188005246 290.2995654268337944 +1.8354463638972531303 0.0027502147876890203036 0.12079272567478699374 +13.051150165370945189 227.20520594651023316 288.29312495148258222 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody119 1.1053539394491334998e-06 0.0026110924430802409018 +SmallBody120 1.1053539394491334998e-06 0.0020103839188844267676 1.0978911404624207108e-05 -1.2401569619543475476 0.0055636321901455041555 0.124411556495122033184 -80.591271036595884425 93.531937081230040576 91.02581530568424739 +0.9548461678608475278 0.0016713812467888655971 0.28251343730774014507 +146.79316702173738918 191.18861640108599431 109.246310882898370664 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody120 1.1053539394491334998e-06 0.0022292651491043821605 +SmallBody121 1.1053539394491334998e-06 0.003383264836668941294 1.0978911404624207108e-05 -1.058805367856919144 0.008856431115937380902 0.22985551372836227069 -103.40731004504169732 278.42753807868166405 161.92298625486941432 +1.606905742632638967 0.00064548815040708972055 0.46791632868668114886 +214.0789863490610685 0.12710902515905342369 112.51561260655698504 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody121 1.1053539394491334998e-06 0.0023714005649848728144 +SmallBody122 1.1053539394491334998e-06 0.001123742298873384317 1.0978911404624207108e-05 -1.1263135964574069181 0.00017054783801896290373 0.4551410040723882222 -105.3440152261756424 219.93423944623813782 353.84921407221094114 +0.53372941240885196645 0.009977035962730642152 0.27264558842097247338 +275.22886951319594573 286.08119290465145923 109.60038722911731668 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody122 1.1053539394491334998e-06 0.0017365893716236742182 +SmallBody123 1.1053539394491334998e-06 0.0006432347002883277041 1.0978911404624207108e-05 -0.8248054966351270334 0.0055371318107404737113 0.18749094029727253474 -305.60396836315686642 61.663571188350786656 195.18191086891513919 +0.30550890446151601765 0.0016760221201281178417 0.32538537139230516715 +265.25215774313522843 148.99759002817140185 124.13413438356363372 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody123 1.1053539394491334998e-06 0.0017727724852365723844 +SmallBody124 1.1053539394491334998e-06 0.003036828770261148186 1.0978911404624207108e-05 -0.84199092427907729075 0.0043065589255132140714 0.2675084388459675333 -38.470555172757549656 257.86123937948008233 183.30306588402953594 +1.4423634642593488042 0.009141341764341484946 0.039791008756628498677 +98.63272077981082475 270.17713718140805668 202.32526550621426509 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody124 1.1053539394491334998e-06 0.00094409454073867135766 +SmallBody125 1.1053539394491334998e-06 0.00081874486454519645577 1.0978911404624207108e-05 -0.4484044295494042376 0.005010474032756404364 0.15668152843086047277 -147.71326304493319981 322.57992193070856501 156.73534881298201071 +0.3888687076250296748 0.0021584596979441726672 0.031670778401195365248 +281.66318976366977722 7.357287548155002632 355.8272360213076695 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody125 1.1053539394491334998e-06 0.0032754931475123096045 +SmallBody126 1.1053539394491334998e-06 0.0039960198542602162104 1.0978911404624207108e-05 -1.5557188109085715588 0.007473354630028248083 0.34840638866081469205 -52.632633320882533212 35.15462414717750761 124.31246142990700321 +1.8979381046051735371 0.0037559774236174238785 0.41211360621909687296 +61.813896366572002705 29.055610630471562672 38.448989476032949142 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody126 1.1053539394491334998e-06 0.0025963640847439910755 +SmallBody127 1.1053539394491334998e-06 0.0009149892206878139238 1.0978911404624207108e-05 -1.2331616232112614373 0.008238562530627425301 0.42399484169233947473 -63.706532055494825784 25.70985870870202561 86.201329802784854905 +0.43458065039266180474 0.0069716072765846496054 0.009409196509767681071 +180.68351555608862213 333.18017309121370317 83.35504912247611742 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody127 1.1053539394491334998e-06 0.0038812889913659328306 +SmallBody128 1.1053539394491334998e-06 0.0010913913911420057976 1.0978911404624207108e-05 -1.8434458637247526092 0.004680365985859572496 0.27780307484521127304 -44.297859819313217145 319.2557910969932209 56.73815808854173781 +0.51836411825584871593 0.009008475292090643502 0.42394712017791696956 +76.26327551422369311 262.55447081899131945 32.255078645407145643 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody128 1.1053539394491334998e-06 0.0028165808881701460246 +SmallBody129 1.1053539394491334998e-06 0.00087749776001502680785 1.0978911404624207108e-05 -1.3377551632186404085 0.003719109121861046384 0.3140927561272534585 -43.246668183993357104 193.2453748363514876 49.380547237145876238 +0.416773813989602393 0.0024590338429388534924 0.22562645108049261822 +15.819312377025722682 12.224459424754545722 106.02034556611799587 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody129 1.1053539394491334998e-06 0.001979252152895991799 +SmallBody130 1.1053539394491334998e-06 0.002170678072290993283 1.0978911404624207108e-05 -0.9400599137660112792 0.0030979164694139040524 0.12701535332402813516 -84.99503342739515688 226.20476970399542438 171.66651562275484366 +1.0309790182448133056 0.0073522276566752187837 0.48335397850744188375 +194.11007019457898082 86.771967888170806305 176.35435267523482139 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody130 1.1053539394491334998e-06 0.0017130867917206263939 +SmallBody131 1.1053539394491334998e-06 0.0018491827945856857923 1.0978911404624207108e-05 -0.8136427788355728996 0.0073092069346394495516 0.085814698783936105286 -212.90921320180737553 9.763998354941886504 196.01088884421542957 +0.8782825451887534829 0.0067295105164212540294 0.15715559285768937459 +212.16104068491762291 174.75466543172368006 275.40083616632017538 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody131 1.1053539394491334998e-06 0.0022358482630314104035 +SmallBody132 1.1053539394491334998e-06 0.003901379951796391995 1.0978911404624207108e-05 -1.061932064726491376 0.0019027594188349805475 0.44476175906320358777 -157.18551589009481972 298.71764639949674347 262.90690529651982388 +1.8529882085452946683 0.0010073529794058454744 0.13332637089911064665 +292.2958158179013708 1.891272359638920264 74.00674726388690772 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody132 1.1053539394491334998e-06 0.0030586636594471469293 +SmallBody133 1.1053539394491334998e-06 0.0010551691291876035957 1.0978911404624207108e-05 -1.4527341004692158055 0.0062927146114276216737 0.4423521059459766258 -302.02420770009632633 148.5803921871369937 246.85928425279297471 +0.50116009682813800197 0.0021758576105712123042 0.02202781544352166998 +46.38659554024288667 249.67397170791653593 270.3148441879617394 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody133 1.1053539394491334998e-06 0.0026878291059565319547 +SmallBody134 1.1053539394491334998e-06 0.0034801495362615294697 1.0978911404624207108e-05 -1.2766035867972855833 0.007637980856047291156 0.4059059184123336994 -161.50116546845228527 77.850685558381286455 264.8286603906785217 +1.652921821084791798 0.0059866438847831103184 0.35594716810617565983 +15.723173357075621581 264.17832635646095696 347.42854121523549793 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody134 1.1053539394491334998e-06 0.0027943947444222948776 +SmallBody135 1.1053539394491334998e-06 0.0034553539663358196749 1.0978911404624207108e-05 -1.3272176961516530813 0.004701184643604254705 0.36952456793924481904 -47.269844566301287614 4.9163514335424984836 355.22962273370120556 +1.6411449884603905858 0.0070857780187495878615 0.405548681726294602 +81.87905712873534014 111.4217703340252541 202.10718310852169566 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody135 1.1053539394491334998e-06 0.0031563510355617611948 +SmallBody136 1.1053539394491334998e-06 0.0042013244939220061563 1.0978911404624207108e-05 -1.4991314158552144775 0.00015436034423323640417 0.1917380856368509634 -172.68410025626315019 292.7689313206145698 242.35314712175855334 +1.9954490061716230187 0.009604522241949643366 0.113267377951083214604 +142.89047522640291277 48.117766373190107743 121.52571344044037005 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody136 1.1053539394491334998e-06 0.00079256183150516454785 +SmallBody137 1.1053539394491334998e-06 0.0032301774598376437692 1.0978911404624207108e-05 -0.3764328895077013737 0.005331669234970675547 0.037038119773405431268 -137.29879269110134032 276.60344003919925626 318.224575012218736 +1.534195802137120479 0.0098685149817888517115 0.27668795256550338113 +255.56918861478004601 280.21201795717837513 332.2787448725723607 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody137 1.1053539394491334998e-06 0.0024729521662073515708 +SmallBody138 1.1053539394491334998e-06 0.0023301839271203156769 1.0978911404624207108e-05 -1.1745462530940675716 0.0025436198446592396885 0.19726208266038036676 -200.11200833959856027 328.50318859698677443 25.032545226553306605 +1.1067374606022617467 0.0063011106970540901873 0.37833337715458070782 +256.42776005034045284 77.543023468318807545 154.67314936742405962 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody138 1.1053539394491334998e-06 0.003141353993759099369 +SmallBody139 1.1053539394491334998e-06 0.004052809813013481092 1.0978911404624207108e-05 -1.4920084639851722841 0.008895169829864444169 0.40742482505034210982 -125.08982552404354749 13.6810870370561410425 125.89960225777221581 +1.9249109001887259041 0.008610323109244940806 0.2392596397695851973 +74.080774563989209014 310.4431197863084435 5.2810312055210317794 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody139 1.1053539394491334998e-06 0.0024697651374539426903 +SmallBody140 1.1053539394491334998e-06 0.0022331906704604384985 1.0978911404624207108e-05 -1.1730325510775176934 0.009714048229482108096 0.4495197610396466925 -276.1486670185516914 249.96765269618634875 38.405693580368897244 +1.060669822197444434 0.0069455314949981670353 0.4114229834516269224 +23.451263907073990111 260.4688811495023515 99.454701790253693616 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody140 1.1053539394491334998e-06 0.0009277239963550222287 +SmallBody141 1.1053539394491334998e-06 0.0035456750285586234618 1.0978911404624207108e-05 -0.4406291228412222427 0.0011498177626615313941 0.24676970418810539876 -215.50167505295402748 65.33626690753465027 206.42806807478683595 +1.6840436205726201369 0.008606120814077458311 0.39137564936045776687 +41.764363225092509424 328.768245787753699 96.166117544944881956 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody141 1.1053539394491334998e-06 0.0033835772813540165789 +SmallBody142 1.1053539394491334998e-06 0.0010759666366262836943 1.0978911404624207108e-05 -1.6070541404622327164 0.004719441710564133141 0.4984568824987272717 -47.33899341199827404 82.97698800601314417 283.4966539407437267 +0.5110380211849447907 0.0063158763456751376014 0.12533644493608675496 +273.4239174531699632 126.29059059741834403 80.20595283508792761 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody142 1.1053539394491334998e-06 0.0029520691321285031499 +SmallBody143 1.1053539394491334998e-06 0.0034220908063155763612 1.0978911404624207108e-05 -1.4021062701483164581 3.6003378605201640536e-05 0.4090674261173213866 -121.20788516521034239 247.02993176949499343 145.1606631047432927 +1.6253464135822668357 0.008519275791631654091 0.40094592229643022385 +299.1683398830161309 326.78839385032341625 60.680433772656201086 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody143 1.1053539394491334998e-06 0.0021549829461906115147 +SmallBody144 1.1053539394491334998e-06 0.0032052436607735247348 1.0978911404624207108e-05 -1.0235245062631623814 0.007773773829953017217 0.17819203426573304583 -133.79316693748211264 145.67071914831808499 74.72284817886242081 +1.522353316598439088 0.0096022921894474370236 0.000101839905715050971224 +78.70797994594754243 270.7670405205773818 278.0958215146567909 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody144 1.1053539394491334998e-06 0.0026211917416770771317 +SmallBody145 1.1053539394491334998e-06 0.0013432108020539927865 1.0978911404624207108e-05 -1.2449536957884614896 0.0009156041969351491616 0.26838610331624801475 -191.78935301636164468 61.319754558406870615 198.83867506070333775 +0.6379675418823733679 0.008956863220517736687 0.36254650513481928575 +121.29025177946014935 189.64769184547239433 184.50657012398698953 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody145 1.1053539394491334998e-06 0.002779232403688257159 +SmallBody146 1.1053539394491334998e-06 0.0027578080848200011476 1.0978911404624207108e-05 -1.3200162343762673611 0.0011825034198607953326 0.3931650954771686024 -199.15447694467161455 110.263445447020046686 357.83521607737361592 +1.3098406014644528028 0.0056589502407743417015 0.08293282783205013775 +315.32825454372186869 279.82080093042981161 19.65029600018359801 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody146 1.1053539394491334998e-06 0.0007386121576737557171 +SmallBody147 1.1053539394491334998e-06 0.0023981914504280625166 1.0978911404624207108e-05 -0.35080910748707688773 0.0027024900833699395247 0.19622296338412259509 -292.6436334273752209 93.80156934406009839 28.132779645617151942 +1.1390381184050475394 0.0054921408623832372597 0.33632472865489532188 +39.60708748515543931 265.44784092754434823 323.46447648207958991 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody147 1.1053539394491334998e-06 0.00087410562446381314443 +SmallBody148 1.1053539394491334998e-06 0.0027667358427180895877 1.0978911404624207108e-05 -0.41516269503788583162 0.008753675790044105481 0.049200587066592693652 -245.22266454023861115 133.22745192774976886 358.34006313094175766 +1.3140809036955358735 0.008080088517111517696 0.33090618278665295815 +182.2317633907563561 87.796139009040985 55.611849921214940196 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody148 1.1053539394491334998e-06 0.0040583585328557611443 +SmallBody149 1.1053539394491334998e-06 0.001636891482929803791 1.0978911404624207108e-05 -1.9275463042168652361 0.008863374200234029263 0.11472348585362174278 -68.51868890765923936 343.0156047967958557 250.37058077253891497 +0.7774532739731071507 0.0061030699634475847615 0.38140665724921773982 +134.26070969249215636 309.66180555526386797 227.75826272973381492 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody149 1.1053539394491334998e-06 0.0028701976421156316045 +SmallBody150 1.1053539394491334998e-06 0.0033168831098759378657 1.0978911404624207108e-05 -1.3632208225671262891 0.00037100362980518777727 0.40857805997329038616 -138.99534285941138023 75.25892901304128202 102.39451884516589075 +1.575377268469625669 0.0059246316490175207972 0.022806742355012399326 +351.98634627032316757 21.746445058869653622 77.129697842788047524 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody150 1.1053539394491334998e-06 0.0028371368040875375277 +SmallBody151 1.1053539394491334998e-06 0.0008955120407553322315 1.0978911404624207108e-05 -1.3475183419608791624 0.00923347856029827288 0.111868912647413332184 -163.972662313269268 324.1674645569764266 326.5948943827923472 +0.42532982499330906911 0.008813648447450198736 0.3345833792526932693 +35.495600304697589422 353.72250623508887202 71.293026142875973505 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody151 1.1053539394491334998e-06 0.002298777012902104625 +SmallBody152 1.1053539394491334998e-06 0.00076337994194106294544 1.0978911404624207108e-05 -1.0918205228950430552 0.0038962200559046968225 0.07185178854072693522 -95.25129914312677215 288.83172427646081815 113.743637781598437186 +0.36257274311502485364 0.0009343333415137500871 0.39929588634292678684 +47.20717343738380123 71.761948619615196776 175.59400320868542167 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody152 1.1053539394491334998e-06 0.0026756500371529266427 +SmallBody153 1.1053539394491334998e-06 0.0015551031619249502934 1.0978911404624207108e-05 -1.2708190512834474095 0.0031796818189825425474 0.34148938686865598635 -240.33583276715017973 159.13444408059913826 16.850108154309943131 +0.73860732810492057965 0.009823625903742597143 0.20706731183664767171 +49.3357061425451775 189.53336005615224735 130.90764325570890492 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody153 1.1053539394491334998e-06 0.0030031099519741718352 +SmallBody154 1.1053539394491334998e-06 0.0039929544866864698254 1.0978911404624207108e-05 -1.4263484712405121169 0.008772238975162893054 0.2928674262574444409 -332.10498285516734995 307.4942771576799032 198.04833839322409972 +1.8964821864328371692 0.001828422477509375043 0.40484379956372262832 +174.74748700727161577 352.56235568809995584 328.87472865506998687 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 -SmallBody154 1.1053539394491334998e-06 0.0037055221237351476841 +SmallBody155 1.1053539394491334998e-06 0.0007365912012181665501 1.0978911404624207108e-05 -1.7599641374645813574 0.0075196173991873881473 0.31916489509013851178 -47.261748044667832858 81.10596844478185119 286.61303054015036196 +0.3498492398175703788 0.008020197055140211584 0.08492570488832668074 +212.11388826902651772 279.1723246694339764 250.916201365835974 0.4000000000000000222 0.4000000000000000222 0.4000000000000000222 0.0 0.0 0.0 From eee38ad7f45b02d7188b7554f480c1045e3671f8 Mon Sep 17 00:00:00 2001 From: David Minton Date: Sat, 28 Aug 2021 17:17:09 -0400 Subject: [PATCH 254/315] Updated movie script so that it can actually process out the empty data in a reasonable amount of time --- examples/symba_mars_disk/aescattermovie.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index eaaa4d9b4..c91296c63 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -20,14 +20,11 @@ class AnimatedScatter(object): def __init__(self, ds, param): frame = 0 - nframes = int(ds['time'].size / framejump) self.ds = ds - self.param = param + self.nframes = int(ds['time'].size / framejump) self.Rcb = self.ds['radius'].sel(id=0, time=0).values - self.ds['radmarker'] = self.ds['radius'].fillna(0) - np.where(self.ds['radmarker'] > ncutoff, 0, self.ds['radmarker']) - self.ds['radmarker'] = (self.ds['radmarker'] / self.Rcb) * radscale - + self.ds = ds + self.param = param self.clist = {'Initial conditions' : 'xkcd:faded blue', 'Disruption' : 'xkcd:marigold', 'Supercatastrophic' : 'xkcd:shocking pink', @@ -41,7 +38,8 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=self.nframes, init_func=self.setup_plot, blit=True) + #self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') @@ -79,10 +77,10 @@ def setup_plot(self): def data_stream(self, frame=0): while True: d = self.ds.isel(time=frame) - d = d.where(d['a'] < ncutoff, drop=True) + d = d.where(d['radius'] < self.Rcb, drop=True) + d['radmarker'] = (d['radius'] / self.Rcb) * radscale radius = d['radmarker'].values - d = d.where(d['a'] > self.Rcb, drop=True) Gmass = d['Gmass'].values a = d['a'].values / self.Rcb From 44ea179096a4f0a94cbf4d79f2ff798dbe3d7e35 Mon Sep 17 00:00:00 2001 From: David Minton Date: Sat, 28 Aug 2021 19:56:31 -0400 Subject: [PATCH 255/315] Added proper npl variable reference to animation maker. --- examples/symba_mars_disk/aescattermovie.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index c91296c63..f4da3762e 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -86,7 +86,7 @@ def data_stream(self, frame=0): a = d['a'].values / self.Rcb e = d['e'].values name = d['id'].values - npl = d.id.count().values + npl = d['npl'].values[0] radmarker = d['radmarker'] origin = d['origin_type'].values From 18022745c75de914a8389eb21091902a79924d4b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 29 Aug 2021 10:13:43 -0400 Subject: [PATCH 256/315] Switched to gfortran, as ifort keeps segfaulting without providing traceback. Fixed up some parallelized code and started adding more metadata to the particle info type. --- Makefile.Defines | 8 +++---- examples/symba_mars_disk/testnetcdf.ipynb | 27 ++++++++++------------- src/kick/kick.f90 | 2 ++ src/modules/swiftest_classes.f90 | 19 +++++++++------- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index e764b40ee..4e3ead7c5 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -67,13 +67,13 @@ GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporari GPRODUCTION = -O3 -ffree-line-length-none $(GPAR) #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -FFLAGS = $(IPRODUCTION) $(OPTREPORT) -FORTRAN = ifort +#FFLAGS = $(IPRODUCTION) -g -traceback $(OPTREPORT) +#FORTRAN = ifort #AR = xiar -#FORTRAN = gfortran +FORTRAN = gfortran #FFLAGS = $(GDEBUG) $(GMEM) $(GPAR) -#FFLAGS = $(GPRODUCTION) +FFLAGS = $(GPRODUCTION) AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 405947b38..50ac91b3b 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -11,7 +11,7 @@ "'/home/daminton/git/swiftest/examples/symba_mars_disk'" ] }, - "execution_count": 1, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -405,28 +405,25 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'origin_type' (id: 1533)>\n",
    -       "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
    -       "       ..., 'Disruption', 'Disruption', 'Disruption'], dtype='<U18')\n",
    +       "
    <xarray.DataArray 'npl' (time: 2)>\n",
    +       "array([1500, 1518], dtype=int32)\n",
            "Coordinates:\n",
    -       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1526 1527 1528 1529 1530 1531 1532
    " + " * time (time) float64 0.0 6e+03
    " ], "text/plain": [ - "\n", - "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n", - " ..., 'Disruption', 'Disruption', 'Disruption'], dtype='\n", + "array([1500, 1518], dtype=int32)\n", "Coordinates:\n", - " * id (id) int32 0 1 2 3 4 5 6 7 ... 1526 1527 1528 1529 1530 1531 1532" + " * time (time) float64 0.0 6e+03" ] }, - "execution_count": 3, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sim.ds['origin_type']" + "sim.ds['npl']" ] }, { diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 19d717b0d..f2c49ad06 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -98,7 +98,9 @@ module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do + !$omp parallel workshare acc(:,1:npl) = acc(:,1:npl) + ahi(:,1:npl) + ahj(:,1:npl) + !$omp end parallel workshare return end subroutine kick_getacch_int_all_pl diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 75b792b57..ec1a3e9df 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -160,12 +160,17 @@ module swiftest_classes !> Class definition for the particle origin information object. This object is used to track time, location, and collisional regime !> of fragments produced in collisional events. type :: swiftest_particle_info - character(len=NAMELEN) :: name !! Non-unique name - character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) - character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) - real(DP) :: origin_time !! The time of the particle's formation - real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation - real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation + character(len=NAMELEN) :: name !! Non-unique name + character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) + character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) + real(DP) :: origin_time !! The time of the particle's formation + real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation + real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation + real(DP) :: discard_time !! The time of the particle's discard + character(len=NAMELEN) :: status !! Particle status description: Active, Merged, Fragmented, etc. + real(DP), dimension(NDIM) :: discard_xh !! The heliocentric distance vector at the time of the particle's discard + real(DP), dimension(NDIM) :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard + integer(I4B) :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved) contains procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file @@ -844,7 +849,6 @@ module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, end subroutine kick_getacch_int_all_pl module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj) - !$omp declare simd(kick_getacch_int_one_pl) implicit none real(DP), intent(in) :: rji2 !! Square of distance between the two bodies real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions @@ -855,7 +859,6 @@ module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi, end subroutine kick_getacch_int_one_pl module pure subroutine kick_getacch_int_one_tp(rji2, xr, yr, zr, Gmpl, ax, ay, az) - !$omp declare simd(kick_getacch_int_one_tp) implicit none real(DP), intent(in) :: rji2 !! Square of distance between the test particle and massive body real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions From c22a1a7dd39b73f5ecfc71f4d0ee2ddbfe1175b9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 29 Aug 2021 10:34:53 -0400 Subject: [PATCH 257/315] Temporarily enabled reading from the binary dump files even in NetCDF mode in order to be able to restart, until writing/reading NetCDF dump files is enabled. --- src/io/io.f90 | 13 +++++++++++-- src/main/swiftest_driver.f90 | 2 +- src/setup/setup.f90 | 15 +-------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c3417f094..65a61da6a 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -154,7 +154,7 @@ module subroutine io_dump_particle_info_base(self, param, idx) integer(I4B) :: i character(STRMAX) :: errmsg - if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then + !if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then if (lfirst) then select case(param%out_stat) case('APPEND') @@ -190,7 +190,8 @@ module subroutine io_dump_particle_info_base(self, param, idx) end select close(unit = LUN, err = 667, iomsg = errmsg) - else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + !else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then call param%nciu%open(param) call self%write_particle_info(param%nciu) call param%nciu%close(param) @@ -1851,6 +1852,7 @@ module subroutine io_write_frame_system(self, param) end if call self%write_hdr(iu, param) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + if (lfirst) then inquire(file=param%outfile, exist=fileExists) @@ -1872,6 +1874,13 @@ module subroutine io_write_frame_system(self, param) end if end select + select type(param) + class is (symba_parameters) + param%nciu%ltrack_origin = param%lfragmentation + class default + param%nciu%ltrack_origin = .false. + end select + select case(param%out_stat) case('APPEND') call param%nciu%open(param) diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 3b7765347..e7b327e93 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -53,7 +53,7 @@ program swiftest_driver nloops = ceiling(tstop / dt, kind=I8B) ioutput = ceiling(t0/ dt, kind=I8B) / int(istep_out, kind=I8B) ! Prevent duplicate frames from being written if this is a restarted run - if (param%lrestart) then + if ((param%lrestart) .and. ((param%out_type == REAL8_TYPE) .or. param%out_type == REAL4_TYPE)) then old_t_final = nbody_system%get_old_t_final(param) else old_t_final = t0 diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 11bd69fd1..4477fd788 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -141,21 +141,8 @@ module subroutine setup_initialize_particle_info_system(self, param) integer(I4B) :: i associate(cb => self%cb, pl => self%pl, npl => self%pl%nbody, tp => self%tp, ntp => self%tp%nbody) - select type(param) - class is (symba_parameters) - param%nciu%ltrack_origin = param%lfragmentation - class default - param%nciu%ltrack_origin = .false. - end select - - select type(param) - class is (symba_parameters) - ltrack_origin = param%lfragmentation - class default - ltrack_origin = .false. - end select - if (ltrack_origin) then + if (param%nciu%ltrack_origin) then cb%info%origin_type = "Initial conditions" cb%info%origin_time = param%t0 cb%info%origin_xh(:) = 0.0_DP From 1ae2a6fce3c30350d8bc7439ddb29b7721b2b8a3 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 29 Aug 2021 10:52:22 -0400 Subject: [PATCH 258/315] Small changes to help track down the source of a mysterious segfault that only happens in ifort --- src/symba/symba_encounter_check.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index c1b83f9dd..5aa0af850 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -19,7 +19,7 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc integer(I8B) :: k, nplplm integer(I4B) :: i, j, nenc real(DP) :: xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2 - logical, dimension(self%nplplm) :: lencounter, loc_lvdotr + logical, dimension(:), allocatable :: lencounter, loc_lvdotr real(DP), dimension(:,:), pointer :: xh, vh real(DP), dimension(:), pointer :: rhill integer(I4B), dimension(:,:), pointer :: k_plpl @@ -28,6 +28,8 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc associate(pl => self, xh => self%xh, vh => self%vh, rhill => self%rhill, npl => self%nbody, k_plpl => self%k_plpl) nplplm = self%nplplm + allocate(lencounter(nplplm)) + allocate(loc_lvdotr(nplplm)) lencounter(:) = .false. loc_lvdotr(:) = .false. @@ -48,7 +50,9 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc end do !$omp end parallel do + !$omp parallel workshare nenc = count(lencounter(:)) + !$omp end parallel workshare lany_encounter = nenc > 0 if (lany_encounter) then associate(plplenc_list => system%plplenc_list) From 874300d647bc537073d1fd0e8124fd5dbefc60e6 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 29 Aug 2021 13:56:00 -0400 Subject: [PATCH 259/315] Changes in a number of places to improve the robustness of the code --- src/discard/discard.f90 | 7 +- src/fragmentation/fragmentation.f90 | 6 +- src/rmvs/rmvs_discard.f90 | 8 +- src/rmvs/rmvs_util.f90 | 12 ++- src/symba/symba_collision.f90 | 7 +- src/symba/symba_discard.f90 | 11 +- src/symba/symba_encounter_check.f90 | 58 +++++------ src/symba/symba_kick.f90 | 141 +++++++++++++------------- src/symba/symba_util.f90 | 6 +- src/util/util_append.f90 | 3 +- src/util/util_fill.f90 | 2 + src/util/util_get_energy_momentum.f90 | 46 +++++---- src/util/util_resize.f90 | 2 + src/util/util_sort.f90 | 18 +++- src/util/util_spill.f90 | 2 + src/whm/whm_util.f90 | 5 +- 16 files changed, 194 insertions(+), 140 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index 1d9922207..cf38c2bbd 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -236,13 +236,12 @@ subroutine discard_pl_tp(tp, system, param) tp%status(i) = DISCARDED_PLR tp%lmask(i) = .false. pl%ldiscard(j) = .true. - write(*, *) "Particle ", tp%id(i), " too close to massive body ", pl%id(j), " at t = ", t write(idstri, *) tp%id(i) write(idstrj, *) pl%id(j) write(timestr, *) param%t - write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstri)) // ")" & - // " too close to massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstrj)) & - // " at t = " // trim(adjustl(timestr)) + write(*, *) "Test particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstri)) // ")" & + // " too close to massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstrj)) & + // " at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. exit end if diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 index 43ed02599..c62d337ca 100644 --- a/src/fragmentation/fragmentation.f90 +++ b/src/fragmentation/fragmentation.f90 @@ -152,12 +152,12 @@ module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, ! write(*, "(' -------------------------------------------------------------------------------------')") ! call calculate_system_energy(linclude_fragments=.true.) if (lfailure) then - ! write(*,*) "symba_frag_pos failed after: ",try," tries" + write(*,*) "symba_frag_pos failed after: ",try," tries" do ii = 1, nfrag vb_frag(:, ii) = vcom(:) end do - ! else - ! write(*,*) "symba_frag_pos succeeded after: ",try," tries" + else + write(*,*) "symba_frag_pos succeeded after: ",try," tries" ! write(*, "(' dL_tot should be very small' )") ! write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before ! write(*, "(' dE_tot should be negative and equal to Qloss' )") diff --git a/src/rmvs/rmvs_discard.f90 b/src/rmvs/rmvs_discard.f90 index bcdb9f902..724c107be 100644 --- a/src/rmvs/rmvs_discard.f90 +++ b/src/rmvs/rmvs_discard.f90 @@ -16,6 +16,7 @@ module subroutine rmvs_discard_tp(self, system, param) class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals integer(I4B) :: i + character(len=STRMAX) :: timestr, idstri, idstrj if (self%nbody == 0) return @@ -25,7 +26,12 @@ module subroutine rmvs_discard_tp(self, system, param) if ((tp%status(i) == ACTIVE) .and. (tp%lperi(i))) then if ((tp%peri(i) < pl%radius(iplperP))) then tp%status(i) = DISCARDED_PLQ - write(*, *) "Particle ",tp%id(i)," q with respect to Planet ",pl%id(iplperP)," is too small at t = ",t + write(idstri, *) tp%id(i) + write(idstrj, *) pl%id(iplperP) + write(timestr, *) t + write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstri)) & + // ") q with respect to massive body " // trim(adjustl(pl%info(iplperP)%name)) // " (" // trim(adjustl(idstrj)) & + // ") is too small at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. end if diff --git a/src/rmvs/rmvs_util.f90 b/src/rmvs/rmvs_util.f90 index 140c43426..3b823c190 100644 --- a/src/rmvs/rmvs_util.f90 +++ b/src/rmvs/rmvs_util.f90 @@ -189,9 +189,11 @@ module subroutine rmvs_util_sort_pl(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction + if (self%nbody == 0) return + if (ascending) then direction = 1 else @@ -199,6 +201,7 @@ module subroutine rmvs_util_sort_pl(self, sortby, ascending) end if associate(pl => self, npl => self%nbody) + allocate(ind(npl)) select case(sortby) case("nenc") call util_sort(direction * pl%nenc(1:npl), ind(1:npl)) @@ -231,8 +234,10 @@ module subroutine rmvs_util_sort_tp(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind - integer(I4B) :: direction + integer(I4B), dimension(:), allocatable :: ind + integer(I4B) :: direction + + if (self%nbody == 0) return if (ascending) then direction = 1 @@ -241,6 +246,7 @@ module subroutine rmvs_util_sort_tp(self, sortby, ascending) end if associate(tp => self, ntp => self%nbody) + allocate(ind(ntp)) select case(sortby) case("plperP") call util_sort(direction * tp%plperP(1:ntp), ind(1:ntp)) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 7a68a56cd..df215665f 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -740,7 +740,7 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - logical, dimension(self%nenc) :: lplpl_collision + logical, dimension(:), allocatable :: lplpl_collision logical, dimension(:), allocatable :: lplpl_unique_parent integer(I4B), dimension(:), pointer :: plparent integer(I4B), dimension(:), allocatable :: collision_idx, unique_parent_idx @@ -749,6 +749,7 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par select type (pl => system%pl) class is (symba_pl) associate(plplenc_list => self, nplplenc => self%nenc, idx1 => self%index1, idx2 => self%index2, plparent => pl%kin%parent) + allocate(lplpl_collision(nplplenc)) lplpl_collision(:) = plplenc_list%status(1:nplplenc) == COLLISION if (.not.any(lplpl_collision)) return ! Collisions have been detected in this step. So we need to determine which of them are between unique bodies. @@ -1139,6 +1140,7 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir ! Internals real(DP) :: Eorbit_before, Eorbit_after logical :: lplpl_collision + character(len=STRMAX) :: timestr associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) select type(pl => system%pl) @@ -1157,7 +1159,8 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir end if do - write(*, *) "Collision between massive bodies detected at time t = ", t + write(timestr,*) t + write(*, *) "Collision between massive bodies detected at time t = " // trim(adjustl(timestr)) if (param%lfragmentation) then call plplcollision_list%resolve_fragmentations(system, param) else diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index b1a433fca..f812dc664 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -36,14 +36,14 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAX write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) + write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_RMIN write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) + write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) vb2 = dot_product(pl%vb(:,i), pl%vb(:,i)) @@ -54,7 +54,7 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAXU write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) "Massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) end if end if end if @@ -255,6 +255,7 @@ subroutine symba_discard_peri_pl(pl, system, param) logical, save :: lfirst = .true. logical :: lfirst_orig integer(I4B) :: i + character(len=STRMAX) :: timestr, idstr lfirst_orig = pl%lfirst @@ -271,7 +272,9 @@ subroutine symba_discard_peri_pl(pl, system, param) pl%ldiscard(i) = .true. pl%lcollision(i) = .false. pl%status(i) = DISCARDED_PERI - write(*, *) "Particle ", pl%id(i), " perihelion distance too small at t = ", param%t + write(timestr, *) param%t + write(idstr, *) pl%id(i) + write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ") perihelion distance too small at t = " // trim(adjustl(timestr)) end if end if end if diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 5aa0af850..78403c348 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -99,7 +99,7 @@ module function symba_encounter_check(self, system, dt, irec) result(lany_encoun integer(I4B), intent(in) :: irec !! Current recursion level logical :: lany_encounter !! Returns true if there is at least one close encounter ! Internals - integer(I4B) :: k + integer(I4B) :: i, j,k real(DP), dimension(NDIM) :: xr, vr logical :: lencounter, isplpl real(DP) :: rlim2, rji2 @@ -122,40 +122,40 @@ module function symba_encounter_check(self, system, dt, irec) result(lany_encoun allocate(lencmask(self%nenc)) lencmask(:) = (self%status(1:self%nenc) == ACTIVE) .and. (self%level(1:self%nenc) == irec - 1) if (.not.any(lencmask(:))) return - associate(ind1 => self%index1, ind2 => self%index2) - do concurrent(k = 1:self%nenc, lencmask(k)) + do concurrent(k = 1:self%nenc, lencmask(k)) + i = self%index1(k) + j = self%index2(k) + if (isplpl) then + xr(:) = pl%xh(:,j) - pl%xh(:,i) + vr(:) = pl%vb(:,j) - pl%vb(:,i) + call symba_encounter_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%rhill(i), pl%rhill(j), dt, irec, lencounter, self%lvdotr(k)) + else + xr(:) = tp%xh(:,j) - pl%xh(:,i) + vr(:) = tp%vb(:,j) - pl%vb(:,i) + call symba_encounter_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%rhill(i), 0.0_DP, dt, irec, lencounter, self%lvdotr(k)) + end if + if (lencounter) then if (isplpl) then - xr(:) = pl%xh(:,ind2(k)) - pl%xh(:,ind1(k)) - vr(:) = pl%vb(:,ind2(k)) - pl%vb(:,ind1(k)) - call symba_encounter_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%rhill(ind1(k)), pl%rhill(ind2(k)), dt, irec, lencounter, self%lvdotr(k)) + rlim2 = (pl%radius(i) + pl%radius(j))**2 else - xr(:) = tp%xh(:,ind2(k)) - pl%xh(:,ind1(k)) - vr(:) = tp%vb(:,ind2(k)) - pl%vb(:,ind1(k)) - call symba_encounter_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%rhill(ind1(k)), 0.0_DP, dt, irec, lencounter, self%lvdotr(k)) + rlim2 = (pl%radius(i))**2 end if - if (lencounter) then + rji2 = dot_product(xr(:), xr(:))! Check to see if these are physically overlapping bodies first, which we should ignore + if (rji2 > rlim2) then + lany_encounter = .true. + pl%levelg(i) = irec + pl%levelm(i) = MAX(irec, pl%levelm(i)) if (isplpl) then - rlim2 = (pl%radius(ind1(k)) + pl%radius(ind2(k)))**2 + pl%levelg(j) = irec + pl%levelm(j) = MAX(irec, pl%levelm(j)) else - rlim2 = (pl%radius(ind1(k)))**2 + tp%levelg(j) = irec + tp%levelm(j) = MAX(irec, tp%levelm(j)) end if - rji2 = dot_product(xr(:), xr(:))! Check to see if these are physically overlapping bodies first, which we should ignore - if (rji2 > rlim2) then - lany_encounter = .true. - pl%levelg(ind1(k)) = irec - pl%levelm(ind1(k)) = MAX(irec, pl%levelm(ind1(k))) - if (isplpl) then - pl%levelg(ind2(k)) = irec - pl%levelm(ind2(k)) = MAX(irec, pl%levelm(ind2(k))) - else - tp%levelg(ind2(k)) = irec - tp%levelm(ind2(k)) = MAX(irec, tp%levelm(ind2(k))) - end if - self%level(k) = irec - end if - end if - end do - end associate + self%level(k) = irec + end if + end if + end do end select end select diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index 9a5b11229..c80f53536 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -36,7 +36,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) ! Internals integer(I4B) :: i, j integer(I8B) :: k, nplplenc - real(DP) :: rji2, rlim2, xr, yr, zr + real(DP) :: rjj, rlim2, xr, yr, zr real(DP), dimension(NDIM,self%nbody) :: ah_enc integer(I4B), dimension(:,:), allocatable :: k_plpl_enc @@ -78,7 +78,7 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals integer(I4B) :: k - real(DP) :: rji2, fac, rlim2 + real(DP) :: rjj, fac, rlim2 real(DP), dimension(NDIM) :: dx if (self%nbody == 0) return @@ -95,8 +95,8 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) else dx(:) = tp%xh(:,j) - pl%xend(:,i) end if - rji2 = dot_product(dx(:), dx(:)) - fac = pl%Gmass(i) / (rji2 * sqrt(rji2)) + rjj = dot_product(dx(:), dx(:)) + fac = pl%Gmass(i) / (rjj * sqrt(rjj)) tp%ah(:,j) = tp%ah(:,j) + fac * dx(:) end IF end associate @@ -123,15 +123,17 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) integer(I4B), intent(in) :: irec !! Current recursion level integer(I4B), intent(in) :: sgn !! sign to be applied to acceleration ! Internals - integer(I4B) :: i, irm1, irecl, ngood + integer(I4B) :: i, j, irm1, irecl, ngood + integer(I8B) :: k real(DP) :: r, rr, ri, ris, rim1, r2, ir3, fac, faci, facj real(DP), dimension(NDIM) :: dx logical :: isplpl - logical, dimension(self%nenc) :: lgoodlevel + logical, dimension(:), allocatable :: lgoodlevel integer(I4B), dimension(:), allocatable :: good_idx if (self%nenc == 0) return + select type(self) class is (symba_plplenc) isplpl = .true. @@ -142,9 +144,10 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) class is (symba_pl) select type(tp => system%tp) class is (symba_tp) - associate(ind1 => self%index1, ind2 => self%index2, npl => pl%nbody, ntp => tp%nbody, nenc => self%nenc) + associate(npl => pl%nbody, ntp => tp%nbody, nenc => self%nenc) if (npl > 0) pl%lmask(1:npl) = pl%status(1:npl) /= INACTIVE if (ntp > 0) tp%lmask(1:ntp) = tp%status(1:ntp) /= INACTIVE + allocate(lgoodlevel(nenc)) irm1 = irec - 1 @@ -154,89 +157,89 @@ module subroutine symba_kick_encounter(self, system, dt, irec, sgn) irecl = irec end if - do i = 1, nenc + do k = 1, nenc + i = self%index1(k) + j = self%index2(k) if (isplpl) then - lgoodlevel(i) = (pl%levelg(ind1(i)) >= irm1) .and. (pl%levelg(ind2(i)) >= irm1) + lgoodlevel(k) = (pl%levelg(i) >= irm1) .and. (pl%levelg(j) >= irm1) else - lgoodlevel(i) = (pl%levelg(ind1(i)) >= irm1) .and. (tp%levelg(ind2(i)) >= irm1) + lgoodlevel(k) = (pl%levelg(i) >= irm1) .and. (tp%levelg(j) >= irm1) end if - lgoodlevel(i) = (self%status(i) == ACTIVE) .and. lgoodlevel(i) + lgoodlevel(k) = (self%status(k) == ACTIVE) .and. lgoodlevel(k) end do ngood = count(lgoodlevel(:)) - if (ngood > 0) then + if (ngood > 0_I8B) then allocate(good_idx(ngood)) good_idx(:) = pack([(i, i = 1, nenc)], lgoodlevel(:)) if (isplpl) then - do i = 1, ngood - associate(i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) - pl%ah(:,i1) = 0.0_DP - pl%ah(:,i2) = 0.0_DP - end associate + do concurrent (k = 1:ngood) + i = self%index1(good_idx(k)) + j = self%index2(good_idx(k)) + pl%ah(:,i) = 0.0_DP + pl%ah(:,j) = 0.0_DP end do else - do i = 1, ngood - associate(i2 => ind2(good_idx(i))) - tp%ah(:,i2) = 0.0_DP - end associate + do concurrent (k = 1_I8B:ngood) + j = self%index2(good_idx(k)) + tp%ah(:,j) = 0.0_DP end do end if - do i = 1, ngood - associate(k => good_idx(i), i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) - if (isplpl) then - ri = ((pl%rhill(i1) + pl%rhill(i2))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) - rim1 = ri * (RSHELL**2) - dx(:) = pl%xh(:,i2) - pl%xh(:,i1) - else - ri = ((pl%rhill(i1))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) - rim1 = ri * (RSHELL**2) - dx(:) = tp%xh(:,i2) - pl%xh(:,i1) - end if - r2 = dot_product(dx(:), dx(:)) - if (r2 < rim1) then - fac = 0.0_DP - lgoodlevel(k) = .false. - cycle - end if - if (r2 < ri) then - ris = sqrt(ri) - r = sqrt(r2) - rr = (ris - r) / (ris * (1.0_DP - RSHELL)) - fac = (r2**(-1.5_DP)) * (1.0_DP - 3 * (rr**2) + 2 * (rr**3)) - else - ir3 = 1.0_DP / (r2 * sqrt(r2)) - fac = ir3 - end if - faci = fac * pl%Gmass(i1) - if (isplpl) then - facj = fac * pl%Gmass(i2) - pl%ah(:, i1) = pl%ah(:, i1) + facj * dx(:) - pl%ah(:, i2) = pl%ah(:, i2) - faci * dx(:) - else - tp%ah(:, i2) = tp%ah(:, i2) - faci * dx(:) - end if - end associate + do k = 1, ngood + i = self%index1(good_idx(k)) + j = self%index2(good_idx(k)) + if (isplpl) then + ri = ((pl%rhill(i) + pl%rhill(j))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) + rim1 = ri * (RSHELL**2) + dx(:) = pl%xh(:,j) - pl%xh(:,i) + else + ri = ((pl%rhill(i))**2) * (RHSCALE**2) * (RSHELL**(2*irecl)) + rim1 = ri * (RSHELL**2) + dx(:) = tp%xh(:,j) - pl%xh(:,i) + end if + r2 = dot_product(dx(:), dx(:)) + if (r2 < rim1) then + fac = 0.0_DP + lgoodlevel(good_idx(k)) = .false. + cycle + end if + if (r2 < ri) then + ris = sqrt(ri) + r = sqrt(r2) + rr = (ris - r) / (ris * (1.0_DP - RSHELL)) + fac = (r2**(-1.5_DP)) * (1.0_DP - 3 * (rr**2) + 2 * (rr**3)) + else + ir3 = 1.0_DP / (r2 * sqrt(r2)) + fac = ir3 + end if + faci = fac * pl%Gmass(i) + if (isplpl) then + facj = fac * pl%Gmass(j) + pl%ah(:, i) = pl%ah(:, i) + facj * dx(:) + pl%ah(:, j) = pl%ah(:, j) - faci * dx(:) + else + tp%ah(:, j) = tp%ah(:, j) - faci * dx(:) + end if end do ngood = count(lgoodlevel(:)) - if (ngood == 0) return + if (ngood == 0_I8B) return good_idx(1:ngood) = pack([(i, i = 1, nenc)], lgoodlevel(:)) if (isplpl) then - do i = 1, ngood - associate(i1 => ind1(good_idx(i)), i2 => ind2(good_idx(i))) - pl%vb(:,i1) = pl%vb(:,i1) + sgn * dt * pl%ah(:,i1) - pl%vb(:,i2) = pl%vb(:,i2) + sgn * dt * pl%ah(:,i2) - pl%ah(:,i1) = 0.0_DP - pl%ah(:,i2) = 0.0_DP - end associate + do k = 1, ngood + i = self%index1(good_idx(k)) + j = self%index2(good_idx(k)) + pl%vb(:,i) = pl%vb(:,i) + sgn * dt * pl%ah(:,i) + pl%vb(:,j) = pl%vb(:,j) + sgn * dt * pl%ah(:,j) + pl%ah(:,i) = 0.0_DP + pl%ah(:,j) = 0.0_DP end do else - do i = 1, ngood - associate(i2 => ind2(good_idx(i))) - tp%vb(:,i2) = tp%vb(:,i2) + sgn * dt * tp%ah(:,i2) - tp%ah(:,i2) = 0.0_DP - end associate + do k = 1, ngood + j = self%index2(good_idx(k)) + tp%vb(:,j) = tp%vb(:,j) + sgn * dt * tp%ah(:,j) + tp%ah(:,j) = 0.0_DP end do end if end if diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 150bf7825..91a81091a 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -646,7 +646,7 @@ module subroutine symba_util_sort_pl(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction if (self%nbody == 0) return @@ -658,6 +658,7 @@ module subroutine symba_util_sort_pl(self, sortby, ascending) end if associate(pl => self, npl => self%nbody) + allocate(ind(npl)) select case(sortby) case("nplenc") call util_sort(direction * pl%nplenc(1:npl), ind(1:npl)) @@ -696,7 +697,7 @@ module subroutine symba_util_sort_tp(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction if (self%nbody == 0) return @@ -708,6 +709,7 @@ module subroutine symba_util_sort_tp(self, sortby, ascending) end if associate(tp => self, ntp => self%nbody) + allocate(ind(ntp)) select case(sortby) case("nplenc") call util_sort(direction * tp%nplenc(1:ntp), ind(1:ntp)) diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index 6abbc0e9a..ecefb1572 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -258,7 +258,6 @@ module subroutine util_append_pl(self, source, lsource_mask) class(swiftest_body), intent(in) :: source !! Source object to append logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to - select type(source) class is (swiftest_pl) associate(nold => self%nbody, nsrc => source%nbody) @@ -276,6 +275,8 @@ module subroutine util_append_pl(self, source, lsource_mask) call util_append(self%Q, source%Q, nold, nsrc, lsource_mask) call util_append(self%tlag, source%tlag, nold, nsrc, lsource_mask) + if (allocated(self%k_plpl)) deallocate(self%k_plpl) + call util_append_body(self, source, lsource_mask) end associate class default diff --git a/src/util/util_fill.f90 b/src/util/util_fill.f90 index 541ee40cd..26b21310e 100644 --- a/src/util/util_fill.f90 +++ b/src/util/util_fill.f90 @@ -206,6 +206,8 @@ module subroutine util_fill_pl(self, inserts, lfill_list) call util_fill(keeps%vbeg, inserts%vbeg, lfill_list) call util_fill(keeps%Ip, inserts%Ip, lfill_list) call util_fill(keeps%rot, inserts%rot, lfill_list) + + if (allocated(keeps%k_plpl)) deallocate(keeps%k_plpl) call util_fill_body(keeps, inserts, lfill_list) class default diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index 4243070ac..70fbb16df 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -14,18 +14,19 @@ module subroutine util_get_energy_momentum_system(self, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals integer(I4B) :: i, j - integer(I8B) :: k + integer(I8B) :: k, nplpl real(DP) :: oblpot, kecb, kespincb real(DP), dimension(self%pl%nbody) :: irh, kepl, kespinpl, pecb real(DP), dimension(self%pl%nbody) :: Lplorbitx, Lplorbity, Lplorbitz real(DP), dimension(self%pl%nbody) :: Lplspinx, Lplspiny, Lplspinz - real(DP), dimension(self%pl%nplpl) :: pepl + logical, dimension(self%pl%nbody) :: lstatus real(DP), dimension(NDIM) :: Lcborbit, Lcbspin - logical, dimension(self%pl%nplpl) :: lstatpl - logical, dimension(self%pl%nbody) :: lstatus + real(DP), dimension(:), allocatable :: pepl + logical, dimension(:), allocatable :: lstatpl real(DP) :: hx, hy, hz associate(system => self, pl => self%pl, npl => self%pl%nbody, cb => self%cb) + nplpl = pl%nplpl system%Lorbit(:) = 0.0_DP system%Lspin(:) = 0.0_DP system%Ltot(:) = 0.0_DP @@ -82,24 +83,35 @@ module subroutine util_get_energy_momentum_system(self, param) end if ! Do the central body potential energy component first - associate(px => pl%xb(1,:), py => pl%xb(2,:), pz => pl%xb(3,:)) - do concurrent(i = 1:npl, lstatus(i)) - pecb(i) = -cb%Gmass * pl%mass(i) / sqrt(px(i)**2 + py(i)**2 + pz(i)**2) - end do - end associate + where(.not. lstatus(1:npl)) + pecb(1:npl) = 0.0_DP + end where + + do concurrent(i = 1:npl, lstatus(i)) + pecb(i) = -cb%Gmass * pl%mass(i) / norm2(pl%xb(:,i)) + end do ! Do the potential energy between pairs of massive bodies - associate(indi => pl%k_plpl(1, :), indj => pl%k_plpl(2, :)) - do concurrent (k = 1:pl%nplpl) - lstatpl(k) = (lstatus(indi(k)) .and. lstatus(indj(k))) - end do + allocate(lstatpl(nplpl)) + allocate(pepl(nplpl)) + do concurrent (k = 1:nplpl) + i = pl%k_plpl(1,k) + j = pl%k_plpl(2,k) + lstatpl(k) = (lstatus(i) .and. lstatus(j)) + end do - do concurrent (k = 1:pl%nplpl, lstatpl(k)) - pepl(k) = -(pl%Gmass(indi(k)) * pl%mass(indj(k))) / norm2(pl%xb(:, indi(k)) - pl%xb(:, indj(k))) - end do - end associate + where(.not.lstatpl(1:nplpl)) + pepl(1:nplpl) = 0.0_DP + end where + + do concurrent (k = 1:nplpl, lstatpl(k)) + i = pl%k_plpl(1,k) + j = pl%k_plpl(2,k) + pepl(k) = -(pl%Gmass(i) * pl%mass(j)) / norm2(pl%xb(:, i) - pl%xb(:, j)) + end do system%pe = sum(pepl(:), lstatpl(:)) + sum(pecb(1:npl), lstatus(1:npl)) + deallocate(lstatpl, pepl) system%ke_orbit = 0.5_DP * (kecb + sum(kepl(1:npl), lstatus(:))) if (param%lrotation) system%ke_spin = 0.5_DP * (kespincb + sum(kespinpl(1:npl), lstatus(:))) diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index ed28d1007..889703ac8 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -307,6 +307,8 @@ module subroutine util_resize_pl(self, nnew) call util_resize(self%Q, nnew) call util_resize(self%tlag, nnew) + if (allocated(self%k_plpl)) deallocate(self%k_plpl) + return end subroutine util_resize_pl diff --git a/src/util/util_sort.f90 b/src/util/util_sort.f90 index 9717f1e3e..b69627b0b 100644 --- a/src/util/util_sort.f90 +++ b/src/util/util_sort.f90 @@ -13,9 +13,11 @@ module subroutine util_sort_body(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction + if (self%nbody == 0) return + if (ascending) then direction = 1 else @@ -23,6 +25,7 @@ module subroutine util_sort_body(self, sortby, ascending) end if associate(body => self, n => self%nbody) + allocate(ind(n)) select case(sortby) case("id") call util_sort(direction * body%id(1:n), ind(1:n)) @@ -55,7 +58,6 @@ module subroutine util_sort_body(self, sortby, ascending) end subroutine util_sort_body - module subroutine util_sort_dp(arr) !! author: David A. Minton !! @@ -235,9 +237,11 @@ module subroutine util_sort_pl(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction + if (self%nbody == 0) return + if (ascending) then direction = 1 else @@ -245,6 +249,7 @@ module subroutine util_sort_pl(self, sortby, ascending) end if associate(pl => self, npl => self%nbody) + allocate(ind(npl)) select case(sortby) case("Gmass","mass") call util_sort(direction * pl%Gmass(1:npl), ind(1:npl)) @@ -286,9 +291,11 @@ module subroutine util_sort_tp(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction + if (self%nbody == 0) return + if (ascending) then direction = 1 else @@ -296,6 +303,7 @@ module subroutine util_sort_tp(self, sortby, ascending) end if associate(tp => self, ntp => self%nbody) + allocate(ind(ntp)) select case(sortby) case("peri") call util_sort(direction * tp%peri(1:ntp), ind(1:ntp)) @@ -506,6 +514,8 @@ module subroutine util_sort_rearrange_pl(self, ind) call util_sort_rearrange(pl%Q, ind, npl) call util_sort_rearrange(pl%tlag, ind, npl) + if (allocated(pl%k_plpl)) deallocate(pl%k_plpl) + call util_sort_rearrange_body(pl, ind) end associate diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index b4d43e019..8f9567ef9 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -417,6 +417,8 @@ module subroutine util_spill_pl(self, discards, lspill_list, ldestructive) call util_spill(keeps%Ip, discards%Ip, lspill_list, ldestructive) call util_spill(keeps%rot, discards%rot, lspill_list, ldestructive) + if (ldestructive .and. allocated(keeps%k_plpl)) deallocate(keeps%k_plpl) + call util_spill_body(keeps, discards, lspill_list, ldestructive) class default write(*,*) 'Error! spill method called for incompatible return type on swiftest_pl' diff --git a/src/whm/whm_util.f90 b/src/whm/whm_util.f90 index 6689e78cb..bedf359ae 100644 --- a/src/whm/whm_util.f90 +++ b/src/whm/whm_util.f90 @@ -141,9 +141,11 @@ module subroutine whm_util_sort_pl(self, sortby, ascending) character(*), intent(in) :: sortby !! Sorting attribute logical, intent(in) :: ascending !! Logical flag indicating whether or not the sorting should be in ascending or descending order ! Internals - integer(I4B), dimension(self%nbody) :: ind + integer(I4B), dimension(:), allocatable :: ind integer(I4B) :: direction + if (self%nbody == 0) return + if (ascending) then direction = 1 else @@ -151,6 +153,7 @@ module subroutine whm_util_sort_pl(self, sortby, ascending) end if associate(pl => self, npl => self%nbody) + allocate(ind(npl)) select case(sortby) case("eta") call util_sort(direction * pl%eta(1:npl), ind(1:npl)) From 8f54fe3904ddfc737f66f7a40aa2c58f7bda487f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sun, 29 Aug 2021 17:41:01 -0400 Subject: [PATCH 260/315] Fixed bug in which rhill was not being set for new fragments. --- Makefile.Defines | 10 ++--- src/symba/symba_collision.f90 | 1 + src/symba/symba_util.f90 | 69 +++++++++++++++++++---------------- 3 files changed, 43 insertions(+), 37 deletions(-) diff --git a/Makefile.Defines b/Makefile.Defines index 4e3ead7c5..e48cb9d07 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -62,18 +62,18 @@ IPRODUCTION = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(PAR) $(SIMD #gfortran flags GDEBUG = -g -Og -fbacktrace -fbounds-check -ffree-line-length-none GPAR = -fopenmp #-ftree-parallelize-loops=4 -GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak +GMEM = -fsanitize-address-use-after-scope -fstack-check -fsanitize=bounds-strict -fsanitize=undefined -fsanitize=signed-integer-overflow -fsanitize=object-size -fstack-protector-all GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries GPRODUCTION = -O3 -ffree-line-length-none $(GPAR) #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -#FFLAGS = $(IPRODUCTION) -g -traceback $(OPTREPORT) -#FORTRAN = ifort +FFLAGS = $(IPRODUCTION) -g -traceback $(OPTREPORT) +FORTRAN = ifort #AR = xiar -FORTRAN = gfortran +#FORTRAN = gfortran #FFLAGS = $(GDEBUG) $(GMEM) $(GPAR) -FFLAGS = $(GPRODUCTION) +#FFLAGS = $(GPRODUCTION) -g -fcheck=all -Wall -fbacktrace AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index df215665f..56713e101 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -969,6 +969,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, end if call plnew%set_mu(cb) + call plnew%set_rhill(cb) !Copy over or set integration parameters for new bodies plnew%lcollision(1:nfrag) = .false. plnew%ldiscard(1:nfrag) = .false. diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 91a81091a..c804aebb7 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -409,7 +409,7 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k, npl, nencmin + integer(I4B) :: i, j, k, npl, nencmin, idnew1, idnew2, idold1, idold2 logical, dimension(:), allocatable :: lmask, ldump_mask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter @@ -418,6 +418,7 @@ module subroutine symba_util_rearray_pl(self, system, param) associate(pl => self, pl_adds => system%pl_adds, nadd => system%pl_adds%nbody) npl = pl%nbody + if (npl == 0) return ! Deallocate any temporary variables if (allocated(pl%xbeg)) deallocate(pl%xbeg) if (allocated(pl%xend)) deallocate(pl%xend) @@ -429,7 +430,7 @@ module subroutine symba_util_rearray_pl(self, system, param) call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) npl = pl%nbody call tmp%setup(0,param) - deallocate(tmp) + if (allocated(tmp)) deallocate(tmp) deallocate(lmask) ! Store the original plplenc list so we don't remove any of the original encounters @@ -450,7 +451,6 @@ module subroutine symba_util_rearray_pl(self, system, param) ldump_mask(:) = .false. end if - ! Reset all of the status flags for this body where(pl%status(1:npl) /= INACTIVE) pl%status(1:npl) = ACTIVE @@ -481,16 +481,19 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Reset the kinship trackers pl%kin(1:npl)%nchild = 0 pl%kin(1:npl)%parent = [(i, i=1, npl)] + do i = 1, npl + if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) + end do ! Re-build the zero-level encounter list, being sure to save the original level information for all bodies allocate(levelg_orig_pl, source=pl%levelg) allocate(levelm_orig_pl, source=pl%levelm) allocate(nplenc_orig_pl, source=pl%nplenc) - allocate(ntpenc_orig_pl, source=pl%ntpenc) lencounter = pl%encounter_check(system, param%dt, 0) if (system%tp%nbody > 0) then select type(tp => system%tp) class is (symba_tp) + allocate(ntpenc_orig_pl, source=pl%ntpenc) allocate(levelg_orig_tp, source=tp%levelg) allocate(levelm_orig_tp, source=tp%levelm) allocate(nplenc_orig_tp, source=tp%nplenc) @@ -498,6 +501,7 @@ module subroutine symba_util_rearray_pl(self, system, param) call move_alloc(levelg_orig_tp, tp%levelg) call move_alloc(levelm_orig_tp, tp%levelm) call move_alloc(nplenc_orig_tp, tp%nplenc) + call move_alloc(ntpenc_orig_pl, pl%ntpenc) end select end if call move_alloc(levelg_orig_pl, pl%levelg) @@ -505,33 +509,34 @@ module subroutine symba_util_rearray_pl(self, system, param) call move_alloc(nplenc_orig_pl, pl%nplenc) ! Re-index the encounter list as the index values may have changed - associate(idnew1 => system%plplenc_list%id1, idnew2 => system%plplenc_list%id2, idold1 => plplenc_old%id1, idold2 => plplenc_old%id2) - nencmin = min(system%plplenc_list%nenc, plplenc_old%nenc) - do k = 1, nencmin - if ((idnew1(k) == idold1(k)) .and. (idnew2(k) == idold2(k))) then - ! This is an encounter we already know about, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - else if (((idnew1(k) == idold2(k)) .and. (idnew2(k) == idold1(k)))) then - ! This is an encounter we already know about, but with the order reversed, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - end if - end do - end associate - + nencmin = min(system%plplenc_list%nenc, plplenc_old%nenc) + do k = 1, nencmin + idnew1 = system%plplenc_list%id1(k) + idnew2 = system%plplenc_list%id2(k) + idold1 = plplenc_old%id1(k) + idold2 = plplenc_old%id2(k) + if ((idnew1 == idold1) .and. (idnew2 == idold2)) then + ! This is an encounter we already know about, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + else if (((idnew1 == idold2) .and. (idnew2 == idold1))) then + ! This is an encounter we already know about, but with the order reversed, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + end if + end do end associate return @@ -548,7 +553,7 @@ module subroutine symba_util_resize_arr_kin(arr, nnew) integer(I4B), intent(in) :: nnew !! New size ! Internals type(symba_kinship), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated - integer(I4B) :: nold !! Old size + integer(I4B) :: nold !! Old size if (.not. allocated(arr) .or. nnew < 0) return From 1312cb77e35437f2068e50f7e93bd2828b787852 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 08:59:15 -0400 Subject: [PATCH 261/315] Added coordinate conversion while generating fragment position and velocities. --- src/symba/symba_collision.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 56713e101..2bf7387d6 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -910,6 +910,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%id(1:nfrag) = id_frag(1:nfrag) plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) + call pl%vb2vh(cb) + call pl%xh2xb(cb) do i = 1, nfrag plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) From a2b8b4a1cbb62f9b7fc4e3b8e97982e2a76bc704 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 09:21:20 -0400 Subject: [PATCH 262/315] Added mass loss exception commit --- src/io/io.f90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index 65a61da6a..a7cea0d7f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -67,6 +67,10 @@ module subroutine io_conservation_report(self, param, lterminal) Ecoll_error = param%Ecollisions / abs(param%Eorbit_orig) Etotal_error = (Eorbit_now - param%Ecollisions - param%Eorbit_orig - param%Euntracked) / abs(param%Eorbit_orig) Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig + if (Merror < -10 * epsilon(Merror)) then + write(*,*) 'Mass loss! Halting!' + call util_exit(FAILURE) + end if write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror end if end associate From 71cc5878b2793e3a6d1ede8c35848bbe226c8cee Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 12:21:34 -0400 Subject: [PATCH 263/315] Added discard info and rearranged code to properly record discard information. Still hunting for mass loss bug --- python/swiftest/swiftest/io.py | 8 +- src/discard/discard.f90 | 5 + src/io/io.f90 | 56 ++++---- src/modules/swiftest_classes.f90 | 239 +++++++++++++++++-------------- src/modules/swiftest_globals.f90 | 119 ++++++++------- src/modules/symba_classes.f90 | 2 +- src/netcdf/netcdf.f90 | 82 ++++++++--- src/rmvs/rmvs_discard.f90 | 1 + src/setup/setup.f90 | 51 +++---- src/symba/symba_collision.f90 | 86 ++++++----- src/symba/symba_discard.f90 | 4 + src/symba/symba_io.f90 | 14 +- src/symba/symba_util.f90 | 1 + src/util/util_copy.f90 | 19 ++- src/util/util_set.f90 | 56 ++++++++ 15 files changed, 460 insertions(+), 283 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 0397335d6..a82c5f043 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -718,8 +718,12 @@ def clean_string_values(param, ds): ------- ds : xarray dataset with the strings cleaned up """ - ds['name'] = ds['name'].str.decode(encoding='utf-8') - ds['particle_type'] = ds['particle_type'].str.decode(encoding='utf-8') + if 'name' in ds: + ds['name'] = ds['name'].str.decode(encoding='utf-8') + if 'particle_type' in ds: + ds['particle_type'] = ds['particle_type'].str.decode(encoding='utf-8') + if 'status' in ds: + ds['status'] = ds['status'].str.decode(encoding='utf-8') if 'origin_type' in ds: ds['origin_type'] = ds['origin_type'].str.decode(encoding='utf-8') return ds diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index cf38c2bbd..e0dc8813e 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -128,6 +128,7 @@ subroutine discard_cb_tp(tp, system, param) write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. + call tp%info(i)%set_value(status="DISCARDED_RMAX", discard_time=param%t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then tp%status(i) = DISCARDED_RMIN write(idstr, *) tp%id(i) @@ -135,6 +136,7 @@ subroutine discard_cb_tp(tp, system, param) write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. + call tp%info(i)%set_value(status="DISCARDED_RMIN", discard_time=param%t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i), discard_body_id=cb%id) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(tp%xb(:, i), tp%xb(:, i)) vb2 = dot_product(tp%vb(:, i), tp%vb(:, i)) @@ -146,6 +148,7 @@ subroutine discard_cb_tp(tp, system, param) write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. + call tp%info(i)%set_value(status="DISCARDED_RMAXU", discard_time=param%t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i)) end if end if end if @@ -195,6 +198,7 @@ subroutine discard_peri_tp(tp, system, param) write(timestr, *) param%t write(*, *) "Particle " // trim(adjustl(tp%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " perihelion distance too small at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. + call tp%info(i)%set_value(status="DISCARDED_PERI", discard_time=param%t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i), discard_body_id=pl%id(j)) end if end if end if @@ -243,6 +247,7 @@ subroutine discard_pl_tp(tp, system, param) // " too close to massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstrj)) & // " at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. + call tp%info(i)%set_value(status="DISCARDED_PLR", discard_time=param%t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i), discard_body_id=pl%id(j)) exit end if end do diff --git a/src/io/io.f90 b/src/io/io.f90 index a7cea0d7f..a7e1d5d9f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -938,7 +938,7 @@ module subroutine io_read_in_body(self, param) ! Internals integer(I4B), parameter :: LUN = 7 !! Unit number of input file integer(I4B) :: iu = LUN - integer(I4B) :: nbody + integer(I4B) :: i, nbody logical :: is_ascii, is_pl character(len=:), allocatable :: infile real(DP) :: t @@ -974,6 +974,9 @@ module subroutine io_read_in_body(self, param) ierr = self%read_frame(iu, param) self%status(:) = ACTIVE self%lmask(:) = .true. + do i = 1, nbody + call self%info(i)%set_value(status="ACTIVE") + end do end if close(iu, err = 667, iomsg = errmsg) @@ -1547,7 +1550,7 @@ module subroutine io_write_discard(self, param) implicit none ! Arguments class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals integer(I4B), parameter :: LUN = 40 integer(I4B) :: i @@ -1561,9 +1564,17 @@ module subroutine io_write_discard(self, param) class(swiftest_body), allocatable :: pltemp character(len=STRMAX) :: errmsg, out_stat - if (param%discard_out == "") return - associate(tp_discards => self%tp_discards, nsp => self%tp_discards%nbody, pl => self%pl, npl => self%pl%nbody) + + ! Record the discarded body metadata information to file + if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call param%nciu%open(param) + call tp_discards%write_particle_info(param%nciu) + call param%nciu%close(param) + end if + + if (param%discard_out == "") return + if (nsp == 0) return if (lfirst) then out_stat = param%out_stat @@ -1589,22 +1600,22 @@ module subroutine io_write_discard(self, param) write(LUN, VECFMT, err = 667, iomsg = errmsg) tp_discards%vh(1, i), tp_discards%vh(2, i), tp_discards%vh(3, i) end do if (param%lbig_discard) then - if (param%lgr) then - allocate(pltemp, source = pl) - call pltemp%pv2v(param) - allocate(vh, source = pltemp%vh) - deallocate(pltemp) - else - allocate(vh, source = pl%vh) - end if + if (param%lgr) then + allocate(pltemp, source = pl) + call pltemp%pv2v(param) + allocate(vh, source = pltemp%vh) + deallocate(pltemp) + else + allocate(vh, source = pl%vh) + end if - write(LUN, NPLFMT) npl - do i = 1, npl - write(LUN, PLNAMEFMT, err = 667, iomsg = errmsg) pl%id(i), pl%Gmass(i), pl%radius(i) - write(LUN, VECFMT, err = 667, iomsg = errmsg) pl%xh(1, i), pl%xh(2, i), pl%xh(3, i) - write(LUN, VECFMT, err = 667, iomsg = errmsg) vh(1, i), vh(2, i), vh(3, i) - end do - deallocate(vh) + write(LUN, NPLFMT) npl + do i = 1, npl + write(LUN, PLNAMEFMT, err = 667, iomsg = errmsg) pl%id(i), pl%Gmass(i), pl%radius(i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) pl%xh(1, i), pl%xh(2, i), pl%xh(3, i) + write(LUN, VECFMT, err = 667, iomsg = errmsg) vh(1, i), vh(2, i), vh(3, i) + end do + deallocate(vh) end if close(LUN) end associate @@ -1878,13 +1889,6 @@ module subroutine io_write_frame_system(self, param) end if end select - select type(param) - class is (symba_parameters) - param%nciu%ltrack_origin = param%lfragmentation - class default - param%nciu%ltrack_origin = .false. - end select - select case(param%out_stat) case('APPEND') call param%nciu%open(param) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index ec1a3e9df..faffcfb62 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -9,65 +9,74 @@ module swiftest_classes type :: netcdf_parameters - integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) - integer(I4B) :: ncid !! NetCDF ID for the output file - integer(I4B) :: dimids(3) !! Dimensions of the NetCDF file - integer(I4B) :: time_dimid !! NetCDF ID for the time dimension - integer(I4B) :: id_dimid !! NetCDF ID for the particle id dimension - integer(I4B) :: str_dimid !! NetCDF ID for the character string dimension - integer(I4B) :: time_varid !! NetCDF ID for the time variable - integer(I4B) :: id_varid !! NetCDF ID for the particle name variable - integer(I4B) :: name_varid !! NetCDF ID for the namevariable - integer(I4B) :: ptype_varid !! NetCDF ID for the particle type variable - integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable - integer(I4B) :: ntp_varid !! NetCDF ID for the number of active test particles variable - integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable - integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable - integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable - integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable - integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable - integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable - integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable - integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable - integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable - integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable - integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable - integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable - integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable - integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable - integer(I4B) :: radius_varid !! NetCDF ID for the radius variable - integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable - integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable - integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable - integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable - integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable - integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable - integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable - integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable - integer(I4B) :: KE_orb_varid !! NetCDF ID for the system orbital kinetic energy variable - integer(I4B) :: KE_spin_varid !! NetCDF ID for the system spin kinetic energy variable - integer(I4B) :: PE_varid !! NetCDF ID for the system potential energy variable - integer(I4B) :: L_orbx_varid !! NetCDF ID for the system orbital angular momentum x variable - integer(I4B) :: L_orby_varid !! NetCDF ID for the system orbital angular momentum y variable - integer(I4B) :: L_orbz_varid !! NetCDF ID for the system orbital angular momentum z variable - integer(I4B) :: L_spinx_varid !! NetCDF ID for the system spin angular momentum x variable - integer(I4B) :: L_spiny_varid !! NetCDF ID for the system spin angular momentum y variable - integer(I4B) :: L_spinz_varid !! NetCDF ID for the system spin angular momentum z variable - integer(I4B) :: L_escapex_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: L_escapey_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: L_escapez_varid !! NetCDF ID for the escaped angular momentum x variable - integer(I4B) :: Ecollisions_varid !! NetCDF ID for the energy lost in collisions variable - integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) - integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system - logical :: ltrack_origin = .false. !! Indicate whether to track particle origin (SyMBA with Fragmentation) - integer(I4B) :: origin_type_varid !! NetCDF ID for the origin type - integer(I4B) :: origin_time_varid !! NetCDF ID for the origin type - integer(I4B) :: origin_xhx_varid !! NetCDF ID for the origin xh x component - integer(I4B) :: origin_xhy_varid !! NetCDF ID for the origin xh y component - integer(I4B) :: origin_xhz_varid !! NetCDF ID for the origin xh z component - integer(I4B) :: origin_vhx_varid !! NetCDF ID for the origin xh x component - integer(I4B) :: origin_vhy_varid !! NetCDF ID for the origin xh y component - integer(I4B) :: origin_vhz_varid !! NetCDF ID for the origin xh z component + integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) + integer(I4B) :: ncid !! NetCDF ID for the output file + integer(I4B) :: dimids(3) !! Dimensions of the NetCDF file + integer(I4B) :: time_dimid !! NetCDF ID for the time dimension + integer(I4B) :: id_dimid !! NetCDF ID for the particle id dimension + integer(I4B) :: str_dimid !! NetCDF ID for the character string dimension + integer(I4B) :: time_varid !! NetCDF ID for the time variable + integer(I4B) :: id_varid !! NetCDF ID for the particle name variable + integer(I4B) :: name_varid !! NetCDF ID for the namevariable + integer(I4B) :: ptype_varid !! NetCDF ID for the particle type variable + integer(I4B) :: npl_varid !! NetCDF ID for the number of active massive bodies variable + integer(I4B) :: ntp_varid !! NetCDF ID for the number of active test particles variable + integer(I4B) :: a_varid !! NetCDF ID for the semimajor axis variable + integer(I4B) :: e_varid !! NetCDF ID for the eccentricity variable + integer(I4B) :: inc_varid !! NetCDF ID for the inclination variable + integer(I4B) :: capom_varid !! NetCDF ID for the long. asc. node variable + integer(I4B) :: omega_varid !! NetCDF ID for the arg. periapsis variable + integer(I4B) :: capm_varid !! NetCDF ID for the mean anomaly variable + integer(I4B) :: xhx_varid !! NetCDF ID for the heliocentric position x variable + integer(I4B) :: xhy_varid !! NetCDF ID for the heliocentric position y variable + integer(I4B) :: xhz_varid !! NetCDF ID for the heliocentric position z variable + integer(I4B) :: vhx_varid !! NetCDF ID for the heliocentric velocity x variable + integer(I4B) :: vhy_varid !! NetCDF ID for the heliocentric velocity y variable + integer(I4B) :: vhz_varid !! NetCDF ID for the heliocentric velocity z variable + integer(I4B) :: Gmass_varid !! NetCDF ID for the mass variable + integer(I4B) :: rhill_varid !! NetCDF ID for the hill radius variable + integer(I4B) :: radius_varid !! NetCDF ID for the radius variable + integer(I4B) :: Ip1_varid !! NetCDF ID for the axis 1 principal moment of inertia variable + integer(I4B) :: Ip2_varid !! NetCDF ID for the axis 2 principal moment of inertia variable + integer(I4B) :: Ip3_varid !! NetCDF ID for the axis 3 principal moment of inertia variable + integer(I4B) :: rotx_varid !! NetCDF ID for the rotation x variable + integer(I4B) :: roty_varid !! NetCDF ID for the rotation y variable + integer(I4B) :: rotz_varid !! NetCDF ID for the rotation z variable + integer(I4B) :: k2_varid !! NetCDF ID for the Love number variable + integer(I4B) :: Q_varid !! NetCDF ID for the energy dissipation variable + integer(I4B) :: KE_orb_varid !! NetCDF ID for the system orbital kinetic energy variable + integer(I4B) :: KE_spin_varid !! NetCDF ID for the system spin kinetic energy variable + integer(I4B) :: PE_varid !! NetCDF ID for the system potential energy variable + integer(I4B) :: L_orbx_varid !! NetCDF ID for the system orbital angular momentum x variable + integer(I4B) :: L_orby_varid !! NetCDF ID for the system orbital angular momentum y variable + integer(I4B) :: L_orbz_varid !! NetCDF ID for the system orbital angular momentum z variable + integer(I4B) :: L_spinx_varid !! NetCDF ID for the system spin angular momentum x variable + integer(I4B) :: L_spiny_varid !! NetCDF ID for the system spin angular momentum y variable + integer(I4B) :: L_spinz_varid !! NetCDF ID for the system spin angular momentum z variable + integer(I4B) :: L_escapex_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapey_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: L_escapez_varid !! NetCDF ID for the escaped angular momentum x variable + integer(I4B) :: Ecollisions_varid !! NetCDF ID for the energy lost in collisions variable + integer(I4B) :: Euntracked_varid !! NetCDF ID for the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) + integer(I4B) :: GMescape_varid !! NetCDF ID for the G*Mass of bodies that escape the system + integer(I4B) :: status_varid !! NetCDF ID for the status variable + integer(I4B) :: origin_type_varid !! NetCDF ID for the origin type + integer(I4B) :: origin_time_varid !! NetCDF ID for the origin time + integer(I4B) :: origin_xhx_varid !! NetCDF ID for the origin xh x component + integer(I4B) :: origin_xhy_varid !! NetCDF ID for the origin xh y component + integer(I4B) :: origin_xhz_varid !! NetCDF ID for the origin xh z component + integer(I4B) :: origin_vhx_varid !! NetCDF ID for the origin xh x component + integer(I4B) :: origin_vhy_varid !! NetCDF ID for the origin xh y component + integer(I4B) :: origin_vhz_varid !! NetCDF ID for the origin xh z component + integer(I4B) :: discard_time_varid !! NetCDF ID for the time of discard variable + integer(I4B) :: discard_xhx_varid !! NetCDF ID for the heliocentric position of the body at the time of discard x variable + integer(I4B) :: discard_xhy_varid !! NetCDF ID for the heliocentric position of the body at the time of discard y variable + integer(I4B) :: discard_xhz_varid !! NetCDF ID for the heliocentric position of the body at the time of discard z variable + integer(I4B) :: discard_vhx_varid !! NetCDF ID for the heliocentric velocity of the body at the time of discard x variable + integer(I4B) :: discard_vhy_varid !! NetCDF ID for the heliocentric velocity of the body at the time of discard y variable + integer(I4B) :: discard_vhz_varid !! NetCDF ID for the heliocentric velocity of the body at the time of discard z variable + integer(I4B) :: discard_body_id_varid !! NetCDF ID for the id of the other body involved in the discard + contains procedure :: close => netcdf_close !! Closes an open NetCDF file procedure :: initialize => netcdf_initialize_output !! Initialize a set of parameters used to identify a NetCDF output object @@ -172,9 +181,10 @@ module swiftest_classes real(DP), dimension(NDIM) :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard integer(I4B) :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved) contains - procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file - procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file - procedure :: copy => util_copy_particle_info !! Copies one set of information object components into another, component-by-component + procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file + procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file + procedure :: copy => util_copy_particle_info !! Copies one set of information object components into another, component-by-component + procedure :: set_value => util_set_particle_info !! Sets one or more values of the particle information metadata object end type swiftest_particle_info !******************************************************************************************************************************** @@ -234,29 +244,29 @@ module swiftest_classes !> An abstract class for a generic collection of Swiftest bodies type, abstract, extends(swiftest_base) :: swiftest_body !! Superclass that defines the generic elements of a Swiftest particle - logical :: lfirst = .true. !! Run the current step as a first - integer(I4B) :: nbody = 0 !! Number of bodies - type(swiftest_particle_info), dimension(:), allocatable :: info !! Particle metadata information - integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) - integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator - logical, dimension(:), allocatable :: ldiscard !! Body should be discarded - logical, dimension(:), allocatable :: lmask !! Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) - real(DP), dimension(:), allocatable :: mu !! G * (Mcb + [m]) - real(DP), dimension(:,:), allocatable :: xh !! Swiftestcentric position - real(DP), dimension(:,:), allocatable :: vh !! Swiftestcentric velocity - real(DP), dimension(:,:), allocatable :: xb !! Barycentric position - real(DP), dimension(:,:), allocatable :: vb !! Barycentric velocity - real(DP), dimension(:,:), allocatable :: ah !! Total heliocentric acceleration - real(DP), dimension(:,:), allocatable :: aobl !! Barycentric accelerations of bodies due to central body oblatenes - real(DP), dimension(:,:), allocatable :: atide !! Tanngential component of acceleration of bodies due to tides - real(DP), dimension(:,:), allocatable :: agr !! Acceleration due to post-Newtonian correction - real(DP), dimension(:), allocatable :: ir3h !! Inverse heliocentric radius term (1/rh**3) - real(DP), dimension(:), allocatable :: a !! Semimajor axis (pericentric distance for a parabolic orbit) - real(DP), dimension(:), allocatable :: e !! Eccentricity - real(DP), dimension(:), allocatable :: inc !! Inclination - real(DP), dimension(:), allocatable :: capom !! Longitude of ascending node - real(DP), dimension(:), allocatable :: omega !! Argument of pericenter - real(DP), dimension(:), allocatable :: capm !! Mean anomaly + logical :: lfirst = .true. !! Run the current step as a first + integer(I4B) :: nbody = 0 !! Number of bodies + type(swiftest_particle_info), dimension(:), allocatable :: info !! Particle metadata information + integer(I4B), dimension(:), allocatable :: id !! External identifier (unique) + integer(I4B), dimension(:), allocatable :: status !! An integrator-specific status indicator + logical, dimension(:), allocatable :: ldiscard !! Body should be discarded + logical, dimension(:), allocatable :: lmask !! Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) + real(DP), dimension(:), allocatable :: mu !! G * (Mcb + [m]) + real(DP), dimension(:,:), allocatable :: xh !! Swiftestcentric position + real(DP), dimension(:,:), allocatable :: vh !! Swiftestcentric velocity + real(DP), dimension(:,:), allocatable :: xb !! Barycentric position + real(DP), dimension(:,:), allocatable :: vb !! Barycentric velocity + real(DP), dimension(:,:), allocatable :: ah !! Total heliocentric acceleration + real(DP), dimension(:,:), allocatable :: aobl !! Barycentric accelerations of bodies due to central body oblatenes + real(DP), dimension(:,:), allocatable :: atide !! Tanngential component of acceleration of bodies due to tides + real(DP), dimension(:,:), allocatable :: agr !! Acceleration due to post-Newtonian correction + real(DP), dimension(:), allocatable :: ir3h !! Inverse heliocentric radius term (1/rh**3) + real(DP), dimension(:), allocatable :: a !! Semimajor axis (pericentric distance for a parabolic orbit) + real(DP), dimension(:), allocatable :: e !! Eccentricity + real(DP), dimension(:), allocatable :: inc !! Inclination + real(DP), dimension(:), allocatable :: capom !! Longitude of ascending node + real(DP), dimension(:), allocatable :: omega !! Argument of pericenter + real(DP), dimension(:), allocatable :: capm !! Mean anomaly !! Note to developers: If you add components to this class, be sure to update methods and subroutines that traverse the !! component list, such as setup_body and util_spill contains @@ -341,10 +351,10 @@ module swiftest_classes !> An abstract class for a generic collection of Swiftest test particles type, abstract, extends(swiftest_body) :: swiftest_tp !! Superclass that defines the generic elements of a Swiftest test particle - integer(I4B), dimension(:), allocatable :: isperi !! Perihelion passage flag - real(DP), dimension(:), allocatable :: peri !! Perihelion distance - real(DP), dimension(:), allocatable :: atp !! Semimajor axis following perihelion passage - integer(I4B), dimension(:,:), allocatable :: k_pltp !! Index array used to convert flattened the body-body comparison upper triangular matrix + integer(I4B), dimension(:), allocatable :: isperi !! Perihelion passage flag + real(DP), dimension(:), allocatable :: peri !! Perihelion distance + real(DP), dimension(:), allocatable :: atp !! Semimajor axis following perihelion passage + integer(I4B), dimension(:,:), allocatable :: k_pltp !! Index array used to convert flattened the body-body comparison upper triangular matrix integer(I8B) :: npltp !! Number of pl-tp comparisons in the flattened upper triangular matrix !! Note to developers: If you add components to this class, be sure to update methods and subroutines that traverse the !! component list, such as setup_tp and util_spill_tp @@ -376,22 +386,22 @@ module swiftest_classes !> An abstract class for a basic Swiftest nbody system type, abstract :: swiftest_nbody_system !! This superclass contains a minimial system of a set of test particles (tp), massive bodies (pl), and a central body (cb) - class(swiftest_cb), allocatable :: cb !! Central body data structure - class(swiftest_pl), allocatable :: pl !! Massive body data structure - class(swiftest_tp), allocatable :: tp !! Test particle data structure - class(swiftest_tp), allocatable :: tp_discards !! Discarded test particle data structure - class(swiftest_pl), allocatable :: pl_discards !! Discarded massive body particle data structure - real(DP) :: GMtot = 0.0_DP !! Total system mass - used for barycentric coordinate conversion - real(DP) :: ke_orbit = 0.0_DP !! System orbital kinetic energy - real(DP) :: ke_spin = 0.0_DP !! System spin kinetic energy - real(DP) :: pe = 0.0_DP !! System potential energy - real(DP) :: te = 0.0_DP !! System total energy - real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector - real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector - real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector - logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated - !! separately from massive bodies. Massive body variables are saved at half steps, and passed to - !! the test particles + class(swiftest_cb), allocatable :: cb !! Central body data structure + class(swiftest_pl), allocatable :: pl !! Massive body data structure + class(swiftest_tp), allocatable :: tp !! Test particle data structure + class(swiftest_tp), allocatable :: tp_discards !! Discarded test particle data structure + class(swiftest_pl), allocatable :: pl_discards !! Discarded massive body particle data structure + real(DP) :: GMtot = 0.0_DP !! Total system mass - used for barycentric coordinate conversion + real(DP) :: ke_orbit = 0.0_DP !! System orbital kinetic energy + real(DP) :: ke_spin = 0.0_DP !! System spin kinetic energy + real(DP) :: pe = 0.0_DP !! System potential energy + real(DP) :: te = 0.0_DP !! System total energy + real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector + real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector + real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector + logical :: lbeg !! True if this is the beginning of a step. This is used so that test particle steps can be calculated + !! separately from massive bodies. Massive body variables are saved at half steps, and passed to + !! the test particles contains !> Each integrator will have its own version of the step procedure(abstract_step_system), deferred :: step @@ -783,7 +793,7 @@ end subroutine io_read_particle_info_system module subroutine io_write_discard(self, param) implicit none class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine io_write_discard module subroutine io_toupper(string) @@ -1122,7 +1132,6 @@ module subroutine util_append_arr_logical(arr, source, nold, nsrc, lsource_mask) integer(I4B), intent(in) :: nold, nsrc !! Extend of the old array and the source array, respectively logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to end subroutine util_append_arr_logical - end interface interface @@ -1432,6 +1441,22 @@ module subroutine util_set_mu_tp(self, cb) class(swiftest_cb), intent(inout) :: cb !! Swiftest central body object end subroutine util_set_mu_tp + module subroutine util_set_particle_info(self, name, particle_type, status, origin_type, origin_time, origin_xh, origin_vh, discard_time, discard_xh, discard_vh, discard_body_id) + implicit none + class(swiftest_particle_info), intent(inout) :: self + character(len=*), intent(in), optional :: name !! Non-unique name + character(len=*), intent(in), optional :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) + character(len=*), intent(in), optional :: status !! Particle status description: Active, Merged, Fragmented, etc. + character(len=*), intent(in), optional :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) + real(DP), intent(in), optional :: origin_time !! The time of the particle's formation + real(DP), dimension(:), intent(in), optional :: origin_xh !! The heliocentric distance vector at the time of the particle's formation + real(DP), dimension(:), intent(in), optional :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation + real(DP), intent(in), optional :: discard_time !! The time of the particle's discard + real(DP), dimension(:), intent(in), optional :: discard_xh !! The heliocentric distance vector at the time of the particle's discard + real(DP), dimension(:), intent(in), optional :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard + integer(I4B), intent(in), optional :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved) + end subroutine util_set_particle_info + module subroutine util_set_rhill(self,cb) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index a9dd2d762..72d204a49 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -58,6 +58,7 @@ module swiftest_globals character(*), parameter :: CB_TYPE_NAME = "Central Body" character(*), parameter :: PL_TYPE_NAME = "Massive Body" character(*), parameter :: TP_TYPE_NAME = "Test Particle" + character(*), parameter :: PL_TINY_TYPE_NAME = "Semi-Interacting Massive Body" ! OpenMP Parameters integer(I4B) :: nthreads = 1 !! Number of OpenMP threads @@ -135,60 +136,68 @@ module swiftest_globals real(DP), parameter :: einsteinC = 299792458.0_DP !! Speed of light in SI units !> NetCDF variable names and constants - character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' !! Default output file name - character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension - character(*), parameter :: ID_DIMNAME = "id" !! NetCDF name of the particle id dimension - character(*), parameter :: STR_DIMNAME = "str" !! NetCDF name of the particle id dimension - character(*), parameter :: PTYPE_VARNAME = "particle_type" ! NetCDF name of the particle type variable - character(*), parameter :: NAME_VARNAME = "name" !! NetCDF name of the particle name variable - character(*), parameter :: NPL_VARNAME = "npl" !! NetCDF name of the number of active massive bodies variable - character(*), parameter :: NTP_VARNAME = "ntp" !! NetCDF name of the number of active test particles variable - character(*), parameter :: A_VARNAME = "a" !! NetCDF name of the semimajor axis variable - character(*), parameter :: E_VARNAME = "e" !! NetCDF name of the eccentricity variable - character(*), parameter :: INC_VARNAME = "inc" !! NetCDF name of the inclination variable - character(*), parameter :: CAPOM_VARNAME = "capom" !! NetCDF name of the long. asc. node variable - character(*), parameter :: OMEGA_VARNAME = "omega" !! NetCDF name of the arg. periapsis variable - character(*), parameter :: CAPM_VARNAME = "capm" !! NetCDF name of the mean anomaly variable - character(*), parameter :: XHX_VARNAME = "xhx" !! NetCDF name of the heliocentric position x variable - character(*), parameter :: XHY_VARNAME = "xhy" !! NetCDF name of the heliocentric position y variable - character(*), parameter :: XHZ_VARNAME = "xhz" !! NetCDF name of the heliocentric position z variable - character(*), parameter :: VHX_VARNAME = "vhx" !! NetCDF name of the heliocentric velocity x variable - character(*), parameter :: VHY_VARNAME = "vhy" !! NetCDF name of the heliocentric velocity y variable - character(*), parameter :: VHZ_VARNAME = "vhz" !! NetCDF name of the heliocentric velocity z variable - character(*), parameter :: GMASS_VARNAME = "Gmass" !! NetCDF name of the mass variable - character(*), parameter :: RHILL_VARNAME = "rhill" !! NetCDF name of the hill radius variable - character(*), parameter :: RADIUS_VARNAME = "radius" !! NetCDF name of the radius variable - character(*), parameter :: IP1_VARNAME = "Ip1" !! NetCDF name of the axis 1 principal moment of inertial variable - character(*), parameter :: IP2_VARNAME = "Ip2" !! NetCDF name of the axis 2 principal moment of inertial variable - character(*), parameter :: IP3_VARNAME = "Ip3" !! NetCDF name of the axis 3 principal moment of inertial variable - character(*), parameter :: ROTX_VARNAME = "rotx" !! NetCDF name of the rotation x variable - character(*), parameter :: ROTY_VARNAME = "roty" !! NetCDF name of the rotation y variable - character(*), parameter :: ROTZ_VARNAME = "rotz" !! NetCDF name of the rotation z variable - character(*), parameter :: K2_VARNAME = "k2" !! NetCDF name of the Love number variable - character(*), parameter :: Q_VARNAME = "Q" !! NetCDF name of the energy dissipation variable - character(*), parameter :: KE_ORB_VARNAME = "KE_orb" !! NetCDF name of the system orbital kinetic energy variable - character(*), parameter :: KE_SPIN_VARNAME = "KE_spin" !! NetCDF name of the system spin kinetic energy variable - character(*), parameter :: PE_VARNAME = "PE" !! NetCDF name of the system potential energy variable - character(*), parameter :: L_ORBX_VARNAME = "L_orbx" !! NetCDF name of the orbital angular momentum x variable - character(*), parameter :: L_ORBY_VARNAME = "L_orby" !! NetCDF name of the orbital angular momentum y variable - character(*), parameter :: L_ORBZ_VARNAME = "L_orbz" !! NetCDF name of the orbital angular momentum z variable - character(*), parameter :: L_SPINX_VARNAME = "L_spinx" !! NetCDF name of the spin angular momentum x variable - character(*), parameter :: L_SPINY_VARNAME = "L_spiny" !! NetCDF name of the spin angular momentum y variable - character(*), parameter :: L_SPINZ_VARNAME = "L_spinz" !! NetCDF name of the spin angular momentum z variable - character(*), parameter :: L_ESCAPEX_VARNAME = "L_escapex" !! NetCDF name of the escaped angular momentum x variable - character(*), parameter :: L_ESCAPEY_VARNAME = "L_escapey" !! NetCDF name of the escaped angular momentum y variable - character(*), parameter :: L_ESCAPEZ_VARNAME = "L_escapez" !! NetCDF name of the escaped angular momentum z variable - character(*), parameter :: ECOLLISIONS_VARNAME = "Ecollisions" !! NetCDF name of the escaped angular momentum y variable - character(*), parameter :: EUNTRACKED_VARNAME = "Euntracked" !! NetCDF name of the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) - character(*), parameter :: GMESCAPE_VARNAME = "GMescape" !! NetCDF name of the G*Mass of bodies that escape the system - character(*), parameter :: ORIGIN_TYPE_VARNAME = "origin_type" - character(*), parameter :: ORIGIN_TIME_VARNAME = "origin_time" - character(*), parameter :: ORIGIN_XHX_VARNAME = "origin_xhx" - character(*), parameter :: ORIGIN_XHY_VARNAME = "origin_xhy" - character(*), parameter :: ORIGIN_XHZ_VARNAME = "origin_xhz" - character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" - character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" - character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" - character(*), parameter :: PL_TINY_TYPE_NAME = "Semi-Interacting Massive Body" + character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' !! Default output file name + character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension + character(*), parameter :: ID_DIMNAME = "id" !! NetCDF name of the particle id dimension + character(*), parameter :: STR_DIMNAME = "str" !! NetCDF name of the particle id dimension + character(*), parameter :: PTYPE_VARNAME = "particle_type" !! NetCDF name of the particle type variable + character(*), parameter :: NAME_VARNAME = "name" !! NetCDF name of the particle name variable + character(*), parameter :: NPL_VARNAME = "npl" !! NetCDF name of the number of active massive bodies variable + character(*), parameter :: NTP_VARNAME = "ntp" !! NetCDF name of the number of active test particles variable + character(*), parameter :: A_VARNAME = "a" !! NetCDF name of the semimajor axis variable + character(*), parameter :: E_VARNAME = "e" !! NetCDF name of the eccentricity variable + character(*), parameter :: INC_VARNAME = "inc" !! NetCDF name of the inclination variable + character(*), parameter :: CAPOM_VARNAME = "capom" !! NetCDF name of the long. asc. node variable + character(*), parameter :: OMEGA_VARNAME = "omega" !! NetCDF name of the arg. periapsis variable + character(*), parameter :: CAPM_VARNAME = "capm" !! NetCDF name of the mean anomaly variable + character(*), parameter :: XHX_VARNAME = "xhx" !! NetCDF name of the heliocentric position x variable + character(*), parameter :: XHY_VARNAME = "xhy" !! NetCDF name of the heliocentric position y variable + character(*), parameter :: XHZ_VARNAME = "xhz" !! NetCDF name of the heliocentric position z variable + character(*), parameter :: VHX_VARNAME = "vhx" !! NetCDF name of the heliocentric velocity x variable + character(*), parameter :: VHY_VARNAME = "vhy" !! NetCDF name of the heliocentric velocity y variable + character(*), parameter :: VHZ_VARNAME = "vhz" !! NetCDF name of the heliocentric velocity z variable + character(*), parameter :: GMASS_VARNAME = "Gmass" !! NetCDF name of the mass variable + character(*), parameter :: RHILL_VARNAME = "rhill" !! NetCDF name of the hill radius variable + character(*), parameter :: RADIUS_VARNAME = "radius" !! NetCDF name of the radius variable + character(*), parameter :: IP1_VARNAME = "Ip1" !! NetCDF name of the axis 1 principal moment of inertial variable + character(*), parameter :: IP2_VARNAME = "Ip2" !! NetCDF name of the axis 2 principal moment of inertial variable + character(*), parameter :: IP3_VARNAME = "Ip3" !! NetCDF name of the axis 3 principal moment of inertial variable + character(*), parameter :: ROTX_VARNAME = "rotx" !! NetCDF name of the rotation x variable + character(*), parameter :: ROTY_VARNAME = "roty" !! NetCDF name of the rotation y variable + character(*), parameter :: ROTZ_VARNAME = "rotz" !! NetCDF name of the rotation z variable + character(*), parameter :: K2_VARNAME = "k2" !! NetCDF name of the Love number variable + character(*), parameter :: Q_VARNAME = "Q" !! NetCDF name of the energy dissipation variable + character(*), parameter :: KE_ORB_VARNAME = "KE_orb" !! NetCDF name of the system orbital kinetic energy variable + character(*), parameter :: KE_SPIN_VARNAME = "KE_spin" !! NetCDF name of the system spin kinetic energy variable + character(*), parameter :: PE_VARNAME = "PE" !! NetCDF name of the system potential energy variable + character(*), parameter :: L_ORBX_VARNAME = "L_orbx" !! NetCDF name of the orbital angular momentum x variable + character(*), parameter :: L_ORBY_VARNAME = "L_orby" !! NetCDF name of the orbital angular momentum y variable + character(*), parameter :: L_ORBZ_VARNAME = "L_orbz" !! NetCDF name of the orbital angular momentum z variable + character(*), parameter :: L_SPINX_VARNAME = "L_spinx" !! NetCDF name of the spin angular momentum x variable + character(*), parameter :: L_SPINY_VARNAME = "L_spiny" !! NetCDF name of the spin angular momentum y variable + character(*), parameter :: L_SPINZ_VARNAME = "L_spinz" !! NetCDF name of the spin angular momentum z variable + character(*), parameter :: L_ESCAPEX_VARNAME = "L_escapex" !! NetCDF name of the escaped angular momentum x variable + character(*), parameter :: L_ESCAPEY_VARNAME = "L_escapey" !! NetCDF name of the escaped angular momentum y variable + character(*), parameter :: L_ESCAPEZ_VARNAME = "L_escapez" !! NetCDF name of the escaped angular momentum z variable + character(*), parameter :: ECOLLISIONS_VARNAME = "Ecollisions" !! NetCDF name of the escaped angular momentum y variable + character(*), parameter :: EUNTRACKED_VARNAME = "Euntracked" !! NetCDF name of the energy that is untracked due to loss (untracked potential energy due to mergers and body energy for escaped bodies) + character(*), parameter :: GMESCAPE_VARNAME = "GMescape" !! NetCDF name of the G*Mass of bodies that escape the system + character(*), parameter :: STATUS_VARNAME = "status" !! NetCDF name of the current status of the body variable (includes discard type) + character(*), parameter :: ORIGIN_TYPE_VARNAME = "origin_type" !! NetCDF name of the origin type variable (Initial Conditions, Disruption, etc.) + character(*), parameter :: ORIGIN_TIME_VARNAME = "origin_time" !! NetCDF name of the time of origin variable + character(*), parameter :: ORIGIN_XHX_VARNAME = "origin_xhx" !! NetCDF name of the heliocentric position of the body at the time of origin x variable + character(*), parameter :: ORIGIN_XHY_VARNAME = "origin_xhy" !! NetCDF name of the heliocentric position of the body at the time of origin y variable + character(*), parameter :: ORIGIN_XHZ_VARNAME = "origin_xhz" !! NetCDF name of the heliocentric position of the body at the time of origin z variable + character(*), parameter :: ORIGIN_VHX_VARNAME = "origin_vhx" !! NetCDF name of the heliocentric velocity of the body at the time of origin x variable + character(*), parameter :: ORIGIN_VHY_VARNAME = "origin_vhy" !! NetCDF name of the heliocentric velocity of the body at the time of origin y variable + character(*), parameter :: ORIGIN_VHZ_VARNAME = "origin_vhz" !! NetCDF name of the heliocentric velocity of the body at the time of origin z variable + character(*), parameter :: DISCARD_TIME_VARNAME = "discard_time" !! NetCDF name of the time of discard variable + character(*), parameter :: DISCARD_XHX_VARNAME = "discard_xhx" !! NetCDF name of the heliocentric position of the body at the time of discard x variable + character(*), parameter :: DISCARD_XHY_VARNAME = "discard_xhy" !! NetCDF name of the heliocentric position of the body at the time of discard y variable + character(*), parameter :: DISCARD_XHZ_VARNAME = "discard_xhz" !! NetCDF name of the heliocentric position of the body at the time of discard z variable + character(*), parameter :: DISCARD_VHX_VARNAME = "discard_vhx" !! NetCDF name of the heliocentric velocity of the body at the time of discard x variable + character(*), parameter :: DISCARD_VHY_VARNAME = "discard_vhy" !! NetCDF name of the heliocentric velocity of the body at the time of discard y variable + character(*), parameter :: DISCARD_VHZ_VARNAME = "discard_vhz" !! NetCDF name of the heliocentric velocity of the body at the time of discard z variable + character(*), parameter :: DISCARD_BODY_ID_VARNAME = "discard_body_id" !! NetCDF name of the id of the other body involved in the discard end module swiftest_globals diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 60dbd4feb..ca51def4c 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -369,7 +369,7 @@ module subroutine symba_io_write_discard(self, param) use swiftest_classes, only : swiftest_parameters implicit none class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine symba_io_write_discard module subroutine symba_kick_getacch_int_pl(self) diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index e37703782..6672ee7d0 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -120,16 +120,23 @@ module subroutine netcdf_initialize_output(self, param) call check( nf90_def_var(self%ncid, GMESCAPE_VARNAME, self%out_type, self%time_dimid, self%GMescape_varid) ) end if - if (self%ltrack_origin) then - call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) - call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) - end if + call check( nf90_def_var(self%ncid, STATUS_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%status_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_TYPE_VARNAME, NF90_CHAR, [self%str_dimid, self%id_dimid], self%origin_type_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_TIME_VARNAME, self%out_type, self%id_dimid, self%origin_time_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHX_VARNAME, self%out_type, self%id_dimid, self%origin_xhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHY_VARNAME, self%out_type, self%id_dimid, self%origin_xhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_XHZ_VARNAME, self%out_type, self%id_dimid, self%origin_xhz_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHX_VARNAME, self%out_type, self%id_dimid, self%origin_vhx_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHY_VARNAME, self%out_type, self%id_dimid, self%origin_vhy_varid) ) + call check( nf90_def_var(self%ncid, ORIGIN_VHZ_VARNAME, self%out_type, self%id_dimid, self%origin_vhz_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_TIME_VARNAME, self%out_type, self%id_dimid, self%discard_time_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_XHX_VARNAME, self%out_type, self%id_dimid, self%discard_xhx_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_XHY_VARNAME, self%out_type, self%id_dimid, self%discard_xhy_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_XHZ_VARNAME, self%out_type, self%id_dimid, self%discard_xhz_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_VHX_VARNAME, self%out_type, self%id_dimid, self%discard_vhx_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_VHY_VARNAME, self%out_type, self%id_dimid, self%discard_vhy_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_VHZ_VARNAME, self%out_type, self%id_dimid, self%discard_vhz_varid) ) + call check( nf90_def_var(self%ncid, DISCARD_BODY_ID_VARNAME, NF90_INT, self%id_dimid, self%discard_body_id_varid) ) return end subroutine netcdf_initialize_output @@ -208,16 +215,24 @@ module subroutine netcdf_open(self, param) call check( nf90_inq_varid(self%ncid, GMESCAPE_VARNAME, self%GMescape_varid) ) end if - if (self%ltrack_origin) then - call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_time_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHX_VARNAME, self%origin_vhx_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHY_VARNAME, self%origin_vhy_varid)) - call check( nf90_inq_varid(self%ncid, ORIGIN_VHZ_VARNAME, self%origin_vhz_varid)) - end if + call check( nf90_inq_varid(self%ncid, STATUS_VARNAME, self%status_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_TYPE_VARNAME, self%origin_type_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_TIME_VARNAME, self%origin_time_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHX_VARNAME, self%origin_xhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHY_VARNAME, self%origin_xhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_XHZ_VARNAME, self%origin_xhz_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHX_VARNAME, self%origin_vhx_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHY_VARNAME, self%origin_vhy_varid)) + call check( nf90_inq_varid(self%ncid, ORIGIN_VHZ_VARNAME, self%origin_vhz_varid)) + + call check( nf90_inq_varid(self%ncid, DISCARD_TIME_VARNAME, self%discard_time_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_XHX_VARNAME, self%discard_xhx_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_XHY_VARNAME, self%discard_xhy_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_XHZ_VARNAME, self%discard_xhz_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_VHX_VARNAME, self%discard_vhx_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_VHY_VARNAME, self%discard_vhy_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_VHZ_VARNAME, self%discard_vhz_varid)) + call check( nf90_inq_varid(self%ncid, DISCARD_BODY_ID_VARNAME, self%discard_body_id_varid)) return end subroutine netcdf_open @@ -344,7 +359,6 @@ module subroutine netcdf_write_particle_info_base(self, iu) integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring - select type(self) class is (swiftest_body) associate(n => self%nbody) @@ -364,9 +378,14 @@ module subroutine netcdf_write_particle_info_base(self, iu) strlen = len(charstring) call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = trim(adjustl(self%info(j)%status)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = trim(adjustl(self%info(j)%origin_type)) strlen = len(charstring) call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info(j)%origin_xh(2), start=[idslot]) ) @@ -374,6 +393,14 @@ module subroutine netcdf_write_particle_info_base(self, iu) call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info(j)%origin_vh(1), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info(j)%origin_vh(2), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info(j)%origin_vh(3), start=[idslot]) ) + + call check( nf90_put_var(iu%ncid, iu%discard_time_varid, self%info(j)%discard_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhx_varid, self%info(j)%discard_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhy_varid, self%info(j)%discard_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhz_varid, self%info(j)%discard_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhx_varid, self%info(j)%discard_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhy_varid, self%info(j)%discard_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhz_varid, self%info(j)%discard_vh(3), start=[idslot]) ) end do end associate @@ -389,9 +416,14 @@ module subroutine netcdf_write_particle_info_base(self, iu) strlen = len(charstring) call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = trim(adjustl(self%info%status)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = trim(adjustl(self%info%origin_type)) strlen = len(charstring) call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhy_varid, self%info%origin_xh(2), start=[idslot]) ) @@ -399,6 +431,14 @@ module subroutine netcdf_write_particle_info_base(self, iu) call check( nf90_put_var(iu%ncid, iu%origin_vhx_varid, self%info%origin_vh(1), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_vhy_varid, self%info%origin_vh(2), start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_vhz_varid, self%info%origin_vh(3), start=[idslot]) ) + + call check( nf90_put_var(iu%ncid, iu%discard_time_varid, self%info%discard_time, start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhx_varid, self%info%discard_xh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhy_varid, self%info%discard_xh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_xhz_varid, self%info%discard_xh(3), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhx_varid, self%info%discard_vh(1), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhy_varid, self%info%discard_vh(2), start=[idslot]) ) + call check( nf90_put_var(iu%ncid, iu%discard_vhz_varid, self%info%discard_vh(3), start=[idslot]) ) end select return diff --git a/src/rmvs/rmvs_discard.f90 b/src/rmvs/rmvs_discard.f90 index 724c107be..b179178dc 100644 --- a/src/rmvs/rmvs_discard.f90 +++ b/src/rmvs/rmvs_discard.f90 @@ -34,6 +34,7 @@ module subroutine rmvs_discard_tp(self, system, param) // ") is too small at t = " // trim(adjustl(timestr)) tp%ldiscard(i) = .true. tp%lmask(i) = .false. + call tp%info(i)%set_value(status="DISCARDED_PLQ", discard_time=t, discard_xh=tp%xh(:,i), discard_vh=tp%vh(:,i), discard_body_id=pl%id(iplperP)) end if end if end associate diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 4477fd788..82e549ce5 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -137,33 +137,17 @@ module subroutine setup_initialize_particle_info_system(self, param) class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals - logical :: ltrack_origin integer(I4B) :: i associate(cb => self%cb, pl => self%pl, npl => self%pl%nbody, tp => self%tp, ntp => self%tp%nbody) - if (param%nciu%ltrack_origin) then - cb%info%origin_type = "Initial conditions" - cb%info%origin_time = param%t0 - cb%info%origin_xh(:) = 0.0_DP - cb%info%origin_vh(:) = 0.0_DP - do i = 1, self%pl%nbody - pl%info(i)%origin_type = "Initial conditions" - pl%info(i)%origin_time = param%t0 - pl%info(i)%origin_xh(:) = self%pl%xh(:,i) - pl%info(i)%origin_vh(:) = self%pl%vh(:,i) - end do - do i = 1, self%tp%nbody - tp%info(i)%origin_type = "Initial conditions" - tp%info(i)%origin_time = param%t0 - tp%info(i)%origin_xh(:) = self%tp%xh(:,i) - tp%info(i)%origin_vh(:) = self%tp%vh(:,i) - end do - end if - - cb%info%particle_type = CB_TYPE_NAME - if (npl > 0) pl%info(1:npl)%particle_type = PL_TYPE_NAME - if (ntp > 0) tp%info(1:ntp)%particle_type = TP_TYPE_NAME + call cb%info%set_value(particle_type=CB_TYPE_NAME, status="ACTIVE", origin_type="Initial conditions", origin_time=param%t0, origin_xh=[0.0_DP, 0.0_DP, 0.0_DP], origin_vh=[0.0_DP, 0.0_DP, 0.0_DP]) + do i = 1, self%pl%nbody + call pl%info(i)%set_value(particle_type=PL_TYPE_NAME, status="ACTIVE", origin_type="Initial conditions", origin_time=param%t0, origin_xh=self%pl%xh(:,i), origin_vh=self%pl%vh(:,i)) + end do + do i = 1, self%tp%nbody + call tp%info(i)%set_value(particle_type=TP_TYPE_NAME, status="ACTIVE", origin_type="Initial conditions", origin_time=param%t0, origin_xh=self%tp%xh(:,i), origin_vh=self%tp%vh(:,i)) + end do end associate @@ -219,6 +203,7 @@ module subroutine setup_body(self, n, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameter ! Internals integer(I4B) :: i + self%nbody = n if (n <= 0) return self%lfirst = .true. @@ -250,14 +235,22 @@ module subroutine setup_body(self, n, param) allocate(self%lmask(n)) self%id(:) = 0 - self%info(:)%name = "UNNAMED" - self%info(:)%particle_type = "UKNOWN" - self%info(:)%origin_type = "UNKNOWN" - self%info(:)%origin_time = -1.0_DP do i = 1, n - self%info(i)%origin_xh(:) = 0.0_DP - self%info(i)%origin_vh(:) = 0.0_DP + call self%info(i)%set_value(& + name = "UNNAMED", & + particle_type = "UNKNOWN", & + status = "INACTIVE", & + origin_type = "UNKNOWN", & + origin_time = -huge(1.0_DP), & + origin_xh = [0.0_DP, 0.0_DP, 0.0_DP], & + origin_vh = [0.0_DP, 0.0_DP, 0.0_DP], & + discard_time = -huge(1.0_DP), & + discard_xh = [0.0_DP, 0.0_DP, 0.0_DP], & + discard_vh = [0.0_DP, 0.0_DP, 0.0_DP], & + discard_body_id = -1 & + ) end do + self%status(:) = INACTIVE self%lmask(:) = .false. self%ldiscard(:) = .false. diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 2bf7387d6..922cadc09 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -315,6 +315,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad end do status = MERGED + call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) end select @@ -875,7 +876,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, real(DP), dimension(:,:), intent(in) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors integer(I4B), intent(in) :: status !! Status flag to assign to adds ! Internals - integer(I4B) :: i, ibiggest, nstart, nend, nfamily, nfrag + integer(I4B) :: i, ibiggest, ismallest, iother, nstart, nend, nfamily, nfrag logical, dimension(system%pl%nbody) :: lmask class(symba_pl), allocatable :: plnew character(*), parameter :: FRAGFMT = '("Newbody",I0.7)' @@ -885,26 +886,16 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, class is (symba_pl) select type(pl_discards => system%pl_discards) class is (symba_merger) - associate(info => pl%info, pl_adds => system%pl_adds, cb => system%cb) + associate(info => pl%info, pl_adds => system%pl_adds, cb => system%cb, npl => pl%nbody) ! Add the family bodies to the subtraction list nfamily = size(family(:)) nfrag = size(m_frag(:)) - lmask(:) = .false. - lmask(family(:)) = .true. - pl%status(family(:)) = MERGED - nstart = pl_discards%nbody + 1 - nend = pl_discards%nbody + nfamily - call pl_discards%append(pl, lmask) - pl%ldiscard(family(:)) = .true. - pl%lcollision(family(:)) = .true. - - ! Record how many bodies were subtracted in this event - pl_discards%ncomp(nstart:nend) = nfamily - + ! Setup new bodies allocate(plnew, mold=pl) call plnew%setup(nfrag, param) - ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) + ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) + ismallest = family(minloc(pl%Gmass(family(:)), dim=1)) ! Copy over identification, information, and physical properties of the new bodies from the fragment list plnew%id(1:nfrag) = id_frag(1:nfrag) @@ -923,40 +914,54 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, select case(status) case(DISRUPTION) - plnew%info(1:nfrag)%origin_type = "Disruption" plnew%status(1:nfrag) = NEW_PARTICLE - plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag write(newname, FRAGFMT) id_frag(i) - plnew%info(i)%name = newname - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(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)) + end do + do i = 1, nfamily + if (family(i) == ibiggest) then + iother = ismallest + else + iother = ibiggest + end if + call pl%info(family(i))%set_value(status="Disruption", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do case(SUPERCATASTROPHIC) - plnew%info(1:nfrag)%origin_type = "Supercatastrophic" plnew%status(1:nfrag) = NEW_PARTICLE - plnew%info(1:nfrag)%origin_time = param%t do i = 1, nfrag write(newname, FRAGFMT) id_frag(i) - plnew%info(i)%name = newname - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(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)) + end do + do i = 1, nfamily + if (family(i) == ibiggest) then + iother = ismallest + else + iother = ibiggest + end if + call pl%info(family(i))%set_value(status="Supercatastrophic", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do case(HIT_AND_RUN_DISRUPT) call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE - plnew%status(2:nfrag) = NEW_PARTICLE - plnew%info(2:nfrag)%origin_type = "Hit and run fragment" - plnew%info(2:nfrag)%origin_time = param%t do i = 2, nfrag write(newname, FRAGFMT) id_frag(i) - plnew%info(i)%name = newname - plnew%info(i)%origin_xh(:) = plnew%xh(:,i) - plnew%info(i)%origin_vh(:) = plnew%vh(:,i) + call plnew%info(i)%set_value(origin_type="Hit and run fragmention", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i)) end do + do i = 1, nfamily + if (family(i) == ibiggest) cycle + iother = ibiggest + call pl%info(family(i))%set_value(status="Hit and run fragmention", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + end do case(MERGED) call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE + do i = 1, nfamily + if (family(i) == ibiggest) cycle + + iother = ibiggest + call pl%info(family(i))%set_value(status="MERGED", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + end do end select if (param%lrotation) then @@ -978,13 +983,28 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%levelg(1:nfrag) = pl%levelg(ibiggest) plnew%levelm(1:nfrag) = pl%levelm(ibiggest) - ! Append the new merged body to the list and record how many we made + ! Append the new merged body to the list nstart = pl_adds%nbody + 1 nend = pl_adds%nbody + plnew%nbody call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) + ! Record how many bodies were added in this event pl_adds%ncomp(nstart:nend) = plnew%nbody - call plnew%setup(0, param) + + ! Add the discarded bodies to the discard list + pl%status(family(:)) = MERGED + lmask(:) = .false. + lmask(family(:)) = .true. + pl%ldiscard(family(:)) = .true. + pl%lcollision(family(:)) = .true. + + nstart = pl_discards%nbody + 1 + nend = pl_discards%nbody + nfamily + call pl_discards%append(pl, lmask) + + ! Record how many bodies were subtracted in this event + pl_discards%ncomp(nstart:nend) = nfamily + deallocate(plnew) end associate end select diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index f812dc664..877f7cc95 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -37,6 +37,7 @@ subroutine symba_discard_cb_pl(pl, system, param) write(idstr, *) pl%id(i) write(timestr, *) param%t write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) + call pl%info(i)%set_value(status="DISCARDED_RMAX", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. pl%lcollision(i) = .false. @@ -44,6 +45,7 @@ subroutine symba_discard_cb_pl(pl, system, param) write(idstr, *) pl%id(i) write(timestr, *) param%t write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) + call pl%info(i)%set_value(status="DISCARDED_RMIN", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=cb%id) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) vb2 = dot_product(pl%vb(:,i), pl%vb(:,i)) @@ -55,6 +57,7 @@ subroutine symba_discard_cb_pl(pl, system, param) write(idstr, *) pl%id(i) write(timestr, *) param%t write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + call pl%info(i)%set_value(status="DISCARDED_RMAXU", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) end if end if end if @@ -275,6 +278,7 @@ subroutine symba_discard_peri_pl(pl, system, param) write(timestr, *) param%t write(idstr, *) pl%id(i) write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ") perihelion distance too small at t = " // trim(adjustl(timestr)) + call pl%info(i)%set_value(status="DISCARDED_PERI", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=system%cb%id) end if end if end if diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 8b64950e9..71717aabe 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -182,7 +182,7 @@ end subroutine symba_io_param_writer module subroutine symba_io_write_discard(self, param) implicit none class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals integer(I4B), parameter :: LUN = 40 integer(I4B) :: iadd, isub, j, nsub, nadd @@ -196,13 +196,21 @@ module subroutine symba_io_write_discard(self, param) class(swiftest_body), allocatable :: pltemp character(STRMAX) :: errmsg, out_stat - if (param%discard_out == "") return - associate(pl => self%pl, npl => self%pl%nbody, pl_adds => self%pl_adds) + if (self%tp_discards%nbody > 0) call io_write_discard(self, param) select type(pl_discards => self%pl_discards) class is (symba_merger) if (pl_discards%nbody == 0) return + + ! Record the discarded body metadata information to file + if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call param%nciu%open(param) + call pl_discards%write_particle_info(param%nciu) + call param%nciu%close(param) + end if + + if (param%discard_out == "") return if (lfirst) then out_stat = param%out_stat else diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index c804aebb7..ce29e22aa 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -454,6 +454,7 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Reset all of the status flags for this body where(pl%status(1:npl) /= INACTIVE) pl%status(1:npl) = ACTIVE + pl%info(1:npl)%status = "ACTIVE" pl%ldiscard(1:npl) = .false. pl%lcollision(1:npl) = .false. pl%lmask(1:npl) = .true. diff --git a/src/util/util_copy.f90 b/src/util/util_copy.f90 index 0d29cc92f..60d93e45e 100644 --- a/src/util/util_copy.f90 +++ b/src/util/util_copy.f90 @@ -39,12 +39,19 @@ module subroutine util_copy_particle_info(self, source) class(swiftest_particle_info), intent(inout) :: self class(swiftest_particle_info), intent(in) :: source - self%name = source%name - self%particle_type = source%particle_type - self%origin_type = source%origin_type - self%origin_time = source%origin_time - self%origin_xh(:) = source%origin_xh(:) - self%origin_vh(:) = source%origin_vh(:) + call self%set_value(& + name = source%name, & + particle_type = source%particle_type, & + status = source%status, & + origin_type = source%origin_type, & + origin_time = source%origin_time, & + origin_xh = source%origin_xh(:), & + origin_vh = source%origin_vh(:), & + discard_time = source%discard_time, & + discard_xh = source%discard_xh(:), & + discard_vh = source%discard_vh(:), & + discard_body_id = source%discard_body_id & + ) return end subroutine util_copy_particle_info diff --git a/src/util/util_set.f90 b/src/util/util_set.f90 index 4e686eec8..48c0006c2 100644 --- a/src/util/util_set.f90 +++ b/src/util/util_set.f90 @@ -98,6 +98,62 @@ module subroutine util_set_mu_tp(self, cb) return end subroutine util_set_mu_tp + module subroutine util_set_particle_info(self, name, particle_type, status, origin_type, origin_time, origin_xh, origin_vh, discard_time, discard_xh, discard_vh, discard_body_id) + !! author: David A. Minton + !! + !! Sets one or more values of the particle information metadata object + implicit none + ! Arguments + class(swiftest_particle_info), intent(inout) :: self + character(len=*), intent(in), optional :: name !! Non-unique name + character(len=*), intent(in), optional :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle) + character(len=*), intent(in), optional :: status !! Particle status description: ACTIVE, MERGED, FRAGMENTED, etc. + character(len=*), intent(in), optional :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.) + real(DP), intent(in), optional :: origin_time !! The time of the particle's formation + real(DP), dimension(:), intent(in), optional :: origin_xh !! The heliocentric distance vector at the time of the particle's formation + real(DP), dimension(:), intent(in), optional :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation + real(DP), intent(in), optional :: discard_time !! The time of the particle's discard + real(DP), dimension(:), intent(in), optional :: discard_xh !! The heliocentric distance vector at the time of the particle's discard + real(DP), dimension(:), intent(in), optional :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard + integer(I4B), intent(in), optional :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved) + + if (present(name)) then + self%name = name + end if + if (present(particle_type)) then + self%particle_type = particle_type + end if + if (present(origin_type)) then + self%origin_type = origin_type + end if + if (present(origin_time)) then + self%origin_time = origin_time + end if + if (present(origin_xh)) then + self%origin_xh(:) = origin_xh(:) + end if + if (present(origin_vh)) then + self%origin_vh(:) = origin_vh(:) + end if + if (present(discard_time)) then + self%discard_time = discard_time + end if + if (present(status)) then + self%status = status + end if + if (present(discard_xh)) then + self%discard_xh(:) = discard_xh(:) + end if + if (present(discard_vh)) then + self%discard_vh(:) = discard_vh(:) + end if + if (present(discard_body_id)) then + self%discard_body_id = discard_body_id + end if + + return + end subroutine util_set_particle_info + module subroutine util_set_rhill(self,cb) !! author: David A. Minton From d4e17769bb218788853392a4050ec5e49b6225c7 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 14:17:37 -0400 Subject: [PATCH 264/315] Convert angles to degrees before putting them into NetCDF. Also write out final state of variables on the mass loss exception. --- examples/symba_mars_disk/testnetcdf.ipynb | 6957 ++++++++++++++++----- src/io/io.f90 | 4 +- src/netcdf/netcdf.f90 | 8 +- 3 files changed, 5368 insertions(+), 1601 deletions(-) diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb index 50ac91b3b..be4bf6a11 100644 --- a/examples/symba_mars_disk/testnetcdf.ipynb +++ b/examples/symba_mars_disk/testnetcdf.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 10, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -11,7 +11,7 @@ "'/home/daminton/git/swiftest/examples/symba_mars_disk'" ] }, - "execution_count": 10, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -36,7 +36,7 @@ "Reading Swiftest file param.in\n", "\n", "Creating Dataset\n", - "Successfully converted 2 output frames.\n", + "Successfully converted 6 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" ] } @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -405,25 +405,28 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
    <xarray.DataArray 'npl' (time: 2)>\n",
    -       "array([1500, 1518], dtype=int32)\n",
    +       "
    <xarray.DataArray 'status' (id: 1521)>\n",
    +       "array(['ACTIVE', 'ACTIVE', 'ACTIVE', ..., 'ACTIVE', 'ACTIVE', 'ACTIVE'],\n",
    +       "      dtype='<U17')\n",
            "Coordinates:\n",
    -       "  * time     (time) float64 0.0 6e+03
    " + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " ], "text/plain": [ - "\n", - "array([1500, 1518], dtype=int32)\n", + "\n", + "array(['ACTIVE', 'ACTIVE', 'ACTIVE', ..., 'ACTIVE', 'ACTIVE', 'ACTIVE'],\n", + " dtype='
    <xarray.DataArray 'xhx' (time: 2)>\n",
    -       "array([      0.      , 2742814.426863])\n",
    +       "
    <xarray.DataArray 'status' ()>\n",
    +       "array('Supercatastrophic', dtype='<U17')\n",
            "Coordinates:\n",
    -       "  * time     (time) float64 0.0 6e+03\n",
    -       "    id       int32 1510
    " + " id int32 726
    " ], "text/plain": [ - "\n", - "array([ 0. , 2742814.426863])\n", + "\n", + "array('Supercatastrophic', dtype='\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'discard_time' (id: 1521)>\n",
    +       "array([ 0.000000e+000,  6.013470e-154,  6.013470e-154, ..., -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308])\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " + ], + "text/plain": [ + "\n", + "array([ 0.000000e+000, 6.013470e-154, 6.013470e-154, ..., -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308])\n", + "Coordinates:\n", + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.ds['discard_time']" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "dslost = sim.ds.where(sim.ds['status'] != \"ACTIVE\", drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'discard_time' (id: 2)>\n",
    +       "array([2400., 2400.])\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 230 726
    " + ], + "text/plain": [ + "\n", + "array([2400., 2400.])\n", + "Coordinates:\n", + " * id (id) int32 230 726" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dslost['discard_time']" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "lastloss = dslost.where(dslost['discard_time'] == 98400.0, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "dsactive = sim.ds.where(sim.ds['status'] == \"ACTIVE\", drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:          (id: 1519, time: 6)\n",
    +       "Coordinates:\n",
    +       "  * time             (time) float64 0.0 600.0 1.2e+03 1.8e+03 2.4e+03 3e+03\n",
    +       "  * id               (id) int32 0 1 2 3 4 5 6 ... 1515 1516 1517 1518 1519 1520\n",
    +       "Data variables: (12/57)\n",
    +       "    npl              (time, id) float64 1.5e+03 1.5e+03 ... 1.518e+03 1.518e+03\n",
    +       "    ntp              (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n",
    +       "    name             (id) object 'Mars' 'Body2' ... 'Newbody0001520'\n",
    +       "    particle_type    (id) object 'Central Body' ... 'Massive Body'\n",
    +       "    xhx              (time, id) float64 0.0 -2.358e+06 ... -3.489e+06 -3.476e+06\n",
    +       "    xhy              (time, id) float64 0.0 8.604e+06 ... -8.532e+06 -8.571e+06\n",
    +       "    ...               ...\n",
    +       "    discard_xhy      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_xhz      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_vhx      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_vhy      (id) float64 0.0 2.122e-314 2.122e-314 ... 0.0 0.0 0.0\n",
    +       "    discard_vhz      (id) float64 0.0 3.024e-153 3.024e-153 ... 0.0 0.0 0.0\n",
    +       "    discard_body_id  (id) float64 -2.147e+09 -2.147e+09 ... -2.147e+09
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 1519, time: 6)\n", + "Coordinates:\n", + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 2.4e+03 3e+03\n", + " * id (id) int32 0 1 2 3 4 5 6 ... 1515 1516 1517 1518 1519 1520\n", + "Data variables: (12/57)\n", + " npl (time, id) float64 1.5e+03 1.5e+03 ... 1.518e+03 1.518e+03\n", + " ntp (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n", + " name (id) object 'Mars' 'Body2' ... 'Newbody0001520'\n", + " particle_type (id) object 'Central Body' ... 'Massive Body'\n", + " xhx (time, id) float64 0.0 -2.358e+06 ... -3.489e+06 -3.476e+06\n", + " xhy (time, id) float64 0.0 8.604e+06 ... -8.532e+06 -8.571e+06\n", + " ... ...\n", + " discard_xhy (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_xhz (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_vhx (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_vhy (id) float64 0.0 2.122e-314 2.122e-314 ... 0.0 0.0 0.0\n", + " discard_vhz (id) float64 0.0 3.024e-153 3.024e-153 ... 0.0 0.0 0.0\n", + " discard_body_id (id) float64 -2.147e+09 -2.147e+09 ... -2.147e+09" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dsactive" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "lastadd = sim.ds.where(sim.ds['origin_time'] == 2400.0, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:          (id: 20, time: 6)\n",
    +       "Coordinates:\n",
    +       "  * time             (time) float64 0.0 600.0 1.2e+03 1.8e+03 2.4e+03 3e+03\n",
    +       "  * id               (id) int32 1501 1502 1503 1504 1505 ... 1517 1518 1519 1520\n",
    +       "Data variables: (12/57)\n",
    +       "    npl              (time, id) float64 1.5e+03 1.5e+03 ... 1.518e+03 1.518e+03\n",
    +       "    ntp              (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n",
    +       "    name             (id) object 'Newbody0001501' ... 'Newbody0001520'\n",
    +       "    particle_type    (id) object 'Massive Body' ... 'Massive Body'\n",
    +       "    xhx              (time, id) float64 0.0 0.0 0.0 ... -3.489e+06 -3.476e+06\n",
    +       "    xhy              (time, id) float64 0.0 0.0 0.0 ... -8.532e+06 -8.571e+06\n",
    +       "    ...               ...\n",
    +       "    discard_xhy      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_xhz      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_vhx      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_vhy      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_vhz      (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
    +       "    discard_body_id  (id) float64 -2.147e+09 -2.147e+09 ... -2.147e+09
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 20, time: 6)\n", + "Coordinates:\n", + " * time (time) float64 0.0 600.0 1.2e+03 1.8e+03 2.4e+03 3e+03\n", + " * id (id) int32 1501 1502 1503 1504 1505 ... 1517 1518 1519 1520\n", + "Data variables: (12/57)\n", + " npl (time, id) float64 1.5e+03 1.5e+03 ... 1.518e+03 1.518e+03\n", + " ntp (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n", + " name (id) object 'Newbody0001501' ... 'Newbody0001520'\n", + " particle_type (id) object 'Massive Body' ... 'Massive Body'\n", + " xhx (time, id) float64 0.0 0.0 0.0 ... -3.489e+06 -3.476e+06\n", + " xhy (time, id) float64 0.0 0.0 0.0 ... -8.532e+06 -8.571e+06\n", + " ... ...\n", + " discard_xhy (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_xhz (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_vhx (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_vhy (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_vhz (id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " discard_body_id (id) float64 -2.147e+09 -2.147e+09 ... -2.147e+09" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lastadd" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "lastframe = dsactive.isel(time=-1, drop=True)\n", + "firstframe = sim.ds.isel(time=0, drop=True)\n", + "firstframe = firstframe.where(firstframe['a'] < 1e20, drop=True)\n", + "midframe = sim.ds.isel(time=-2, drop=True)\n", + "midframe = midframe.where(midframe['a'] < 1e20, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'id' (id: 1519)>\n",
    +       "array([   0,    1,    2, ..., 1518, 1519, 1520], dtype=int32)\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520
    " + ], + "text/plain": [ + "\n", + "array([ 0, 1, 2, ..., 1518, 1519, 1520], dtype=int32)\n", + "Coordinates:\n", + " * id (id) int32 0 1 2 3 4 5 6 7 ... 1514 1515 1516 1517 1518 1519 1520" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lastframe.id" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'id' (id: 0)>\n",
    +       "array([], dtype=int32)\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 
    " + ], + "text/plain": [ + "\n", + "array([], dtype=int32)\n", + "Coordinates:\n", + " * id (id) int32 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lastloss.id" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'Gmass' ()>\n",
    +       "array(4.28396188e+13)
    " + ], + "text/plain": [ + "\n", + "array(4.28396188e+13)" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lastframe['Gmass'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'Gmass' ()>\n",
    +       "array(4.28396188e+13)
    " + ], + "text/plain": [ + "\n", + "array(4.28396188e+13)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "firstframe['Gmass'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'Gmass' ()>\n",
    +       "array(4.28396188e+13)
    " + ], + "text/plain": [ + "\n", + "array(4.28396188e+13)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "midframe['Gmass'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:          ()\n",
    +       "Coordinates:\n",
    +       "    id               int32 2\n",
    +       "Data variables: (12/57)\n",
    +       "    npl              float64 1.518e+03\n",
    +       "    ntp              float64 0.0\n",
    +       "    name             object 'Body3'\n",
    +       "    particle_type    object 'Massive Body'\n",
    +       "    xhx              float64 -3.025e+06\n",
    +       "    xhy              float64 -1.02e+07\n",
    +       "    ...               ...\n",
    +       "    discard_xhy      float64 0.0\n",
    +       "    discard_xhz      float64 0.0\n",
    +       "    discard_vhx      float64 0.0\n",
    +       "    discard_vhy      float64 2.122e-314\n",
    +       "    discard_vhz      float64 3.024e-153\n",
    +       "    discard_body_id  float64 -2.147e+09
    " + ], + "text/plain": [ + "\n", + "Dimensions: ()\n", + "Coordinates:\n", + " id int32 2\n", + "Data variables: (12/57)\n", + " npl float64 1.518e+03\n", + " ntp float64 0.0\n", + " name object 'Body3'\n", + " particle_type object 'Massive Body'\n", + " xhx float64 -3.025e+06\n", + " xhy float64 -1.02e+07\n", + " ... ...\n", + " discard_xhy float64 0.0\n", + " discard_xhz float64 0.0\n", + " discard_vhx float64 0.0\n", + " discard_vhy float64 2.122e-314\n", + " discard_vhz float64 3.024e-153\n", + " discard_body_id float64 -2.147e+09" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "for n in sim.ds['radius']:\n", - " print(n.values)" + "lastframe.sel(id=2)" ] }, { diff --git a/src/io/io.f90 b/src/io/io.f90 index a7e1d5d9f..637d1705f 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -69,6 +69,9 @@ module subroutine io_conservation_report(self, param, lterminal) Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig if (Merror < -10 * epsilon(Merror)) then write(*,*) 'Mass loss! Halting!' + call param%nciu%open(param) + call pl%write_frame(param%nciu, param) + call param%nciu%close(param) call util_exit(FAILURE) end if write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror @@ -1919,7 +1922,6 @@ module subroutine io_write_frame_system(self, param) call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) - close(iu, err = 667, iomsg = errmsg) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then call cb%write_frame(param%nciu, param) diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 6672ee7d0..64b30a44a 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -282,10 +282,10 @@ module subroutine netcdf_write_frame_base(self, iu, param) if ((param%out_form == EL) .or. (param%out_form == XVEL)) then call check( nf90_put_var(iu%ncid, iu%a_varid, self%a(j), start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%e_varid, self%e(j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j), start=[idslot, tslot]) ) - call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j), start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%inc_varid, self%inc(j) * RAD2DEG, start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%capom_varid, self%capom(j) * RAD2DEG, start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%omega_varid, self%omega(j) * RAD2DEG, start=[idslot, tslot]) ) + call check( nf90_put_var(iu%ncid, iu%capm_varid, self%capm(j) * RAD2DEG, start=[idslot, tslot]) ) end if select type(self) From 5e1395255ffa973e7ccfad4e8ff701240be1a5b2 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 15:10:48 -0400 Subject: [PATCH 265/315] Changed the way discards are handeled and ensured that non-distructive spill method doesn't change the number of bodies/encounters. --- src/io/io.f90 | 7 +-- src/symba/symba_collision.f90 | 10 +++-- src/util/util_append.f90 | 85 +++++++++++++++++++---------------- src/util/util_spill.f90 | 16 +++++-- 4 files changed, 68 insertions(+), 50 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 637d1705f..e01efe4ec 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -67,14 +67,15 @@ module subroutine io_conservation_report(self, param, lterminal) Ecoll_error = param%Ecollisions / abs(param%Eorbit_orig) Etotal_error = (Eorbit_now - param%Ecollisions - param%Eorbit_orig - param%Euntracked) / abs(param%Eorbit_orig) Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig + write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror if (Merror < -10 * epsilon(Merror)) then write(*,*) 'Mass loss! Halting!' + call pl%xv2el(cb) call param%nciu%open(param) call pl%write_frame(param%nciu, param) call param%nciu%close(param) call util_exit(FAILURE) end if - write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror end if end associate @@ -1868,7 +1869,6 @@ module subroutine io_write_frame_system(self, param) else open(unit = iu, file = param%outfile, status = 'OLD', position = 'APPEND', form = 'UNFORMATTED', err = 667, iomsg = errmsg) end if - call self%write_hdr(iu, param) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then if (lfirst) then @@ -1904,7 +1904,6 @@ module subroutine io_write_frame_system(self, param) else call param%nciu%open(param) end if - call self%write_hdr(param%nciu, param) end if if (param%lgr) then @@ -1919,11 +1918,13 @@ module subroutine io_write_frame_system(self, param) ! Write out each data type frame if ((param%out_type == REAL4_TYPE) .or. (param%out_type == REAL8_TYPE)) then + call self%write_hdr(iu, param) call cb%write_frame(iu, param) call pl%write_frame(iu, param) call tp%write_frame(iu, param) close(iu, err = 667, iomsg = errmsg) else if ((param%out_type == NETCDF_FLOAT_TYPE) .or. (param%out_type == NETCDF_DOUBLE_TYPE)) then + call self%write_hdr(param%nciu, param) call cb%write_frame(param%nciu, param) call pl%write_frame(param%nciu, param) call tp%write_frame(param%nciu, param) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 922cadc09..ae63edcba 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -989,18 +989,20 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) ! Record how many bodies were added in this event pl_adds%ncomp(nstart:nend) = plnew%nbody - call plnew%setup(0, param) ! Add the discarded bodies to the discard list pl%status(family(:)) = MERGED - lmask(:) = .false. - lmask(family(:)) = .true. pl%ldiscard(family(:)) = .true. pl%lcollision(family(:)) = .true. + lmask(:) = .false. + lmask(family(:)) = .true. + + call plnew%setup(0, param) + call pl%spill(plnew, lmask, ldestructive=.false.) nstart = pl_discards%nbody + 1 nend = pl_discards%nbody + nfamily - call pl_discards%append(pl, lmask) + call pl_discards%append(plnew, lsource_mask=[(.true., i = 1, nfamily)]) ! Record how many bodies were subtracted in this event pl_discards%ncomp(nstart:nend) = nfamily diff --git a/src/util/util_append.f90 b/src/util/util_append.f90 index ecefb1572..ffe576c85 100644 --- a/src/util/util_append.f90 +++ b/src/util/util_append.f90 @@ -187,31 +187,36 @@ module subroutine util_append_body(self, source, lsource_mask) class(swiftest_body), intent(inout) :: self !! Swiftest body object class(swiftest_body), intent(in) :: source !! Source object to append logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to + ! Internals + integer(I4B) :: nold, nsrc, nnew + + nold = self%nbody + nsrc = source%nbody + nnew = count(lsource_mask(1:nsrc)) - associate(nold => self%nbody, nsrc => source%nbody) - call util_append(self%info, source%info, nold, nsrc, lsource_mask) - call util_append(self%id, source%id, nold, nsrc, lsource_mask) - call util_append(self%status, source%status, nold, nsrc, lsource_mask) - call util_append(self%ldiscard, source%ldiscard, nold, nsrc, lsource_mask) - call util_append(self%lmask, source%lmask, nold, nsrc, lsource_mask) - call util_append(self%mu, source%mu, nold, nsrc, lsource_mask) - call util_append(self%xh, source%xh, nold, nsrc, lsource_mask) - call util_append(self%vh, source%vh, nold, nsrc, lsource_mask) - call util_append(self%xb, source%xb, nold, nsrc, lsource_mask) - call util_append(self%vb, source%vb, nold, nsrc, lsource_mask) - call util_append(self%ah, source%ah, nold, nsrc, lsource_mask) - call util_append(self%aobl, source%aobl, nold, nsrc, lsource_mask) - call util_append(self%atide, source%atide, nold, nsrc, lsource_mask) - call util_append(self%agr, source%agr, nold, nsrc, lsource_mask) - call util_append(self%ir3h, source%ir3h, nold, nsrc, lsource_mask) - call util_append(self%a, source%a, nold, nsrc, lsource_mask) - call util_append(self%e, source%e, nold, nsrc, lsource_mask) - call util_append(self%inc, source%inc, nold, nsrc, lsource_mask) - call util_append(self%capom, source%capom, nold, nsrc, lsource_mask) - call util_append(self%omega, source%omega, nold, nsrc, lsource_mask) - call util_append(self%capm, source%capm, nold, nsrc, lsource_mask) - self%nbody = nold + count(lsource_mask(:)) - end associate + call util_append(self%info, source%info, nold, nsrc, lsource_mask) + call util_append(self%id, source%id, nold, nsrc, lsource_mask) + call util_append(self%status, source%status, nold, nsrc, lsource_mask) + call util_append(self%ldiscard, source%ldiscard, nold, nsrc, lsource_mask) + call util_append(self%lmask, source%lmask, nold, nsrc, lsource_mask) + call util_append(self%mu, source%mu, nold, nsrc, lsource_mask) + call util_append(self%xh, source%xh, nold, nsrc, lsource_mask) + call util_append(self%vh, source%vh, nold, nsrc, lsource_mask) + call util_append(self%xb, source%xb, nold, nsrc, lsource_mask) + call util_append(self%vb, source%vb, nold, nsrc, lsource_mask) + call util_append(self%ah, source%ah, nold, nsrc, lsource_mask) + call util_append(self%aobl, source%aobl, nold, nsrc, lsource_mask) + call util_append(self%atide, source%atide, nold, nsrc, lsource_mask) + call util_append(self%agr, source%agr, nold, nsrc, lsource_mask) + call util_append(self%ir3h, source%ir3h, nold, nsrc, lsource_mask) + call util_append(self%a, source%a, nold, nsrc, lsource_mask) + call util_append(self%e, source%e, nold, nsrc, lsource_mask) + call util_append(self%inc, source%inc, nold, nsrc, lsource_mask) + call util_append(self%capom, source%capom, nold, nsrc, lsource_mask) + call util_append(self%omega, source%omega, nold, nsrc, lsource_mask) + call util_append(self%capm, source%capm, nold, nsrc, lsource_mask) + + self%nbody = nold + nnew return end subroutine util_append_body @@ -227,21 +232,23 @@ module subroutine util_append_encounter(self, source, lsource_mask) class(swiftest_encounter), intent(inout) :: self !! Swiftest encounter list object class(swiftest_encounter), intent(in) :: source !! Source object to append logical, dimension(:), intent(in) :: lsource_mask !! Logical mask indicating which elements to append to - - associate(nold => self%nenc, nsrc => source%nenc) - call util_append(self%lvdotr, source%lvdotr, nold, nsrc, lsource_mask) - call util_append(self%status, source%status, nold, nsrc, lsource_mask) - call util_append(self%index1, source%index1, nold, nsrc, lsource_mask) - call util_append(self%index2, source%index2, nold, nsrc, lsource_mask) - call util_append(self%id1, source%id1, nold, nsrc, lsource_mask) - call util_append(self%id2, source%id2, nold, nsrc, lsource_mask) - call util_append(self%x1, source%x1, nold, nsrc, lsource_mask) - call util_append(self%x2, source%x2, nold, nsrc, lsource_mask) - call util_append(self%v1, source%v1, nold, nsrc, lsource_mask) - call util_append(self%v2, source%v2, nold, nsrc, lsource_mask) - call util_append(self%t, source%t, nold, nsrc, lsource_mask) - self%nenc = nold + count(lsource_mask(:)) - end associate + ! Internals + integer(I4B) :: nold, nsrc + + nold = self%nenc + nsrc = source%nenc + call util_append(self%lvdotr, source%lvdotr, nold, nsrc, lsource_mask) + call util_append(self%status, source%status, nold, nsrc, lsource_mask) + call util_append(self%index1, source%index1, nold, nsrc, lsource_mask) + call util_append(self%index2, source%index2, nold, nsrc, lsource_mask) + call util_append(self%id1, source%id1, nold, nsrc, lsource_mask) + call util_append(self%id2, source%id2, nold, nsrc, lsource_mask) + call util_append(self%x1, source%x1, nold, nsrc, lsource_mask) + call util_append(self%x2, source%x2, nold, nsrc, lsource_mask) + call util_append(self%v1, source%v1, nold, nsrc, lsource_mask) + call util_append(self%v2, source%v2, nold, nsrc, lsource_mask) + call util_append(self%t, source%t, nold, nsrc, lsource_mask) + self%nenc = nold + count(lsource_mask(1:nsrc)) return end subroutine util_append_encounter diff --git a/src/util/util_spill.f90 b/src/util/util_spill.f90 index 8f9567ef9..16039c4da 100644 --- a/src/util/util_spill.f90 +++ b/src/util/util_spill.f90 @@ -318,10 +318,12 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list ! Internals + integer(I4B) :: nbody_old ! For each component, pack the discarded bodies into the discard object and do the inverse with the keeps !> Spill all the common components associate(keeps => self) + call util_spill(keeps%id, discards%id, lspill_list, ldestructive) call util_spill(keeps%info, discards%info, lspill_list, ldestructive) call util_spill(keeps%status, discards%status, lspill_list, ldestructive) @@ -343,10 +345,12 @@ module subroutine util_spill_body(self, discards, lspill_list, ldestructive) call util_spill(keeps%omega, discards%omega, lspill_list, ldestructive) call util_spill(keeps%capm, discards%capm, lspill_list, ldestructive) + nbody_old = keeps%nbody + ! This is the base class, so will be the last to be called in the cascade. ! Therefore we need to set the nbody values for both the keeps and discareds - discards%nbody = count(lspill_list(:)) - keeps%nbody = keeps%nbody - discards%nbody + discards%nbody = count(lspill_list(1:nbody_old)) + if (ldestructive) keeps%nbody = nbody_old- discards%nbody end associate return @@ -363,6 +367,8 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list + ! Internals + integer(I4B) :: nenc_old associate(keeps => self) call util_spill(keeps%lvdotr, discards%lvdotr, lspill_list, ldestructive) @@ -378,10 +384,12 @@ module subroutine util_spill_encounter(self, discards, lspill_list, ldestructive call util_spill(keeps%v2, discards%v2, lspill_list, ldestructive) call util_spill(keeps%t, discards%t, lspill_list, ldestructive) + nenc_old = keeps%nenc + ! This is the base class, so will be the last to be called in the cascade. ! Therefore we need to set the nenc values for both the keeps and discareds - discards%nenc = count(lspill_list(:)) - keeps%nenc = count(.not.lspill_list(:)) + discards%nenc = count(lspill_list(1:nenc_old)) + if (ldestructive) keeps%nenc = nenc_old - discards%nenc end associate return From 5ee0f72a6fe83b719a672dc6adc2493209c54c1b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 15:15:25 -0400 Subject: [PATCH 266/315] Write out a full output frame just prior to failing the run on the mass loss exception. --- src/io/io.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/io/io.f90 b/src/io/io.f90 index e01efe4ec..bbbf25cd1 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -72,6 +72,8 @@ module subroutine io_conservation_report(self, param, lterminal) write(*,*) 'Mass loss! Halting!' call pl%xv2el(cb) call param%nciu%open(param) + call self%write_hdr(param%nciu, param) + call cb%write_frame(param%nciu, param) call pl%write_frame(param%nciu, param) call param%nciu%close(param) call util_exit(FAILURE) From 2a54117198dec69dc20c7f49743146418b79f5a8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 15:32:47 -0400 Subject: [PATCH 267/315] Fixed what happens when you pass 0 bodies into the setup method. This now deallocates all the arrays, and therefore resets the object to be ready for the next time something needs to be added to it. --- src/rmvs/rmvs_setup.f90 | 12 +++++++++-- src/setup/setup.f90 | 42 +++++++++++++++++++++------------------ src/symba/symba_setup.f90 | 19 +++++++++++++----- src/whm/whm_setup.f90 | 4 +++- 4 files changed, 50 insertions(+), 27 deletions(-) diff --git a/src/rmvs/rmvs_setup.f90 b/src/rmvs/rmvs_setup.f90 index 92043e0fe..e59202cd9 100644 --- a/src/rmvs/rmvs_setup.f90 +++ b/src/rmvs/rmvs_setup.f90 @@ -19,7 +19,13 @@ module subroutine rmvs_setup_pl(self, n, param) !> Call allocation method for parent class associate(pl => self) call whm_setup_pl(pl, n, param) - if (n <= 0) return + if (n < 0) return + + if (allocated(pl%outer)) deallocate(pl%outer) + if (allocated(pl%inner)) deallocate(pl%inner) + if (allocated(pl%nenc)) deallocate(pl%nenc) + + if (n == 0) return allocate(pl%outer(0:NTENC)) allocate(pl%inner(0:NTPHENC)) @@ -145,12 +151,14 @@ module subroutine rmvs_setup_tp(self, n, param) !> Call allocation method for parent class. In this case, whm does not have its own setup method, so we use the base method for swiftest_tp call setup_tp(self, n, param) - if (n <= 0) return + if (n < 0) return if (allocated(self%lperi)) deallocate(self%lperi) if (allocated(self%plperP)) deallocate(self%plperP) if (allocated(self%plencP)) deallocate(self%plencP) + if (n == 0) return + allocate(self%lperi(n)) allocate(self%plperP(n)) allocate(self%plencP(n)) diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 82e549ce5..976e73956 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -82,7 +82,7 @@ module subroutine setup_encounter(self, n) integer(I4B), intent(in) :: n !! Number of encounters to allocate space for self%nenc = n - if (n == 0) return + if (n < 0) return if (allocated(self%lvdotr)) deallocate(self%lvdotr) if (allocated(self%status)) deallocate(self%status) @@ -97,6 +97,8 @@ module subroutine setup_encounter(self, n) if (allocated(self%v2)) deallocate(self%v2) if (allocated(self%t)) deallocate(self%t) + if (n == 0) return + allocate(self%lvdotr(n)) allocate(self%status(n)) allocate(self%kidx(n)) @@ -205,7 +207,8 @@ module subroutine setup_body(self, n, param) integer(I4B) :: i self%nbody = n - if (n <= 0) return + if (n < 0) return + self%lfirst = .true. if (allocated(self%id)) deallocate(self%id) @@ -220,6 +223,11 @@ module subroutine setup_body(self, n, param) if (allocated(self%ir3h)) deallocate(self%ir3h) if (allocated(self%mu)) deallocate(self%mu) if (allocated(self%lmask)) deallocate(self%lmask) + if (allocated(self%aobl)) deallocate(self%aobl) + if (allocated(self%atide)) deallocate(self%lmask) + if (allocated(self%agr)) deallocate(self%lmask) + + if (n == 0) return allocate(self%id(n)) allocate(self%info(n)) @@ -263,17 +271,14 @@ module subroutine setup_body(self, n, param) self%mu(:) = 0.0_DP if (param%loblatecb) then - if (allocated(self%aobl)) deallocate(self%aobl) allocate(self%aobl(NDIM, n)) self%aobl(:,:) = 0.0_DP end if if (param%ltides) then - if (allocated(self%atide)) deallocate(self%lmask) allocate(self%atide(NDIM, n)) self%atide(:,:) = 0.0_DP end if if (param%lgr) then - if (allocated(self%agr)) deallocate(self%lmask) allocate(self%agr(NDIM, n)) self%agr(:,:) = 0.0_DP end if @@ -296,14 +301,21 @@ module subroutine setup_pl(self, n, param) !> Call allocation method for parent class !> The parent class here is the abstract swiftest_body class, so we can't use the type-bound procedure call setup_body(self, n, param) - if (n <= 0) return + if (n < 0) return - if (allocated(self%info)) deallocate(self%info) if (allocated(self%mass)) deallocate(self%mass) if (allocated(self%Gmass)) deallocate(self%Gmass) if (allocated(self%rhill)) deallocate(self%rhill) + if (allocated(self%radius)) deallocate(self%radius) + if (allocated(self%density)) deallocate(self%density) + if (allocated(self%rot)) deallocate(self%rot) + if (allocated(self%Ip)) deallocate(self%Ip) + if (allocated(self%k2)) deallocate(self%k2) + if (allocated(self%Q)) deallocate(self%Q) + if (allocated(self%tlag)) deallocate(self%tlag) + + if (n == 0) return - allocate(swiftest_particle_info :: self%info(n)) allocate(self%mass(n)) allocate(self%Gmass(n)) allocate(self%rhill(n)) @@ -315,8 +327,6 @@ module subroutine setup_pl(self, n, param) self%nplpl = 0 if (param%lclose) then - if (allocated(self%radius)) deallocate(self%radius) - if (allocated(self%density)) deallocate(self%density) allocate(self%radius(n)) allocate(self%density(n)) self%radius(:) = 0.0_DP @@ -324,8 +334,6 @@ module subroutine setup_pl(self, n, param) end if if (param%lrotation) then - if (allocated(self%rot)) deallocate(self%rot) - if (allocated(self%Ip)) deallocate(self%Ip) allocate(self%rot(NDIM, n)) allocate(self%Ip(NDIM, n)) self%rot(:,:) = 0.0_DP @@ -333,9 +341,6 @@ module subroutine setup_pl(self, n, param) end if if (param%ltides) then - if (allocated(self%k2)) deallocate(self%k2) - if (allocated(self%Q)) deallocate(self%Q) - if (allocated(self%tlag)) deallocate(self%tlag) allocate(self%k2(n)) allocate(self%Q(n)) allocate(self%tlag(n)) @@ -362,19 +367,18 @@ module subroutine setup_tp(self, n, param) !> Call allocation method for parent class !> The parent class here is the abstract swiftest_body class, so we can't use the type-bound procedure call setup_body(self, n, param) - if (n <= 0) return + if (n < 0) return - if (allocated(self%info)) deallocate(self%info) if (allocated(self%isperi)) deallocate(self%isperi) if (allocated(self%peri)) deallocate(self%peri) if (allocated(self%atp)) deallocate(self%atp) - allocate(swiftest_particle_info :: self%info(n)) + if (n == 0) return + allocate(self%isperi(n)) allocate(self%peri(n)) allocate(self%atp(n)) - self%info(:)%particle_type = TP_TYPE_NAME self%isperi(:) = 0 self%peri(:) = 0.0_DP self%atp(:) = 0.0_DP diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 9eff6bf6c..9c1fdb343 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -43,9 +43,12 @@ module subroutine symba_setup_merger(self, n, param) !> Call allocation method for parent class. In this case, helio_pl does not have its own setup method so we use the base method for swiftest_pl call symba_setup_pl(self, n, param) - if (n <= 0) return + if (n < 0) return if (allocated(self%ncomp)) deallocate(self%ncomp) + + if (n == 0) return + allocate(self%ncomp(n)) self%ncomp(:) = 0 @@ -69,8 +72,7 @@ module subroutine symba_setup_pl(self, n, param) !> Call allocation method for parent class. In this case, helio_pl does not have its own setup method so we use the base method for swiftest_pl call setup_pl(self, n, param) - if (n <= 0) return - + if (n < 0) return if (allocated(self%lcollision)) deallocate(self%lcollision) if (allocated(self%lencounter)) deallocate(self%lencounter) @@ -84,6 +86,8 @@ module subroutine symba_setup_pl(self, n, param) if (allocated(self%atp)) deallocate(self%atp) if (allocated(self%kin)) deallocate(self%kin) + if (n == 0) return + allocate(self%lcollision(n)) allocate(self%lencounter(n)) allocate(self%lmtiny(n)) @@ -123,9 +127,12 @@ module subroutine symba_setup_encounter(self, n) integer(I4B), intent(in) :: n !! Number of encounters to allocate space for call setup_encounter(self, n) - if (n == 0) return + if (n < 0) return if (allocated(self%level)) deallocate(self%level) + + if (n ==0) return + allocate(self%level(n)) self%level(:) = -1 @@ -148,13 +155,15 @@ module subroutine symba_setup_tp(self, n, param) !> Call allocation method for parent class. In this case, helio_tp does not have its own setup method so we use the base method for swiftest_tp call setup_tp(self, n, param) - if (n <= 0) return + if (n < 0) return if (allocated(self%nplenc)) deallocate(self%nplenc) if (allocated(self%levelg)) deallocate(self%levelg) if (allocated(self%levelm)) deallocate(self%levelm) if (allocated(self%info)) deallocate(self%info) + if (n == 0) return + allocate(self%nplenc(n)) allocate(self%levelg(n)) allocate(self%levelm(n)) diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index 3510769a7..8dee15982 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -16,7 +16,7 @@ module subroutine whm_setup_pl(self, n, param) !> Call allocation method for parent class call setup_pl(self, n, param) - if (n <= 0) return + if (n < 0) return if (allocated(self%eta)) deallocate(self%eta) if (allocated(self%muj)) deallocate(self%muj) @@ -24,6 +24,8 @@ module subroutine whm_setup_pl(self, n, param) if (allocated(self%vj)) deallocate(self%vj) if (allocated(self%ir3j)) deallocate(self%ir3j) + if (n == 0) return + allocate(self%eta(n)) allocate(self%muj(n)) allocate(self%xj(NDIM, n)) From 59693470b50abf5f60e3d95574a5bd728aad9079 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 15:45:37 -0400 Subject: [PATCH 268/315] changed number of added bodies in rearray to regular integer rather than an association. --- src/setup/setup.f90 | 25 ++++++++++++++++--------- src/symba/symba_util.f90 | 5 +++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 976e73956..504faca35 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -211,38 +211,45 @@ module subroutine setup_body(self, n, param) self%lfirst = .true. - if (allocated(self%id)) deallocate(self%id) if (allocated(self%info)) deallocate(self%info) + if (allocated(self%id)) deallocate(self%id) if (allocated(self%status)) deallocate(self%status) if (allocated(self%ldiscard)) deallocate(self%ldiscard) + if (allocated(self%lmask)) deallocate(self%lmask) + if (allocated(self%mu)) deallocate(self%mu) if (allocated(self%xh)) deallocate(self%xh) if (allocated(self%vh)) deallocate(self%vh) if (allocated(self%xb)) deallocate(self%xb) if (allocated(self%vb)) deallocate(self%vb) if (allocated(self%ah)) deallocate(self%ah) - if (allocated(self%ir3h)) deallocate(self%ir3h) - if (allocated(self%mu)) deallocate(self%mu) - if (allocated(self%lmask)) deallocate(self%lmask) if (allocated(self%aobl)) deallocate(self%aobl) - if (allocated(self%atide)) deallocate(self%lmask) if (allocated(self%agr)) deallocate(self%lmask) + if (allocated(self%atide)) deallocate(self%lmask) + if (allocated(self%ir3h)) deallocate(self%ir3h) + if (allocated(self%a)) deallocate(self%a) + if (allocated(self%e)) deallocate(self%e) + if (allocated(self%e)) deallocate(self%e) + if (allocated(self%inc)) deallocate(self%inc) + if (allocated(self%capom)) deallocate(self%capom) + if (allocated(self%omega)) deallocate(self%omega) + if (allocated(self%capm)) deallocate(self%capm) if (n == 0) return - allocate(self%id(n)) allocate(self%info(n)) + allocate(self%id(n)) allocate(self%status(n)) allocate(self%ldiscard(n)) + allocate(self%lmask(n)) + allocate(self%mu(n)) allocate(self%xh(NDIM, n)) allocate(self%vh(NDIM, n)) allocate(self%xb(NDIM, n)) allocate(self%vb(NDIM, n)) allocate(self%ah(NDIM, n)) allocate(self%ir3h(n)) - allocate(self%mu(n)) - allocate(self%lmask(n)) - self%id(:) = 0 + self%id(:) = 0 do i = 1, n call self%info(i)%set_value(& name = "UNNAMED", & diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index ce29e22aa..c805734bf 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -409,15 +409,16 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k, npl, nencmin, idnew1, idnew2, idold1, idold2 + integer(I4B) :: i, j, k, npl, nadd, nencmin, idnew1, idnew2, idold1, idold2 logical, dimension(:), allocatable :: lmask, ldump_mask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter integer(I4B), dimension(:), allocatable :: levelg_orig_pl, levelm_orig_pl, levelg_orig_tp, levelm_orig_tp, nplenc_orig_pl, nplenc_orig_tp, ntpenc_orig_pl - associate(pl => self, pl_adds => system%pl_adds, nadd => system%pl_adds%nbody) + associate(pl => self, pl_adds => system%pl_adds) npl = pl%nbody + nadd = pl_adds%nbody) if (npl == 0) return ! Deallocate any temporary variables if (allocated(pl%xbeg)) deallocate(pl%xbeg) From 86de607f52b9de460c1f93c70e0a61c977846d47 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 16:07:33 -0400 Subject: [PATCH 269/315] Switched out more associates with integers for number of bodies/events in subroutines where those numbers may change. --- src/discard/discard.f90 | 5 ++++- src/symba/symba_collision.f90 | 5 +++-- src/symba/symba_discard.f90 | 3 +++ src/symba/symba_encounter_check.f90 | 20 ++++++++++---------- src/symba/symba_kick.f90 | 26 +++++++++++++------------- src/symba/symba_util.f90 | 22 ++++++++-------------- 6 files changed, 41 insertions(+), 40 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index e0dc8813e..97bbfbfc4 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -73,9 +73,12 @@ module subroutine discard_tp(self, system, param) class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameter ! Internals logical, dimension(:), allocatable :: ldiscard + integer(I4B) :: npl, ntp - associate(tp => self, ntp => self%nbody, cb => system%cb, pl => system%pl, npl => system%pl%nbody) + associate(tp => self, cb => system%cb, pl => system%pl) if ((ntp == 0) .or. (npl ==0)) return + ntp = tp%nbody + npl = pl%nbody if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. & (param%rmaxu >= 0.0_DP) .or. ((param%qmin >= 0.0_DP) .and. (param%qmin_coord == "BARY"))) then diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index ae63edcba..15a52ac48 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -745,11 +745,12 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par logical, dimension(:), allocatable :: lplpl_unique_parent integer(I4B), dimension(:), pointer :: plparent integer(I4B), dimension(:), allocatable :: collision_idx, unique_parent_idx - integer(I4B) :: i, index_coll, ncollisions, nunique_parent + integer(I4B) :: i, index_coll, ncollisions, nunique_parent, nplplenc select type (pl => system%pl) class is (symba_pl) - associate(plplenc_list => self, nplplenc => self%nenc, idx1 => self%index1, idx2 => self%index2, plparent => pl%kin%parent) + associate(plplenc_list => self, idx1 => self%index1, idx2 => self%index2, plparent => pl%kin%parent) + nplplenc = plplenc_list%nenc allocate(lplpl_collision(nplplenc)) lplpl_collision(:) = plplenc_list%status(1:nplplenc) == COLLISION if (.not.any(lplpl_collision)) return diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 877f7cc95..97a7f84ac 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -322,6 +322,9 @@ module subroutine symba_discard_pl(self, system, param) call symba_discard_nonplpl_conservation(self, system, param) + ! Save the add/discard information to file + call system%write_discard(param) + call pl%rearray(system, param) if (param%lenergy) then diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 78403c348..3f5d8d00f 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -178,7 +178,7 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc logical :: lany_encounter !! Returns true if there is at least one close encounter ! Internals real(DP) :: r2crit, vdotr, r2, v2, tmin, r2min, term2 - integer(I4B) :: i, j, k,nenc + integer(I4B) :: i, j, k,nenc, plind, tpind real(DP), dimension(NDIM) :: xr, vr logical, dimension(:,:), allocatable :: lencounter, loc_lvdotr @@ -212,15 +212,15 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc class is (symba_pl) pl%lencounter(1:npl) = .false. do k = 1, nenc - associate(plind => pltpenc_list%index1(k), tpind => pltpenc_list%index2(k)) - pl%lencounter(plind) = .true. - pl%levelg(plind) = irec - pl%levelm(plind) = irec - tp%levelg(tpind) = irec - tp%levelm(tpind) = irec - pl%ntpenc(plind) = pl%ntpenc(plind) + 1 - tp%nplenc(tpind) = tp%nplenc(tpind) + 1 - end associate + plind = pltpenc_list%index1(k) + tpind = pltpenc_list%index2(k) + pl%lencounter(plind) = .true. + pl%levelg(plind) = irec + pl%levelm(plind) = irec + tp%levelg(tpind) = irec + tp%levelm(tpind) = irec + pl%ntpenc(plind) = pl%ntpenc(plind) + 1 + tp%nplenc(tpind) = tp%nplenc(tpind) + 1 end do end select end associate diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index c80f53536..2c074cb0d 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -77,7 +77,7 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals - integer(I4B) :: k + integer(I4B) :: i, j, k real(DP) :: rjj, fac, rlim2 real(DP), dimension(NDIM) :: dx @@ -88,18 +88,18 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) call helio_kick_getacch_tp(tp, system, param, t, lbeg) ! Remove accelerations from encountering pairs do k = 1, npltpenc - associate(i => pltpenc_list%index1(k), j => pltpenc_list%index2(k)) - if (tp%lmask(j)) THEN - if (lbeg) then - dx(:) = tp%xh(:,j) - pl%xbeg(:,i) - else - dx(:) = tp%xh(:,j) - pl%xend(:,i) - end if - rjj = dot_product(dx(:), dx(:)) - fac = pl%Gmass(i) / (rjj * sqrt(rjj)) - tp%ah(:,j) = tp%ah(:,j) + fac * dx(:) - end IF - end associate + i = pltpenc_list%index1(k) + j = pltpenc_list%index2(k) + if (tp%lmask(j)) THEN + if (lbeg) then + dx(:) = tp%xh(:,j) - pl%xbeg(:,i) + else + dx(:) = tp%xh(:,j) - pl%xend(:,i) + end if + rjj = dot_product(dx(:), dx(:)) + fac = pl%Gmass(i) / (rjj * sqrt(rjj)) + tp%ah(:,j) = tp%ah(:,j) + fac * dx(:) + end IF end do end associate end select diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index c805734bf..db8ff94ab 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -285,19 +285,19 @@ module subroutine symba_util_index_eucl_plpl(self, param) class(symba_pl), intent(inout) :: self !! SyMBA massive body object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I8B) :: i, j, counter, npl, nplm + integer(I8B) :: i, j, counter, npl, nplm, nplpl, nplplm - associate(pl => self, nplpl => self%nplpl, nplplm => self%nplplm) + associate(pl => self) npl = int(self%nbody, kind=I8B) call pl%sort("mass", ascending=.false.) nplm = count(.not. pl%lmtiny(1:npl)) pl%nplm = int(nplm, kind=I4B) - nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column - nplplm = nplm * npl - nplm * (nplm + 1) / 2 ! number of entries in a strict lower triangle, npl x npl, minus first column including only mutually interacting bodies + pl%nplpl = (npl * (npl - 1) / 2) ! number of entries in a strict lower triangle, npl x npl, minus first column + pl%nplplm = nplm * npl - nplm * (nplm + 1) / 2 ! number of entries in a strict lower triangle, npl x npl, minus first column including only mutually interacting bodies if (allocated(self%k_plpl)) deallocate(self%k_plpl) ! Reset the index array if it's been set previously - allocate(self%k_plpl(2, nplpl)) + allocate(self%k_plpl(2, pl%nplpl)) do i = 1, npl counter = (i - 1_I8B) * npl - i * (i - 1_I8B) / 2_I8B + 1_I8B do j = i + 1_I8B, npl @@ -418,7 +418,7 @@ module subroutine symba_util_rearray_pl(self, system, param) associate(pl => self, pl_adds => system%pl_adds) npl = pl%nbody - nadd = pl_adds%nbody) + nadd = pl_adds%nbody if (npl == 0) return ! Deallocate any temporary variables if (allocated(pl%xbeg)) deallocate(pl%xbeg) @@ -431,7 +431,7 @@ module subroutine symba_util_rearray_pl(self, system, param) call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) npl = pl%nbody call tmp%setup(0,param) - if (allocated(tmp)) deallocate(tmp) + deallocate(tmp) deallocate(lmask) ! Store the original plplenc list so we don't remove any of the original encounters @@ -869,8 +869,6 @@ module subroutine symba_util_spill_pl(self, discards, lspill_list, ldestructive) class(swiftest_body), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - ! Internals - integer(I4B) :: i ! For each component, pack the discarded bodies into the discard object and do the inverse with the keeps !> Spill all the common components @@ -911,10 +909,8 @@ module subroutine symba_util_spill_encounter(self, discards, lspill_list, ldestr class(swiftest_encounter), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - ! Internals - integer(I4B) :: i - associate(keeps => self, nenc => self%nenc) + associate(keeps => self) select type(discards) class is (symba_encounter) call util_spill(keeps%level, discards%level, lspill_list, ldestructive) @@ -940,8 +936,6 @@ module subroutine symba_util_spill_tp(self, discards, lspill_list, ldestructive) class(swiftest_body), intent(inout) :: discards !! Discarded object logical, dimension(:), intent(in) :: lspill_list !! Logical array of bodies to spill into the discards logical, intent(in) :: ldestructive !! Logical flag indicating whether or not this operation should alter body by removing the discard list - ! Internals - integer(I4B) :: i ! For each component, pack the discarded bodies into the discard object and do the inverse with the keeps !> Spill all the common components From 0acbf347815cfcc2e400497d6474612b9a8059cc Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 16:25:06 -0400 Subject: [PATCH 270/315] Rearranged symba_encounter_check to split off the parallel loop into its own non-polymorphic subroutine to make setting the share flags easier to manage. --- src/kick/kick.f90 | 3 +- src/symba/symba_encounter_check.f90 | 71 +++++++++++++++++++---------- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index f2c49ad06..5c57918e2 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -98,9 +98,8 @@ module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius, if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j)) end do !$omp end parallel do - !$omp parallel workshare + acc(:,1:npl) = acc(:,1:npl) + ahi(:,1:npl) + ahj(:,1:npl) - !$omp end parallel workshare return end subroutine kick_getacch_int_all_pl diff --git a/src/symba/symba_encounter_check.f90 b/src/symba/symba_encounter_check.f90 index 3f5d8d00f..6f6010047 100644 --- a/src/symba/symba_encounter_check.f90 +++ b/src/symba/symba_encounter_check.f90 @@ -2,6 +2,46 @@ use swiftest contains + subroutine symba_encounter_check_all(nplplm, k_plpl, x, v, rhill, dt, irec, lencounter, loc_lvdotr) + !! author: David A. Minton + !! + !! Check for encounters between massive bodies. Split off from the main subroutine for performance + implicit none + integer(I8B), intent(in) :: nplplm + integer(I4B), dimension(:,:), intent(in) :: k_plpl + real(DP), dimension(:,:), intent(in) :: x, v + real(DP), dimension(:), intent(in) :: rhill + real(DP), intent(in) :: dt + integer(I4B), intent(in) :: irec + logical, dimension(:), intent(out) :: lencounter, loc_lvdotr + ! Internals + integer(I8B) :: k + integer(I4B) :: i, j + real(DP) :: xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2 + + !$omp parallel do default(private)& + !$omp shared(nplplm, k_plpl, x, v, rhill, dt, irec, lencounter, loc_lvdotr) + do k = 1_I8B, nplplm + i = k_plpl(1, k) + j = k_plpl(2, k) + xr = x(1, j) - x(1, i) + yr = x(2, j) - x(2, i) + zr = x(3, j) - x(3, i) + vxr = v(1, j) - v(1, i) + vyr = v(2, j) - v(2, i) + vzr = v(3, j) - v(3, i) + rhill1 = rhill(i) + rhill2 = rhill(j) + lencounter(k) = .false. + loc_lvdotr(k) = .false. + call symba_encounter_check_one(xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2, dt, irec, lencounter(k), loc_lvdotr(k)) + end do + !$omp end parallel do + + return + end subroutine symba_encounter_check_all + + module function symba_encounter_check_pl(self, system, dt, irec) result(lany_encounter) !! author: David A. Minton !! @@ -18,47 +58,28 @@ module function symba_encounter_check_pl(self, system, dt, irec) result(lany_enc ! Internals integer(I8B) :: k, nplplm integer(I4B) :: i, j, nenc - real(DP) :: xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2 - logical, dimension(:), allocatable :: lencounter, loc_lvdotr - real(DP), dimension(:,:), pointer :: xh, vh - real(DP), dimension(:), pointer :: rhill - integer(I4B), dimension(:,:), pointer :: k_plpl + logical, dimension(:), allocatable :: lencounter, loc_lvdotr if (self%nbody == 0) return - associate(pl => self, xh => self%xh, vh => self%vh, rhill => self%rhill, npl => self%nbody, k_plpl => self%k_plpl) - nplplm = self%nplplm + associate(pl => self) + nplplm = pl%nplplm allocate(lencounter(nplplm)) allocate(loc_lvdotr(nplplm)) - lencounter(:) = .false. - loc_lvdotr(:) = .false. - !$omp parallel do default(shared)& - !$omp private(k, i, j, xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2) - do k = 1_I8B, nplplm - i = k_plpl(1, k) - j = k_plpl(2, k) - xr = xh(1, j) - xh(1, i) - yr = xh(2, j) - xh(2, i) - zr = xh(3, j) - xh(3, i) - vxr = vh(1, j) - vh(1, i) - vyr = vh(2, j) - vh(2, i) - vzr = vh(3, j) - vh(3, i) - rhill1 = rhill(i) - rhill2 = rhill(j) - call symba_encounter_check_one(xr, yr, zr, vxr, vyr, vzr, rhill1, rhill2, dt, irec, lencounter(k), loc_lvdotr(k)) - end do - !$omp end parallel do + call symba_encounter_check_all(nplplm, pl%k_plpl, pl%xh, pl%vh, pl%rhill, dt, irec, lencounter, loc_lvdotr) !$omp parallel workshare nenc = count(lencounter(:)) !$omp end parallel workshare + lany_encounter = nenc > 0 if (lany_encounter) then associate(plplenc_list => system%plplenc_list) call plplenc_list%resize(nenc) plplenc_list%lvdotr(1:nenc) = pack(loc_lvdotr(1:nplplm), lencounter(1:nplplm)) plplenc_list%kidx(1:nenc) = pack([(k, k = 1_I8B, nplplm)], lencounter(1:nplplm)) + deallocate(lencounter, loc_lvdotr) plplenc_list%index1(1:nenc) = pl%k_plpl(1,plplenc_list%kidx(1:nenc)) plplenc_list%index2(1:nenc) = pl%k_plpl(2,plplenc_list%kidx(1:nenc)) plplenc_list%id1(1:nenc) = pl%id(plplenc_list%index1(1:nenc)) From df8b9e20bef67f6004c43ffb5aee2a5fa5ac7897 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 16:56:42 -0400 Subject: [PATCH 271/315] Improved collision reporting in SyMBA and switched out more in-loop associates with plain integers. --- src/symba/symba_collision.f90 | 133 +++++++++++++++++++--------------- 1 file changed, 76 insertions(+), 57 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 15a52ac48..99ced73c5 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -469,9 +469,10 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec ! Internals logical, dimension(:), allocatable :: lcollision, lmask real(DP), dimension(NDIM) :: xr, vr - integer(I4B) :: k + integer(I4B) :: i, j, k, nenc real(DP) :: rlim, Gmtot logical :: isplpl + character(len=STRMAX) :: timestr, idstri, idstrj lany_collision = .false. if (self%nenc == 0) return @@ -487,64 +488,78 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec class is (symba_pl) select type(tp => system%tp) class is (symba_tp) - associate(nenc => self%nenc, ind1 => self%index1, ind2 => self%index2) - allocate(lmask(nenc)) - lmask(:) = ((self%status(1:nenc) == ACTIVE) .and. (pl%levelg(ind1(1:nenc)) >= irec)) - if (isplpl) then - lmask(:) = lmask(:) .and. (pl%levelg(ind2(1:nenc)) >= irec) - else - lmask(:) = lmask(:) .and. (tp%levelg(ind2(1:nenc)) >= irec) - end if - if (.not.any(lmask(:))) return - - allocate(lcollision(nenc)) - lcollision(:) = .false. + nenc = self%nenc + nenc = self%nenc + allocate(lmask(nenc)) + lmask(:) = ((self%status(1:nenc) == ACTIVE) .and. (pl%levelg(self%index1(1:nenc)) >= irec)) + if (isplpl) then + lmask(:) = lmask(:) .and. (pl%levelg(self%index2(1:nenc)) >= irec) + else + lmask(:) = lmask(:) .and. (tp%levelg(self%index2(1:nenc)) >= irec) + end if + if (.not.any(lmask(:))) return + + allocate(lcollision(nenc)) + lcollision(:) = .false. + + if (isplpl) then + do concurrent(k = 1:nenc, lmask(k)) + i = self%index1(k) + j = self%index2(k) + xr(:) = pl%xh(:, i) - pl%xh(:, j) + vr(:) = pl%vb(:, i) - pl%vb(:, j) + rlim = pl%radius(i) + pl%radius(j) + Gmtot = pl%Gmass(i) + pl%Gmass(j) + lcollision(k) = symba_collision_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), Gmtot, rlim, dt, self%lvdotr(k)) + end do + else + do concurrent(k = 1:nenc, lmask(k)) + i = self%index1(k) + j = self%index2(k) + xr(:) = pl%xh(:, i) - tp%xh(:, j) + vr(:) = pl%vb(:, i) - tp%vb(:, j) + lcollision(k) = symba_collision_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%Gmass(i), pl%radius(i), dt, self%lvdotr(k)) + end do + end if + if (any(lcollision(1:nenc))) call pl%xh2xb(system%cb) ! Update the central body barycenteric position vector to get us out of DH and into bary + do k = 1, nenc + i = self%index1(k) + j = self%index2(k) + if (lcollision(k)) self%status(k) = COLLISION + self%t(k) = t + self%x1(:,k) = pl%xh(:,i) + system%cb%xb(:) + self%v1(:,k) = pl%vb(:,i) if (isplpl) then - do concurrent(k = 1:nenc, lmask(k)) - xr(:) = pl%xh(:, ind1(k)) - pl%xh(:, ind2(k)) - vr(:) = pl%vb(:, ind1(k)) - pl%vb(:, ind2(k)) - rlim = pl%radius(ind1(k)) + pl%radius(ind2(k)) - Gmtot = pl%Gmass(ind1(k)) + pl%Gmass(ind2(k)) - lcollision(k) = symba_collision_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), Gmtot, rlim, dt, self%lvdotr(k)) - end do + self%x2(:,k) = pl%xh(:,j) + system%cb%xb(:) + self%v2(:,k) = pl%vb(:,j) + if (lcollision(k)) then + ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional family + if (pl%lcollision(i) .or. pl%lcollision(j)) call pl%make_family([i,j]) + + ! Set the collision flag for these to bodies to true in case they become involved in another collision later in the step + pl%lcollision([i, j]) = .true. + pl%ldiscard([i, j]) = .true. + pl%status([i, j]) = COLLISION + call pl%info(i)%set_value(status="COLLISION", discard_time=t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) + call pl%info(j)%set_value(status="COLLISION", discard_time=t, discard_xh=pl%xh(:,j), discard_vh=pl%vh(:,j)) + end if else - do concurrent(k = 1:nenc, lmask(k)) - xr(:) = pl%xh(:, ind1(k)) - tp%xh(:, ind2(k)) - vr(:) = pl%vb(:, ind1(k)) - tp%vb(:, ind2(k)) - lcollision(k) = symba_collision_check_one(xr(1), xr(2), xr(3), vr(1), vr(2), vr(3), pl%Gmass(ind1(k)), pl%radius(ind1(k)), dt, self%lvdotr(k)) - end do - end if - - if (any(lcollision(1:nenc))) call pl%xh2xb(system%cb) ! Update the central body barycenteric position vector to get us out of DH and into bary - do k = 1, nenc - if (lcollision(k)) self%status(k) = COLLISION - self%t(k) = t - self%x1(:,k) = pl%xh(:,ind1(k)) + system%cb%xb(:) - self%v1(:,k) = pl%vb(:,ind1(k)) - if (isplpl) then - self%x2(:,k) = pl%xh(:,ind2(k)) + system%cb%xb(:) - self%v2(:,k) = pl%vb(:,ind2(k)) - if (lcollision(k)) then - ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional family - if (pl%lcollision(ind1(k)) .or. pl%lcollision(ind2(k))) call pl%make_family([ind1(k),ind2(k)]) - - ! Set the collision flag for these to bodies to true in case they become involved in another collision later in the step - pl%lcollision([ind1(k), ind2(k)]) = .true. - pl%ldiscard([ind1(k), ind2(k)]) = .true. - pl%status([ind1(k), ind2(k)]) = COLLISION - end if - else - self%x2(:,k) = tp%xh(:,ind2(k)) + system%cb%xb(:) - self%v2(:,k) = tp%vb(:,ind2(k)) - if (lcollision(k)) then - tp%status(ind2(k)) = DISCARDED_PLR - tp%ldiscard(ind2(k)) = .true. - write(*,*) 'Test particle ',tp%id(ind2(k)), ' collided with massive body ',pl%id(ind1(k)), ' at time ',t - end if + self%x2(:,k) = tp%xh(:,j) + system%cb%xb(:) + self%v2(:,k) = tp%vb(:,j) + if (lcollision(k)) then + tp%status(j) = DISCARDED_PLR + tp%ldiscard(j) = .true. + write(idstri, *) pl%id(i) + write(idstrj, *) tp%id(j) + write(timestr, *) t + call tp%info(j)%set_value(status="DISCARDED_PLR", discard_time=t, discard_xh=tp%xh(:,j), discard_vh=tp%vh(:,j)) + write(*, *) "Particle " // trim(adjustl(tp%info(j)%name)) // " (" // trim(adjustl(idstrj)) // ")" & + // " collided with massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstri)) // ")" & + // " at t = " // trim(adjustl(timestr)) end if - end do - end associate + end if + end do end select end select @@ -1167,6 +1182,7 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir real(DP) :: Eorbit_before, Eorbit_after logical :: lplpl_collision character(len=STRMAX) :: timestr + class(symba_parameters), allocatable :: tmp_param associate(plplenc_list => self, plplcollision_list => system%plplcollision_list) select type(pl => system%pl) @@ -1187,6 +1203,8 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir do write(timestr,*) t write(*, *) "Collision between massive bodies detected at time t = " // trim(adjustl(timestr)) + allocate(tmp_param, source=param) + tmp_param%t = t if (param%lfragmentation) then call plplcollision_list%resolve_fragmentations(system, param) else @@ -1199,14 +1217,15 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir if ((system%pl_adds%nbody == 0) .and. (system%pl_discards%nbody == 0)) exit ! Save the add/discard information to file - call system%write_discard(param) + call system%write_discard(tmp_param) ! Rearrange the arrays: Remove discarded bodies, add any new bodies, resort, and recompute all indices and encounter lists - call pl%rearray(system, param) + call pl%rearray(system, tmp_param) ! Destroy the add/discard list so that we don't append the same body multiple times if another collision is detected call system%pl_discards%setup(0, param) call system%pl_adds%setup(0, param) + deallocate(tmp_param) ! Check whether or not any of the particles that were just added are themselves in a collision state. This will generate a new plplcollision_list lplpl_collision = plplenc_list%collision_check(system, param, t, dt, irec) From 565ed44ccb1c2139526792ac8c7229a82aa9eb81 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 20:15:10 -0400 Subject: [PATCH 272/315] Fixed problem where the discard flag was not being reset by bodies sometimes after a collision, causing new bodies to get discarded. --- src/io/io.f90 | 2 +- src/symba/symba_util.f90 | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index bbbf25cd1..c00939516 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -895,7 +895,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Afmt) trim(adjustl(param%discard_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + if (param%discard_out /= "") write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Afmt) trim(adjustl(param%discard_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) if (param%discard_out /= "") write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index db8ff94ab..ccb9b37ec 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -453,16 +453,11 @@ module subroutine symba_util_rearray_pl(self, system, param) end if ! Reset all of the status flags for this body - where(pl%status(1:npl) /= INACTIVE) - pl%status(1:npl) = ACTIVE - pl%info(1:npl)%status = "ACTIVE" - pl%ldiscard(1:npl) = .false. - pl%lcollision(1:npl) = .false. - pl%lmask(1:npl) = .true. - elsewhere - pl%ldiscard(1:npl) = .true. - pl%lmask(1:npl) = .false. - end where + pl%status(1:npl) = ACTIVE + pl%info(1:npl)%status = "ACTIVE" + pl%ldiscard(1:npl) = .false. + pl%lcollision(1:npl) = .false. + pl%lmask(1:npl) = .true. select type(param) class is (symba_parameters) From f5632252daacd54c49c97930d24aa9467f41e44c Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 20:38:16 -0400 Subject: [PATCH 273/315] Rearranged how the non-plpl discards work to use the same pattern as the plpl discards --- src/symba/symba_discard.f90 | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 97a7f84ac..24f40b1bd 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -184,19 +184,32 @@ subroutine symba_discard_nonplpl(pl, system, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals logical, dimension(pl%nbody) :: ldiscard + integer(I4B) :: i, nstart, nend, nsub + class(symba_pl), allocatable :: plsub ! First check for collisions with the central body associate(npl => pl%nbody, cb => system%cb) if (npl == 0) return - ldiscard(1:npl) = pl%ldiscard(1:npl) ! Don't include any bodies that were previously flagged for discard in here - if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then - call symba_discard_cb_pl(pl, system, param) - end if - if (param%qmin >= 0.0_DP .and. npl > 0) call symba_discard_peri_pl(pl, system, param) - if (any(.not.ldiscard(1:npl) .and. pl%ldiscard(1:npl))) then - ldiscard(1:npl) = .not.ldiscard(1:npl) .and. pl%ldiscard(1:npl) - call system%pl_discards%append(pl, ldiscard) - end if + select type(pl_discards => system%pl_discards) + class is (symba_merger) + if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then + call symba_discard_cb_pl(pl, system, param) + end if + if (param%qmin >= 0.0_DP) call symba_discard_peri_pl(pl, system, param) + if (any(pl%ldiscard(1:npl))) then + ldiscard(1:npl) = pl%ldiscard(1:npl) + + allocate(plsub, mold=pl) + call pl%spill(plsub, ldiscard, ldestructive=.false.) + nsub = plsub%nbody + nstart = pl_discards%nbody + 1 + nend = pl_discards%nbody + nsub + call pl_discards%append(plsub, lsource_mask=[(.true., i = 1, nsub)]) + + ! Record how many bodies were subtracted in this event + pl_discards%ncomp(nstart:nend) = nsub + end if + end select end associate return From 0aa83aca8df7ef0682dda8551754d188f9255060 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 30 Aug 2021 23:04:42 -0400 Subject: [PATCH 274/315] Fixed issue in which pure hit and run kinship relationships were not being reset, causing bodies to later accumulate children when the hit and run had aleady been resolved. This was inadverently causing bodies to be lost when they shouldn't have been. --- src/symba/symba_collision.f90 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 99ced73c5..7a2a38023 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -119,7 +119,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, ! Result integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, nfrag, jproj, jtarg, idstart, ibiggest, nfamily + integer(I4B) :: i, j, nfrag, jproj, jtarg, idstart, ibiggest, nfamily real(DP) :: mtot, avg_dens real(DP), dimension(NDIM) :: xcom, vcom real(DP), dimension(2) :: vol @@ -201,6 +201,12 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, pl%status(family(:)) = ACTIVE pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. + pl%kin(family(:))%parent = family(:) + pl%kin(family(:))%nchild = 0 + do j = 1, size(family(:)) + i = family(j) + if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) + end do end select else status = HIT_AND_RUN_DISRUPT @@ -341,7 +347,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, ! Result integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, nfrag, ibiggest, nfamily, nstart, nend + integer(I4B) :: i, j, nfrag, ibiggest, nfamily, nstart, nend real(DP) :: mtot, avg_dens, min_frag_mass real(DP), dimension(NDIM) :: xcom, vcom real(DP), dimension(2) :: vol @@ -408,6 +414,12 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, pl%status(family(:)) = status pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. + pl%kin(family(:))%parent = family(:) + pl%kin(family(:))%nchild = 0 + do j = 1, size(family(:)) + i = family(j) + if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) + end do end select else ! Populate the list of new bodies @@ -1066,8 +1078,7 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) idx_parent(1) = pl%kin(idx1(i))%parent idx_parent(2) = pl%kin(idx2(i))%parent lgoodcollision = symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) - if (.not. lgoodcollision) cycle - if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved + if ((.not. lgoodcollision) .or. any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them ! to symba_regime From bb01ff287f3bdafde017e88448c96e453a58d559 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 31 Aug 2021 08:58:25 -0400 Subject: [PATCH 275/315] Added new method fro reseting the kinship object and use it after each collision is resolved. --- src/modules/symba_classes.f90 | 9 +++++++++ src/symba/symba_collision.f90 | 29 +++++++++++------------------ src/symba/symba_setup.f90 | 3 +-- src/symba/symba_step.f90 | 6 +----- src/symba/symba_util.f90 | 28 +++++++++++++++++++++++----- 5 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index ca51def4c..75d8e0e73 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -78,6 +78,7 @@ module symba_classes procedure :: fill => symba_util_fill_pl !! "Fills" bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) procedure :: get_peri => symba_util_peri_pl !! Determine system pericenter passages for massive bodies procedure :: rearray => symba_util_rearray_pl !! Clean up the massive body structures to remove discarded bodies and add new bodies + procedure :: reset_kinship => symba_util_reset_kinship !! Resets the kinship status of bodies procedure :: resize => symba_util_resize_pl !! Checks the current size of a SyMBA massive body against the requested size and resizes it if it is too small. procedure :: sort => symba_util_sort_pl !! Sorts body arrays by a sortable componen procedure :: rearrange => symba_util_sort_rearrange_pl !! Rearranges the order of array elements of body based on an input index array. Used in sorting methods @@ -573,6 +574,14 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions end subroutine symba_util_rearray_pl + + module subroutine symba_util_reset_kinship(self, idx) + implicit none + class(symba_pl), intent(inout) :: self !! SyMBA massive body object + integer(I4B), dimension(:), intent(in) :: idx !! Index array of bodies to reset + integer(I4B) :: i, j + end subroutine symba_util_reset_kinship + end interface interface util_resize diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 7a2a38023..ea93948f3 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -90,6 +90,7 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass pl%status(family(:)) = status pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. + call pl%reset_kinship(family(:)) end select else ! Populate the list of new bodies @@ -201,12 +202,7 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, pl%status(family(:)) = ACTIVE pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. - pl%kin(family(:))%parent = family(:) - pl%kin(family(:))%nchild = 0 - do j = 1, size(family(:)) - i = family(j) - if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) - end do + call pl%reset_kinship(family(:)) end select else status = HIT_AND_RUN_DISRUPT @@ -414,12 +410,7 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, pl%status(family(:)) = status pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. - pl%kin(family(:))%parent = family(:) - pl%kin(family(:))%nchild = 0 - do j = 1, size(family(:)) - i = family(j) - if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) - end do + call pl%reset_kinship(family(:)) end select else ! Populate the list of new bodies @@ -874,8 +865,7 @@ module subroutine symba_collision_make_family_pl(self, idx) pl%kin(j)%parent = index_parent end do end if - if (allocated(pl%kin(index_child)%child)) deallocate(pl%kin(index_child)%child) - pl%kin(index_child)%nchild = 0 + call pl%reset_kinship([index_child]) ! Add the new child to its parent pl%kin(index_child)%parent = index_parent temp(nchild_new) = index_child @@ -906,7 +896,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Internals integer(I4B) :: i, ibiggest, ismallest, iother, nstart, nend, nfamily, nfrag logical, dimension(system%pl%nbody) :: lmask - class(symba_pl), allocatable :: plnew + class(symba_pl), allocatable :: plnew, plsub character(*), parameter :: FRAGFMT = '("Newbody",I0.7)' character(len=NAMELEN) :: newname @@ -1022,15 +1012,18 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, pl%status(family(:)) = MERGED pl%ldiscard(family(:)) = .true. pl%lcollision(family(:)) = .true. + call pl%reset_kinship(family(:)) lmask(:) = .false. lmask(family(:)) = .true. call plnew%setup(0, param) - call pl%spill(plnew, lmask, ldestructive=.false.) + + allocate(plsub, mold=pl) + call pl%spill(plsub, lmask, ldestructive=.false.) nstart = pl_discards%nbody + 1 nend = pl_discards%nbody + nfamily - call pl_discards%append(plnew, lsource_mask=[(.true., i = 1, nfamily)]) + call pl_discards%append(plsub, lsource_mask=[(.true., i = 1, nfamily)]) ! Record how many bodies were subtracted in this event pl_discards%ncomp(nstart:nend) = nfamily @@ -1042,7 +1035,7 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, return end subroutine symba_collision_mergeaddsub - + module subroutine symba_collision_resolve_fragmentations(self, system, param) !! author: David A. Minton diff --git a/src/symba/symba_setup.f90 b/src/symba/symba_setup.f90 index 9c1fdb343..3a0543ee1 100644 --- a/src/symba/symba_setup.f90 +++ b/src/symba/symba_setup.f90 @@ -110,8 +110,7 @@ module subroutine symba_setup_pl(self, n, param) self%isperi(:) = 0 self%peri(:) = 0.0_DP self%atp(:) = 0.0_DP - self%kin(:)%nchild = 0 - self%kin(:)%parent = [(i, i=1, n)] + call self%reset_kinship([(i, i=1, n)]) return end subroutine symba_setup_pl diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index fe2d74b1a..7ab8113c0 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -236,11 +236,7 @@ module subroutine symba_step_reset_system(self, param) associate(npl => pl%nbody, ntp => tp%nbody) if (npl > 0) then pl%lcollision(1:npl) = .false. - pl%kin(1:npl)%parent = [(i, i=1, npl)] - pl%kin(1:npl)%nchild = 0 - do i = 1, npl - if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) - end do + call pl%reset_kinship([(i, i=1, npl)]) pl%nplenc(1:npl) = 0 pl%ntpenc(1:npl) = 0 pl%levelg(1:npl) = -1 diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index ccb9b37ec..2ff7dbf18 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -476,11 +476,7 @@ module subroutine symba_util_rearray_pl(self, system, param) call pl%index(param) ! Reset the kinship trackers - pl%kin(1:npl)%nchild = 0 - pl%kin(1:npl)%parent = [(i, i=1, npl)] - do i = 1, npl - if (allocated(pl%kin(i)%child)) deallocate(pl%kin(i)%child) - end do + call pl%reset_kinship([(i, i=1, npl)]) ! Re-build the zero-level encounter list, being sure to save the original level information for all bodies allocate(levelg_orig_pl, source=pl%levelg) @@ -540,6 +536,28 @@ module subroutine symba_util_rearray_pl(self, system, param) end subroutine symba_util_rearray_pl + module subroutine symba_util_reset_kinship(self, idx) + !! author: David A. Minton + !! + !! Resets the kinship status of bodies. + !! + implicit none + class(symba_pl), intent(inout) :: self !! SyMBA massive body object + integer(I4B), dimension(:), intent(in) :: idx !! Index array of bodies to reset + ! Internals + integer(I4B) :: i, j + + self%kin(idx(:))%parent = idx(:) + self%kin(idx(:))%nchild = 0 + do j = 1, size(idx(:)) + i = idx(j) + if (allocated(self%kin(i)%child)) deallocate(self%kin(i)%child) + end do + + return + end subroutine symba_util_reset_kinship + + module subroutine symba_util_resize_arr_kin(arr, nnew) !! author: David A. Minton !! From cfcbef1c76fcf61d15e3a41309e8077f33bfdf4b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 31 Aug 2021 09:07:19 -0400 Subject: [PATCH 276/315] Updated symba_mars_disk example input files and added bell cluster run script. --- examples/symba_mars_disk/param.in | 16 +++++------- examples/symba_mars_disk/runswiftest.sh | 33 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 examples/symba_mars_disk/runswiftest.sh diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index ae89cd6d4..78c087566 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -1,18 +1,16 @@ !Parameter file for the SyMBA-RINGMOONS test T0 0.0 -TSTOP 100000.0 +TSTOP 1.0e12 DT 600.0 CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 10 -ISTEP_DUMP 10 -!BIN_OUT bin.dat -!OUT_TYPE REAL8 -BIN_OUT bin.nc -OUT_TYPE NETCDF_DOUBLE +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.nc PARTICLE_OUT particle.dat +OUT_TYPE NETCDF_DOUBLE OUT_FORM XVEL OUT_STAT REPLACE CHK_CLOSE yes @@ -23,9 +21,9 @@ CHK_QMIN 3389500.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 3389500.0 338950000000.0 EXTRA_FORCE no -BIG_DISCARD no RHILL_PRESENT yes GMTINY 1000.0 +MIN_GMFRAG 10.0 ENERGY yes FRAGMENTATION yes ROTATION yes @@ -33,5 +31,3 @@ MU2KG 1.0 DU2M 1.0 TU2S 1.0 SEED 2 3080983 2220830 -DISCARD_OUT discard.out -ENERGY_OUT energy.out diff --git a/examples/symba_mars_disk/runswiftest.sh b/examples/symba_mars_disk/runswiftest.sh new file mode 100644 index 000000000..96dd99928 --- /dev/null +++ b/examples/symba_mars_disk/runswiftest.sh @@ -0,0 +1,33 @@ +#!/bin/zsh -l +#SBATCH -A daminton +#SBATCH --nodes=1 +#SBATCH --ntasks=1 +#SBATCH --time=14-00:00:00 +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=12 +#SBATCH --job-name=high_high +#SBATCH --no-requeue +#SBATCH -o %x.out +#SBATCH -e %x.err +cd $SLURM_SUBMIT_DIR + +module load utilities monitor +#module load gcc/10.2.0 +#netcdf-fortran/4.5.3 + +# track per-code CPU load +monitor cpu percent --all-cores >cpu-percent.log & +CPU_PID=$! + +# track memory usage +monitor cpu memory >cpu-memory.log & +MEM_PID=$! + + +export OMP_NUM_THREADS=12 +export KMP_STACKSIZE=2G +./swiftest_driver symba param.in + +# shut down the resource monitors +kill -s INT $CPU_PID $MEM_PID + From 9196c53e45dddeacda93a8d100ddeac178745ffe Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 31 Aug 2021 14:07:07 -0400 Subject: [PATCH 277/315] added more explicit setup/destruct calls for encounter lists and moved the kinship reset higher up in the order of operations, as part of the family consolidation step. --- src/orbel/orbel.f90 | 6 +++--- src/symba/symba_collision.f90 | 25 ++++++++++++++++--------- src/symba/symba_step.f90 | 12 +++++++++--- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/orbel/orbel.f90 b/src/orbel/orbel.f90 index f01c97529..620e0f839 100644 --- a/src/orbel/orbel.f90 +++ b/src/orbel/orbel.f90 @@ -931,12 +931,12 @@ module pure subroutine orbel_xv2el(mu, x, v, a, e, inc, capom, omega, capm) capom = 0.0_DP omega = 0.0_DP capm = 0.0_DP - r = sqrt(dot_product(x(:), x(:))) + r = .mag. x(:) v2 = dot_product(v(:), v(:)) hvec = x(:) .cross. v(:) h2 = dot_product(hvec(:), hvec(:)) - h = sqrt(h2) - if (h2 == 0.0_DP) return + h = .mag. hvec(:) + if (h2 <= 10 * tiny(0.0_DP)) return rdotv = dot_product(x(:), v(:)) energy = 0.5_DP * v2 - mu / r fac = hvec(3) / h diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index ea93948f3..39d09970a 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -90,7 +90,6 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass pl%status(family(:)) = status pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. - call pl%reset_kinship(family(:)) end select else ! Populate the list of new bodies @@ -202,7 +201,6 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, pl%status(family(:)) = ACTIVE pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. - call pl%reset_kinship(family(:)) end select else status = HIT_AND_RUN_DISRUPT @@ -410,7 +408,6 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, pl%status(family(:)) = status pl%ldiscard(family(:)) = .false. pl%lcollision(family(:)) = .false. - call pl%reset_kinship(family(:)) end select else ! Populate the list of new bodies @@ -657,6 +654,7 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, if (idx_parent(1) == idx_parent(2)) then if (nchild(1) == 0) then ! There is only one valid body recorded in this pair (this could happen due to restructuring of the kinship relationships, though it should be rare) lflag = .false. + call pl%reset_kinship([idx_parent(1)]) return end if idx_parent(2) = pl%kin(idx_parent(1))%child(nchild(1)) @@ -744,6 +742,9 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, end do lflag = .true. + ! Destroy the kinship relationships for all members of this family + call pl%reset_kinship(family(:)) + return end function symba_collision_consolidate_familes @@ -921,14 +922,21 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) call pl%vb2vh(cb) call pl%xh2xb(cb) + ! write(54,*) "Fragment properties" + ! write(54,*) "xbcb : ", cb%xb(:) + ! write(54,*) "vbcb : ", cb%vb(:) do i = 1, nfrag plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) + ! write(54,*) "index, id: ", i, plnew%id(i) + ! write(54,*) "xb : ", xb_frag(:,i) + ! write(54,*) "vb : ", vb_frag(:,i) end do plnew%mass(1:nfrag) = m_frag(1:nfrag) plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) plnew%radius(1:nfrag) = rad_frag(1:nfrag) plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) + call plnew%set_rhill(cb) select case(status) case(DISRUPTION) @@ -993,8 +1001,6 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%tlag = pl%tlag(ibiggest) end if - call plnew%set_mu(cb) - call plnew%set_rhill(cb) !Copy over or set integration parameters for new bodies plnew%lcollision(1:nfrag) = .false. plnew%ldiscard(1:nfrag) = .false. @@ -1003,8 +1009,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Append the new merged body to the list nstart = pl_adds%nbody + 1 - nend = pl_adds%nbody + plnew%nbody - call pl_adds%append(plnew, lsource_mask=[(.true., i=1, plnew%nbody)]) + nend = pl_adds%nbody + nfrag + call pl_adds%append(plnew, lsource_mask=[(.true., i=1, nfrag)]) ! Record how many bodies were added in this event pl_adds%ncomp(nstart:nend) = plnew%nbody @@ -1012,11 +1018,11 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, pl%status(family(:)) = MERGED pl%ldiscard(family(:)) = .true. pl%lcollision(family(:)) = .true. - call pl%reset_kinship(family(:)) lmask(:) = .false. lmask(family(:)) = .true. call plnew%setup(0, param) + deallocate(plnew) allocate(plsub, mold=pl) call pl%spill(plsub, lmask, ldestructive=.false.) @@ -1028,7 +1034,8 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, ! Record how many bodies were subtracted in this event pl_discards%ncomp(nstart:nend) = nfamily - deallocate(plnew) + call plsub%setup(0, param) + deallocate(plsub) end associate end select end select diff --git a/src/symba/symba_step.f90 b/src/symba/symba_step.f90 index 7ab8113c0..9f4508550 100644 --- a/src/symba/symba_step.f90 +++ b/src/symba/symba_step.f90 @@ -226,7 +226,7 @@ module subroutine symba_step_reset_system(self, param) class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions ! Internals - integer(I4B) :: i + integer(I4B) :: i, nenc_old associate(system => self) select type(pl => system%pl) @@ -245,8 +245,11 @@ module subroutine symba_step_reset_system(self, param) pl%lcollision(1:npl) = .false. pl%ldiscard(1:npl) = .false. pl%lmask(1:npl) = .true. + nenc_old = system%plplenc_list%nenc + call system%plplenc_list%setup(0) + call system%plplenc_list%setup(nenc_old) system%plplenc_list%nenc = 0 - system%plplcollision_list%nenc = 0 + call system%plplcollision_list%setup(0) end if if (ntp > 0) then @@ -254,7 +257,10 @@ module subroutine symba_step_reset_system(self, param) tp%levelg(1:ntp) = -1 tp%levelm(1:ntp) = -1 tp%lmask(1:ntp) = .true. - pl%ldiscard(1:npl) = .false. + tp%ldiscard(1:npl) = .false. + nenc_old = system%pltpenc_list%nenc + call system%pltpenc_list%setup(0) + call system%pltpenc_list%setup(nenc_old) system%pltpenc_list%nenc = 0 end if From 3f292fa387ec77081d8dda8348358b78fa50806f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 31 Aug 2021 16:22:29 -0400 Subject: [PATCH 278/315] Restructured util_resize subroutines for the various data types. Now it can handle resizing of not-previously allocated arrays --- src/symba/symba_collision.f90 | 12 +-- src/symba/symba_util.f90 | 15 +-- src/util/util_resize.f90 | 177 +++++++++++++++++++++++----------- 3 files changed, 136 insertions(+), 68 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 39d09970a..e1bbe02da 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -922,15 +922,15 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) call pl%vb2vh(cb) call pl%xh2xb(cb) - ! write(54,*) "Fragment properties" - ! write(54,*) "xbcb : ", cb%xb(:) - ! write(54,*) "vbcb : ", cb%vb(:) + write(54,*) "Fragment properties" + write(54,*) "xbcb : ", cb%xb(:) + write(54,*) "vbcb : ", cb%vb(:) do i = 1, nfrag plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) - ! write(54,*) "index, id: ", i, plnew%id(i) - ! write(54,*) "xb : ", xb_frag(:,i) - ! write(54,*) "vb : ", vb_frag(:,i) + write(54,*) "index, id: ", i, plnew%id(i) + write(54,*) "xb : ", xb_frag(:,i) + write(54,*) "vb : ", vb_frag(:,i) end do plnew%mass(1:nfrag) = m_frag(1:nfrag) plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 2ff7dbf18..91f9549ab 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -568,18 +568,21 @@ module subroutine symba_util_resize_arr_kin(arr, nnew) integer(I4B), intent(in) :: nnew !! New size ! Internals type(symba_kinship), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated - integer(I4B) :: nold !! Old size + integer(I4B) :: nold !! Old size - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + allocate(tmp(nnew)) if (nnew > nold) then tmp(1:nold) = arr(1:nold) diff --git a/src/util/util_resize.f90 b/src/util/util_resize.f90 index 889703ac8..dfef8771b 100644 --- a/src/util/util_resize.f90 +++ b/src/util/util_resize.f90 @@ -5,7 +5,7 @@ module subroutine util_resize_arr_char_string(arr, nnew) !! author: David A. Minton !! - !! Resizes an array component of type character string. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + !! Resizes an array component of type character string. nnew = 0 will deallocate. implicit none ! Arguments character(len=STRMAX), dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -14,21 +14,31 @@ module subroutine util_resize_arr_char_string(arr, nnew) character(len=STRMAX), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(nnew)) - if (nnew > nold) then - tmp(1:nold) = arr(1:nold) + if (nold > 0) then + if (nnew > nold) then + tmp(1:nold) = arr(1:nold) + tmp(nold+1:nnew) = "" + else + tmp(1:nnew) = arr(1:nnew) + end if else - tmp(1:nnew) = arr(1:nnew) + tmp(1:nnew) = "" end if call move_alloc(tmp, arr) @@ -39,7 +49,7 @@ end subroutine util_resize_arr_char_string module subroutine util_resize_arr_DP(arr, nnew) !! author: David A. Minton !! - !! Resizes an array component of double precision type. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + !! Resizes an array component of double precision type. Passing nnew = 0 will deallocate. implicit none ! Arguments real(DP), dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -47,22 +57,33 @@ module subroutine util_resize_arr_DP(arr, nnew) ! Internals real(DP), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size + real(DP), parameter :: init_val = 0.0_DP - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(nnew)) - if (nnew > nold) then - tmp(1:nold) = arr(1:nold) + if (nold > 0) then + if (nnew > nold) then + tmp(1:nold) = arr(1:nold) + tmp(nold+1:nnew) = init_val + else + tmp(1:nnew) = arr(1:nnew) + end if else - tmp(1:nnew) = arr(1:nnew) + tmp(1:nnew) = init_val end if call move_alloc(tmp, arr) @@ -73,7 +94,7 @@ end subroutine util_resize_arr_DP module subroutine util_resize_arr_DPvec(arr, nnew) !! author: David A. Minton !! - !! Resizes an array component of double precision vectors of size (NDIM, n). Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + !! Resizes an array component of double precision vectors of size (NDIM, n). Passing nnew = 0 will deallocate. implicit none ! Arguments real(DP), dimension(:,:), allocatable, intent(inout) :: arr !! Array to resize @@ -81,33 +102,51 @@ module subroutine util_resize_arr_DPvec(arr, nnew) ! Internals real(DP), dimension(:,:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size + real(DP), dimension(NDIM), parameter :: init_val = 0.0_DP + integer(I4B) :: i - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr, dim=2) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr, dim=2) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(NDIM, nnew)) - if (nnew > nold) then - tmp(:, 1:nold) = arr(:, 1:nold) + if (nold > 0) then + if (nnew > nold) then + tmp(:,1:nold) = arr(:,1:nold) + do i = nold+1, nnew + tmp(:,i) = init_val(:) + end do + else + tmp(:,1:nnew) = arr(:,1:nnew) + end if else - tmp(:, 1:nnew) = arr(:, 1:nnew) + do i = 1, nnew + tmp(:, i) = init_val(:) + end do end if call move_alloc(tmp, arr) return + + return end subroutine util_resize_arr_DPvec module subroutine util_resize_arr_I4B(arr, nnew) !! author: David A. Minton !! - !! Resizes an array component of integer type. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + !! Resizes an array component of integer type. Passing nnew = 0 will deallocate. implicit none ! Arguments integer(I4B), dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -115,22 +154,33 @@ module subroutine util_resize_arr_I4B(arr, nnew) ! Internals integer(I4B), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size + integer(I4B), parameter :: init_val = -1 - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(nnew)) - if (nnew > nold) then - tmp(1:nold) = arr(1:nold) + if (nold > 0) then + if (nnew > nold) then + tmp(1:nold) = arr(1:nold) + tmp(nold+1:nnew) = init_val + else + tmp(1:nnew) = arr(1:nnew) + end if else - tmp(1:nnew) = arr(1:nnew) + tmp(1:nnew) = init_val end if call move_alloc(tmp, arr) @@ -149,18 +199,22 @@ module subroutine util_resize_arr_info(arr, nnew) ! Internals type(swiftest_particle_info), dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size - logical :: is_symba - - if (.not. allocated(arr) .or. nnew < 0) return - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(nnew)) if (nnew > nold) then call util_copy_particle_info_arr(arr(1:nold), tmp(1:nold)) @@ -177,7 +231,7 @@ end subroutine util_resize_arr_info module subroutine util_resize_arr_logical(arr, nnew) !! author: David A. Minton !! - !! Resizes an array component of logical type. Array will only be resized if has previously been allocated. Passing nnew = 0 will deallocate. + !! Resizes an array component of logical type. Passing nnew = 0 will deallocate. implicit none ! Arguments logical, dimension(:), allocatable, intent(inout) :: arr !! Array to resize @@ -185,22 +239,33 @@ module subroutine util_resize_arr_logical(arr, nnew) ! Internals logical, dimension(:), allocatable :: tmp !! Temporary storage array in case the input array is already allocated integer(I4B) :: nold !! Old size + logical, parameter :: init_val = .false. - if (.not. allocated(arr) .or. nnew < 0) return - - nold = size(arr) - if (nnew == nold) return + if (nnew < 0) return if (nnew == 0) then - deallocate(arr) + if (allocated(arr)) deallocate(arr) return end if + if (allocated(arr)) then + nold = size(arr) + else + nold = 0 + end if + + if (nnew == nold) return + allocate(tmp(nnew)) - if (nnew > nold) then - tmp(1:nold) = arr(1:nold) + if (nold > 0) then + if (nnew > nold) then + tmp(1:nold) = arr(1:nold) + tmp(nold+1:nnew) = init_val + else + tmp(1:nnew) = arr(1:nnew) + end if else - tmp(1:nnew) = arr(1:nnew) + tmp(1:nnew) = init_val end if call move_alloc(tmp, arr) @@ -214,8 +279,8 @@ module subroutine util_resize_body(self, nnew) !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. implicit none ! Arguments - class(swiftest_body), intent(inout) :: self !! Swiftest body object - integer(I4B), intent(in) :: nnew !! New size neded + class(swiftest_body), intent(inout) :: self !! Swiftest body object + integer(I4B), intent(in) :: nnew !! New size neded call util_resize(self%info, nnew) call util_resize(self%id, nnew) @@ -285,7 +350,7 @@ end subroutine util_resize_encounter module subroutine util_resize_pl(self, nnew) !! author: David A. Minton !! - !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. + !! Checks the current size of a Swiftest massive body against the requested size and resizes it if it is too small. implicit none ! Arguments class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object @@ -316,10 +381,10 @@ end subroutine util_resize_pl module subroutine util_resize_tp(self, nnew) !! author: David A. Minton !! - !! Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. + !! Checks the current size of a Swiftest test particle against the requested size and resizes it if it is too small. implicit none ! Arguments - class(swiftest_tp), intent(inout) :: self !! Swiftest massive body object + class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object integer(I4B), intent(in) :: nnew !! New size neded call util_resize_body(self, nnew) From 9b5b3c3c77f0994720b7fc7489fc92381e555a6d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 31 Aug 2021 20:15:40 -0400 Subject: [PATCH 279/315] Fixed issues involving discard flags and bookkeeping of discards/adds --- src/modules/swiftest_classes.f90 | 2 +- src/symba/symba_collision.f90 | 7 ---- src/symba/symba_util.f90 | 69 +++++++++++++++++--------------- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index faffcfb62..746781117 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -355,7 +355,7 @@ module swiftest_classes real(DP), dimension(:), allocatable :: peri !! Perihelion distance real(DP), dimension(:), allocatable :: atp !! Semimajor axis following perihelion passage integer(I4B), dimension(:,:), allocatable :: k_pltp !! Index array used to convert flattened the body-body comparison upper triangular matrix - integer(I8B) :: npltp !! Number of pl-tp comparisons in the flattened upper triangular matrix + integer(I8B) :: npltp !! Number of pl-tp comparisons in the flattened upper triangular matrix !! Note to developers: If you add components to this class, be sure to update methods and subroutines that traverse the !! component list, such as setup_tp and util_spill_tp contains diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index e1bbe02da..384102ffc 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -539,7 +539,6 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec ! Set the collision flag for these to bodies to true in case they become involved in another collision later in the step pl%lcollision([i, j]) = .true. - pl%ldiscard([i, j]) = .true. pl%status([i, j]) = COLLISION call pl%info(i)%set_value(status="COLLISION", discard_time=t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) call pl%info(j)%set_value(status="COLLISION", discard_time=t, discard_xh=pl%xh(:,j), discard_vh=pl%vh(:,j)) @@ -922,15 +921,9 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) call pl%vb2vh(cb) call pl%xh2xb(cb) - write(54,*) "Fragment properties" - write(54,*) "xbcb : ", cb%xb(:) - write(54,*) "vbcb : ", cb%vb(:) do i = 1, nfrag plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) - write(54,*) "index, id: ", i, plnew%id(i) - write(54,*) "xb : ", xb_frag(:,i) - write(54,*) "vb : ", vb_frag(:,i) end do plnew%mass(1:nfrag) = m_frag(1:nfrag) plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 91f9549ab..4a40100c0 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -409,7 +409,7 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k, npl, nadd, nencmin, idnew1, idnew2, idold1, idold2 + integer(I4B) :: i, j, k, npl, nadd, nencmin, nenc_old, idnew1, idnew2, idold1, idold2 logical, dimension(:), allocatable :: lmask, ldump_mask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter @@ -426,7 +426,7 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Remove the discards and destroy the list, as the system already tracks pl_discards elsewhere allocate(lmask(npl)) - lmask(1:npl) = pl%ldiscard(1:npl) .or. pl%status(1:npl) == INACTIVE + lmask(1:npl) = pl%ldiscard(1:npl) allocate(tmp, mold=self) call pl%spill(tmp, lspill_list=lmask, ldestructive=.true.) npl = pl%nbody @@ -435,8 +435,11 @@ module subroutine symba_util_rearray_pl(self, system, param) deallocate(lmask) ! Store the original plplenc list so we don't remove any of the original encounters - allocate(plplenc_old, source=system%plplenc_list) - call plplenc_old%copy(system%plplenc_list) + nenc_old = system%plplenc_list%nenc + if (nenc_old > 0) then + allocate(plplenc_old, source=system%plplenc_list) + call plplenc_old%copy(system%plplenc_list) + end if ! Add in any new bodies if (nadd > 0) then @@ -502,34 +505,36 @@ module subroutine symba_util_rearray_pl(self, system, param) call move_alloc(nplenc_orig_pl, pl%nplenc) ! Re-index the encounter list as the index values may have changed - nencmin = min(system%plplenc_list%nenc, plplenc_old%nenc) - do k = 1, nencmin - idnew1 = system%plplenc_list%id1(k) - idnew2 = system%plplenc_list%id2(k) - idold1 = plplenc_old%id1(k) - idold2 = plplenc_old%id2(k) - if ((idnew1 == idold1) .and. (idnew2 == idold2)) then - ! This is an encounter we already know about, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - else if (((idnew1 == idold2) .and. (idnew2 == idold1))) then - ! This is an encounter we already know about, but with the order reversed, so save the old information - system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) - system%plplenc_list%status(k) = plplenc_old%status(k) - system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) - system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) - system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) - system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) - system%plplenc_list%t(k) = plplenc_old%t(k) - system%plplenc_list%level(k) = plplenc_old%level(k) - end if - end do + if (nenc_old > 0) then + nencmin = min(system%plplenc_list%nenc, plplenc_old%nenc) + do k = 1, nencmin + idnew1 = system%plplenc_list%id1(k) + idnew2 = system%plplenc_list%id2(k) + idold1 = plplenc_old%id1(k) + idold2 = plplenc_old%id2(k) + if ((idnew1 == idold1) .and. (idnew2 == idold2)) then + ! This is an encounter we already know about, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + else if (((idnew1 == idold2) .and. (idnew2 == idold1))) then + ! This is an encounter we already know about, but with the order reversed, so save the old information + system%plplenc_list%lvdotr(k) = plplenc_old%lvdotr(k) + system%plplenc_list%status(k) = plplenc_old%status(k) + system%plplenc_list%x1(:,k) = plplenc_old%x2(:,k) + system%plplenc_list%x2(:,k) = plplenc_old%x1(:,k) + system%plplenc_list%v1(:,k) = plplenc_old%v2(:,k) + system%plplenc_list%v2(:,k) = plplenc_old%v1(:,k) + system%plplenc_list%t(k) = plplenc_old%t(k) + system%plplenc_list%level(k) = plplenc_old%level(k) + end if + end do + end if end associate return From 0a30daf509a52014e2aa4d341b33cf0b17d70f83 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 2 Sep 2021 17:34:03 -0400 Subject: [PATCH 280/315] Major restructuring of the fragmentation model. I know call it Fraggle and it is fully object oriented. --- Makefile | 7 +- Makefile.Defines | 4 +- src/fraggle/fraggle_generate.f90 | 525 +++++++++++ src/fraggle/fraggle_placeholder.f90 | 44 + src/fraggle/fraggle_regime.f90 | 356 ++++++++ src/fraggle/fraggle_set.f90 | 295 +++++++ src/fraggle/fraggle_setup.f90 | 78 ++ src/fraggle/fraggle_util.f90 | 316 +++++++ src/fragmentation/fragmentation.f90 | 1266 --------------------------- src/helio/helio_setup.f90 | 2 + src/helio/helio_util.f90 | 21 - src/modules/fraggle_classes.f90 | 250 ++++++ src/modules/helio_classes.f90 | 9 +- src/modules/swiftest.f90 | 1 + src/modules/swiftest_classes.f90 | 29 +- src/modules/symba_classes.f90 | 75 +- src/modules/whm_classes.f90 | 1 - src/setup/setup.f90 | 4 +- src/symba/symba_collision.f90 | 598 +++++-------- src/symba/symba_util.f90 | 3 +- src/whm/whm_setup.f90 | 2 + src/whm/whm_util.f90 | 16 - 22 files changed, 2124 insertions(+), 1778 deletions(-) create mode 100644 src/fraggle/fraggle_generate.f90 create mode 100644 src/fraggle/fraggle_placeholder.f90 create mode 100644 src/fraggle/fraggle_regime.f90 create mode 100644 src/fraggle/fraggle_set.f90 create mode 100644 src/fraggle/fraggle_setup.f90 create mode 100644 src/fraggle/fraggle_util.f90 delete mode 100644 src/fragmentation/fragmentation.f90 delete mode 100644 src/helio/helio_util.f90 create mode 100644 src/modules/fraggle_classes.f90 diff --git a/Makefile b/Makefile index 8d8955eb4..fb555345f 100644 --- a/Makefile +++ b/Makefile @@ -45,9 +45,10 @@ #****************************************************************************** SWIFTEST_MODULES = swiftest_globals.f90 \ + swiftest_operators.f90 \ lambda_function.f90\ swiftest_classes.f90 \ - swiftest_operators.f90 \ + fraggle_classes.f90 \ whm_classes.f90 \ rmvs_classes.f90 \ helio_classes.f90 \ @@ -91,7 +92,7 @@ lib: ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \ ln -s $(SWIFTEST_HOME)/Makefile .; \ make libdir - cd $(SWIFTEST_HOME)/src/fragmentation; \ + cd $(SWIFTEST_HOME)/src/fraggle; \ rm -f Makefile.Defines Makefile; \ ln -s $(SWIFTEST_HOME)/Makefile.Defines .; \ ln -s $(SWIFTEST_HOME)/Makefile .; \ @@ -193,7 +194,7 @@ clean: cd $(SWIFTEST_HOME)/src/modules; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/discard; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/drift; rm -f Makefile.Defines Makefile *.gc* - cd $(SWIFTEST_HOME)/src/fragmentation; rm -f Makefile.Defines Makefile *.gc* + cd $(SWIFTEST_HOME)/src/fraggle; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/gr; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/helio; rm -f Makefile.Defines Makefile *.gc* cd $(SWIFTEST_HOME)/src/io; rm -f Makefile.Defines Makefile *.gc* diff --git a/Makefile.Defines b/Makefile.Defines index e48cb9d07..36de2cdb7 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -67,13 +67,13 @@ GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporari GPRODUCTION = -O3 -ffree-line-length-none $(GPAR) #FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR) -FFLAGS = $(IPRODUCTION) -g -traceback $(OPTREPORT) +FFLAGS = $(IPRODUCTION) $(OPTREPORT) FORTRAN = ifort #AR = xiar #FORTRAN = gfortran #FFLAGS = $(GDEBUG) $(GMEM) $(GPAR) -#FFLAGS = $(GPRODUCTION) -g -fcheck=all -Wall -fbacktrace +#FFLAGS = $(GPRODUCTION) -g -fbacktrace #-fcheck=all #-Wall AR = ar # DO NOT include in CFLAGS the "-c" option to compile object only diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 new file mode 100644 index 000000000..01fc3cf18 --- /dev/null +++ b/src/fraggle/fraggle_generate.f90 @@ -0,0 +1,525 @@ +submodule(fraggle_classes) s_fraggle_generate + use swiftest + + integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) + real(DP), parameter :: F_SPIN_FIRST = 0.05_DP !! The initial try value of the fraction of energy or momenum in spin (whichever has the lowest kinetic energy) + real(DP), parameter :: FRAGGLE_LTOL = 10 * epsilon(1.0_DP) + real(DP), parameter :: FRAGGLE_ETOL = 1e-8_DP + +contains + + module subroutine fraggle_generate_fragments(self, colliders, system, param, lfailure) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Generates a system of fragments in barycentric coordinates that conserves energy and momentum. + use, intrinsic :: ieee_exceptions + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle system object the outputs will be the fragmentation + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object containing the two-body equivalent values of the colliding bodies + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? + ! Internals + integer(I4B) :: i + integer(I4B) :: try + real(DP) :: r_max_start, f_spin, dEtot, dLmag + integer(I4B), parameter :: MAXTRY = 3000 + character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" + logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes + logical :: lk_plpl + + call ieee_get_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily + fpe_quiet_modes(:) = .false. + call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) + + associate(frag => self, nfrag => self%nbody, pl => system%pl) + + if (nfrag < NFRAG_MIN) then + write(*,*) "Fraggle needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." + lfailure = .true. + return + end if + f_spin = F_SPIN_FIRST + + lk_plpl = allocated(pl%k_plpl) + if (lk_plpl) deallocate(pl%k_plpl) + + call frag%set_natural_scale(colliders) + + call frag%reset() + + ! Calculate the initial energy of the system without the collisional family + call frag%get_energy_and_momentum(colliders, system, param, lbefore=.true.) + + ! Start out the fragments close to the initial separation distance. This will be increased if there is any overlap or we fail to find a solution + r_max_start = 1 * norm2(colliders%xb(:,2) - colliders%xb(:,1)) + try = 1 + lfailure = .false. + do while (try < MAXTRY) + lfailure = .false. + + call fraggle_generate_pos_vec(frag, colliders, r_max_start) + call frag%set_coordinate_system(colliders) + + ! Initial velocity guess will be the barycentric velocity of the colliding system. + ! This ensures that our budgets are based on the residual velocities needed in the + ! collisional frame + do concurrent (i = 1:nfrag) + frag%vb(:, i) = frag%vbcom(:) + end do + + call frag%get_energy_and_momentum(colliders, system, param, lbefore=.false.) + call frag%set_budgets(colliders) + + call fraggle_generate_spins(frag, colliders, f_spin, lfailure) + if (.not.lfailure) then + call fraggle_generate_tan_vel(frag, colliders, lfailure) + if (.not. lfailure) then + call fraggle_generate_rad_vel(frag, colliders, lfailure) + ! if (lfailure) write(*,*) 'Failed to find radial velocities' + if (.not.lfailure) then + call frag%get_energy_and_momentum(colliders, system, param, lbefore=.false.) + dEtot = frag%Etot_after - frag%Etot_before + dLmag = .mag. (frag%Ltot_after(:) - frag%Ltot_before(:)) + + if ((abs(dEtot + frag%Qloss) > FRAGGLE_ETOL) .or. (dEtot > 0.0_DP)) then + ! write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL + lfailure = .true. + else if ((abs(dLmag) / (.mag.frag%Ltot_before)) > FRAGGLE_LTOL) then + ! write(*,*) 'Failed due to high angular momentum error: ', dLmag / (.mag.frag%Ltot_before(:)) + lfailure = .true. + end if + end if + end if + end if + + if (.not.lfailure) exit + call frag%restructure(colliders, try, f_spin, r_max_start) + call frag%reset() + try = try + 1 + end do + + ! write(*, "(' -------------------------------------------------------------------------------------')") + ! write(*, "(' Final diagnostic')") + ! write(*, "(' -------------------------------------------------------------------------------------')") + if (lfailure) then + write(*,*) "Fraggle fragment generation failed after: ",try," tries" + else + write(*,*) "Fraggle fragment generation succeeded after: ",try," tries" + ! write(*, "(' dL_tot should be very small' )") + ! write(*,fmtlabel) ' dL_tot |', (.mag.(frag%Ltot_after(:) - frag%Ltot_before(:))) / (.mag.frag%Ltot_before(:)) + ! write(*, "(' dE_tot should be negative and equal to Qloss' )") + ! write(*,fmtlabel) ' dE_tot |', (frag%Etot_after - frag%Etot_before) / abs(frag%Etot_before) + ! write(*,fmtlabel) ' Qloss |', -frag%Qloss / abs(frag%Etot_before) + ! write(*,fmtlabel) ' dE - Qloss |', (frag%Etot_after - frag%Etot_before + frag%Qloss) / abs(frag%Etot_before) + end if + ! write(*, "(' -------------------------------------------------------------------------------------')") + call frag%set_original_scale(colliders) + + ! Restore the big array + if (lk_plpl) call pl%index(param) + end associate + + call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily + + return + end subroutine fraggle_generate_fragments + + + subroutine fraggle_generate_pos_vec(frag, colliders, r_max_start) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Initializes the orbits of the fragments around the center of mass. The fragments are initially placed on a plane defined by the + !! pre-impact angular momentum. They are distributed on an ellipse surrounding the center of mass. + !! The initial positions do not conserve energy or momentum, so these need to be adjusted later. + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + real(DP), intent(in) :: r_max_start !! Initial guess for the starting maximum radial distance of fragments + ! Internals + real(DP) :: dis, rad, r_max + logical, dimension(:), allocatable :: loverlap + integer(I4B) :: i, j + + associate(nfrag => frag%nbody) + allocate(loverlap(nfrag)) + + ! Place the fragments into a region that is big enough that we should usually not have overlapping bodies + ! An overlapping bodies will collide in the next time step, so it's not a major problem if they do (it just slows the run down) + r_max = r_max_start + rad = sum(colliders%radius(:)) + + ! We will treat the first two fragments of the list as special cases. They get initialized the maximum distances apart along the original impactor distance vector. + ! This is done because in a regular disruption, the first body is the largest, the second the second largest, and the rest are smaller equal-mass fragments. + + call random_number(frag%x_coll(:,3:nfrag)) + loverlap(:) = .true. + do while (any(loverlap(3:nfrag))) + frag%x_coll(:, 1) = colliders%xb(:, 1) - frag%xbcom(:) + frag%x_coll(:, 2) = colliders%xb(:, 2) - frag%xbcom(:) + r_max = r_max + 0.1_DP * rad + do i = 3, nfrag + if (loverlap(i)) then + call random_number(frag%x_coll(:,i)) + frag%x_coll(:, i) = 2 * (frag%x_coll(:, i) - 0.5_DP) * r_max + end if + end do + loverlap(:) = .false. + do j = 1, nfrag + do i = j + 1, nfrag + dis = norm2(frag%x_coll(:,j) - frag%x_coll(:,i)) + loverlap(i) = loverlap(i) .or. (dis <= (frag%radius(i) + frag%radius(j))) + end do + end do + end do + call fraggle_util_shift_vector_to_origin(frag%mass, frag%x_coll) + call frag%set_coordinate_system(colliders) + + do i = 1, nfrag + frag%xb(:,i) = frag%x_coll(:,i) + frag%xbcom(:) + end do + + frag%xbcom(:) = 0.0_DP + do i = 1, nfrag + frag%xbcom(:) = frag%xbcom(:) + frag%mass(i) * frag%xb(:,i) + end do + frag%xbcom(:) = frag%xbcom(:) / frag%mtot + end associate + + return + end subroutine fraggle_generate_pos_vec + + + subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Calculates the spins of a collection of fragments such that they conserve angular momentum without blowing the fragment kinetic energy budget. + !! + !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + real(DP), intent(in) :: f_spin !! Fraction of energy or momentum that goes into spin (whichever gives the lowest kinetic energy) + logical, intent(out) :: lfailure !! Logical flag indicating whether this step fails or succeeds! + ! Internals + real(DP), dimension(NDIM) :: L_remainder, rot_L, rot_ke + integer(I4B) :: i + + associate(nfrag => frag%nbody) + lfailure = .false. + + ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest + frag%rot(:,1:2) = colliders%rot(:, :) + frag%rot(:,3:nfrag) = 0.0_DP + call frag%get_ang_mtm() + L_remainder(:) = frag%L_budget(:) - frag%L_spin(:) + + frag%ke_spin = 0.0_DP + do i = 1, nfrag + ! Convert a fraction (f_spin) of either the remaining angular momentum or kinetic energy budget into spin, whichever gives the smaller rotation so as not to blow any budgets + rot_ke(:) = sqrt(2 * f_spin * frag%ke_budget / (nfrag * frag%mass(i) * frag%radius(i)**2 * frag%Ip(3, i))) * L_remainder(:) / norm2(L_remainder(:)) + rot_L(:) = f_spin * L_remainder(:) / (nfrag * frag%mass(i) * frag%radius(i)**2 * frag%Ip(3, i)) + if (norm2(rot_ke) < norm2(rot_L)) then + frag%rot(:,i) = frag%rot(:, i) + rot_ke(:) + else + frag%rot(:, i) = frag%rot(:, i) + rot_L(:) + end if + frag%ke_spin = frag%ke_spin + frag%mass(i) * frag%Ip(3, i) * frag%radius(i)**2 * dot_product(frag%rot(:, i), frag%rot(:, i)) + end do + frag%ke_spin = 0.5_DP * frag%ke_spin + + lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP) + end associate + + return + end subroutine fraggle_generate_spins + + + subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Adjusts the tangential velocities and spins of a collection of fragments such that they conserve angular momentum without blowing the fragment kinetic energy budget. + !! This procedure works in several stages, with a goal to solve the angular and linear momentum constraints on the fragments, while still leaving a positive balance of + !! our fragment kinetic energy (frag%ke_budget) that we can put into the radial velocity distribution. + !! + !! The first thing we'll try to do is solve for the tangential velocities of the first 6 fragments, using angular and linear momentum as constraints and an initial + !! tangential velocity distribution for the remaining bodies (if there are any) that distributes their angular momentum equally between them. + !! If that doesn't work and we blow our kinetic energy budget, we will attempt to find a tangential velocity distribution that minimizes the kinetic energy while + !! conserving momentum. + !! + !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + logical, intent(out) :: lfailure !! Logical flag indicating whether this step fails or succeeds + ! Internals + integer(I4B) :: i + real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. + real(DP), parameter :: TOL_INIT = 1e-14_DP + integer(I4B), parameter :: MAXLOOP = 10 + real(DP) :: tol + real(DP), dimension(:), allocatable :: v_t_initial + real(DP), dimension(frag%nbody) :: kefrag + type(lambda_obj) :: spinfunc + type(lambda_obj_err) :: objective_function + real(DP), dimension(NDIM) :: Li, L_remainder + + associate(nfrag => frag%nbody) + lfailure = .false. + + ! write(*,*) '***************************************************' + ! write(*,*) 'Original dis : ',norm2(x(:,2) - x(:,1)) + ! write(*,*) 'r_max : ',r_max + ! write(*,*) 'f_spin : ',f_spin + ! write(*,*) '***************************************************' + ! write(*,*) 'Energy balance so far: ' + ! write(*,*) 'frag%ke_budget : ',frag%ke_budget + ! write(*,*) 'ke_orbit_before: ',ke_orbit_before + ! write(*,*) 'ke_orbit_after : ',ke_orbit_after + ! write(*,*) 'ke_spin_before : ',ke_spin_before + ! write(*,*) 'ke_spin_after : ',ke_spin_after + ! write(*,*) 'pe_before : ',pe_before + ! write(*,*) 'pe_after : ',pe_after + ! write(*,*) 'Qloss : ',Qloss + ! write(*,*) '***************************************************' + + allocate(v_t_initial, mold=frag%v_t_mag) + v_t_initial(:) = 0.0_DP + frag%v_coll(:,:) = 0.0_DP + + ! Next we will solve for the tangential component of the velocities that both conserves linear momentum and uses the remaining angular momentum not used in spin. + ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, + ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution + ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. + call frag%get_ang_mtm() + L_remainder(:) = frag%L_budget(:) - frag%L_spin(:) + do i = 1, nfrag + v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * frag%mass(i) * norm2(frag%x_coll(:,i))) + Li(:) = frag%mass(i) * (frag%x_coll(:,i) .cross. (v_t_initial(i) * frag%v_t_unit(:, i))) + L_remainder(:) = L_remainder(:) - Li(:) + end do + + ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum + objective_function = lambda_obj(tangential_objective_function, lfailure) + + tol = TOL_INIT + do while(tol < TOL_MIN) + frag%v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), tol, MAXLOOP, lfailure) + ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis + v_t_initial(7:nfrag) = frag%v_t_mag(7:nfrag) + if (.not.lfailure) exit + tol = tol * 2_DP ! Keep increasing the tolerance until we converge on a solution + end do + frag%v_t_mag(1:nfrag) = solve_fragment_tan_vel(v_t_mag_input=v_t_initial(7:nfrag), lfailure=lfailure) + + ! Perform one final shift of the radial velocity vectors to align with the center of mass of the collisional system (the origin) + frag%vb(:,1:nfrag) = fraggle_util_vmag_to_vb(frag%v_r_mag(1:nfrag), frag%v_r_unit(:,1:nfrag), frag%v_t_mag(1:nfrag), frag%v_t_unit(:,1:nfrag), frag%mass(1:nfrag), frag%vbcom(:)) + do concurrent (i = 1:nfrag) + frag%v_coll(:,i) = frag%vb(:,i) - frag%vbcom(:) + end do + + ! Now do a kinetic energy budget check to make sure we are still within the budget. + kefrag = 0.0_DP + do concurrent(i = 1:nfrag) + kefrag(i) = frag%mass(i) * dot_product(frag%vb(:, i), frag%vb(:, i)) + end do + frag%ke_orbit = 0.5_DP * sum(kefrag(:)) + + ! If we are over the energy budget, flag this as a failure so we can try again + lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP) + ! write(*,*) 'Tangential' + ! write(*,*) 'Failure? ',lfailure + ! call calculate_fragment_ang_mtm() + ! write(*,*) '|L_remainder| : ',.mag.(frag%L_budget(:) - L_frag_tot(:)) / Lmag_before + ! write(*,*) 'frag%ke_budget: ',frag%ke_budget + ! write(*,*) 'frag%ke_spin : ',frag%ke_spin + ! write(*,*) 'ke_tangential : ',frag%ke_orbit + ! write(*,*) 'ke_radial : ',frag%ke_budget - frag%ke_spin - frag%ke_orbit + end associate + + return + + contains + function solve_fragment_tan_vel(lfailure, v_t_mag_input) result(v_t_mag_output) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Adjusts the positions, velocities, and spins of a collection of fragments such that they conserve angular momentum + implicit none + ! Arguments + logical, intent(out) :: lfailure !! Error flag + real(DP), dimension(:), optional, intent(in) :: v_t_mag_input !! Unknown tangential velocities for fragments 7:nfrag + ! Internals + integer(I4B) :: i + ! Result + real(DP), dimension(:), allocatable :: v_t_mag_output + + real(DP), dimension(2 * NDIM, 2 * NDIM) :: A ! LHS of linear equation used to solve for momentum constraint in Gauss elimination code + real(DP), dimension(2 * NDIM) :: b ! RHS of linear equation used to solve for momentum constraint in Gauss elimination code + real(DP), dimension(NDIM) :: L_lin_others, L_orb_others, L, vtmp + + associate(nfrag => frag%nbody) + lfailure = .false. + ! We have 6 constraint equations (2 vector constraints in 3 dimensions each) + ! The first 3 are that the linear momentum of the fragments is zero with respect to the collisional barycenter + ! The second 3 are that the sum of the angular momentum of the fragments is conserved from the pre-impact state + L_lin_others(:) = 0.0_DP + L_orb_others(:) = 0.0_DP + do i = 1, nfrag + if (i <= 2 * NDIM) then ! The tangential velocities of the first set of bodies will be the unknowns we will solve for to satisfy the constraints + A(1:3, i) = frag%mass(i) * frag%v_t_unit(:, i) + A(4:6, i) = frag%mass(i) * frag%rmag(i) * (frag%v_r_unit(:, i) .cross. frag%v_t_unit(:, i)) + else if (present(v_t_mag_input)) then + vtmp(:) = v_t_mag_input(i - 6) * frag%v_t_unit(:, i) + L_lin_others(:) = L_lin_others(:) + frag%mass(i) * vtmp(:) + L(:) = frag%mass(i) * (frag%x_coll(:, i) .cross. vtmp(:)) + L_orb_others(:) = L_orb_others(:) + L(:) + end if + end do + b(1:3) = -L_lin_others(:) + b(4:6) = frag%L_budget(:) - frag%L_spin(:) - L_orb_others(:) + allocate(v_t_mag_output(nfrag)) + v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lfailure) + if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) + end associate + return + end function solve_fragment_tan_vel + + + function tangential_objective_function(v_t_mag_input, lfailure) result(fval) + !! Author: David A. Minton + !! + !! Objective function for evaluating how close our fragment velocities get to minimizing KE error from our required value + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: v_t_mag_input !! Unknown tangential component of velocity vector set previously by angular momentum constraint + logical, intent(out) :: lfailure !! Error flag + ! Result + real(DP) :: fval + ! Internals + integer(I4B) :: i + real(DP), dimension(NDIM,frag%nbody) :: v_shift + real(DP), dimension(frag%nbody) :: v_t_new, kearr + real(DP) :: keo + + associate(nfrag => frag%nbody) + lfailure = .false. + + v_t_new(:) = solve_fragment_tan_vel(v_t_mag_input=v_t_mag_input(:), lfailure=lfailure) + v_shift(:,:) = fraggle_util_vmag_to_vb(frag%v_r_mag, frag%v_r_unit, v_t_new, frag%v_t_unit, frag%mass, frag%vbcom) + + kearr = 0.0_DP + do concurrent(i = 1:nfrag) + kearr(i) = frag%mass(i) * dot_product(v_shift(:, i), v_shift(:, i)) + end do + keo = 0.5_DP * sum(kearr(:)) + fval = keo + lfailure = .false. + end associate + + return + end function tangential_objective_function + + end subroutine fraggle_generate_tan_vel + + + subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! + !! Adjust the fragment velocities to set the fragment orbital kinetic energy. This will minimize the difference between the fragment kinetic energy and the energy budget + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + logical, intent(out) :: lfailure !! Logical flag indicating whether this step fails or succeeds! + ! Internals + real(DP), parameter :: TOL_MIN = FRAGGLE_ETOL ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy + real(DP), parameter :: TOL_INIT = 1e-14_DP + integer(I4B), parameter :: MAXLOOP = 100 + real(DP) :: ke_radial, tol + integer(I4B) :: i, j + real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma + real(DP), dimension(:,:), allocatable :: v_r + type(lambda_obj) :: objective_function + + associate(nfrag => frag%nbody) + ! Set the "target" ke for the radial component + ke_radial = frag%ke_budget - frag%ke_spin - frag%ke_orbit + + allocate(v_r_initial, source=frag%v_r_mag) + ! Initialize radial velocity magnitudes with a random value that is approximately 10% of that found by distributing the kinetic energy equally + allocate(v_r_sigma, source=frag%v_r_mag) + call random_number(v_r_sigma(1:nfrag)) + v_r_sigma(1:nfrag) = sqrt(1.0_DP + 2 * (v_r_sigma(1:nfrag) - 0.5_DP) * 1e-4_DP) + v_r_initial(1:nfrag) = v_r_sigma(1:nfrag) * sqrt(abs(2 * ke_radial) / (frag%mass(1:nfrag) * nfrag)) + + ! Initialize the lambda function using a structure constructor that calls the init method + ! Minimize the ke objective function using the BFGS optimizer + objective_function = lambda_obj(radial_objective_function) + tol = TOL_INIT + do while(tol < TOL_MIN) + frag%v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, tol, MAXLOOP, lfailure) + if (.not.lfailure) exit + tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution + v_r_initial(:) = frag%v_r_mag(:) + end do + + ! Shift the radial velocity vectors to align with the center of mass of the collisional system (the origin) + frag%ke_orbit = 0.0_DP + frag%vb(:,1:nfrag) = fraggle_util_vmag_to_vb(frag%v_r_mag(1:nfrag), frag%v_r_unit(:,1:nfrag), frag%v_t_mag(1:nfrag), frag%v_t_unit(:,1:nfrag), frag%mass(1:nfrag), frag%vbcom(:)) + do i = 1, nfrag + frag%v_coll(:, i) = frag%vb(:, i) - frag%vbcom(:) + frag%ke_orbit = frag%ke_orbit + frag%mass(i) * dot_product(frag%vb(:, i), frag%vb(:, i)) + end do + frag%ke_orbit = 0.5_DP * frag%ke_orbit + + ! write(*,*) 'Radial' + ! write(*,*) 'Failure? ',lfailure + ! write(*,*) 'frag%ke_budget: ',frag%ke_budget + ! write(*,*) 'frag%ke_spin : ',frag%ke_spin + ! write(*,*) 'frag%ke_orbit : ',frag%ke_orbit + ! write(*,*) 'ke_remainder : ',frag%ke_budget - (frag%ke_orbit + frag%ke_spin) + lfailure = .false. + + end associate + return + + contains + function radial_objective_function(v_r_mag_input) result(fval) + !! Author: David A. Minton + !! + !! Objective function for evaluating how close our fragment velocities get to minimizing KE error from our required value + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: v_r_mag_input !! Unknown radial component of fragment velocity vector + ! Result + real(DP) :: fval !! The objective function result, which is the square of the difference between the calculated fragment kinetic energy and our target + !! Minimizing this brings us closer to our objective + ! Internals + integer(I4B) :: i + real(DP), dimension(:,:), allocatable :: v_shift + real(DP), dimension(frag%nbody) :: kearr + real(DP) :: keo, ke_radial + + associate(nfrag => frag%nbody) + allocate(v_shift, mold=frag%vb) + v_shift(:,:) = fraggle_util_vmag_to_vb(v_r_mag_input, frag%v_r_unit, frag%v_t_mag, frag%v_t_unit, frag%mass, frag%vbcom) + do concurrent(i = 1:nfrag) + kearr(i) = frag%mass(i) * (frag%Ip(3, i) * frag%radius(i)**2 * dot_product(frag%rot(:, i), frag%rot(:, i)) + dot_product(v_shift(:, i), v_shift(:, i))) + end do + keo = 2 * frag%ke_budget - sum(kearr(:)) + ke_radial = frag%ke_budget - frag%ke_orbit - frag%ke_spin + ! The following ensures that fval = 0 is a local minimum, which is what the BFGS method is searching for + fval = (keo / (2 * ke_radial))**2 + end associate + + return + end function radial_objective_function + + end subroutine fraggle_generate_rad_vel + +end submodule s_fraggle_generate \ No newline at end of file diff --git a/src/fraggle/fraggle_placeholder.f90 b/src/fraggle/fraggle_placeholder.f90 new file mode 100644 index 000000000..bbf08bb04 --- /dev/null +++ b/src/fraggle/fraggle_placeholder.f90 @@ -0,0 +1,44 @@ +submodule(fraggle_classes) s_fraggle_placeholder + use swiftest + +contains + + !> The following interfaces are placeholders intended to satisfy the required abstract methods given by the parent class + module subroutine fraggle_placeholder_accel(self, system, param, t, lbeg) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current simulation time + logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step + write(*,*) "The type-bound procedure 'accel' is not defined for type fraggle_fragments" + return + end subroutine fraggle_placeholder_accel + + module subroutine fraggle_placeholder_kick(self, system, param, t, dt, lbeg) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system objec + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current time + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. + + write(*,*) "The type-bound procedure 'kick' is not defined for type fraggle_fragments" + return + end subroutine fraggle_placeholder_kick + + module subroutine fraggle_placeholder_step(self, system, param, t, dt) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Swiftest body object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest system object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Simulation time + real(DP), intent(in) :: dt !! Current stepsize + + write(*,*) "The type-bound procedure 'step' is not defined for type fraggle_fragments" + return + end subroutine fraggle_placeholder_step + + +end submodule s_fraggle_placeholder \ No newline at end of file diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 new file mode 100644 index 000000000..ab786917e --- /dev/null +++ b/src/fraggle/fraggle_regime.f90 @@ -0,0 +1,356 @@ +submodule(fraggle_classes) s_fraggle_regime + use swiftest + +contains + + module subroutine fraggle_regime_colliders(self, frag, system, param) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Determine which fragmentation regime the set of colliders will be. This subroutine is a wrapper for the non-polymorphic raggle_regime_collresolve subroutine. + !! It converts to SI units prior to calling + implicit none + ! Arguments + class(fraggle_colliders), intent(inout) :: self !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(swiftest_nbody_system), intent(in) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameters + ! Internals + integer(I4B) :: jtarg, jproj, regime + real(DP), dimension(2) :: radius_si, mass_si, density_si + real(DP) :: min_mfrag_si, Mcb_si + real(DP), dimension(NDIM) :: x1_si, v1_si, x2_si, v2_si + real(DP) :: mlr, mslr, mtot, dentot, msys, msys_new, Qloss, impact_parameter + + associate(colliders => self) + ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them to the regime determination subroutine + if (colliders%mass(1) > colliders%mass(2)) then + jtarg = 1 + jproj = 2 + else + jtarg = 2 + jproj = 1 + end if + mass_si(:) = colliders%mass([jtarg, jproj]) * param%MU2KG !! The two-body equivalent masses of the collider system + radius_si(:) = colliders%radius([jtarg, jproj]) * param%DU2M !! The two-body equivalent radii of the collider system + density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The two-body equivalent density of the collider system + x1_si(:) = colliders%xb(:,jtarg) * param%DU2M !! The first body of the two-body equivalent position vector the collider system + v1_si(:) = colliders%vb(:,jtarg) * param%DU2M / param%TU2S !! The first body of the two-body equivalent velocity vector the collider system + x2_si(:) = colliders%xb(:,jproj) * param%DU2M !! The second body of the two-body equivalent position vector the collider system + v2_si(:) = colliders%vb(:,jproj) * param%DU2M / param%TU2S !! The second body of the two-body equivalent velocity vector the collider system + Mcb_si = system%cb%mass * param%MU2KG !! The central body mass of the system + select type(param) + class is (symba_parameters) + min_mfrag_si = (param%min_GMfrag / param%GU) * param%MU2KG !! The minimum fragment mass to generate. Collider systems that would otherwise generate less massive fragments than this value will be forced to merge instead + class default + min_mfrag_si = 0.0_DP + end select + + mtot = sum(mass_si(:)) + dentot = sum(mass_si(:) * density_si(:)) / mtot + + !! Use the positions and velocities of the parents from indside the step (at collision) to calculate the collisional regime + call fraggle_regime_collresolve(Mcb_si, mass_si(jtarg), mass_si(jproj), radius_si(jtarg), radius_si(jproj), x1_si(:), x2_si(:),& + v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), min_mfrag_si, frag%regime, mlr, mslr, frag%Qloss) + + frag%mass_dist(1) = min(max(mlr, 0.0_DP), mtot) + frag%mass_dist(2) = min(max(mslr, 0.0_DP), mtot) + frag%mass_dist(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) + + ! Convert quantities back to the system units and save them into the fragment system + frag%mass_dist(:) = (frag%mass_dist(:) / param%MU2KG) + frag%Qloss = frag%Qloss * (param%TU2S / param%DU2M)**2 / param%MU2KG + frag%mtot = sum(colliders%mass(:)) + frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot + frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot + end associate + + return + end subroutine fraggle_regime_colliders + + + subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, min_mfrag, regime, Mlr, Mslr, Qloss) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Determine the collisional regime of two colliding bodies. + !! Current version requires all values to be converted to SI units prior to calling the function + !! References: + !! Kokubo, E., Genda, H., 2010. Formation of Terrestrial Planets from Protoplanets Under a Realistic Accretion + !! Condition. ApJL 714, L21. https://doi.org/10.1088/2041-8205/714/1/L21 + !! Leinhardt, Z.M., Stewart, S.T., 2012. Collisions between Gravity-dominated Bodies. I. Outcome Regimes and Scaling + !! Laws 745, 79. https://doi.org/10.1088/0004-637X/745/1/79 + !! Mustill, A.J., Davies, M.B., Johansen, A., 2018. The dynamical evolution of transiting planetary systems including + !! a realistic collision prescription. Mon Not R Astron Soc 478, 2896–2908. https://doi.org/10.1093/mnras/sty1273 + !! Rufu, R., Aharonson, O., 2019. Impact Dynamics of Moons Within a Planetary Potential. J. Geophys. Res. Planets 124, + !! 1008–1019. https://doi.org/10.1029/2018JE005798 + !! Stewart, S.T., Leinhardt, Z.M., 2012. Collisions between Gravity-dominated Bodies. II. The Diversity of Impact + !! Outcomes during the End Stage of Planet Formation. ApJ 751, 32. https://doi.org/10.1088/0004-637X/751/1/32 + !! + implicit none + ! Arguments + real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, min_mfrag + real(DP), dimension(:), intent(in) :: xh1, xh2, vb1, vb2 + integer(I4B), intent(out) :: regime + real(DP), intent(out) :: Mlr, Mslr + real(DP), intent(out) :: Qloss !! The residual energy after the collision + ! Constants + integer(I4B), parameter :: N1 = 1 !number of objects with mass equal to the largest remnant from LS12 + integer(I4B), parameter :: N2 = 2 !number of objects with mass larger than second largest remnant from LS12 + real(DP), parameter :: DENSITY1 = 1000.0_DP !standard density parameter from LS12 [kg/m3] + real(DP), parameter :: MU_BAR = 0.37_DP !0.385#0.37#0.3333# 3.978 # 1/3 material parameter for hydrodynamic planet-size bodies (LS12) + real(DP), parameter :: BETA = 2.85_DP !slope of sfd for remnants from LS12 2.85 + real(DP), parameter :: C1 = 2.43_DP !! Kokubo & Genda (2010) eq. (3) + real(DP), parameter :: C2 = -0.0408_DP !! Kokubo & Genda (2010) eq. (3) + real(DP), parameter :: C3 = 1.86_DP !! Kokubo & Genda (2010) eq. (3) + real(DP), parameter :: C4 = 1.08_DP !! Kokubo & Genda (2010) eq. (3) + real(DP), parameter :: CRUFU = 2.0_DP - 3 * MU_BAR ! central potential variable from Rufu and Aharonson (2019) + real(DP), parameter :: SUPERCAT_QRATIO = 1.8_DP ! See Section 4.1 of LS12 + ! Internals + real(DP) :: a1, alpha, aint, b, bcrit, c_star, egy, zeta, l, lint, mu, phi, theta + real(DP) :: Qr, Qrd_pstar, Qr_erosion, Qr_supercat + real(DP) :: Vhr, Verosion, Vescp, Vhill, Vimp, Vsupercat + real(DP) :: Mint, Mtot + real(DP) :: Rp, rhill + real(DP) :: Mresidual + real(DP) :: U_binding + + Vimp = norm2(vb2(:) - vb1(:)) + b = calc_b(xh2, vb2, xh1, vb1) + l = (rad1 + rad2) * (1 - b) + egy = 0.5_DP * dot_product(vb1, vb1) - GC * Mcb / norm2(xh1) + a1 = - GC * Mcb / 2.0_DP / egy + Mtot = m1 + m2 + mu = (m1 * m2) / Mtot + if (l < 2 * rad2) then + !calculate Mint + phi = 2 * acos((l - rad2) / rad2) + aint = rad2**2 * (PI - (phi - sin(phi)) / 2.0_DP) + lint = 2 * sqrt(rad2**2 - (rad2 - l / 2.0_DP) ** 2) + Mint = aint * lint ![kg] + alpha = (l**2) * (3 * rad2 - l) / (4 * (rad2**3)) + else + alpha = 1.0_DP + Mint = m2 + end if + Rp = (3 * (m1 / den1 + alpha * m2 / den2) / (4 * PI))**(1.0_DP/3.0_DP) ! (Mustill et al. 2018) + c_star = calc_c_star(Rp) + + !calculate Vescp + Vescp = sqrt(2 * GC * Mtot / Rp) !Mustill et al. 2018 eq 6 + + !calculate rhill + rhill = a1 * (m1 / 3.0_DP / (Mcb + m1))**(1.0_DP/3.0_DP) + + !calculate Vhill + if ((rad2 + rad1) < rhill) then + Vhill = sqrt(2 * GC * m1 * ((rhill**2 - rhill * (rad1 + rad2)) / & + (rhill**2 - 0.5_DP * (rad1 + rad2)**2)) / (rad1 + rad2)) + else + Vhill = Vescp + end if + + !calculate Qr_pstar + Qrd_pstar = calc_Qrd_pstar(m1, m2, alpha, c_star) * (Vhill / Vescp)**CRUFU !Rufu and Aharaonson eq (3) + + !calculate Verosion + Qr_erosion = 2 * (1.0_DP - m1 / Mtot) * Qrd_pstar + Verosion = (2 * Qr_erosion * Mtot / mu)** (1.0_DP / 2.0_DP) + Qr = mu*(Vimp**2) / Mtot / 2.0_DP + + !calculate mass largest remnant Mlr + Mlr = (1.0_DP - Qr / Qrd_pstar / 2.0_DP) * Mtot ! [kg] # LS12 eq (5) + + !calculate Vsupercat + Qr_supercat = SUPERCAT_QRATIO * Qrd_pstar ! See LS12 Section 4.1 + Vsupercat = sqrt(2 * Qr_supercat * Mtot / mu) + + !calculate Vhr + zeta = (m1 - m2) / Mtot + theta = 1.0_DP - b + Vhr = Vescp * (C1 * zeta**2 * theta**(2.5_DP) + C2 * zeta**2 + C3 * theta**(2.5_DP) + C4) ! Kokubo & Genda (2010) eq. (3) + bcrit = rad1 / (rad1 + rad2) + Qloss = 0.0_DP + U_binding = (3.0_DP * Mtot) / (5.0_DP * Rp) ! LS12 eq. 27 + + if ((m1 < min_mfrag).or.(m2 < min_mfrag)) then + regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime + Mlr = Mtot + Mslr = 0.0_DP + Qloss = 0.0_DP + write(*,*) "FORCE MERGE" + else + if( Vimp < Vescp) then + regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime + Mlr = Mtot + Mslr = 0.0_DP + Qloss = 0.0_DP + else if (Vimp < Verosion) then + if (b < bcrit) then + regime = COLLRESOLVE_REGIME_MERGE !partial accretion regime" + Mlr = Mtot + Mslr = 0.0_DP + Qloss = 0.0_DP + else if ((b > bcrit) .and. (Vimp < Vhr)) then + regime = COLLRESOLVE_REGIME_MERGE ! graze and merge + Mlr = Mtot + Mslr = 0.0_DP + Qloss = 0.0_DP + else + Mlr = m1 + Mslr = calc_Qrd_rev(m2, m1, Mint, den1, den2, Vimp, c_star) + regime = COLLRESOLVE_REGIME_HIT_AND_RUN !hit and run + Qloss = (c_star + 1.0_DP) * U_binding ! Qr + end if + else if (Vimp > Verosion .and. Vimp < Vsupercat) then + if (m2 < 0.001_DP * m1) then + regime = COLLRESOLVE_REGIME_MERGE !cratering regime" + Mlr = Mtot + Mslr = 0.0_DP + Qloss = 0.0_DP + else + Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) ! LS12 eq (37) + regime = COLLRESOLVE_REGIME_DISRUPTION !disruption + Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_erosion + end if + else if (Vimp > Vsupercat) then + Mlr = Mtot * 0.1_DP * (Qr / (Qrd_pstar * SUPERCAT_QRATIO))**(-1.5_DP) !LS12 eq (44) + Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) !LS12 eq (37) + regime = COLLRESOLVE_REGIME_SUPERCATASTROPHIC ! supercatastrophic + Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_supercat + else + write(*,*) "Error no regime found in symba_regime" + end if + end if + + Mresidual = Mtot - Mlr - Mslr + if (Mresidual < 0.0_DP) then ! prevents final masses from going negative + Mlr = Mlr + Mresidual + end if + + return + + ! Internal functions + contains + function calc_Qrd_pstar(Mtarg, Mp, alpha, c_star) result(Qrd_pstar) + !! author: Jennifer L.L. Pouplin and Carlisle A. Wishard + !! + !! Calculates the corrected Q* for oblique impacts. See Eq. (15) of LS12. + !! Reference: + !! Leinhardt, Z.M., Stewart, S.T., 2012. Collisions between Gravity-dominated Bodies. I. Outcome Regimes and Scaling + !! Laws 745, 79. https://doi.org/10.1088/0004-637X/745/1/79 + !! + implicit none + ! Arguments + real(DP),intent(in) :: Mtarg, Mp, alpha, c_star + ! Result + real(DP) :: Qrd_pstar + ! Internals + real(DP) :: Qrd_star1, mu_alpha, mu, Qrd_star + + ! calc mu, mu_alpha + mu = (Mtarg * Mp) / (Mtarg + Mp) ! [kg] + mu_alpha = (Mtarg * alpha * Mp) / (Mtarg + alpha * Mp) ! [kg] + ! calc Qrd_star1 + Qrd_star1 = (c_star * 4 * PI * DENSITY1 * GC * Rp**2) / 5.0_DP + ! calc Qrd_star + Qrd_star = Qrd_star1 * (((Mp / Mtarg + 1.0_DP)**2) / (4 * Mp / Mtarg))**(2.0_DP / (3.0_DP * MU_BAR) - 1.0_DP) !(eq 23) + ! calc Qrd_pstar, v_pstar + Qrd_pstar = ((mu / mu_alpha)**(2.0_DP - 3.0_DP * MU_BAR / 2.0_DP)) * Qrd_star ! (eq 15) + + return + end function calc_Qrd_pstar + + function calc_Qrd_rev(Mp, Mtarg, Mint, den1, den2, Vimp, c_star) result(Mslr) + !! author: Jennifer L.L. Pouplin and Carlisle A. Wishard + !! + !! Calculates mass of second largest fragment. + !! + implicit none + ! Arguments + real(DP),intent(in) :: Mp, Mtarg, Mint, den1, den2, Vimp, c_star + ! Result + real(DP) :: Mslr + ! Internals + real(DP) :: mtot_rev, mu_rev, gamma_rev, Qrd_star1, Qrd_star, mu_alpha_rev + real(DP) :: Qrd_pstar, Rc1, Qr_rev, Qrd_pstar_rev, Qr_supercat_rev + + ! calc Mslr, Rc1, mu, gammalr + mtot_rev = Mint + Mp + Rc1 = (3 * (Mint / den1 + Mp / den2) / (4 * PI))**(1.0_DP/3.0_DP) ! [m] Mustill et al 2018 + mu_rev = (Mint * Mp) / mtot_rev ! [kg] eq 49 LS12 + mu_alpha_rev = (Mtarg * alpha * Mp) / (Mtarg + alpha * Mp) + gamma_rev = Mint / Mp ! eq 50 LS12 + !calc Qr_rev + Qr_rev = mu_rev * (Vimp**2) / (2 * mtot_rev) + ! calc Qrd_star1, v_star1 + Qrd_star1 = (c_star * 4 * PI * mtot_rev * GC ) / Rc1 / 5.0_DP + ! calc Qrd_pstar_rev + Qrd_star = Qrd_star1 * (((gamma_rev + 1.0_DP)**2) / (4 * gamma_rev)) ** (2.0_DP / (3.0_DP * MU_BAR) - 1.0_DP) !(eq 52) + Qrd_pstar = Qrd_star * ((mu_rev / mu_alpha_rev)**(2.0_DP - 3.0_DP * MU_BAR / 2.0_DP)) + Qrd_pstar_rev = Qrd_pstar * (Vhill / Vescp)**CRUFU !Rufu and Aharaonson eq (3) + !calc Qr_supercat_rev + Qr_supercat_rev = 1.8_DP * Qrd_pstar_rev + if (Qr_rev > Qr_supercat_rev ) then + Mslr = mtot_rev * (0.1_DP * ((Qr_rev / (Qrd_pstar_rev * 1.8_DP))**(-1.5_DP))) !eq (44) + else if ( Qr_rev < Qrd_pstar_rev ) then + Mslr = Mp + else + Mslr = (1.0_DP - Qr_rev / Qrd_pstar_rev / 2.0_DP) * (mtot_rev) ! [kg] #(eq 5) + end if + + if ( Mslr > Mp ) Mslr = Mp !check conservation of mass + + return + end function calc_Qrd_rev + + function calc_b(proj_pos, proj_vel, targ_pos, targ_vel) result(sintheta) + !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Calculates the impact factor b = sin(theta), where theta is the angle between the relative velocity + !! and distance vectors of the target and projectile bodies. See Fig. 2 of Leinhardt and Stewart (2012) + !! + implicit none + !! Arguments + real(DP), dimension(:), intent(in) :: proj_pos, proj_vel, targ_pos, targ_vel + !! Result + real(DP) :: sintheta + !! Internals + real(DP), dimension(NDIM) :: imp_vel, distance, x_cross_v + + imp_vel(:) = proj_vel(:) - targ_vel(:) + distance(:) = proj_pos(:) - targ_pos(:) + x_cross_v(:) = distance(:) .cross. imp_vel(:) + sintheta = norm2(x_cross_v(:)) / norm2(distance(:)) / norm2(imp_vel(:)) + return + end function calc_b + + + function calc_c_star(Rc1) result(c_star) + !! author: David A. Minton + !! + !! Calculates c_star as a function of impact equivalent radius. It inteRpolates between 5 for ~1 km sized bodies to + !! 1.8 for ~10000 km sized bodies. See LS12 Fig. 4 for details. + !! + implicit none + !! Arguments + real(DP), intent(in) :: Rc1 + !! Result + real(DP) :: c_star + !! Internals + real(DP), parameter :: loR = 1.0e3_DP ! Lower bound of inteRpolation size (m) + real(DP), parameter :: hiR = 1.0e7_DP ! Upper bound of inteRpolation size (m) + real(DP), parameter :: loval = 5.0_DP ! Value of C* at lower bound + real(DP), parameter :: hival = 1.9_DP ! Value of C* at upper bound + + if (Rc1 < loR) then + c_star = loval + else if (Rc1 < hiR) then + c_star = loval + (hival - loval) * log(Rc1 / loR) / log(hiR /loR) + else + c_star = hival + end if + return + end function calc_c_star + + end subroutine fraggle_regime_collresolve + +end submodule s_fraggle_regime \ No newline at end of file diff --git a/src/fraggle/fraggle_set.f90 b/src/fraggle/fraggle_set.f90 new file mode 100644 index 000000000..b0b2a69be --- /dev/null +++ b/src/fraggle/fraggle_set.f90 @@ -0,0 +1,295 @@ +submodule(fraggle_classes) s_fraggle_set + use swiftest +contains + + module subroutine fraggle_set_budgets_fragments(self, colliders) + !! author: David A. Minton + !! + !! Sets the energy and momentum budgets of the fragments based on the collider values and the before/after values of energy and momentum + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + ! Internals + real(DP) :: dEtot + real(DP), dimension(NDIM) :: dL + + associate(frag => self) + + dEtot = frag%Etot_after - frag%Etot_before + dL(:) = frag%Ltot_after(:) - frag%Ltot_before(:) + + frag%L_budget(:) = -dL(:) + frag%ke_budget = -(dEtot - 0.5_DP * frag%mtot * dot_product(frag%vbcom(:), frag%vbcom(:))) - frag%Qloss + + end associate + return + end subroutine fraggle_set_budgets_fragments + + + module subroutine fraggle_set_mass_dist_fragments(self, colliders) + !! author: David A. Minton + !! + !! Sets the mass of fragments based on the mass distribution returned by the regime calculation. + !! This subroutine must be run after the the setup rourtine has been run on the fragments + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + ! Internals + integer(I4B) :: i, istart, jproj, jtarg + real(DP), dimension(2) :: vol + real(DP) :: min_frag_mass + real(DP), dimension(NDIM) :: Ip_avg + + associate(frag => self, nfrag => self%nbody) + ! Get mass weighted mean of Ip and density + vol(1:2) = 4._DP / 3._DP * PI * colliders%radius(1:2)**3 + frag%density(1:nfrag) = frag%mtot / sum(vol(:)) + Ip_avg(:) = (colliders%mass(1) * colliders%Ip(:,1) + colliders%mass(2) * colliders%Ip(:,2)) / frag%mtot + do i = 1, nfrag + frag%Ip(:, i) = Ip_avg(:) + end do + + select case(frag%regime) + case(COLLRESOLVE_REGIME_DISRUPTION) + ! Distribute the mass among fragments, with a branch to check for the size of the second largest fragment + frag%mass(1) = frag%mass_dist(1) + if (frag%mass_dist(2) > frag%mass_dist(1) / 3._DP) then + frag%mass(2) = frag%mass_dist(2) + istart = 3 + else + istart = 2 + end if + ! Distribute remaining mass among the remaining bodies + do i = istart, nfrag + frag%mass(i) = (frag%mtot - sum(frag%mass(1:istart - 1))) / (nfrag - istart + 1) + end do + frag%radius(1:nfrag) = (3 * frag%mass(1:nfrag) / (4 * PI * frag%density(1:nfrag)))**(1.0_DP / 3.0_DP) + case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + ! If we are adding the first and largest fragment (lr), check to see if its mass is SMALLER than an equal distribution of + ! mass between all fragments. If so, we will just distribute the mass equally between the fragments + min_frag_mass = frag%mtot / nfrag + if (frag%mass_dist(1) < min_frag_mass) then + frag%mass(:) = min_frag_mass + else + frag%mass(1) = frag%mass_dist(1) + frag%mass(2:nfrag) = (frag%mtot - frag%mass_dist(1)) / (nfrag - 1) + end if + ! Distribute any residual mass if there is any and set the radius + frag%mass(nfrag) = frag%mass(nfrag) + (frag%mtot - sum(frag%mass(:))) + frag%radius(1:nfrag) = (3 * frag%mass(1:nfrag) / (4 * PI * frag%density(1:nfrag)))**(1.0_DP / 3.0_DP) + case(COLLRESOLVE_REGIME_HIT_AND_RUN) + if (colliders%mass(1) > colliders%mass(2)) then + jtarg = 1 + jproj = 2 + else + jtarg = 2 + jproj = 1 + end if + frag%mass(1) = frag%mass_dist(1) + frag%radius(1) = colliders%radius(jtarg) + frag%density(1) = frag%mass_dist(1) / vol(jtarg) + + frag%mass(2:nfrag) = (frag%mtot - frag%mass(1)) / (nfrag - 1) + frag%mass(nfrag) = frag%mass(nfrag) + (frag%mtot - sum(frag%mass(:))) + frag%radius(2:nfrag) = (3 * frag%mass(2:nfrag) / (4 * PI * frag%density(2:nfrag)))**(1.0_DP / 3.0_DP) + case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) + frag%mass(1) = frag%mtot + frag%radius(1) = (3 * sum(vol(:)) / (4 * PI))**(1._DP / 3._DP) + case default + write(*,*) "fraggle_set_mass_dist_fragments error: Unrecognized regime code",frag%regime + end select + + end associate + + return + end subroutine fraggle_set_mass_dist_fragments + + + module subroutine fraggle_set_coordinate_system(self, colliders) + !! author: David A. Minton + !! + !! Defines the collisional coordinate system, including the unit vectors of both the system and individual fragments. + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + ! Internals + integer(I4B) :: i + real(DP), dimension(NDIM) :: x_cross_v, delta_r, delta_v, Ltot + real(DP) :: r_col_norm, v_col_norm + real(DP), dimension(NDIM, self%nbody) :: L_sigma + + associate(frag => self, nfrag => self%nbody) + delta_v(:) = colliders%vb(:, 2) - colliders%vb(:, 1) + v_col_norm = .mag. delta_v(:) + delta_r(:) = colliders%xb(:, 2) - colliders%xb(:, 1) + r_col_norm = .mag. delta_r(:) + + ! We will initialize fragments on a plane defined by the pre-impact system, with the z-axis aligned with the angular momentum vector + ! and the y-axis aligned with the pre-impact distance vector. + Ltot = colliders%L_orbit(:,1) + colliders%L_orbit(:,2) + colliders%L_spin(:,1) + colliders%L_spin(:,2) + frag%y_coll_unit(:) = delta_r(:) / r_col_norm + frag%z_coll_unit(:) = Ltot(:) / (.mag. Ltot(:)) + ! The cross product of the y- by z-axis will give us the x-axis + frag%x_coll_unit(:) = frag%y_coll_unit(:) .cross. frag%z_coll_unit(:) + + if (.not.any(frag%x_coll(:,:) > 0.0_DP)) return + frag%rmag(:) = .mag. frag%x_coll(:,:) + + call random_number(L_sigma(:,:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, + ! otherwise we can get an ill-conditioned system + do concurrent(i = 1:nfrag, frag%rmag(i) > 0.0_DP) + frag%v_r_unit(:, i) = frag%x_coll(:, i) / frag%rmag(i) + frag%v_n_unit(:, i) = frag%z_coll_unit(:) + 2e-1_DP * (L_sigma(:,i) - 0.5_DP) + frag%v_n_unit(:, i) = frag%v_n_unit(:, i) / (.mag. frag%v_n_unit(:, i)) + frag%v_t_unit(:, i) = frag%v_n_unit(:, i) .cross. frag%v_r_unit(:, i) + frag%v_t_unit(:, i) = frag%v_t_unit(:, i) / (.mag. frag%v_t_unit(:, i)) + end do + end associate + + return + end subroutine fraggle_set_coordinate_system + + + ! module subroutine symba_set_collresolve_colliders(self, cb, pl, idx) + ! !! author: David A. Minton + ! !! + ! !! Calculate the two-body equivalent values given a set of input collider indices + ! use swiftest_classes, only : swiftest_nbody_system + ! implicit none + ! ! Arguments + ! class(fraggle_colliders), intent(inout) :: self !! Fraggle collider object + ! class(symba_cb), intent(in) :: cb !! Swiftest central body object system object + ! class(symba_pl), intent(in) :: pl !! Swiftest central body object system object + ! integer(I4B), dimension(:), intent(in) :: idx !! Index array of bodies from the pl object to use to calculate a "two-body equivalent" collisional pair + ! ! Internals + ! real(DP), dimension(NDIM, 2) :: mxc, vc + ! real(DP), dimension(NDIM) :: vcom, xcom + + ! associate(colliders => self) + + ! ! Compute orbital angular momentum of pre-impact system + ! xcom(:) = (colliders%mass(1) * colliders%xb(:, 1) + colliders%mass(2) * colliders%xb(:, 2)) / sum(colliders%mass(:)) + ! vcom(:) = (colliders%mass(1) * colliders%vb(:, 1) + colliders%mass(2) * colliders%vb(:, 2)) / sum(colliders%mass(:)) + ! mxc(:, 1) = colliders%mass(1) * (colliders%xb(:, 1) - xcom(:)) + ! mxc(:, 2) = colliders%mass(2) * (colliders%xb(:, 2) - xcom(:)) + ! vc(:, 1) = colliders%vb(:, 1) - vcom(:) + ! vc(:, 2) = colliders%vb(:, 2) - vcom(:) + + ! colliders%L_orbit(:,:) = mxc(:,:) .cross. vc(:,:) + + ! end associate + + ! return + ! end subroutine symbe_set_collresolve_colliders + + + module subroutine fraggle_set_natural_scale_factors(self, colliders) + !! author: David A. Minton + !! + !! Scales dimenional quantities to ~O(1) with respect to the collisional system. + !! This scaling makes it easier for the non-linear minimization to converge on a solution + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + ! Internals + integer(I4B) :: i + + associate(frag => self) + ! Find the center of mass of the collisional system + frag%mtot = sum(colliders%mass(:)) + frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot + frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot + + ! Set scale factors + frag%Escale = 0.5_DP * (colliders%mass(1) * dot_product(colliders%vb(:,1), colliders%vb(:,1)) + colliders%mass(2) * dot_product(colliders%vb(:,2), colliders%vb(:,2))) + frag%dscale = sum(colliders%radius(:)) + frag%mscale = frag%mtot + frag%vscale = sqrt(frag%Escale / frag%mscale) + frag%tscale = frag%dscale / frag%vscale + frag%Lscale = frag%mscale * frag%dscale * frag%vscale + + ! Scale all dimensioned quantities of colliders and fragments + frag%xbcom(:) = frag%xbcom(:) / frag%dscale + frag%vbcom(:) = frag%vbcom(:) / frag%vscale + colliders%xb(:,:) = colliders%xb(:,:) / frag%dscale + colliders%vb(:,:) = colliders%vb(:,:) / frag%vscale + colliders%mass(:) = colliders%mass(:) / frag%mscale + colliders%radius(:) = colliders%radius(:) / frag%dscale + colliders%L_spin(:,:) = colliders%L_spin(:,:) / frag%Lscale + + do i = 1, 2 + colliders%rot(:,i) = colliders%L_spin(:,i) / (colliders%mass(i) * colliders%radius(i)**2 * colliders%Ip(3, i)) + end do + + frag%mtot = frag%mtot / frag%mscale + frag%mass = frag%mass / frag%mscale + frag%radius = frag%radius / frag%dscale + frag%Qloss = frag%Qloss / frag%Escale + end associate + + return + end subroutine fraggle_set_natural_scale_factors + + + module subroutine fraggle_set_original_scale_factors(self, colliders) + !! author: David A. Minton + !! + !! Restores dimenional quantities back to the system units + use, intrinsic :: ieee_exceptions + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + ! Internals + integer(I4B) :: i + logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes + + call ieee_get_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily + call ieee_set_halting_mode(IEEE_ALL,.false.) + + associate(frag => self) + + ! Restore scale factors + frag%xbcom(:) = frag%xbcom(:) * frag%dscale + frag%vbcom(:) = frag%vbcom(:) * frag%vscale + + colliders%mass = colliders%mass * frag%mscale + colliders%radius = colliders%radius * frag%dscale + colliders%xb = colliders%xb * frag%dscale + colliders%vb = colliders%vb * frag%vscale + colliders%L_spin = colliders%L_spin * frag%Lscale + do i = 1, 2 + colliders%rot(:,i) = colliders%L_spin(:,i) * (colliders%mass(i) * colliders%radius(i)**2 * colliders%Ip(3, i)) + end do + frag%Qloss = frag%Qloss * frag%Escale + + frag%mtot = frag%mtot * frag%mscale + frag%mass = frag%mass * frag%mscale + frag%radius = frag%radius * frag%dscale + frag%rot = frag%rot / frag%tscale + frag%x_coll = frag%x_coll * frag%dscale + frag%v_coll = frag%v_coll * frag%vscale + + do i = 1, frag%nbody + frag%xb(:, i) = frag%x_coll(:, i) + frag%xbcom(:) + frag%vb(:, i) = frag%v_coll(:, i) + frag%vbcom(:) + end do + + frag%mscale = 1.0_DP + frag%dscale = 1.0_DP + frag%vscale = 1.0_DP + frag%tscale = 1.0_DP + frag%Lscale = 1.0_DP + frag%Escale = 1.0_DP + end associate + call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) + + return + end subroutine fraggle_set_original_scale_factors + + +end submodule s_fraggle_set \ No newline at end of file diff --git a/src/fraggle/fraggle_setup.f90 b/src/fraggle/fraggle_setup.f90 new file mode 100644 index 000000000..65e107b03 --- /dev/null +++ b/src/fraggle/fraggle_setup.f90 @@ -0,0 +1,78 @@ +submodule (fraggle_classes) s_fraggle_setup + use swiftest +contains + + module subroutine fraggle_setup_reset_fragments(self) + !! author: David A. Minton + !! + !! Resets all position and velocity-dependent fragment quantities in order to do a fresh calculation (does not reset mass, radius, or other values that get set prior to the call to fraggle_generate) + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self + + self%xb(:,:) = 0.0_DP + self%vb(:,:) = 0.0_DP + self%rot(:,:) = 0.0_DP + self%x_coll(:,:) = 0.0_DP + self%v_coll(:,:) = 0.0_DP + self%v_r_unit(:,:) = 0.0_DP + self%v_t_unit(:,:) = 0.0_DP + self%v_n_unit(:,:) = 0.0_DP + + self%rmag(:) = 0.0_DP + self%rotmag(:) = 0.0_DP + self%v_r_mag(:) = 0.0_DP + self%v_t_mag(:) = 0.0_DP + + self%ke_orbit = 0.0_DP + self%ke_spin = 0.0_DP + self%L_orbit(:) = 0.0_DP + self%L_spin(:) = 0.0_DP + + return + end subroutine fraggle_setup_reset_fragments + + + module subroutine fraggle_setup_fragments(self, n, param) + !! author: David A. Minton + !! + !! Allocates arrays for n fragments in a Fraggle system. Passing n = 0 deallocates all arrays. + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self + integer(I4B), intent(in) :: n + class(swiftest_parameters), intent(in) :: param + + call setup_pl(self, n, param) + if (n < 0) return + + if (allocated(self%x_coll)) deallocate(self%x_coll) + if (allocated(self%v_coll)) deallocate(self%v_coll) + if (allocated(self%v_r_unit)) deallocate(self%v_r_unit) + if (allocated(self%v_t_unit)) deallocate(self%v_t_unit) + if (allocated(self%v_n_unit)) deallocate(self%v_n_unit) + if (allocated(self%rmag)) deallocate(self%rmag) + if (allocated(self%rotmag)) deallocate(self%rotmag) + if (allocated(self%v_r_mag)) deallocate(self%v_r_mag) + if (allocated(self%v_t_mag)) deallocate(self%v_t_mag) + + if (n == 0) return + + allocate(self%x_coll(NDIM,n)) + allocate(self%v_coll(NDIM,n)) + allocate(self%v_r_unit(NDIM,n)) + allocate(self%v_t_unit(NDIM,n)) + allocate(self%v_n_unit(NDIM,n)) + allocate(self%rmag(n)) + allocate(self%rotmag(n)) + allocate(self%v_r_mag(n)) + allocate(self%v_t_mag(n)) + + call self%reset() + + return + end subroutine fraggle_setup_fragments + + + +end submodule s_fraggle_setup \ No newline at end of file diff --git a/src/fraggle/fraggle_util.f90 b/src/fraggle/fraggle_util.f90 new file mode 100644 index 000000000..df8b89c41 --- /dev/null +++ b/src/fraggle/fraggle_util.f90 @@ -0,0 +1,316 @@ +submodule(fraggle_classes) s_fraggle_util + use swiftest +contains + + module subroutine fraggle_util_add_fragments_to_system(frag, colliders, system, param) + !! Author: David A. Minton + !! + !! Adds fragments to the temporary system pl object + implicit none + ! Arguments + class(fraggle_fragments), intent(in) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + ! Internals + integer(I4B) :: i, npl_before, npl_after + logical, dimension(:), allocatable :: lexclude + + associate(nfrag => frag%nbody, pl => system%pl, cb => system%cb) + npl_after = pl%nbody + npl_before = npl_after - nfrag + allocate(lexclude(npl_after)) + + pl%status(npl_before+1:npl_after) = ACTIVE + pl%mass(npl_before+1:npl_after) = frag%mass(1:nfrag) + pl%Gmass(npl_before+1:npl_after) = frag%mass(1:nfrag) * param%GU + pl%radius(npl_before+1:npl_after) = frag%radius(1:nfrag) + do concurrent (i = 1:nfrag) + pl%xb(:,npl_before+i) = frag%xb(:,i) + pl%vb(:,npl_before+i) = frag%vb(:,i) + pl%xh(:,npl_before+i) = frag%xb(:,i) - cb%xb(:) + pl%vh(:,npl_before+i) = frag%vb(:,i) - cb%vb(:) + end do + if (param%lrotation) then + pl%Ip(:,npl_before+1:npl_after) = frag%Ip(:,1:nfrag) + pl%rot(:,npl_before+1:npl_after) = frag%rot(:,1:nfrag) + end if + ! This will remove the colliders from the system since we've replaced them with fragments + lexclude(1:npl_after) = .false. + lexclude(colliders%idx(1:colliders%ncoll)) = .true. + where(lexclude(1:npl_after)) + pl%status(1:npl_after) = INACTIVE + elsewhere + pl%status(1:npl_after) = ACTIVE + endwhere + + end associate + + return + end subroutine fraggle_util_add_fragments_to_system + + + module subroutine fraggle_util_ang_mtm(self) + !! Author: David A. Minton + !! + !! Calcualtes the current angular momentum of the fragments + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + ! Internals + integer(I4B) :: i + + associate(frag => self, nfrag => self%nbody) + frag%L_orbit(:) = 0.0_DP + frag%L_spin(:) = 0.0_DP + + do i = 1, nfrag + frag%L_orbit(:) = frag%L_orbit(:) + frag%mass(i) * (frag%x_coll(:, i) .cross. frag%v_coll(:, i)) + frag%L_spin(:) = frag%L_spin(:) + frag%mass(i) * frag%radius(i)**2 * frag%Ip(:, i) * frag%rot(:, i) + end do + end associate + + return + end subroutine fraggle_util_ang_mtm + + + module subroutine fraggle_util_construct_temporary_system(frag, system, param, tmpsys, tmpparam) + !! Author: David A. Minton + !! + !! Constructs a temporary internal system consisting of active bodies and additional fragments. This internal temporary system is used to calculate system energy with and without fragments + !! and optionally including fragments. + implicit none + ! Arguments + class(fraggle_fragments), intent(in) :: frag !! Fraggle fragment system object + class(swiftest_nbody_system), intent(in) :: system !! Original swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_nbody_system), allocatable, intent(out) :: tmpsys !! Output temporary swiftest nbody system object + class(swiftest_parameters), allocatable, intent(out) :: tmpparam !! Output temporary configuration run parameters + ! Internals + logical, dimension(:), allocatable :: linclude + integer(I4B) :: npl_tot + + associate(nfrag => frag%nbody, pl => system%pl, npl => system%pl%nbody, cb => system%cb) + ! Set up a new system based on the original + if (allocated(tmpparam)) deallocate(tmpparam) + if (allocated(tmpsys)) deallocate(tmpsys) + allocate(tmpparam, source=param) + call setup_construct_system(tmpsys, tmpparam) + + ! No test particles necessary for energy/momentum calcs + call tmpsys%tp%setup(0, param) + + ! Replace the empty central body object with a copy of the original + deallocate(tmpsys%cb) + allocate(tmpsys%cb, source=cb) + + ! Make space for the fragments + npl_tot = npl + nfrag + call tmpsys%pl%setup(npl_tot, tmpparam) + allocate(linclude(npl_tot)) + + ! Fill up the temporary system with all of the original bodies, leaving the spaces for fragments empty until we add them in later + linclude(1:npl) = .true. + linclude(npl+1:npl_tot) = .false. + call tmpsys%pl%fill(pl, linclude) + + ! Scale the temporary system to the natural units of the current Fraggle calculation + call tmpsys%rescale(tmpparam, frag%mscale, frag%dscale, frag%tscale) + + end associate + + return + end subroutine fraggle_util_construct_temporary_system + + + module subroutine fraggle_util_get_energy_momentum(self, colliders, system, param, lbefore) + !! Author: David A. Minton + !! + !! Calculates total system energy in either the pre-collision outcome state (lbefore = .true.) or the post-collision outcome state (lbefore = .false.) + !! This subrourtine works by building a temporary internal massive body object out of the non-excluded bodies and optionally with fragments appended. + !! This will get passed to the energy calculation subroutine so that energy is computed exactly the same way is it is in the main program. + !! This will temporarily expand the massive body object in a temporary system object called tmpsys to feed it into symba_energy + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + logical, intent(in) :: lbefore !! Flag indicating that this the "before" state of the system, with colliders included and fragments excluded or vice versa + ! Internals + integer(I4B) :: i, nplm + logical, dimension(:), allocatable :: lexclude + logical :: lk_plpl + logical, save :: ladd_frags + class(swiftest_nbody_system), allocatable, save :: tmpsys + class(swiftest_parameters), allocatable, save :: tmpparam + integer(I4B) :: npl_before, npl_after + + associate(frag => self, nfrag => self%nbody, pl => system%pl, cb => system%cb) + + ! Because we're making a copy of the massive body object with the excludes/fragments appended, we need to deallocate the + ! big k_plpl array and recreate it when we're done, otherwise we run the risk of blowing up the memory by + ! allocating two of these ginormous arrays simulteouously. This is not particularly efficient, but as this + ! subroutine should be called relatively infrequently, it shouldn't matter too much. + + npl_before = pl%nbody + npl_after = npl_before + nfrag + + ! Build the exluded body logical mask + allocate(lexclude(npl_after)) + if (lbefore) then + lexclude(1:npl_before) = .false. + lexclude(npl_before+1:npl_after) = .true. + call fraggle_util_construct_temporary_system(frag, system, param, tmpsys, tmpparam) + else + lexclude(1:npl_after) = .false. + lexclude(colliders%idx(1:colliders%ncoll)) = .true. + if (.not.allocated(tmpsys)) then + write(*,*) "Error in fraggle_util_get_energy_momentum. This must be called with lbefore=.true. at least once before calling it with lbefore=.false." + call util_exit(FAILURE) + end if + call fraggle_util_add_fragments_to_system(frag, colliders, tmpsys, tmpparam) + end if + + call tmpsys%pl%index(param) + + call tmpsys%get_energy_and_momentum(param) + + + ! Calculate the current fragment energy and momentum balances + if (lbefore) then + frag%Lorbit_before(:) = tmpsys%Lorbit(:) + frag%Lspin_before(:) = tmpsys%Lspin(:) + frag%Ltot_before(:) = tmpsys%Ltot(:) + frag%ke_orbit_before = tmpsys%ke_orbit + frag%ke_spin_before = tmpsys%ke_spin + frag%pe_before = tmpsys%pe + frag%Etot_before = tmpsys%te + else + frag%Lorbit_after(:) = tmpsys%Lorbit(:) + frag%Lspin_after(:) = tmpsys%Lspin(:) + frag%Ltot_after(:) = tmpsys%Ltot(:) + frag%ke_orbit_after = tmpsys%ke_orbit + frag%ke_spin_after = tmpsys%ke_spin + frag%pe_after = tmpsys%pe + frag%Etot_after = tmpsys%te + end if + end associate + + return + end subroutine fraggle_util_get_energy_momentum + + + module subroutine fraggle_util_restructure(self, colliders, try, f_spin, r_max_start) + !! Author: David A. Minton + !! + !! Restructure the inputs after a failed attempt failed to find a set of positions and velocities that satisfy the energy and momentum constraints + implicit none + ! Arguments + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + integer(I4B), intent(in) :: try !! The current number of times Fraggle has tried to find a solution + real(DP), intent(inout) :: f_spin !! Fraction of energy/momentum that goes into spin. This decreases ater a failed attempt + real(DP), intent(inout) :: r_max_start !! The maximum radial distance that the position calculation starts with. This increases after a failed attempt + ! Internals + integer(I4B) :: i + real(DP), save :: ke_tot_deficit, r_max_start_old, ke_avg_deficit_old + real(DP), dimension(:), allocatable :: m_frag_new, rad_frag_new + real(DP), dimension(:,:), allocatable :: xb_frag_new, vb_frag_new, Ip_frag_new, rot_frag_new + real(DP) :: delta_r, delta_r_max, ke_avg_deficit + real(DP), parameter :: ke_avg_deficit_target = 0.0_DP + + ! Introduce a bit of noise in the radius determination so we don't just flip flop between similar failed positions + associate(frag => self) + call random_number(delta_r_max) + delta_r_max = sum(colliders%radius(:)) * (1.0_DP + 2e-1_DP * (delta_r_max - 0.5_DP)) + if (try == 1) then + ke_tot_deficit = - (frag%ke_budget - frag%ke_orbit - frag%ke_spin) + ke_avg_deficit = ke_tot_deficit + delta_r = delta_r_max + else + ! Linearly interpolate the last two failed solution ke deficits to find a new distance value to try + ke_tot_deficit = ke_tot_deficit - (frag%ke_budget - frag%ke_orbit - frag%ke_spin) + ke_avg_deficit = ke_tot_deficit / try + delta_r = (r_max_start - r_max_start_old) * (ke_avg_deficit_target - ke_avg_deficit_old) / (ke_avg_deficit - ke_avg_deficit_old) + if (abs(delta_r) > delta_r_max) delta_r = sign(delta_r_max, delta_r) + end if + r_max_start_old = r_max_start + r_max_start = r_max_start + delta_r ! The larger lever arm can help if the problem is in the angular momentum step + ke_avg_deficit_old = ke_avg_deficit + + if (f_spin > epsilon(1.0_DP)) then ! Try reducing the fraction in spin + f_spin = f_spin / 2 + else + f_spin = 0.0_DP + end if + end associate + + return + end subroutine fraggle_util_restructure + + + module subroutine fraggle_util_shift_vector_to_origin(m_frag, vec_frag) + !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton + !! + !! Adjusts the position or velocity of the fragments as needed to align them with the origin + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses + real(DP), dimension(:,:), intent(inout) :: vec_frag !! Fragment positions or velocities in the center of mass frame + + ! Internals + real(DP), dimension(NDIM) :: mvec_frag, COM_offset + integer(I4B) :: i, nfrag + real(DP) :: mtot + + mvec_frag(:) = 0.0_DP + mtot = sum(m_frag) + nfrag = size(m_frag) + + do i = 1, nfrag + mvec_frag = mvec_frag(:) + vec_frag(:,i) * m_frag(i) + end do + COM_offset(:) = -mvec_frag(:) / mtot + do i = 1, nfrag + vec_frag(:, i) = vec_frag(:, i) + COM_offset(:) + end do + + return + end subroutine fraggle_util_shift_vector_to_origin + + + module function fraggle_util_vmag_to_vb(v_r_mag, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) result(vb) + !! Author: David A. Minton + !! + !! Converts radial and tangential velocity magnitudes into barycentric velocity + implicit none + ! Arguments + real(DP), dimension(:), intent(in) :: v_r_mag !! Unknown radial component of fragment velocity vector + real(DP), dimension(:), intent(in) :: v_t_mag !! Tangential component of velocity vector set previously by angular momentum constraint + real(DP), dimension(:,:), intent(in) :: v_r_unit, v_t_unit !! Radial and tangential unit vectors for each fragment + real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses + real(DP), dimension(:), intent(in) :: vcom !! Barycentric velocity of collisional system center of mass + ! Result + real(DP), dimension(:,:), allocatable :: vb + ! Internals + integer(I4B) :: i, nfrag + + allocate(vb, mold=v_r_unit) + ! Make sure the velocity magnitude stays positive + nfrag = size(m_frag) + do i = 1, nfrag + vb(:,i) = abs(v_r_mag(i)) * v_r_unit(:, i) + end do + ! In order to keep satisfying the kinetic energy constraint, we must shift the origin of the radial component of the velocities to the center of mass + call fraggle_util_shift_vector_to_origin(m_frag, vb) + + do i = 1, nfrag + vb(:, i) = vb(:, i) + v_t_mag(i) * v_t_unit(:, i) + vcom(:) + end do + + return + end function fraggle_util_vmag_to_vb + + +end submodule s_fraggle_util diff --git a/src/fragmentation/fragmentation.f90 b/src/fragmentation/fragmentation.f90 deleted file mode 100644 index c62d337ca..000000000 --- a/src/fragmentation/fragmentation.f90 +++ /dev/null @@ -1,1266 +0,0 @@ -submodule(swiftest_classes) s_fragmentation - use swiftest -contains - - module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Initialize the position and velocity of fragments to conserve energy and momentum. - use, intrinsic :: ieee_exceptions - implicit none - ! Arguments - class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - integer(I4B), dimension(:), intent(in) :: family !! Index of bodies involved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Two-body equivalent position, vector, spin momentum, and rotational inertia values for the collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Two-body equivalent mass and radii for the bodies in the collision - integer(I4B), intent(inout) :: nfrag !! Number of fragments to generate - real(DP), dimension(:), allocatable, intent(inout) :: m_frag, rad_frag !! Distribution of fragment mass and radii - real(DP), dimension(:,:), allocatable, intent(inout) :: Ip_frag !! Fragment rotational inertia vectors - real(DP), dimension(:,:), allocatable, intent(inout) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors - real(DP), intent(inout) :: Qloss !! Energy lost during the collision - logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? - ! Internals - real(DP) :: mscale, dscale, vscale, tscale, Lscale, Escale ! Scale factors that reduce quantities to O(~1) in the collisional system - real(DP) :: mtot - real(DP), dimension(NDIM) :: xcom, vcom - integer(I4B) :: ii, npl_new - logical, dimension(:), allocatable :: lexclude - real(DP), dimension(NDIM, 2) :: rot, L_orb, mxc, vc - real(DP), dimension(:,:), allocatable :: x_frag, v_frag, v_r_unit, v_t_unit, v_h_unit - real(DP), dimension(:), allocatable :: rmag, rotmag, v_r_mag, v_t_mag - real(DP), dimension(NDIM) :: Ltot_before - real(DP), dimension(NDIM) :: Ltot_after - real(DP) :: Etot_before, ke_orbit_before, ke_spin_before, pe_before, Lmag_before - real(DP) :: Etot_after, ke_orbit_after, ke_spin_after, pe_after, Lmag_after, dEtot, dLmag - real(DP), dimension(NDIM) :: L_frag_tot, L_frag_orb, L_frag_spin, L_frag_budget, Lorbit_before, Lorbit_after, Lspin_before, Lspin_after, dL - real(DP) :: ke_frag_budget, ke_frag_orbit, ke_frag_spin, ke_tot_deficit, ke_avg_deficit, ke_avg_deficit_old - real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit - character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" - integer(I4B) :: try - integer(I4B), parameter :: NFRAG_MIN = 7 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) - real(DP) :: r_max_start, r_max_start_old, r_max, f_spin - real(DP), parameter :: Ltol = 10 * epsilon(1.0_DP) - real(DP), parameter :: Etol = 1e-8_DP - integer(I4B), parameter :: MAXTRY = 3000 - logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes - - if (nfrag < NFRAG_MIN) then - write(*,*) "symba_frag_pos needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." - lfailure = .true. - return - end if - - call ieee_get_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily - fpe_quiet_modes(:) = .false. - call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) - - allocate(x_frag, source=xb_frag) - allocate(v_frag, source=vb_frag) - allocate(rmag(nfrag)) - allocate(rotmag(nfrag)) - allocate(v_r_mag(nfrag)) - allocate(v_t_mag(nfrag)) - allocate(v_r_unit(NDIM,nfrag)) - allocate(v_t_unit(NDIM,nfrag)) - allocate(v_h_unit(NDIM,nfrag)) - - rmag(:) = 0.0_DP - rotmag(:) = 0.0_DP - v_r_mag(:) = 0.0_DP - v_t_mag(:) = 0.0_DP - v_r_unit(:,:) = 0.0_DP - v_t_unit(:,:) = 0.0_DP - v_h_unit(:,:) = 0.0_DP - - associate(pl => system%pl, npl => system%pl%nbody) - npl_new = npl + nfrag - allocate(lexclude(npl_new)) - lexclude(1:npl) = pl%status(1:npl) == INACTIVE - lexclude(npl+1:npl_new) = .true. - end associate - - call set_scale_factors() - - ! Compute orbital angular momentum of pre-impact system - mxc(:, 1) = mass(1) * (x(:, 1) - xcom(:)) - mxc(:, 2) = mass(2) * (x(:, 2) - xcom(:)) - vc(:, 1) = v(:, 1) - vcom(:) - vc(:, 2) = v(:, 2) - vcom(:) - L_orb(:,:) = mxc(:,:) .cross. vc(:,:) - - ! Compute orbital angular momentum of pre-impact system. We'll use this to start the coordinate system, but it will get updated as we divide up the angular momentum - L_frag_orb(:) = L_orb(:, 1) + L_orb(:, 2) - L_frag_spin(:) = L_spin(:, 1) + L_spin(:, 2) - L_frag_budget(:) = L_frag_orb(:) + L_frag_spin(:) - f_spin = 0.05_DP - - call reset_fragments() - call define_coordinate_system() - - ! Calculate the initial energy of the system without the collisional family - call calculate_system_energy(linclude_fragments=.false.) - - r_max_start = 1 * norm2(x(:,2) - x(:,1)) - try = 1 - lfailure = .false. - ke_tot_deficit = 0.0_DP - do while (try < MAXTRY) - lfailure = .false. - - call set_fragment_position_vectors() - - do concurrent (ii = 1:nfrag) - vb_frag(:, ii) = vcom(:) - end do - - call calculate_system_energy(linclude_fragments=.true.) - L_frag_budget(:) = -dL(:) - ! The ke constraints are calcualted in the collision frame, so undo the barycentric velocity component - ke_frag_budget = -(dEtot - 0.5_DP * mtot * dot_product(vcom(:), vcom(:))) - Qloss - - call set_fragment_spin(lfailure) - if (.not.lfailure) call set_fragment_tan_vel(lfailure) - - if (lfailure) then - ! write(*,*) 'Failed to find tangential velocities' - else - call set_fragment_radial_velocities(lfailure) - ! if (lfailure) write(*,*) 'Failed to find radial velocities' - if (.not.lfailure) then - call calculate_system_energy(linclude_fragments=.true.) - if ((abs(dEtot + Qloss) > Etol) .or. (dEtot > 0.0_DP)) then - ! write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + Qloss) / Etol - lfailure = .true. - else if (abs(dLmag) / Lmag_before > Ltol) then - ! write(*,*) 'Failed due to high angular momentum error: ', dLmag / Lmag_before - lfailure = .true. - end if - end if - end if - - if (.not.lfailure) exit - call restructure_failed_fragments() - call reset_fragments() - try = try + 1 - end do - call restore_scale_factors() - - ! write(*, "(' -------------------------------------------------------------------------------------')") - ! write(*, "(' Final diagnostic')") - ! write(*, "(' -------------------------------------------------------------------------------------')") - ! call calculate_system_energy(linclude_fragments=.true.) - if (lfailure) then - write(*,*) "symba_frag_pos failed after: ",try," tries" - do ii = 1, nfrag - vb_frag(:, ii) = vcom(:) - end do - else - write(*,*) "symba_frag_pos succeeded after: ",try," tries" - ! write(*, "(' dL_tot should be very small' )") - ! write(*,fmtlabel) ' dL_tot |', dLmag / Lmag_before - ! write(*, "(' dE_tot should be negative and equal to Qloss' )") - ! write(*,fmtlabel) ' dE_tot |', dEtot / abs(Etot_before) - ! write(*,fmtlabel) ' Qloss |', -Qloss / abs(Etot_before) - ! write(*,fmtlabel) ' dE - Qloss |', (Etot_after - Etot_before + Qloss) / abs(Etot_before) - end if - ! write(*, "(' -------------------------------------------------------------------------------------')") - - call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily - - return - - contains - - ! Because of the complexity of this procedure, we have chosen to break it up into a series of nested subroutines. - subroutine set_scale_factors() - !! author: David A. Minton - !! - !! Scales dimenional quantities to ~O(1) with respect to the collisional system. This scaling makes it easier for the non-linear minimization - !! to converge on a solution - implicit none - integer(I4B) :: i - - ! Find the center of mass of the collisional system - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - - ! Set scale factors - Escale = 0.5_DP * (mass(1) * dot_product(v(:,1), v(:,1)) + mass(2) * dot_product(v(:,2), v(:,2))) - dscale = sum(radius(:)) - mscale = mtot - vscale = sqrt(Escale / mscale) - tscale = dscale / vscale - Lscale = mscale * dscale * vscale - - xcom(:) = xcom(:) / dscale - vcom(:) = vcom(:) / vscale - - mtot = mtot / mscale - mass = mass / mscale - radius = radius / dscale - x = x / dscale - v = v / vscale - L_spin = L_spin / Lscale - do i = 1, 2 - rot(:,i) = L_spin(:,i) / (mass(i) * radius(i)**2 * Ip(3, i)) - end do - - m_frag = m_frag / mscale - rad_frag = rad_frag / dscale - Qloss = Qloss / Escale - - return - end subroutine set_scale_factors - - - subroutine restore_scale_factors() - !! author: David A. Minton - !! - !! Restores dimenional quantities back to the system units - implicit none - integer(I4B) :: i - - call ieee_set_halting_mode(IEEE_ALL,.false.) - ! Restore scale factors - xcom(:) = xcom(:) * dscale - vcom(:) = vcom(:) * vscale - - mtot = mtot * mscale - mass = mass * mscale - radius = radius * dscale - x = x * dscale - v = v * vscale - L_spin = L_spin * Lscale - do i = 1, 2 - rot(:,i) = L_spin(:,i) * (mass(i) * radius(i)**2 * Ip(3, i)) - end do - - m_frag = m_frag * mscale - rad_frag = rad_frag * dscale - rot_frag = rot_frag / tscale - x_frag = x_frag * dscale - v_frag = v_frag * vscale - Qloss = Qloss * Escale - - do i = 1, nfrag - xb_frag(:, i) = x_frag(:, i) + xcom(:) - vb_frag(:, i) = v_frag(:, i) + vcom(:) - end do - - Etot_before = Etot_before * Escale - pe_before = pe_before * Escale - ke_spin_before = ke_spin_before * Escale - ke_orbit_before = ke_orbit_before * Escale - Ltot_before = Ltot_before * Lscale - Lmag_before = Lmag_before * Lscale - Etot_after = Etot_after * Escale - pe_after = pe_after * Escale - ke_spin_after = ke_spin_after * Escale - ke_orbit_after = ke_orbit_after * Escale - Ltot_after = Ltot_after * Lscale - Lmag_after = Lmag_after * Lscale - - dL(:) = Ltot_after(:) - Ltot_before(:) - dLmag = .mag.dL(:) - dEtot = Etot_after - Etot_before - - mscale = 1.0_DP - dscale = 1.0_DP - vscale = 1.0_DP - tscale = 1.0_DP - Lscale = 1.0_DP - Escale = 1.0_DP - - return - end subroutine restore_scale_factors - - subroutine reset_fragments() - !! author: David A. Minton - !! - !! Resets all tracked fragment quantities in order to do a fresh calculation - !! Initialize the fragments with 0 velocity and spin so we can divide up the balance between the tangential, radial, and spin components while conserving momentum - implicit none - - xb_frag(:,:) = 0.0_DP - vb_frag(:,:) = 0.0_DP - x_frag(:,:) = 0.0_DP - v_frag(:,:) = 0.0_DP - rot_frag(:,:) = 0.0_DP - v_t_mag(:) = 0.0_DP - v_r_mag(:) = 0.0_DP - ke_frag_orbit = 0.0_DP - ke_frag_spin = 0.0_DP - L_frag_orb(:) = 0.0_DP - L_frag_spin(:) = 0.0_DP - - return - end subroutine reset_fragments - - - subroutine define_coordinate_system() - !! author: David A. Minton - !! - !! Defines the collisional coordinate system, including the unit vectors of both the system and individual fragments. - implicit none - integer(I4B) :: i - real(DP), dimension(NDIM) :: x_cross_v, delta_r, delta_v - real(DP) :: r_col_norm, v_col_norm - real(DP), dimension(NDIM, nfrag) :: L_sigma - - delta_v(:) = v(:, 2) - v(:, 1) - v_col_norm = .mag. delta_v(:) - delta_r(:) = x(:, 2) - x(:, 1) - r_col_norm = .mag. delta_r(:) - - ! We will initialize fragments on a plane defined by the pre-impact system, with the z-axis aligned with the angular momentum vector - ! and the y-axis aligned with the pre-impact distance vector. - y_col_unit(:) = delta_r(:) / r_col_norm - z_col_unit(:) = (L_frag_budget(:) - L_frag_spin(:)) / (.mag. (L_frag_budget(:) - L_frag_spin(:))) - ! The cross product of the y- by z-axis will give us the x-axis - x_col_unit(:) = y_col_unit(:) .cross. z_col_unit(:) - - if (.not.any(x_frag(:,:) > 0.0_DP)) return - rmag(:) = .mag. x_frag(:,:) - - call random_number(L_sigma(:,:)) ! Randomize the tangential velocity direction. This helps to ensure that the tangential velocity doesn't completely line up with the angular momentum vector, - ! otherwise we can get an ill-conditioned system - do concurrent(i = 1:nfrag, rmag(i) > 0.0_DP) - v_r_unit(:, i) = x_frag(:, i) / rmag(i) - v_h_unit(:, i) = z_col_unit(:) + 2e-1_DP * (L_sigma(:,i) - 0.5_DP) - v_h_unit(:, i) = v_h_unit(:, i) / (.mag. v_h_unit(:, i)) - v_t_unit(:, i) = v_h_unit(:, i) .cross. v_r_unit(:, i) - v_t_unit(:, i) = v_t_unit(:, i) / (.mag. v_t_unit(:, i)) - end do - - return - end subroutine define_coordinate_system - - - subroutine construct_temporary_system(tmpsys, tmpparam) - !! Author: David A. Minton - !! - !! Constructs a temporary internal system consisting of active bodies and additional fragments. This internal temporary system is used to calculate system energy with and without fragments - !! and optionally including fragments. - implicit none - ! Arguments - class(swiftest_nbody_system), allocatable, intent(inout) :: tmpsys - class(swiftest_parameters), allocatable, intent(inout) :: tmpparam - ! Internals - logical, dimension(:), allocatable :: lexclude_tmp - - associate(pl => system%pl, npl => system%pl%nbody, cb => system%cb) - if (size(lexclude) /= npl + nfrag) then - allocate(lexclude_tmp(npl + nfrag)) - lexclude_tmp(1:npl) = lexclude(1:npl) - call move_alloc(lexclude_tmp, lexclude) - end if - where (pl%status(1:npl) == INACTIVE) ! Safety check in case one of the included bodies has been previously deactivated - lexclude(1:npl) = .true. - elsewhere - lexclude(1:npl) = .false. - end where - lexclude(npl+1:(npl + nfrag)) = .true. - allocate(tmpparam, source=param) - call setup_construct_system(tmpsys, tmpparam) - call tmpsys%tp%setup(0, param) - deallocate(tmpsys%cb) - allocate(tmpsys%cb, source=cb) - call tmpsys%pl%setup(npl + nfrag, tmpparam) - call tmpsys%pl%fill(pl, .not.lexclude) - call tmpsys%rescale(tmpparam, mscale, dscale, tscale) - - end associate - - return - end subroutine construct_temporary_system - - - subroutine add_fragments_to_tmpsys(tmpsys, tmpparam) - !! Author: David A. Minton - !! - !! Adds fragments to the temporary system pl object - implicit none - ! Arguments - class(swiftest_nbody_system), intent(inout) :: tmpsys - class(swiftest_parameters), intent(inout) :: tmpparam - ! Internals - integer(I4B) :: i - class(swiftest_pl), allocatable :: pl_discards - logical, dimension(:), allocatable :: lexclude_tmp - - associate(pl => system%pl, npl => system%pl%nbody) - npl_new = npl + nfrag - - tmpsys%pl%mass(npl+1:npl_new) = m_frag(1:nfrag) - tmpsys%pl%Gmass(npl+1:npl_new) = m_frag(1:nfrag) * tmpparam%GU - tmpsys%pl%radius(npl+1:npl_new) = rad_frag(1:nfrag) - do concurrent (i = 1:nfrag) - tmpsys%pl%xb(:,npl+i) = xb_frag(:,i) - tmpsys%pl%vb(:,npl+i) = vb_frag(:,i) - tmpsys%pl%xh(:,npl+i) = xb_frag(:,i) - tmpsys%cb%xb(:) - tmpsys%pl%vh(:,npl+i) = vb_frag(:,i) - tmpsys%cb%vb(:) - end do - if (tmpparam%lrotation) then - tmpsys%pl%Ip(:,npl+1:npl_new) = Ip_frag(:,1:nfrag) - tmpsys%pl%rot(:,npl+1:npl_new) = rot_frag(:,1:nfrag) - end if - ! Disable the collisional family for subsequent energy calculations and coordinate shifts - lexclude(family(:)) = .true. - lexclude(npl+1:npl_new) = .false. - where(lexclude(1:npl_new)) - tmpsys%pl%status(1:npl_new) = INACTIVE - elsewhere - tmpsys%pl%status(1:npl_new) = ACTIVE - end where - allocate(pl_discards, mold=tmpsys%pl) - call tmpsys%pl%spill(pl_discards, lspill_list=lexclude(1:npl_new), ldestructive=.true.) - npl_new = count(.not.lexclude(:)) - - if (size(lexclude) /= npl_new) then - allocate(lexclude_tmp(npl_new)) - call move_alloc(lexclude_tmp, lexclude) - end if - lexclude(1:npl_new) = .false. - - end associate - - return - end subroutine add_fragments_to_tmpsys - - - subroutine calculate_system_energy(linclude_fragments) - !! Author: David A. Minton - !! - !! Calculates total system energy, including all bodies in the pl list that do not have a corresponding value of the lexclude array that is true - !! and optionally including fragments. - implicit none - ! Arguments - logical, intent(in) :: linclude_fragments - ! Internals - integer(I4B) :: i, nplm - logical, dimension(:), allocatable :: lexclude_tmp - logical :: lk_plpl - class(swiftest_nbody_system), allocatable :: tmpsys - class(swiftest_parameters), allocatable :: tmpparam - - ! Build the internal planet list out of the non-excluded bodies and optionally with fragments appended. This - ! will get passed to the energy calculation subroutine so that energy is computed exactly the same way is it - ! is in the main program. This will temporarily expand the planet list in a temporary system object called tmpsys to feed it into symba_energy - associate(pl => system%pl, npl => system%pl%nbody, cb => system%cb) - - ! Because we're making a copy of symba_pl with the excludes/fragments appended, we need to deallocate the - ! big k_plpl array and recreate it when we're done, otherwise we run the risk of blowing up the memory by - ! allocating two of these ginormous arrays simulteouously. This is not particularly efficient, but as this - ! subroutine should be called relatively infrequently, it shouldn't matter too much. - lk_plpl = allocated(pl%k_plpl) - if (lk_plpl) deallocate(pl%k_plpl) - - call construct_temporary_system(tmpsys, tmpparam) - if (linclude_fragments) call add_fragments_to_tmpsys(tmpsys, tmpparam) - - call tmpsys%pl%index(param) - - call tmpsys%get_energy_and_momentum(param) - - ! Restore the big array - deallocate(tmpsys%pl%k_plpl) - - if (lk_plpl) call pl%index(param) - - ! Calculate the current fragment energy and momentum balances - if (linclude_fragments) then - Lorbit_after(:) = tmpsys%Lorbit - Lspin_after(:) = tmpsys%Lspin - Ltot_after(:) = tmpsys%Lorbit(:) + tmpsys%Lspin(:) - Lmag_after = norm2(Ltot_after(:)) - ke_orbit_after = tmpsys%ke_orbit - ke_spin_after = tmpsys%ke_spin - pe_after = tmpsys%pe - Etot_after = tmpsys%te - dEtot = Etot_after - Etot_before - dL(:) = Ltot_after(:) - Ltot_before(:) - dLmag = .mag.dL(:) - else - Lorbit_before(:) = tmpsys%Lorbit - Lspin_before(:) = tmpsys%Lspin - Ltot_before(:) = tmpsys%Lorbit(:) + tmpsys%Lspin(:) - Lmag_before = norm2(Ltot_before(:)) - ke_orbit_before = tmpsys%ke_orbit - ke_spin_before = tmpsys%ke_spin - pe_before = tmpsys%pe - Etot_before = tmpsys%te - end if - end associate - - return - end subroutine calculate_system_energy - - - subroutine calculate_fragment_ang_mtm() - !! Author: David A. Minton - !! - !! Calcualtes the current angular momentum of the fragments - implicit none - integer(I4B) :: i - - L_frag_orb(:) = 0.0_DP - L_frag_spin(:) = 0.0_DP - - do i = 1, nfrag - L_frag_orb(:) = L_frag_orb(:) + m_frag(i) * (x_frag(:, i) .cross. v_frag(:, i)) - L_frag_spin(:) = L_frag_spin(:) + m_frag(i) * rad_frag(i)**2 * Ip_frag(:, i) * rot_frag(:, i) - end do - - L_frag_tot(:) = L_frag_orb(:) + L_frag_spin(:) - - return - end subroutine calculate_fragment_ang_mtm - - - subroutine shift_vector_to_origin(m_frag, vec_frag) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Adjusts the position or velocity of the fragments as needed to align them with the origin - implicit none - ! Arguments - real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses - real(DP), dimension(:,:), intent(inout) :: vec_frag !! Fragment positions or velocities in the center of mass frame - - ! Internals - real(DP), dimension(NDIM) :: mvec_frag, COM_offset - integer(I4B) :: i - - mvec_frag(:) = 0.0_DP - - do i = 1, nfrag - mvec_frag = mvec_frag(:) + vec_frag(:,i) * m_frag(i) - end do - COM_offset(:) = -mvec_frag(:) / mtot - do i = 1, nfrag - vec_frag(:, i) = vec_frag(:, i) + COM_offset(:) - end do - - return - end subroutine shift_vector_to_origin - - - subroutine set_fragment_position_vectors() - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Initializes the orbits of the fragments around the center of mass. The fragments are initially placed on a plane defined by the - !! pre-impact angular momentum. They are distributed on an ellipse surrounding the center of mass. - !! The initial positions do not conserve energy or momentum, so these need to be adjusted later. - - implicit none - real(DP) :: dis, rad - logical, dimension(:), allocatable :: loverlap - integer(I4B) :: i, j - - allocate(loverlap(nfrag)) - - ! Place the fragments into a region that is big enough that we should usually not have overlapping bodies - ! An overlapping bodies will collide in the next time step, so it's not a major problem if they do (it just slows the run down) - r_max = r_max_start - rad = sum(radius(:)) - - ! We will treat the first two fragments of the list as special cases. They get initialized the maximum distances apart along the original impactor distance vector. - ! This is done because in a regular disruption, the first body is the largest, the second the second largest, and the rest are smaller equal-mass fragments. - - call random_number(x_frag(:,3:nfrag)) - loverlap(:) = .true. - do while (any(loverlap(3:nfrag))) - x_frag(:, 1) = x(:, 1) - xcom(:) - x_frag(:, 2) = x(:, 2) - xcom(:) - r_max = r_max + 0.1_DP * rad - do i = 3, nfrag - if (loverlap(i)) then - call random_number(x_frag(:,i)) - x_frag(:, i) = 2 * (x_frag(:, i) - 0.5_DP) * r_max - end if - end do - loverlap(:) = .false. - do j = 1, nfrag - do i = j + 1, nfrag - dis = norm2(x_frag(:,j) - x_frag(:,i)) - loverlap(i) = loverlap(i) .or. (dis <= (rad_frag(i) + rad_frag(j))) - end do - end do - end do - call shift_vector_to_origin(m_frag, x_frag) - call define_coordinate_system() - - do i = 1, nfrag - xb_frag(:,i) = x_frag(:,i) + xcom(:) - end do - - xcom(:) = 0.0_DP - do i = 1, nfrag - xcom(:) = xcom(:) + m_frag(i) * xb_frag(:,i) - end do - xcom(:) = xcom(:) / mtot - - return - end subroutine set_fragment_position_vectors - - - subroutine set_fragment_spin(lerr) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Sets the spins of a collection of fragments such that they conserve angular momentum without blowing the fragment kinetic energy budget. - !! - !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. - implicit none - ! Arguments - logical, intent(out) :: lerr - ! Internals - real(DP), dimension(NDIM) :: L_remainder, rot_L, rot_ke - integer(I4B) :: i - - lerr = .false. - - ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest - rot_frag(:,1:2) = rot(:, :) - rot_frag(:,3:nfrag) = 0.0_DP - call calculate_fragment_ang_mtm() - L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) - - ke_frag_spin = 0.0_DP - do i = 1, nfrag - ! Convert a fraction (f_spin) of either the remaining angular momentum or kinetic energy budget into spin, whichever gives the smaller rotation so as not to blow any budgets - rot_ke(:) = sqrt(2 * f_spin * ke_frag_budget / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i))) * L_remainder(:) / norm2(L_remainder(:)) - rot_L(:) = f_spin * L_remainder(:) / (nfrag * m_frag(i) * rad_frag(i)**2 * Ip_frag(3, i)) - if (norm2(rot_ke) < norm2(rot_L)) then - rot_frag(:,i) = rot_frag(:, i) + rot_ke(:) - else - rot_frag(:, i) = rot_frag(:, i) + rot_L(:) - end if - ke_frag_spin = ke_frag_spin + m_frag(i) * Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) - end do - ke_frag_spin = 0.5_DP * ke_frag_spin - - lerr = ((ke_frag_budget - ke_frag_spin - ke_frag_orbit) < 0.0_DP) - - return - end subroutine set_fragment_spin - - - subroutine set_fragment_tan_vel(lerr) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Adjusts the tangential velocities and spins of a collection of fragments such that they conserve angular momentum without blowing the fragment kinetic energy budget. - !! This procedure works in several stages, with a goal to solve the angular and linear momentum constraints on the fragments, while still leaving a positive balance of - !! our fragment kinetic energy (ke_frag_budget) that we can put into the radial velocity distribution. - !! - !! The first thing we'll try to do is solve for the tangential velocities of the first 6 fragments, using angular and linear momentum as constraints and an initial - !! tangential velocity distribution for the remaining bodies (if there are any) that distributes their angular momentum equally between them. - !! If that doesn't work and we blow our kinetic energy budget, we will attempt to find a tangential velocity distribution that minimizes the kinetic energy while - !! conserving momentum. - !! - !! A failure will trigger a restructuring of the fragments so we will try new values of the radial position distribution. - implicit none - ! Arguments - logical, intent(out) :: lerr - ! Internals - integer(I4B) :: i - real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. - real(DP), parameter :: TOL_INIT = 1e-14_DP - integer(I4B), parameter :: MAXLOOP = 10 - real(DP) :: tol - real(DP), dimension(:), allocatable :: v_t_initial - real(DP), dimension(nfrag) :: kefrag - type(lambda_obj) :: spinfunc - type(lambda_obj_err) :: objective_function - real(DP), dimension(NDIM) :: Li, L_remainder - - lerr = .false. - - ! write(*,*) '***************************************************' - ! write(*,*) 'Original dis : ',norm2(x(:,2) - x(:,1)) - ! write(*,*) 'r_max : ',r_max - ! write(*,*) 'f_spin : ',f_spin - ! write(*,*) '***************************************************' - ! write(*,*) 'Energy balance so far: ' - ! write(*,*) 'ke_frag_budget : ',ke_frag_budget - ! write(*,*) 'ke_orbit_before: ',ke_orbit_before - ! write(*,*) 'ke_orbit_after : ',ke_orbit_after - ! write(*,*) 'ke_spin_before : ',ke_spin_before - ! write(*,*) 'ke_spin_after : ',ke_spin_after - ! write(*,*) 'pe_before : ',pe_before - ! write(*,*) 'pe_after : ',pe_after - ! write(*,*) 'Qloss : ',Qloss - ! write(*,*) '***************************************************' - - allocate(v_t_initial, mold=v_t_mag) - v_t_initial(:) = 0.0_DP - v_frag(:,:) = 0.0_DP - - ! Next we will solve for the tangential component of the velocities that both conserves linear momentum and uses the remaining angular momentum not used in spin. - ! This will be done using a linear solver that solves for the tangential velocities of the first 6 fragments, constrained by the linear and angular momentum vectors, - ! which is embedded in a non-linear minimizer that will adjust the tangential velocities of the remaining i>6 fragments to minimize kinetic energy for a given momentum solution - ! The initial conditions fed to the minimizer for the fragments will be the remaining angular momentum distributed between the fragments. - call calculate_fragment_ang_mtm() - call define_coordinate_system() ! Make sure that the tangential velocity components are defined properly - L_remainder(:) = L_frag_budget(:) - L_frag_spin(:) - do i = 1, nfrag - v_t_initial(i) = norm2(L_remainder(:)) / ((nfrag - i + 1) * m_frag(i) * norm2(x_frag(:,i))) - Li(:) = m_frag(i) * (x_frag(:,i) .cross. (v_t_initial(i) * v_t_unit(:, i))) - L_remainder(:) = L_remainder(:) - Li(:) - end do - - ! Find the local kinetic energy minimum for the system that conserves linear and angular momentum - objective_function = lambda_obj(tangential_objective_function, lerr) - - tol = TOL_INIT - do while(tol < TOL_MIN) - v_t_mag(7:nfrag) = util_minimize_bfgs(objective_function, nfrag-6, v_t_initial(7:nfrag), tol, MAXLOOP, lerr) - ! Now that the KE-minimized values of the i>6 fragments are found, calculate the momentum-conserving solution for tangential velociteis - v_t_initial(7:nfrag) = v_t_mag(7:nfrag) - if (.not.lerr) exit - tol = tol * 2_DP ! Keep increasing the tolerance until we converge on a solution - end do - v_t_mag(1:nfrag) = solve_fragment_tan_vel(v_t_mag_input=v_t_initial(7:nfrag), lerr=lerr) - - ! Perform one final shift of the radial velocity vectors to align with the center of mass of the collisional system (the origin) - vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) - do concurrent (i = 1:nfrag) - v_frag(:,i) = vb_frag(:,i) - vcom(:) - end do - - ! Now do a kinetic energy budget check to make sure we are still within the budget. - kefrag = 0.0_DP - do concurrent(i = 1:nfrag) - kefrag(i) = m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) - end do - ke_frag_orbit = 0.5_DP * sum(kefrag(:)) - - ! If we are over the energy budget, flag this as a failure so we can try again - lerr = ((ke_frag_budget - ke_frag_spin - ke_frag_orbit) < 0.0_DP) - ! write(*,*) 'Tangential' - ! write(*,*) 'Failure? ',lerr - ! call calculate_fragment_ang_mtm() - ! write(*,*) '|L_remainder| : ',.mag.(L_frag_budget(:) - L_frag_tot(:)) / Lmag_before - ! write(*,*) 'ke_frag_budget: ',ke_frag_budget - ! write(*,*) 'ke_frag_spin : ',ke_frag_spin - ! write(*,*) 'ke_tangential : ',ke_frag_orbit - ! write(*,*) 'ke_radial : ',ke_frag_budget - ke_frag_spin - ke_frag_orbit - - return - end subroutine set_fragment_tan_vel - - - function tangential_objective_function(v_t_mag_input, lerr) result(fval) - !! Author: David A. Minton - !! - !! Objective function for evaluating how close our fragment velocities get to minimizing KE error from our required value - implicit none - ! Arguments - real(DP), dimension(:), intent(in) :: v_t_mag_input !! Unknown tangential component of velocity vector set previously by angular momentum constraint - logical, intent(out) :: lerr !! Error flag - ! Result - real(DP) :: fval - ! Internals - integer(I4B) :: i - real(DP), dimension(NDIM,nfrag) :: v_shift - real(DP), dimension(nfrag) :: v_t_new, kearr - real(DP) :: keo - - lerr = .false. - - v_t_new(:) = solve_fragment_tan_vel(v_t_mag_input=v_t_mag_input(:), lerr=lerr) - v_shift(:,:) = vmag_to_vb(v_r_mag, v_r_unit, v_t_new, v_t_unit, m_frag, vcom) - - kearr = 0.0_DP - do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * dot_product(v_shift(:, i), v_shift(:, i)) - end do - keo = 0.5_DP * sum(kearr(:)) - fval = keo - lerr = .false. - - return - end function tangential_objective_function - - - function solve_fragment_tan_vel(lerr, v_t_mag_input) result(v_t_mag_output) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Adjusts the positions, velocities, and spins of a collection of fragments such that they conserve angular momentum - implicit none - ! Arguments - logical, intent(out) :: lerr !! Error flag - real(DP), dimension(:), optional, intent(in) :: v_t_mag_input !! Unknown tangential velocities for fragments 7:nfrag - ! Internals - integer(I4B) :: i - ! Result - real(DP), dimension(:), allocatable :: v_t_mag_output - - real(DP), dimension(2 * NDIM, 2 * NDIM) :: A ! LHS of linear equation used to solve for momentum constraint in Gauss elimination code - real(DP), dimension(2 * NDIM) :: b ! RHS of linear equation used to solve for momentum constraint in Gauss elimination code - real(DP), dimension(NDIM) :: L_lin_others, L_orb_others, L, vtmp - - lerr = .false. - ! We have 6 constraint equations (2 vector constraints in 3 dimensions each) - ! The first 3 are that the linear momentum of the fragments is zero with respect to the collisional barycenter - ! The second 3 are that the sum of the angular momentum of the fragments is conserved from the pre-impact state - L_lin_others(:) = 0.0_DP - L_orb_others(:) = 0.0_DP - do i = 1, nfrag - if (i <= 2 * NDIM) then ! The tangential velocities of the first set of bodies will be the unknowns we will solve for to satisfy the constraints - A(1:3, i) = m_frag(i) * v_t_unit(:, i) - A(4:6, i) = m_frag(i) * rmag(i) * (v_r_unit(:, i) .cross. v_t_unit(:, i)) - else if (present(v_t_mag_input)) then - vtmp(:) = v_t_mag_input(i - 6) * v_t_unit(:, i) - L_lin_others(:) = L_lin_others(:) + m_frag(i) * vtmp(:) - L(:) = m_frag(i) * (x_frag(:, i) .cross. vtmp(:)) - L_orb_others(:) = L_orb_others(:) + L(:) - end if - end do - b(1:3) = -L_lin_others(:) - b(4:6) = L_frag_budget(:) - L_frag_spin(:) - L_orb_others(:) - allocate(v_t_mag_output(nfrag)) - v_t_mag_output(1:6) = util_solve_linear_system(A, b, 6, lerr) - if (present(v_t_mag_input)) v_t_mag_output(7:nfrag) = v_t_mag_input(:) - - return - end function solve_fragment_tan_vel - - - subroutine set_fragment_radial_velocities(lerr) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! - !! Adjust the fragment velocities to set the fragment orbital kinetic energy. This will minimize the difference between the fragment kinetic energy and the energy budget - implicit none - ! Arguments - logical, intent(out) :: lerr - ! Internals - real(DP), parameter :: TOL_MIN = Etol ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy - real(DP), parameter :: TOL_INIT = 1e-14_DP - integer(I4B), parameter :: MAXLOOP = 100 - real(DP) :: ke_radial, tol - integer(I4B) :: i, j - real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma - real(DP), dimension(:,:), allocatable :: v_r - type(lambda_obj) :: objective_function - - ! Set the "target" ke for the radial component - ke_radial = ke_frag_budget - ke_frag_spin - ke_frag_orbit - - allocate(v_r_initial, source=v_r_mag) - ! Initialize radial velocity magnitudes with a random value that is approximately 10% of that found by distributing the kinetic energy equally - allocate(v_r_sigma, source=v_r_mag) - call random_number(v_r_sigma(1:nfrag)) - v_r_sigma(1:nfrag) = sqrt(1.0_DP + 2 * (v_r_sigma(1:nfrag) - 0.5_DP) * 1e-4_DP) - v_r_initial(1:nfrag) = v_r_sigma(1:nfrag) * sqrt(abs(2 * ke_radial) / (m_frag(1:nfrag) * nfrag)) - - ! Initialize the lambda function using a structure constructor that calls the init method - ! Minimize the ke objective function using the BFGS optimizer - objective_function = lambda_obj(radial_objective_function) - tol = TOL_INIT - do while(tol < TOL_MIN) - v_r_mag = util_minimize_bfgs(objective_function, nfrag, v_r_initial, tol, MAXLOOP, lerr) - if (.not.lerr) exit - tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution - v_r_initial(:) = v_r_mag(:) - end do - - ! Shift the radial velocity vectors to align with the center of mass of the collisional system (the origin) - ke_frag_orbit = 0.0_DP - vb_frag(:,1:nfrag) = vmag_to_vb(v_r_mag(1:nfrag), v_r_unit(:,1:nfrag), v_t_mag(1:nfrag), v_t_unit(:,1:nfrag), m_frag(1:nfrag), vcom(:)) - do i = 1, nfrag - v_frag(:, i) = vb_frag(:, i) - vcom(:) - ke_frag_orbit = ke_frag_orbit + m_frag(i) * dot_product(vb_frag(:, i), vb_frag(:, i)) - end do - ke_frag_orbit = 0.5_DP * ke_frag_orbit - - ! write(*,*) 'Radial' - ! write(*,*) 'Failure? ',lerr - ! write(*,*) 'ke_frag_budget: ',ke_frag_budget - ! write(*,*) 'ke_frag_spin : ',ke_frag_spin - ! write(*,*) 'ke_frag_orbit : ',ke_frag_orbit - ! write(*,*) 'ke_remainder : ',ke_frag_budget - (ke_frag_orbit + ke_frag_spin) - lerr = .false. - - return - end subroutine set_fragment_radial_velocities - - - function radial_objective_function(v_r_mag_input) result(fval) - !! Author: David A. Minton - !! - !! Objective function for evaluating how close our fragment velocities get to minimizing KE error from our required value - implicit none - ! Arguments - real(DP), dimension(:), intent(in) :: v_r_mag_input !! Unknown radial component of fragment velocity vector - ! Result - real(DP) :: fval !! The objective function result, which is the square of the difference between the calculated fragment kinetic energy and our target - !! Minimizing this brings us closer to our objective - ! Internals - integer(I4B) :: i - real(DP), dimension(:,:), allocatable :: v_shift - real(DP), dimension(nfrag) :: kearr - real(DP) :: keo, ke_radial - - allocate(v_shift, mold=vb_frag) - v_shift(:,:) = vmag_to_vb(v_r_mag_input, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) - do concurrent(i = 1:nfrag) - kearr(i) = m_frag(i) * (Ip_frag(3, i) * rad_frag(i)**2 * dot_product(rot_frag(:, i), rot_frag(:, i)) + dot_product(v_shift(:, i), v_shift(:, i))) - end do - keo = 2 * ke_frag_budget - sum(kearr(:)) - ke_radial = ke_frag_budget - ke_frag_orbit - ke_frag_spin - ! The following ensures that fval = 0 is a local minimum, which is what the BFGS method is searching for - fval = (keo / (2 * ke_radial))**2 - - return - end function radial_objective_function - - - function vmag_to_vb(v_r_mag, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) result(vb) - !! Author: David A. Minton - !! - !! Converts radial and tangential velocity magnitudes into barycentric velocity - implicit none - ! Arguments - real(DP), dimension(:), intent(in) :: v_r_mag !! Unknown radial component of fragment velocity vector - real(DP), dimension(:), intent(in) :: v_t_mag !! Tangential component of velocity vector set previously by angular momentum constraint - real(DP), dimension(:,:), intent(in) :: v_r_unit, v_t_unit !! Radial and tangential unit vectors for each fragment - real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses - real(DP), dimension(:), intent(in) :: vcom !! Barycentric velocity of collisional system center of mass - ! Result - real(DP), dimension(:,:), allocatable :: vb - ! Internals - integer(I4B) :: i - - allocate(vb, mold=v_r_unit) - ! Make sure the velocity magnitude stays positive - do i = 1, nfrag - vb(:,i) = abs(v_r_mag(i)) * v_r_unit(:, i) - end do - ! In order to keep satisfying the kinetic energy constraint, we must shift the origin of the radial component of the velocities to the center of mass - call shift_vector_to_origin(m_frag, vb) - - do i = 1, nfrag - vb(:, i) = vb(:, i) + v_t_mag(i) * v_t_unit(:, i) + vcom(:) - end do - - return - end function vmag_to_vb - - - subroutine restructure_failed_fragments() - !! Author: David A. Minton - !! - !! We failed to find a set of positions and velocities that satisfy all the constraints, and so we will alter the fragments and try again. - implicit none - integer(I4B) :: i - real(DP), dimension(:), allocatable :: m_frag_new, rad_frag_new - real(DP), dimension(:,:), allocatable :: xb_frag_new, vb_frag_new, Ip_frag_new, rot_frag_new - real(DP) :: delta_r, delta_r_max - real(DP), parameter :: ke_avg_deficit_target = 0.0_DP - - ke_tot_deficit = ke_tot_deficit - (ke_frag_budget - ke_frag_orbit - ke_frag_spin) - ke_avg_deficit = ke_tot_deficit / try - ! Introduce a bit of noise in the radius determination so we don't just flip flop between similar failed positions - call random_number(delta_r_max) - delta_r_max = sum(radius(:)) * (1.0_DP + 2e-1_DP * (delta_r_max - 0.5_DP)) - if (try > 1) then - ! Linearly interpolate the last two failed solution ke deficits to find a new distance value to try - delta_r = (r_max_start - r_max_start_old) * (ke_avg_deficit_target - ke_avg_deficit_old) / (ke_avg_deficit - ke_avg_deficit_old) - if (abs(delta_r) > delta_r_max) delta_r = sign(delta_r_max, delta_r) - else - delta_r = delta_r_max - end if - r_max_start_old = r_max_start - r_max_start = r_max_start + delta_r ! The larger lever arm can help if the problem is in the angular momentum step - ke_avg_deficit_old = ke_avg_deficit - - if (f_spin > epsilon(1.0_DP)) then ! Try reducing the fraction in spin - f_spin = f_spin / 2 - else - f_spin = 0.0_DP - end if - - return - end subroutine restructure_failed_fragments - end subroutine fragmentation_initialize - - - module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, min_mfrag, Qloss) - !! Author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Determine the collisional regime of two colliding bodies. - !! Current version requires all values to be converted to SI units prior to calling the function - !! References: - !! Kokubo, E., Genda, H., 2010. Formation of Terrestrial Planets from Protoplanets Under a Realistic Accretion - !! Condition. ApJL 714, L21. https://doi.org/10.1088/2041-8205/714/1/L21 - !! Leinhardt, Z.M., Stewart, S.T., 2012. Collisions between Gravity-dominated Bodies. I. Outcome Regimes and Scaling - !! Laws 745, 79. https://doi.org/10.1088/0004-637X/745/1/79 - !! Mustill, A.J., Davies, M.B., Johansen, A., 2018. The dynamical evolution of transiting planetary systems including - !! a realistic collision prescription. Mon Not R Astron Soc 478, 2896–2908. https://doi.org/10.1093/mnras/sty1273 - !! Rufu, R., Aharonson, O., 2019. Impact Dynamics of Moons Within a Planetary Potential. J. Geophys. Res. Planets 124, - !! 1008–1019. https://doi.org/10.1029/2018JE005798 - !! Stewart, S.T., Leinhardt, Z.M., 2012. Collisions between Gravity-dominated Bodies. II. The Diversity of Impact - !! Outcomes during the End Stage of Planet Formation. ApJ 751, 32. https://doi.org/10.1088/0004-637X/751/1/32 - !! - implicit none - ! Arguments - integer(I4B), intent(out) :: regime - real(DP), intent(out) :: Mlr, Mslr - real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, min_mfrag - real(DP), dimension(:), intent(in) :: xh1, xh2, vb1, vb2 - real(DP), intent(out) :: Qloss !! The residual energy after the collision - ! Constants - integer(I4B), parameter :: N1 = 1 !number of objects with mass equal to the largest remnant from LS12 - integer(I4B), parameter :: N2 = 2 !number of objects with mass larger than second largest remnant from LS12 - real(DP), parameter :: DENSITY1 = 1000.0_DP !standard density parameter from LS12 [kg/m3] - real(DP), parameter :: MU_BAR = 0.37_DP !0.385#0.37#0.3333# 3.978 # 1/3 material parameter for hydrodynamic planet-size bodies (LS12) - real(DP), parameter :: BETA = 2.85_DP !slope of sfd for remnants from LS12 2.85 - real(DP), parameter :: C1 = 2.43_DP !! Kokubo & Genda (2010) eq. (3) - real(DP), parameter :: C2 = -0.0408_DP !! Kokubo & Genda (2010) eq. (3) - real(DP), parameter :: C3 = 1.86_DP !! Kokubo & Genda (2010) eq. (3) - real(DP), parameter :: C4 = 1.08_DP !! Kokubo & Genda (2010) eq. (3) - real(DP), parameter :: CRUFU = 2.0_DP - 3 * MU_BAR ! central potential variable from Rufu and Aharonson (2019) - real(DP), parameter :: SUPERCAT_QRATIO = 1.8_DP ! See Section 4.1 of LS12 - ! Internals - real(DP) :: a1, alpha, aint, b, bcrit, c_star, egy, zeta, l, lint, mu, phi, theta - real(DP) :: Qr, Qrd_pstar, Qr_erosion, Qr_supercat - real(DP) :: Vhr, Verosion, Vescp, Vhill, Vimp, Vsupercat - real(DP) :: Mint, Mtot - real(DP) :: Rp, rhill - real(DP) :: Mresidual - real(DP) :: U_binding - - Vimp = norm2(vb2(:) - vb1(:)) - b = calc_b(xh2, vb2, xh1, vb1) - l = (rad1 + rad2) * (1 - b) - egy = 0.5_DP * dot_product(vb1, vb1) - GC * Mcb / norm2(xh1) - a1 = - GC * Mcb / 2.0_DP / egy - Mtot = m1 + m2 - mu = (m1 * m2) / Mtot - if (l < 2 * rad2) then - !calculate Mint - phi = 2 * acos((l - rad2) / rad2) - aint = rad2**2 * (PI - (phi - sin(phi)) / 2.0_DP) - lint = 2 * sqrt(rad2**2 - (rad2 - l / 2.0_DP) ** 2) - Mint = aint * lint ![kg] - alpha = (l**2) * (3 * rad2 - l) / (4 * (rad2**3)) - else - alpha = 1.0_DP - Mint = m2 - end if - Rp = (3 * (m1 / den1 + alpha * m2 / den2) / (4 * PI))**(1.0_DP/3.0_DP) ! (Mustill et al. 2018) - c_star = calc_c_star(Rp) - !calculate Vescp - Vescp = sqrt(2 * GC * Mtot / Rp) !Mustill et al. 2018 eq 6 - !calculate rhill - rhill = a1 * (m1 / 3.0_DP / (Mcb + m1))**(1.0_DP/3.0_DP) - !calculate Vhill - if ((rad2 + rad1) < rhill) then - Vhill = sqrt(2 * GC * m1 * ((rhill**2 - rhill * (rad1 + rad2)) / & - (rhill**2 - 0.5_DP * (rad1 + rad2)**2)) / (rad1 + rad2)) - else - Vhill = Vescp - end if - !calculate Qr_pstar - Qrd_pstar = calc_Qrd_pstar(m1, m2, alpha, c_star) * (Vhill / Vescp)**CRUFU !Rufu and Aharaonson eq (3) - !calculate Verosion - Qr_erosion = 2 * (1.0_DP - m1 / Mtot) * Qrd_pstar - Verosion = (2 * Qr_erosion * Mtot / mu)** (1.0_DP / 2.0_DP) - Qr = mu*(Vimp**2) / Mtot / 2.0_DP - !calculate mass largest remnant Mlr - Mlr = (1.0_DP - Qr / Qrd_pstar / 2.0_DP) * Mtot ! [kg] # LS12 eq (5) - !calculate Vsupercat - Qr_supercat = SUPERCAT_QRATIO * Qrd_pstar ! See LS12 Section 4.1 - Vsupercat = sqrt(2 * Qr_supercat * Mtot / mu) - !calculate Vhr - zeta = (m1 - m2) / Mtot - theta = 1.0_DP - b - Vhr = Vescp * (C1 * zeta**2 * theta**(2.5_DP) + C2 * zeta**2 + C3 * theta**(2.5_DP) + C4) ! Kokubo & Genda (2010) eq. (3) - bcrit = rad1 / (rad1 + rad2) - Qloss = 0.0_DP - U_binding = (3.0_DP * Mtot) / (5.0_DP * Rp) ! LS12 eq. 27 - - if ((m1 < min_mfrag).or.(m2 < min_mfrag)) then - regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime - Mlr = Mtot - Mslr = 0.0_DP - Qloss = 0.0_DP - write(*,*) "FORCE MERGE" - else - if( Vimp < Vescp) then - regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime - Mlr = Mtot - Mslr = 0.0_DP - Qloss = 0.0_DP - else if (Vimp < Verosion) then - if (b < bcrit) then - regime = COLLRESOLVE_REGIME_MERGE !partial accretion regime" - Mlr = Mtot - Mslr = 0.0_DP - Qloss = 0.0_DP - else if ((b > bcrit) .and. (Vimp < Vhr)) then - regime = COLLRESOLVE_REGIME_MERGE ! graze and merge - Mlr = Mtot - Mslr = 0.0_DP - Qloss = 0.0_DP - else - Mlr = m1 - Mslr = calc_Qrd_rev(m2, m1, Mint, den1, den2, Vimp, c_star) - regime = COLLRESOLVE_REGIME_HIT_AND_RUN !hit and run - Qloss = (c_star + 1.0_DP) * U_binding ! Qr - end if - else if (Vimp > Verosion .and. Vimp < Vsupercat) then - if (m2 < 0.001_DP * m1) then - regime = COLLRESOLVE_REGIME_MERGE !cratering regime" - Mlr = Mtot - Mslr = 0.0_DP - Qloss = 0.0_DP - else - Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) ! LS12 eq (37) - regime = COLLRESOLVE_REGIME_DISRUPTION !disruption - Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_erosion - end if - else if (Vimp > Vsupercat) then - Mlr = Mtot * 0.1_DP * (Qr / (Qrd_pstar * SUPERCAT_QRATIO))**(-1.5_DP) !LS12 eq (44) - Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) !LS12 eq (37) - regime = COLLRESOLVE_REGIME_SUPERCATASTROPHIC ! supercatastrophic - Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_supercat - else - write(*,*) "Error no regime found in symba_regime" - end if - end if - Mresidual = Mtot - Mlr - Mslr - if (Mresidual < 0.0_DP) then ! prevents final masses from going negative - Mlr = Mlr + Mresidual - end if - - return - - ! Internal functions - contains - function calc_Qrd_pstar(Mtarg, Mp, alpha, c_star) result(Qrd_pstar) - !! author: Jennifer L.L. Pouplin and Carlisle A. Wishard - !! - !! Calculates the corrected Q* for oblique impacts. See Eq. (15) of LS12. - !! Reference: - !! Leinhardt, Z.M., Stewart, S.T., 2012. Collisions between Gravity-dominated Bodies. I. Outcome Regimes and Scaling - !! Laws 745, 79. https://doi.org/10.1088/0004-637X/745/1/79 - !! - implicit none - ! Arguments - real(DP),intent(in) :: Mtarg, Mp, alpha, c_star - ! Result - real(DP) :: Qrd_pstar - ! Internals - real(DP) :: Qrd_star1, mu_alpha, mu, Qrd_star - - ! calc mu, mu_alpha - mu = (Mtarg * Mp) / (Mtarg + Mp) ! [kg] - mu_alpha = (Mtarg * alpha * Mp) / (Mtarg + alpha * Mp) ! [kg] - ! calc Qrd_star1 - Qrd_star1 = (c_star * 4 * PI * DENSITY1 * GC * Rp**2) / 5.0_DP - ! calc Qrd_star - Qrd_star = Qrd_star1 * (((Mp / Mtarg + 1.0_DP)**2) / (4 * Mp / Mtarg))**(2.0_DP / (3.0_DP * MU_BAR) - 1.0_DP) !(eq 23) - ! calc Qrd_pstar, v_pstar - Qrd_pstar = ((mu / mu_alpha)**(2.0_DP - 3.0_DP * MU_BAR / 2.0_DP)) * Qrd_star ! (eq 15) - - return - end function calc_Qrd_pstar - - function calc_Qrd_rev(Mp, Mtarg, Mint, den1, den2, Vimp, c_star) result(Mslr) - !! author: Jennifer L.L. Pouplin and Carlisle A. Wishard - !! - !! Calculates mass of second largest fragment. - !! - implicit none - ! Arguments - real(DP),intent(in) :: Mp, Mtarg, Mint, den1, den2, Vimp, c_star - ! Result - real(DP) :: Mslr - ! Internals - real(DP) :: mtot_rev, mu_rev, gamma_rev, Qrd_star1, Qrd_star, mu_alpha_rev - real(DP) :: Qrd_pstar, Rc1, Qr_rev, Qrd_pstar_rev, Qr_supercat_rev - - ! calc Mslr, Rc1, mu, gammalr - mtot_rev = Mint + Mp - Rc1 = (3 * (Mint / den1 + Mp / den2) / (4 * PI))**(1.0_DP/3.0_DP) ! [m] Mustill et al 2018 - mu_rev = (Mint * Mp) / mtot_rev ! [kg] eq 49 LS12 - mu_alpha_rev = (Mtarg * alpha * Mp) / (Mtarg + alpha * Mp) - gamma_rev = Mint / Mp ! eq 50 LS12 - !calc Qr_rev - Qr_rev = mu_rev * (Vimp**2) / (2 * mtot_rev) - ! calc Qrd_star1, v_star1 - Qrd_star1 = (c_star * 4 * PI * mtot_rev * GC ) / Rc1 / 5.0_DP - ! calc Qrd_pstar_rev - Qrd_star = Qrd_star1 * (((gamma_rev + 1.0_DP)**2) / (4 * gamma_rev)) ** (2.0_DP / (3.0_DP * MU_BAR) - 1.0_DP) !(eq 52) - Qrd_pstar = Qrd_star * ((mu_rev / mu_alpha_rev)**(2.0_DP - 3.0_DP * MU_BAR / 2.0_DP)) - Qrd_pstar_rev = Qrd_pstar * (Vhill / Vescp)**CRUFU !Rufu and Aharaonson eq (3) - !calc Qr_supercat_rev - Qr_supercat_rev = 1.8_DP * Qrd_pstar_rev - if (Qr_rev > Qr_supercat_rev ) then - Mslr = mtot_rev * (0.1_DP * ((Qr_rev / (Qrd_pstar_rev * 1.8_DP))**(-1.5_DP))) !eq (44) - else if ( Qr_rev < Qrd_pstar_rev ) then - Mslr = Mp - else - Mslr = (1.0_DP - Qr_rev / Qrd_pstar_rev / 2.0_DP) * (mtot_rev) ! [kg] #(eq 5) - end if - - if ( Mslr > Mp ) Mslr = Mp !check conservation of mass - - return - end function calc_Qrd_rev - - function calc_b(proj_pos, proj_vel, targ_pos, targ_vel) result(sintheta) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Calculates the impact factor b = sin(theta), where theta is the angle between the relative velocity - !! and distance vectors of the target and projectile bodies. See Fig. 2 of Leinhardt and Stewart (2012) - !! - implicit none - !! Arguments - real(DP), dimension(:), intent(in) :: proj_pos, proj_vel, targ_pos, targ_vel - !! Result - real(DP) :: sintheta - !! Internals - real(DP), dimension(NDIM) :: imp_vel, distance, x_cross_v - - imp_vel(:) = proj_vel(:) - targ_vel(:) - distance(:) = proj_pos(:) - targ_pos(:) - x_cross_v(:) = distance(:) .cross. imp_vel(:) - sintheta = norm2(x_cross_v(:)) / norm2(distance(:)) / norm2(imp_vel(:)) - return - end function calc_b - - function calc_c_star(Rc1) result(c_star) - !! author: David A. Minton - !! - !! Calculates c_star as a function of impact equivalent radius. It inteRpolates between 5 for ~1 km sized bodies to - !! 1.8 for ~10000 km sized bodies. See LS12 Fig. 4 for details. - !! - implicit none - !! Arguments - real(DP), intent(in) :: Rc1 - !! Result - real(DP) :: c_star - !! Internals - real(DP), parameter :: loR = 1.0e3_DP ! Lower bound of inteRpolation size (m) - real(DP), parameter :: hiR = 1.0e7_DP ! Upper bound of inteRpolation size (m) - real(DP), parameter :: loval = 5.0_DP ! Value of C* at lower bound - real(DP), parameter :: hival = 1.9_DP ! Value of C* at upper bound - - if (Rc1 < loR) then - c_star = loval - else if (Rc1 < hiR) then - c_star = loval + (hival - loval) * log(Rc1 / loR) / log(hiR /loR) - else - c_star = hival - end if - return - end function calc_c_star - - end subroutine fragmentation_regime - -end submodule s_fragmentation \ No newline at end of file diff --git a/src/helio/helio_setup.f90 b/src/helio/helio_setup.f90 index 2a8c24019..cf5f57d8a 100644 --- a/src/helio/helio_setup.f90 +++ b/src/helio/helio_setup.f90 @@ -15,6 +15,8 @@ module subroutine helio_setup_initialize_system(self, param) call whm_setup_initialize_system(self, param) call self%pl%h2b(self%cb) call self%tp%h2b(self%cb) + call self%pl%sort("mass", ascending=.false.) + call self%pl%index(param) return end subroutine helio_setup_initialize_system diff --git a/src/helio/helio_util.f90 b/src/helio/helio_util.f90 deleted file mode 100644 index 3b5ee6116..000000000 --- a/src/helio/helio_util.f90 +++ /dev/null @@ -1,21 +0,0 @@ -submodule(helio_classes) s_helio_eucl - use swiftest -contains - - module subroutine helio_util_index_eucl_plpl(self, param) - !! author: David A. Minton - !! - !! Wrapper for the indexing method for WHM massive bodies. Sorts the massive bodies by heliocentric distance and then flattens the pl-pl upper triangular matrix - implicit none - ! Arguments - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - - call self%sort("mass", ascending=.false.) - call util_index_eucl_plpl(self, param) - - return - end subroutine helio_util_index_eucl_plpl - -end submodule s_helio_eucl - diff --git a/src/modules/fraggle_classes.f90 b/src/modules/fraggle_classes.f90 new file mode 100644 index 000000000..d6ea0ac32 --- /dev/null +++ b/src/modules/fraggle_classes.f90 @@ -0,0 +1,250 @@ +module fraggle_classes + !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott + !! + !! Definition of classes and methods specific to Fraggel: The Fragment Generation Model + use swiftest_globals + use swiftest_classes, only : swiftest_parameters, swiftest_nbody_system, swiftest_cb, swiftest_pl + implicit none + public + + integer(I4B), parameter :: FRAGGLE_NMASS_DIST = 3 !! Number of mass bins returned by the regime calculation (largest fragment, second largest, and remainder) + !******************************************************************************************************************************** + ! fraggle_colliders class definitions and method interfaces + !******************************************************************************************************************************* + !> Class definition for the variables that describe the bodies involved in the collision + type :: fraggle_colliders + integer(I4B) :: ncoll !! Number of bodies involved in the collision + integer(I4B), dimension(:), allocatable :: idx !! Index of bodies involved in the collision + real(DP), dimension(NDIM,2) :: xb !! Two-body equivalent position vectors of the collider bodies prior to collision + real(DP), dimension(NDIM,2) :: vb !! Two-body equivalent velocity vectors of the collider bodies prior to collision + real(DP), dimension(NDIM,2) :: rot !! Two-body equivalent principal axes moments of inertia the collider bodies prior to collision + real(DP), dimension(NDIM,2) :: L_spin !! Two-body equivalent spin angular momentum vectors of the collider bodies prior to collision + real(DP), dimension(NDIM,2) :: L_orbit !! Two-body equivalent orbital angular momentum vectors of the collider bodies prior to collision + real(DP), dimension(NDIM,2) :: Ip !! Two-body equivalent principal axes moments of inertia the collider bodies prior to collision + real(DP), dimension(2) :: mass !! Two-body equivalent mass of the collider bodies prior to the collision + real(DP), dimension(2) :: radius !! Two-body equivalent radii of the collider bodies prior to the collision + contains + procedure :: regime => fraggle_regime_colliders !! Determine which fragmentation regime the set of colliders will be + end type fraggle_colliders + + !******************************************************************************************************************************** + ! fraggle_fragments class definitions and method interfaces + !******************************************************************************************************************************* + !> Class definition for the variables that describe a collection of fragments by Fraggle barycentric coordinates + type, extends(swiftest_pl) :: fraggle_fragments + real(DP) :: mtot !! Total mass of fragments + real(DP) :: Qloss !! Energy lost during the collision + real(DP), dimension(FRAGGLE_NMASS_DIST) :: mass_dist !! Distribution of fragment mass determined by the regime calculation (largest fragment, second largest, and remainder) + integer(I4B) :: regime !! Collresolve regime code for this collision + + ! Values in a coordinate frame centered on the collider barycenter and collisional system unit vectors (these are used internally by the fragment generation subroutine) + real(DP), dimension(NDIM) :: xbcom !! Center of mass position vector of the collider system in system barycentric coordinates + real(DP), dimension(NDIM) :: vbcom !! Velocity vector of the center of mass of the collider system in system barycentric coordinates + real(DP), dimension(NDIM) :: x_coll_unit !! x-direction unit vector of collisional system + real(DP), dimension(NDIM) :: y_coll_unit !! y-direction unit vector of collisional system + real(DP), dimension(NDIM) :: z_coll_unit !! z-direction unit vector of collisional system + real(DP), dimension(:,:), allocatable :: x_coll !! Array of fragment position vectors in the collisional coordinate frame + real(DP), dimension(:,:), allocatable :: v_coll !! Array of fragment velocity vectors in the collisional coordinate frame + real(DP), dimension(:,:), allocatable :: v_r_unit !! Array of radial direction unit vectors of individual fragments in the collisional coordinate frame + real(DP), dimension(:,:), allocatable :: v_t_unit !! Array of tangential direction unit vectors of individual fragments in the collisional coordinate frame + real(DP), dimension(:,:), allocatable :: v_n_unit !! Array of normal direction unit vectors of individual fragments in the collisional coordinate frame + real(DP), dimension(:), allocatable :: rmag !! Array of radial distance magnitudes of individual fragments in the collisional coordinate frame + real(DP), dimension(:), allocatable :: rotmag !! Array of rotation magnitudes of individual fragments + real(DP), dimension(:), allocatable :: v_r_mag !! Array of radial direction velocity magnitudes of individual fragments + real(DP), dimension(:), allocatable :: v_t_mag !! Array of tangential direction velocity magnitudes of individual fragments + + ! Energy and momentum book-keeping variables that characterize the whole system of fragments + real(DP) :: ke_orbit !! Current orbital kinetic energy of the system of fragments in the collisional frame + real(DP) :: ke_spin !! Current spin kinetic energy of the system of fragments in the collisional frame + real(DP), dimension(NDIM) :: L_orbit !! Current orbital angular momentum of the system of fragments in the collisional frame + real(DP), dimension(NDIM) :: L_spin !! Current spin angular momentum of the system of fragments in the collisional frame + real(DP) :: ke_budget !! Total kinetic energy budget for the system of fragmens in the collisional frame + real(DP), dimension(NDIM) :: L_budget !! Total angular momentum budget for the system of fragmens in the collisional frame + + ! For the following variables, "before" refers to the *entire* n-body system in its pre-collisional state and "after" refers to the system in its post-collisional state + real(DP), dimension(NDIM) :: Lorbit_before, Lorbit_after !! Before/after orbital angular momentum + real(DP), dimension(NDIM) :: Lspin_before, Lspin_after !! Before/after spin angular momentum + real(DP), dimension(NDIM) :: Ltot_before, Ltot_after !! Before/after total system angular momentum + real(DP) :: ke_orbit_before, ke_orbit_after !! Before/after orbital kinetic energy + real(DP) :: ke_spin_before, ke_spin_after !! Before/after spin kinetic energy + real(DP) :: pe_before, pe_after !! Before/after potential energy + real(DP) :: Etot_before, Etot_after !! Before/after total system energy + + ! Scale factors used to scale dimensioned quantities to a more "natural" system where important quantities (like kinetic energy, momentum) are of order ~1 + real(DP) :: dscale !! Distance dimension scale factor + real(DP) :: mscale !! Mass scale factor + real(DP) :: tscale !! Time scale factor + real(DP) :: vscale !! Velocity scale factor (a convenience unit that is derived from dscale and tscale) + real(DP) :: Escale !! Energy scale factor (a convenience unit that is derived from dscale, tscale, and mscale) + real(DP) :: Lscale !! Angular momentum scale factor (a convenience unit that is derived from dscale, tscale, and mscale) + contains + procedure :: generate_fragments => fraggle_generate_fragments !! Generates a system of fragments in barycentric coordinates that conserves energy and momentum. + procedure :: accel => fraggle_placeholder_accel !! Placeholder subroutine to fulfill requirement for an accel method + procedure :: kick => fraggle_placeholder_kick !! Placeholder subroutine to fulfill requirement for a kick method + procedure :: step => fraggle_placeholder_step !! Placeholder subroutine to fulfill requirement for a step method + procedure :: set_budgets => fraggle_set_budgets_fragments !! Sets the energy and momentum budgets of the fragments based on the collider value + procedure :: set_coordinate_system => fraggle_set_coordinate_system !! Defines the collisional coordinate system, including the unit vectors of both the system and individual fragments. + procedure :: set_mass_dist => fraggle_set_mass_dist_fragments !! Sets the distribution of mass among the fragments depending on the regime type + procedure :: set_natural_scale => fraggle_set_natural_scale_factors !! Scales dimenional quantities to ~O(1) with respect to the collisional system. + procedure :: set_original_scale => fraggle_set_original_scale_factors !! Restores dimenional quantities back to the original system units + procedure :: setup => fraggle_setup_fragments !! Allocates arrays for n fragments in a Fraggle system. Passing n = 0 deallocates all arrays. + procedure :: reset => fraggle_setup_reset_fragments !! Resets all position and velocity-dependent fragment quantities in order to do a fresh calculation (does not reset mass, radius, or other values that get set prior to the call to fraggle_generate) + procedure :: get_ang_mtm => fraggle_util_ang_mtm !! Calcualtes the current angular momentum of the fragments + procedure :: get_energy_and_momentum => fraggle_util_get_energy_momentum !! Calculates total system energy in either the pre-collision outcome state (lbefore = .true.) or the post-collision outcome state (lbefore = .false.) + procedure :: restructure => fraggle_util_restructure !! Restructure the inputs after a failed attempt failed to find a set of positions and velocities that satisfy the energy and momentum constraints + end type fraggle_fragments + + interface + module subroutine fraggle_generate_fragments(self, colliders, system, param, lfailure) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object containing the two-body equivalent values of the colliding bodies + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? + end subroutine fraggle_generate_fragments + + !> The following interfaces are placeholders intended to satisfy the required abstract methods given by the parent class + module subroutine fraggle_placeholder_accel(self, system, param, t, lbeg) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current simulation time + logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step + end subroutine fraggle_placeholder_accel + + module subroutine fraggle_placeholder_kick(self, system, param, t, dt, lbeg) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system objec + class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current time + real(DP), intent(in) :: dt !! Stepsize + logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. + end subroutine fraggle_placeholder_kick + + module subroutine fraggle_placeholder_step(self, system, param, t, dt) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(inout) :: self !! Helio massive body particle object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nboody system + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + real(DP), intent(in) :: t !! Current simulation time + real(DP), intent(in) :: dt !! Stepsiz + end subroutine fraggle_placeholder_step + + module subroutine fraggle_regime_colliders(self, frag, system, param) + implicit none + class(fraggle_colliders), intent(inout) :: self !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object + class(swiftest_nbody_system), intent(in) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameter + end subroutine fraggle_regime_colliders + + module subroutine fraggle_set_budgets_fragments(self, colliders) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + end subroutine fraggle_set_budgets_fragments + + module subroutine fraggle_set_coordinate_system(self, colliders) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + end subroutine fraggle_set_coordinate_system + + module subroutine fraggle_set_mass_dist_fragments(self, colliders) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + end subroutine fraggle_set_mass_dist_fragments + + module subroutine fraggle_set_natural_scale_factors(self, colliders) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + end subroutine fraggle_set_natural_scale_factors + + module subroutine fraggle_set_original_scale_factors(self, colliders) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + end subroutine fraggle_set_original_scale_factors + + module subroutine fraggle_setup_fragments(self, n, param) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + integer(I4B), intent(in) :: n !! Number of fragments + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + end subroutine fraggle_setup_fragments + + module subroutine fraggle_setup_reset_fragments(self) + implicit none + class(fraggle_fragments), intent(inout) :: self + end subroutine fraggle_setup_reset_fragments + + module subroutine fraggle_util_add_fragments_to_system(frag, colliders, system, param) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(in) :: frag !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + end subroutine fraggle_util_add_fragments_to_system + + module subroutine fraggle_util_ang_mtm(self) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + end subroutine fraggle_util_ang_mtm + + module subroutine fraggle_util_construct_temporary_system(frag, system, param, tmpsys, tmpparam) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(in) :: frag !! Fraggle fragment system object + class(swiftest_nbody_system), intent(in) :: system !! Original swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_nbody_system), allocatable, intent(out) :: tmpsys !! Output temporary swiftest nbody system object + class(swiftest_parameters), allocatable, intent(out) :: tmpparam !! Output temporary configuration run parameters + end subroutine fraggle_util_construct_temporary_system + + module subroutine fraggle_util_get_energy_momentum(self, colliders, system, param, lbefore) + use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + logical, intent(in) :: lbefore !! Flag indicating that this the "before" state of the system, with colliders included and fragments excluded or vice versa + end subroutine fraggle_util_get_energy_momentum + + module subroutine fraggle_util_restructure(self, colliders, try, f_spin, r_max_start) + implicit none + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + integer(I4B), intent(in) :: try !! The current number of times Fraggle has tried to find a solution + real(DP), intent(inout) :: f_spin !! Fraction of energy/momentum that goes into spin. This decreases ater a failed attempt + real(DP), intent(inout) :: r_max_start !! The maximum radial distance that the position calculation starts with. This increases after a failed attempt + end subroutine fraggle_util_restructure + + module subroutine fraggle_util_shift_vector_to_origin(m_frag, vec_frag) + implicit none + real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses + real(DP), dimension(:,:), intent(inout) :: vec_frag !! Fragment positions or velocities in the center of mass frame + end subroutine + + module function fraggle_util_vmag_to_vb(v_r_mag, v_r_unit, v_t_mag, v_t_unit, m_frag, vcom) result(vb) + implicit none + real(DP), dimension(:), intent(in) :: v_r_mag !! Unknown radial component of fragment velocity vector + real(DP), dimension(:), intent(in) :: v_t_mag !! Tangential component of velocity vector set previously by angular momentum constraint + real(DP), dimension(:,:), intent(in) :: v_r_unit, v_t_unit !! Radial and tangential unit vectors for each fragment + real(DP), dimension(:), intent(in) :: m_frag !! Fragment masses + real(DP), dimension(:), intent(in) :: vcom !! Barycentric velocity of collisional system center of mass + real(DP), dimension(:,:), allocatable :: vb + end function fraggle_util_vmag_to_vb + end interface + +end module fraggle_classes \ No newline at end of file diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index dcfcdde2e..1c93bdf6b 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -2,7 +2,7 @@ module helio_classes !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! !! Definition of classes and methods specific to the Democratic Heliocentric Method - !! Adapted from David E. Kaufmann's Swifter routine: helio.f90 + !! Adapted from David E. Kaufmann's Swifter routine: module_helio.f90 use swiftest_globals use swiftest_classes, only : swiftest_cb, swiftest_pl, swiftest_tp, swiftest_nbody_system use whm_classes, only : whm_nbody_system @@ -38,7 +38,6 @@ module helio_classes contains procedure :: drift => helio_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates procedure :: lindrift => helio_drift_linear_pl !! Method for linear drift of massive bodies due to barycentric momentum of Sun - procedure :: index => helio_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: accel_gr => helio_gr_kick_getacch_pl !! Acceleration term arising from the post-Newtonian correction procedure :: gr_pos_kick => helio_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction procedure :: accel => helio_kick_getacch_pl !! Compute heliocentric accelerations of massive bodies @@ -214,12 +213,6 @@ module subroutine helio_step_tp(self, system, param, t, dt) real(DP), intent(in) :: dt !! Stepsizee end subroutine helio_step_tp - module subroutine helio_util_index_eucl_plpl(self, param) - use swiftest_classes, only : swiftest_parameters - implicit none - class(helio_pl), intent(inout) :: self !! Helio massive body object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - end subroutine helio_util_index_eucl_plpl end interface end module helio_classes diff --git a/src/modules/swiftest.f90 b/src/modules/swiftest.f90 index 61d45163c..a6daff9a7 100644 --- a/src/modules/swiftest.f90 +++ b/src/modules/swiftest.f90 @@ -10,6 +10,7 @@ module swiftest use rmvs_classes use helio_classes use symba_classes + use fraggle_classes use lambda_function !use advisor_annotate !$ use omp_lib diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 746781117..2694fcc25 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -573,31 +573,6 @@ module subroutine util_index_eucl_pltp(self, pl, param) class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine - module subroutine fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) - implicit none - class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - integer(I4B), dimension(:), intent(in) :: family !! Index of bodies involved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Two-body equivalent position, vector, spin momentum, and rotational inertia values for the collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Two-body equivalent mass and radii for the bodies in the collision - integer(I4B), intent(inout) :: nfrag !! Number of fragments to generate - real(DP), dimension(:), allocatable, intent(inout) :: m_frag, rad_frag !! Distribution of fragment mass and radii - real(DP), dimension(:,:), allocatable, intent(inout) :: Ip_frag !! Fragment rotational inertia vectors - real(DP), dimension(:,:), allocatable, intent(inout) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors - real(DP), intent(inout) :: Qloss !! Energy lost during the collision - logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? - end subroutine fragmentation_initialize - - module subroutine fragmentation_regime(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb2, den1, den2, regime, Mlr, Mslr, min_mfrag, Qloss) - implicit none - integer(I4B), intent(out) :: regime - real(DP), intent(out) :: Mlr, Mslr - real(DP), intent(in) :: Mcb, m1, m2, rad1, rad2, den1, den2, min_mfrag - real(DP), dimension(:), intent(in) :: xh1, xh2, vb1, vb2 - real(DP), intent(out) :: Qloss !! Energy lost during the collision - end subroutine fragmentation_regime - module pure subroutine gr_kick_getaccb_ns_body(self, system, param) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest generic body object @@ -1048,8 +1023,8 @@ end subroutine setup_initialize_system module subroutine setup_pl(self, n, param) implicit none - class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - integer(I4B), intent(in) :: n !! Number of particles to allocate space for + class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object + integer(I4B), intent(in) :: n !! Number of particles to allocate space for class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine setup_pl diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 75d8e0e73..b929b5040 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -1,12 +1,13 @@ module symba_classes !! author: The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott !! - !! Definition of classes and methods specific to the Democratic SyMBAcentric Method - !! Adapted from David E. Kaufmann's Swifter routine: helio.f90 + !! Definition of classes and methods specific to the SyMBA integrator + !! Adapted from David E. Kaufmann's Swifter routine: module_symba.f90 use swiftest_globals use swiftest_classes, only : swiftest_parameters, swiftest_base, swiftest_encounter, swiftest_particle_info, netcdf_parameters use helio_classes, only : helio_cb, helio_pl, helio_tp, helio_nbody_system use rmvs_classes, only : rmvs_chk_ind + use fraggle_classes, only : fraggle_colliders, fraggle_fragments implicit none public @@ -66,7 +67,7 @@ module symba_classes real(DP), dimension(:), allocatable :: atp !! semimajor axis following perihelion passage type(symba_kinship), dimension(:), allocatable :: kin !! Array of merger relationship structures that can account for multiple pairwise mergers in a single step contains - procedure :: make_family => symba_collision_make_family_pl !! When a single body is involved in more than one collision in a single step, it becomes part of a family + procedure :: make_colliders => symba_collision_make_colliders_pl !! When a single body is involved in more than one collision in a single step, it becomes part of a family procedure :: index => symba_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: discard => symba_discard_pl !! Process massive body discards procedure :: drift => symba_drift_pl !! Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level @@ -190,11 +191,11 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters end subroutine - module subroutine symba_collision_make_family_pl(self,idx) + module subroutine symba_collision_make_colliders_pl(self,idx) implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body object integer(I4B), dimension(2), intent(in) :: idx !! Array holding the indices of the two bodies involved in the collision - end subroutine symba_collision_make_family_pl + end subroutine symba_collision_make_colliders_pl module subroutine symba_collision_resolve_fragmentations(self, system, param) implicit none @@ -291,50 +292,44 @@ module function symba_encounter_check_tp(self, system, dt, irec) result(lany_enc logical :: lany_encounter !! Returns true if there is at least one close encounter end function symba_encounter_check_tp - module function symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casedisruption(system, param, colliders, frag) result(status) + use fraggle_classes, only : fraggle_colliders, fraggle_fragments implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collisionn - integer(I4B) :: status !! Status flag assigned to this outcome + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object + integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casedisruption - module function symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) - implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision - integer(I4B) :: status !! Status flag assigned to this outcome + module function symba_collision_casehitandrun(system, param, colliders, frag) result(status) + use fraggle_classes, only : fraggle_colliders, fraggle_fragments + implicit none + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object + integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casehitandrun - module function symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) + module function symba_collision_casemerge(system, param, colliders, frag) result(status) + use fraggle_classes, only : fraggle_colliders, fraggle_fragments implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collisio - integer(I4B) :: status !! Status flag assigned to this outcome + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object + integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casemerge - module function symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casesupercatastrophic(system, param, colliders, frag) result(status) + use fraggle_classes, only : fraggle_colliders, fraggle_fragments implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision - integer(I4B) :: status !! Status flag assigned to this outcome + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object + integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casesupercatastrophic module subroutine symba_util_index_eucl_plpl(self, param) diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 1b8d13b45..9675f289d 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -34,7 +34,6 @@ module whm_classes procedure :: j2h => whm_coord_j2h_pl !! Convert position and velcoity vectors from Jacobi to helliocentric coordinates procedure :: vh2vj => whm_coord_vh2vj_pl !! Convert velocity vectors from heliocentric to Jacobi coordinates procedure :: drift => whm_drift_pl !! Loop through massive bodies and call Danby drift routine to jacobi coordinates - procedure :: index => whm_util_index_eucl_plpl !! Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix procedure :: accel_gr => whm_gr_kick_getacch_pl !! Acceleration term arising from the post-Newtonian correction procedure :: gr_pos_kick => whm_gr_p4_pl !! Position kick due to p**4 term in the post-Newtonian correction procedure :: accel => whm_kick_getacch_pl !! Compute heliocentric accelerations of massive bodies diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 504faca35..41c0d9fba 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -81,7 +81,6 @@ module subroutine setup_encounter(self, n) class(swiftest_encounter), intent(inout) :: self !! Swiftest encounter structure integer(I4B), intent(in) :: n !! Number of encounters to allocate space for - self%nenc = n if (n < 0) return if (allocated(self%lvdotr)) deallocate(self%lvdotr) @@ -97,6 +96,7 @@ module subroutine setup_encounter(self, n) if (allocated(self%v2)) deallocate(self%v2) if (allocated(self%t)) deallocate(self%t) + self%nenc = n if (n == 0) return allocate(self%lvdotr(n)) @@ -206,7 +206,6 @@ module subroutine setup_body(self, n, param) ! Internals integer(I4B) :: i - self%nbody = n if (n < 0) return self%lfirst = .true. @@ -234,6 +233,7 @@ module subroutine setup_body(self, n, param) if (allocated(self%omega)) deallocate(self%omega) if (allocated(self%capm)) deallocate(self%capm) + self%nbody = n if (n == 0) return allocate(self%info(n)) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 384102ffc..a3bf27e99 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -5,81 +5,37 @@ integer(I4B), parameter :: NFRAG_SUPERCAT = 20 contains - module function symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casedisruption(system, param, colliders, frag) result(status) !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! !! Create the fragments resulting from a non-catastrophic disruption collision !! implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object ! Result - integer(I4B) :: status !! Status flag assigned to this outcome + integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, istart, nfrag, nfamily, nstart, nend - real(DP) :: mtot, avg_dens - real(DP), dimension(NDIM) :: xcom, vcom, Ip_new - real(DP), dimension(2) :: vol - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag - logical :: lfailure + integer(I4B) :: i, nfrag + logical :: lfailure character(len=STRMAX) :: collider_message collider_message = "Disruption between" - call symba_collision_collider_message(system%pl, family, collider_message) + call symba_collision_collider_message(system%pl, colliders%idx, collider_message) write(*,*) trim(adjustl(collider_message)) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_DISRUPT - allocate(m_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - allocate(id_frag(nfrag)) - - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - - ! Get mass weighted mean of Ip and average density - Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot - vol(:) = 4._DP / 3._DP * PI * radius(:)**3 - avg_dens = mtot / sum(vol(:)) - - ! Distribute the mass among fragments, with a branch to check for the size of the second largest fragment - m_frag(1) = mass_res(1) - if (mass_res(2) > mass_res(1) / 3._DP) then - m_frag(2) = mass_res(2) - istart = 3 - else - istart = 2 - end if - ! Distribute remaining mass among the remaining bodies - do i = istart, nfrag - m_frag(i) = (mtot - sum(m_frag(1:istart - 1))) / (nfrag - istart + 1) - end do + call frag%setup(nfrag, param) + call frag%set_mass_dist(colliders) + frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + param%maxid = frag%id(nfrag) - ! Distribute any residual mass if there is any and set the radius - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(1:nfrag) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] - param%maxid = id_frag(nfrag) - - do i = 1, nfrag - Ip_frag(:, i) = Ip_new(:) - end do - - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) + ! Generate the position and velocity distributions of the fragments + call frag%generate_fragments(colliders, system, param, lfailure) if (lfailure) then write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' @@ -87,61 +43,45 @@ module function symba_collision_casedisruption(system, param, family, x, v, mass nfrag = 0 select type(pl => system%pl) class is (symba_pl) - pl%status(family(:)) = status - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. + pl%status(colliders%idx(:)) = status + pl%ldiscard(colliders%idx(:)) = .false. + pl%lcollision(colliders%idx(:)) = .false. end select else ! Populate the list of new bodies write(*,'("Generating ",I2.0," fragments")') nfrag status = DISRUPTION - call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if return end function symba_collision_casedisruption - module function symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casehitandrun(system, param, colliders, frag) result(status) !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! !! Create the fragments resulting from a non-catastrophic hit-and-run collision !! implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object ! Result - integer(I4B) :: status !! Status flag assigned to this outcome + integer(I4B) :: status !! Status flag assigned to this outcom ! Internals - integer(I4B) :: i, j, nfrag, jproj, jtarg, idstart, ibiggest, nfamily - real(DP) :: mtot, avg_dens - real(DP), dimension(NDIM) :: xcom, vcom - real(DP), dimension(2) :: vol - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag - logical :: lpure - logical, dimension(system%pl%nbody) :: lmask + integer(I4B) :: i, ibiggest, nfrag, jtarg, jproj + logical :: lpure character(len=STRMAX) :: collider_message character(len=NAMELEN) :: idstr collider_message = "Hit and run between" - call symba_collision_collider_message(system%pl, family, collider_message) + call symba_collision_collider_message(system%pl, colliders%idx, collider_message) write(*,*) trim(adjustl(collider_message)) - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - lpure = .false. - - ! The largest body will stay untouched - if (mass(1) > mass(2)) then + if (colliders%mass(1) > colliders%mass(2)) then jtarg = 1 jproj = 2 else @@ -149,44 +89,23 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, jproj = 1 end if - if (mass_res(2) > 0.9_DP * mass(jproj)) then ! Pure hit and run, so we'll just keep the two bodies untouched + if (frag%mass_dist(2) > 0.9_DP * colliders%mass(jproj)) then ! Pure hit and run, so we'll just keep the two bodies untouched write(*,*) 'Pure hit and run. No new fragments generated.' nfrag = 0 lpure = .true. else ! Imperfect hit and run, so we'll keep the largest body and destroy the other nfrag = NFRAG_DISRUPT - 1 lpure = .false. - allocate(m_frag(nfrag)) - allocate(id_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - m_frag(1) = mass(jtarg) - ibiggest = family(maxloc(system%pl%Gmass(family(:)), dim=1)) - id_frag(1) = system%pl%id(ibiggest) - rad_frag(1) = radius(jtarg) - xb_frag(:, 1) = x(:, jtarg) - vb_frag(:, 1) = v(:, jtarg) - Ip_frag(:,1) = Ip(:, jtarg) - - ! Get mass weighted mean of Ip and average density - vol(:) = 4._DP / 3._DP * pi * radius(:)**3 - avg_dens = mass(jproj) / vol(jproj) - m_frag(2:nfrag) = (mtot - m_frag(1)) / (nfrag - 1) - rad_frag(2:nfrag) = (3 * m_frag(2:nfrag) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - id_frag(2:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag - 1)] - param%maxid = id_frag(nfrag) - - do i = 1, nfrag - Ip_frag(:, i) = Ip(:, jproj) - end do + call frag%setup(nfrag, param) + call frag%set_mass_dist(colliders) + ibiggest = colliders%idx(maxloc(system%pl%Gmass(colliders%idx(:)), dim=1)) + frag%id(1) = system%pl%id(ibiggest) + frag%id(2:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag - 1)] + param%maxid = frag%id(nfrag) + + ! Generate the position and velocity distributions of the fragments + call frag%generate_fragments(colliders, system, param, lpure) - ! Put the fragments on the circle surrounding the center of mass of the system - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lpure) if (lpure) then write(*,*) 'Should have been a pure hit and run instead' nfrag = 0 @@ -198,20 +117,20 @@ module function symba_collision_casehitandrun(system, param, family, x, v, mass, status = HIT_AND_RUN_PURE select type(pl => system%pl) class is (symba_pl) - pl%status(family(:)) = ACTIVE - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. + pl%status(colliders%idx(:)) = ACTIVE + pl%ldiscard(colliders%idx(:)) = .false. + pl%lcollision(colliders%idx(:)) = .false. end select else status = HIT_AND_RUN_DISRUPT - call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if return end function symba_collision_casehitandrun - module function symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) result(status) + module function symba_collision_casemerge(system, param, colliders, frag) result(status) !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! !! Merge planets. @@ -221,76 +140,48 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad !! Adapted from Hal Levison's Swift routines symba5_merge.f and discard_mass_merge.f implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(in) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(in) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object ! Result - integer(I4B) :: status !! Status flag assigned to this outcome + integer(I4B) :: status !! Status flag assigned to this outcome ! Internals - integer(I4B) :: i, j, k, ibiggest, nfamily - real(DP) :: volume_new, pe - real(DP), dimension(NDIM) :: xc, vc, xcrossv - real(DP), dimension(2) :: vol - real(DP), dimension(NDIM) :: L_orb_old, L_spin_old + integer(I4B) :: i, j, k, ibiggest + real(DP), dimension(2) :: volume, density + real(DP) :: pe real(DP), dimension(NDIM) :: L_spin_new - logical, dimension(system%pl%nbody) :: lmask - real(DP), dimension(NDIM, 1) :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(1) :: m_frag, rad_frag - integer(I4B), dimension(1) :: id_frag character(len=STRMAX) :: collider_message character(len=NAMELEN) :: idstr collider_message = "Merging" - call symba_collision_collider_message(system%pl, family, collider_message) + call symba_collision_collider_message(system%pl, colliders%idx, collider_message) write(*,*) trim(adjustl(collider_message)) select type(pl => system%pl) class is (symba_pl) - ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) - id_frag(1) = pl%id(ibiggest) - - m_frag(1) = sum(mass(:)) - - ! Merged body is created at the barycenter of the original bodies - xb_frag(:,1) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / m_frag(1) - vb_frag(:,1) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / m_frag(1) + call frag%setup(1, param) + call frag%set_mass_dist(colliders) + ibiggest = colliders%idx(maxloc(pl%Gmass(colliders%idx(:)), dim=1)) + frag%id(1) = pl%id(ibiggest) + frag%xb(:,1) = frag%xbcom(:) + frag%vb(:,1) = frag%vbcom(:) - ! Get mass weighted mean of Ip and - vol(:) = 4._DP / 3._DP * PI * radius(:)**3 - volume_new = sum(vol(:)) - rad_frag(1) = (3 * volume_new / (4 * PI))**(1._DP / 3._DP) - - L_orb_old(:) = 0.0_DP - - ! Compute orbital angular momentum of pre-impact system - do i = 1, 2 - xc(:) = x(:, i) - xb_frag(:,1) - vc(:) = v(:, i) - vb_frag(:,1) - xcrossv(:) = xc(:) .cross. vc(:) - L_orb_old(:) = L_orb_old(:) + mass(i) * xcrossv(:) - end do - if (param%lrotation) then - Ip_frag(:,1) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / m_frag(1) - L_spin_old(:) = L_spin(:,1) + L_spin(:,2) - ! Conserve angular momentum by putting pre-impact orbital momentum into spin of the new body - L_spin_new(:) = L_orb_old(:) + L_spin_old(:) + L_spin_new(:) = colliders%L_orbit(:,1) + colliders%L_orbit(:,2) + colliders%L_spin(:,1) + colliders%L_spin(:,2) ! Assume prinicpal axis rotation on 3rd Ip axis - rot_frag(:,1) = L_spin_new(:) / (Ip_frag(3,1) * m_frag(1) * rad_frag(1)**2) + frag%rot(:,1) = L_spin_new(:) / (frag%Ip(3,1) * frag%mass(1) * frag%radius(1)**2) else ! If spin is not enabled, we will consider the lost pre-collision angular momentum as "escaped" and add it to our bookkeeping variable - param%Lescape(:) = param%Lescape(:) + L_orb_old(:) + param%Lescape(:) = param%Lescape(:) + colliders%L_orbit(:,1) + colliders%L_orbit(:,2) end if - ! Keep track of the component of potential energy due to the pre-impact family for book-keeping - nfamily = size(family(:)) + ! Keep track of the component of potential energy due to the pre-impact colliders%idx for book-keeping pe = 0.0_DP - do j = 1, nfamily - do i = j + 1, nfamily + do j = 1, colliders%ncoll + do i = j + 1, colliders%ncoll pe = pe - pl%Gmass(i) * pl%mass(j) / norm2(pl%xb(:, i) - pl%xb(:, j)) end do end do @@ -299,8 +190,8 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad ! Update any encounter lists that have the removed bodies in them so that they instead point to the new do k = 1, system%plplenc_list%nenc - do j = 1, nfamily - i = family(j) + do j = 1, colliders%ncoll + i = colliders%idx(j) if (i == ibiggest) cycle if (system%plplenc_list%id1(k) == pl%id(i)) then system%plplenc_list%id1(k) = pl%id(ibiggest) @@ -316,7 +207,7 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad status = MERGED - call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + call symba_collision_mergeaddsub(system, param, colliders, frag, status) end select @@ -324,80 +215,37 @@ module function symba_collision_casemerge(system, param, family, x, v, mass, rad end function symba_collision_casemerge - module function symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) result(status) + module function symba_collision_casesupercatastrophic(system, param, colliders, frag) result(status) !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! !! Create the fragments resulting from a supercatastrophic collision !! implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(:,:), intent(inout) :: x, v, L_spin, Ip !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass, radius !! Input values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(:), intent(inout) :: mass_res !! The distribution of fragment mass obtained by the regime calculation - real(DP), intent(inout) :: Qloss !! Energy lost during collision + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object ! Result - integer(I4B) :: status !! Status flag assigned to this outcome + integer(I4B) :: status !! Status flag assigned to this outcom ! Internals - integer(I4B) :: i, j, nfrag, ibiggest, nfamily, nstart, nend - real(DP) :: mtot, avg_dens, min_frag_mass - real(DP), dimension(NDIM) :: xcom, vcom - real(DP), dimension(2) :: vol - real(DP), dimension(NDIM) :: Ip_new - real(DP), dimension(:, :), allocatable :: vb_frag, xb_frag, rot_frag, Ip_frag - real(DP), dimension(:), allocatable :: m_frag, rad_frag - integer(I4B), dimension(:), allocatable :: id_frag + integer(I4B) :: i, j, nfrag logical :: lfailure - logical, dimension(system%pl%nbody) :: lmask character(len=STRMAX) :: collider_message character(len=NAMELEN) :: idstr collider_message = "Supercatastrophic disruption between" - call symba_collision_collider_message(system%pl, family, collider_message) + call symba_collision_collider_message(system%pl, colliders%idx, collider_message) write(*,*) trim(adjustl(collider_message)) - ! Collisional fragments will be uniformly distributed around the pre-impact barycenter nfrag = NFRAG_SUPERCAT - allocate(m_frag(nfrag)) - allocate(rad_frag(nfrag)) - allocate(id_frag(nfrag)) - allocate(xb_frag(NDIM, nfrag)) - allocate(vb_frag(NDIM, nfrag)) - allocate(rot_frag(NDIM, nfrag)) - allocate(Ip_frag(NDIM, nfrag)) - - mtot = sum(mass(:)) - xcom(:) = (mass(1) * x(:,1) + mass(2) * x(:,2)) / mtot - vcom(:) = (mass(1) * v(:,1) + mass(2) * v(:,2)) / mtot - - ! Get mass weighted mean of Ip and average density - Ip_new(:) = (mass(1) * Ip(:,1) + mass(2) * Ip(:,2)) / mtot - vol(:) = 4._DP / 3._DP * pi * radius(:)**3 - avg_dens = mtot / sum(vol(:)) - - ! If we are adding the first and largest fragment (lr), check to see if its mass is SMALLER than an equal distribution of - ! mass between all fragments. If so, we will just distribute the mass equally between the fragments - min_frag_mass = mtot / nfrag - if (mass_res(1) < min_frag_mass) then - m_frag(:) = min_frag_mass - else - m_frag(1) = mass_res(1) - m_frag(2:nfrag) = (mtot - mass_res(1)) / (nfrag - 1) - end if - ! Distribute any residual mass if there is any and set the radius - m_frag(nfrag) = m_frag(nfrag) + (mtot - sum(m_frag(:))) - rad_frag(1:nfrag) = (3 * m_frag(:) / (4 * PI * avg_dens))**(1.0_DP / 3.0_DP) - id_frag(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] - param%maxid = id_frag(nfrag) - - do i = 1, nfrag - Ip_frag(:, i) = Ip_new(:) - end do + call frag%setup(nfrag, param) + call frag%set_mass_dist(colliders) + frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + param%maxid = frag%id(nfrag) - call fragmentation_initialize(system, param, family, x, v, L_spin, Ip, mass, radius, & - nfrag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, Qloss, lfailure) + ! Generate the position and velocity distributions of the fragments + call frag%generate_fragments(colliders, system, param, lfailure) if (lfailure) then write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' @@ -405,22 +253,22 @@ module function symba_collision_casesupercatastrophic(system, param, family, x, nfrag = 0 select type(pl => system%pl) class is (symba_pl) - pl%status(family(:)) = status - pl%ldiscard(family(:)) = .false. - pl%lcollision(family(:)) = .false. + pl%status(colliders%idx(:)) = status + pl%ldiscard(colliders%idx(:)) = .false. + pl%lcollision(colliders%idx(:)) = .false. end select else ! Populate the list of new bodies write(*,'("Generating ",I2.0," fragments")') nfrag status = SUPERCATASTROPHIC - call symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if return end function symba_collision_casesupercatastrophic - subroutine symba_collision_collider_message(pl, family, collider_message) + subroutine symba_collision_collider_message(pl, collidx, collider_message) !! author: David A. Minton !! !! Prints a nicely formatted message about which bodies collided, including their names and ids. @@ -428,19 +276,19 @@ subroutine symba_collision_collider_message(pl, family, collider_message) implicit none ! Arguments class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object - integer(I4B), dimension(:), intent(in) :: family !! Index of collisional family members + integer(I4B), dimension(:), intent(in) :: collidx !! Index of collisional colliders%idx members character(*), intent(inout) :: collider_message !! The message to print to the screen. ! Internals integer(I4B) :: i, n character(len=STRMAX) :: idstr - n = size(family) + n = size(collidx) if (n == 0) return do i = 1, n if (i > 1) collider_message = trim(adjustl(collider_message)) // " and " - collider_message = " " // trim(adjustl(collider_message)) // " " // trim(adjustl(pl%info(family(i))%name)) - write(idstr, '(I10)') pl%id(family(i)) + collider_message = " " // trim(adjustl(collider_message)) // " " // trim(adjustl(pl%info(collidx(i))%name)) + write(idstr, '(I10)') pl%id(collidx(i)) collider_message = trim(adjustl(collider_message)) // " (" // trim(adjustl(idstr)) // ") " end do @@ -534,8 +382,8 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec self%x2(:,k) = pl%xh(:,j) + system%cb%xb(:) self%v2(:,k) = pl%vb(:,j) if (lcollision(k)) then - ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional family - if (pl%lcollision(i) .or. pl%lcollision(j)) call pl%make_family([i,j]) + ! Check to see if either of these bodies has been involved with a collision before, and if so, make this a collisional colliders%idx + if (pl%lcollision(i) .or. pl%lcollision(j)) call pl%make_colliders([i,j]) ! Set the collision flag for these to bodies to true in case they become involved in another collision later in the step pl%lcollision([i, j]) = .true. @@ -619,10 +467,10 @@ pure elemental function symba_collision_check_one(xr, yr, zr, vxr, vyr, vzr, Gmt end function symba_collision_check_one - function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) result(lflag) + function symba_collision_consolidate_colliders(pl, cb, param, idx_parent, colliders) result(lflag) !! author: David A. Minton !! - !! Loops through the pl-pl collision list and groups families together by index. Outputs the indices of all family members, + !! Loops through the pl-pl collision list and groups families together by index. Outputs the indices of all colliders%idx members, !! and pairs of quantities (x and v vectors, mass, radius, L_spin, and Ip) that can be used to resolve the collisional outcome. implicit none ! Arguments @@ -630,22 +478,21 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, class(symba_cb), intent(inout) :: cb !! SyMBA central body object class(symba_parameters), intent(in) :: param !! Current run configuration parameters with SyMBA additions integer(I4B), dimension(2), intent(inout) :: idx_parent !! Index of the two bodies considered the "parents" of the collision - integer(I4B), dimension(:), allocatable, intent(out) :: family !! List of indices of all bodies inovlved in the collision - real(DP), dimension(NDIM,2), intent(out) :: x, v, L_spin, Ip !! Output values that represent a 2-body equivalent of a possibly 2+ body collision - real(DP), dimension(2), intent(out) :: mass, radius !! Output values that represent a 2-body equivalent of a possibly 2+ body collision + class(fraggle_colliders), intent(out) :: colliders ! Result - logical :: lflag !! Logical flag indicating whether a family was successfully created or not + logical :: lflag !! Logical flag indicating whether a colliders%idx was successfully created or not ! Internals - type family_array + type collidx_array integer(I4B), dimension(:), allocatable :: id integer(I4B), dimension(:), allocatable :: idx - end type family_array - type(family_array), dimension(2) :: parent_child_index_array + end type collidx_array + type(collidx_array), dimension(2) :: parent_child_index_array integer(I4B), dimension(2) :: nchild - integer(I4B) :: i, j, fam_size, idx_child + integer(I4B) :: i, j, ncolliders, idx_child real(DP), dimension(2) :: volume, density real(DP) :: mchild, mtot, volchild real(DP), dimension(NDIM) :: xc, vc, xcom, vcom, xchild, vchild, xcrossv + real(DP), dimension(NDIM,2) :: mxc, vcc nchild(:) = pl%kin(idx_parent(:))%nchild ! If all of these bodies share a parent, but this is still a unique collision, move the last child @@ -663,9 +510,9 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, pl%kin(idx_parent(2))%parent = idx_parent(1) end if - mass(:) = pl%mass(idx_parent(:)) ! Note: This is meant to mass, not G*mass, as the collisional regime determination uses mass values that will be converted to Si - radius(:) = pl%radius(idx_parent(:)) - volume(:) = (4.0_DP / 3.0_DP) * PI * radius(:)**3 + colliders%mass(:) = pl%mass(idx_parent(:)) ! Note: This is meant to mass, not G*mass, as the collisional regime determination uses mass values that will be converted to Si + colliders%radius(:) = pl%radius(idx_parent(:)) + volume(:) = (4.0_DP / 3.0_DP) * PI * colliders%radius(:)**3 ! Group together the ids and indexes of each collisional parent and its children do j = 1, 2 @@ -682,23 +529,24 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, end associate end do - ! Consolidate the groups of collsional parents with any children they may have into a single "family" index array - fam_size = 2 + sum(nchild(:)) - allocate(family(fam_size)) - family = [parent_child_index_array(1)%idx(:),parent_child_index_array(2)%idx(:)] - fam_size = count(pl%lcollision(family(:))) - family = pack(family(:), pl%lcollision(family(:))) - L_spin(:,:) = 0.0_DP - Ip(:,:) = 0.0_DP + ! Consolidate the groups of collsional parents with any children they may have into a single "colliders%idx" index array + ncolliders = 2 + sum(nchild(:)) + allocate(colliders%idx(ncolliders)) + colliders%idx = [parent_child_index_array(1)%idx(:),parent_child_index_array(2)%idx(:)] + + colliders%ncoll = count(pl%lcollision(colliders%idx(:))) + colliders%idx = pack(colliders%idx(:), pl%lcollision(colliders%idx(:))) + colliders%L_spin(:,:) = 0.0_DP + colliders%Ip(:,:) = 0.0_DP ! Find the barycenter of each body along with its children, if it has any do j = 1, 2 - x(:, j) = pl%xh(:, idx_parent(j)) + cb%xb(:) - v(:, j) = pl%vb(:, idx_parent(j)) + colliders%xb(:, j) = pl%xh(:, idx_parent(j)) + cb%xb(:) + colliders%vb(:, j) = pl%vb(:, idx_parent(j)) ! Assume principal axis rotation about axis corresponding to highest moment of inertia (3rd Ip) if (param%lrotation) then - Ip(:, j) = mass(j) * pl%Ip(:, idx_parent(j)) - L_spin(:, j) = Ip(3, j) * radius(j)**2 * pl%rot(:, idx_parent(j)) + colliders%Ip(:, j) = colliders%mass(j) * pl%Ip(:, idx_parent(j)) + colliders%L_spin(:, j) = colliders%Ip(3, j) * colliders%radius(j)**2 * pl%rot(:, idx_parent(j)) end if if (nchild(j) > 0) then @@ -713,39 +561,47 @@ function symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, ! Get angular momentum of the child-parent pair and add that to the spin ! Add the child's spin if (param%lrotation) then - xcom(:) = (mass(j) * x(:,j) + mchild * xchild(:)) / (mass(j) + mchild) - vcom(:) = (mass(j) * v(:,j) + mchild * vchild(:)) / (mass(j) + mchild) - xc(:) = x(:, j) - xcom(:) - vc(:) = v(:, j) - vcom(:) + xcom(:) = (colliders%mass(j) * colliders%xb(:,j) + mchild * xchild(:)) / (colliders%mass(j) + mchild) + vcom(:) = (colliders%mass(j) * colliders%vb(:,j) + mchild * vchild(:)) / (colliders%mass(j) + mchild) + xc(:) = colliders%xb(:, j) - xcom(:) + vc(:) = colliders%vb(:, j) - vcom(:) xcrossv(:) = xc(:) .cross. vc(:) - L_spin(:, j) = L_spin(:, j) + mass(j) * xcrossv(:) + colliders%L_spin(:, j) = colliders%L_spin(:, j) + colliders%mass(j) * xcrossv(:) xc(:) = xchild(:) - xcom(:) vc(:) = vchild(:) - vcom(:) xcrossv(:) = xc(:) .cross. vc(:) - L_spin(:, j) = L_spin(:, j) + mchild * xcrossv(:) + colliders%L_spin(:, j) = colliders%L_spin(:, j) + mchild * xcrossv(:) - L_spin(:, j) = L_spin(:, j) + mchild * pl%Ip(3, idx_child) * pl%radius(idx_child)**2 * pl%rot(:, idx_child) - Ip(:, j) = Ip(:, j) + mchild * pl%Ip(:, idx_child) + colliders%L_spin(:, j) = colliders%L_spin(:, j) + mchild * pl%Ip(3, idx_child) * pl%radius(idx_child)**2 * pl%rot(:, idx_child) + colliders%Ip(:, j) = colliders%Ip(:, j) + mchild * pl%Ip(:, idx_child) end if ! Merge the child and parent - mass(j) = mass(j) + mchild - x(:, j) = xcom(:) - v(:, j) = vcom(:) + colliders%mass(j) = colliders%mass(j) + mchild + colliders%xb(:, j) = xcom(:) + colliders%vb(:, j) = vcom(:) end do end if - density(j) = mass(j) / volume(j) - radius(j) = ((3 * mass(j)) / (density(j) * 4 * pi))**(1.0_DP / 3.0_DP) - if (param%lrotation) Ip(:, j) = Ip(:, j) / mass(j) + density(j) = colliders%mass(j) / volume(j) + colliders%radius(j) = (3 * volume(j) / (4 * PI))**(1.0_DP / 3.0_DP) + if (param%lrotation) colliders%Ip(:, j) = colliders%Ip(:, j) / colliders%mass(j) + + xcom(:) = (colliders%mass(1) * colliders%xb(:, 1) + colliders%mass(2) * colliders%xb(:, 2)) / sum(colliders%mass(:)) + vcom(:) = (colliders%mass(1) * colliders%vb(:, 1) + colliders%mass(2) * colliders%vb(:, 2)) / sum(colliders%mass(:)) + mxc(:, 1) = colliders%mass(1) * (colliders%xb(:, 1) - xcom(:)) + mxc(:, 2) = colliders%mass(2) * (colliders%xb(:, 2) - xcom(:)) + vcc(:, 1) = colliders%vb(:, 1) - vcom(:) + vcc(:, 2) = colliders%vb(:, 2) - vcom(:) + colliders%L_orbit(:,:) = mxc(:,:) .cross. vcc(:,:) end do lflag = .true. - ! Destroy the kinship relationships for all members of this family - call pl%reset_kinship(family(:)) + ! Destroy the kinship relationships for all members of this colliders%idx + call pl%reset_kinship(colliders%idx(:)) return - end function symba_collision_consolidate_familes + end function symba_collision_consolidate_colliders module subroutine symba_collision_encounter_extract_collisions(self, system, param) @@ -817,10 +673,10 @@ module subroutine symba_collision_encounter_extract_collisions(self, system, par end subroutine symba_collision_encounter_extract_collisions - module subroutine symba_collision_make_family_pl(self, idx) + module subroutine symba_collision_make_colliders_pl(self, idx) !! author: Jennifer L.L. Pouplin, Carlisle A. wishard, and David A. Minton !! - !! When a single body is involved in more than one collision in a single step, it becomes part of a family. + !! When a single body is involved in more than one collision in a single step, it becomes part of a colliders%idx. !! The largest body involved in a multi-body collision is the "parent" and all bodies that collide with it are its "children," !! including those that collide with the children. !! @@ -875,26 +731,23 @@ module subroutine symba_collision_make_family_pl(self, idx) end associate return - end subroutine symba_collision_make_family_pl + end subroutine symba_collision_make_colliders_pl - subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, m_frag, rad_frag, xb_frag, vb_frag, rot_frag, status) + subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) !! author: David A. Minton !! !! Fills the pl_discards and pl_adds with removed and added bodies !! implicit none ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - integer(I4B), dimension(:), intent(in) :: family !! List of indices of all bodies inovlved in the collision - integer(I4B), dimension(:), intent(in) :: id_frag !! List of fragment ids - real(DP), dimension(:), intent(in) :: m_frag, rad_frag !! Distribution of fragment mass and radii - real(DP), dimension(:,:), intent(in) :: Ip_frag !! Fragment rotational inertia vectors - real(DP), dimension(:,:), intent(in) :: xb_frag, vb_frag, rot_frag !! Fragment barycentric position, barycentric velocity, and rotation vectors - integer(I4B), intent(in) :: status !! Status flag to assign to adds + class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object + class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object + class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object + integer(I4B), intent(in) :: status !! Status flag to assign to adds ! Internals - integer(I4B) :: i, ibiggest, ismallest, iother, nstart, nend, nfamily, nfrag + integer(I4B) :: i, ibiggest, ismallest, iother, nstart, nend, ncolliders, nfrag logical, dimension(system%pl%nbody) :: lmask class(symba_pl), allocatable :: plnew, plsub character(*), parameter :: FRAGFMT = '("Newbody",I0.7)' @@ -905,87 +758,87 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, select type(pl_discards => system%pl_discards) class is (symba_merger) associate(info => pl%info, pl_adds => system%pl_adds, cb => system%cb, npl => pl%nbody) - ! Add the family bodies to the subtraction list - nfamily = size(family(:)) - nfrag = size(m_frag(:)) + ! Add the colliders%idx bodies to the subtraction list + ncolliders = colliders%ncoll + nfrag = size(frag%mass(:)) ! Setup new bodies allocate(plnew, mold=pl) call plnew%setup(nfrag, param) - ibiggest = family(maxloc(pl%Gmass(family(:)), dim=1)) - ismallest = family(minloc(pl%Gmass(family(:)), dim=1)) + ibiggest = colliders%idx(maxloc(pl%Gmass(colliders%idx(:)), dim=1)) + ismallest = colliders%idx(minloc(pl%Gmass(colliders%idx(:)), dim=1)) ! Copy over identification, information, and physical properties of the new bodies from the fragment list - plnew%id(1:nfrag) = id_frag(1:nfrag) - plnew%xb(:, 1:nfrag) = xb_frag(:, 1:nfrag) - plnew%vb(:, 1:nfrag) = vb_frag(:, 1:nfrag) + plnew%id(1:nfrag) = frag%id(1:nfrag) + plnew%xb(:, 1:nfrag) = frag%xb(:, 1:nfrag) + plnew%vb(:, 1:nfrag) = frag%vb(:, 1:nfrag) call pl%vb2vh(cb) call pl%xh2xb(cb) do i = 1, nfrag - plnew%xh(:,i) = xb_frag(:, i) - cb%xb(:) - plnew%vh(:,i) = vb_frag(:, i) - cb%vb(:) + plnew%xh(:,i) = frag%xb(:, i) - cb%xb(:) + plnew%vh(:,i) = frag%vb(:, i) - cb%vb(:) end do - plnew%mass(1:nfrag) = m_frag(1:nfrag) - plnew%Gmass(1:nfrag) = param%GU * m_frag(1:nfrag) - plnew%radius(1:nfrag) = rad_frag(1:nfrag) - plnew%density(1:nfrag) = m_frag(1:nfrag) / rad_frag(1:nfrag) + plnew%mass(1:nfrag) = frag%mass(1:nfrag) + plnew%Gmass(1:nfrag) = param%GU * frag%mass(1:nfrag) + plnew%radius(1:nfrag) = frag%radius(1:nfrag) + plnew%density(1:nfrag) = frag%mass(1:nfrag) / frag%radius(1:nfrag) call plnew%set_rhill(cb) select case(status) case(DISRUPTION) plnew%status(1:nfrag) = NEW_PARTICLE do i = 1, nfrag - write(newname, FRAGFMT) id_frag(i) + 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)) end do - do i = 1, nfamily - if (family(i) == ibiggest) then + do i = 1, ncolliders + if (colliders%idx(i) == ibiggest) then iother = ismallest else iother = ibiggest end if - call pl%info(family(i))%set_value(status="Disruption", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + call pl%info(colliders%idx(i))%set_value(status="Disruption", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do case(SUPERCATASTROPHIC) plnew%status(1:nfrag) = NEW_PARTICLE do i = 1, nfrag - write(newname, FRAGFMT) id_frag(i) + 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)) end do - do i = 1, nfamily - if (family(i) == ibiggest) then + do i = 1, ncolliders + if (colliders%idx(i) == ibiggest) then iother = ismallest else iother = ibiggest end if - call pl%info(family(i))%set_value(status="Supercatastrophic", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + call pl%info(colliders%idx(i))%set_value(status="Supercatastrophic", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do case(HIT_AND_RUN_DISRUPT) call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE do i = 2, nfrag - write(newname, FRAGFMT) id_frag(i) + write(newname, FRAGFMT) frag%id(i) call plnew%info(i)%set_value(origin_type="Hit and run fragmention", origin_time=param%t, name=newname, origin_xh=plnew%xh(:,i), origin_vh=plnew%vh(:,i)) end do - do i = 1, nfamily - if (family(i) == ibiggest) cycle + do i = 1, ncolliders + if (colliders%idx(i) == ibiggest) cycle iother = ibiggest - call pl%info(family(i))%set_value(status="Hit and run fragmention", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + call pl%info(colliders%idx(i))%set_value(status="Hit and run fragmention", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do case(MERGED) call plnew%info(1)%copy(pl%info(ibiggest)) plnew%status(1) = OLD_PARTICLE - do i = 1, nfamily - if (family(i) == ibiggest) cycle + do i = 1, ncolliders + if (colliders%idx(i) == ibiggest) cycle iother = ibiggest - call pl%info(family(i))%set_value(status="MERGED", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) + call pl%info(colliders%idx(i))%set_value(status="MERGED", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=iother) end do end select if (param%lrotation) then - plnew%Ip(:, 1:nfrag) = Ip_frag(:, 1:nfrag) - plnew%rot(:, 1:nfrag) = rot_frag(:, 1:nfrag) + plnew%Ip(:, 1:nfrag) = frag%Ip(:, 1:nfrag) + plnew%rot(:, 1:nfrag) = frag%rot(:, 1:nfrag) end if if (param%ltides) then @@ -1008,11 +861,11 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, pl_adds%ncomp(nstart:nend) = plnew%nbody ! Add the discarded bodies to the discard list - pl%status(family(:)) = MERGED - pl%ldiscard(family(:)) = .true. - pl%lcollision(family(:)) = .true. + pl%status(colliders%idx(:)) = MERGED + pl%ldiscard(colliders%idx(:)) = .true. + pl%lcollision(colliders%idx(:)) = .true. lmask(:) = .false. - lmask(family(:)) = .true. + lmask(colliders%idx(:)) = .true. call plnew%setup(0, param) deallocate(plnew) @@ -1021,11 +874,11 @@ subroutine symba_collision_mergeaddsub(system, param, family, id_frag, Ip_frag, call pl%spill(plsub, lmask, ldestructive=.false.) nstart = pl_discards%nbody + 1 - nend = pl_discards%nbody + nfamily - call pl_discards%append(plsub, lsource_mask=[(.true., i = 1, nfamily)]) + nend = pl_discards%nbody + ncolliders + call pl_discards%append(plsub, lsource_mask=[(.true., i = 1, ncolliders)]) ! Record how many bodies were subtracted in this event - pl_discards%ncomp(nstart:nend) = nfamily + pl_discards%ncomp(nstart:nend) = ncolliders call plsub%setup(0, param) deallocate(plsub) @@ -1049,18 +902,13 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions ! Internals ! Internals - integer(I4B), dimension(:), allocatable :: family !! List of indices of all bodies inovlved in the collision integer(I4B), dimension(2) :: idx_parent !! Index of the two bodies considered the "parents" of the collision real(DP), dimension(NDIM,2) :: x, v, L_spin, Ip !! Output values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(2) :: mass, radius !! Output values that represent a 2-body equivalent of a possibly 2+ body collision logical :: lgoodcollision - integer(I4B) :: i, jtarg, jproj, regime - real(DP), dimension(2) :: radius_si, mass_si, density_si - real(DP) :: min_mfrag_si, Mcb_si - real(DP), dimension(NDIM) :: x1_si, v1_si, x2_si, v2_si - real(DP) :: mlr, mslr, mtot, dentot, msys, msys_new, Qloss, impact_parameter - integer(I4B), parameter :: NRES = 3 !! Number of collisional product results - real(DP), dimension(NRES) :: mass_res + integer(I4B) :: i + type(fraggle_colliders) :: colliders !! Fraggle colliders object + type(fraggle_fragments) :: frag !! Fraggle fragmentation system object associate(plplcollision_list => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) @@ -1070,52 +918,20 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) do i = 1, ncollisions idx_parent(1) = pl%kin(idx1(i))%parent idx_parent(2) = pl%kin(idx2(i))%parent - lgoodcollision = symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) + lgoodcollision = symba_collision_consolidate_colliders(pl, cb, param, idx_parent, colliders) if ((.not. lgoodcollision) .or. any(pl%status(idx_parent(:)) /= COLLISION)) cycle + + call colliders%regime(frag, system, param) - ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them - ! to symba_regime - if (mass(1) > mass(2)) then - jtarg = 1 - jproj = 2 - else - jtarg = 2 - jproj = 1 - end if - mass_si(:) = (mass(:)) * param%MU2KG !! The collective mass of the parent and its children - radius_si(:) = radius(:) * param%DU2M !! The collective radius of the parent and its children - x1_si(:) = plplcollision_list%x1(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v1_si(:) = plplcollision_list%v1(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) - x2_si(:) = plplcollision_list%x2(:,i) * param%DU2M !! The position of the parent from inside the step (at collision) - v2_si(:) = plplcollision_list%v2(:,i) * param%DU2M / param%TU2S !! The velocity of the parent from inside the step (at collision) - density_si(:) = mass_si(:) / (4.0_DP / 3._DP * PI * radius_si(:)**3) !! The collective density of the parent and its children - Mcb_si = cb%mass * param%MU2KG - min_mfrag_si = (param%min_GMfrag / param%GU) * param%MU2KG - - mass_res(:) = 0.0_DP - - mtot = sum(mass_si(:)) - dentot = sum(mass_si(:) * density_si(:)) / mtot - - !! Use the positions and velocities of the parents from indside the step (at collision) to calculate the collisional regime - call fragmentation_regime(Mcb_si, mass_si(jtarg), mass_si(jproj), radius_si(jtarg), radius_si(jproj), x1_si(:), x2_si(:),& - v1_si(:), v2_si(:), density_si(jtarg), density_si(jproj), regime, mlr, mslr, min_mfrag_si, Qloss) - - mass_res(1) = min(max(mlr, 0.0_DP), mtot) - mass_res(2) = min(max(mslr, 0.0_DP), mtot) - mass_res(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) - mass_res(:) = (mass_res(:) / param%MU2KG) - Qloss = Qloss * (param%TU2S / param%DU2M)**2 / param%MU2KG - - select case (regime) + select case (frag%regime) case (COLLRESOLVE_REGIME_DISRUPTION) - plplcollision_list%status(i) = symba_collision_casedisruption(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casedisruption(system, param, colliders, frag) case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - plplcollision_list%status(i) = symba_collision_casesupercatastrophic(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casesupercatastrophic(system, param, colliders, frag) case (COLLRESOLVE_REGIME_HIT_AND_RUN) - plplcollision_list%status(i) = symba_collision_casehitandrun(system, param, family, x, v, mass, radius, L_spin, Ip, mass_res, Qloss) + plplcollision_list%status(i) = symba_collision_casehitandrun(system, param, colliders, frag) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - plplcollision_list%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + plplcollision_list%status(i) = symba_collision_casemerge(system, param, colliders, frag) case default write(*,*) "Error in symba_collision, unrecognized collision regime" call util_exit(FAILURE) @@ -1140,12 +956,13 @@ module subroutine symba_collision_resolve_mergers(self, system, param) class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions ! Internals - integer(I4B), dimension(:), allocatable :: family !! List of indices of all bodies inovlved in the collision integer(I4B), dimension(2) :: idx_parent !! Index of the two bodies considered the "parents" of the collision real(DP), dimension(NDIM,2) :: x, v, L_spin, Ip !! Output values that represent a 2-body equivalent of a possibly 2+ body collision real(DP), dimension(2) :: mass, radius !! Output values that represent a 2-body equivalent of a possibly 2+ body collision logical :: lgoodcollision integer(I4B) :: i + type(fraggle_colliders) :: colliders !! Fraggle colliders object + type(fraggle_fragments) :: frag !! Fraggle fragmentation system object associate(plplcollision_list => self, ncollisions => self%nenc, idx1 => self%index1, idx2 => self%index2) select type(pl => system%pl) @@ -1155,11 +972,12 @@ module subroutine symba_collision_resolve_mergers(self, system, param) do i = 1, ncollisions idx_parent(1) = pl%kin(idx1(i))%parent idx_parent(2) = pl%kin(idx2(i))%parent - lgoodcollision = symba_collision_consolidate_familes(pl, cb, param, idx_parent, family, x, v, mass, radius, L_spin, Ip) + lgoodcollision = symba_collision_consolidate_colliders(pl, cb, param, idx_parent, colliders) if (.not. lgoodcollision) cycle if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved - - plplcollision_list%status(i) = symba_collision_casemerge(system, param, family, x, v, mass, radius, L_spin, Ip) + + frag%regime = COLLRESOLVE_REGIME_MERGE + plplcollision_list%status(i) = symba_collision_casemerge(system, param, colliders, frag) end do end select end select diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index 4a40100c0..b68635b0e 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -289,8 +289,6 @@ module subroutine symba_util_index_eucl_plpl(self, param) associate(pl => self) npl = int(self%nbody, kind=I8B) - call pl%sort("mass", ascending=.false.) - nplm = count(.not. pl%lmtiny(1:npl)) pl%nplm = int(nplm, kind=I4B) @@ -476,6 +474,7 @@ module subroutine symba_util_rearray_pl(self, system, param) deallocate(ldump_mask) ! Reindex the new list of bodies + call pl%sort("mass", ascending=.false.) call pl%index(param) ! Reset the kinship trackers diff --git a/src/whm/whm_setup.f90 b/src/whm/whm_setup.f90 index 8dee15982..3c5cdeec3 100644 --- a/src/whm/whm_setup.f90 +++ b/src/whm/whm_setup.f90 @@ -81,6 +81,8 @@ module subroutine whm_setup_initialize_system(self, param) call setup_initialize_system(self, param) ! First we need to make sure that the massive bodies are sorted by heliocentric distance before computing jacobies call util_set_ir3h(self%pl) + call self%pl%sort("ir3h", ascending=.false.) + call self%pl%index(param) ! Make sure that the discard list gets allocated initially call self%tp_discards%setup(0, param) diff --git a/src/whm/whm_util.f90 b/src/whm/whm_util.f90 index bedf359ae..e8ed91854 100644 --- a/src/whm/whm_util.f90 +++ b/src/whm/whm_util.f90 @@ -67,22 +67,6 @@ module subroutine whm_util_fill_pl(self, inserts, lfill_list) end subroutine whm_util_fill_pl - module subroutine whm_util_index_eucl_plpl(self, param) - !! author: David A. Minton - !! - !! Wrapper for the indexing method for WHM massive bodies. Sorts the massive bodies by heliocentric distance and then flattens the pl-pl upper triangular matrix - implicit none - ! Arguments - class(whm_pl), intent(inout) :: self !! WHM massive body object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - - call self%sort("ir3h", ascending=.false.) - call util_index_eucl_plpl(self, param) - - return - end subroutine whm_util_index_eucl_plpl - - module subroutine whm_util_resize_pl(self, nnew) !! author: David A. Minton !! From c3d099338b38160e467e3ff53da68228b20c84f8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 10:37:35 -0400 Subject: [PATCH 281/315] Rearranged the Fraggle generation code a bit, improved the stability of the obl_pot call and made it a method, and added a logfile to Fraggle results. --- src/fraggle/fraggle_generate.f90 | 112 +++++++++++++++----------- src/fraggle/fraggle_io.f90 | 96 ++++++++++++++++++++++ src/fraggle/fraggle_regime.f90 | 3 + src/main/swiftest_driver.f90 | 1 - src/modules/fraggle_classes.f90 | 16 +++- src/modules/swiftest_classes.f90 | 14 ++-- src/obl/obl.f90 | 71 +++++++++++----- src/symba/symba_io.f90 | 9 ++- src/util/util_get_energy_momentum.f90 | 40 +++++---- 9 files changed, 257 insertions(+), 105 deletions(-) create mode 100644 src/fraggle/fraggle_io.f90 diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index 01fc3cf18..ad6ef5c87 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -21,14 +21,17 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? ! Internals - integer(I4B) :: i - integer(I4B) :: try - real(DP) :: r_max_start, f_spin, dEtot, dLmag - integer(I4B), parameter :: MAXTRY = 3000 - character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" - logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes - logical :: lk_plpl - + integer(I4B) :: i + integer(I4B) :: try + real(DP) :: r_max_start, f_spin, dEtot, dLmag + integer(I4B), parameter :: MAXTRY = 3000 + character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" + logical :: lk_plpl + logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes + logical, dimension(size(IEEE_USUAL)) :: fpe_flag + + ! The minimization and linear solvers can sometimes lead to floating point exceptions. Rather than halting the code entirely if this occurs, we + ! can simply fail the attempt and try again. So we need to turn off any floating point exception halting modes temporarily call ieee_get_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily fpe_quiet_modes(:) = .false. call ieee_set_halting_mode(IEEE_ALL,fpe_quiet_modes) @@ -54,17 +57,22 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa ! Start out the fragments close to the initial separation distance. This will be increased if there is any overlap or we fail to find a solution r_max_start = 1 * norm2(colliders%xb(:,2) - colliders%xb(:,1)) - try = 1 lfailure = .false. + try = 1 do while (try < MAXTRY) + if (lfailure) then + call frag%restructure(colliders, try, f_spin, r_max_start) + call frag%reset() + try = try + 1 + end if + lfailure = .false. + call ieee_set_flag(ieee_all, .false.) ! Set all fpe flags to quiet call fraggle_generate_pos_vec(frag, colliders, r_max_start) call frag%set_coordinate_system(colliders) - ! Initial velocity guess will be the barycentric velocity of the colliding system. - ! This ensures that our budgets are based on the residual velocities needed in the - ! collisional frame + ! Initial velocity guess will be the barycentric velocity of the colliding system so that the budgets are based on the much smaller collisional-frame velocities do concurrent (i = 1:nfrag) frag%vb(:, i) = frag%vbcom(:) end do @@ -73,54 +81,66 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa call frag%set_budgets(colliders) call fraggle_generate_spins(frag, colliders, f_spin, lfailure) - if (.not.lfailure) then - call fraggle_generate_tan_vel(frag, colliders, lfailure) - if (.not. lfailure) then - call fraggle_generate_rad_vel(frag, colliders, lfailure) - ! if (lfailure) write(*,*) 'Failed to find radial velocities' - if (.not.lfailure) then - call frag%get_energy_and_momentum(colliders, system, param, lbefore=.false.) - dEtot = frag%Etot_after - frag%Etot_before - dLmag = .mag. (frag%Ltot_after(:) - frag%Ltot_before(:)) - - if ((abs(dEtot + frag%Qloss) > FRAGGLE_ETOL) .or. (dEtot > 0.0_DP)) then - ! write(*,*) 'Failed due to high energy error: ',dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL - lfailure = .true. - else if ((abs(dLmag) / (.mag.frag%Ltot_before)) > FRAGGLE_LTOL) then - ! write(*,*) 'Failed due to high angular momentum error: ', dLmag / (.mag.frag%Ltot_before(:)) - lfailure = .true. - end if - end if - end if + if (lfailure) then + write(*,*) "Fraggle failed to find spins" + cycle end if - + + call fraggle_generate_tan_vel(frag, colliders, lfailure) + if (lfailure) then + write(*,*) "Fraggle failed to find tangential velocities" + cycle + end if + + call fraggle_generate_rad_vel(frag, colliders, lfailure) + if (lfailure) then + write(*,*) "Fraggle failed to find radial velocities" + cycle + end if + + call frag%get_energy_and_momentum(colliders, system, param, lbefore=.false.) + dEtot = frag%Etot_after - frag%Etot_before + dLmag = .mag. (frag%Ltot_after(:) - frag%Ltot_before(:)) + + lfailure = ((abs(dEtot + frag%Qloss) > FRAGGLE_ETOL) .or. (dEtot > 0.0_DP)) + if (lfailure) then + write(*,*) "Fraggle failed due to high energy error: ",dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL + cycle + end if + + lfailure = ((abs(dLmag) / (.mag.frag%Ltot_before)) > FRAGGLE_LTOL) + if (lfailure) then + write(*,*) "Fraggle failed due to high angular momentum error: ", dLmag / (.mag.frag%Ltot_before(:)) + cycle + end if + + ! Check if any of the usual floating point exceptions happened, and fail the try if so + call ieee_get_flag(ieee_usual, fpe_flag) + lfailure = any(fpe_flag) if (.not.lfailure) exit - call frag%restructure(colliders, try, f_spin, r_max_start) - call frag%reset() - try = try + 1 + write(*,*) "Fraggle failed due to a floating point exception: ", fpe_flag end do - ! write(*, "(' -------------------------------------------------------------------------------------')") - ! write(*, "(' Final diagnostic')") - ! write(*, "(' -------------------------------------------------------------------------------------')") + write(*, "(' -------------------------------------------------------------------------------------')") + write(*, "(' Fraggle final diagnostic')") + write(*, "(' -------------------------------------------------------------------------------------')") if (lfailure) then write(*,*) "Fraggle fragment generation failed after: ",try," tries" else write(*,*) "Fraggle fragment generation succeeded after: ",try," tries" - ! write(*, "(' dL_tot should be very small' )") - ! write(*,fmtlabel) ' dL_tot |', (.mag.(frag%Ltot_after(:) - frag%Ltot_before(:))) / (.mag.frag%Ltot_before(:)) - ! write(*, "(' dE_tot should be negative and equal to Qloss' )") - ! write(*,fmtlabel) ' dE_tot |', (frag%Etot_after - frag%Etot_before) / abs(frag%Etot_before) - ! write(*,fmtlabel) ' Qloss |', -frag%Qloss / abs(frag%Etot_before) - ! write(*,fmtlabel) ' dE - Qloss |', (frag%Etot_after - frag%Etot_before + frag%Qloss) / abs(frag%Etot_before) + write(*, "(' dL_tot should be very small' )") + write(*,fmtlabel) ' dL_tot |', (.mag.(frag%Ltot_after(:) - frag%Ltot_before(:))) / (.mag.frag%Ltot_before(:)) + write(*, "(' dE_tot should be negative and equal to Qloss' )") + write(*,fmtlabel) ' dE_tot |', (frag%Etot_after - frag%Etot_before) / abs(frag%Etot_before) + write(*,fmtlabel) ' Qloss |', -frag%Qloss / abs(frag%Etot_before) + write(*,fmtlabel) ' dE - Qloss |', (frag%Etot_after - frag%Etot_before + frag%Qloss) / abs(frag%Etot_before) end if - ! write(*, "(' -------------------------------------------------------------------------------------')") + write(*, "(' -------------------------------------------------------------------------------------')") call frag%set_original_scale(colliders) ! Restore the big array if (lk_plpl) call pl%index(param) end associate - call ieee_set_halting_mode(IEEE_ALL,fpe_halting_modes) ! Save the current halting modes so we can turn them off temporarily return diff --git a/src/fraggle/fraggle_io.f90 b/src/fraggle/fraggle_io.f90 new file mode 100644 index 000000000..dbe412167 --- /dev/null +++ b/src/fraggle/fraggle_io.f90 @@ -0,0 +1,96 @@ +submodule(fraggle_classes) s_fraggle_io + use swiftest + +contains + + module subroutine fraggle_io_log_regime(param, colliders, frag) + !! author: David A. Minton + !! + !! Writes a log of the results of the collisional regime determination + implicit none + ! Arguments + class(swiftest_parameters), intent(in) :: param + class(fraggle_colliders), intent(in) :: colliders + class(fraggle_fragments), intent(in) :: frag + ! Internals + character(STRMAX) :: errmsg + + open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *) + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, *) " Fraggle collisional regime determination results" + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, *) "----------------------- Collider information -----------------------" + write(FRAGGLE_LOG_UNIT, *) "True number of colliders : ",colliders%ncoll + write(FRAGGLE_LOG_UNIT, *) "Index list of true colliders : ",colliders%idx(1:colliders%ncoll) + write(FRAGGLE_LOG_UNIT, *) "-------------------- Two-body equialent values ---------------------" + write(FRAGGLE_LOG_UNIT, *) "mass1 : ",colliders%mass(1) + write(FRAGGLE_LOG_UNIT, *) "radius1 : ",colliders%radius(1) + write(FRAGGLE_LOG_UNIT, *) "xb1 : ",colliders%xb(:,1) + write(FRAGGLE_LOG_UNIT, *) "vb1 : ",colliders%vb(:,1) + write(FRAGGLE_LOG_UNIT, *) "rot1 : ",colliders%rot(:,1) + write(FRAGGLE_LOG_UNIT, *) "Ip1 : ",colliders%Ip(:,1) + write(FRAGGLE_LOG_UNIT, *) "L_spin1 : ",colliders%L_spin(:,1) + write(FRAGGLE_LOG_UNIT, *) "L_orbit1 : ",colliders%L_orbit(:,1) + write(FRAGGLE_LOG_UNIT, *) "mass2 : ",colliders%mass(2) + write(FRAGGLE_LOG_UNIT, *) "radius2 : ",colliders%radius(2) + write(FRAGGLE_LOG_UNIT, *) "xb2 : ",colliders%xb(:,2) + write(FRAGGLE_LOG_UNIT, *) "vb2 : ",colliders%vb(:,2) + write(FRAGGLE_LOG_UNIT, *) "rot2 : ",colliders%rot(:,2) + write(FRAGGLE_LOG_UNIT, *) "Ip2 : ",colliders%Ip(:,2) + write(FRAGGLE_LOG_UNIT, *) "L_spin2 : ",colliders%L_spin(:,2) + write(FRAGGLE_LOG_UNIT, *) "L_orbit2 : ",colliders%L_orbit(:,2) + write(FRAGGLE_LOG_UNIT, *) "------------------------------ Regime -----------------------------" + select case(frag%regime) + case(COLLRESOLVE_REGIME_MERGE) + write(FRAGGLE_LOG_UNIT, *) "Merge" + case(COLLRESOLVE_REGIME_DISRUPTION) + write(FRAGGLE_LOG_UNIT, *) "Disruption" + case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + write(FRAGGLE_LOG_UNIT, *) "Supercatastrophic disruption" + case(COLLRESOLVE_REGIME_GRAZE_AND_MERGE) + write(FRAGGLE_LOG_UNIT, *) "Graze and merge" + case(COLLRESOLVE_REGIME_HIT_AND_RUN) + write(FRAGGLE_LOG_UNIT, *) "Hit and run" + end select + write(FRAGGLE_LOG_UNIT, *) "----------------------- Fragment information ----------------------" + write(FRAGGLE_LOG_UNIT, *) "Total mass of fragments : ", frag%mtot + write(FRAGGLE_LOG_UNIT, *) "Largest fragment mass : ", frag%mass_dist(1) + write(FRAGGLE_LOG_UNIT, *) "Second-largest fragment mass : ", frag%mass_dist(2) + write(FRAGGLE_LOG_UNIT, *) "Remaining fragment mass : ", frag%mass_dist(3) + write(FRAGGLE_LOG_UNIT, *) "Remaining fragment mass : ", frag%mass_dist(3) + write(FRAGGLE_LOG_UNIT, *) "Center of mass position : ", frag%xbcom(:) + write(FRAGGLE_LOG_UNIT, *) "Center of mass velocity : ", frag%vbcom(:) + write(FRAGGLE_LOG_UNIT, *) "Energy loss : ",frag%Qloss + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + + return + 667 continue + write(*,*) "Error writing Fraggle regime information to log file: " // trim(adjustl(errmsg)) + end subroutine fraggle_io_log_regime + + + module subroutine fraggle_io_log_start(param) + !! author: David A. Minton + !! + !! Checks to see if the Fraggle log file needs to be replaced if this is a new run, or appended if this is a restarted run + implicit none + ! Arguments + class(swiftest_parameters), intent(in) :: param + ! Internals + character(STRMAX) :: errmsg + logical :: fileExists + + inquire(file=FRAGGLE_LOG_OUT, exist=fileExists) + if (.not.param%lrestart .or. .not.fileExists) then + open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status="REPLACE", err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) "Fraggle logfile" + end if + + return + + 667 continue + write(*,*) "Error writing Fraggle log file: " // trim(adjustl(errmsg)) + end subroutine fraggle_io_log_start + +end submodule s_fraggle_io \ No newline at end of file diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index ab786917e..bdc11f7ef 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -20,6 +20,7 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) real(DP) :: min_mfrag_si, Mcb_si real(DP), dimension(NDIM) :: x1_si, v1_si, x2_si, v2_si real(DP) :: mlr, mslr, mtot, dentot, msys, msys_new, Qloss, impact_parameter + logical :: fileExists associate(colliders => self) ! Convert all quantities to SI units and determine which of the pair is the projectile vs. target before sending them to the regime determination subroutine @@ -62,6 +63,8 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) frag%mtot = sum(colliders%mass(:)) frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot + + call fraggle_io_log_regime(param, colliders, frag) end associate return diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index e7b327e93..7f35cb0d2 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -61,7 +61,6 @@ program swiftest_driver call nbody_system%dump(param) end if - !> Define the maximum number of threads nthreads = 1 ! In the *serial* case !$ nthreads = omp_get_max_threads() ! In the *parallel* case diff --git a/src/modules/fraggle_classes.f90 b/src/modules/fraggle_classes.f90 index d6ea0ac32..669d2a91c 100644 --- a/src/modules/fraggle_classes.f90 +++ b/src/modules/fraggle_classes.f90 @@ -7,7 +7,9 @@ module fraggle_classes implicit none public - integer(I4B), parameter :: FRAGGLE_NMASS_DIST = 3 !! Number of mass bins returned by the regime calculation (largest fragment, second largest, and remainder) + integer(I4B), parameter :: FRAGGLE_NMASS_DIST = 3 !! Number of mass bins returned by the regime calculation (largest fragment, second largest, and remainder) + character(len=*), parameter :: FRAGGLE_LOG_OUT = "fraggle.log" !! Name of log file for Fraggle diagnostic information + integer(I4B), parameter :: FRAGGLE_LOG_UNIT = 88 !! Unit number for Fraggle log file !******************************************************************************************************************************** ! fraggle_colliders class definitions and method interfaces !******************************************************************************************************************************* @@ -105,6 +107,18 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? end subroutine fraggle_generate_fragments + module subroutine fraggle_io_log_regime(param, colliders, frag) + implicit none + class(swiftest_parameters), intent(in) :: param + class(fraggle_colliders), intent(in) :: colliders + class(fraggle_fragments), intent(in) :: frag + end subroutine fraggle_io_log_regime + + module subroutine fraggle_io_log_start(param) + implicit none + class(swiftest_parameters), intent(in) :: param + end subroutine fraggle_io_log_start + !> The following interfaces are placeholders intended to satisfy the required abstract methods given by the parent class module subroutine fraggle_placeholder_accel(self, system, param, t, lbeg) use swiftest_classes, only : swiftest_nbody_system, swiftest_parameters diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 2694fcc25..363ed6f66 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -396,6 +396,7 @@ module swiftest_classes real(DP) :: ke_spin = 0.0_DP !! System spin kinetic energy real(DP) :: pe = 0.0_DP !! System potential energy real(DP) :: te = 0.0_DP !! System total energy + real(DP) :: oblpot = 0.0_DP !! System potential energy due to oblateness of the central body real(DP), dimension(NDIM) :: Lorbit = 0.0_DP !! System orbital angular momentum vector real(DP), dimension(NDIM) :: Lspin = 0.0_DP !! System spin angular momentum vector real(DP), dimension(NDIM) :: Ltot = 0.0_DP !! System angular momentum vector @@ -417,6 +418,7 @@ module swiftest_classes procedure :: write_frame => io_write_frame_system !! Append a frame of output data to file procedure :: write_hdr_bin => io_write_hdr_system !! Write a header for an output frame in Fortran binary format procedure :: write_hdr_netcdf => netcdf_write_hdr_system !! Write a header for an output frame in NetCDF format + procedure :: obl_pot => obl_pot_system !! Compute the contribution to the total gravitational potential due solely to the oblateness of the central body procedure :: initialize => setup_initialize_system !! Initialize the system from input files procedure :: init_particle_info => setup_initialize_particle_info_system !! Initialize the system from input files procedure :: step_spin => tides_step_spin_system !! Steps the spins of the massive & central bodies due to tides. @@ -927,16 +929,10 @@ module subroutine obl_acc_tp(self, system) class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object end subroutine obl_acc_tp - module subroutine obl_pot(npl, Mcb, Mpl, j2rp2, j4rp4, xh, irh, oblpot) + module subroutine obl_pot_system(self) implicit none - integer(I4B), intent(in) :: npl - real(DP), intent(in) :: Mcb - real(DP), dimension(:), intent(in) :: Mpl - real(DP), intent(in) :: j2rp2, j4rp4 - real(DP), dimension(:), intent(in) :: irh - real(DP), dimension(:, :), intent(in) :: xh - real(DP), intent(out) :: oblpot - end subroutine obl_pot + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + end subroutine obl_pot_system module subroutine orbel_el2xv_vec(self, cb) implicit none diff --git a/src/obl/obl.f90 b/src/obl/obl.f90 index 035a54b18..977fc620c 100644 --- a/src/obl/obl.f90 +++ b/src/obl/obl.f90 @@ -106,7 +106,8 @@ module subroutine obl_acc_tp(self, system) end subroutine obl_acc_tp - module subroutine obl_pot(npl, Mcb, Mpl, j2rp2, j4rp4, xh, irh, oblpot) + + module subroutine obl_pot_system(self) !! author: David A. Minton !! !! Compute the contribution to the total gravitational potential due solely to the oblateness of the central body @@ -118,33 +119,59 @@ module subroutine obl_pot(npl, Mcb, Mpl, j2rp2, j4rp4, xh, irh, oblpot) !! Adapted from Hal Levison's Swift routine obl_pot.f implicit none ! Arguments - integer(I4B), intent(in) :: npl - real(DP), intent(in) :: Mcb - real(DP), dimension(:), intent(in) :: Mpl - real(DP), intent(in) :: j2rp2, j4rp4 - real(DP), dimension(:), intent(in) :: irh - real(DP), dimension(:, :), intent(in) :: xh - real(DP), intent(out) :: oblpot + class(swiftest_nbody_system), intent(inout) :: self !! Swiftest nbody system object + ! Internals + integer(I4B) :: i + real(DP), dimension(self%pl%nbody) :: oblpot_arr + + associate(system => self, pl => self%pl, npl => self%pl%nbody, cb => self%cb) + if (.not. any(pl%lmask(1:npl))) return + do concurrent (i = 1:npl, pl%lmask(i)) + oblpot_arr(i) = obl_pot_one(npl, cb%Gmass, pl%Gmass(i), cb%j2rp2, cb%j4rp4, pl%xh(3,i), 1.0_DP / norm2(pl%xh(:,i))) + end do + system%oblpot = sum(oblpot_arr, pl%lmask(1:npl)) + end associate + + return + end subroutine obl_pot_system + + + elemental function obl_pot_one(npl, GMcb, GMpl, j2rp2, j4rp4, zh, irh) result(oblpot) + !! author: David A. Minton + !! + !! Compute the contribution to the total gravitational potential due solely to the oblateness of the central body from a single massive body + !! Returned value does not include monopole term or terms higher than J4 + !! + !! Reference: MacMillan, W. D. 1958. The Theory of the Potential, (Dover Publications), 363. + !! + !! Adapted from David E. Kaufmann's Swifter routine: obl_pot.f90 + !! Adapted from Hal Levison's Swift routine obl_pot.f + implicit none + ! Arguments + integer(I4B), intent(in) :: npl !! Number of massive bodies + real(DP), intent(in) :: GMcb !! G*mass of the central body + real(DP), intent(in) :: GMpl !! G*mass of the massive body + real(DP), intent(in) :: j2rp2 !! J_2 / R**2 of the central body + real(DP), intent(in) :: j4rp4 !! J_2 / R**4 of the central body + real(DP), intent(in) :: zh !! z-component of the heliocentric distance vector of the massive body + real(DP), intent(in) :: irh !! Inverse of the heliocentric distance magnitude of the massive body + ! Result + real(DP) :: oblpot !! Gravitational potential ! Internals integer(I4B) :: i real(DP) :: rinv2, t0, t1, t2, t3, p2, p4, mu - oblpot = 0.0_DP - mu = Mcb - do i = 1, npl - rinv2 = irh(i)**2 - t0 = mu * Mpl(i) * rinv2 * irh(i) - t1 = j2rp2 - t2 = xh(3, i) * xh(3, i) * rinv2 - t3 = j4rp4 * rinv2 - p2 = 0.5_DP * (3 * t2 - 1.0_DP) - p4 = 0.125_DP * ((35 * t2 - 30.0_DP) * t2 + 3.0_DP) - oblpot = oblpot + t0 * (t1 * p2 + t3 * p4) - end do + rinv2 = irh**2 + t0 = GMcb * GMpl * rinv2 * irh + t1 = j2rp2 + t2 = zh**2 * rinv2 + t3 = j4rp4 * rinv2 + p2 = 0.5_DP * (3 * t2 - 1.0_DP) + p4 = 0.125_DP * ((35 * t2 - 30.0_DP) * t2 + 3.0_DP) + oblpot = t0 * (t1 * p2 + t3 * p4) return - end subroutine obl_pot - + end function obl_pot_one end submodule s_obl diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 71717aabe..d7741e38f 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -22,9 +22,9 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms integer(I4B) :: ilength, ifirst, ilast !! Variables used to parse input file character(STRMAX) :: line !! Line of the input file character (len=:), allocatable :: line_trim,param_name, param_value !! Strings used to parse the param file - integer(I4B) :: nseeds, nseeds_from_file, i - logical :: seed_set = .false. !! Is the random seed set in the input file? - character(len=*),parameter :: linefmt = '(A)' + integer(I4B) :: nseeds, nseeds_from_file, i + logical :: seed_set = .false. !! Is the random seed set in the input file? + character(len=*),parameter :: linefmt = '(A)' associate(param => self) call io_param_reader(param, unit, iotype, v_list, iostat, iomsg) @@ -81,7 +81,6 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms end do 1 continue - if (self%GMTINY < 0.0_DP) then write(iomsg,*) "GMTINY invalid or not set: ", self%GMTINY iostat = -1 @@ -100,6 +99,8 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms write(*,*) "SEED: N,VAL = ",size(param%seed), param%seed(:) if (param%min_GMfrag < 0.0_DP) param%min_GMfrag = param%GMTINY write(*,*) "MIN_GMFRAG = ", self%min_GMfrag + ! For the Fraggle log file, delete it if this is a new run and the file exists + call fraggle_io_log_start(param) end if if (.not.self%lclose) then diff --git a/src/util/util_get_energy_momentum.f90 b/src/util/util_get_energy_momentum.f90 index 70fbb16df..803b7bac1 100644 --- a/src/util/util_get_energy_momentum.f90 +++ b/src/util/util_get_energy_momentum.f90 @@ -19,7 +19,6 @@ module subroutine util_get_energy_momentum_system(self, param) real(DP), dimension(self%pl%nbody) :: irh, kepl, kespinpl, pecb real(DP), dimension(self%pl%nbody) :: Lplorbitx, Lplorbity, Lplorbitz real(DP), dimension(self%pl%nbody) :: Lplspinx, Lplspiny, Lplspinz - logical, dimension(self%pl%nbody) :: lstatus real(DP), dimension(NDIM) :: Lcborbit, Lcbspin real(DP), dimension(:), allocatable :: pepl logical, dimension(:), allocatable :: lstatpl @@ -41,13 +40,13 @@ module subroutine util_get_energy_momentum_system(self, param) Lplspiny(:) = 0.0_DP Lplspinz(:) = 0.0_DP - lstatus(1:npl) = pl%status(1:npl) /= INACTIVE + pl%lmask(1:npl) = pl%status(1:npl) /= INACTIVE - system%GMtot = cb%Gmass + sum(pl%Gmass(1:npl), lstatus(1:npl)) + system%GMtot = cb%Gmass + sum(pl%Gmass(1:npl), pl%lmask(1:npl)) kecb = cb%mass * dot_product(cb%vb(:), cb%vb(:)) Lcborbit(:) = cb%mass * (cb%xb(:) .cross. cb%vb(:)) - do concurrent (i = 1:npl, lstatus(i)) + do concurrent (i = 1:npl, pl%lmask(i)) hx = pl%xb(2,i) * pl%vb(3,i) - pl%xb(3,i) * pl%vb(2,i) hy = pl%xb(3,i) * pl%vb(1,i) - pl%xb(1,i) * pl%vb(3,i) hz = pl%xb(1,i) * pl%vb(2,i) - pl%xb(2,i) * pl%vb(1,i) @@ -67,7 +66,7 @@ module subroutine util_get_energy_momentum_system(self, param) ! For simplicity, we always assume that the rotation pole is the 3rd principal axis Lcbspin(:) = cb%Ip(3) * cb%mass * cb%radius**2 * cb%rot(:) - do concurrent (i = 1:npl, lstatus(i)) + do concurrent (i = 1:npl, pl%lmask(i)) ! Currently we assume that the rotation pole is the 3rd principal axis ! Angular momentum from spin Lplspinx(i) = pl%mass(i) * pl%Ip(3,i) * pl%radius(i)**2 * pl%rot(1,i) @@ -83,11 +82,11 @@ module subroutine util_get_energy_momentum_system(self, param) end if ! Do the central body potential energy component first - where(.not. lstatus(1:npl)) + where(.not. pl%lmask(1:npl)) pecb(1:npl) = 0.0_DP end where - do concurrent(i = 1:npl, lstatus(i)) + do concurrent(i = 1:npl, pl%lmask(i)) pecb(i) = -cb%Gmass * pl%mass(i) / norm2(pl%xb(:,i)) end do @@ -97,7 +96,7 @@ module subroutine util_get_energy_momentum_system(self, param) do concurrent (k = 1:nplpl) i = pl%k_plpl(1,k) j = pl%k_plpl(2,k) - lstatpl(k) = (lstatus(i) .and. lstatus(j)) + lstatpl(k) = (pl%lmask(i) .and. pl%lmask(j)) end do where(.not.lstatpl(1:nplpl)) @@ -110,29 +109,26 @@ module subroutine util_get_energy_momentum_system(self, param) pepl(k) = -(pl%Gmass(i) * pl%mass(j)) / norm2(pl%xb(:, i) - pl%xb(:, j)) end do - system%pe = sum(pepl(:), lstatpl(:)) + sum(pecb(1:npl), lstatus(1:npl)) + system%pe = sum(pepl(:), lstatpl(:)) + sum(pecb(1:npl), pl%lmask(1:npl)) deallocate(lstatpl, pepl) - system%ke_orbit = 0.5_DP * (kecb + sum(kepl(1:npl), lstatus(:))) - if (param%lrotation) system%ke_spin = 0.5_DP * (kespincb + sum(kespinpl(1:npl), lstatus(:))) + system%ke_orbit = 0.5_DP * (kecb + sum(kepl(1:npl), pl%lmask(1:npl))) + if (param%lrotation) system%ke_spin = 0.5_DP * (kespincb + sum(kespinpl(1:npl), pl%lmask(1:npl))) ! Potential energy from the oblateness term if (param%loblatecb) then - do concurrent(i = 1:npl, lstatus(i)) - irh(i) = 1.0_DP / norm2(pl%xh(:,i)) - end do - call obl_pot(npl, cb%Gmass, pl%mass, cb%j2rp2, cb%j4rp4, pl%xh, irh, oblpot) - system%pe = system%pe + oblpot + call system%obl_pot() + system%pe = system%pe + system%oblpot end if - system%Lorbit(1) = Lcborbit(1) + sum(Lplorbitx(1:npl), lstatus(1:npl)) - system%Lorbit(2) = Lcborbit(2) + sum(Lplorbity(1:npl), lstatus(1:npl)) - system%Lorbit(3) = Lcborbit(3) + sum(Lplorbitz(1:npl), lstatus(1:npl)) + system%Lorbit(1) = Lcborbit(1) + sum(Lplorbitx(1:npl), pl%lmask(1:npl)) + system%Lorbit(2) = Lcborbit(2) + sum(Lplorbity(1:npl), pl%lmask(1:npl)) + system%Lorbit(3) = Lcborbit(3) + sum(Lplorbitz(1:npl), pl%lmask(1:npl)) if (param%lrotation) then - system%Lspin(1) = Lcbspin(1) + sum(Lplspinx(1:npl), lstatus(1:npl)) - system%Lspin(2) = Lcbspin(2) + sum(Lplspiny(1:npl), lstatus(1:npl)) - system%Lspin(3) = Lcbspin(3) + sum(Lplspinz(1:npl), lstatus(1:npl)) + system%Lspin(1) = Lcbspin(1) + sum(Lplspinx(1:npl), pl%lmask(1:npl)) + system%Lspin(2) = Lcbspin(2) + sum(Lplspiny(1:npl), pl%lmask(1:npl)) + system%Lspin(3) = Lcbspin(3) + sum(Lplspinz(1:npl), pl%lmask(1:npl)) end if system%te = system%ke_orbit + system%ke_spin + system%pe From d9c89b348f17af5787e11c6bb55f30bef1683f7f Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 12:40:34 -0400 Subject: [PATCH 282/315] Finished adding diagnostic information to Fraggle logfile. The Fraggle logfile now contains all information about collisions in SyMBA (fragmentation, merger, and others). --- src/fraggle/fraggle_generate.f90 | 120 +++++++++++---------- src/fraggle/fraggle_io.f90 | 172 +++++++++++++++++++++++++++++-- src/fraggle/fraggle_regime.f90 | 2 +- src/modules/fraggle_classes.f90 | 23 ++++- src/modules/swiftest_globals.f90 | 7 +- src/modules/symba_classes.f90 | 10 -- src/symba/symba_collision.f90 | 127 +++++++++-------------- src/symba/symba_discard.f90 | 23 ++++- src/symba/symba_io.f90 | 4 +- 9 files changed, 324 insertions(+), 164 deletions(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index ad6ef5c87..f66904599 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -25,10 +25,10 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa integer(I4B) :: try real(DP) :: r_max_start, f_spin, dEtot, dLmag integer(I4B), parameter :: MAXTRY = 3000 - character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" logical :: lk_plpl logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes logical, dimension(size(IEEE_USUAL)) :: fpe_flag + character(len=STRMAX) :: message ! The minimization and linear solvers can sometimes lead to floating point exceptions. Rather than halting the code entirely if this occurs, we ! can simply fail the attempt and try again. So we need to turn off any floating point exception halting modes temporarily @@ -39,7 +39,8 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa associate(frag => self, nfrag => self%nbody, pl => system%pl) if (nfrag < NFRAG_MIN) then - write(*,*) "Fraggle needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." + write(message,*) "Fraggle needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." + call fraggle_io_log_one_message(message) lfailure = .true. return end if @@ -60,6 +61,8 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa lfailure = .false. try = 1 do while (try < MAXTRY) + write(message,*) try + call fraggle_io_log_one_message("Fraggle try " // trim(adjustl(message))) if (lfailure) then call frag%restructure(colliders, try, f_spin, r_max_start) call frag%reset() @@ -82,19 +85,19 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa call fraggle_generate_spins(frag, colliders, f_spin, lfailure) if (lfailure) then - write(*,*) "Fraggle failed to find spins" + call fraggle_io_log_one_message("Fraggle failed to find spins") cycle end if call fraggle_generate_tan_vel(frag, colliders, lfailure) if (lfailure) then - write(*,*) "Fraggle failed to find tangential velocities" + call fraggle_io_log_one_message("Fraggle failed to find tangential velocities") cycle end if call fraggle_generate_rad_vel(frag, colliders, lfailure) if (lfailure) then - write(*,*) "Fraggle failed to find radial velocities" + call fraggle_io_log_one_message("Fraggle failed to find radial velocities") cycle end if @@ -104,13 +107,15 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa lfailure = ((abs(dEtot + frag%Qloss) > FRAGGLE_ETOL) .or. (dEtot > 0.0_DP)) if (lfailure) then - write(*,*) "Fraggle failed due to high energy error: ",dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL + write(message, *) dEtot, abs(dEtot + frag%Qloss) / FRAGGLE_ETOL + call fraggle_io_log_one_message("Fraggle failed due to high energy error: " // trim(adjustl(message))) cycle end if lfailure = ((abs(dLmag) / (.mag.frag%Ltot_before)) > FRAGGLE_LTOL) if (lfailure) then - write(*,*) "Fraggle failed due to high angular momentum error: ", dLmag / (.mag.frag%Ltot_before(:)) + write(message,*) dLmag / (.mag.frag%Ltot_before(:)) + call fraggle_io_log_one_message("Fraggle failed due to high angular momentum error: " // trim(adjustl(message))) cycle end if @@ -118,24 +123,18 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa call ieee_get_flag(ieee_usual, fpe_flag) lfailure = any(fpe_flag) if (.not.lfailure) exit - write(*,*) "Fraggle failed due to a floating point exception: ", fpe_flag + write(message,*) "Fraggle failed due to a floating point exception: ", fpe_flag + call fraggle_io_log_one_message(message) end do - write(*, "(' -------------------------------------------------------------------------------------')") - write(*, "(' Fraggle final diagnostic')") - write(*, "(' -------------------------------------------------------------------------------------')") + write(message,*) try if (lfailure) then - write(*,*) "Fraggle fragment generation failed after: ",try," tries" + call fraggle_io_log_one_message("Fraggle fragment generation failed after " // trim(adjustl(message)) // " tries") else - write(*,*) "Fraggle fragment generation succeeded after: ",try," tries" - write(*, "(' dL_tot should be very small' )") - write(*,fmtlabel) ' dL_tot |', (.mag.(frag%Ltot_after(:) - frag%Ltot_before(:))) / (.mag.frag%Ltot_before(:)) - write(*, "(' dE_tot should be negative and equal to Qloss' )") - write(*,fmtlabel) ' dE_tot |', (frag%Etot_after - frag%Etot_before) / abs(frag%Etot_before) - write(*,fmtlabel) ' Qloss |', -frag%Qloss / abs(frag%Etot_before) - write(*,fmtlabel) ' dE - Qloss |', (frag%Etot_after - frag%Etot_before + frag%Qloss) / abs(frag%Etot_before) + call fraggle_io_log_one_message("Fraggle fragment generation succeeded after " // trim(adjustl(message)) // " tries") + call fraggle_io_log_generate(frag) end if - write(*, "(' -------------------------------------------------------------------------------------')") + call frag%set_original_scale(colliders) ! Restore the big array @@ -226,7 +225,8 @@ subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure) logical, intent(out) :: lfailure !! Logical flag indicating whether this step fails or succeeds! ! Internals real(DP), dimension(NDIM) :: L_remainder, rot_L, rot_ke - integer(I4B) :: i + integer(I4B) :: i + character(len=STRMAX) :: message associate(nfrag => frag%nbody) lfailure = .false. @@ -252,6 +252,20 @@ subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure) frag%ke_spin = 0.5_DP * frag%ke_spin lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP) + + if (lfailure) then + call fraggle_io_log_one_message(" ") + call fraggle_io_log_one_message("Spin failure diagnostics") + write(message, *) frag%ke_budget + call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message))) + write(message, *) frag%ke_spin + call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message))) + write(message, *) frag%ke_orbit + call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message))) + write(message, *) frag%ke_budget - frag%ke_spin - frag%ke_orbit + call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message))) + end if + end associate return @@ -286,27 +300,12 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) real(DP), dimension(frag%nbody) :: kefrag type(lambda_obj) :: spinfunc type(lambda_obj_err) :: objective_function - real(DP), dimension(NDIM) :: Li, L_remainder + real(DP), dimension(NDIM) :: Li, L_remainder, L_frag_tot + character(len=STRMAX) :: message associate(nfrag => frag%nbody) lfailure = .false. - ! write(*,*) '***************************************************' - ! write(*,*) 'Original dis : ',norm2(x(:,2) - x(:,1)) - ! write(*,*) 'r_max : ',r_max - ! write(*,*) 'f_spin : ',f_spin - ! write(*,*) '***************************************************' - ! write(*,*) 'Energy balance so far: ' - ! write(*,*) 'frag%ke_budget : ',frag%ke_budget - ! write(*,*) 'ke_orbit_before: ',ke_orbit_before - ! write(*,*) 'ke_orbit_after : ',ke_orbit_after - ! write(*,*) 'ke_spin_before : ',ke_spin_before - ! write(*,*) 'ke_spin_after : ',ke_spin_after - ! write(*,*) 'pe_before : ',pe_before - ! write(*,*) 'pe_after : ',pe_after - ! write(*,*) 'Qloss : ',Qloss - ! write(*,*) '***************************************************' - allocate(v_t_initial, mold=frag%v_t_mag) v_t_initial(:) = 0.0_DP frag%v_coll(:,:) = 0.0_DP @@ -351,14 +350,22 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) ! If we are over the energy budget, flag this as a failure so we can try again lfailure = ((frag%ke_budget - frag%ke_spin - frag%ke_orbit) < 0.0_DP) - ! write(*,*) 'Tangential' - ! write(*,*) 'Failure? ',lfailure - ! call calculate_fragment_ang_mtm() - ! write(*,*) '|L_remainder| : ',.mag.(frag%L_budget(:) - L_frag_tot(:)) / Lmag_before - ! write(*,*) 'frag%ke_budget: ',frag%ke_budget - ! write(*,*) 'frag%ke_spin : ',frag%ke_spin - ! write(*,*) 'ke_tangential : ',frag%ke_orbit - ! write(*,*) 'ke_radial : ',frag%ke_budget - frag%ke_spin - frag%ke_orbit + if (lfailure) then + call fraggle_io_log_one_message(" ") + call fraggle_io_log_one_message("Tangential velocity failure diagnostics") + call frag%get_ang_mtm() + L_frag_tot = frag%L_spin(:) + frag%L_orbit(:) + write(message, *) .mag.(frag%L_budget(:) - L_frag_tot(:)) / (.mag.frag%Ltot_before(:)) + call fraggle_io_log_one_message("|L_remainder| : " // trim(adjustl(message))) + write(message, *) frag%ke_budget + call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message))) + write(message, *) frag%ke_spin + call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message))) + write(message, *) frag%ke_orbit + call fraggle_io_log_one_message("ke_tangential : " // trim(adjustl(message))) + write(message, *) frag%ke_budget - frag%ke_spin - frag%ke_orbit + call fraggle_io_log_one_message("ke_radial : " // trim(adjustl(message))) + end if end associate return @@ -465,6 +472,7 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma real(DP), dimension(:,:), allocatable :: v_r type(lambda_obj) :: objective_function + character(len=STRMAX) :: message associate(nfrag => frag%nbody) ! Set the "target" ke for the radial component @@ -497,13 +505,19 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) end do frag%ke_orbit = 0.5_DP * frag%ke_orbit - ! write(*,*) 'Radial' - ! write(*,*) 'Failure? ',lfailure - ! write(*,*) 'frag%ke_budget: ',frag%ke_budget - ! write(*,*) 'frag%ke_spin : ',frag%ke_spin - ! write(*,*) 'frag%ke_orbit : ',frag%ke_orbit - ! write(*,*) 'ke_remainder : ',frag%ke_budget - (frag%ke_orbit + frag%ke_spin) - lfailure = .false. + lfailure = abs((frag%ke_budget - (frag%ke_orbit + frag%ke_spin)) / frag%ke_budget) > FRAGGLE_ETOL + if (lfailure) then + call fraggle_io_log_one_message(" ") + call fraggle_io_log_one_message("Radial velocity failure diagnostics") + write(message, *) frag%ke_budget + call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message))) + write(message, *) frag%ke_spin + call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message))) + write(message, *) frag%ke_orbit + call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message))) + write(message, *) frag%ke_budget - (frag%ke_orbit + frag%ke_spin) + call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message))) + end if end associate return diff --git a/src/fraggle/fraggle_io.f90 b/src/fraggle/fraggle_io.f90 index dbe412167..72d4adfa1 100644 --- a/src/fraggle/fraggle_io.f90 +++ b/src/fraggle/fraggle_io.f90 @@ -3,20 +3,178 @@ contains - module subroutine fraggle_io_log_regime(param, colliders, frag) + module subroutine fraggle_io_log_generate(frag) !! author: David A. Minton !! - !! Writes a log of the results of the collisional regime determination + !! Writes a log of the results of the fragment generation implicit none ! Arguments - class(swiftest_parameters), intent(in) :: param - class(fraggle_colliders), intent(in) :: colliders class(fraggle_fragments), intent(in) :: frag ! Internals + integer(I4B) :: i + character(STRMAX) :: errmsg + character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" + + open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, *) " Fraggle fragment generation results" + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, "(' dL_tot should be very small' )") + write(FRAGGLE_LOG_UNIT,fmtlabel) ' dL_tot |', (.mag.(frag%Ltot_after(:) - frag%Ltot_before(:))) / (.mag.frag%Ltot_before(:)) + write(FRAGGLE_LOG_UNIT, "(' dE_tot should be negative and equal to Qloss' )") + write(FRAGGLE_LOG_UNIT,fmtlabel) ' dE_tot |', (frag%Etot_after - frag%Etot_before) / abs(frag%Etot_before) + write(FRAGGLE_LOG_UNIT,fmtlabel) ' Qloss |', -frag%Qloss / abs(frag%Etot_before) + write(FRAGGLE_LOG_UNIT,fmtlabel) ' dE - Qloss |', (frag%Etot_after - frag%Etot_before + frag%Qloss) / abs(frag%Etot_before) + write(FRAGGLE_LOG_UNIT, "(' -------------------------------------------------------------------------------------')") + write(FRAGGLE_LOG_UNIT, *) "Individual fragment values (collisional system natural units)" + write(FRAGGLE_LOG_UNIT, *) "mass" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%mass(i) + end do + write(FRAGGLE_LOG_UNIT, *) "x_coll" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%x_coll(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "v_coll" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%v_coll(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "xb" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%xb(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "vb" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%vb(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "rot" + do i = 1, frag%nbody + write(FRAGGLE_LOG_UNIT, *) i, frag%rot(:,i) + end do + + close(FRAGGLE_LOG_UNIT) + + return + 667 continue + write(*,*) "Error writing Fraggle message to log file: " // trim(adjustl(errmsg)) + end subroutine fraggle_io_log_generate + + + module subroutine fraggle_io_log_one_message(message) + !! author: David A. Minton + !! + !! Writes a single message to the fraggle log file + implicit none + ! Arguments + character(len=*), intent(in) :: message + ! Internals + character(STRMAX) :: errmsg + + open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *) trim(adjustl(message)) + close(FRAGGLE_LOG_UNIT) + + return + 667 continue + write(*,*) "Error writing Fraggle message to log file: " // trim(adjustl(errmsg)) + end subroutine fraggle_io_log_one_message + + + module subroutine fraggle_io_log_pl(pl, param) + !! author: David A. Minton + !! + !! Writes a single message to the fraggle log file + implicit none + ! Arguments + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object (only the new bodies generated in a collision) + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + ! Internals + integer(I4B) :: i + character(STRMAX) :: errmsg + + open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) + write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) + + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, *) " Fraggle fragment final body properties" + write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + write(FRAGGLE_LOG_UNIT, *) "id, name" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%id(i), pl%info(i)%name + end do + write(FRAGGLE_LOG_UNIT, *) "mass, Gmass" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%mass(i), pl%Gmass(i) + end do + write(FRAGGLE_LOG_UNIT, *) "radius" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%radius(i) + end do + write(FRAGGLE_LOG_UNIT, *) "xb" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%xb(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "vb" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%vb(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "xh" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%xh(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "vh" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%vh(:,i) + end do + + if (param%lrotation) then + write(FRAGGLE_LOG_UNIT, *) "rot" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%rot(:,i) + end do + write(FRAGGLE_LOG_UNIT, *) "Ip" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%Ip(:,i) + end do + end if + + if (param%ltides) then + write(FRAGGLE_LOG_UNIT, *) "Q" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%Q(i) + end do + write(FRAGGLE_LOG_UNIT, *) "k2" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%k2(i) + end do + write(FRAGGLE_LOG_UNIT, *) "tlag" + do i = 1, pl%nbody + write(FRAGGLE_LOG_UNIT, *) i, pl%tlag(i) + end do + end if + + close(FRAGGLE_LOG_UNIT) + + return + 667 continue + write(*,*) "Error writing Fraggle message to log file: " // trim(adjustl(errmsg)) + end subroutine fraggle_io_log_pl + + + module subroutine fraggle_io_log_regime(colliders, frag) + !! author: David A. Minton + !! + !! Writes a log of the results of the collisional regime determination + implicit none + ! Arguments + class(fraggle_colliders), intent(in) :: colliders !! Fraggle collider system object + class(fraggle_fragments), intent(in) :: frag !! Fraggle fragment object + ! Internals character(STRMAX) :: errmsg open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status = 'OLD', position = 'APPEND', form = 'FORMATTED', err = 667, iomsg = errmsg) - write(FRAGGLE_LOG_UNIT, *) + write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" write(FRAGGLE_LOG_UNIT, *) " Fraggle collisional regime determination results" write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" @@ -61,8 +219,9 @@ module subroutine fraggle_io_log_regime(param, colliders, frag) write(FRAGGLE_LOG_UNIT, *) "Remaining fragment mass : ", frag%mass_dist(3) write(FRAGGLE_LOG_UNIT, *) "Center of mass position : ", frag%xbcom(:) write(FRAGGLE_LOG_UNIT, *) "Center of mass velocity : ", frag%vbcom(:) - write(FRAGGLE_LOG_UNIT, *) "Energy loss : ",frag%Qloss + write(FRAGGLE_LOG_UNIT, *) "Energy loss : ", frag%Qloss write(FRAGGLE_LOG_UNIT, *) "--------------------------------------------------------------------" + close(FRAGGLE_LOG_UNIT) return 667 continue @@ -86,6 +245,7 @@ module subroutine fraggle_io_log_start(param) open(unit=FRAGGLE_LOG_UNIT, file=FRAGGLE_LOG_OUT, status="REPLACE", err = 667, iomsg = errmsg) write(FRAGGLE_LOG_UNIT, *, err = 667, iomsg = errmsg) "Fraggle logfile" end if + close(FRAGGLE_LOG_UNIT) return diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index bdc11f7ef..eb614d951 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -64,7 +64,7 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot - call fraggle_io_log_regime(param, colliders, frag) + call fraggle_io_log_regime(colliders, frag) end associate return diff --git a/src/modules/fraggle_classes.f90 b/src/modules/fraggle_classes.f90 index 669d2a91c..8dc81c303 100644 --- a/src/modules/fraggle_classes.f90 +++ b/src/modules/fraggle_classes.f90 @@ -9,7 +9,8 @@ module fraggle_classes integer(I4B), parameter :: FRAGGLE_NMASS_DIST = 3 !! Number of mass bins returned by the regime calculation (largest fragment, second largest, and remainder) character(len=*), parameter :: FRAGGLE_LOG_OUT = "fraggle.log" !! Name of log file for Fraggle diagnostic information - integer(I4B), parameter :: FRAGGLE_LOG_UNIT = 88 !! Unit number for Fraggle log file + integer(I4B), parameter :: FRAGGLE_LOG_UNIT = 76 !! Unit number for Fraggle log file + !******************************************************************************************************************************** ! fraggle_colliders class definitions and method interfaces !******************************************************************************************************************************* @@ -107,9 +108,25 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa logical, intent(out) :: lfailure !! Answers the question: Should this have been a merger instead? end subroutine fraggle_generate_fragments - module subroutine fraggle_io_log_regime(param, colliders, frag) + module subroutine fraggle_io_log_generate(frag) + implicit none + class(fraggle_fragments), intent(in) :: frag + end subroutine fraggle_io_log_generate + + module subroutine fraggle_io_log_one_message(message) + implicit none + character(len=*), intent(in) :: message + character(STRMAX) :: errmsg + end subroutine fraggle_io_log_one_message + + module subroutine fraggle_io_log_pl(pl, param) + implicit none + class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object (only the new bodies generated in a collision) + class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + end subroutine fraggle_io_log_pl + + module subroutine fraggle_io_log_regime(colliders, frag) implicit none - class(swiftest_parameters), intent(in) :: param class(fraggle_colliders), intent(in) :: colliders class(fraggle_fragments), intent(in) :: frag end subroutine fraggle_io_log_regime diff --git a/src/modules/swiftest_globals.f90 b/src/modules/swiftest_globals.f90 index 72d204a49..1f9c6028c 100644 --- a/src/modules/swiftest_globals.f90 +++ b/src/modules/swiftest_globals.f90 @@ -24,6 +24,8 @@ module swiftest_globals real(DP), parameter :: THIRD = 0.333333333333333333333333333333333333333_DP !! Definition of 1 / 3 real(DP), parameter :: DEG2RAD = PI / 180.0_DP !! Definition of conversion factor from degrees to radians real(DP), parameter :: RAD2DEG = 180.0_DP / PI !! Definition of conversion factor from degrees to radians + real(DP), parameter :: GC = 6.6743E-11_DP !! Universal gravitational constant in SI units + real(DP), parameter :: einsteinC = 299792458.0_DP !! Speed of light in SI units integer(I4B), parameter :: LOWERCASE_BEGIN = iachar('a') !! ASCII character set parameter for lower to upper conversion - start of lowercase integer(I4B), parameter :: LOWERCASE_END = iachar('z') !! ASCII character set parameter for lower to upper conversion - end of lowercase @@ -69,7 +71,6 @@ module swiftest_globals integer(I4B), parameter :: USAGE = -2 !! Symbolic name for function return/flag code for printing the usage message integer(I4B), parameter :: HELP = -3 !! Symbolic name for function return/flag code for printing the usage message - character(*), parameter :: SUCCESS_MSG = '(/, "Normal termination of Swiftest (version ", f3.1, ")")' character(*), parameter :: FAIL_MSG = '(/, "Terminating Swiftest (version ", f3.1, ") due to error!!")' character(*), parameter :: USAGE_MSG = '("Usage: swiftest [bs|helio|ra15|rmvs|symba|tu4|whm] ")' @@ -126,15 +127,11 @@ module swiftest_globals character(*), parameter :: PARTICLE_OUTFILE = 'particle.dat' integer(I4B), parameter :: PARTICLEUNIT = 44 !! File unit number for the binary particle info output file - !> Miscellaneous constants: integer(I4B), parameter :: NDIM = 3 !! Number of dimensions in our reality integer(I4B), parameter :: NDIM2 = 2 * NDIM !! 2x the number of dimensions real(DP), parameter :: VSMALL = 2 * epsilon(1._DP) !! Very small number used to prevent floating underflow - real(DP), parameter :: GC = 6.6743E-11_DP !! Universal gravitational constant in SI units - real(DP), parameter :: einsteinC = 299792458.0_DP !! Speed of light in SI units - !> NetCDF variable names and constants character(*), parameter :: NETCDF_OUTFILE = 'bin.nc' !! Default output file name character(*), parameter :: TIME_DIMNAME = "time" !! NetCDF name of the time dimension diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index b929b5040..21986b920 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -322,16 +322,6 @@ module function symba_collision_casemerge(system, param, colliders, frag) result integer(I4B) :: status !! Status flag assigned to this outcome end function symba_collision_casemerge - module function symba_collision_casesupercatastrophic(system, param, colliders, frag) result(status) - use fraggle_classes, only : fraggle_colliders, fraggle_fragments - implicit none - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object - class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object - integer(I4B) :: status !! Status flag assigned to this outcome - end function symba_collision_casesupercatastrophic - module subroutine symba_util_index_eucl_plpl(self, param) use swiftest_classes, only : swiftest_parameters implicit none diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index a3bf27e99..5327fefd9 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -21,14 +21,20 @@ module function symba_collision_casedisruption(system, param, colliders, frag) ! Internals integer(I4B) :: i, nfrag logical :: lfailure - character(len=STRMAX) :: collider_message - - collider_message = "Disruption between" - call symba_collision_collider_message(system%pl, colliders%idx, collider_message) - write(*,*) trim(adjustl(collider_message)) + character(len=STRMAX) :: message + + select case(frag%regime) + case(COLLRESOLVE_REGIME_DISRUPTION) + message = "Disruption between" + nfrag = NFRAG_DISRUPT + case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + message = "Supercatastrophic disruption between" + nfrag = NFRAG_SUPERCAT + end select + call symba_collision_collider_message(system%pl, colliders%idx, message) + call fraggle_io_log_one_message(message) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter - nfrag = NFRAG_DISRUPT call frag%setup(nfrag, param) call frag%set_mass_dist(colliders) frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] @@ -38,7 +44,7 @@ module function symba_collision_casedisruption(system, param, colliders, frag) call frag%generate_fragments(colliders, system, param, lfailure) if (lfailure) then - write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' + call fraggle_io_log_one_message("No fragment solution found, so treat as a pure hit-and-run") status = ACTIVE nfrag = 0 select type(pl => system%pl) @@ -49,8 +55,14 @@ module function symba_collision_casedisruption(system, param, colliders, frag) end select else ! Populate the list of new bodies - write(*,'("Generating ",I2.0," fragments")') nfrag - status = DISRUPTION + write(message, *) nfrag + call fraggle_io_log_one_message("Generating " // trim(adjustl(message)) // " fragments") + select case(frag%regime) + case(COLLRESOLVE_REGIME_DISRUPTION) + status = DISRUPTION + case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + status = SUPERCATASTROPHIC + end select call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if @@ -74,12 +86,12 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r ! Internals integer(I4B) :: i, ibiggest, nfrag, jtarg, jproj logical :: lpure - character(len=STRMAX) :: collider_message + character(len=STRMAX) :: message character(len=NAMELEN) :: idstr - collider_message = "Hit and run between" - call symba_collision_collider_message(system%pl, colliders%idx, collider_message) - write(*,*) trim(adjustl(collider_message)) + message = "Hit and run between" + call symba_collision_collider_message(system%pl, colliders%idx, message) + call fraggle_io_log_one_message(trim(adjustl(message))) if (colliders%mass(1) > colliders%mass(2)) then jtarg = 1 @@ -90,7 +102,7 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r end if if (frag%mass_dist(2) > 0.9_DP * colliders%mass(jproj)) then ! Pure hit and run, so we'll just keep the two bodies untouched - write(*,*) 'Pure hit and run. No new fragments generated.' + call fraggle_io_log_one_message("Pure hit and run. No new fragments generated.") nfrag = 0 lpure = .true. else ! Imperfect hit and run, so we'll keep the largest body and destroy the other @@ -107,10 +119,11 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r call frag%generate_fragments(colliders, system, param, lpure) if (lpure) then - write(*,*) 'Should have been a pure hit and run instead' + call fraggle_io_log_one_message("Should have been a pure hit and run instead") nfrag = 0 else - write(*,'("Generating ",I2.0," fragments")') nfrag + write(message, *) nfrag + call fraggle_io_log_one_message("Generating " // trim(adjustl(message)) // " fragments") end if end if if (lpure) then ! Reset these bodies back to being active so that nothing further is done to them @@ -133,7 +146,7 @@ end function symba_collision_casehitandrun module function symba_collision_casemerge(system, param, colliders, frag) result(status) !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton !! - !! Merge planets. + !! Merge massive bodies. !! !! Adapted from David E. Kaufmann's Swifter routines symba_merge_pl.f90 and symba_discard_merge_pl.f90 !! @@ -151,12 +164,12 @@ module function symba_collision_casemerge(system, param, colliders, frag) resul real(DP), dimension(2) :: volume, density real(DP) :: pe real(DP), dimension(NDIM) :: L_spin_new - character(len=STRMAX) :: collider_message character(len=NAMELEN) :: idstr + character(len=STRMAX) :: message - collider_message = "Merging" - call symba_collision_collider_message(system%pl, colliders%idx, collider_message) - write(*,*) trim(adjustl(collider_message)) + message = "Merging" + call symba_collision_collider_message(system%pl, colliders%idx, message) + call fraggle_io_log_one_message(message) select type(pl => system%pl) class is (symba_pl) @@ -215,59 +228,6 @@ module function symba_collision_casemerge(system, param, colliders, frag) resul end function symba_collision_casemerge - module function symba_collision_casesupercatastrophic(system, param, colliders, frag) result(status) - !! author: Jennifer L.L. Pouplin, Carlisle A. Wishard, and David A. Minton - !! - !! Create the fragments resulting from a supercatastrophic collision - !! - implicit none - ! Arguments - class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object - class(symba_parameters), intent(inout) :: param !! Current run configuration parameters with SyMBA additions - class(fraggle_colliders), intent(inout) :: colliders !! Fraggle colliders object - class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragmentation system object - ! Result - integer(I4B) :: status !! Status flag assigned to this outcom - ! Internals - integer(I4B) :: i, j, nfrag - logical :: lfailure - character(len=STRMAX) :: collider_message - character(len=NAMELEN) :: idstr - - collider_message = "Supercatastrophic disruption between" - call symba_collision_collider_message(system%pl, colliders%idx, collider_message) - write(*,*) trim(adjustl(collider_message)) - - nfrag = NFRAG_SUPERCAT - call frag%setup(nfrag, param) - call frag%set_mass_dist(colliders) - frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] - param%maxid = frag%id(nfrag) - - ! Generate the position and velocity distributions of the fragments - call frag%generate_fragments(colliders, system, param, lfailure) - - if (lfailure) then - write(*,*) 'No fragment solution found, so treat as a pure hit-and-run' - status = ACTIVE - nfrag = 0 - select type(pl => system%pl) - class is (symba_pl) - pl%status(colliders%idx(:)) = status - pl%ldiscard(colliders%idx(:)) = .false. - pl%lcollision(colliders%idx(:)) = .false. - end select - else - ! Populate the list of new bodies - write(*,'("Generating ",I2.0," fragments")') nfrag - status = SUPERCATASTROPHIC - call symba_collision_mergeaddsub(system, param, colliders, frag, status) - end if - - return - end function symba_collision_casesupercatastrophic - - subroutine symba_collision_collider_message(pl, collidx, collider_message) !! author: David A. Minton !! @@ -320,7 +280,8 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec integer(I4B) :: i, j, k, nenc real(DP) :: rlim, Gmtot logical :: isplpl - character(len=STRMAX) :: timestr, idstri, idstrj + character(len=STRMAX) :: timestr, idstri, idstrj, message + lany_collision = .false. if (self%nenc == 0) return @@ -401,9 +362,10 @@ module function symba_collision_check_encounter(self, system, param, t, dt, irec write(idstrj, *) tp%id(j) write(timestr, *) t call tp%info(j)%set_value(status="DISCARDED_PLR", discard_time=t, discard_xh=tp%xh(:,j), discard_vh=tp%vh(:,j)) - write(*, *) "Particle " // trim(adjustl(tp%info(j)%name)) // " (" // trim(adjustl(idstrj)) // ")" & + write(message, *) "Particle " // trim(adjustl(tp%info(j)%name)) // " (" // trim(adjustl(idstrj)) // ")" & // " collided with massive body " // trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstri)) // ")" & // " at t = " // trim(adjustl(timestr)) + call fraggle_io_log_one_message(message) end if end if end do @@ -752,6 +714,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) class(symba_pl), allocatable :: plnew, plsub character(*), parameter :: FRAGFMT = '("Newbody",I0.7)' character(len=NAMELEN) :: newname + character(len=STRMAX) :: message select type(pl => system%pl) class is (symba_pl) @@ -852,6 +815,9 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) plnew%ldiscard(1:nfrag) = .false. plnew%levelg(1:nfrag) = pl%levelg(ibiggest) plnew%levelm(1:nfrag) = pl%levelm(ibiggest) + + ! Log the properties of the new bodies + call fraggle_io_log_pl(plnew, param) ! Append the new merged body to the list nstart = pl_adds%nbody + 1 @@ -924,10 +890,8 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) call colliders%regime(frag, system, param) select case (frag%regime) - case (COLLRESOLVE_REGIME_DISRUPTION) + case (COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) plplcollision_list%status(i) = symba_collision_casedisruption(system, param, colliders, frag) - case (COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - plplcollision_list%status(i) = symba_collision_casesupercatastrophic(system, param, colliders, frag) case (COLLRESOLVE_REGIME_HIT_AND_RUN) plplcollision_list%status(i) = symba_collision_casehitandrun(system, param, colliders, frag) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) @@ -1024,7 +988,10 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir do write(timestr,*) t - write(*, *) "Collision between massive bodies detected at time t = " // trim(adjustl(timestr)) + call fraggle_io_log_one_message("") + call fraggle_io_log_one_message("--------------------------------------------------------------------") + call fraggle_io_log_one_message("Collision between massive bodies detected at time t = " // trim(adjustl(timestr))) + call fraggle_io_log_one_message("--------------------------------------------------------------------") allocate(tmp_param, source=param) tmp_param%t = t if (param%lfragmentation) then diff --git a/src/symba/symba_discard.f90 b/src/symba/symba_discard.f90 index 24f40b1bd..704d11f85 100644 --- a/src/symba/symba_discard.f90 +++ b/src/symba/symba_discard.f90 @@ -20,7 +20,7 @@ subroutine symba_discard_cb_pl(pl, system, param) ! Internals integer(I4B) :: i, j real(DP) :: energy, vb2, rb2, rh2, rmin2, rmax2, rmaxu2 - character(len=STRMAX) :: idstr, timestr + character(len=STRMAX) :: idstr, timestr, message associate(npl => pl%nbody, cb => system%cb) call system%set_msys() @@ -36,7 +36,12 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAX write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) + write(message, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too far from the central body at t = " // trim(adjustl(timestr)) + call fraggle_io_log_one_message("") + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message(message) + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message("") call pl%info(i)%set_value(status="DISCARDED_RMAX", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) else if ((param%rmin >= 0.0_DP) .and. (rh2 < rmin2)) then pl%ldiscard(i) = .true. @@ -44,7 +49,12 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMIN write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) + write(message, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " too close to the central body at t = " // trim(adjustl(timestr)) + call fraggle_io_log_one_message("") + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message(message) + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message("") call pl%info(i)%set_value(status="DISCARDED_RMIN", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i), discard_body_id=cb%id) else if (param%rmaxu >= 0.0_DP) then rb2 = dot_product(pl%xb(:,i), pl%xb(:,i)) @@ -56,7 +66,12 @@ subroutine symba_discard_cb_pl(pl, system, param) pl%status(i) = DISCARDED_RMAXU write(idstr, *) pl%id(i) write(timestr, *) param%t - write(*, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + write(message, *) trim(adjustl(pl%info(i)%name)) // " (" // trim(adjustl(idstr)) // ")" // " is unbound and too far from barycenter at t = " // trim(adjustl(timestr)) + call fraggle_io_log_one_message("") + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message(message) + call fraggle_io_log_one_message("***********************************************************************************************************************") + call fraggle_io_log_one_message("") call pl%info(i)%set_value(status="DISCARDED_RMAXU", discard_time=param%t, discard_xh=pl%xh(:,i), discard_vh=pl%vh(:,i)) end if end if diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index d7741e38f..42f36ea64 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -99,8 +99,6 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms write(*,*) "SEED: N,VAL = ",size(param%seed), param%seed(:) if (param%min_GMfrag < 0.0_DP) param%min_GMfrag = param%GMTINY write(*,*) "MIN_GMFRAG = ", self%min_GMfrag - ! For the Fraggle log file, delete it if this is a new run and the file exists - call fraggle_io_log_start(param) end if if (.not.self%lclose) then @@ -108,6 +106,8 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms iostat = -1 return end if + ! All reporting of collision information in SyMBA (including mergers) is now recorded in the Fraggle logfile + call fraggle_io_log_start(param) end associate iostat = 0 From fd1c9cb7899c01e89f9bd1d7689dc47a9ee8f7f8 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 12:41:59 -0400 Subject: [PATCH 283/315] Fixed formatting of collision detection message to make each individual event more prominent in the logfile --- src/symba/symba_collision.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 5327fefd9..bc9afd880 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -989,9 +989,9 @@ module subroutine symba_collision_resolve_plplenc(self, system, param, t, dt, ir do write(timestr,*) t call fraggle_io_log_one_message("") - call fraggle_io_log_one_message("--------------------------------------------------------------------") + call fraggle_io_log_one_message("***********************************************************************************************************************") call fraggle_io_log_one_message("Collision between massive bodies detected at time t = " // trim(adjustl(timestr))) - call fraggle_io_log_one_message("--------------------------------------------------------------------") + call fraggle_io_log_one_message("***********************************************************************************************************************") allocate(tmp_param, source=param) tmp_param%t = t if (param%lfragmentation) then From da5d95be276f1b96773acacbf69e9e8d391f4660 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 13:37:50 -0400 Subject: [PATCH 284/315] Simplified the algorithm for distributing mass. It now matches more exactly what comes out of the regime code (Largest frgment, second-largest, and remainder distributed equally among fragments for the two flavors of disruption). --- src/fraggle/fraggle_io.f90 | 1 - src/fraggle/fraggle_set.f90 | 45 +++++++++++-------------------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/src/fraggle/fraggle_io.f90 b/src/fraggle/fraggle_io.f90 index 72d4adfa1..dbd721216 100644 --- a/src/fraggle/fraggle_io.f90 +++ b/src/fraggle/fraggle_io.f90 @@ -216,7 +216,6 @@ module subroutine fraggle_io_log_regime(colliders, frag) write(FRAGGLE_LOG_UNIT, *) "Largest fragment mass : ", frag%mass_dist(1) write(FRAGGLE_LOG_UNIT, *) "Second-largest fragment mass : ", frag%mass_dist(2) write(FRAGGLE_LOG_UNIT, *) "Remaining fragment mass : ", frag%mass_dist(3) - write(FRAGGLE_LOG_UNIT, *) "Remaining fragment mass : ", frag%mass_dist(3) write(FRAGGLE_LOG_UNIT, *) "Center of mass position : ", frag%xbcom(:) write(FRAGGLE_LOG_UNIT, *) "Center of mass velocity : ", frag%vbcom(:) write(FRAGGLE_LOG_UNIT, *) "Energy loss : ", frag%Qloss diff --git a/src/fraggle/fraggle_set.f90 b/src/fraggle/fraggle_set.f90 index b0b2a69be..7ea47e14f 100644 --- a/src/fraggle/fraggle_set.f90 +++ b/src/fraggle/fraggle_set.f90 @@ -37,48 +37,29 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders) class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object ! Internals - integer(I4B) :: i, istart, jproj, jtarg - real(DP), dimension(2) :: vol - real(DP) :: min_frag_mass + integer(I4B) :: i, jproj, jtarg + real(DP), dimension(2) :: volume real(DP), dimension(NDIM) :: Ip_avg associate(frag => self, nfrag => self%nbody) ! Get mass weighted mean of Ip and density - vol(1:2) = 4._DP / 3._DP * PI * colliders%radius(1:2)**3 - frag%density(1:nfrag) = frag%mtot / sum(vol(:)) + volume(1:2) = 4._DP / 3._DP * PI * colliders%radius(1:2)**3 + frag%density(1:nfrag) = frag%mtot / sum(volume(:)) Ip_avg(:) = (colliders%mass(1) * colliders%Ip(:,1) + colliders%mass(2) * colliders%Ip(:,2)) / frag%mtot do i = 1, nfrag frag%Ip(:, i) = Ip_avg(:) end do select case(frag%regime) - case(COLLRESOLVE_REGIME_DISRUPTION) - ! Distribute the mass among fragments, with a branch to check for the size of the second largest fragment - frag%mass(1) = frag%mass_dist(1) - if (frag%mass_dist(2) > frag%mass_dist(1) / 3._DP) then - frag%mass(2) = frag%mass_dist(2) - istart = 3 - else - istart = 2 - end if - ! Distribute remaining mass among the remaining bodies - do i = istart, nfrag - frag%mass(i) = (frag%mtot - sum(frag%mass(1:istart - 1))) / (nfrag - istart + 1) + case(COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) + ! Assign the first and second-largest masses that came out of the regime determination subroutine to the first two fragments + frag%mass(1:2) = frag%mass_dist(1:2) + + ! Distribute remaining mass among the remaining fragments + do i = 3, nfrag + frag%mass(i) = (frag%mtot - sum(frag%mass(1:2))) / (nfrag - 2) end do frag%radius(1:nfrag) = (3 * frag%mass(1:nfrag) / (4 * PI * frag%density(1:nfrag)))**(1.0_DP / 3.0_DP) - case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - ! If we are adding the first and largest fragment (lr), check to see if its mass is SMALLER than an equal distribution of - ! mass between all fragments. If so, we will just distribute the mass equally between the fragments - min_frag_mass = frag%mtot / nfrag - if (frag%mass_dist(1) < min_frag_mass) then - frag%mass(:) = min_frag_mass - else - frag%mass(1) = frag%mass_dist(1) - frag%mass(2:nfrag) = (frag%mtot - frag%mass_dist(1)) / (nfrag - 1) - end if - ! Distribute any residual mass if there is any and set the radius - frag%mass(nfrag) = frag%mass(nfrag) + (frag%mtot - sum(frag%mass(:))) - frag%radius(1:nfrag) = (3 * frag%mass(1:nfrag) / (4 * PI * frag%density(1:nfrag)))**(1.0_DP / 3.0_DP) case(COLLRESOLVE_REGIME_HIT_AND_RUN) if (colliders%mass(1) > colliders%mass(2)) then jtarg = 1 @@ -89,14 +70,14 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders) end if frag%mass(1) = frag%mass_dist(1) frag%radius(1) = colliders%radius(jtarg) - frag%density(1) = frag%mass_dist(1) / vol(jtarg) + frag%density(1) = frag%mass_dist(1) / volume(jtarg) frag%mass(2:nfrag) = (frag%mtot - frag%mass(1)) / (nfrag - 1) frag%mass(nfrag) = frag%mass(nfrag) + (frag%mtot - sum(frag%mass(:))) frag%radius(2:nfrag) = (3 * frag%mass(2:nfrag) / (4 * PI * frag%density(2:nfrag)))**(1.0_DP / 3.0_DP) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) frag%mass(1) = frag%mtot - frag%radius(1) = (3 * sum(vol(:)) / (4 * PI))**(1._DP / 3._DP) + frag%radius(1) = (3 * sum(volume(:)) / (4 * PI))**(1._DP / 3._DP) case default write(*,*) "fraggle_set_mass_dist_fragments error: Unrecognized regime code",frag%regime end select From 210c1f2dedcb6200dc0e21237bc954b9ab55002b Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 16:26:40 -0400 Subject: [PATCH 285/315] Fixed a number of issues with the formatting of the dump files that was preventing many values from being read in properly on restart. Also changted the way that the NetCDF tslot is calculated to prevent skipping array elements. --- src/io/io.f90 | 121 +++++++++++++++++++---------------- src/main/swiftest_driver.f90 | 6 +- src/symba/symba_io.f90 | 30 +++++---- 3 files changed, 87 insertions(+), 70 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index c00939516..7756747bf 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -623,30 +623,32 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) case("GMTOT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%GMtot_orig case("LTOT_ORIG") + write(*,*) param_value read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(1) do i = 2, NDIM - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) + write(*,*) param_value read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(i) end do case("LORBIT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%Lorbit_orig(1) do i = 2, NDIM - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *, err = 667, iomsg = iomsg) param%Lorbit_orig(i) end do case("LSPIN_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%Lspin_orig(1) do i = 2, NDIM - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *, err = 667, iomsg = iomsg) param%Lspin_orig(i) end do case("LESCAPE") read(param_value, *, err = 667, iomsg = iomsg) param%Lescape(1) do i = 2, NDIM - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *, err = 667, iomsg = iomsg) param%Lescape(i) end do @@ -850,10 +852,9 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) ! Internals character(*),parameter :: Ifmt = '(I0)' !! Format label for integer values character(*),parameter :: Rfmt = '(ES25.17)' !! Format label for real values - character(*),parameter :: Rarrfmt = '(3(ES25.17,1X))' !! Format label for real values character(*),parameter :: Lfmt = '(L1)' !! Format label for logical values - character(len=*), parameter :: Afmt = '(A25,1X,64(:,A25,1X))' - character(256) :: param_name, param_value + character(len=NAMELEN) :: param_name + character(LEN=STRMAX) :: param_value, v1, v2, v3 type character_array character(25) :: value end type character_array @@ -861,64 +862,76 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) integer(I4B) :: i associate(param => self) - write(param_name, Afmt) "T0"; write(param_value,Rfmt) param%t0; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TSTOP"; write(param_value, Rfmt) param%tstop; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DT"; write(param_value, Rfmt) param%dt; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CB_IN"; write(param_value, Afmt) trim(adjustl(param%incbfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "PL_IN"; write(param_value, Afmt) trim(adjustl(param%inplfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TP_IN"; write(param_value, Afmt) trim(adjustl(param%intpfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "IN_TYPE"; write(param_value, Afmt) trim(adjustl(param%in_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "IN_FORM"; write(param_value, Afmt) trim(adjustl(param%in_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%istep_dump > 0) write(param_name, Afmt) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "T0"; write(param_value,Rfmt) param%t0; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "TSTOP"; write(param_value, Rfmt) param%tstop; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "DT"; write(param_value, Rfmt) param%dt; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "CB_IN"; write(param_value, *) trim(adjustl(param%incbfile)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "PL_IN"; write(param_value, *) trim(adjustl(param%inplfile)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "TP_IN"; write(param_value, *) trim(adjustl(param%intpfile)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "IN_TYPE"; write(param_value, *) trim(adjustl(param%in_type)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "IN_FORM"; write(param_value, *) trim(adjustl(param%in_form)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + if (param%istep_dump > 0) write(param_name, *) "ISTEP_DUMP"; write(param_value, Ifmt) param%istep_dump; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) if (param%istep_out > 0) then - write(param_name, Afmt) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "BIN_OUT"; write(param_value, Afmt) trim(adjustl(param%outfile)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_TYPE"; write(param_value, Afmt) trim(adjustl(param%out_type)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_FORM"; write(param_value, Afmt) trim(adjustl(param%out_form)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "OUT_STAT"; write(param_value, Afmt) "APPEND"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "ISTEP_OUT"; write(param_value, Ifmt) param%istep_out; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "BIN_OUT"; write(param_value, *) trim(adjustl(param%outfile)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "OUT_TYPE"; write(param_value, *) trim(adjustl(param%out_type)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "OUT_FORM"; write(param_value, *) trim(adjustl(param%out_form)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "OUT_STAT"; write(param_value, *) "APPEND"; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) end if - write(param_name, Afmt) "PARTICLE_OUT"; write(param_value, Afmt) trim(adjustl(param%particle_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ENC_OUT"; write(param_value, Afmt) trim(adjustl(param%enc_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_EJECT"; write(param_value, Rfmt) param%rmaxu; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_QMIN"; write(param_value, Rfmt) param%qmin; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "PARTICLE_OUT"; write(param_value, *) trim(adjustl(param%particle_out)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + if (param%enc_out /= "") then + write(param_name, *) "ENC_OUT"; write(param_value, *) trim(adjustl(param%enc_out)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + end if + write(param_name, *) "CHK_RMIN"; write(param_value, Rfmt) param%rmin; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "CHK_RMAX"; write(param_value, Rfmt) param%rmax; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "CHK_EJECT"; write(param_value, Rfmt) param%rmaxu; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "CHK_QMIN"; write(param_value, Rfmt) param%qmin; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) if (param%qmin >= 0.0_DP) then - write(param_name, Afmt) "CHK_QMIN_COORD"; write(param_value, Afmt) trim(adjustl(param%qmin_coord)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "CHK_QMIN_COORD"; write(param_value, *) trim(adjustl(param%qmin_coord)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) allocate(param_array(2)) write(param_array(1)%value, Rfmt) param%qmin_alo write(param_array(2)%value, Rfmt) param%qmin_ahi - write(param_name, Afmt) "CHK_QMIN_RANGE"; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_array(1)%value), adjustl(param_array(2)%value) + write(param_name, *) "CHK_QMIN_RANGE"; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_array(1)%value), adjustl(param_array(2)%value) + end if + write(param_name, *) "MU2KG"; write(param_value, Rfmt) param%MU2KG; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "TU2S"; write(param_value, Rfmt) param%TU2S ; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + if (param%discard_out /= "") then + write(param_name, *) "DISCARD_OUT"; write(param_value, *) trim(adjustl(param%discard_out)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + end if + if (param%discard_out /= "") then + write(param_name, *) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + end if + write(param_name, *) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + if (param%lenergy .and. (param%energy_out /= "")) then + write(param_name, *) "ENERGY_OUT"; write(param_value, *) trim(adjustl(param%energy_out)); write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) end if - write(param_name, Afmt) "MU2KG"; write(param_value, Rfmt) param%MU2KG; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TU2S"; write(param_value, Rfmt) param%TU2S ; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%discard_out /= "") write(param_name, Afmt) "DISCARD_OUT"; write(param_value, Afmt) trim(adjustl(param%discard_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%discard_out /= "") write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ENERGY"; write(param_value, Lfmt) param%lenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - if (param%lenergy) write(param_name, Afmt) "ENERGY_OUT"; write(param_value, Afmt) trim(adjustl(param%energy_out)); write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "GR"; write(param_value, Lfmt) param%lgr; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "GR"; write(param_value, Lfmt) param%lgr; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "ROTATION"; write(param_value, Lfmt) param%lrotation; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "TIDES"; write(param_value, Lfmt) param%ltides; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) if (param%lenergy) then - write(param_name, Afmt) "FIRSTENERGY"; write(param_value, Lfmt) param%lfirstenergy; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EORBIT_ORIG"; write(param_value, Rfmt) param%Eorbit_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "GMTOT_ORIG"; write(param_value, Rfmt) param%GMtot_orig; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(unit, '("LTOT_ORIG ",3(1X,ES25.17))') param%Ltot_orig(:) - write(unit, '("LORBIT_ORIG",3(1X,ES25.17))') param%Lorbit_orig(:) - write(unit, '("LSPIN_ORIG ",3(1X,ES25.17))') param%Lspin_orig(:) - write(unit, '("LESCAPE ",3(1X,ES25.17))') param%Lescape(:) + write(param_name, *) "FIRSTENERGY"; write(param_value, Lfmt) param%lfirstenergy; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "EORBIT_ORIG"; write(param_value, Rfmt) param%Eorbit_orig; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "GMTOT_ORIG"; write(param_value, Rfmt) param%GMtot_orig; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "LTOT_ORIG"; write(v1, Rfmt) param%Ltot_orig(1); write(v2, Rfmt) param%Ltot_orig(2); write(v3, Rfmt) param%Ltot_orig(3) + write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(v1)) // " " // trim(adjustl(v2)) // " " // trim(adjustl(v3)) + write(param_name, *) "LORBIT_ORIG"; write(v1, Rfmt) param%Lorbit_orig(1); write(v2, Rfmt) param%Lorbit_orig(2); write(v3, Rfmt) param%Lorbit_orig(3) + write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(v1)) // " " // trim(adjustl(v2)) // " " // trim(adjustl(v3)) + write(param_name, *) "LSPIN_ORIG"; write(v1, Rfmt) param%Lspin_orig(1); write(v2, Rfmt) param%Lspin_orig(2); write(v3, Rfmt) param%Lspin_orig(3) + write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(v1)) // " " // trim(adjustl(v2)) // " " // trim(adjustl(v3)) + write(param_name, *) "LESCAPE"; write(v1, Rfmt) param%Lescape(1); write(v2, Rfmt) param%Lescape(2); write(v3, Rfmt) param%Lescape(3) + write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(v1)) // " " // trim(adjustl(v2)) // " " // trim(adjustl(v3)) - write(param_name, Afmt) "GMESCAPE"; write(param_value, Rfmt) param%GMescape; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "GMESCAPE"; write(param_value, Rfmt) param%GMescape; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "ECOLLISIONS"; write(param_value, Rfmt) param%Ecollisions; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "EUNTRACKED"; write(param_value, Rfmt) param%Euntracked; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) end if - write(param_name, Afmt) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "MAXID"; write(param_value, Ifmt) param%maxid; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "FIRSTKICK"; write(param_value, Lfmt) param%lfirstkick; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "MAXID"; write(param_value, Ifmt) param%maxid; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) iostat = 0 iomsg = "UDIO not implemented" diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 7f35cb0d2..9d06d1ddb 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -17,6 +17,7 @@ program swiftest_driver integer(I8B) :: iloop !! Loop counter integer(I8B) :: idump !! Dump cadence counter integer(I8B) :: iout !! Output cadence counter + integer(I8B) :: ioutput_t0 !! The output frame counter at time 0 integer(I8B) :: nloops !! Number of steps to take in the simulation real(DP) :: old_t_final = 0.0_DP !! Output time at which writing should start, in order to prevent duplicate lines being written for restarts @@ -51,7 +52,8 @@ program swiftest_driver iout = istep_out idump = istep_dump nloops = ceiling(tstop / dt, kind=I8B) - ioutput = ceiling(t0/ dt, kind=I8B) / int(istep_out, kind=I8B) + ioutput_t0 = int(t0 / dt / istep_out, kind=I8B) + ioutput = ioutput_t0 ! Prevent duplicate frames from being written if this is a restarted run if ((param%lrestart) .and. ((param%out_type == REAL8_TYPE) .or. param%out_type == REAL4_TYPE)) then old_t_final = nbody_system%get_old_t_final(param) @@ -81,7 +83,7 @@ program swiftest_driver if (istep_out > 0) then iout = iout - 1 if (iout == 0) then - ioutput = ceiling(t / dt, kind=I8B) / int(istep_out, kind=I8B) + ioutput = ioutput_t0 + iloop / istep_out if (t > old_t_final) call nbody_system%write_frame(param) iout = istep_out end if diff --git a/src/symba/symba_io.f90 b/src/symba/symba_io.f90 index 42f36ea64..c97904079 100644 --- a/src/symba/symba_io.f90 +++ b/src/symba/symba_io.f90 @@ -63,13 +63,13 @@ module subroutine symba_io_param_reader(self, unit, iotype, v_list, iostat, ioms deallocate(param%seed) allocate(param%seed(nseeds)) do i = 1, nseeds - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *) param%seed(i) end do else ! Seed array in file is too small do i = 1, nseeds_from_file - ifirst = ilast + 1 + ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) read(param_value, *) param%seed(i) end do @@ -138,36 +138,37 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms character(*),parameter :: Rfmt = '(ES25.17)' !! Format label for real values character(*),parameter :: Rarrfmt = '(3(ES25.17,1X))' !! Format label for real values character(*),parameter :: Lfmt = '(L1)' !! Format label for logical values - character(len=*), parameter :: Afmt = '(A25,1X,64(:,A25,1X))' - character(256) :: param_name, param_value + character(len=NAMELEN) :: param_name + character(len=STRMAX) :: param_value type character_array character(25) :: value end type character_array type(character_array), dimension(:), allocatable :: param_array - integer(I4B) :: i + integer(I4B) :: i, nstr associate(param => self) call io_param_writer(param, unit, iotype, v_list, iostat, iomsg) ! Special handling is required for writing the random number seed array as its size is not known until runtime ! For the "SEED" parameter line, the first value will be the size of the seed array and the rest will be the seed array elements - write(param_name, Afmt) "GMTINY"; write(param_value, Rfmt) param%GMTINY; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "MIN_GMFRAG"; write(param_value, Rfmt) param%min_GMfrag; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) - write(param_name, Afmt) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_value) + write(param_name, *) "GMTINY"; write(param_value, Rfmt) param%GMTINY; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "MIN_GMFRAG"; write(param_value, Rfmt) param%min_GMfrag; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) + write(param_name, *) "FRAGMENTATION"; write(param_value, Lfmt) param%lfragmentation; write(unit, *, err = 667, iomsg = iomsg) adjustl(param_name) // trim(adjustl(param_value)) if (param%lfragmentation) then - write(param_name, Afmt) "SEED" + write(param_name, *) "SEED" if (allocated(param_array)) deallocate(param_array) allocate(param_array(0:size(param%seed))) write(param_array(0)%value, Ifmt) size(param%seed) do i = 1, size(param%seed) write(param_array(i)%value, Ifmt) param%seed(i) end do - write(unit, Afmt, advance='no', err = 667, iomsg = iomsg) adjustl(param_name), adjustl(param_array(0)%value) - do i = 1, size(param%seed) + write(unit, '(" ",A32)', advance='no', err = 667, iomsg = iomsg) adjustl(param_name) + do i = 0, size(param%seed) + nstr = len(trim(adjustl(param_array(i)%value))) if (i < size(param%seed)) then - write(unit, Afmt, advance='no', err = 667, iomsg = iomsg) adjustl(param_array(i)%value) + write(unit, '(A12)', advance='no', err = 667, iomsg = iomsg) trim(adjustl(param_array(i)%value)) // " " else - write(unit, Afmt, err = 667, iomsg = iomsg) adjustl(param_array(i)%value) + write(unit, '(A12)', err = 667, iomsg = iomsg) trim(adjustl(param_array(i)%value)) end if end do end if @@ -175,8 +176,9 @@ module subroutine symba_io_param_writer(self, unit, iotype, v_list, iostat, ioms iostat = 0 end associate - 667 continue return + 667 continue + write(*,*) "Error writing parameter file for SyMBA: " // trim(adjustl(iomsg)) end subroutine symba_io_param_writer From 6e728a37e71007df4b9a75ea87cc60b3a4e18bcc Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 3 Sep 2021 16:40:57 -0400 Subject: [PATCH 286/315] Fixed collision movie maker to work with the new NetCDF files --- .../symba_energy_momentum/collision_movie.py | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/examples/symba_energy_momentum/collision_movie.py b/examples/symba_energy_momentum/collision_movie.py index 56ed66b9b..1a17034c5 100755 --- a/examples/symba_energy_momentum/collision_movie.py +++ b/examples/symba_energy_momentum/collision_movie.py @@ -10,15 +10,21 @@ xmax = 20.0 ymin = -20.0 ymax = 20.0 +framejump = 1 +ncutoff = 1e20 +radscale = 2000 cases = ['supercat_head', 'supercat_off', 'disruption_head', 'disruption_off'] +#cases = ['supercat_head'] -def scale_sim(ds): - +def scale_sim(ds, Rcb): + dst0 = ds.isel(time=0) + dst0 = dst0.where(dst0['radius'] < Rcb, drop=True) + dst0 = dst0.where(dst0.id > 0, drop=True) + GMtot = dst0['Gmass'].sum(skipna=True, dim="id") dsscale = ds.where(ds.id > 0, drop=True) # Remove the central body - - GMtot = dsscale['Gmass'].sum(skipna=True, dim="id").isel(time=0) - rscale = ds['radius'].sel(id=1, time=0) + + rscale = ds['radius'].sel(id=1, time=0).values dsscale['radius'] /= rscale dsscale['radmarker'] = dsscale['radius'].fillna(0) @@ -64,12 +70,12 @@ class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" def __init__(self, ds, param): - frame = 0 - nframes = ds['time'].size - self.ds = scale_sim(ds) + nframes = int(ds['time'].size / framejump) self.param = param + self.Rcb = ds['radius'].sel(id=0, time=0).values self.rot_angle = {} + self.ds = scale_sim(ds, self.Rcb) self.clist = {'Initial conditions' : 'xkcd:windows blue', 'Disruption' : 'xkcd:baby poop', @@ -94,8 +100,9 @@ def __init__(self, ds, param): # Then setup FuncAnimation. self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) - self.ani.save(animfile, fps=60, dpi=300, - extra_args=['-vcodec', 'libx264']) + self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'mpeg4']) + #self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'libx264']) + print(f"Finished writing {animfile}") def plot_pl_circles(self, pl, radmarker): patches = [] @@ -239,14 +246,15 @@ def update(self,frame): def data_stream(self, frame=0): while True: d = self.ds.isel(time=frame) - radius = d['radmarker'].values + #d = d.where(d['radius'] > 0.0, drop=True) + radius = d['radius'].values Gmass = d['Gmass'].values x = d['xhxb'].values y = d['pyb'].values vhx = d['vhxb'].values vhy = d['vhyb'].values name = d['id'].values - npl = d.id.count().values + npl = d['npl'].values[0] id = d['id'].values rotx = d['rotx'].values roty = d['roty'].values @@ -256,7 +264,7 @@ def data_stream(self, frame=0): origin = d['origin_type'].values t = self.ds.coords['time'].values[frame] - self.mask = np.logical_not(np.isnan(x)) + self.mask = np.logical_not(radius > self.Rcb) x = np.nan_to_num(x, copy=False) y = np.nan_to_num(y, copy=False) From dfa9b560b33fb2a1b81d16cc89b5d292e98888e1 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 16:45:10 -0400 Subject: [PATCH 287/315] Replaced the FORCE MERGE message with a more descriptive message for the Fraggle logfile. --- src/fraggle/fraggle_regime.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index eb614d951..2888d234f 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -179,7 +179,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb Mlr = Mtot Mslr = 0.0_DP Qloss = 0.0_DP - write(*,*) "FORCE MERGE" + call fraggle_io_log_one_message("Fragments would have mass below the minimum. Converting this collision into a merger.") else if( Vimp < Vescp) then regime = COLLRESOLVE_REGIME_MERGE !perfect merging regime From c0a21aa66a5af38af1426db3287623b81b6a1069 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 17:31:41 -0400 Subject: [PATCH 288/315] Removed old write statements from the param reader --- src/io/io.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 7756747bf..21c165e23 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -623,12 +623,10 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) case("GMTOT_ORIG") read(param_value, *, err = 667, iomsg = iomsg) param%GMtot_orig case("LTOT_ORIG") - write(*,*) param_value read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(1) do i = 2, NDIM ifirst = ilast + 2 param_value = io_get_token(line, ifirst, ilast, iostat) - write(*,*) param_value read(param_value, *, err = 667, iomsg = iomsg) param%Ltot_orig(i) end do case("LORBIT_ORIG") From e5ee63d3683e5089329964c726badd4f0fa93866 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 17:55:17 -0400 Subject: [PATCH 289/315] Moved the fragment total mass and barycenter calculations outside of the regime determination, as that does not get run when fragmentation is turned off --- src/fraggle/fraggle_regime.f90 | 3 --- src/symba/symba_collision.f90 | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index 2888d234f..a20b08d29 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -60,9 +60,6 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) ! Convert quantities back to the system units and save them into the fragment system frag%mass_dist(:) = (frag%mass_dist(:) / param%MU2KG) frag%Qloss = frag%Qloss * (param%TU2S / param%DU2M)**2 / param%MU2KG - frag%mtot = sum(colliders%mass(:)) - frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot - frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot call fraggle_io_log_regime(colliders, frag) end associate diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index bc9afd880..11b3b874c 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -888,6 +888,9 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) if ((.not. lgoodcollision) .or. any(pl%status(idx_parent(:)) /= COLLISION)) cycle call colliders%regime(frag, system, param) + frag%mtot = sum(colliders%mass(:)) + frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot + frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot select case (frag%regime) case (COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) @@ -941,6 +944,9 @@ module subroutine symba_collision_resolve_mergers(self, system, param) if (any(pl%status(idx_parent(:)) /= COLLISION)) cycle ! One of these two bodies has already been resolved frag%regime = COLLRESOLVE_REGIME_MERGE + frag%mtot = sum(colliders%mass(:)) + frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot + frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot plplcollision_list%status(i) = symba_collision_casemerge(system, param, colliders, frag) end do end select From 87fc551c56c9e7ca5863b4b7339539e8f9f82dbc Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 18:03:11 -0400 Subject: [PATCH 290/315] Reduced the number of tries because it appears to be pretty bimodal (it either succeeds after a few tries, or not at all) --- src/fraggle/fraggle_generate.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index f66904599..d0c1374f9 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -24,7 +24,7 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa integer(I4B) :: i integer(I4B) :: try real(DP) :: r_max_start, f_spin, dEtot, dLmag - integer(I4B), parameter :: MAXTRY = 3000 + integer(I4B), parameter :: MAXTRY = 100 logical :: lk_plpl logical, dimension(size(IEEE_ALL)) :: fpe_halting_modes, fpe_quiet_modes logical, dimension(size(IEEE_USUAL)) :: fpe_flag From b33dd1e064fbe97a310042229dde292a19c249c7 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 20:36:26 -0400 Subject: [PATCH 291/315] Removed extra terminal output of conservation report for non pl-pl collisions/escapes and made the halting condition on lack of mass conservation more robust. --- src/discard/discard.f90 | 2 +- src/io/io.f90 | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index 97bbfbfc4..2ee3dafec 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -31,7 +31,7 @@ module subroutine discard_system(self, param) end if if (lpl_discards .or. ltp_discards) call system%write_discard(param) - if (lpl_discards .and. param%lenergy) call self%conservation_report(param, lterminal=.true.) + if (lpl_discards .and. param%lenergy) call self%conservation_report(param, lterminal=.false.) if (lpl_check) call pl_discards%setup(0,param) if (ltp_check) call tp_discards%setup(0,param) diff --git a/src/io/io.f90 b/src/io/io.f90 index 21c165e23..5fcae92b5 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -61,15 +61,15 @@ module subroutine io_conservation_report(self, param, lterminal) close(EGYIU, err = 667, iomsg = errmsg) end if - if (.not.param%lfirstenergy .and. lterminal) then + if (.not.param%lfirstenergy) then Lerror = norm2(Ltot_now(:) - param%Ltot_orig(:)) / norm2(param%Ltot_orig(:)) Eorbit_error = (Eorbit_now - param%Eorbit_orig) / abs(param%Eorbit_orig) Ecoll_error = param%Ecollisions / abs(param%Eorbit_orig) Etotal_error = (Eorbit_now - param%Ecollisions - param%Eorbit_orig - param%Euntracked) / abs(param%Eorbit_orig) Merror = (GMtot_now - param%GMtot_orig) / param%GMtot_orig - write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror - if (Merror < -10 * epsilon(Merror)) then - write(*,*) 'Mass loss! Halting!' + if (lterminal) write(*, EGYTERMFMT) Lerror, Ecoll_error, Etotal_error, Merror + if (abs(Merror) > 100 * epsilon(Merror)) then + write(*,*) "Severe error! Mass not conserved! Halting!" call pl%xv2el(cb) call param%nciu%open(param) call self%write_hdr(param%nciu, param) From 840ed476f76ca412738c9080f19b5a7fe36787f2 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 3 Sep 2021 20:37:46 -0400 Subject: [PATCH 292/315] Tweaked input file for symba mars disk so that the mass cutoff is larger, leading to fewer tiny particles. --- examples/symba_mars_disk/param.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 78c087566..3a2851566 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -6,8 +6,8 @@ CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 1 -ISTEP_DUMP 1 +ISTEP_OUT 100 +ISTEP_DUMP 100 BIN_OUT bin.nc PARTICLE_OUT particle.dat OUT_TYPE NETCDF_DOUBLE @@ -22,8 +22,8 @@ CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 3389500.0 338950000000.0 EXTRA_FORCE no RHILL_PRESENT yes -GMTINY 1000.0 -MIN_GMFRAG 10.0 +GMTINY 10000.0 +MIN_GMFRAG 1000.0 ENERGY yes FRAGMENTATION yes ROTATION yes From b12a40afb280832eaea2e415943ef53895ac3abc Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 4 Sep 2021 15:53:58 -0400 Subject: [PATCH 293/315] Fixed problem involving setting string values of info variables. Variables were not being replaced properly because only part of the strings were being replaced. Fixed by always printing NAMELEN-length strings to the string info variables. --- src/symba/symba_util.f90 | 4 +++- src/util/util_set.f90 | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index b68635b0e..8b8e48f47 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -455,7 +455,9 @@ module subroutine symba_util_rearray_pl(self, system, param) ! Reset all of the status flags for this body pl%status(1:npl) = ACTIVE - pl%info(1:npl)%status = "ACTIVE" + do i = 1, npl + call pl%info(i)%set_value(status="ACTIVE") + end do pl%ldiscard(1:npl) = .false. pl%lcollision(1:npl) = .false. pl%lmask(1:npl) = .true. diff --git a/src/util/util_set.f90 b/src/util/util_set.f90 index 48c0006c2..80ed89b1f 100644 --- a/src/util/util_set.f90 +++ b/src/util/util_set.f90 @@ -116,15 +116,24 @@ module subroutine util_set_particle_info(self, name, particle_type, status, orig real(DP), dimension(:), intent(in), optional :: discard_xh !! The heliocentric distance vector at the time of the particle's discard real(DP), dimension(:), intent(in), optional :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard integer(I4B), intent(in), optional :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved) + ! Internals + character(len=NAMELEN) :: lenstr + character(len=:), allocatable :: fmtlabel + + write(lenstr, *) NAMELEN + fmtlabel = "(A" // trim(adjustl(lenstr)) // ")" if (present(name)) then - self%name = name + write(self%name, fmtlabel) trim(adjustl(name)) end if if (present(particle_type)) then - self%particle_type = particle_type + write(self%particle_type, fmtlabel) trim(adjustl(particle_type)) end if + if (present(status)) then + write(self%status, fmtlabel) trim(adjustl(status)) + end if if (present(origin_type)) then - self%origin_type = origin_type + write(self%origin_type, fmtlabel) trim(adjustl(origin_type)) end if if (present(origin_time)) then self%origin_time = origin_time @@ -138,9 +147,6 @@ module subroutine util_set_particle_info(self, name, particle_type, status, orig if (present(discard_time)) then self%discard_time = discard_time end if - if (present(status)) then - self%status = status - end if if (present(discard_xh)) then self%discard_xh(:) = discard_xh(:) end if From aa1bcd1f1993e9766eeddcf6e368ca5d86315aa4 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 4 Sep 2021 16:28:02 -0400 Subject: [PATCH 294/315] Fixed issue where failed fragmentation generation still advanced the maxid counter ahead as if it succeeded, leading to gaps in the ids of bodies. Also changed the way names are saved to the info variable. --- src/io/io.f90 | 23 +++++++++++++++-------- src/symba/symba_collision.f90 | 12 ++++++------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/io/io.f90 b/src/io/io.f90 index 5fcae92b5..b938af8c2 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -1022,12 +1022,14 @@ module subroutine io_read_in_cb(self, param) integer(I4B) :: iu = LUN character(len=STRMAX) :: errmsg integer(I4B) :: ierr, idold + character(len=NAMELEN) :: name if (param%in_type == 'ASCII') then self%id = 0 param%maxid = 0 open(unit = iu, file = param%incbfile, status = 'old', form = 'FORMATTED', err = 667, iomsg = errmsg) - read(iu, *, err = 667, iomsg = errmsg) self%info%name + read(iu, *, err = 667, iomsg = errmsg) name + call self%info%set_value(name=name) read(iu, *, err = 667, iomsg = errmsg) self%Gmass self%mass = real(self%Gmass / param%GU, kind=DP) read(iu, *, err = 667, iomsg = errmsg) self%radius @@ -1133,6 +1135,7 @@ module function io_read_frame_body(self, iu, param) result(ierr) integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals character(len=STRMAX) :: errmsg + character(len=NAMELEN), dimension(self%nbody) :: name integer(I4B) :: i real(QP) :: val @@ -1157,9 +1160,10 @@ module function io_read_frame_body(self, iu, param) result(ierr) select case(param%in_type) case (REAL4_TYPE, REAL8_TYPE) read(iu, err = 667, iomsg = errmsg) self%id(:) - associate(name => self%info%name) - read(iu, err = 667, iomsg = errmsg) name(:) - end associate + read(iu, err = 667, iomsg = errmsg) name(:) + do i = 1, n + call self%info(i)%set_value(name=name(i)) + end do select case (param%in_form) case (XV) @@ -1205,10 +1209,11 @@ module function io_read_frame_body(self, iu, param) result(ierr) select type(self) class is (swiftest_pl) if (param%lrhill_present) then - read(iu, *, err = 667, iomsg = errmsg) self%info(i)%name, val, self%rhill(i) + read(iu, *, err = 667, iomsg = errmsg) name(i), val, self%rhill(i) else - read(iu, *, err = 667, iomsg = errmsg) self%info(i)%name, val + read(iu, *, err = 667, iomsg = errmsg) name(i), val end if + call self%info(i)%set_value(name=name(i)) self%Gmass(i) = real(val, kind=DP) self%mass(i) = real(val / param%GU, kind=DP) read(iu, *, err = 667, iomsg = errmsg) self%radius(i) @@ -1280,10 +1285,12 @@ module function io_read_frame_cb(self, iu, param) result(ierr) ! Result integer(I4B) :: ierr !! Error code: returns 0 if the read is successful ! Internals - character(len=STRMAX) :: errmsg + character(len=STRMAX) :: errmsg + character(len=NAMELEN) :: name read(iu, err = 667, iomsg = errmsg) self%id - read(iu, err = 667, iomsg = errmsg) self%info%name + read(iu, err = 667, iomsg = errmsg) name + call self%info%set_value(name=name) read(iu, err = 667, iomsg = errmsg) self%Gmass self%mass = self%Gmass / param%GU read(iu, err = 667, iomsg = errmsg) self%radius diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 11b3b874c..20e90909d 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -37,8 +37,6 @@ module function symba_collision_casedisruption(system, param, colliders, frag) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter call frag%setup(nfrag, param) call frag%set_mass_dist(colliders) - frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] - param%maxid = frag%id(nfrag) ! Generate the position and velocity distributions of the fragments call frag%generate_fragments(colliders, system, param, lfailure) @@ -63,6 +61,8 @@ module function symba_collision_casedisruption(system, param, colliders, frag) case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) status = SUPERCATASTROPHIC end select + frag%id(1:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag)] + param%maxid = frag%id(nfrag) call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if @@ -110,10 +110,6 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r lpure = .false. call frag%setup(nfrag, param) call frag%set_mass_dist(colliders) - ibiggest = colliders%idx(maxloc(system%pl%Gmass(colliders%idx(:)), dim=1)) - frag%id(1) = system%pl%id(ibiggest) - frag%id(2:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag - 1)] - param%maxid = frag%id(nfrag) ! Generate the position and velocity distributions of the fragments call frag%generate_fragments(colliders, system, param, lpure) @@ -135,6 +131,10 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r pl%lcollision(colliders%idx(:)) = .false. end select else + ibiggest = colliders%idx(maxloc(system%pl%Gmass(colliders%idx(:)), dim=1)) + frag%id(1) = system%pl%id(ibiggest) + frag%id(2:nfrag) = [(i, i = param%maxid + 1, param%maxid + nfrag - 1)] + param%maxid = frag%id(nfrag) status = HIT_AND_RUN_DISRUPT call symba_collision_mergeaddsub(system, param, colliders, frag, status) end if From c8bf996adebe9bffe1091ffa62b00b709d50bcbb Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 4 Sep 2021 16:39:57 -0400 Subject: [PATCH 295/315] Changed how string variables are saved in NetCDF format. Strings are no longer trimmed --- src/netcdf/netcdf.f90 | 54 ++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 64b30a44a..96101eb70 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -249,7 +249,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: i, j, tslot, strlen, idslot + integer(I4B) :: i, j, tslot, NAMELEN, idslot integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring @@ -317,13 +317,11 @@ module subroutine netcdf_write_frame_base(self, iu, param) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - charstring = trim(adjustl(self%info%name)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%name) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info%particle_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%particle_type) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[idslot, tslot]) ) @@ -355,7 +353,7 @@ module subroutine netcdf_write_particle_info_base(self, iu) class(swiftest_base), intent(in) :: self !! Swiftest particle object class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset ! Internals - integer(I4B) :: i, j, tslot, strlen, idslot + integer(I4B) :: i, j, tslot, NAMELEN, idslot integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring @@ -370,21 +368,17 @@ module subroutine netcdf_write_particle_info_base(self, iu) j = ind(i) idslot = self%id(j) + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - charstring = trim(adjustl(self%info(j)%name)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info(j)%name) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info(j)%particle_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info(j)%particle_type) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info(j)%status)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info(j)%status) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info(j)%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info(j)%origin_type) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) @@ -408,21 +402,17 @@ module subroutine netcdf_write_particle_info_base(self, iu) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - charstring = trim(adjustl(self%info%name)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%name) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info%particle_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%particle_type) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info%status)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%status) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = trim(adjustl(self%info%origin_type)) - strlen = len(charstring) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + charstring = adjustl(self%info%origin_type) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) From df7a7192cef7ca2ff024681633ab4d241383a048 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Sat, 4 Sep 2021 16:49:44 -0400 Subject: [PATCH 296/315] Fixed problem with NetCDF string writing --- src/netcdf/netcdf.f90 | 73 ++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 96101eb70..80bcdcb5d 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -249,7 +249,7 @@ module subroutine netcdf_write_frame_base(self, iu, param) class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters ! Internals - integer(I4B) :: i, j, tslot, NAMELEN, idslot + integer(I4B) :: i, j, tslot, strlen, idslot integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring @@ -261,7 +261,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) class is (swiftest_body) associate(n => self%nbody) if (n == 0) return - allocate(ind(n)) call util_sort(self%id(1:n), ind) @@ -317,12 +316,6 @@ module subroutine netcdf_write_frame_base(self, iu, param) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - charstring = adjustl(self%info%name) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - - charstring = adjustl(self%info%particle_type) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - call check( nf90_put_var(iu%ncid, iu%Gmass_varid, self%Gmass, start=[idslot, tslot]) ) call check( nf90_put_var(iu%ncid, iu%radius_varid, self%radius, start=[idslot, tslot]) ) if (param%lrotation) then @@ -353,9 +346,16 @@ module subroutine netcdf_write_particle_info_base(self, iu) class(swiftest_base), intent(in) :: self !! Swiftest particle object class(netcdf_parameters), intent(inout) :: iu !! Parameters used to identify a particular NetCDF dataset ! Internals - integer(I4B) :: i, j, tslot, NAMELEN, idslot + integer(I4B) :: i, j, tslot, strlen, idslot integer(I4B), dimension(:), allocatable :: ind character(len=:), allocatable :: charstring + character(len=NAMELEN) :: emptystr, lenstr + character(len=:), allocatable :: fmtlabel + + ! This string of spaces of length NAMELEN is used to clear out any old data left behind inside the string variables + write(lenstr, *) NAMELEN + fmtlabel = "(A" // trim(adjustl(lenstr)) // ")" + write(emptystr, fmtlabel) " " select type(self) class is (swiftest_body) @@ -368,17 +368,26 @@ module subroutine netcdf_write_particle_info_base(self, iu) j = ind(i) idslot = self%id(j) + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - charstring = adjustl(self%info(j)%name) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - charstring = adjustl(self%info(j)%particle_type) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) + charstring = trim(adjustl(self%info(j)%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info(j)%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - charstring = adjustl(self%info(j)%status) - call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) + charstring = trim(adjustl(self%info(j)%status)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%status_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) - charstring = adjustl(self%info(j)%origin_type) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) + charstring = trim(adjustl(self%info(j)%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info(j)%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info(j)%origin_xh(1), start=[idslot]) ) @@ -402,17 +411,25 @@ module subroutine netcdf_write_particle_info_base(self, iu) idslot = self%id + 1 call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - charstring = adjustl(self%info%name) - call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - - charstring = adjustl(self%info%particle_type) - call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - - charstring = adjustl(self%info%status) - call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) - - charstring = adjustl(self%info%origin_type) - call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[NAMELEN, 1]) ) + charstring = trim(adjustl(self%info%name)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%name_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%name_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%particle_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%ptype_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%status)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%status_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%status_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) + + charstring = trim(adjustl(self%info%origin_type)) + strlen = len(charstring) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, emptystr, start=[1, idslot], count=[NAMELEN, 1]) ) + call check( nf90_put_var(iu%ncid, iu%origin_type_varid, charstring, start=[1, idslot], count=[strlen, 1]) ) call check( nf90_put_var(iu%ncid, iu%origin_time_varid, self%info%origin_time, start=[idslot]) ) call check( nf90_put_var(iu%ncid, iu%origin_xhx_varid, self%info%origin_xh(1), start=[idslot]) ) From 9349bf3bbffc1202e2675278c5fcf7cfb24364cc Mon Sep 17 00:00:00 2001 From: David Minton Date: Sat, 4 Sep 2021 17:09:20 -0400 Subject: [PATCH 297/315] Fixed how character strings are stripped and encoded --- python/swiftest/swiftest/io.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index a82c5f043..cae553b13 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -704,6 +704,9 @@ def swiftest2xr(param): return ds +def xstrip(a): + func = lambda x: np.char.strip(x) + return xr.apply_ufunc(func, a.str.decode(encoding='utf-8')) def clean_string_values(param, ds): """ @@ -719,13 +722,13 @@ def clean_string_values(param, ds): ds : xarray dataset with the strings cleaned up """ if 'name' in ds: - ds['name'] = ds['name'].str.decode(encoding='utf-8') + ds['name'] = xstrip(ds['name']) if 'particle_type' in ds: - ds['particle_type'] = ds['particle_type'].str.decode(encoding='utf-8') + ds['particle_type'] = xstrip(ds['particle_type']) if 'status' in ds: - ds['status'] = ds['status'].str.decode(encoding='utf-8') + ds['status'] = xstrip(ds['status']) if 'origin_type' in ds: - ds['origin_type'] = ds['origin_type'].str.decode(encoding='utf-8') + ds['origin_type'] = xstrip(ds['origin_type']) return ds From a23dcd9ac62c77a4730be225dfbacf8168f18948 Mon Sep 17 00:00:00 2001 From: David Minton Date: Sun, 5 Sep 2021 09:22:59 -0400 Subject: [PATCH 298/315] Updated plotting script to be compatible with NetCDF, and make the markers equal sized --- .../symba_chambers_2013/aescattermovie.py | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index 27d2ef06b..ebecc470d 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -12,7 +12,8 @@ xmax = 2.00 ymin = 1e-4 ymax = 1.0 -framejump = 10 +framejump = 1 +ncutoff = 1e20 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" @@ -22,8 +23,7 @@ def __init__(self, ds, param): nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param - self.ds['radmarker'] = self.ds['radius'].fillna(0) - self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + self.Rcb = self.ds['radius'].sel(id=0, time=0).values self.clist = {'Initial conditions' : 'xkcd:faded blue', 'Disruption' : 'xkcd:marigold', @@ -38,14 +38,15 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + #self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): scat = [] for key, value in self.clist.items(): - idx = origin == value + idx = origin == key s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) scat.append(s) return scat @@ -70,19 +71,25 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - self.ax.legend(loc='lower right') + leg = self.ax.legend(loc='lower right') + leg = plt.legend(loc="lower left", scatterpoints=1, fontsize=10) + for i,l in enumerate(leg.legendHandles): + leg.legendHandles[i]._sizes = [20] return self.s0, self.s1, self.s2, self.s3, self.title def data_stream(self, frame=0): while True: d = self.ds.isel(time = frame) - d = d.where(np.invert(np.isnan(d['a'])), drop=True) + d = d.where(d['radius'] < self.Rcb, drop=True) + d['radmarker'] = (d['radius'] / self.Rcb) * radscale + radius = d['radmarker'].values + radius = d['radmarker'].values Gmass = d['Gmass'].values a = d['a'].values / AU e = d['e'].values name = d['id'].values - npl = d.id.count().values + npl = d['npl'].values[0] radmarker = d['radmarker'] origin = d['origin_type'] From 0e325db07d3c87cf153e223a3a80c33697bb02e3 Mon Sep 17 00:00:00 2001 From: David Minton Date: Sun, 5 Sep 2021 09:30:12 -0400 Subject: [PATCH 299/315] Updated plotting scripts with better legends --- .../symba_chambers_2013/aescattermovie.py | 3 +-- examples/symba_clement_2018/aescattermovie.py | 21 ++++++++++++------- examples/symba_mars_disk/aescattermovie.py | 6 ++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/examples/symba_chambers_2013/aescattermovie.py b/examples/symba_chambers_2013/aescattermovie.py index ebecc470d..6f73a32dc 100755 --- a/examples/symba_chambers_2013/aescattermovie.py +++ b/examples/symba_chambers_2013/aescattermovie.py @@ -71,8 +71,7 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - leg = self.ax.legend(loc='lower right') - leg = plt.legend(loc="lower left", scatterpoints=1, fontsize=10) + leg = plt.legend(loc="lower right", scatterpoints=1, fontsize=10) for i,l in enumerate(leg.legendHandles): leg.legendHandles[i]._sizes = [20] return self.s0, self.s1, self.s2, self.s3, self.title diff --git a/examples/symba_clement_2018/aescattermovie.py b/examples/symba_clement_2018/aescattermovie.py index 8e9fe9964..d256dbe96 100755 --- a/examples/symba_clement_2018/aescattermovie.py +++ b/examples/symba_clement_2018/aescattermovie.py @@ -5,6 +5,7 @@ from matplotlib import animation import matplotlib.colors as mcolors + titletext = "Clement et al. (2018)" radscale = 2000 AU = 1.0 @@ -13,6 +14,7 @@ ymin = 1e-4 ymax = 1.0 framejump = 1 +ncutoff = 1e20 class AnimatedScatter(object): """An animated scatter plot using matplotlib.animations.FuncAnimation.""" @@ -22,8 +24,7 @@ def __init__(self, ds, param): nframes = int(ds['time'].size / framejump) self.ds = ds self.param = param - self.ds['radmarker'] = self.ds['radius'].fillna(0) - self.ds['radmarker'] = self.ds['radmarker'] / self.ds['radmarker'].max() * radscale + self.Rcb = self.ds['radius'].sel(id=0, time=0).values self.clist = {'Initial conditions' : 'xkcd:faded blue', 'Disruption' : 'xkcd:marigold', @@ -38,14 +39,15 @@ def __init__(self, ds, param): self.ax.set_xlim(xmin, xmax) self.ax.set_ylim(ymin, ymax) fig.add_axes(self.ax) - self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) + self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=True) + #self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'libx264']) self.ani.save('aescatter.mp4', fps=30, dpi=300, extra_args=['-vcodec', 'mpeg4']) print('Finished writing aescattter.mp4') def scatters(self, pl, radmarker, origin): scat = [] for key, value in self.clist.items(): - idx = origin == value + idx = origin == key s = self.ax.scatter(pl[idx, 0], pl[idx, 1], marker='o', s=radmarker[idx], c=value, alpha=0.75, label=key) scat.append(s) return scat @@ -70,19 +72,24 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - self.ax.legend(loc='lower right') + leg = plt.legend(loc="lower right", scatterpoints=1, fontsize=10) + for i,l in enumerate(leg.legendHandles): + leg.legendHandles[i]._sizes = [20] return self.s0, self.s1, self.s2, self.s3, self.title def data_stream(self, frame=0): while True: d = self.ds.isel(time = frame) - d = d.where(np.invert(np.isnan(d['a'])), drop=True) + d = d.where(d['radius'] < self.Rcb, drop=True) + d['radmarker'] = (d['radius'] / self.Rcb) * radscale + radius = d['radmarker'].values + radius = d['radmarker'].values Gmass = d['Gmass'].values a = d['a'].values / AU e = d['e'].values name = d['id'].values - npl = d.id.count().values + npl = d['npl'].values[0] radmarker = d['radmarker'] origin = d['origin_type'] diff --git a/examples/symba_mars_disk/aescattermovie.py b/examples/symba_mars_disk/aescattermovie.py index f4da3762e..85b99c0fa 100755 --- a/examples/symba_mars_disk/aescattermovie.py +++ b/examples/symba_mars_disk/aescattermovie.py @@ -71,7 +71,9 @@ def setup_plot(self): self.s1 = slist[1] self.s2 = slist[2] self.s3 = slist[3] - self.ax.legend(loc='upper right') + leg = plt.legend(loc="upper right", scatterpoints=1, fontsize=10) + for i,l in enumerate(leg.legendHandles): + leg.legendHandles[i]._sizes = [20] return self.s0, self.s1, self.s2, self.s3, self.title def data_stream(self, frame=0): @@ -85,7 +87,7 @@ def data_stream(self, frame=0): Gmass = d['Gmass'].values a = d['a'].values / self.Rcb e = d['e'].values - name = d['id'].values + name = d['name'].values npl = d['npl'].values[0] radmarker = d['radmarker'] origin = d['origin_type'].values From b66037b3520d3b2679e01f2a1df40a9f3de9e388 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 6 Sep 2021 03:16:40 -0400 Subject: [PATCH 300/315] Improved the SFD of fragments. Fragment number is now variable, and weakly depends on the collisional system mass. --- .../param.disruption_headon.in | 3 +- .../param.disruption_off_axis.in | 3 +- .../param.supercatastrophic_headon.in | 5 +- .../param.supercatastrophic_off_axis.in | 3 +- src/fraggle/fraggle_regime.f90 | 20 +++- src/fraggle/fraggle_set.f90 | 109 +++++++++++++----- src/modules/fraggle_classes.f90 | 9 +- src/symba/symba_collision.f90 | 18 +-- 8 files changed, 110 insertions(+), 60 deletions(-) diff --git a/examples/symba_energy_momentum/param.disruption_headon.in b/examples/symba_energy_momentum/param.disruption_headon.in index 4d187d26b..24e79be5d 100644 --- a/examples/symba_energy_momentum/param.disruption_headon.in +++ b/examples/symba_energy_momentum/param.disruption_headon.in @@ -21,7 +21,8 @@ ENC_OUT enc.disruption_headon.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-16 +MIN_GMFRAG 1.0e-10 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_energy_momentum/param.disruption_off_axis.in b/examples/symba_energy_momentum/param.disruption_off_axis.in index b4ba7f8ba..58922133f 100644 --- a/examples/symba_energy_momentum/param.disruption_off_axis.in +++ b/examples/symba_energy_momentum/param.disruption_off_axis.in @@ -22,7 +22,8 @@ DISCARD_OUT discard.disruption_off_axis.out EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-16 +MIN_GMFRAG 1.0e-12 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_energy_momentum/param.supercatastrophic_headon.in b/examples/symba_energy_momentum/param.supercatastrophic_headon.in index aaa1db99d..1effdd15b 100644 --- a/examples/symba_energy_momentum/param.supercatastrophic_headon.in +++ b/examples/symba_energy_momentum/param.supercatastrophic_headon.in @@ -17,12 +17,11 @@ CHK_RMIN 0.005 CHK_RMAX 1e6 CHK_EJECT -1.0 ! ignore this check CHK_QMIN -1.0 ! ignore this check -DISCARD_OUT discard.supercatastrophic_headon.out -ENC_OUT enc.supercatastrophic_headon.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-16 +MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in b/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in index 0bf836be5..47bce3775 100644 --- a/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in +++ b/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in @@ -21,7 +21,8 @@ ENC_OUT enc.supercatastrophic_off_axis.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-16 +MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index a20b08d29..4ce4699fa 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -56,6 +56,7 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) frag%mass_dist(1) = min(max(mlr, 0.0_DP), mtot) frag%mass_dist(2) = min(max(mslr, 0.0_DP), mtot) frag%mass_dist(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) + frag%mtot = sum(frag%mass_dist(1:3)) ! Convert quantities back to the system units and save them into the fragment system frag%mass_dist(:) = (frag%mass_dist(:) / param%MU2KG) @@ -98,6 +99,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb real(DP), parameter :: DENSITY1 = 1000.0_DP !standard density parameter from LS12 [kg/m3] real(DP), parameter :: MU_BAR = 0.37_DP !0.385#0.37#0.3333# 3.978 # 1/3 material parameter for hydrodynamic planet-size bodies (LS12) real(DP), parameter :: BETA = 2.85_DP !slope of sfd for remnants from LS12 2.85 + real(DP), parameter :: ETA = -1.50_DP !! LS12 eq. (44) real(DP), parameter :: C1 = 2.43_DP !! Kokubo & Genda (2010) eq. (3) real(DP), parameter :: C2 = -0.0408_DP !! Kokubo & Genda (2010) eq. (3) real(DP), parameter :: C3 = 1.86_DP !! Kokubo & Genda (2010) eq. (3) @@ -108,7 +110,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb real(DP) :: a1, alpha, aint, b, bcrit, c_star, egy, zeta, l, lint, mu, phi, theta real(DP) :: Qr, Qrd_pstar, Qr_erosion, Qr_supercat real(DP) :: Vhr, Verosion, Vescp, Vhill, Vimp, Vsupercat - real(DP) :: Mint, Mtot + real(DP) :: Mint, Mtot, Mtmp real(DP) :: Rp, rhill real(DP) :: Mresidual real(DP) :: U_binding @@ -157,7 +159,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb Qr = mu*(Vimp**2) / Mtot / 2.0_DP !calculate mass largest remnant Mlr - Mlr = (1.0_DP - Qr / Qrd_pstar / 2.0_DP) * Mtot ! [kg] # LS12 eq (5) + Mlr = max((1.0_DP - Qr / Qrd_pstar / 2.0_DP) * Mtot, min_mfrag) ! [kg] # LS12 eq (5) !calculate Vsupercat Qr_supercat = SUPERCAT_QRATIO * Qrd_pstar ! See LS12 Section 4.1 @@ -196,7 +198,7 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb Qloss = 0.0_DP else Mlr = m1 - Mslr = calc_Qrd_rev(m2, m1, Mint, den1, den2, Vimp, c_star) + Mslr = max(calc_Qrd_rev(m2, m1, Mint, den1, den2, Vimp, c_star), min_mfrag) regime = COLLRESOLVE_REGIME_HIT_AND_RUN !hit and run Qloss = (c_star + 1.0_DP) * U_binding ! Qr end if @@ -207,13 +209,13 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb Mslr = 0.0_DP Qloss = 0.0_DP else - Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) ! LS12 eq (37) + Mslr = max(Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA), min_mfrag) ! LS12 eq (37) regime = COLLRESOLVE_REGIME_DISRUPTION !disruption Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_erosion end if else if (Vimp > Vsupercat) then - Mlr = Mtot * 0.1_DP * (Qr / (Qrd_pstar * SUPERCAT_QRATIO))**(-1.5_DP) !LS12 eq (44) - Mslr = Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA) !LS12 eq (37) + Mlr = max(Mtot * 0.1_DP * (Qr / (Qrd_pstar * SUPERCAT_QRATIO))**(ETA), min_mfrag) !LS12 eq (44) + Mslr = max(Mtot * (3.0_DP - BETA) * (1.0_DP - N1 * Mlr / Mtot) / (N2 * BETA), min_mfrag) !LS12 eq (37) regime = COLLRESOLVE_REGIME_SUPERCATASTROPHIC ! supercatastrophic Qloss = (c_star + 1.0_DP) * U_binding ! Qr - Qr_supercat else @@ -221,6 +223,12 @@ subroutine fraggle_regime_collresolve(Mcb, m1, m2, rad1, rad2, xh1, xh2, vb1, vb end if end if + if (Mslr > Mlr) then ! The second-largest fragment is actually larger than the largest, so we will swap them + Mtmp = Mlr + Mlr = Mslr + Mslr = Mtmp + end if + Mresidual = Mtot - Mlr - Mslr if (Mresidual < 0.0_DP) then ! prevents final masses from going negative Mlr = Mlr + Mresidual diff --git a/src/fraggle/fraggle_set.f90 b/src/fraggle/fraggle_set.f90 index 7ea47e14f..f9238f5f8 100644 --- a/src/fraggle/fraggle_set.f90 +++ b/src/fraggle/fraggle_set.f90 @@ -27,60 +27,106 @@ module subroutine fraggle_set_budgets_fragments(self, colliders) end subroutine fraggle_set_budgets_fragments - module subroutine fraggle_set_mass_dist_fragments(self, colliders) + module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) !! author: David A. Minton !! !! Sets the mass of fragments based on the mass distribution returned by the regime calculation. !! This subroutine must be run after the the setup rourtine has been run on the fragments implicit none ! Arguments - class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object - class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameters ! Internals - integer(I4B) :: i, jproj, jtarg + integer(I4B) :: i, jproj, jtarg, nfrag, istart real(DP), dimension(2) :: volume real(DP), dimension(NDIM) :: Ip_avg + real(DP) :: mfrag, mremaining, min_mfrag + real(DP), parameter :: BETA = 2.85_DP + integer(I4B), parameter :: NFRAGMAX = 100 !! Maximum number of fragments that can be generated + integer(I4B), parameter :: NFRAGMIN = 7 !! Minimum number of fragments that can be generated (set by the fraggle_generate algorithm for constraining momentum and energy) + integer(I4B), parameter :: NFRAG_SIZE_MULTIPLIER = 3 !! Log-space scale factor that scales the number of fragments by the collisional system mass - associate(frag => self, nfrag => self%nbody) + associate(frag => self) ! Get mass weighted mean of Ip and density volume(1:2) = 4._DP / 3._DP * PI * colliders%radius(1:2)**3 - frag%density(1:nfrag) = frag%mtot / sum(volume(:)) Ip_avg(:) = (colliders%mass(1) * colliders%Ip(:,1) + colliders%mass(2) * colliders%Ip(:,2)) / frag%mtot - do i = 1, nfrag - frag%Ip(:, i) = Ip_avg(:) - end do + if (colliders%mass(1) > colliders%mass(2)) then + jtarg = 1 + jproj = 2 + else + jtarg = 2 + jproj = 1 + end if + + select type(param) + class is (symba_parameters) + min_mfrag = (param%min_GMfrag / param%GU) + nfrag = ceiling(NFRAG_SIZE_MULTIPLIER * log(frag%mtot / min_mfrag)) + nfrag = max(min(nfrag, NFRAGMAX), NFRAGMIN) + class default + min_mfrag = 0.0_DP + nfrag = NFRAGMAX + end select select case(frag%regime) case(COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - ! Assign the first and second-largest masses that came out of the regime determination subroutine to the first two fragments - frag%mass(1:2) = frag%mass_dist(1:2) + istart = 2 + case(COLLRESOLVE_REGIME_HIT_AND_RUN) + istart = 1 + case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) + call frag%setup(1, param) + frag%mass(1) = frag%mass_dist(1) + frag%radius(1) = colliders%radius(jtarg) + frag%density(1) = frag%mass_dist(1) / volume(jtarg) + frag%Ip(:, 1) = colliders%Ip(:,1) + return + case default + write(*,*) "fraggle_set_mass_dist_fragments error: Unrecognized regime code",frag%regime + end select - ! Distribute remaining mass among the remaining fragments - do i = 3, nfrag - frag%mass(i) = (frag%mtot - sum(frag%mass(1:2))) / (nfrag - 2) - end do - frag%radius(1:nfrag) = (3 * frag%mass(1:nfrag) / (4 * PI * frag%density(1:nfrag)))**(1.0_DP / 3.0_DP) + i = istart + mremaining = max(frag%mtot - sum(frag%mass_dist(1:istart)), 0.0_DP) + do while (i <= NFRAGMAX) + mfrag = (i - istart + 1)**(-3._DP / BETA) * frag%mass_dist(istart) + if (mremaining - mfrag < 0.0_DP) exit + mremaining = mremaining - mfrag + i = i + 1 + end do + + call frag%setup(nfrag, param) + frag%mass(1:istart) = frag%mass_dist(1:istart) + mremaining = max(frag%mtot - sum(frag%mass_dist(1:istart)), 0.0_DP) + do i = istart + 1, nfrag + mfrag = (i - istart + 1)**(-3._DP / BETA) * frag%mass_dist(istart) + mfrag = min(mfrag, mremaining) + frag%mass(i) = mfrag + mremaining = mremaining - mfrag + end do + select case(frag%regime) case(COLLRESOLVE_REGIME_HIT_AND_RUN) - if (colliders%mass(1) > colliders%mass(2)) then - jtarg = 1 - jproj = 2 - else - jtarg = 2 - jproj = 1 - end if frag%mass(1) = frag%mass_dist(1) frag%radius(1) = colliders%radius(jtarg) frag%density(1) = frag%mass_dist(1) / volume(jtarg) - - frag%mass(2:nfrag) = (frag%mtot - frag%mass(1)) / (nfrag - 1) - frag%mass(nfrag) = frag%mass(nfrag) + (frag%mtot - sum(frag%mass(:))) - frag%radius(2:nfrag) = (3 * frag%mass(2:nfrag) / (4 * PI * frag%density(2:nfrag)))**(1.0_DP / 3.0_DP) - case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) - frag%mass(1) = frag%mtot - frag%radius(1) = (3 * sum(volume(:)) / (4 * PI))**(1._DP / 3._DP) + frag%Ip(:, 1) = colliders%Ip(:,1) + istart = 2 case default - write(*,*) "fraggle_set_mass_dist_fragments error: Unrecognized regime code",frag%regime + istart = 1 end select + if (mremaining > 0.0_DP) then + ! Distribute remaining mass among the fragments + mfrag = 1._DP + mremaining / sum(frag%mass(istart:nfrag)) + do i = istart, nfrag + frag%mass(i) = frag%mass(i) * mfrag + end do + mremaining = frag%mtot - sum(frag%mass(1:nfrag)) + frag%mass(nfrag) = frag%mass(nfrag) + mremaining + end if + frag%density(istart:nfrag) = frag%mtot / sum(volume(:)) + frag%radius(istart:nfrag) = (3 * frag%mass(istart:nfrag) / (4 * PI * frag%density(istart:nfrag)))**(1.0_DP / 3.0_DP) + do i = istart, nfrag + frag%Ip(:, i) = Ip_avg(:) + end do end associate @@ -181,7 +227,6 @@ module subroutine fraggle_set_natural_scale_factors(self, colliders) associate(frag => self) ! Find the center of mass of the collisional system - frag%mtot = sum(colliders%mass(:)) frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot diff --git a/src/modules/fraggle_classes.f90 b/src/modules/fraggle_classes.f90 index 8dc81c303..5a8a4a392 100644 --- a/src/modules/fraggle_classes.f90 +++ b/src/modules/fraggle_classes.f90 @@ -173,7 +173,7 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) class(fraggle_colliders), intent(inout) :: self !! Fraggle colliders object class(fraggle_fragments), intent(inout) :: frag !! Fraggle fragment system object class(swiftest_nbody_system), intent(in) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameter + class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameters end subroutine fraggle_regime_colliders module subroutine fraggle_set_budgets_fragments(self, colliders) @@ -188,10 +188,11 @@ module subroutine fraggle_set_coordinate_system(self, colliders) class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object end subroutine fraggle_set_coordinate_system - module subroutine fraggle_set_mass_dist_fragments(self, colliders) + module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) implicit none - class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object - class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object + class(fraggle_colliders), intent(inout) :: colliders !! Fraggle collider system object + class(swiftest_parameters), intent(in) :: param !! Current Swiftest run configuration parameters end subroutine fraggle_set_mass_dist_fragments module subroutine fraggle_set_natural_scale_factors(self, colliders) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 20e90909d..6cd2fd093 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -1,8 +1,6 @@ submodule (symba_classes) s_symba_collision use swiftest - integer(I4B), parameter :: NFRAG_DISRUPT = 12 - integer(I4B), parameter :: NFRAG_SUPERCAT = 20 contains module function symba_collision_casedisruption(system, param, colliders, frag) result(status) @@ -26,17 +24,14 @@ module function symba_collision_casedisruption(system, param, colliders, frag) select case(frag%regime) case(COLLRESOLVE_REGIME_DISRUPTION) message = "Disruption between" - nfrag = NFRAG_DISRUPT case(COLLRESOLVE_REGIME_SUPERCATASTROPHIC) message = "Supercatastrophic disruption between" - nfrag = NFRAG_SUPERCAT end select call symba_collision_collider_message(system%pl, colliders%idx, message) call fraggle_io_log_one_message(message) ! Collisional fragments will be uniformly distributed around the pre-impact barycenter - call frag%setup(nfrag, param) - call frag%set_mass_dist(colliders) + call frag%set_mass_dist(colliders, param) ! Generate the position and velocity distributions of the fragments call frag%generate_fragments(colliders, system, param, lfailure) @@ -53,6 +48,7 @@ module function symba_collision_casedisruption(system, param, colliders, frag) end select else ! Populate the list of new bodies + nfrag = frag%nbody write(message, *) nfrag call fraggle_io_log_one_message("Generating " // trim(adjustl(message)) // " fragments") select case(frag%regime) @@ -106,10 +102,8 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r nfrag = 0 lpure = .true. else ! Imperfect hit and run, so we'll keep the largest body and destroy the other - nfrag = NFRAG_DISRUPT - 1 lpure = .false. - call frag%setup(nfrag, param) - call frag%set_mass_dist(colliders) + call frag%set_mass_dist(colliders, param) ! Generate the position and velocity distributions of the fragments call frag%generate_fragments(colliders, system, param, lpure) @@ -118,6 +112,7 @@ module function symba_collision_casehitandrun(system, param, colliders, frag) r call fraggle_io_log_one_message("Should have been a pure hit and run instead") nfrag = 0 else + nfrag = frag%nbody write(message, *) nfrag call fraggle_io_log_one_message("Generating " // trim(adjustl(message)) // " fragments") end if @@ -174,8 +169,7 @@ module function symba_collision_casemerge(system, param, colliders, frag) resul select type(pl => system%pl) class is (symba_pl) - call frag%setup(1, param) - call frag%set_mass_dist(colliders) + call frag%set_mass_dist(colliders, param) ibiggest = colliders%idx(maxloc(pl%Gmass(colliders%idx(:)), dim=1)) frag%id(1) = pl%id(ibiggest) frag%xb(:,1) = frag%xbcom(:) @@ -723,7 +717,7 @@ subroutine symba_collision_mergeaddsub(system, param, colliders, frag, status) associate(info => pl%info, pl_adds => system%pl_adds, cb => system%cb, npl => pl%nbody) ! Add the colliders%idx bodies to the subtraction list ncolliders = colliders%ncoll - nfrag = size(frag%mass(:)) + nfrag = frag%nbody ! Setup new bodies allocate(plnew, mold=pl) From 95d551bcd905101126357c2753bc6bb084ad232d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 7 Sep 2021 09:33:31 -0400 Subject: [PATCH 301/315] Improved fragment SFD calculation. Previously, hit and runs with fragmentation were failing because the number of fragments required by the SFD was lower than the number we calculated, which filled mass bins with 0 mass and led to floating point errors in fraggle_generate. Mass is distributed much more carefully now. --- src/fraggle/fraggle_regime.f90 | 6 ++- src/fraggle/fraggle_set.f90 | 80 +++++++++++++++++++--------------- src/symba/symba_collision.f90 | 3 -- 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/src/fraggle/fraggle_regime.f90 b/src/fraggle/fraggle_regime.f90 index 4ce4699fa..df9265ae7 100644 --- a/src/fraggle/fraggle_regime.f90 +++ b/src/fraggle/fraggle_regime.f90 @@ -56,7 +56,11 @@ module subroutine fraggle_regime_colliders(self, frag, system, param) frag%mass_dist(1) = min(max(mlr, 0.0_DP), mtot) frag%mass_dist(2) = min(max(mslr, 0.0_DP), mtot) frag%mass_dist(3) = min(max(mtot - mlr - mslr, 0.0_DP), mtot) - frag%mtot = sum(frag%mass_dist(1:3)) + + ! Find the center of mass of the collisional system + frag%mtot = sum(colliders%mass(:)) + frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot + frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot ! Convert quantities back to the system units and save them into the fragment system frag%mass_dist(:) = (frag%mass_dist(:) / param%MU2KG) diff --git a/src/fraggle/fraggle_set.f90 b/src/fraggle/fraggle_set.f90 index f9238f5f8..d520b2c5d 100644 --- a/src/fraggle/fraggle_set.f90 +++ b/src/fraggle/fraggle_set.f90 @@ -46,6 +46,9 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) integer(I4B), parameter :: NFRAGMAX = 100 !! Maximum number of fragments that can be generated integer(I4B), parameter :: NFRAGMIN = 7 !! Minimum number of fragments that can be generated (set by the fraggle_generate algorithm for constraining momentum and energy) integer(I4B), parameter :: NFRAG_SIZE_MULTIPLIER = 3 !! Log-space scale factor that scales the number of fragments by the collisional system mass + integer(I4B), parameter :: iMlr = 1 + integer(I4B), parameter :: iMslr = 2 + integer(I4B), parameter :: iMrem = 3 associate(frag => self) ! Get mass weighted mean of Ip and density @@ -62,6 +65,9 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) select type(param) class is (symba_parameters) min_mfrag = (param%min_GMfrag / param%GU) + ! The number of fragments we generate is bracked by the minimum required by fraggle_generate (7) and the + ! maximum set by the NFRAG_SIZE_MULTIPLIER which limits the total number of fragments to prevent the nbody + ! code from getting an overwhelmingly large number of fragments nfrag = ceiling(NFRAG_SIZE_MULTIPLIER * log(frag%mtot / min_mfrag)) nfrag = max(min(nfrag, NFRAGMAX), NFRAGMIN) class default @@ -70,10 +76,22 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) end select select case(frag%regime) - case(COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) - istart = 2 - case(COLLRESOLVE_REGIME_HIT_AND_RUN) - istart = 1 + case(COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC, COLLRESOLVE_REGIME_HIT_AND_RUN) + ! The first two bins of the mass_dist are the largest and second-largest fragments that came out of fraggle_regime. + ! The remainder from the third bin will be distributed among nfrag-2 bodies. The following code will determine nfrag based on + ! the limits bracketed above and the model size distribution of fragments. + ! Check to see if our size distribution would give us a smaller number of fragments than the maximum number + i = iMrem + mremaining = frag%mass_dist(iMrem) + do while (i <= nfrag) + mfrag = (1 + i - iMslr)**(-3._DP / BETA) * frag%mass_dist(iMslr) + if (mremaining - mfrag < 0.0_DP) exit + mremaining = mremaining - mfrag + i = i + 1 + end do + if (i < nfrag) nfrag = max(i, NFRAGMIN) ! The sfd would actually give us fewer fragments than our maximum + + call frag%setup(nfrag, param) case (COLLRESOLVE_REGIME_MERGE, COLLRESOLVE_REGIME_GRAZE_AND_MERGE) call frag%setup(1, param) frag%mass(1) = frag%mass_dist(1) @@ -85,43 +103,41 @@ module subroutine fraggle_set_mass_dist_fragments(self, colliders, param) write(*,*) "fraggle_set_mass_dist_fragments error: Unrecognized regime code",frag%regime end select - i = istart - mremaining = max(frag%mtot - sum(frag%mass_dist(1:istart)), 0.0_DP) - do while (i <= NFRAGMAX) - mfrag = (i - istart + 1)**(-3._DP / BETA) * frag%mass_dist(istart) - if (mremaining - mfrag < 0.0_DP) exit - mremaining = mremaining - mfrag - i = i + 1 - end do + ! Make the first two bins the same as the Mlr and Mslr values that came from fraggle_regime + frag%mass(1) = frag%mass_dist(iMlr) + frag%mass(2) = frag%mass_dist(iMslr) - call frag%setup(nfrag, param) - frag%mass(1:istart) = frag%mass_dist(1:istart) - mremaining = max(frag%mtot - sum(frag%mass_dist(1:istart)), 0.0_DP) - do i = istart + 1, nfrag - mfrag = (i - istart + 1)**(-3._DP / BETA) * frag%mass_dist(istart) - mfrag = min(mfrag, mremaining) + ! Distribute the remaining mass the 3:nfrag bodies following the model SFD given by slope BETA + mremaining = frag%mass_dist(iMrem) + do i = iMrem, nfrag + mfrag = (1 + i - iMslr)**(-3._DP / BETA) * frag%mass_dist(iMslr) frag%mass(i) = mfrag mremaining = mremaining - mfrag end do + + ! If there is any residual mass (either positive or negative) we will distribute remaining mass proportionally among the the fragments + if (mremaining < 0.0_DP) then ! If the remainder is negative, this means that that the number of fragments required by the SFD is smaller than our lower limit set by fraggle_generate. + istart = iMrem ! We will reduce the mass of the 3:nfrag bodies to prevent the second-largest fragment from going smaller + else ! If the remainder is postiive, this means that the number of fragments required by the SFD is larger than our upper limit set by computational expediency. + istart = iMslr ! We will increase the mass of the 2:nfrag bodies to compensate, which ensures that the second largest fragment remains the second largest + end if + mfrag = 1._DP + mremaining / sum(frag%mass(istart:nfrag)) + frag%mass(istart:nfrag) = frag%mass(istart:nfrag) * mfrag + + ! There may still be some small residual due to round-off error. If so, simply add it to the last bin of the mass distribution. + mremaining = frag%mtot - sum(frag%mass(1:nfrag)) + frag%mass(nfrag) = frag%mass(nfrag) + mremaining + + ! Compute physical properties of the new fragments select case(frag%regime) - case(COLLRESOLVE_REGIME_HIT_AND_RUN) - frag%mass(1) = frag%mass_dist(1) + case(COLLRESOLVE_REGIME_HIT_AND_RUN) ! The hit and run case always preserves the largest body intact, so there is no need to recompute the physical properties of the first fragment frag%radius(1) = colliders%radius(jtarg) - frag%density(1) = frag%mass_dist(1) / volume(jtarg) + frag%density(1) = frag%mass_dist(iMlr) / volume(jtarg) frag%Ip(:, 1) = colliders%Ip(:,1) istart = 2 case default istart = 1 end select - if (mremaining > 0.0_DP) then - ! Distribute remaining mass among the fragments - mfrag = 1._DP + mremaining / sum(frag%mass(istart:nfrag)) - do i = istart, nfrag - frag%mass(i) = frag%mass(i) * mfrag - end do - mremaining = frag%mtot - sum(frag%mass(1:nfrag)) - frag%mass(nfrag) = frag%mass(nfrag) + mremaining - end if frag%density(istart:nfrag) = frag%mtot / sum(volume(:)) frag%radius(istart:nfrag) = (3 * frag%mass(istart:nfrag) / (4 * PI * frag%density(istart:nfrag)))**(1.0_DP / 3.0_DP) do i = istart, nfrag @@ -226,10 +242,6 @@ module subroutine fraggle_set_natural_scale_factors(self, colliders) integer(I4B) :: i associate(frag => self) - ! Find the center of mass of the collisional system - frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot - frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot - ! Set scale factors frag%Escale = 0.5_DP * (colliders%mass(1) * dot_product(colliders%vb(:,1), colliders%vb(:,1)) + colliders%mass(2) * dot_product(colliders%vb(:,2), colliders%vb(:,2))) frag%dscale = sum(colliders%radius(:)) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index 6cd2fd093..c5ca6426f 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -882,9 +882,6 @@ module subroutine symba_collision_resolve_fragmentations(self, system, param) if ((.not. lgoodcollision) .or. any(pl%status(idx_parent(:)) /= COLLISION)) cycle call colliders%regime(frag, system, param) - frag%mtot = sum(colliders%mass(:)) - frag%xbcom(:) = (colliders%mass(1) * colliders%xb(:,1) + colliders%mass(2) * colliders%xb(:,2)) / frag%mtot - frag%vbcom(:) = (colliders%mass(1) * colliders%vb(:,1) + colliders%mass(2) * colliders%vb(:,2)) / frag%mtot select case (frag%regime) case (COLLRESOLVE_REGIME_DISRUPTION, COLLRESOLVE_REGIME_SUPERCATASTROPHIC) From 4c64632e893ed552a50bc67ee043c9d18c51d9c5 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 7 Sep 2021 17:06:05 -0400 Subject: [PATCH 302/315] Improved the success rate of fraggle_generate by introducing small amounts of noise into the initial conditions that are fed to the BFGS minimizer each time it fails to find a solution at a given tolerance. --- src/fraggle/fraggle_generate.f90 | 66 ++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index d0c1374f9..5a8b08949 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -38,6 +38,8 @@ module subroutine fraggle_generate_fragments(self, colliders, system, param, lfa associate(frag => self, nfrag => self%nbody, pl => system%pl) + write(message,*) nfrag + call fraggle_io_log_one_message("Fraggle generating " // trim(adjustl(message)) // " fragments.") if (nfrag < NFRAG_MIN) then write(message,*) "Fraggle needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." call fraggle_io_log_one_message(message) @@ -294,10 +296,11 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. real(DP), parameter :: TOL_INIT = 1e-14_DP + real(DP), parameter :: VNOISE_MAG = 1e-3_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure integer(I4B), parameter :: MAXLOOP = 10 - real(DP) :: tol + real(DP) :: tol, ke_remainder real(DP), dimension(:), allocatable :: v_t_initial - real(DP), dimension(frag%nbody) :: kefrag + real(DP), dimension(frag%nbody) :: kefrag, vnoise type(lambda_obj) :: spinfunc type(lambda_obj_err) :: objective_function real(DP), dimension(NDIM) :: Li, L_remainder, L_frag_tot @@ -332,6 +335,9 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) v_t_initial(7:nfrag) = frag%v_t_mag(7:nfrag) if (.not.lfailure) exit tol = tol * 2_DP ! Keep increasing the tolerance until we converge on a solution + call random_number(vnoise(1:nfrag)) ! Adding a bit of noise to the initial conditions helps it find a solution more often + vnoise(:) = 1.0_DP + VNOISE_MAG * (2 * vnoise(:) - 1._DP) + v_t_initial(:) = v_t_initial(:) * vnoise(:) end do frag%v_t_mag(1:nfrag) = solve_fragment_tan_vel(v_t_mag_input=v_t_initial(7:nfrag), lfailure=lfailure) @@ -466,11 +472,13 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) ! Internals real(DP), parameter :: TOL_MIN = FRAGGLE_ETOL ! This needs to be more accurate than the tangential step, as we are trying to minimize the total residual energy real(DP), parameter :: TOL_INIT = 1e-14_DP + real(DP), parameter :: VNOISE_MAG = 1e-10_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure integer(I4B), parameter :: MAXLOOP = 100 real(DP) :: ke_radial, tol integer(I4B) :: i, j - real(DP), dimension(:), allocatable :: v_r_initial, v_r_sigma + real(DP), dimension(:), allocatable :: v_r_initial real(DP), dimension(:,:), allocatable :: v_r + real(DP), dimension(frag%nbody) :: vnoise type(lambda_obj) :: objective_function character(len=STRMAX) :: message @@ -479,11 +487,10 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) ke_radial = frag%ke_budget - frag%ke_spin - frag%ke_orbit allocate(v_r_initial, source=frag%v_r_mag) - ! Initialize radial velocity magnitudes with a random value that is approximately 10% of that found by distributing the kinetic energy equally - allocate(v_r_sigma, source=frag%v_r_mag) - call random_number(v_r_sigma(1:nfrag)) - v_r_sigma(1:nfrag) = sqrt(1.0_DP + 2 * (v_r_sigma(1:nfrag) - 0.5_DP) * 1e-4_DP) - v_r_initial(1:nfrag) = v_r_sigma(1:nfrag) * sqrt(abs(2 * ke_radial) / (frag%mass(1:nfrag) * nfrag)) + ! Initialize radial velocity magnitudes with a random value that related to equipartition of kinetic energy with some noise + call random_number(vnoise(1:nfrag)) + vnoise(:) = 1.0_DP + VNOISE_MAG * (2 * vnoise(:) - 1.0_DP) + v_r_initial(1:nfrag) = sqrt(abs(2 * ke_radial) / (frag%mass(1:nfrag) * nfrag)) * vnoise(1:nfrag) ! Initialize the lambda function using a structure constructor that calls the init method ! Minimize the ke objective function using the BFGS optimizer @@ -494,30 +501,33 @@ subroutine fraggle_generate_rad_vel(frag, colliders, lfailure) if (.not.lfailure) exit tol = tol * 2 ! Keep increasing the tolerance until we converge on a solution v_r_initial(:) = frag%v_r_mag(:) + call random_number(vnoise(1:nfrag)) ! Adding a bit of noise to the initial conditions helps it find a solution more often + vnoise(:) = 1.0_DP + VNOISE_MAG * (2 * vnoise(:) - 1._DP) + v_r_initial(:) = v_r_initial(:) * vnoise(:) end do ! Shift the radial velocity vectors to align with the center of mass of the collisional system (the origin) frag%ke_orbit = 0.0_DP frag%vb(:,1:nfrag) = fraggle_util_vmag_to_vb(frag%v_r_mag(1:nfrag), frag%v_r_unit(:,1:nfrag), frag%v_t_mag(1:nfrag), frag%v_t_unit(:,1:nfrag), frag%mass(1:nfrag), frag%vbcom(:)) - do i = 1, nfrag - frag%v_coll(:, i) = frag%vb(:, i) - frag%vbcom(:) - frag%ke_orbit = frag%ke_orbit + frag%mass(i) * dot_product(frag%vb(:, i), frag%vb(:, i)) - end do - frag%ke_orbit = 0.5_DP * frag%ke_orbit - - lfailure = abs((frag%ke_budget - (frag%ke_orbit + frag%ke_spin)) / frag%ke_budget) > FRAGGLE_ETOL - if (lfailure) then - call fraggle_io_log_one_message(" ") - call fraggle_io_log_one_message("Radial velocity failure diagnostics") - write(message, *) frag%ke_budget - call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message))) - write(message, *) frag%ke_spin - call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message))) - write(message, *) frag%ke_orbit - call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message))) - write(message, *) frag%ke_budget - (frag%ke_orbit + frag%ke_spin) - call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message))) - end if + do i = 1, nfrag + frag%v_coll(:, i) = frag%vb(:, i) - frag%vbcom(:) + frag%ke_orbit = frag%ke_orbit + frag%mass(i) * dot_product(frag%vb(:, i), frag%vb(:, i)) + end do + frag%ke_orbit = 0.5_DP * frag%ke_orbit + + lfailure = abs((frag%ke_budget - (frag%ke_orbit + frag%ke_spin)) / frag%ke_budget) > FRAGGLE_ETOL + if (lfailure) then + call fraggle_io_log_one_message(" ") + call fraggle_io_log_one_message("Radial velocity failure diagnostics") + write(message, *) frag%ke_budget + call fraggle_io_log_one_message("ke_budget : " // trim(adjustl(message))) + write(message, *) frag%ke_spin + call fraggle_io_log_one_message("ke_spin : " // trim(adjustl(message))) + write(message, *) frag%ke_orbit + call fraggle_io_log_one_message("ke_orbit : " // trim(adjustl(message))) + write(message, *) frag%ke_budget - (frag%ke_orbit + frag%ke_spin) + call fraggle_io_log_one_message("ke_remainder : " // trim(adjustl(message))) + end if end associate return @@ -556,4 +566,4 @@ end function radial_objective_function end subroutine fraggle_generate_rad_vel -end submodule s_fraggle_generate \ No newline at end of file +end submodule s_fraggle_generate From 50afb8f9d00a4c24657c280a104ef39724e5a7ee Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 7 Sep 2021 17:11:12 -0400 Subject: [PATCH 303/315] Tweaked the noise parameter for trangential velocities. --- src/fraggle/fraggle_generate.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index 5a8b08949..58965f7ee 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -296,7 +296,7 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. real(DP), parameter :: TOL_INIT = 1e-14_DP - real(DP), parameter :: VNOISE_MAG = 1e-3_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure + real(DP), parameter :: VNOISE_MAG = 1e-2_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure integer(I4B), parameter :: MAXLOOP = 10 real(DP) :: tol, ke_remainder real(DP), dimension(:), allocatable :: v_t_initial From ed5bfffbbfe881d9fd7289a00bac45af945c5fc9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Tue, 7 Sep 2021 18:17:37 -0400 Subject: [PATCH 304/315] Removed restriction on spins of first two bodies. Success rate of fraggle_generation is improved. --- src/fraggle/fraggle_generate.f90 | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/fraggle/fraggle_generate.f90 b/src/fraggle/fraggle_generate.f90 index 58965f7ee..6f7ccb7a3 100644 --- a/src/fraggle/fraggle_generate.f90 +++ b/src/fraggle/fraggle_generate.f90 @@ -234,10 +234,8 @@ subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure) lfailure = .false. ! Start the first two bodies with the same rotation as the original two impactors, then distribute the remaining angular momentum among the rest - frag%rot(:,1:2) = colliders%rot(:, :) - frag%rot(:,3:nfrag) = 0.0_DP - call frag%get_ang_mtm() - L_remainder(:) = frag%L_budget(:) - frag%L_spin(:) + L_remainder(:) = frag%L_budget(:) + frag%rot(:,:) = 0.0_DP frag%ke_spin = 0.0_DP do i = 1, nfrag @@ -245,9 +243,9 @@ subroutine fraggle_generate_spins(frag, colliders, f_spin, lfailure) rot_ke(:) = sqrt(2 * f_spin * frag%ke_budget / (nfrag * frag%mass(i) * frag%radius(i)**2 * frag%Ip(3, i))) * L_remainder(:) / norm2(L_remainder(:)) rot_L(:) = f_spin * L_remainder(:) / (nfrag * frag%mass(i) * frag%radius(i)**2 * frag%Ip(3, i)) if (norm2(rot_ke) < norm2(rot_L)) then - frag%rot(:,i) = frag%rot(:, i) + rot_ke(:) + frag%rot(:,i) = rot_ke(:) else - frag%rot(:, i) = frag%rot(:, i) + rot_L(:) + frag%rot(:, i) = rot_L(:) end if frag%ke_spin = frag%ke_spin + frag%mass(i) * frag%Ip(3, i) * frag%radius(i)**2 * dot_product(frag%rot(:, i), frag%rot(:, i)) end do @@ -296,7 +294,7 @@ subroutine fraggle_generate_tan_vel(frag, colliders, lfailure) integer(I4B) :: i real(DP), parameter :: TOL_MIN = 1e-1_DP ! This doesn't have to be very accurate, as we really just want a tangential velocity distribution with less kinetic energy than our initial guess. real(DP), parameter :: TOL_INIT = 1e-14_DP - real(DP), parameter :: VNOISE_MAG = 1e-2_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure + real(DP), parameter :: VNOISE_MAG = 1e-3_DP !! Magnitude of the noise to apply to initial conditions to help minimizer find a solution in case of failure integer(I4B), parameter :: MAXLOOP = 10 real(DP) :: tol, ke_remainder real(DP), dimension(:), allocatable :: v_t_initial From 0f6f3a119c15f89093d2e401a35f99ffbf1e71de Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 8 Sep 2021 15:51:10 -0400 Subject: [PATCH 305/315] Added memory line to SLURM script in symba_mars_disk example --- .../symba_energy_momentum/Untitled1.ipynb | 2388 +++++++++++++++++ examples/symba_mars_disk/runswiftest.sh | 1 + 2 files changed, 2389 insertions(+) create mode 100644 examples/symba_energy_momentum/Untitled1.ipynb diff --git a/examples/symba_energy_momentum/Untitled1.ipynb b/examples/symba_energy_momentum/Untitled1.ipynb new file mode 100644 index 000000000..a90d1792c --- /dev/null +++ b/examples/symba_energy_momentum/Untitled1.ipynb @@ -0,0 +1,2388 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "ds = xr.open_dataset('bin.supercatastrophic_headon.nc')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray 'discard_time' (id: 23)>\n",
    +       "array([ 0.000000e+000,  5.800000e-006,  5.800000e-006, -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n",
    +       "       -1.797693e+308, -1.797693e+308, -1.797693e+308])\n",
    +       "Coordinates:\n",
    +       "  * id       (id) int32 0 1 2 3 4 5 6 7 8 9 10 ... 13 14 15 16 17 18 19 20 21 22
    " + ], + "text/plain": [ + "\n", + "array([ 0.000000e+000, 5.800000e-006, 5.800000e-006, -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308, -1.797693e+308, -1.797693e+308,\n", + " -1.797693e+308, -1.797693e+308, -1.797693e+308])\n", + "Coordinates:\n", + " * id (id) int32 0 1 2 3 4 5 6 7 8 9 10 ... 13 14 15 16 17 18 19 20 21 22" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds['discard_time']" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "ds1 = ds.where(np.abs(ds['discard_time']) < 1e99, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset>\n",
    +       "Dimensions:          (id: 3, time: 301)\n",
    +       "Coordinates:\n",
    +       "  * time             (time) float64 0.0 1e-07 2e-07 ... 2.98e-05 2.99e-05 3e-05\n",
    +       "  * id               (id) int32 0 1 2\n",
    +       "Data variables: (12/57)\n",
    +       "    npl              (time, id) float64 2.0 2.0 2.0 2.0 ... 20.0 20.0 20.0 20.0\n",
    +       "    ntp              (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n",
    +       "    name             (id) object b'0' b'1' b'2'\n",
    +       "    particle_type    (id) object b'Central Body' b'Massive Body' b'Massive Body'\n",
    +       "    xhx              (time, id) float64 0.0 1.0 1.0 0.0 1.0 ... 0.0 0.0 0.0 0.0\n",
    +       "    xhy              (time, id) float64 0.0 -4.2e-05 4.2e-05 0.0 ... 0.0 0.0 0.0\n",
    +       "    ...               ...\n",
    +       "    discard_xhy      (id) float64 -2.736e+299 -5.125e-06 5.125e-06\n",
    +       "    discard_xhz      (id) float64 0.0 0.0 0.0\n",
    +       "    discard_vhx      (id) float64 2.171e-314 -0.0002318 -0.0002318\n",
    +       "    discard_vhy      (id) float64 0.0 6.28 -6.281\n",
    +       "    discard_vhz      (id) float64 2.171e-314 0.0 0.0\n",
    +       "    discard_body_id  (id) float64 -2.147e+09 -2.147e+09 -2.147e+09
    " + ], + "text/plain": [ + "\n", + "Dimensions: (id: 3, time: 301)\n", + "Coordinates:\n", + " * time (time) float64 0.0 1e-07 2e-07 ... 2.98e-05 2.99e-05 3e-05\n", + " * id (id) int32 0 1 2\n", + "Data variables: (12/57)\n", + " npl (time, id) float64 2.0 2.0 2.0 2.0 ... 20.0 20.0 20.0 20.0\n", + " ntp (time, id) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0\n", + " name (id) object b'0' b'1' b'2'\n", + " particle_type (id) object b'Central Body' b'Massive Body' b'Massive Body'\n", + " xhx (time, id) float64 0.0 1.0 1.0 0.0 1.0 ... 0.0 0.0 0.0 0.0\n", + " xhy (time, id) float64 0.0 -4.2e-05 4.2e-05 0.0 ... 0.0 0.0 0.0\n", + " ... ...\n", + " discard_xhy (id) float64 -2.736e+299 -5.125e-06 5.125e-06\n", + " discard_xhz (id) float64 0.0 0.0 0.0\n", + " discard_vhx (id) float64 2.171e-314 -0.0002318 -0.0002318\n", + " discard_vhy (id) float64 0.0 6.28 -6.281\n", + " discard_vhz (id) float64 2.171e-314 0.0 0.0\n", + " discard_body_id (id) float64 -2.147e+09 -2.147e+09 -2.147e+09" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/symba_mars_disk/runswiftest.sh b/examples/symba_mars_disk/runswiftest.sh index 96dd99928..748a9d774 100644 --- a/examples/symba_mars_disk/runswiftest.sh +++ b/examples/symba_mars_disk/runswiftest.sh @@ -5,6 +5,7 @@ #SBATCH --time=14-00:00:00 #SBATCH --ntasks-per-node=1 #SBATCH --cpus-per-task=12 +#SBATCH --mem=96G #SBATCH --job-name=high_high #SBATCH --no-requeue #SBATCH -o %x.out From a12ad18b496530bf7d0e443941a87a53b3a0db75 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Wed, 8 Sep 2021 17:43:04 -0400 Subject: [PATCH 306/315] Fixed the SLURM script for the test case to ask for 1 GB per cpu, which is how Bell is configured. --- examples/symba_mars_disk/runswiftest.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/symba_mars_disk/runswiftest.sh b/examples/symba_mars_disk/runswiftest.sh index 748a9d774..c7d069d39 100644 --- a/examples/symba_mars_disk/runswiftest.sh +++ b/examples/symba_mars_disk/runswiftest.sh @@ -4,8 +4,8 @@ #SBATCH --ntasks=1 #SBATCH --time=14-00:00:00 #SBATCH --ntasks-per-node=1 -#SBATCH --cpus-per-task=12 -#SBATCH --mem=96G +#SBATCH --cpus-per-task=4 +#SBATCH --mem-per-cpu=1G #SBATCH --job-name=high_high #SBATCH --no-requeue #SBATCH -o %x.out From 4675c7668da8bf05948e58850d49f9870e5d0456 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 9 Sep 2021 09:48:29 -0400 Subject: [PATCH 307/315] Re-wrote the wall timer as its own module and class. Now add a file I/O timer report. --- Makefile | 1 + src/io/io.f90 | 13 +--- src/main/swiftest_driver.f90 | 4 ++ src/modules/swiftest.f90 | 1 + src/modules/swiftest_classes.f90 | 1 - src/modules/walltime_classes.f90 | 119 +++++++++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 src/modules/walltime_classes.f90 diff --git a/Makefile b/Makefile index fb555345f..b5fb81071 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,7 @@ SWIFTEST_MODULES = swiftest_globals.f90 \ swiftest_operators.f90 \ lambda_function.f90\ + walltime_classes.f90 \ swiftest_classes.f90 \ fraggle_classes.f90 \ whm_classes.f90 \ diff --git a/src/io/io.f90 b/src/io/io.f90 index b938af8c2..eacaacf48 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -275,18 +275,12 @@ module subroutine io_dump_system(self, param) integer(I4B), save :: idx = 1 !! Index of current dump file. Output flips between 2 files for extra security !! in case the program halts during writing character(len=:), allocatable :: param_file_name - real(DP) :: deltawall, wallperstep, tfrac - integer(I8B) :: clock_count, count_rate, count_max + real(DP) :: tfrac character(*), parameter :: statusfmt = '("Time = ", ES12.5, "; fraction done = ", F6.3, "; Number of active pl, tp = ", I5, ", ", I5)' character(*), parameter :: symbastatfmt = '("Time = ", ES12.5, "; fraction done = ", F6.3, "; Number of active plm, pl, tp = ", I5, ", ", I5, ", ", I5)' - character(len=*), parameter :: walltimefmt = '(" Wall time (s): ", es12.5, "; Wall time/step in this interval (s): ", es12.5)' logical, save :: lfirst = .true. - real(DP), save :: start, finish if (lfirst) then - call system_clock(clock_count, count_rate, count_max) - start = clock_count / (count_rate * 1.0_DP) - finish = start lfirst = .false. if (param%lenergy) call self%conservation_report(param, lterminal=.false.) else @@ -312,17 +306,12 @@ module subroutine io_dump_system(self, param) tfrac = (param%t - param%t0) / (param%tstop - param%t0) - call system_clock(clock_count, count_rate, count_max) - deltawall = clock_count / (count_rate * 1.0_DP) - finish - wallperstep = deltawall / param%istep_dump - finish = clock_count / (count_rate * 1.0_DP) select type(pl => self%pl) class is (symba_pl) write(*, symbastatfmt) param%t, tfrac, pl%nplm, pl%nbody, self%tp%nbody class default write(*, statusfmt) param%t, tfrac, pl%nbody, self%tp%nbody end select - write(*, walltimefmt) finish - start, wallperstep end if return diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 9d06d1ddb..876e0effd 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -20,6 +20,7 @@ program swiftest_driver integer(I8B) :: ioutput_t0 !! The output frame counter at time 0 integer(I8B) :: nloops !! Number of steps to take in the simulation real(DP) :: old_t_final = 0.0_DP !! Output time at which writing should start, in order to prevent duplicate lines being written for restarts + type(walltimer) :: timer !! Object used for computing elapsed wall time ierr = io_get_args(integrator, param_file_name) if (ierr /= 0) then @@ -69,6 +70,7 @@ program swiftest_driver !$ write(*,'(a)') ' OpenMP parameters:' !$ write(*,'(a)') ' ------------------' !$ write(*,'(a,i3,/)') ' Number of threads = ', nthreads + call timer%reset() write(*, *) " *************** Main Loop *************** " do iloop = 1, nloops !> Step the system forward in time @@ -84,7 +86,9 @@ program swiftest_driver iout = iout - 1 if (iout == 0) then ioutput = ioutput_t0 + iloop / istep_out + call timer%finish(nsubsteps=istep_out, message="Integration steps:") if (t > old_t_final) call nbody_system%write_frame(param) + call timer%finish(nsubsteps=1, message="File I/O: ") iout = istep_out end if end if diff --git a/src/modules/swiftest.f90 b/src/modules/swiftest.f90 index a6daff9a7..d3f8996f0 100644 --- a/src/modules/swiftest.f90 +++ b/src/modules/swiftest.f90 @@ -12,6 +12,7 @@ module swiftest use symba_classes use fraggle_classes use lambda_function + use walltime_classes !use advisor_annotate !$ use omp_lib implicit none diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index 363ed6f66..82d684f1a 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -7,7 +7,6 @@ module swiftest_classes implicit none public - type :: netcdf_parameters integer(I4B) :: out_type !! NetCDF output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) integer(I4B) :: ncid !! NetCDF ID for the output file diff --git a/src/modules/walltime_classes.f90 b/src/modules/walltime_classes.f90 new file mode 100644 index 000000000..71334db0f --- /dev/null +++ b/src/modules/walltime_classes.f90 @@ -0,0 +1,119 @@ +module walltime_classes + !! author: David A. Minton + !! + !! Classes and methods used to compute elasped wall time + use swiftest_globals + implicit none + public + + type :: walltimer + integer(I8B) :: count_rate !! Rate at wich the clock ticks + integer(I8B) :: count_max !! Maximum value of the clock ticker + integer(I8B) :: count_start_main !! Value of the clock ticker at when the timer is first called + integer(I8B) :: count_start_step !! Value of the clock ticker at the start of a timed step + integer(I8B) :: count_finish_step !! Value of the clock ticker at the end of a timed step + logical :: lmain_is_started = .false. !! Logical flag indicating whether or not the main timer has been reset or not + contains + procedure :: reset => walltime_reset !! Resets the clock ticker, settting main_start to the current ticker value + procedure :: start => walltime_start !! Starts the timer, setting step_start to the current ticker value + procedure :: finish => walltime_finish !! Ends the timer, setting step_finish to the current ticker value and printing the elapsed time information to the terminal + end type + + interface + module subroutine walltime_finish(self, nsubsteps, message) + implicit none + class(walltimer), intent(inout) :: self !! Walltimer object + integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step + character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + end subroutine walltime_finish + + module subroutine walltime_reset(self) + implicit none + class(walltimer), intent(inout) :: self !! Walltimer object + end subroutine walltime_reset + + module subroutine walltime_start(self) + implicit none + class(walltimer), intent(inout) :: self !! Walltimer object + end subroutine walltime_start + end interface + + contains + + module subroutine walltime_finish(self, nsubsteps, message) + !! author: David A. Minton + !! + !! Ends the timer, setting step_finish to the current ticker value and printing the elapsed time information to the terminal + use swiftest_globals + implicit none + ! Arguments + class(walltimer), intent(inout) :: self !! Walltimer object + integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step + character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + ! Internals + character(len=*), parameter :: walltimefmt = '" Wall time (s): ", es12.5, "; Wall time/step in this interval (s): ", es12.5' + character(len=STRMAX) :: fmt + integer(I8B) :: count_delta_step, count_delta_main + real(DP) :: wall_main !! Value of total elapsed time at the end of a timed step + real(DP) :: wall_step !! Value of elapsed time since the start of a timed step + real(DP) :: wall_per_substep !! Value of time per substep + + if (.not.self%lmain_is_started) then + write(*,*) "Wall timer error: The step finish time cannot be calculated because the timer is not started!" + return + end if + + call system_clock(self%count_finish_step) + + count_delta_step = self%count_finish_step - self%count_start_step + count_delta_main = self%count_finish_step - self%count_start_main + wall_step = count_delta_step / (self%count_rate * 1.0_DP) + wall_main = count_delta_main / (self%count_rate * 1.0_DP) + wall_per_substep = wall_step / nsubsteps + + fmt = '("' // trim(adjustl(message)) // '",' // walltimefmt // ')' + write(*,trim(adjustl(fmt))) wall_main, wall_per_substep + + call self%start() + + return + end subroutine walltime_finish + + module subroutine walltime_reset(self) + !! author: David A. Minton + !! + !! Resets the clock ticker, settting main_start to the current ticker value + use swiftest_globals + implicit none + ! Arguments + class(walltimer), intent(inout) :: self + + call system_clock(self%count_start_main, self%count_rate, self%count_max) + self%lmain_is_started = .true. + call self%start() + + return + end subroutine walltime_reset + + + module subroutine walltime_start(self) + !! author: David A. Minton + !! + !! Starts the timer, setting step_start to the current ticker value + use swiftest_globals + implicit none + ! Arguments + class(walltimer), intent(inout) :: self + + if (.not.self%lmain_is_started) then + write(*,*) "Wall timer error: Cannot start the step time until reset is called at least once!" + return + end if + + call system_clock(self%count_start_step) + + return + end subroutine walltime_start + + +end module walltime_classes \ No newline at end of file From ef8ac1d0f2e0e62ec8faa8c1a17cbd7524233daa Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 9 Sep 2021 09:52:58 -0400 Subject: [PATCH 308/315] Removed the trim from the message passer so that formatting can be aligned manually. --- src/modules/walltime_classes.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/walltime_classes.f90 b/src/modules/walltime_classes.f90 index 71334db0f..6425b5b5f 100644 --- a/src/modules/walltime_classes.f90 +++ b/src/modules/walltime_classes.f90 @@ -71,7 +71,7 @@ module subroutine walltime_finish(self, nsubsteps, message) wall_main = count_delta_main / (self%count_rate * 1.0_DP) wall_per_substep = wall_step / nsubsteps - fmt = '("' // trim(adjustl(message)) // '",' // walltimefmt // ')' + fmt = '("' // adjustl(message) // '",' // walltimefmt // ')' write(*,trim(adjustl(fmt))) wall_main, wall_per_substep call self%start() From 8df8847599ff2a6a0f261139d6a21afec4f211d4 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 9 Sep 2021 17:17:37 -0400 Subject: [PATCH 309/315] Fixed typo in metadata tag for hit and run fragment --- src/symba/symba_collision.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symba/symba_collision.f90 b/src/symba/symba_collision.f90 index c5ca6426f..a3990cabd 100644 --- a/src/symba/symba_collision.f90 +++ b/src/symba/symba_collision.f90 @@ -775,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 fragmention", 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)) end do do i = 1, ncolliders if (colliders%idx(i) == ibiggest) cycle From aaf708c170c3247b2de6991ecc4067731a25615d Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 9 Sep 2021 19:10:57 -0400 Subject: [PATCH 310/315] Updated several of the example inputs --- examples/helio_gr_test/cb.swiftest.in | 2 +- examples/helio_gr_test/init_cond.py | 9 +- examples/helio_gr_test/param.swifter.in | 8 +- examples/helio_gr_test/param.swiftest.in | 15 ++- examples/helio_gr_test/pl.swifter.in | 50 ++++----- examples/helio_gr_test/pl.swiftest.in | 48 ++++---- .../param.disruption_off_axis.in | 4 +- examples/symba_mars_disk/param.in | 4 +- examples/symba_mars_disk/timetest.sh | 9 ++ examples/whm_gr_test/init_cond.py | 9 +- examples/whm_gr_test/param.swifter.in | 6 +- examples/whm_gr_test/param.swiftest.in | 6 +- examples/whm_gr_test/param.swiftest.nogr.in | 33 ++++++ examples/whm_gr_test/pl.swifter.in | 48 ++++---- examples/whm_gr_test/pl.swiftest.in | 48 ++++---- .../whm_gr_test/swiftest_relativity.ipynb | 104 ++++++++++++------ 16 files changed, 239 insertions(+), 164 deletions(-) create mode 100755 examples/symba_mars_disk/timetest.sh create mode 100644 examples/whm_gr_test/param.swiftest.nogr.in diff --git a/examples/helio_gr_test/cb.swiftest.in b/examples/helio_gr_test/cb.swiftest.in index e4a010b1e..64406c4cf 100644 --- a/examples/helio_gr_test/cb.swiftest.in +++ b/examples/helio_gr_test/cb.swiftest.in @@ -1,4 +1,4 @@ -0 +Sun 39.476926408897626 0.004650467260962157 4.7535806948127355e-12 diff --git a/examples/helio_gr_test/init_cond.py b/examples/helio_gr_test/init_cond.py index 5b378da74..e4351de42 100755 --- a/examples/helio_gr_test/init_cond.py +++ b/examples/helio_gr_test/init_cond.py @@ -5,8 +5,7 @@ sim.param['PL_IN'] = "pl.swiftest.in" sim.param['TP_IN'] = "tp.swiftest.in" sim.param['CB_IN'] = "cb.swiftest.in" -sim.param['BIN_OUT'] = "bin.swiftest.dat" -sim.param['ENC_OUT'] = "enc.swiftest.dat" +sim.param['BIN_OUT'] = "bin.swiftest.nc" sim.param['MU2KG'] = swiftest.MSun sim.param['TU2S'] = swiftest.YR2S @@ -22,9 +21,11 @@ sim.param['CHK_RMIN'] = swiftest.RSun / swiftest.AU2M sim.param['CHK_RMAX'] = 1000.0 sim.param['CHK_EJECT'] = 1000.0 -sim.param['OUT_FORM'] = "EL" sim.param['OUT_STAT'] = "UNKNOWN" -sim.param['RHILL_PRESENT'] = "NO" +sim.param['IN_FORM'] = "EL" +sim.param['OUT_FORM'] = "XVEL" +sim.param['OUT_TYPE'] = "NETCDF_DOUBLE" +sim.param['RHILL_PRESENT'] = "YES" sim.param['GR'] = 'YES' bodyid = { diff --git a/examples/helio_gr_test/param.swifter.in b/examples/helio_gr_test/param.swifter.in index acca6f7aa..14a2e67ab 100644 --- a/examples/helio_gr_test/param.swifter.in +++ b/examples/helio_gr_test/param.swifter.in @@ -4,24 +4,24 @@ TSTOP 1000.0 DT 0.0006844626967830253 ISTEP_OUT 1461 ISTEP_DUMP 1461 -OUT_FORM EL -OUT_TYPE REAL8 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swifter.in TP_IN tp.swifter.in BIN_OUT bin.swifter.dat -ENC_OUT enc.swifter.dat CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 CHK_EJECT 1000.0 CHK_QMIN_COORD HELIO CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swifter.dat EXTRA_FORCE NO BIG_DISCARD NO CHK_CLOSE YES -RHILL_PRESENT NO +RHILL_PRESENT YES C 63241.07708426628 J2 4.7535806948127355e-12 J4 -2.2473967953572827e-18 diff --git a/examples/helio_gr_test/param.swiftest.in b/examples/helio_gr_test/param.swiftest.in index f5a748693..06cd551b5 100644 --- a/examples/helio_gr_test/param.swiftest.in +++ b/examples/helio_gr_test/param.swiftest.in @@ -4,15 +4,14 @@ TSTOP 1000.0 DT 0.0006844626967830253 ISTEP_OUT 1461 ISTEP_DUMP 1461 -OUT_FORM EL -OUT_TYPE REAL8 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE OUT_STAT UNKNOWN IN_TYPE ASCII PL_IN pl.swiftest.in TP_IN tp.swiftest.in CB_IN cb.swiftest.in -BIN_OUT bin.swiftest.dat -ENC_OUT enc.swiftest.dat +BIN_OUT bin.swiftest.nc CHK_QMIN 0.004650467260962157 CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 @@ -22,15 +21,15 @@ CHK_QMIN_RANGE 0.004650467260962157 1000.0 MU2KG 1.988409870698051e+30 TU2S 31557600.0 DU2M 149597870700.0 +IN_FORM EL +ENC_OUT enc.dat EXTRA_FORCE NO +DISCARD_OUT discard.out BIG_DISCARD NO CHK_CLOSE YES -RHILL_PRESENT NO +RHILL_PRESENT YES FRAGMENTATION NO ROTATION NO TIDES NO ENERGY NO GR YES -YARKOVSKY NO -YORP NO -MTINY 0.0 diff --git a/examples/helio_gr_test/pl.swifter.in b/examples/helio_gr_test/pl.swifter.in index f39e7af56..9add1dc1a 100644 --- a/examples/helio_gr_test/pl.swifter.in +++ b/examples/helio_gr_test/pl.swifter.in @@ -1,36 +1,36 @@ 9 -0 39.476926408897625196 +0 39.476926408897626 0.0 0.0 0.0 0.0 0.0 0.0 -1 6.5537098095653139645e-06 +1 6.5537098095653139645e-06 0.001475131156288637831 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --6.8742992150644793847 -8.672423996611946485 -0.078109307586001638286 -2 9.663313399581537916e-05 +-0.0361820239646683528 -0.46276010580341980782 -0.034496398006472611675 +8.183688458560222766 -0.27616682338432374386 -0.7732476400340904169 +2 9.663313399581537916e-05 0.0067590747715647875607 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -4.6580776303108450487 -5.726444072926637749 -0.3473859047161406309 -3 0.000120026935827952453094 +0.04707194870345993154 -0.7255425078625500346 -0.012673782840571969424 +7.3226765098927520106 0.45143529808423807744 -0.4163607714267330732 +3 0.000120026935827952453094 0.01004493295891520948 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -4.4579240279134950613 4.300011122687349501 -0.00022055769049333364448 -4 1.2739802010675941456e-05 +0.9784182446151709067 -0.2394545623617302943 7.8432240502479141865e-06 +1.3916805835822199726 6.0802455505175572043 -0.00029695052429473289775 +4 1.2739802010675941456e-05 0.007246527815634877893 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.98751874613118001086 -4.5371239937302254657 -0.07086074102213555221 -5 0.037692251088985676735 +-1.64827450584581503 -0.04818173529735803734 0.039422108862210397673 +0.3393812176064170994 -4.672429323734897043 -0.1062469093563351878 +5 0.037692251088985676735 0.3552712221482522291 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -1.5225069137843642898 2.4087104911325327961 -0.044067446366273183833 -6 0.011285899820091272997 +4.2888079225575648223 -2.6068082746690541818 -0.08512743586621877856 +1.4000629754656241179 2.4876377693334669565 -0.04165606656604725836 +6 0.011285899820091272997 0.4376655756331854547 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -1.4493167787574136286 1.3075474785896286071 -0.08039429377859412155 -7 0.0017236589478267730203 +6.528501376442308768 -7.4981197287393284157 -0.12945412016904539465 +1.4250071771025915456 1.33599992135721594 -0.07992159012428249671 +7 0.0017236589478267730203 0.46970222329693796102 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.9605086875596024784 1.0118431725941020164 0.016148779866732710198 -8 0.0020336100526728302319 +14.703390521074780395 13.168120788311910019 -0.14161196287363458923 +-0.96768368440931795183 1.0056701102995595347 0.01621895610074016891 +8 0.0020336100526728302319 0.78148373992374883156 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.16867624969736024011 1.1427992197933557251 -0.027387722828706092838 +29.584136736556288838 -4.4478894754775319953 -0.5902566603324214123 +0.16448791459483679965 1.1435219564135608914 -0.027304639012640681262 diff --git a/examples/helio_gr_test/pl.swiftest.in b/examples/helio_gr_test/pl.swiftest.in index b624d25ba..cd6a82534 100644 --- a/examples/helio_gr_test/pl.swiftest.in +++ b/examples/helio_gr_test/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -1 6.5537098095653139645e-06 +Mercury 6.5537098095653139645e-06 0.001475131156288637831 1.6306381826061645943e-05 --0.30949970210807342674 0.1619004125820537876 0.041620272188990829754 --6.8742992150644793847 -8.672423996611946485 -0.078109307586001638286 -2 9.663313399581537916e-05 +0.38709993253896590737 0.20562614632859010921 7.0036272314159866426 +48.303648911363737284 29.187750438580689405 192.22398026813181104 +Venus 9.663313399581537916e-05 0.0067590747715647875607 4.0453784346544178454e-05 --0.5567137338251560985 -0.46074173273652380134 0.02580196630219121906 -4.6580776303108450487 -5.726444072926637749 -0.3473859047161406309 -3 0.000120026935827952453094 +0.7233249152313999675 0.006782779674600277614 3.3945084679511872139 +76.62172192899298295 55.11871576732421829 141.51944714681908977 +Earth 0.000120026935827952453094 0.01004493295891520948 4.25875607065040958e-05 -0.6978790186886838498 -0.73607603319120218366 3.261671020506711323e-05 -4.4579240279134950613 4.300011122687349501 -0.00022055769049333364448 -4 1.2739802010675941456e-05 +1.0000207198983319667 0.01667731166077134064 0.0027576432734417160447 +175.55813761562768605 287.40166532678227895 245.00485341438161413 +Mars 1.2739802010675941456e-05 0.007246527815634877893 2.265740805092889601e-05 --1.617661473167097963 0.38314370807747849534 0.04771055403546069218 --0.98751874613118001086 -4.5371239937302254657 -0.07086074102213555221 -5 0.037692251088985676735 +1.5236922769560579116 0.093361659829406723476 1.8479133359077690724 +49.490611477105659333 286.70751815915190264 210.36775515565921069 +Jupiter 0.037692251088985676735 0.3552712221482522291 0.00046732617030490929307 -4.1527454588897487753 -2.8347492039446908763 -0.081136554176388195336 -1.5225069137843642898 2.4087104911325327961 -0.044067446366273183833 -6 0.011285899820091272997 +5.203523661489898977 0.04851833897394460665 1.3035686835324369337 +100.51671881401649955 273.38319313278452682 318.65986979714938343 +Saturn 0.011285899820091272997 0.4376655756331854547 0.00038925687730393611812 -6.39471595410062843 -7.621162747287802297 -0.121992225877669294154 -1.4493167787574136286 1.3075474785896286071 -0.08039429377859412155 -7 0.0017236589478267730203 +9.581904852310625387 0.052236260603057811658 2.486258128114103183 +113.595257336893098454 335.64742317800698856 225.92836894588160135 +Uranus 0.0017236589478267730203 0.46970222329693796102 0.00016953449859497231466 -14.793135356927480828 13.074218343364380601 -0.14311846037737518955 --0.9605086875596024784 1.0118431725941020164 0.016148779866732710198 -8 0.0020336100526728302319 +19.238019712529130345 0.0442880601027018303 0.770350326736000679 +74.09520891350530292 95.7524345508490029 236.07863258800219342 +Neptune 0.0020336100526728302319 0.78148373992374883156 0.000164587904124493665 -29.568629894896030663 -4.5543028991960081697 -0.58771107137394917874 -0.16867624969736024011 1.1427992197933557251 -0.027387722828706092838 +30.291369954344219195 0.013531244039650480379 1.7689741418447819665 +131.74449502957048708 245.89296040993210113 334.5035290478779757 diff --git a/examples/symba_energy_momentum/param.disruption_off_axis.in b/examples/symba_energy_momentum/param.disruption_off_axis.in index 58922133f..b10ecee63 100644 --- a/examples/symba_energy_momentum/param.disruption_off_axis.in +++ b/examples/symba_energy_momentum/param.disruption_off_axis.in @@ -22,8 +22,8 @@ DISCARD_OUT discard.disruption_off_axis.out EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 -MIN_GMFRAG 1.0e-12 +GMTINY 1.0e-11 +MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_mars_disk/param.in b/examples/symba_mars_disk/param.in index 3a2851566..1fac92462 100644 --- a/examples/symba_mars_disk/param.in +++ b/examples/symba_mars_disk/param.in @@ -6,8 +6,8 @@ CB_IN cb.in PL_IN mars.in TP_IN tp.in IN_TYPE ASCII -ISTEP_OUT 100 -ISTEP_DUMP 100 +ISTEP_OUT 1 +ISTEP_DUMP 1 BIN_OUT bin.nc PARTICLE_OUT particle.dat OUT_TYPE NETCDF_DOUBLE diff --git a/examples/symba_mars_disk/timetest.sh b/examples/symba_mars_disk/timetest.sh new file mode 100755 index 000000000..e881f6ceb --- /dev/null +++ b/examples/symba_mars_disk/timetest.sh @@ -0,0 +1,9 @@ +#!/bin/bash +outname="timetest.csv" +echo "N cores, wall time (s)" > $outname +for value in {1..12} +do + export OMP_NUM_THREADS=$value + walltime="$(/usr/bin/time -f %e ./swiftest_driver symba param.in 2>&1 > /dev/null)" + echo "$value,$walltime" >> $outname +done \ No newline at end of file diff --git a/examples/whm_gr_test/init_cond.py b/examples/whm_gr_test/init_cond.py index ab7e7370a..d4d9a37fa 100755 --- a/examples/whm_gr_test/init_cond.py +++ b/examples/whm_gr_test/init_cond.py @@ -13,12 +13,9 @@ sim.param['DU2M'] = swiftest.AU2M sim.param['T0'] = 0.0 sim.param['DT'] = 0.25 * swiftest.JD2S / swiftest.YR2S -#sim.param['TSTOP'] = 1000.0 -#sim.param['ISTEP_OUT'] = 1461 -#sim.param['ISTEP_DUMP'] = 1461 -sim.param['TSTOP'] = 2*sim.param['DT'] -sim.param['ISTEP_OUT'] = 1 -sim.param['ISTEP_DUMP'] = 1 +sim.param['TSTOP'] = 1000.0 +sim.param['ISTEP_OUT'] = 1461 +sim.param['ISTEP_DUMP'] = 1461 sim.param['CHK_QMIN_COORD'] = "HELIO" sim.param['CHK_QMIN'] = swiftest.RSun / swiftest.AU2M diff --git a/examples/whm_gr_test/param.swifter.in b/examples/whm_gr_test/param.swifter.in index 4ff880f6b..105579a82 100644 --- a/examples/whm_gr_test/param.swifter.in +++ b/examples/whm_gr_test/param.swifter.in @@ -1,9 +1,9 @@ ! VERSION Swifter parameter file converted from Swiftest T0 0.0 -TSTOP 0.0013689253935660506 +TSTOP 1000.0 DT 0.0006844626967830253 -ISTEP_OUT 1 -ISTEP_DUMP 1 +ISTEP_OUT 1461 +ISTEP_DUMP 1461 OUT_FORM EL OUT_TYPE REAL8 OUT_STAT UNKNOWN diff --git a/examples/whm_gr_test/param.swiftest.in b/examples/whm_gr_test/param.swiftest.in index 257def623..d7f584790 100644 --- a/examples/whm_gr_test/param.swiftest.in +++ b/examples/whm_gr_test/param.swiftest.in @@ -1,9 +1,9 @@ ! VERSION Swiftest parameter input T0 0.0 -TSTOP 0.0013689253935660506 +TSTOP 1000.0 DT 0.0006844626967830253 -ISTEP_OUT 1 -ISTEP_DUMP 1 +ISTEP_OUT 1461 +ISTEP_DUMP 1461 OUT_FORM XVEL OUT_TYPE NETCDF_DOUBLE OUT_STAT UNKNOWN diff --git a/examples/whm_gr_test/param.swiftest.nogr.in b/examples/whm_gr_test/param.swiftest.nogr.in new file mode 100644 index 000000000..d6047ee82 --- /dev/null +++ b/examples/whm_gr_test/param.swiftest.nogr.in @@ -0,0 +1,33 @@ +! VERSION Swiftest parameter input +T0 0.0 +TSTOP 1000.0 +DT 0.0006844626967830253 +ISTEP_OUT 1461 +ISTEP_DUMP 1461 +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE +OUT_STAT UNKNOWN +IN_TYPE ASCII +PL_IN pl.swiftest.in +TP_IN tp.swiftest.in +CB_IN cb.swiftest.in +BIN_OUT bin.swiftest.nogr.nc +CHK_QMIN 0.004650467260962157 +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +MU2KG 1.988409870698051e+30 +TU2S 31557600.0 +DU2M 149597870700.0 +IN_FORM EL +EXTRA_FORCE NO +BIG_DISCARD NO +CHK_CLOSE YES +RHILL_PRESENT YES +FRAGMENTATION NO +ROTATION NO +TIDES NO +ENERGY NO +GR NO diff --git a/examples/whm_gr_test/pl.swifter.in b/examples/whm_gr_test/pl.swifter.in index a27e62f95..9add1dc1a 100644 --- a/examples/whm_gr_test/pl.swifter.in +++ b/examples/whm_gr_test/pl.swifter.in @@ -2,35 +2,35 @@ 0 39.476926408897626 0.0 0.0 0.0 0.0 0.0 0.0 -1 6.553709809565314146e-06 0.0014751261514880139061 +1 6.5537098095653139645e-06 0.001475131156288637831 1.6306381826061645943e-05 --0.29510017042975300594 -0.34346884022084378518 -0.000997917547895216684 -5.709185893355676925 -6.2220892824670268354 -1.0321515701207669188 -2 9.6633133995815381836e-05 0.006759061578633710828 +-0.0361820239646683528 -0.46276010580341980782 -0.034496398006472611675 +8.183688458560222766 -0.27616682338432374386 -0.7732476400340904169 +2 9.663313399581537916e-05 0.0067590747715647875607 4.0453784346544178454e-05 --0.21096294566811030213 -0.6945147553261317164 0.0026420019351886940041 -7.0187176732445560167 -2.1783670470162428854 -0.43491289164169576724 -3 0.000120026935827952456416 0.010044949983771724966 +0.04707194870345993154 -0.7255425078625500346 -0.012673782840571969424 +7.3226765098927520106 0.45143529808423807744 -0.4163607714267330732 +3 0.000120026935827952453094 0.01004493295891520948 4.25875607065040958e-05 -0.905522725638602366 -0.44829515638659761523 1.8122901980659660508e-05 -2.685845700565266851 5.6080546137104218133 -0.00027833838024725729542 -4 1.2739802010675941808e-05 0.0072465915674003790445 +0.9784182446151709067 -0.2394545623617302943 7.8432240502479141865e-06 +1.3916805835822199726 6.0802455505175572043 -0.00029695052429473289775 +4 1.2739802010675941456e-05 0.007246527815634877893 2.265740805092889601e-05 --1.6511945936824949932 0.1180803833522415941 0.042978148735422203042 --0.17443328105136805607 -4.661619009141641736 -0.09341597039948347882 -5 0.03769225108898567778 0.3552713110772063853 +-1.64827450584581503 -0.04818173529735803734 0.039422108862210397673 +0.3393812176064170994 -4.672429323734897043 -0.1062469093563351878 +5 0.037692251088985676735 0.3552712221482522291 0.00046732617030490929307 -4.2381319671740662614 -2.694827110197309139 -0.08362807329786287047 -1.44742540330701551 2.4581907268113588696 -0.042593445938391914576 -6 0.01128589982009127331 0.4376635990332856823 +4.2888079225575648223 -2.6068082746690541818 -0.08512743586621877856 +1.4000629754656241179 2.4876377693334669565 -0.04165606656604725836 +6 0.011285899820091272997 0.4376655756331854547 0.00038925687730393611812 -6.4776155764849425722 -7.5454781609219372385 -0.12660625214421539209 -1.4343694668413992401 1.3251694474665614901 -0.08010594537316981756 -7 0.001723658947826773068 0.46966224198242572768 +6.528501376442308768 -7.4981197287393284157 -0.12945412016904539465 +1.4250071771025915456 1.33599992135721594 -0.07992159012428249671 +7 0.0017236589478267730203 0.46970222329693796102 0.00016953449859497231466 -14.737783583010530819 13.132284780084109599 -0.14218874866247160904 --0.96494157148906816704 1.0080364706941240677 0.016191990849809560611 -8 0.0020336100526728302882 0.7814394516095526881 +14.703390521074780395 13.168120788311910019 -0.14161196287363458923 +-0.96768368440931795183 1.0056701102995595347 0.01621895610074016891 +8 0.0020336100526728302319 0.78148373992374883156 0.000164587904124493665 -29.578253698940308425 -4.488584904681241383 -0.58928426126360722304 -0.16609282485651713797 1.143247554888599065 -0.027336661118935745503 +29.584136736556288838 -4.4478894754775319953 -0.5902566603324214123 +0.16448791459483679965 1.1435219564135608914 -0.027304639012640681262 diff --git a/examples/whm_gr_test/pl.swiftest.in b/examples/whm_gr_test/pl.swiftest.in index 9d3171b2a..cd6a82534 100644 --- a/examples/whm_gr_test/pl.swiftest.in +++ b/examples/whm_gr_test/pl.swiftest.in @@ -1,33 +1,33 @@ 8 -Mercury 6.553709809565314146e-06 0.0014751261514880139061 +Mercury 6.5537098095653139645e-06 0.001475131156288637831 1.6306381826061645943e-05 -0.38709861919270799335 0.20562987442219879397 7.0036598799530471737 -48.303764444546942514 29.187012577257871015 139.02452846395490837 -Venus 9.6633133995815381836e-05 0.006759061578633710828 +0.38709993253896590737 0.20562614632859010921 7.0036272314159866426 +48.303648911363737284 29.187750438580689405 192.22398026813181104 +Venus 9.663313399581537916e-05 0.0067590747715647875607 4.0453784346544178454e-05 -0.72332350338494522113 0.0067851993472706276234 3.3945100118236060105 -76.62172575937908903 55.11451498626085055 120.69543184874230235 -Earth 0.000120026935827952456416 0.010044949983771724966 +0.7233249152313999675 0.006782779674600277614 3.3945084679511872139 +76.62172192899298295 55.11871576732421829 141.51944714681908977 +Earth 0.000120026935827952453094 0.01004493295891520948 4.25875607065040958e-05 -1.000022414803547921 0.016679693167334301573 0.002750719340522077977 -175.59912721852418827 287.3487256951211748 232.20474506920808722 -Mars 1.2739802010675941808e-05 0.0072465915674003790445 +1.0000207198983319667 0.01667731166077134064 0.0027576432734417160447 +175.55813761562768605 287.40166532678227895 245.00485341438161413 +Mars 1.2739802010675941456e-05 0.007246527815634877893 2.265740805092889601e-05 -1.5237056817307590428 0.09335454089002033495 1.8479086301002540793 -49.490790672135332784 286.7030449733272235 203.56009534652309867 -Jupiter 0.03769225108898567778 0.3552713110772063853 +1.5236922769560579116 0.093361659829406723476 1.8479133359077690724 +49.490611477105659333 286.70751815915190264 210.36775515565921069 +Jupiter 0.037692251088985676735 0.3552712221482522291 0.00046732617030490929307 -5.203524963998765074 0.048518619089771883313 1.3035691332389880426 -100.516740776557597314 273.38311024861741316 317.57998688455870706 -Saturn 0.01128589982009127331 0.4376635990332856823 +5.203523661489898977 0.04851833897394460665 1.3035686835324369337 +100.51671881401649955 273.38319313278452682 318.65986979714938343 +Saturn 0.011285899820091272997 0.4376655756331854547 0.00038925687730393611812 -9.581861578191695372 0.05220296447788015659 2.4862598063103709123 -113.59526938704850352 335.69019804854252698 225.44748806008931297 -Uranus 0.001723658947826773068 0.46966224198242572768 +9.581904852310625387 0.052236260603057811658 2.486258128114103183 +113.595257336893098454 335.64742317800698856 225.92836894588160135 +Uranus 0.0017236589478267730203 0.46970222329693796102 0.00016953449859497231466 -19.23638216159032055 0.04433184777155944195 0.7703424893861580136 -74.09557761028084144 95.84993853316392176 235.82773290830229485 -Neptune 0.0020336100526728302882 0.7814394516095526881 +19.238019712529130345 0.0442880601027018303 0.770350326736000679 +74.09520891350530292 95.7524345508490029 236.07863258800219342 +Neptune 0.0020336100526728302319 0.78148373992374883156 0.000164587904124493665 -30.289653279202511271 0.013458737599393380546 1.769000156955224945 -131.74519418988560915 245.79890439350270981 334.51418242279709148 +30.291369954344219195 0.013531244039650480379 1.7689741418447819665 +131.74449502957048708 245.89296040993210113 334.5035290478779757 diff --git a/examples/whm_gr_test/swiftest_relativity.ipynb b/examples/whm_gr_test/swiftest_relativity.ipynb index bbc87d783..da1946b2f 100644 --- a/examples/whm_gr_test/swiftest_relativity.ipynb +++ b/examples/whm_gr_test/swiftest_relativity.ipynb @@ -37,7 +37,30 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.nogr.in\n", + "\n", + "Creating Dataset\n", + "Successfully converted 1001 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "nogrsim = swiftest.Simulation(param_file=\"param.swiftest.nogr.in\")\n", + "nogrsim.bin2xr()\n", + "nogrdat = nogrsim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -45,7 +68,7 @@ "output_type": "stream", "text": [ "Reading Swiftest file param.swiftest.in\n", - "Reading in time 1.000e+03\n", + "\n", "Creating Dataset\n", "Successfully converted 1001 output frames.\n", "Swiftest simulation data stored as xarray DataSet .ds\n" @@ -60,17 +83,18 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "swifterdat['varpi'] = swifterdat['omega'] + swifterdat['capom']\n", - "swiftestdat['varpi'] = swiftestdat['omega'] + swiftestdat['capom']" + "swiftestdat['varpi'] = swiftestdat['omega'] + swiftestdat['capom']\n", + "nogrdat['varpi'] = nogrdat['omega'] + nogrdat['capom']" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -84,29 +108,31 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "varpiswiftest = swiftestdat['varpi'].sel(id=1) * 180.0 / np.pi\n", + "varpiswiftest = swiftestdat['varpi'].sel(id=1) \n", + "varpinogr = nogrdat['varpi'].sel(id=1)\n", "varpiswifter = swifterdat['varpi'].sel(id=1) * 180.0 / np.pi\n", "tsim = swiftestdat['time']" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "dvarpi_swiftest = np.diff(varpiswiftest) * 3600 * 100 \n", "dvarpi_swifter = np.diff(varpiswifter) * 3600 * 100 \n", + "dvarpi_nogr = np.diff(varpinogr) * 3600 * 100\n", "dvarpi_obs = np.diff(varpi_obs) / np.diff(t) * 3600 * 100 " ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -114,43 +140,46 @@ "output_type": "stream", "text": [ "Mean precession rate for Mercury long. peri. (arcsec/100 y)\n", - "JPL Horizons : 571.3210506300043\n", - "Swifter GR : 571.6183105524942\n", - "Swiftest GR : 571.5670367229116\n", - "Obs - Swifter : -0.2972599224899675\n", - "Obs - Swiftest : -0.2459860929071831\n", - "Swiftest - Swifter: -0.05127382958278304\n" + "Swiftest WHM No GR : 528.5802151329052\n", + "Swiftest WHM GR : 571.5193636321641\n", + "JPL Horizons : 571.3210506300043\n", + "Obs - Swiftest No GR : 42.740835497099155\n", + "Obs - Swiftest GR : -0.19831300215981776\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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KjmWN3//kG27u2MY7kXGGblepMdGcFu1k/TqezMtagfi7a6PsIiIiIjIlaafyuWKWrlzER8f+ArDJQvvGq6knuheZGwVEvmg3TGa3/IUmEyXcZQiIiIiIlIcJZZyZZyIZO2vL/J/wW6YXCwAeFXdQXZKGNnJdQuEt/Y8yeu31Kdqs6GXe6QiIiIiIlIC7WMpl9/e+eTM6MmyXC+ans6/9NWvznKcXFPynXvuhjA+f2YMVZv1uJyjFBERERERGymxlMvHMOCPD+GHIZCbyZuxP9M463S+ECeXTPzqLAMstHXay9wRNRjcrTlOTlr6KiIiIiJytdJSWLl80s/CxncAA1eTwXGnIH4Oq4qJLGuIYUD1VJji9RzhI6ZCWMsrN14REREREbGJZizl8vEOhmG/gIsHhgEvhPXH5JqVL6TFcR9mdOhI+MMrIKzTFRqoiIiIiIiUhmYs5fIK6wS3f8tnv00lKfBcvkteaU14/cF3Mbk4X6HBiYiIiIiIPTRjKZdfs9up1bgnHskBGBZnyAqisdstzLjzbVyUVIqIiIiIXHM0YylXxC0Dn+OWje+S0egOPKs2uNLDERERERERByixlCvDZIJuz+J5pcchIiIiIiIO01JYERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIEksRERERERFxiBJLERERERERcYgSSxEREREREXGIyTAM40oPQi6f4OBgwsPDr/QwrOLi4ggJCbnSw5BrjD43Yg99bsQe+tyIPfS5EXtcbZ+bI0eOEB8fb3O8Eku5oiIiIoiMjLzSw5BrjD43Yg99bsQe+tyIPfS5EXtc658bLYUVERERERERhyixFBEREREREYcosZQrauLEiVd6CHIN0udG7KHPjdhDnxuxhz43Yo9r/XOjZyxFRERERETEIZqxFBEREREREYcosRQRERERERGHKLGUyyo6OpoXXniBNm3aEBgYiJeXWLKl6gAAH1FJREFUF/Xr12f48OH89ttvV3p44gDDMNi0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A126dKnQdj09PdG+fXsAJUcMzZ2hNjIyUrajo6Nl29R7V5a6ePEicnNzAZQcwbW3tzerPxER6cbJe4iIiCyIl5cXtm/fjmHDhuHp06dISEhAq1at8MYbb6BHjx5wc3NDQUEBMjMzkZycjF9++QVqtbpSZk8dNWoULl26BCEEjh49itDQULP6enh44MGDB3J224YNGyIkJMSsfTh69Khsjxgxwqy+RESkHwtLIiIiCxMUFISkpCSEhYXh559/hkajwYkTJ3DixAm9fUqPNlbExIkT8dlnnwEA4uPjzSos7ezsEBYWhuXLl8u/hYWFmXxPzFLx8fEAAFtbW4wfP96svkREpB9PhSUiIrJA/v7+OHfuHA4cOIDp06ejXbt2cHNzg7W1NZydndGiRQuEhITg888/x6VLl5CYmFjhbbZs2VLeFmTPnj14/PixWf2nTZumtWzuabA3b97Ef//7XwDA2LFjtW6/QkREFaMSFb0an4iIiMhEe/fuxfDhwwEAa9euxZ/+9CeT+yYkJCAoKAgAEBgYKO9jaaq5c+di4cKFAIBz586hW7duZvUnIiL9eMSSiIiIqs2wYcNkQff3v/8dGo3G5L5xcXGyHRERYdZ2CwoK8PXXXwMA3nzzTRaVRESVjIUlERERVatFixYBKLmfZek1j8ZkZ2dj8+bNAAAXFxezrs8EgPXr1+PBgwewsrKS2yciosrDwpKIiIiq1eDBg+WMrHPnzoVarTbaZ968ecjPzwdQcuuROnXqmLy9p0+fymIyIiICnTt3LsdeExGRIbzGkoiIiKrdzZs35amtYWFh8PX11VqflJSEpKQk5OXl4dixYzh48CCAkqOVqamp8PDwMHlbFy9elEdGo6KiOGkPEVEVYGFJREREL5358+djwYIFWn9TqVT44Ycf8Pbbb9fQXhERkT48FZaIiIheap6enggODkZCQgKLSiKilxSPWBIREREREVGF8IglERERERERVQgLSyIiIiIiIqoQFpZERERERERUISwsiYiIiIiIqEJYWBIREREREVGFsLAkIiIiIiKiCvk/Lw7ypdKIE6UAAAAASUVORK5CYII=\n", "text/plain": [ - "
    " + "
    " ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "fig, ax = plt.subplots()\n", - "\n", - "ax.plot(t, varpi_obs, label=\"JPL Horizons\")\n", - "ax.plot(tsim, varpiswifter, label=\"Swifter GR\")\n", - "ax.plot(tsim, varpiswiftest, label=\"Swiftest GR\")\n", - "ax.set_xlabel('Time (y)')\n", - "ax.set_ylabel('Mercury $\\\\varpi$ (deg)')\n", - "ax.legend()\n", + "axes_fontsize = 32\n", + "legend_fontsize = 24\n", + "CB_color_cycle = ['#377eb8', '#ff7f00', '#4daf4a',\n", + " '#f781bf', '#a65628', '#984ea3',\n", + " '#999999', '#e41a1c', '#dede00']\n", + "fig = plt.figure(1, figsize=(14,10), facecolor=\"white\")\n", + "ax = fig.add_subplot(111)\n", + "plt.setp(ax.get_xticklabels(), fontsize=axes_fontsize)\n", + "plt.setp(ax.get_yticklabels(), fontsize=axes_fontsize)\n", + "ax.plot(t, varpi_obs, label=\"JPL Horizons\", linestyle='-',linewidth=6,c=CB_color_cycle[1])\n", + "ax.plot(tsim, varpinogr, label=\"Swiftest WHM No GR\", linestyle='--', linewidth=6, c=CB_color_cycle[0])\n", + "ax.plot(tsim, varpiswiftest, label=\"Swiftest WHM GR\", linestyle=':', linewidth=6,c=CB_color_cycle[2])\n", + "ax.set_xlabel(\"Time (y)\", fontsize=axes_fontsize)\n", + "ax.set_ylabel(\"Mercury $\\\\varpi$ (deg)\", fontsize=axes_fontsize)\n", + "ax.legend(loc=\"upper left\", fontsize=legend_fontsize, markerscale=1)\n", "print('Mean precession rate for Mercury long. peri. (arcsec/100 y)')\n", - "print(f'JPL Horizons : {np.mean(dvarpi_obs)}')\n", - "print(f'Swifter GR : {np.mean(dvarpi_swifter)}')\n", - "print(f'Swiftest GR : {np.mean(dvarpi_swiftest)}')\n", - "print(f'Obs - Swifter : {np.mean(dvarpi_obs - dvarpi_swifter)}')\n", - "print(f'Obs - Swiftest : {np.mean(dvarpi_obs - dvarpi_swiftest)}')\n", - "print(f'Swiftest - Swifter: {np.mean(dvarpi_swiftest - dvarpi_swifter)}')" + "print(f'Swiftest WHM No GR : {np.mean(dvarpi_nogr)}')\n", + "print(f'Swiftest WHM GR : {np.mean(dvarpi_swiftest)}')\n", + "print(f'JPL Horizons : {np.mean(dvarpi_obs)}')\n", + "print(f'Obs - Swiftest No GR : {np.mean(dvarpi_obs - dvarpi_nogr)}')\n", + "print(f'Obs - Swiftest GR : {np.mean(dvarpi_obs - dvarpi_swiftest)}')\n" ] }, { @@ -160,6 +189,13 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From f428be3a17190e8232ac9fcea8a161d763a3a2e9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Thu, 9 Sep 2021 19:14:57 -0400 Subject: [PATCH 311/315] Fixed bug that was causing re-started runs to go longer than tstop --- src/main/swiftest_driver.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index 876e0effd..b4260f115 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -52,7 +52,7 @@ program swiftest_driver iloop = 0 iout = istep_out idump = istep_dump - nloops = ceiling(tstop / dt, kind=I8B) + nloops = ceiling((tstop - t0) / dt, kind=I8B) ioutput_t0 = int(t0 / dt / istep_out, kind=I8B) ioutput = ioutput_t0 ! Prevent duplicate frames from being written if this is a restarted run From 7d61dd48232403a84ec5cb6b8ce55459c86b90f6 Mon Sep 17 00:00:00 2001 From: Carlisle Wishard Date: Thu, 9 Sep 2021 19:49:13 -0400 Subject: [PATCH 312/315] added hit and run case to symba_energy_momentum example directory --- examples/symba_energy_momentum/hitandrun.in | 13 ++++++++ .../symba_energy_momentum/param.hitandrun.in | 32 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 examples/symba_energy_momentum/hitandrun.in create mode 100644 examples/symba_energy_momentum/param.hitandrun.in diff --git a/examples/symba_energy_momentum/hitandrun.in b/examples/symba_energy_momentum/hitandrun.in new file mode 100644 index 000000000..45f3654f8 --- /dev/null +++ b/examples/symba_energy_momentum/hitandrun.in @@ -0,0 +1,13 @@ +2 +1 1e-07 0.0009 +7e-06 +1.0 -4.20E-05 0.0 +0.00 6.28 0.0 +0.4 0.4 0.4 !Ip +0.0 0.0 6.0e4 !rot +2 7e-10 0.0004 +3.25e-06 +1.0 4.20E-05 0.0 +-1.50 -6.28 0.0 +0.4 0.4 0.4 !Ip +0.0 0.0 1.0e5 !rot diff --git a/examples/symba_energy_momentum/param.hitandrun.in b/examples/symba_energy_momentum/param.hitandrun.in new file mode 100644 index 000000000..c4c29a05b --- /dev/null +++ b/examples/symba_energy_momentum/param.hitandrun.in @@ -0,0 +1,32 @@ +T0 0.0e0 +TSTOP 0.000100 ! simulation length in seconds = 100 years +DT 0.0000001 ! stepsize in seconds +CB_IN cb.in +PL_IN hitandrun.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 ! output cadence every year +BIN_OUT bin.hitandrun.nc +PARTICLE_OUT particle.hitandrun.dat +OUT_TYPE NETCDF_DOUBLE ! double precision real output +OUT_FORM XVEL ! osculating element output +OUT_STAT REPLACE +ISTEP_DUMP 1 ! system dump cadence +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMIN 0.005 +CHK_RMAX 1e6 +CHK_EJECT -1.0 ! ignore this check +CHK_QMIN -1.0 ! ignore this check +ENC_OUT enc.hitandrun.dat +DISCARD_OUT discard.hitandrun.out +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD no ! output all planets if anything discarded +RHILL_PRESENT yes ! Hill's sphere radii in input file +GMTINY 1.0e-16 +FRAGMENTATION yes +MU2KG 1.98908e30 +TU2S 3.1556925e7 +DU2M 1.49598e11 +ENERGY yes +ROTATION yes +SEED 8 933097 -220886113 -118730874 233084005 32111237 -823335422 524551114 -61162322 From 57c10acad237c2b71930c4fe0ef3b67935c66559 Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 9 Sep 2021 19:51:25 -0400 Subject: [PATCH 313/315] Updated the IO package with a swift converter. Also fixed an issue with the collision_movie script --- .../symba_energy_momentum/collision_movie.py | 10 ++-- python/swiftest/swiftest/io.py | 51 ++++++++++++++++++- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/examples/symba_energy_momentum/collision_movie.py b/examples/symba_energy_momentum/collision_movie.py index 1a17034c5..e40048c91 100755 --- a/examples/symba_energy_momentum/collision_movie.py +++ b/examples/symba_energy_momentum/collision_movie.py @@ -14,8 +14,8 @@ ncutoff = 1e20 radscale = 2000 -cases = ['supercat_head', 'supercat_off', 'disruption_head', 'disruption_off'] -#cases = ['supercat_head'] +#cases = ['supercat_head', 'supercat_off', 'disruption_head', 'disruption_off'] +cases = ['disruption_off'] def scale_sim(ds, Rcb): dst0 = ds.isel(time=0) @@ -100,8 +100,8 @@ def __init__(self, ds, param): # Then setup FuncAnimation. self.ani = animation.FuncAnimation(fig, self.update, interval=1, frames=nframes, init_func=self.setup_plot, blit=False) - self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'mpeg4']) - #self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'libx264']) + #self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'mpeg4']) + self.ani.save(animfile, fps=60, dpi=300, extra_args=['-vcodec', 'libx264']) print(f"Finished writing {animfile}") def plot_pl_circles(self, pl, radmarker): @@ -264,7 +264,7 @@ def data_stream(self, frame=0): origin = d['origin_type'].values t = self.ds.coords['time'].values[frame] - self.mask = np.logical_not(radius > self.Rcb) + self.mask = np.logical_not(radius == 0.0) x = np.nan_to_num(x, copy=False) y = np.nan_to_num(y, copy=False) diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index cae553b13..da1c49f17 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -1503,4 +1503,53 @@ def swiftest2swifter_param(swiftest_param, J2=0.0, J4=0.0): swifter_param['OUT_STAT'] = "UNKNOWN" swifter_param['! VERSION'] = "Swifter parameter file converted from Swiftest" - return swifter_param \ No newline at end of file + return swifter_param + + +def swifter2swift_param(swifter_param, J2=0.0, J4=0.0): + swift_param = { + '! VERSION': f"Swift parameter input file converted from Swifter", + 'T0': 0.0, + 'TSTOP': 0.0, + 'DT': 0.0, + 'DTOUT': 0.0, + 'DTDUMP': 0.0, + 'L1': "F", + 'L1': "F", + 'L2': "F", + 'L3': "F", + 'L4': "F", + 'L5': "T", + 'L6': "F", + 'RMIN': -1, + 'RMAX': -1, + 'RMAXU': -1, + 'QMIN': -1, + 'LCLOSE': "F", + 'BINARY_OUTPUTFILE': "bin.dat", + 'STATUS_FLAG_FOR_OPEN_STATEMENTS': "NEW", + } + + swift_param['T0'] = swifter_param['T0'] + swift_param['TSTOP'] = swifter_param['TSTOP'] + swift_param['DT'] = swifter_param['DT'] + # Convert the parameter file values + swift_param['DTOUT'] = swifter_param['ISTEP_OUT'] * swifter_param['DT'] + swift_param['DTDUMP'] = swifter_param['ISTEP_DUMP'] * swifter_param['DT'] + swift_param['BINARY_OUTPUTFILE'] = swifter_param['BIN_OUT'] + swift_param['STATUS_FLAG_FOR_OPEN_STATEMENTS'] = swifter_param['OUT_STAT'] + + if swifter_param['CHK_CLOSE'] == "YES": + swift_param['LCLOSE'] = "T" + else: + swift_param['LCLOSE'] = "F" + + swift_param['RMIN'] = swifter_param['CHK_RMIN'] + swift_param['RMAX'] = swifter_param['CHK_RMAX'] + swift_param['QMIN'] = swifter_param['CHK_QMIN'] + + if swift_param['RMIN'] > 0 or swift_param['RMAX'] > 0 or swift_param['QMIN'] > 0: + swift_param['L2'] = 'T' + + + return swift_param \ No newline at end of file From 1bc1dadcabd72d5ece8d4854e178f32016f10cd4 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 10 Sep 2021 10:34:08 -0400 Subject: [PATCH 314/315] Added hit and run to collision movie maker --- examples/symba_energy_momentum/collision_movie.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/symba_energy_momentum/collision_movie.py b/examples/symba_energy_momentum/collision_movie.py index e40048c91..4f472d9ff 100755 --- a/examples/symba_energy_momentum/collision_movie.py +++ b/examples/symba_energy_momentum/collision_movie.py @@ -312,6 +312,10 @@ def data_stream(self, frame=0): animfile = 'movies/merger.mp4' titletext = "Merger" paramfile = 'param.merger.in' + elif case == 'hit_and_run': + animfile = 'movies/hitandrun.mp4' + titletext = "Hit and run with fragmentation" + paramfile = 'param.hitandrun.in' else: print(f'{case} is an unknown case') exit(-1) From 0c83693178d988d52a86a0a165ace4f1528095e2 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Fri, 10 Sep 2021 10:35:15 -0400 Subject: [PATCH 315/315] Fixed collision outcome initial minimum mass values to prevent runaway collisional cascade --- examples/symba_energy_momentum/param.disruption_headon.in | 8 ++++---- .../symba_energy_momentum/param.disruption_off_axis.in | 2 +- examples/symba_energy_momentum/param.hitandrun.in | 3 ++- .../param.supercatastrophic_headon.in | 2 +- .../param.supercatastrophic_off_axis.in | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/symba_energy_momentum/param.disruption_headon.in b/examples/symba_energy_momentum/param.disruption_headon.in index 24e79be5d..a012c5505 100644 --- a/examples/symba_energy_momentum/param.disruption_headon.in +++ b/examples/symba_energy_momentum/param.disruption_headon.in @@ -1,6 +1,6 @@ T0 0.0e0 -TSTOP 0.000100 ! simulation length in seconds = 100 years -DT 0.0000001 ! stepsize in seconds +TSTOP 0.0001000 ! simulation length in seconds = 100 years +DT 0.0000001 ! stepsize in seconds CB_IN cb.in PL_IN disruption_headon.in TP_IN tp.in @@ -21,8 +21,8 @@ ENC_OUT enc.disruption_headon.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 -MIN_GMFRAG 1.0e-10 +GMTINY 1.0e-11 +MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_energy_momentum/param.disruption_off_axis.in b/examples/symba_energy_momentum/param.disruption_off_axis.in index b10ecee63..831f310d5 100644 --- a/examples/symba_energy_momentum/param.disruption_off_axis.in +++ b/examples/symba_energy_momentum/param.disruption_off_axis.in @@ -1,5 +1,5 @@ T0 0.0e0 -TSTOP 0.0000100 ! simulation length in seconds = 100 years +TSTOP 0.0001000 ! simulation length in seconds = 100 years DT 0.0000001 ! stepsize in seconds CB_IN cb.in PL_IN disruption_off_axis.in diff --git a/examples/symba_energy_momentum/param.hitandrun.in b/examples/symba_energy_momentum/param.hitandrun.in index c4c29a05b..1e2e2eea7 100644 --- a/examples/symba_energy_momentum/param.hitandrun.in +++ b/examples/symba_energy_momentum/param.hitandrun.in @@ -22,7 +22,8 @@ DISCARD_OUT discard.hitandrun.out EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-11 +MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 TU2S 3.1556925e7 diff --git a/examples/symba_energy_momentum/param.supercatastrophic_headon.in b/examples/symba_energy_momentum/param.supercatastrophic_headon.in index 1effdd15b..fd15c00dd 100644 --- a/examples/symba_energy_momentum/param.supercatastrophic_headon.in +++ b/examples/symba_energy_momentum/param.supercatastrophic_headon.in @@ -20,7 +20,7 @@ CHK_QMIN -1.0 ! ignore this check EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-11 MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30 diff --git a/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in b/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in index 47bce3775..51ab91e5d 100644 --- a/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in +++ b/examples/symba_energy_momentum/param.supercatastrophic_off_axis.in @@ -21,7 +21,7 @@ ENC_OUT enc.supercatastrophic_off_axis.dat EXTRA_FORCE no ! no extra user-defined forces BIG_DISCARD no ! output all planets if anything discarded RHILL_PRESENT yes ! Hill's sphere radii in input file -GMTINY 1.0e-16 +GMTINY 1.0e-11 MIN_GMFRAG 1.0e-11 FRAGMENTATION yes MU2KG 1.98908e30